@tutti-os/tutti-ops-cli 0.1.6 → 0.1.7
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/README.md +10 -2
- package/dist/config.d.ts +3 -0
- package/dist/config.js +32 -8
- package/dist/config.js.map +1 -1
- package/dist/core/executor.js +10 -1
- package/dist/core/executor.js.map +1 -1
- package/dist/http.js +8 -1
- package/dist/http.js.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/operations/registry.js +8 -3
- package/dist/operations/registry.js.map +1 -1
- package/dist/sessionLogs.d.ts +30 -0
- package/dist/sessionLogs.js +82 -0
- package/dist/sessionLogs.js.map +1 -0
- package/dist/workflows/computer.d.ts +3 -0
- package/dist/workflows/computer.js +154 -0
- package/dist/workflows/computer.js.map +1 -0
- package/dist/workflows/sessionLogs.d.ts +7 -0
- package/dist/workflows/sessionLogs.js +71 -0
- package/dist/workflows/sessionLogs.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,6 +11,8 @@ See [CLI design](docs/cli-design.md) for target commands and compatibility,
|
|
|
11
11
|
[admin capability inventory](docs/admin-cli-capability-inventory.md) for verified API coverage and gaps.
|
|
12
12
|
Repository contributors start with [AGENTS.md](AGENTS.md).
|
|
13
13
|
|
|
14
|
+
Provider JSONL uploads: `tutti-ops diagnostics +upload-session-log --provider codex --file ./session.jsonl --yes`. See [session logs](docs/session-logs.md) for required server configuration, Web preview, and completion recovery.
|
|
15
|
+
|
|
14
16
|
## Discover and run
|
|
15
17
|
|
|
16
18
|
```bash
|
|
@@ -62,13 +64,19 @@ Legacy `admin-token` commands exit 8 with a Web migration message and send no re
|
|
|
62
64
|
Create a key there, then run:
|
|
63
65
|
|
|
64
66
|
```bash
|
|
65
|
-
tutti-ops auth login
|
|
67
|
+
tutti-ops auth login
|
|
66
68
|
tutti-ops auth whoami
|
|
67
69
|
```
|
|
68
70
|
|
|
69
71
|
The CLI stores the token in `~/.config/tutti-ops/config.json` with `0600`
|
|
70
72
|
permissions. CI can provide `TUTTI_ADMIN_TOKEN` instead.
|
|
71
|
-
|
|
73
|
+
|
|
74
|
+
The default API origin is `https://tutti.sh`. Admin console page URLs
|
|
75
|
+
(`admin.tutti.sh`, `admin.nextop.sh`, `admin.svenzeng.com`) are normalized to it.
|
|
76
|
+
`tutti.sh` and `api.tutti.sh` are the only origins the gateway publishes
|
|
77
|
+
tutti-server on, so `computer` commands require one of them; other origins reach
|
|
78
|
+
the admin and app-center APIs but not the Computer surface, and the CLI says so
|
|
79
|
+
instead of letting the request fail as a 401.
|
|
72
80
|
|
|
73
81
|
## App Release (legacy commands)
|
|
74
82
|
|
package/dist/config.d.ts
CHANGED
|
@@ -3,7 +3,10 @@ export interface StoredConfig {
|
|
|
3
3
|
token?: string;
|
|
4
4
|
}
|
|
5
5
|
declare const CONFIG_PATH: string;
|
|
6
|
+
export declare const DEFAULT_API_ORIGIN = "https://tutti.sh";
|
|
6
7
|
export declare function normalizeApiOrigin(input?: string): string;
|
|
8
|
+
export declare const LOOPBACK_HOSTS: string[];
|
|
9
|
+
export declare function assertOriginServesPath(origin: string, path: string): void;
|
|
7
10
|
export declare function readConfig(): Promise<StoredConfig>;
|
|
8
11
|
export declare function writeConfig(config: StoredConfig): Promise<void>;
|
|
9
12
|
export declare function resolveRuntimeConfig(options?: {
|
package/dist/config.js
CHANGED
|
@@ -2,16 +2,40 @@ import { chmod, mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
|
2
2
|
import { homedir } from 'node:os';
|
|
3
3
|
import { dirname, join } from 'node:path';
|
|
4
4
|
const CONFIG_PATH = join(homedir(), '.config', 'tutti-ops', 'config.json');
|
|
5
|
+
// This CLI drives three backends through one origin: tsh-admin-server
|
|
6
|
+
// (/api/admin/*), tsh-server (/api/desktop/v1/admin/app-center/*) and
|
|
7
|
+
// tutti-server (/api/desktop/v2/admin/tutti-v2/*). The gateway publishes
|
|
8
|
+
// tutti-server on the tutti.sh vhosts only, so those are the only origins that
|
|
9
|
+
// serve the whole surface. Any other admin origin answers the first two and
|
|
10
|
+
// silently falls through to account forward-auth on the third, which surfaces
|
|
11
|
+
// as an unexplained 401 rather than a routing error.
|
|
12
|
+
export const DEFAULT_API_ORIGIN = 'https://tutti.sh';
|
|
13
|
+
// Hostnames of the admin console SPA, which is served separately from the API.
|
|
14
|
+
const CONSOLE_ORIGINS = new Map([
|
|
15
|
+
['admin.tutti.sh', DEFAULT_API_ORIGIN],
|
|
16
|
+
['admin.nextop.sh', DEFAULT_API_ORIGIN],
|
|
17
|
+
['admin.svenzeng.com', DEFAULT_API_ORIGIN],
|
|
18
|
+
]);
|
|
5
19
|
export function normalizeApiOrigin(input) {
|
|
6
|
-
const raw = (input || process.env.TUTTI_ADMIN_URL ||
|
|
20
|
+
const raw = (input || process.env.TUTTI_ADMIN_URL || DEFAULT_API_ORIGIN).trim();
|
|
7
21
|
const url = new URL(raw);
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
22
|
+
return CONSOLE_ORIGINS.get(url.hostname) ?? url.origin;
|
|
23
|
+
}
|
|
24
|
+
// tutti-server is not published on every admin vhost. Naming that up front beats
|
|
25
|
+
// letting the request fall through to a 401 that looks like a token problem.
|
|
26
|
+
const TUTTI_SERVER_ADMIN_PREFIX = '/api/desktop/v2/admin/tutti-v2/';
|
|
27
|
+
const TUTTI_SERVER_HOSTS = new Set(['tutti.sh', 'api.tutti.sh']);
|
|
28
|
+
// Same loopback set the transport exempts from the HTTPS requirement. A guard
|
|
29
|
+
// that recognized fewer of them would block dev gateways the client allows.
|
|
30
|
+
export const LOOPBACK_HOSTS = ['localhost', '127.0.0.1', '[::1]'];
|
|
31
|
+
export function assertOriginServesPath(origin, path) {
|
|
32
|
+
if (!path.startsWith(TUTTI_SERVER_ADMIN_PREFIX))
|
|
33
|
+
return;
|
|
34
|
+
const { hostname } = new URL(origin);
|
|
35
|
+
if (TUTTI_SERVER_HOSTS.has(hostname) || LOOPBACK_HOSTS.includes(hostname))
|
|
36
|
+
return;
|
|
37
|
+
throw new Error(`${hostname} does not serve ${TUTTI_SERVER_ADMIN_PREFIX}* — Computer operations require ` +
|
|
38
|
+
`${[...TUTTI_SERVER_HOSTS].join(' or ')}. Re-run with --admin-url ${DEFAULT_API_ORIGIN}.`);
|
|
15
39
|
}
|
|
16
40
|
export async function readConfig() {
|
|
17
41
|
try {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAO1C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AAE3E,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/core/executor.js
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { HttpClient, HttpError } from '../http.js';
|
|
2
2
|
import { CliError } from './errors.js';
|
|
3
3
|
import { buildPlan, parseInput } from './input.js';
|
|
4
|
-
import { runWorkflow } from '../workflows/app.js';
|
|
4
|
+
import { runWorkflow as runAppWorkflow } from '../workflows/app.js';
|
|
5
|
+
import { runComputerWorkflow } from '../workflows/computer.js';
|
|
6
|
+
import { runSessionLogWorkflow } from '../workflows/sessionLogs.js';
|
|
7
|
+
const runWorkflow = (op, input, client) => {
|
|
8
|
+
if (op.command.startsWith('computer +'))
|
|
9
|
+
return runComputerWorkflow(op, input, client);
|
|
10
|
+
if (op.command === 'diagnostics +upload-session-log')
|
|
11
|
+
return runSessionLogWorkflow(op, input, client);
|
|
12
|
+
return runAppWorkflow(op, input, client);
|
|
13
|
+
};
|
|
5
14
|
export function envelope(operation, data, executed, complete, extra = {}) {
|
|
6
15
|
return { ok: true, operation, identity: { verification: executed ? 'request-accepted-by-server' : 'not-checked' }, data, meta: { contractVersion: '1', executed, complete, ...extra } };
|
|
7
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/core/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAA0B,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/core/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/http.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { assertOriginServesPath, LOOPBACK_HOSTS } from './config.js';
|
|
1
2
|
export class HttpError extends Error {
|
|
2
3
|
status;
|
|
3
4
|
body;
|
|
@@ -19,10 +20,16 @@ export class HttpClient {
|
|
|
19
20
|
const origin = new URL(this.options.adminUrl).origin;
|
|
20
21
|
if (!path.startsWith('/') || path.startsWith('//'))
|
|
21
22
|
throw new HttpError('Expected a relative API path', 400, undefined);
|
|
23
|
+
try {
|
|
24
|
+
assertOriginServesPath(origin, path);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
throw new HttpError(error.message, 400, undefined);
|
|
28
|
+
}
|
|
22
29
|
const url = new URL(path, origin);
|
|
23
30
|
if (url.origin !== origin)
|
|
24
31
|
throw new HttpError('Cross-origin API request denied', 400, undefined);
|
|
25
|
-
if (url.protocol !== 'https:' && !(url.protocol === 'http:' &&
|
|
32
|
+
if (url.protocol !== 'https:' && !(url.protocol === 'http:' && LOOPBACK_HOSTS.includes(url.hostname)))
|
|
26
33
|
throw new HttpError('Credentials require HTTPS (except localhost)', 400, undefined);
|
|
27
34
|
for (const [key, value] of Object.entries(request.params ?? {})) {
|
|
28
35
|
if (value === undefined || value === null)
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAU,SAAQ,KAAK;IACI;IAAyB;IAA/D,YAAY,OAAe,EAAW,MAAc,EAAW,IAAa;QAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAAzD,WAAM,GAAN,MAAM,CAAQ;QAAW,SAAI,GAAJ,IAAI,CAAS;IAAoB,CAAC;CAClG;AAeD,MAAM,OAAO,UAAU;IACQ;IAA7B,YAA6B,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAE3D,KAAK,CAAC,OAAO,CAAI,MAAc,EAAE,IAAY,EAAE,IAAc,EAAE,UAA0B,EAAE;QACzF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAC,MAAM,EAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAChG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM,IAAI,SAAS,CAAC,2CAA2C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACzI,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,8BAA8B,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACxH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClC,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;YAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAClG,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { stdin as input, stdout as output } from 'node:process';
|
|
|
4
4
|
import { Command, CommanderError } from 'commander';
|
|
5
5
|
import { CliError } from './core/errors.js';
|
|
6
6
|
import { AppApi } from './appApi.js';
|
|
7
|
-
import { CONFIG_PATH, readConfig, resolveRuntimeConfig, writeConfig } from './config.js';
|
|
7
|
+
import { CONFIG_PATH, DEFAULT_API_ORIGIN, readConfig, resolveRuntimeConfig, writeConfig } from './config.js';
|
|
8
8
|
import { HttpClient } from './http.js';
|
|
9
9
|
import { inspectZip } from './zip.js';
|
|
10
10
|
import { registerOperations } from './core/commands.js';
|
|
@@ -14,18 +14,18 @@ const ADMIN_TOKEN_INSPECT_PATH = '/api/admin/api/v1/admin/auth/token/inspect';
|
|
|
14
14
|
program
|
|
15
15
|
.name('tutti-ops')
|
|
16
16
|
.description('Internal Tutti operations CLI')
|
|
17
|
-
.option('--admin-url <url>', 'admin API URL, or admin
|
|
17
|
+
.option('--admin-url <url>', 'admin API URL, or admin console page URL')
|
|
18
18
|
.option('--token <token>', 'admin API token')
|
|
19
19
|
.option('--json', 'print JSON output');
|
|
20
20
|
const auth = program.command('auth');
|
|
21
21
|
auth
|
|
22
22
|
.command('login')
|
|
23
|
-
.option('--admin-url <url>', 'admin API URL, or admin
|
|
23
|
+
.option('--admin-url <url>', 'admin API URL, or admin console page URL')
|
|
24
24
|
.action(async (options) => {
|
|
25
25
|
const rl = createInterface({ input, output });
|
|
26
26
|
try {
|
|
27
27
|
const root = program.opts();
|
|
28
|
-
const adminUrl = (options.adminUrl || root.adminUrl ||
|
|
28
|
+
const adminUrl = (options.adminUrl || root.adminUrl || DEFAULT_API_ORIGIN).trim();
|
|
29
29
|
const token = (await rl.question('Paste Tutti admin token: ')).trim();
|
|
30
30
|
const runtime = await resolveRuntimeConfig({ adminUrl, token });
|
|
31
31
|
await inspectAdminToken(new HttpClient(runtime), token);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAA0B,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -128,7 +128,7 @@ api('release desktop-updates get', 'read', 'GET', `${A}/app-config/desktop-updat
|
|
|
128
128
|
api('release desktop-updates change', 'write', 'POST', `${A}/app-config/desktop-updates/products/change`, dto('ChangeDesktopUpdateProductRequest'));
|
|
129
129
|
for (const action of ['approve', 'reject', 'withdraw'])
|
|
130
130
|
api(`release desktop-updates ${action}`, 'write', 'POST', `${A}/app-config/desktop-updates/approvals/${action}`, object({ approvalId: s, ...(action === 'reject' ? { reason: s } : {}) }, action === 'reject' ? ['approvalId', 'reason'] : ['approvalId']));
|
|
131
|
-
api('computer devices list', 'read', 'GET', C, undefined, object({ nameQuery: s, connectionStatus: { type: 'integer', enum: [1, 2] }, platform: s, hostArtifactVersion: s, pageSize, pageToken: s }));
|
|
131
|
+
api('computer devices list', 'read', 'GET', C, undefined, object({ nameQuery: s, ownerQuery: s, connectionStatus: { type: 'integer', enum: [1, 2] }, platform: s, hostArtifactVersion: s, pageSize, pageToken: s }));
|
|
132
132
|
api('computer devices get', 'read', 'GET', `${C}/{computerId}`);
|
|
133
133
|
api('computer log-recalls list', 'read', 'GET', `${C}/{computerId}/runtime-log-recalls`, undefined, object({ pageSize, pageToken: s }));
|
|
134
134
|
api('computer log-recalls get', 'read', 'GET', `${C}/{computerId}/runtime-log-recalls/{taskId}`);
|
|
@@ -167,8 +167,8 @@ export function findOperation(name) {
|
|
|
167
167
|
const upload = { appId: s, fileName: s, contentType: s, sizeBytes: int64, sha256: { type: 'string', pattern: '^[a-fA-F0-9]{64}$' } };
|
|
168
168
|
api('app assets create-upload-session', 'write', 'POST', `${D}/asset-upload-sessions`, object({ ...upload, purpose: enumeration('app_icon') }, [...Object.keys(upload), 'purpose']));
|
|
169
169
|
api('app artifacts create-upload-session', 'write', 'POST', `${D}/artifact-upload-sessions`, object({ ...upload, versionId: s }, [...Object.keys(upload), 'versionId']));
|
|
170
|
-
function workflow(command, access, fields, required, steps, local = false) {
|
|
171
|
-
operations.push({ id: command.replaceAll(' ', '.'), command, description: command, access, kind: local ? 'local' : 'workflow', effects: access === 'write' ? ['remote mutation', ...steps] : [], scope: 'app-center', fields: Object.entries(fields).map(([key, schema]) => ({ flag: kebab(key), key, in: 'local', schema, required: required.includes(key), identity: key
|
|
170
|
+
function workflow(command, access, fields, required, steps, local = false, extra = {}) {
|
|
171
|
+
operations.push({ id: command.replaceAll(' ', '.'), command, description: command, access, kind: local ? 'local' : 'workflow', effects: access === 'write' ? ['remote mutation', ...steps] : [], scope: 'app-center', fields: Object.entries(fields).map(([key, schema]) => ({ flag: kebab(key), key, in: 'local', schema, required: required.includes(key), identity: /Id$/.test(key) })), params: object(), confirmation: access === 'write', steps, source: 'src/appApi.ts; src/zip.ts', ...extra });
|
|
172
172
|
}
|
|
173
173
|
workflow('app +validate', 'read', { zip: s }, ['zip'], ['inspect local ZIP and manifest'], true);
|
|
174
174
|
workflow('app +inspect', 'read', { appId: s, include: arr(enumeration('versions', 'latest')) }, ['appId'], ['list catalog', 'optionally list versions']);
|
|
@@ -177,6 +177,11 @@ workflow('app +sync-metadata', 'write', { appId: s, zip: s, reason: s }, ['appId
|
|
|
177
177
|
workflow('app +publish', 'write', { appId: s, version: s, latest: b, reason: s }, ['appId', 'version'], ['publish version', 'optionally set latest']);
|
|
178
178
|
workflow('app +create', 'write', { appId: s, name: s, description: s, icon: s, iconUrl: s, status: enumeration('draft', 'published', 'hidden', 'disabled', 'archived') }, ['appId', 'name'], ['optionally upload icon', 'create catalog entry']);
|
|
179
179
|
workflow('app +edit', 'write', { appId: s, name: s, description: s, icon: s, iconUrl: s, status: enumeration('draft', 'published', 'hidden', 'disabled', 'archived') }, ['appId'], ['optionally upload icon', 'update catalog entry']);
|
|
180
|
+
const logRange = enumeration('1h', '3h', '1d', '3d', '14d', '1_hour', '3_hours', '1_day', '3_days', '14_days');
|
|
181
|
+
workflow('computer +collect-logs', 'write', { computerId: s, range: logRange, incidentAt: s, wait: b, timeout: s }, ['computerId', 'range'], ['list existing recalls', 'reuse matching downloadable recall when possible', 'otherwise create a recall', 'optionally wait for completion and create a download URL'], false, { scope: 'computer', source: 'tutti-server computer runtime log API' });
|
|
182
|
+
workflow('computer +download-logs', 'read', { computerId: s, taskId: s }, ['computerId', 'taskId'], ['create a download URL for an existing downloadable recall'], false, { scope: 'computer', source: 'tutti-server computer runtime log API' });
|
|
183
|
+
workflow('diagnostics +upload-session-log', 'write', { provider: s, file: s }, ['provider', 'file'], ['prepare a private JSONL snapshot', 'create upload record', 'PUT file with signed URL', 'confirm stored file'], false, { scope: 'session-logs', permission: 'session_logs.write', source: 'tsh-admin-server session log upload API', description: 'Upload one JSONL file tagged with its provider' });
|
|
184
|
+
api('diagnostics session-logs complete', 'write', 'POST', `${A}/session-log-uploads/{uploadId}/complete`, undefined, object(), { scope: 'session-logs', permission: 'session_logs.write', source: 'tsh-admin-server session log upload API', description: 'Confirm an existing uploaded object; safe to repeat' });
|
|
180
185
|
const pages = [
|
|
181
186
|
['access.landing-waitlist.list', { location: 'data', kind: 'page', key: 'page_num', size: 'page_size', items: 'items', total: 'total' }],
|
|
182
187
|
['brand.list', { location: 'data', kind: 'page', key: 'page_num', size: 'page_size', items: 'items', total: 'total' }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/operations/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/operations/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,EAA+B,MAAM,kBAAkB,CAAC;AAEhH,MAAM,CAAC,GAAG,mBAAmB,CAAC;AAC9B,MAAM,CAAC,GAAG,kCAAkC,CAAC;AAC7C,MAAM,CAAC,GAAG,0CAA0C,CAAC;AACrD,MAAM,WAAW,GAAG,CAAC,GAAG,MAAgB,EAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACxF,MAAM,KAAK,GAAW,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;AAC5E,MAAM,QAAQ,GAAW,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACxE,MAAM,GAAG,GAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;AACnE,MAAM,GAAG,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAClE,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,GAAG,IAAc,EAAU,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACtP,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,UAAkC,EAAE,WAAqB,EAAE,EAAU,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,GAAG,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAChP,MAAM,GAAG,GAAG,CAAC,IAAY,EAAU,EAAE;IACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;IAC5E,OAAO,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;AACF,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,UAAU,GAAgB,EAAE,CAAC;AAC1C,SAAS,GAAG,CAAC,OAAe,EAAE,MAAsB,EAAE,MAAc,EAAE,IAAY,EAAE,IAAa,EAAE,SAAiB,MAAM,EAAE,EAAE,QAA4B,EAAE;IAC1J,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACpI,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IACjK,MAAM,EAAE,GAAc,EAAE,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;QACjH,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;QACnH,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,wEAAwE,EAAE,GAAG,KAAK,EAAE,CAAC;IAC3G,iGAAiG;IACjG,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAU,EAAE,CAAC;QAC/E,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;YACpE,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5D,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBAAE,IAAI,GAAG,cAAc,CAAC;YACxF,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,IAAI,GAAG,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;YACvE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1J,CAAC;IACH,CAAC;IACD,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,GAAG,CAAC,kBAAkB,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACzD,GAAG,CAAC,aAAa,EAAC,MAAM,EAAC,MAAM,EAAC,GAAG,CAAC,2BAA2B,EAAC,MAAM,CAAC,EAAC,aAAa,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,IAAI,CAAC,EAAC,EAAC,CAAC,CAAC,CAAC;AACtH,GAAG,CAAC,YAAY,EAAC,MAAM,EAAC,MAAM,EAAC,GAAG,CAAC,cAAc,EAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAC5E,GAAG,CAAC,cAAc,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,gBAAgB,EAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAElF,KAAK,MAAM,CAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,CAAC,IAAI;IACxC,CAAC,MAAM,EAAC,KAAK,EAAC,EAAE,EAAC,8BAA8B,CAAC,EAAE,CAAC,KAAK,EAAC,KAAK,EAAC,OAAO,EAAC,4BAA4B,CAAC;IACpG,CAAC,QAAQ,EAAC,MAAM,EAAC,EAAE,EAAC,+BAA+B,CAAC,EAAE,CAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAC,+BAA+B,CAAC;IACjH,CAAC,eAAe,EAAC,MAAM,EAAC,cAAc,EAAC,qCAAqC,CAAC;CAC9E;IAAE,GAAG,CAAC,sBAAsB,MAAM,EAAE,EAAE,CAAC,MAAM,EAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,uBAAuB,MAAM,EAAE,EAAC,MAAM,KAAG,KAAK,CAAA,CAAC,CAAA,SAAS,CAAA,CAAC,CAAA,GAAG,CAAC,IAAI,CAAC,EAAC,MAAM,KAAG,KAAK,CAAA,CAAC,CAAA,GAAG,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,MAAM,EAAE,CAAC,CAAC;AACvM,GAAG,CAAC,gCAAgC,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,8BAA8B,EAAC,SAAS,EAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;AAC1I,GAAG,CAAC,mCAAmC,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,8BAA8B,EAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;AACxI,KAAK,MAAM,CAAC,MAAM,EAAC,MAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAC,MAAM,EAAC,iCAAiC,CAAC,EAAC,CAAC,MAAM,EAAC,aAAa,EAAC,kCAAkC,CAAC,EAAC,CAAC,YAAY,EAAC,oBAAoB,EAAC,wCAAwC,CAAC,CAAC,EAAE,CAAC;IAC9N,MAAM,EAAE,GAAG,GAAG,CAAC,2BAA2B,MAAM,EAAE,EAAC,MAAM,KAAG,MAAM,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,2BAA2B,MAAM,EAAE,EAAC,GAAG,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,EAAC,EAAC,KAAK,EAAC,OAAO,EAAC,CAAC,CAAC;IACrK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,UAAU,EAAC,GAAG,EAAC,UAAU,EAAC,EAAE,EAAC,SAAS,EAAC,MAAM,EAAC,CAAC,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,CAAC,CAAC;AACrG,CAAC;AACD,GAAG,CAAC,0BAA0B,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,eAAe,EAAC,SAAS,EAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,CAAC;AAC/G,GAAG,CAAC,yBAAyB,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,oBAAoB,EAAC,SAAS,EAAC,MAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,EAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC7G,GAAG,CAAC,iCAAiC,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,uBAAuB,EAAC,SAAS,EAAC,MAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,CAAC,QAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtI,GAAG,CAAC,4BAA4B,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,eAAe,EAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC,CAAC;AAC1G,GAAG,CAAC,4BAA4B,EAAC,OAAO,EAAC,QAAQ,EAAC,GAAG,CAAC,oBAAoB,EAAC,SAAS,EAAC,MAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,EAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpH,GAAG,CAAC,0BAA0B,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,yBAAyB,EAAC,OAAO,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAC,IAAI,CAAC,CAAC,CAAC;AAC9H,GAAG,CAAC,gCAAgC,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,0BAA0B,EAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC,CAAC;AAC7H,GAAG,CAAC,0BAA0B,EAAC,MAAM,EAAC,MAAM,EAAC,GAAG,CAAC,2BAA2B,EAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC,CAAC;AACzH,GAAG,CAAC,sCAAsC,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,4CAA4C,EAAC,OAAO,CAAC,SAAS,CAAC,6BAA6B,CAAC,EAAC,IAAI,CAAC,CAAC,CAAC;AACnK,KAAK,MAAM,CAAC,MAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAC,uBAAuB,CAAC,EAAC,CAAC,OAAO,EAAC,wBAAwB,CAAC,EAAC,CAAC,QAAQ,EAAC,yBAAyB,CAAC,CAAC;IAAE,GAAG,CAAC,qBAAqB,MAAM,EAAE,EAAC,MAAM,KAAG,MAAM,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,gBAAgB,MAAM,EAAE,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9P,KAAK,MAAM,CAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,CAAC,IAAI;IACvC,CAAC,kBAAkB,EAAC,kBAAkB,EAAC,8BAA8B,EAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAC,aAAa,EAAC,+BAA+B,EAAC,OAAO,CAAC;IAC3J,CAAC,oBAAoB,EAAC,oBAAoB,EAAC,+BAA+B,EAAC,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAC,oBAAoB,EAAC,+BAA+B,EAAC,OAAO,CAAC;IACxK,CAAC,kBAAkB,EAAC,YAAY,EAAC,6BAA6B,EAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAC,QAAQ,EAAC,sBAAsB,EAAC,OAAO,CAAC;IACtI,CAAC,0BAA0B,EAAC,cAAc,EAAC,2BAA2B,EAAC,OAAO,CAAC,EAAE,CAAC,sBAAsB,EAAC,UAAU,EAAC,yBAAyB,EAAC,OAAO,CAAC;IACtJ,CAAC,WAAW,EAAC,KAAK,EAAC,uBAAuB,EAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAC,OAAO,EAAC,wBAAwB,EAAC,MAAM,CAAC;CACnG;IAAE,GAAG,CAAC,eAAe,OAAO,EAAE,EAAC,MAAM,EAAC,MAAM,EAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAE9F,MAAM,QAAQ,GAAG,GAAG,CAAC,iBAAiB,CAAC;AACvC,MAAM,KAAK,GAAG,MAAM,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAC9C,GAAG,CAAC,sBAAsB,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,QAAQ,SAAS,EAAC,SAAS,EAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;AAC7G,GAAG,CAAC,qBAAqB,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,QAAQ,mBAAmB,EAAC,SAAS,EAAC,KAAK,CAAC,CAAC;AACvF,GAAG,CAAC,0BAA0B,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,QAAQ,4BAA4B,EAAC,SAAS,EAAC,KAAK,CAAC,CAAC;AACrG,GAAG,CAAC,0BAA0B,EAAC,MAAM,EAAC,MAAM,EAAC,GAAG,QAAQ,kCAAkC,EAAC,GAAG,CAAC,mCAAmC,CAAC,EAAC,KAAK,CAAC,CAAC;AAC3I,GAAG,CAAC,yBAAyB,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,QAAQ,2BAA2B,EAAC,GAAG,CAAC,kCAAkC,CAAC,EAAC,KAAK,CAAC,CAAC;AACnI,GAAG,CAAC,sBAAsB,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,QAAQ,6CAA6C,EAAC,SAAS,EAAC,KAAK,CAAC,CAAC;AAClH,GAAG,CAAC,2BAA2B,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,QAAQ,mBAAmB,EAAC,SAAS,EAAC,MAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,EAAC,CAAC,QAAQ,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrI,GAAG,CAAC,0BAA0B,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,QAAQ,oBAAoB,EAAC,SAAS,EAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;AACpI,GAAG,CAAC,yBAAyB,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,QAAQ,iBAAiB,EAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;AACpH,KAAK,MAAM,MAAM,IAAI,CAAC,SAAS,EAAC,QAAQ,EAAC,YAAY,EAAC,QAAQ,CAAC;IAAE,GAAG,CAAC,kBAAkB,MAAM,EAAE,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,QAAQ,UAAU,MAAM,EAAE,EAAC,SAAS,EAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;AAEtL,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,WAAW,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,CAAC,CAAC,CAAC,EAAC,EAAC,CAAC,QAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACjG,GAAG,CAAC,kBAAkB,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACjD,GAAG,CAAC,oBAAoB,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,OAAO,EAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,EAAC,EAAC,aAAa,EAAC,CAAC,CAAC,CAAC;AACpH,GAAG,CAAC,oBAAoB,EAAC,OAAO,EAAC,OAAO,EAAC,GAAG,CAAC,eAAe,EAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,EAAC,EAAC,aAAa,EAAC,oBAAoB,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AACpJ,GAAG,CAAC,oBAAoB,EAAC,OAAO,EAAC,QAAQ,EAAC,GAAG,CAAC,eAAe,EAAC,SAAS,EAAC,MAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AAC5F,GAAG,CAAC,mBAAmB,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AACnE,GAAG,CAAC,qBAAqB,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,wBAAwB,EAAC,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,EAAC,EAAC,iBAAiB,EAAC,KAAK,EAAC,CAAC,CAAC,CAAC;AAC7I,KAAK,MAAM,MAAM,IAAI,CAAC,SAAS,EAAC,YAAY,EAAC,SAAS,CAAC;IAAE,GAAG,CAAC,gBAAgB,MAAM,EAAE,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,sCAAsC,MAAM,EAAE,EAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;AAE1L,MAAM,CAAC,GAAG,GAAG,CAAC,wBAAwB,CAAC;AACvC,MAAM,CAAC,GAAG,GAAG,CAAC,6BAA6B,CAAC;AAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,EAAC,MAAM,EAAC,WAAW,CAAC,cAAc,EAAC,YAAY,CAAC,EAAC,EAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpF,MAAM,IAAI,GAAG,EAAC,QAAQ,EAAC,WAAW,CAAC,WAAW,EAAC,OAAO,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,CAAC;AACnE,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,EAAC,UAAU,CAAC,CAAC;AACtD,GAAG,CAAC,wBAAwB,EAAC,MAAM,EAAC,MAAM,EAAC,GAAG,CAAC,aAAa,EAAC,MAAM,CAAC,EAAC,QAAQ,EAAC,WAAW,CAAC,WAAW,EAAC,OAAO,EAAC,EAAE,CAAC,EAAC,CAAC,EAAC,MAAM,CAAC,CAAC;AAC5H,GAAG,CAAC,4BAA4B,EAAC,MAAM,EAAC,MAAM,EAAC,GAAG,CAAC,gBAAgB,EAAC,MAAM,CAAC,IAAI,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC;AAC3G,GAAG,CAAC,4BAA4B,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,qBAAqB,EAAC,MAAM,CAAC,EAAC,GAAG,IAAI,EAAC,OAAO,EAAC,CAAC,EAAC,mBAAmB,EAAC,KAAK,EAAC,EAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,SAAS,EAAC,qBAAqB,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC;AAC/L,GAAG,CAAC,+BAA+B,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,cAAc,EAAC,MAAM,CAAC,EAAC,GAAG,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAC,CAAC,EAAC,gBAAgB,EAAC,CAAC,EAAC,UAAU,EAAC,CAAC,EAAC,YAAY,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,YAAY,EAAC,CAAC,EAAC,EAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,YAAY,EAAC,UAAU,EAAC,kBAAkB,EAAC,YAAY,EAAC,cAAc,EAAC,UAAU,EAAC,cAAc,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC;AACvT,GAAG,CAAC,0BAA0B,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,4BAA4B,EAAC,MAAM,CAAC,EAAC,GAAG,IAAI,EAAC,OAAO,EAAC,CAAC,EAAC,EAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,SAAS,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC;AACpJ,GAAG,CAAC,0BAA0B,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,SAAS,EAAC,MAAM,CAAC,EAAC,GAAG,IAAI,EAAC,mBAAmB,EAAC,KAAK,EAAC,EAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,qBAAqB,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC;AAC7J,GAAG,CAAC,yBAAyB,EAAC,MAAM,EAAC,MAAM,EAAC,GAAG,CAAC,kBAAkB,EAAC,MAAM,CAAC,EAAC,GAAG,IAAI,EAAC,KAAK,EAAC,QAAQ,EAAC,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC;AAC9H,GAAG,CAAC,wBAAwB,EAAC,MAAM,EAAC,MAAM,EAAC,GAAG,CAAC,kBAAkB,EAAC,MAAM,CAAC,EAAC,UAAU,EAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ,EAAC,eAAe,EAAC,CAAC,EAAC,EAAC,CAAC,YAAY,EAAC,UAAU,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC;AAClK,MAAM,QAAQ,GAAG,EAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ,EAAC,UAAU,EAAC,CAAC,EAAC,aAAa,EAAC,CAAC,EAAC,aAAa,EAAC,CAAC,EAAC,SAAS,EAAC,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,mBAAmB,EAAC,KAAK,EAAC,CAAC;AACvI,GAAG,CAAC,0BAA0B,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,4CAA4C,EAAC,MAAM,CAAC,QAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC;AAE9I,GAAG,CAAC,qBAAqB,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAC7E,KAAK,MAAM,CAAC,MAAM,EAAC,MAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAC,EAAE,EAAC,+BAA+B,CAAC,EAAC,CAAC,QAAQ,EAAC,SAAS,EAAC,+BAA+B,CAAC,EAAC,CAAC,QAAQ,EAAC,SAAS,EAAC,+BAA+B,CAAC,CAAC;IAAE,GAAG,CAAC,kBAAkB,MAAM,EAAE,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,iCAAiC,MAAM,EAAE,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACrS,GAAG,CAAC,8BAA8B,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,qDAAqD,EAAC,SAAS,EAAC,MAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AACvI,GAAG,CAAC,sBAAsB,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,oDAAoD,EAAC,SAAS,EAAC,MAAM,CAAC,EAAC,IAAI,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,CAAC,EAAC,OAAO,EAAC,EAAE,EAAC,EAAC,CAAC,CAAC,CAAC;AACjK,KAAK,MAAM,CAAC,MAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAC,iBAAiB,CAAC,EAAC,CAAC,SAAS,EAAC,iBAAiB,CAAC,EAAC,CAAC,QAAQ,EAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;IACxH,GAAG,CAAC,OAAO,MAAM,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;IAChE,GAAG,CAAC,OAAO,MAAM,WAAW,EAAC,MAAM,EAAC,MAAM,EAAC,GAAG,CAAC,eAAe,IAAI,WAAW,EAAC,MAAM,CAAC,EAAC,QAAQ,EAAC,GAAG,EAAC,EAAC,CAAC,UAAU,CAAC,CAAC,EAAC,MAAM,EAAE,EAAC,EAAC,UAAU,EAAC,mEAAmE,EAAC,CAAC,CAAC;IAC7M,GAAG,CAAC,OAAO,MAAM,UAAU,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,eAAe,IAAI,EAAE,EAAC,MAAM,CAAC,EAAC,QAAQ,EAAC,GAAG,EAAC,WAAW,EAAC,CAAC,EAAC,YAAY,EAAC,CAAC,EAAC,EAAC,CAAC,UAAU,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACrJ,GAAG,CAAC,OAAO,MAAM,WAAW,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,eAAe,IAAI,WAAW,EAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;AAClH,CAAC;AACD,GAAG,CAAC,6BAA6B,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,6BAA6B,EAAC,SAAS,EAAC,MAAM,CAAC,EAAC,gBAAgB,EAAC,QAAQ,EAAC,iBAAiB,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AACpJ,GAAG,CAAC,gCAAgC,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,6CAA6C,EAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;AAChJ,KAAK,MAAM,MAAM,IAAI,CAAC,SAAS,EAAC,QAAQ,EAAC,UAAU,CAAC;IAAE,GAAG,CAAC,2BAA2B,MAAM,EAAE,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,yCAAyC,MAAM,EAAE,EAAC,MAAM,CAAC,EAAC,UAAU,EAAC,CAAC,EAAC,GAAG,CAAC,MAAM,KAAG,QAAQ,CAAA,CAAC,CAAA,EAAC,MAAM,EAAC,CAAC,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,EAAC,MAAM,KAAG,QAAQ,CAAA,CAAC,CAAA,CAAC,YAAY,EAAC,QAAQ,CAAC,CAAA,CAAC,CAAA,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAEzR,GAAG,CAAC,uBAAuB,EAAC,MAAM,EAAC,KAAK,EAAC,CAAC,EAAC,SAAS,EAAC,MAAM,CAAC,EAAC,SAAS,EAAC,CAAC,EAAC,UAAU,EAAC,CAAC,EAAC,gBAAgB,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,mBAAmB,EAAC,CAAC,EAAC,QAAQ,EAAC,SAAS,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AAC5L,GAAG,CAAC,sBAAsB,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC7D,GAAG,CAAC,2BAA2B,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,mCAAmC,EAAC,SAAS,EAAC,MAAM,CAAC,EAAC,QAAQ,EAAC,SAAS,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AAC/H,GAAG,CAAC,0BAA0B,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;AAC9F,GAAG,CAAC,6BAA6B,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,mCAAmC,EAAC,MAAM,CAAC,EAAC,UAAU,EAAC,CAAC,EAAC,WAAW,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAC,EAAC,CAAC,YAAY,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC5L,GAAG,CAAC,mCAAmC,EAAC,MAAM,EAAC,MAAM,EAAC,GAAG,CAAC,gEAAgE,EAAC,MAAM,CAAC,EAAC,UAAU,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,EAAC,CAAC,YAAY,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpL,MAAM,MAAM,GAAG,MAAM,CAAC,EAAC,MAAM,EAAC,WAAW,CAAC,QAAQ,EAAC,UAAU,CAAC,EAAC,EAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5E,GAAG,CAAC,oBAAoB,EAAC,MAAM,EAAC,KAAK,EAAC,kDAAkD,EAAC,SAAS,EAAC,MAAM,CAAC,MAAM,EAAC,EAAC,OAAO,EAAC,CAAC,EAAC,MAAM,EAAC,WAAW,CAAC,SAAS,EAAC,UAAU,EAAC,UAAU,CAAC,EAAC,KAAK,EAAC,QAAQ,EAAC,MAAM,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AAC3M,GAAG,CAAC,sBAAsB,EAAC,OAAO,EAAC,MAAM,EAAC,kDAAkD,EAAC,GAAG,CAAC,mCAAmC,CAAC,EAAC,MAAM,CAAC,CAAC;AAC9I,GAAG,CAAC,oCAAoC,EAAC,OAAO,EAAC,KAAK,EAAC,gEAAgE,EAAC,GAAG,CAAC,0CAA0C,CAAC,EAAC,MAAM,CAAC,CAAC;AAChL,GAAG,CAAC,wBAAwB,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAC7E,GAAG,CAAC,uBAAuB,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,4CAA4C,EAAC,SAAS,EAAC,MAAM,CAAC,EAAC,YAAY,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,gBAAgB,EAAC,EAAC,CAAC,CAAC,CAAC;AACrK,GAAG,CAAC,sBAAsB,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,kDAAkD,EAAC,SAAS,EAAC,MAAM,CAAC,EAAC,YAAY,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,gBAAgB,EAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,CAAC,EAAC,OAAO,EAAC,EAAE,EAAC,EAAC,CAAC,CAAC,CAAC;AAC/N,GAAG,CAAC,qBAAqB,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,CAAC,+BAA+B,EAAC,SAAS,EAAC,MAAM,CAAC,EAAC,MAAM,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,qBAAqB,EAAC,EAAC,CAAC,CAAC,CAAC;AAErJ,MAAM,MAAM,GAAG,GAAG,CAAC,qBAAqB,CAAC;AACzC,GAAG,CAAC,0BAA0B,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,cAAc,CAAC,CAAC;AACrE,MAAM,MAAM,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,gBAAgB,EAAC,CAAC,EAAC,CAAC;AAChD,GAAG,CAAC,0BAA0B,EAAC,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,QAAQ,EAAC,MAAM,CAAC,EAAC,GAAG,MAAM,EAAC,QAAQ,EAAC,CAAC,EAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,CAAC,EAAC,EAAC,CAAC,MAAM,EAAC,IAAI,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3J,GAAG,CAAC,2BAA2B,EAAC,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,eAAe,EAAC,MAAM,CAAC,EAAC,GAAG,MAAM,EAAC,QAAQ,EAAC,CAAC,EAAC,QAAQ,EAAC,SAAS,EAAC,CAAC,EAAC,EAAC,CAAC,MAAM,EAAC,IAAI,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACrJ,MAAM,OAAO,GAAG,MAAM,CAAC,EAAC,WAAW,EAAC,GAAG,CAAC,CAAC,CAAC,EAAC,MAAM,EAAC,GAAG,CAAC,CAAC,CAAC,EAAC,OAAO,EAAC,GAAG,CAAC,CAAC,CAAC,EAAC,OAAO,EAAC,GAAG,CAAC,CAAC,CAAC,EAAC,SAAS,EAAC,GAAG,CAAC,CAAC,CAAC,EAAC,OAAO,EAAC,GAAG,CAAC,CAAC,CAAC,EAAC,cAAc,EAAC,GAAG,CAAC,CAAC,CAAC,EAAC,YAAY,EAAC,GAAG,CAAC,CAAC,CAAC,EAAC,oBAAoB,EAAC,WAAW,CAAC,4BAA4B,EAAC,+BAA+B,EAAC,4BAA4B,CAAC,EAAC,CAAC,CAAC;AAC/R,MAAM,IAAI,GAAG,EAAC,GAAG,MAAM,EAAC,WAAW,EAAC,WAAW,CAAC,uBAAuB,EAAC,uBAAuB,EAAC,uBAAuB,CAAC,EAAC,OAAO,EAAC,oBAAoB,EAAC,CAAC,EAAC,CAAC;AACzJ,GAAG,CAAC,wBAAwB,EAAC,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,sBAAsB,EAAC,MAAM,CAAC,EAAC,GAAG,IAAI,EAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,CAAC,EAAC,EAAC,CAAC,MAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/I,GAAG,CAAC,yBAAyB,EAAC,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,6BAA6B,EAAC,MAAM,CAAC,EAAC,GAAG,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,CAAC,EAAC,EAAC,CAAC,MAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzI,GAAG,CAAC,0BAA0B,EAAC,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,eAAe,EAAC,MAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,gBAAgB,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AACxH,GAAG,CAAC,+BAA+B,EAAC,OAAO,EAAC,MAAM,EAAC,2DAA2D,EAAC,GAAG,CAAC,4BAA4B,CAAC,EAAC,MAAM,EAAE,EAAC,EAAC,OAAO,EAAC,CAAC,sBAAsB,EAAC,eAAe,CAAC,EAAC,CAAC,CAAC;AAE9M,KAAK,MAAM,CAAC,OAAO,EAAC,MAAM,CAAC,IAAI;IAC7B,CAAC,uBAAuB,EAAC,sDAAsD,CAAC;IAChF,CAAC,sBAAsB,EAAC,sDAAsD,CAAC;IAC/E,CAAC,yBAAyB,EAAC,sDAAsD,CAAC;IAClF,CAAC,8BAA8B,EAAC,2EAA2E,CAAC;IAC5G,CAAC,iCAAiC,EAAC,2EAA2E,CAAC;CACvG;IAAE,UAAU,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAC,GAAG,CAAC,EAAC,OAAO,EAAC,WAAW,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,OAAO,EAAC,IAAI,EAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAC,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,EAAE,EAAC,MAAM,EAAC,MAAM,EAAE,EAAC,YAAY,EAAC,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,sBAAsB,EAAC,CAAC,CAAC;AAE1Q,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,MAAM,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,WAAW,EAAC,CAAC,EAAC,SAAS,EAAC,KAAK,EAAC,MAAM,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,mBAAmB,EAAW,EAAC,CAAC;AAC/H,GAAG,CAAC,kCAAkC,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,wBAAwB,EAAC,MAAM,CAAC,EAAC,GAAG,MAAM,EAAC,OAAO,EAAC,WAAW,CAAC,UAAU,CAAC,EAAC,EAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3K,GAAG,CAAC,qCAAqC,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,2BAA2B,EAAC,MAAM,CAAC,EAAC,GAAG,MAAM,EAAC,SAAS,EAAC,CAAC,EAAC,EAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAE/J,SAAS,QAAQ,CAAC,OAAe,EAAE,MAAsB,EAAE,MAA6B,EAAE,QAAkB,EAAE,KAAe,EAAE,KAAK,GAAG,KAAK,EAAE,QAA4B,EAAE;IAC1K,UAAU,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAC,GAAG,CAAC,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,UAAU,EAAC,OAAO,EAAC,MAAM,KAAG,OAAO,CAAA,CAAC,CAAA,CAAC,iBAAiB,EAAC,GAAG,KAAK,CAAC,CAAA,CAAC,CAAA,EAAE,EAAC,KAAK,EAAC,YAAY,EAAC,MAAM,EAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAC,MAAM,CAAC,EAAC,EAAE,CAAA,CAAC,EAAC,IAAI,EAAC,KAAK,CAAC,GAAG,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,OAAO,EAAC,MAAM,EAAC,QAAQ,EAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAC,QAAQ,EAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC,EAAC,MAAM,EAAC,MAAM,EAAE,EAAC,YAAY,EAAC,MAAM,KAAG,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,2BAA2B,EAAC,GAAG,KAAK,EAAC,CAAC,CAAC;AACvb,CAAC;AACD,QAAQ,CAAC,eAAe,EAAC,MAAM,EAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,CAAC,KAAK,CAAC,EAAC,CAAC,gCAAgC,CAAC,EAAC,IAAI,CAAC,CAAC;AACzF,QAAQ,CAAC,cAAc,EAAC,MAAM,EAAC,EAAC,KAAK,EAAC,CAAC,EAAC,OAAO,EAAC,GAAG,CAAC,WAAW,CAAC,UAAU,EAAC,QAAQ,CAAC,CAAC,EAAC,EAAC,CAAC,OAAO,CAAC,EAAC,CAAC,cAAc,EAAC,0BAA0B,CAAC,CAAC,CAAC;AAC9I,QAAQ,CAAC,cAAc,EAAC,OAAO,EAAC,EAAC,KAAK,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,EAAC,CAAC,OAAO,EAAC,KAAK,CAAC,EAAC,CAAC,cAAc,EAAC,kCAAkC,EAAC,iBAAiB,EAAC,4BAA4B,EAAC,gBAAgB,EAAC,oBAAoB,EAAC,uBAAuB,CAAC,CAAC,CAAC;AAC9P,QAAQ,CAAC,oBAAoB,EAAC,OAAO,EAAC,EAAC,KAAK,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,EAAC,CAAC,OAAO,EAAC,KAAK,CAAC,EAAC,CAAC,cAAc,EAAC,YAAY,EAAC,4BAA4B,CAAC,CAAC,CAAC;AAC3I,QAAQ,CAAC,cAAc,EAAC,OAAO,EAAC,EAAC,KAAK,EAAC,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,EAAC,CAAC,OAAO,EAAC,SAAS,CAAC,EAAC,CAAC,iBAAiB,EAAC,uBAAuB,CAAC,CAAC,CAAC;AACvI,QAAQ,CAAC,aAAa,EAAC,OAAO,EAAC,EAAC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,WAAW,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,MAAM,EAAC,WAAW,CAAC,OAAO,EAAC,WAAW,EAAC,QAAQ,EAAC,UAAU,EAAC,UAAU,CAAC,EAAC,EAAC,CAAC,OAAO,EAAC,MAAM,CAAC,EAAC,CAAC,wBAAwB,EAAC,sBAAsB,CAAC,CAAC,CAAC;AAC1N,QAAQ,CAAC,WAAW,EAAC,OAAO,EAAC,EAAC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,WAAW,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,MAAM,EAAC,WAAW,CAAC,OAAO,EAAC,WAAW,EAAC,QAAQ,EAAC,UAAU,EAAC,UAAU,CAAC,EAAC,EAAC,CAAC,OAAO,CAAC,EAAC,CAAC,wBAAwB,EAAC,sBAAsB,CAAC,CAAC,CAAC;AACjN,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,EAAC,OAAO,EAAC,QAAQ,EAAC,SAAS,CAAC,CAAC;AACtG,QAAQ,CAAC,wBAAwB,EAAC,OAAO,EAAC,EAAC,UAAU,EAAC,CAAC,EAAC,KAAK,EAAC,QAAQ,EAAC,UAAU,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,EAAC,CAAC,YAAY,EAAC,OAAO,CAAC,EAAC,CAAC,uBAAuB,EAAC,kDAAkD,EAAC,2BAA2B,EAAC,0DAA0D,CAAC,EAAC,KAAK,EAAC,EAAC,KAAK,EAAC,UAAU,EAAC,MAAM,EAAC,uCAAuC,EAAC,CAAC,CAAC;AAC1W,QAAQ,CAAC,yBAAyB,EAAC,MAAM,EAAC,EAAC,UAAU,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,EAAC,CAAC,YAAY,EAAC,QAAQ,CAAC,EAAC,CAAC,2DAA2D,CAAC,EAAC,KAAK,EAAC,EAAC,KAAK,EAAC,UAAU,EAAC,MAAM,EAAC,uCAAuC,EAAC,CAAC,CAAC;AAEjO,QAAQ,CAAC,iCAAiC,EAAC,OAAO,EAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,CAAC,UAAU,EAAC,MAAM,CAAC,EACxF,CAAC,kCAAkC,EAAC,sBAAsB,EAAC,0BAA0B,EAAC,qBAAqB,CAAC,EAAC,KAAK,EAClH,EAAC,KAAK,EAAC,cAAc,EAAC,UAAU,EAAC,oBAAoB,EAAC,MAAM,EAAC,yCAAyC,EAAC,WAAW,EAAC,gDAAgD,EAAC,CAAC,CAAC;AACxK,GAAG,CAAC,mCAAmC,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,CAAC,0CAA0C,EAAC,SAAS,EAAC,MAAM,EAAE,EACtH,EAAC,KAAK,EAAC,cAAc,EAAC,UAAU,EAAC,oBAAoB,EAAC,MAAM,EAAC,yCAAyC,EAAC,WAAW,EAAC,qDAAqD,EAAC,CAAC,CAAC;AAE7K,MAAM,KAAK,GAAyD;IAClE,CAAC,8BAA8B,EAAC,EAAC,QAAQ,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,UAAU,EAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,CAAC;IAC1H,CAAC,YAAY,EAAC,EAAC,QAAQ,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,UAAU,EAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,CAAC;IACxG,CAAC,yBAAyB,EAAC,EAAC,QAAQ,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,UAAU,EAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,KAAK,EAAC,OAAO,EAAC,CAAC;IAC7H,CAAC,oBAAoB,EAAC,EAAC,QAAQ,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,CAAC;IAC9G,CAAC,sBAAsB,EAAC,EAAC,QAAQ,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,YAAY,EAAC,CAAC;IACpH,CAAC,uBAAuB,EAAC,EAAC,QAAQ,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,WAAW,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,WAAW,EAAC,IAAI,EAAC,eAAe,EAAC,CAAC;IAClI,CAAC,2BAA2B,EAAC,EAAC,QAAQ,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,WAAW,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,eAAe,EAAC,CAAC;IAClI,CAAC,2BAA2B,EAAC,EAAC,QAAQ,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,WAAW,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,eAAe,EAAC,CAAC;IACjI,CAAC,yBAAyB,EAAC,EAAC,QAAQ,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,WAAW,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,eAAe,EAAC,CAAC;CAChI,CAAC;AACF,KAAK,MAAM,CAAC,EAAE,EAAC,UAAU,CAAC,IAAI,KAAK;IAAE,aAAa,CAAC,EAAE,CAAE,CAAC,UAAU,GAAG,UAAU,CAAC;AAEhF,KAAK,MAAM,EAAE,IAAI,UAAU;IAAE,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;YACpE,IAAI,sDAAsD,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,GAAG,KAAG,QAAQ,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,EAAC,CAAC,CAAC;QACzI,CAAC;IACH,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare const SESSION_LOG_UPLOAD_BASE = "/api/admin/api/v1/session-log-uploads";
|
|
2
|
+
export interface SessionLogUpload {
|
|
3
|
+
uploadId: string;
|
|
4
|
+
provider: string;
|
|
5
|
+
fileName: string;
|
|
6
|
+
sizeBytes: number;
|
|
7
|
+
status: 'pending' | 'uploaded';
|
|
8
|
+
createdBy: string;
|
|
9
|
+
createdAtUnixMs: number;
|
|
10
|
+
uploadedAtUnixMs: number;
|
|
11
|
+
}
|
|
12
|
+
export interface SessionLogUploadSession {
|
|
13
|
+
upload: SessionLogUpload;
|
|
14
|
+
uploadSignature: {
|
|
15
|
+
uploadUrl: string;
|
|
16
|
+
method: 'PUT';
|
|
17
|
+
headers: Record<string, string>;
|
|
18
|
+
};
|
|
19
|
+
expiresAtUnixMs: number;
|
|
20
|
+
}
|
|
21
|
+
export declare function prepareSessionLog(filePath: string): Promise<{
|
|
22
|
+
filePath: string;
|
|
23
|
+
fileName: string;
|
|
24
|
+
sizeBytes: number;
|
|
25
|
+
dispose: () => Promise<void>;
|
|
26
|
+
}>;
|
|
27
|
+
export declare function putSessionLog(snapshot: {
|
|
28
|
+
filePath: string;
|
|
29
|
+
sizeBytes: number;
|
|
30
|
+
}, signature: SessionLogUploadSession['uploadSignature']): Promise<void>;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { createReadStream } from 'node:fs';
|
|
2
|
+
import { chmod, copyFile, mkdtemp, rm, stat } from 'node:fs/promises';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
4
|
+
import { basename, extname, join } from 'node:path';
|
|
5
|
+
import { LOOPBACK_HOSTS } from './config.js';
|
|
6
|
+
import { CliError } from './core/errors.js';
|
|
7
|
+
export const SESSION_LOG_UPLOAD_BASE = '/api/admin/api/v1/session-log-uploads';
|
|
8
|
+
// The private copy keeps size and bytes stable while the source log is still growing.
|
|
9
|
+
export async function prepareSessionLog(filePath) {
|
|
10
|
+
if (extname(filePath).toLowerCase() !== '.jsonl') {
|
|
11
|
+
throw new CliError('INVALID_SESSION_LOG', 'Use a .jsonl file');
|
|
12
|
+
}
|
|
13
|
+
let directory;
|
|
14
|
+
try {
|
|
15
|
+
const source = await stat(filePath);
|
|
16
|
+
if (!source.isFile())
|
|
17
|
+
throw new CliError('INVALID_SESSION_LOG', 'Session log must be a regular file');
|
|
18
|
+
directory = await mkdtemp(join(tmpdir(), 'tutti-session-log-'));
|
|
19
|
+
await chmod(directory, 0o700);
|
|
20
|
+
const snapshotPath = join(directory, 'raw.jsonl');
|
|
21
|
+
await copyFile(filePath, snapshotPath);
|
|
22
|
+
await chmod(snapshotPath, 0o600);
|
|
23
|
+
const snapshot = await stat(snapshotPath);
|
|
24
|
+
if (!Number.isSafeInteger(snapshot.size))
|
|
25
|
+
throw new CliError('INVALID_SESSION_LOG', 'File size is outside the supported range');
|
|
26
|
+
return {
|
|
27
|
+
filePath: snapshotPath,
|
|
28
|
+
fileName: basename(filePath),
|
|
29
|
+
sizeBytes: snapshot.size,
|
|
30
|
+
dispose: () => rm(directory, { recursive: true, force: true }),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
if (directory)
|
|
35
|
+
await rm(directory, { recursive: true, force: true });
|
|
36
|
+
if (error instanceof CliError)
|
|
37
|
+
throw error;
|
|
38
|
+
throw new CliError('INVALID_SESSION_LOG', 'Cannot read the local JSONL file');
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export async function putSessionLog(snapshot, signature) {
|
|
42
|
+
let url;
|
|
43
|
+
try {
|
|
44
|
+
url = new URL(signature.uploadUrl);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
throw new CliError('INVALID_UPLOAD_RESPONSE', 'Server returned an invalid upload URL', 5);
|
|
48
|
+
}
|
|
49
|
+
if (signature.method !== 'PUT' || url.username || url.password ||
|
|
50
|
+
(url.protocol !== 'https:' && !(url.protocol === 'http:' && LOOPBACK_HOSTS.includes(url.hostname)))) {
|
|
51
|
+
throw new CliError('INVALID_UPLOAD_RESPONSE', 'Server returned an unsupported upload target', 5);
|
|
52
|
+
}
|
|
53
|
+
const headers = new Headers(signature.headers);
|
|
54
|
+
if (headers.has('authorization') || headers.has('cookie')) {
|
|
55
|
+
throw new CliError('INVALID_UPLOAD_RESPONSE', 'Upload must use its signed URL without API credentials', 5);
|
|
56
|
+
}
|
|
57
|
+
if (headers.has('content-length') && headers.get('content-length') !== String(snapshot.sizeBytes)) {
|
|
58
|
+
throw new CliError('INVALID_UPLOAD_RESPONSE', 'Upload length does not match the prepared file', 5);
|
|
59
|
+
}
|
|
60
|
+
headers.set('content-length', String(snapshot.sizeBytes));
|
|
61
|
+
if (!headers.has('content-type'))
|
|
62
|
+
headers.set('content-type', 'application/x-ndjson');
|
|
63
|
+
const body = createReadStream(snapshot.filePath);
|
|
64
|
+
try {
|
|
65
|
+
const response = await fetch(url, {
|
|
66
|
+
method: 'PUT',
|
|
67
|
+
redirect: 'error',
|
|
68
|
+
signal: AbortSignal.timeout(120_000),
|
|
69
|
+
headers,
|
|
70
|
+
body: body,
|
|
71
|
+
duplex: 'half',
|
|
72
|
+
});
|
|
73
|
+
// Do not expose the storage response or signed URL in errors.
|
|
74
|
+
await response.body?.cancel();
|
|
75
|
+
if (!response.ok)
|
|
76
|
+
throw new CliError('SESSION_LOG_PUT_FAILED', `Object upload returned HTTP ${response.status}`, 5);
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
body.destroy();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=sessionLogs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionLogs.js","sourceRoot":"","sources":["../src/sessionLogs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { HttpError } from '../http.js';
|
|
2
|
+
import { CliError } from '../core/errors.js';
|
|
3
|
+
const RANGE_PRESETS = {
|
|
4
|
+
'1h': 1,
|
|
5
|
+
'1_hour': 1,
|
|
6
|
+
'3h': 2,
|
|
7
|
+
'3_hours': 2,
|
|
8
|
+
'1d': 3,
|
|
9
|
+
'1_day': 3,
|
|
10
|
+
'3d': 4,
|
|
11
|
+
'3_days': 4,
|
|
12
|
+
'14d': 5,
|
|
13
|
+
'14_days': 5,
|
|
14
|
+
};
|
|
15
|
+
function field(value, camel, snake) {
|
|
16
|
+
return value[camel] ?? value[snake];
|
|
17
|
+
}
|
|
18
|
+
function timestamp(value) {
|
|
19
|
+
if (typeof value !== 'string' || !value)
|
|
20
|
+
return undefined;
|
|
21
|
+
const parsed = Date.parse(value);
|
|
22
|
+
return Number.isFinite(parsed) ? parsed : undefined;
|
|
23
|
+
}
|
|
24
|
+
function taskId(task) {
|
|
25
|
+
return String(field(task, 'taskId', 'task_id') ?? '');
|
|
26
|
+
}
|
|
27
|
+
function downloadable(task) {
|
|
28
|
+
const state = field(task, 'state', 'state');
|
|
29
|
+
const isDownloadable = state === 3 || String(state).endsWith('_DOWNLOADABLE') || state === 'downloadable';
|
|
30
|
+
const expired = field(task, 'downloadExpired', 'download_expired') === true;
|
|
31
|
+
return isDownloadable && !expired && Boolean(taskId(task));
|
|
32
|
+
}
|
|
33
|
+
function covers(task, incidentAt) {
|
|
34
|
+
const actualStart = timestamp(field(task, 'actualStartAt', 'actual_start_at'));
|
|
35
|
+
const actualEnd = timestamp(field(task, 'actualEndAt', 'actual_end_at'));
|
|
36
|
+
const requestedStart = timestamp(field(task, 'requestedStartAt', 'requested_start_at'));
|
|
37
|
+
const requestedEnd = timestamp(field(task, 'requestedEndAt', 'requested_end_at'));
|
|
38
|
+
const start = actualStart !== undefined && actualEnd !== undefined ? actualStart : requestedStart;
|
|
39
|
+
const end = actualStart !== undefined && actualEnd !== undefined ? actualEnd : requestedEnd;
|
|
40
|
+
return start !== undefined && end !== undefined && start <= incidentAt && incidentAt <= end;
|
|
41
|
+
}
|
|
42
|
+
function parseDuration(value) {
|
|
43
|
+
const text = String(value ?? '120s').trim();
|
|
44
|
+
const match = /^(\d+)(ms|s|m)?$/.exec(text);
|
|
45
|
+
if (!match)
|
|
46
|
+
throw new CliError('INVALID_TIMEOUT', 'Use milliseconds or a duration such as 120s or 2m');
|
|
47
|
+
const amount = Number(match[1]);
|
|
48
|
+
const unit = match[2] ?? 'ms';
|
|
49
|
+
const multiplier = unit === 'm' ? 60_000 : unit === 's' ? 1_000 : 1;
|
|
50
|
+
const milliseconds = amount * multiplier;
|
|
51
|
+
if (!Number.isSafeInteger(milliseconds) || milliseconds < 1 || milliseconds > 30 * 60_000)
|
|
52
|
+
throw new CliError('INVALID_TIMEOUT', 'timeout must be between 1ms and 30m');
|
|
53
|
+
return milliseconds;
|
|
54
|
+
}
|
|
55
|
+
function segment(value, name) {
|
|
56
|
+
const text = String(value ?? '').trim();
|
|
57
|
+
if (!text)
|
|
58
|
+
throw new CliError('INVALID_ARGUMENTS', `${name} is required`);
|
|
59
|
+
return encodeURIComponent(text);
|
|
60
|
+
}
|
|
61
|
+
export async function runComputerWorkflow(op, input, client) {
|
|
62
|
+
if (!client)
|
|
63
|
+
throw new CliError('MISSING_CLIENT', 'Remote workflow requires authentication', 3);
|
|
64
|
+
const value = input.local;
|
|
65
|
+
const computerId = String(value.computerId ?? '');
|
|
66
|
+
const computerSegment = segment(computerId, 'computerId');
|
|
67
|
+
const base = `/api/desktop/v2/admin/tutti-v2/computers/${computerSegment}/runtime-log-recalls`;
|
|
68
|
+
const requests = [];
|
|
69
|
+
async function request(method, path, body, options = {}) {
|
|
70
|
+
const access = options.access ?? (method === 'GET' ? 'read' : 'write');
|
|
71
|
+
const step = { method, path, access, status: 'started' };
|
|
72
|
+
requests.push(step);
|
|
73
|
+
try {
|
|
74
|
+
const result = await client.request(method, path, body, { ...options, access });
|
|
75
|
+
step.status = 'succeeded';
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
step.status = error instanceof HttpError && error.status < 500 ? 'failed' : 'unknown';
|
|
80
|
+
throw error;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async function createDownload(task) {
|
|
84
|
+
const id = taskId(task);
|
|
85
|
+
if (!id)
|
|
86
|
+
throw new CliError('INVALID_RESPONSE', 'Recall task has no taskId', 6);
|
|
87
|
+
return request('POST', `${base}/${segment(id, 'taskId')}:create-download-url`, { computerId, taskId: id }, { access: 'read' });
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
if (op.command === 'computer +download-logs') {
|
|
91
|
+
const id = String(value.taskId ?? '');
|
|
92
|
+
const download = await request('POST', `${base}/${segment(id, 'taskId')}:create-download-url`, { computerId, taskId: id }, { access: 'read' });
|
|
93
|
+
return { result: { mode: 'existing', taskId: id, download }, requests };
|
|
94
|
+
}
|
|
95
|
+
if (op.command !== 'computer +collect-logs')
|
|
96
|
+
throw new CliError('UNSUPPORTED', 'Unknown Computer workflow', 8);
|
|
97
|
+
const preset = RANGE_PRESETS[String(value.range ?? '')];
|
|
98
|
+
if (!preset)
|
|
99
|
+
throw new CliError('INVALID_ARGUMENTS', 'Unsupported log range');
|
|
100
|
+
const incidentAt = value.incidentAt === undefined ? Date.now() : timestamp(value.incidentAt);
|
|
101
|
+
if (incidentAt === undefined)
|
|
102
|
+
throw new CliError('INVALID_ARGUMENTS', '--incident-at must be an ISO-8601 timestamp');
|
|
103
|
+
const tasks = [];
|
|
104
|
+
let pageToken = '';
|
|
105
|
+
for (let page = 0; page < 100; page++) {
|
|
106
|
+
const response = await request('GET', base, undefined, { params: { pageSize: 1000, ...(pageToken ? { pageToken } : {}) }, access: 'read' });
|
|
107
|
+
const batch = Array.isArray(response.tasks) ? response.tasks.filter((task) => Boolean(task && typeof task === 'object' && !Array.isArray(task))) : [];
|
|
108
|
+
tasks.push(...batch);
|
|
109
|
+
const next = String(response.nextPageToken ?? response.next_page_token ?? '');
|
|
110
|
+
if (!next)
|
|
111
|
+
break;
|
|
112
|
+
if (next === pageToken)
|
|
113
|
+
throw new CliError('PARTIAL_RESULT', 'Recall pagination stalled', 6, { tasks, complete: false });
|
|
114
|
+
pageToken = next;
|
|
115
|
+
if (page === 99)
|
|
116
|
+
throw new CliError('PARTIAL_RESULT', 'Recall pagination limit reached', 6, { tasks, complete: false });
|
|
117
|
+
}
|
|
118
|
+
const reusable = tasks.find(task => downloadable(task) && covers(task, incidentAt));
|
|
119
|
+
if (reusable) {
|
|
120
|
+
const download = await createDownload(reusable);
|
|
121
|
+
return { result: { mode: 'reused', task: reusable, download }, requests };
|
|
122
|
+
}
|
|
123
|
+
let task = await request('POST', base, { computerId, rangePreset: preset }, { access: 'write' });
|
|
124
|
+
if (value.wait !== true)
|
|
125
|
+
return { result: { mode: 'created', task }, requests };
|
|
126
|
+
const deadline = Date.now() + parseDuration(value.timeout);
|
|
127
|
+
for (;;) {
|
|
128
|
+
if (downloadable(task)) {
|
|
129
|
+
const download = await createDownload(task);
|
|
130
|
+
return { result: { mode: 'created', task, download }, requests };
|
|
131
|
+
}
|
|
132
|
+
const state = field(task, 'state', 'state');
|
|
133
|
+
if (state === 4 || String(state).endsWith('_FAILED') || state === 'failed')
|
|
134
|
+
throw new CliError('RECALL_FAILED', 'Computer log recall failed', 5, { task });
|
|
135
|
+
const remaining = deadline - Date.now();
|
|
136
|
+
if (remaining <= 0)
|
|
137
|
+
throw new CliError('RECALL_TIMEOUT', 'Computer log recall did not become downloadable before timeout', 6, { task });
|
|
138
|
+
await new Promise(resolve => setTimeout(resolve, Math.min(1000, remaining)));
|
|
139
|
+
const id = taskId(task);
|
|
140
|
+
if (!id)
|
|
141
|
+
throw new CliError('INVALID_RESPONSE', 'Created recall has no taskId', 6);
|
|
142
|
+
task = await request('GET', `${base}/${segment(id, 'taskId')}`, undefined, { access: 'read' });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
const mutated = requests.some(request => request.access === 'write' && (request.status === 'succeeded' || request.status === 'unknown'));
|
|
147
|
+
if (mutated)
|
|
148
|
+
throw new CliError('WORKFLOW_INCOMPLETE', 'Computer log workflow stopped after a write; inspect the recall before retrying', 6, { requests, complete: false });
|
|
149
|
+
if (error instanceof CliError || error instanceof HttpError)
|
|
150
|
+
throw error;
|
|
151
|
+
throw new CliError('WORKFLOW_FAILED', 'Computer log workflow failed before any write', 5, { requests, complete: false });
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=computer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computer.js","sourceRoot":"","sources":["../../src/workflows/computer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Input, JsonObject, Operation } from '../core/types.js';
|
|
2
|
+
import { HttpClient } from '../http.js';
|
|
3
|
+
import { type SessionLogUpload } from '../sessionLogs.js';
|
|
4
|
+
export declare function runSessionLogWorkflow(op: Operation, input: Input, client?: HttpClient): Promise<{
|
|
5
|
+
upload: SessionLogUpload;
|
|
6
|
+
steps: JsonObject[];
|
|
7
|
+
}>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { CliError } from '../core/errors.js';
|
|
2
|
+
import { HttpError } from '../http.js';
|
|
3
|
+
import { prepareSessionLog, putSessionLog, SESSION_LOG_UPLOAD_BASE } from '../sessionLogs.js';
|
|
4
|
+
export async function runSessionLogWorkflow(op, input, client) {
|
|
5
|
+
if (!client)
|
|
6
|
+
throw new CliError('MISSING_CLIENT', 'Remote workflow requires authentication', 3);
|
|
7
|
+
if (op.command !== 'diagnostics +upload-session-log')
|
|
8
|
+
throw new CliError('UNSUPPORTED', 'Unknown session log workflow', 8);
|
|
9
|
+
const provider = String(input.local.provider ?? '').trim().toLowerCase();
|
|
10
|
+
if (!/^[a-z0-9][a-z0-9_-]{0,63}$/.test(provider)) {
|
|
11
|
+
throw new CliError('INVALID_PROVIDER', 'Provider must use letters, numbers, underscores or hyphens');
|
|
12
|
+
}
|
|
13
|
+
const snapshot = await prepareSessionLog(String(input.local.file ?? ''));
|
|
14
|
+
const steps = [{ step: 'prepare-file', status: 'succeeded' }];
|
|
15
|
+
let uploadId;
|
|
16
|
+
async function step(name, action) {
|
|
17
|
+
const entry = { step: name, status: 'running' };
|
|
18
|
+
steps.push(entry);
|
|
19
|
+
try {
|
|
20
|
+
const result = await action();
|
|
21
|
+
entry.status = 'succeeded';
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
entry.status = error instanceof HttpError && error.status < 500 ? 'failed' : 'unknown';
|
|
26
|
+
if (error instanceof CliError)
|
|
27
|
+
entry.status = 'failed';
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
const session = await step('create-upload', () => client.post(SESSION_LOG_UPLOAD_BASE, {
|
|
33
|
+
provider, fileName: snapshot.fileName, sizeBytes: snapshot.sizeBytes,
|
|
34
|
+
}));
|
|
35
|
+
const id = session?.upload?.uploadId;
|
|
36
|
+
if (typeof id !== 'string' || !id || /[/%\\?#\x00-\x1f]/.test(id) || id === '.' || id === '..') {
|
|
37
|
+
throw new CliError('INVALID_UPLOAD_RESPONSE', 'Server returned no valid upload ID', 6);
|
|
38
|
+
}
|
|
39
|
+
uploadId = id;
|
|
40
|
+
if (session.upload.provider !== provider || session.upload.fileName !== snapshot.fileName ||
|
|
41
|
+
session.upload.sizeBytes !== snapshot.sizeBytes || session.upload.status !== 'pending' ||
|
|
42
|
+
!session.uploadSignature) {
|
|
43
|
+
throw new CliError('INVALID_UPLOAD_RESPONSE', 'Server upload record does not match the prepared file', 6);
|
|
44
|
+
}
|
|
45
|
+
await step('upload-file', () => putSessionLog(snapshot, session.uploadSignature));
|
|
46
|
+
const completed = await step('confirm-upload', () => client.post(`${SESSION_LOG_UPLOAD_BASE}/${encodeURIComponent(uploadId)}/complete`));
|
|
47
|
+
if (completed?.upload?.uploadId !== uploadId || completed.upload.status !== 'uploaded' ||
|
|
48
|
+
completed.upload.provider !== provider || completed.upload.sizeBytes !== snapshot.sizeBytes) {
|
|
49
|
+
throw new CliError('INVALID_UPLOAD_RESPONSE', 'Server has not confirmed the expected uploaded file', 6);
|
|
50
|
+
}
|
|
51
|
+
return { upload: completed.upload, steps };
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
// Once the record exists, never replay the complete workflow automatically.
|
|
55
|
+
if (uploadId) {
|
|
56
|
+
throw new CliError('SESSION_LOG_UPLOAD_INCOMPLETE', 'Upload is not confirmed; retry completion before uploading again', 6, {
|
|
57
|
+
uploadId, steps, complete: false,
|
|
58
|
+
recovery: { command: 'diagnostics session-logs complete', uploadId, yes: true },
|
|
59
|
+
...(error instanceof HttpError ? { status: error.status } : {}),
|
|
60
|
+
...(error instanceof CliError ? { causeCode: error.code } : {}),
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
if (error instanceof HttpError || error instanceof CliError)
|
|
64
|
+
throw error;
|
|
65
|
+
throw new CliError('WRITE_OUTCOME_UNKNOWN', 'Upload allocation outcome is unknown; do not automatically repeat it', 6, { steps, complete: false });
|
|
66
|
+
}
|
|
67
|
+
finally {
|
|
68
|
+
await snapshot.dispose();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=sessionLogs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionLogs.js","sourceRoot":"","sources":["../../src/workflows/sessionLogs.ts"],"names":[],"mappings":"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"}
|