@vm0/cli 9.244.8 → 9.245.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.
- package/{agent-QLXX4WY7.js → agent-VZXA6XR3.js} +6 -5
- package/{agent-QLXX4WY7.js.map → agent-VZXA6XR3.js.map} +1 -1
- package/{banking-WY3J5BTJ.js → banking-QOV2GZE6.js} +4 -3
- package/{banking-WY3J5BTJ.js.map → banking-QOV2GZE6.js.map} +1 -1
- package/{chat-L3EFI2XJ.js → chat-7PONFLUP.js} +5 -4
- package/{chat-L3EFI2XJ.js.map → chat-7PONFLUP.js.map} +1 -1
- package/{chunk-MX32FFQR.js → chunk-5XVBOER3.js} +60 -506
- package/chunk-5XVBOER3.js.map +1 -0
- package/{chunk-65MTNZ44.js → chunk-6P7XBY46.js} +767 -1217
- package/chunk-6P7XBY46.js.map +1 -0
- package/{chunk-43PGP5OI.js → chunk-ARENVRJY.js} +4 -4
- package/{chunk-JVIFZRZ7.js → chunk-DE4HMRSU.js} +3 -3
- package/{chunk-TTP663DN.js → chunk-FVYB5CBP.js} +2 -2
- package/chunk-HOIDOML4.js +678 -0
- package/chunk-HOIDOML4.js.map +1 -0
- package/{chunk-KMLBXZVR.js → chunk-VN4PPSXU.js} +2 -2
- package/{chunk-MA37R4QS.js → chunk-XYZN3XWH.js} +3 -665
- package/chunk-XYZN3XWH.js.map +1 -0
- package/{chunk-LHR5Z775.js → chunk-YSVL5RAP.js} +2 -2
- package/{chunk-WCRXAO2G.js → chunk-ZXCF4ARW.js} +2 -2
- package/{computer-use-7FYLJXZS.js → computer-use-Y54YFGNC.js} +4 -3
- package/{computer-use-7FYLJXZS.js.map → computer-use-Y54YFGNC.js.map} +1 -1
- package/{connector-BSBQIFMQ.js → connector-2PAPMRZG.js} +7 -6
- package/{connector-BSBQIFMQ.js.map → connector-2PAPMRZG.js.map} +1 -1
- package/{credit-JBFJY5US.js → credit-PX6354BA.js} +5 -4
- package/{credit-JBFJY5US.js.map → credit-PX6354BA.js.map} +1 -1
- package/{developer-support-RUWSZBFP.js → developer-support-R5K6XKFG.js} +4 -3
- package/{developer-support-RUWSZBFP.js.map → developer-support-R5K6XKFG.js.map} +1 -1
- package/{doctor-YLD526OE.js → doctor-JNHZPFHW.js} +4 -3
- package/{doctor-YLD526OE.js.map → doctor-JNHZPFHW.js.map} +1 -1
- package/{generate-5EMJ3PE6.js → generate-TY4LZA3R.js} +10 -8
- package/{generate-5EMJ3PE6.js.map → generate-TY4LZA3R.js.map} +1 -1
- package/{github-36XCAIUP.js → github-UHTFPDZJ.js} +4 -3
- package/{github-36XCAIUP.js.map → github-UHTFPDZJ.js.map} +1 -1
- package/{goal-FRXLYRUG.js → goal-CKBOG76D.js} +4 -3
- package/{goal-FRXLYRUG.js.map → goal-CKBOG76D.js.map} +1 -1
- package/{host-X2KS3WTS.js → host-HAVFML26.js} +28 -7
- package/host-HAVFML26.js.map +1 -0
- package/index.js +4 -715
- package/index.js.map +1 -1
- package/{logs-WHQES7BY.js → logs-OXZZHIMA.js} +13 -14
- package/logs-OXZZHIMA.js.map +1 -0
- package/{mail-LOXCIZZN.js → mail-QCU47LFX.js} +6 -5
- package/{mail-LOXCIZZN.js.map → mail-QCU47LFX.js.map} +1 -1
- package/{maps-KQWCQLHW.js → maps-F3YPBNGC.js} +4 -3
- package/{maps-KQWCQLHW.js.map → maps-F3YPBNGC.js.map} +1 -1
- package/{model-2BBROTMX.js → model-5CYADUCZ.js} +5 -4
- package/{model-2BBROTMX.js.map → model-5CYADUCZ.js.map} +1 -1
- package/{model-provider-BOMTZ6JA.js → model-provider-676BK2JF.js} +5 -4
- package/{model-provider-BOMTZ6JA.js.map → model-provider-676BK2JF.js.map} +1 -1
- package/{org-SO7ELOV6.js → org-M637OTRU.js} +4 -3
- package/{org-SO7ELOV6.js.map → org-M637OTRU.js.map} +1 -1
- package/package.json +1 -1
- package/{phone-IYUG3RGY.js → phone-WBFLXP4V.js} +4 -3
- package/{phone-IYUG3RGY.js.map → phone-WBFLXP4V.js.map} +1 -1
- package/{preference-TGBWXIP7.js → preference-5AVRP7UU.js} +4 -3
- package/{preference-TGBWXIP7.js.map → preference-5AVRP7UU.js.map} +1 -1
- package/{resource-EA5OUVG4.js → resource-N6ADJPCL.js} +4 -3
- package/{resource-EA5OUVG4.js.map → resource-N6ADJPCL.js.map} +1 -1
- package/{scrape-2S3B33RA.js → scrape-XIJ5J6LW.js} +4 -3
- package/{scrape-2S3B33RA.js.map → scrape-XIJ5J6LW.js.map} +1 -1
- package/{search-LCGK3BJI.js → search-V2PWSYSL.js} +9 -10
- package/search-V2PWSYSL.js.map +1 -0
- package/{secret-M5C54VAT.js → secret-JLGGOPTX.js} +4 -3
- package/{secret-M5C54VAT.js.map → secret-JLGGOPTX.js.map} +1 -1
- package/{slack-FJV2NEOT.js → slack-QNQY6TVX.js} +4 -3
- package/{slack-FJV2NEOT.js.map → slack-QNQY6TVX.js.map} +1 -1
- package/{teams-XBLEN2XV.js → teams-QZZG5ERQ.js} +4 -3
- package/{teams-XBLEN2XV.js.map → teams-QZZG5ERQ.js.map} +1 -1
- package/{telegram-RE6IO7ZT.js → telegram-JEQYIW2X.js} +4 -3
- package/{telegram-RE6IO7ZT.js.map → telegram-JEQYIW2X.js.map} +1 -1
- package/{variable-5MVUR6U4.js → variable-LDKUIYU7.js} +4 -3
- package/{variable-5MVUR6U4.js.map → variable-LDKUIYU7.js.map} +1 -1
- package/{video-DIVG6CMM.js → video-D3AUHQL2.js} +6 -4
- package/{video-DIVG6CMM.js.map → video-D3AUHQL2.js.map} +1 -1
- package/{web-KVZL6WM4.js → web-MUTRFMMA.js} +7 -5
- package/{web-KVZL6WM4.js.map → web-MUTRFMMA.js.map} +1 -1
- package/{web-search-XNJH2FXZ.js → web-search-KBLKNBIF.js} +4 -3
- package/{web-search-XNJH2FXZ.js.map → web-search-KBLKNBIF.js.map} +1 -1
- package/{whoami-NQYYRWEE.js → whoami-POJMF7BB.js} +6 -5
- package/{whoami-NQYYRWEE.js.map → whoami-POJMF7BB.js.map} +1 -1
- package/{workflow-5CGPRRAY.js → workflow-GXTNSIWC.js} +4 -3
- package/{workflow-5CGPRRAY.js.map → workflow-GXTNSIWC.js.map} +1 -1
- package/zero.js +35 -35
- package/chunk-65MTNZ44.js.map +0 -1
- package/chunk-MA37R4QS.js.map +0 -1
- package/chunk-MPSVIFKZ.js +0 -240
- package/chunk-MPSVIFKZ.js.map +0 -1
- package/chunk-MX32FFQR.js.map +0 -1
- package/chunk-ZUSDQG2O.js +0 -50
- package/chunk-ZUSDQG2O.js.map +0 -1
- package/host-X2KS3WTS.js.map +0 -1
- package/logs-WHQES7BY.js.map +0 -1
- package/search-LCGK3BJI.js.map +0 -1
- /package/{chunk-43PGP5OI.js.map → chunk-ARENVRJY.js.map} +0 -0
- /package/{chunk-JVIFZRZ7.js.map → chunk-DE4HMRSU.js.map} +0 -0
- /package/{chunk-TTP663DN.js.map → chunk-FVYB5CBP.js.map} +0 -0
- /package/{chunk-KMLBXZVR.js.map → chunk-VN4PPSXU.js.map} +0 -0
- /package/{chunk-LHR5Z775.js.map → chunk-YSVL5RAP.js.map} +0 -0
- /package/{chunk-WCRXAO2G.js.map → chunk-ZXCF4ARW.js.map} +0 -0
|
@@ -6,13 +6,12 @@ import {
|
|
|
6
6
|
} from "./chunk-DWWE7STW.js";
|
|
7
7
|
import {
|
|
8
8
|
authHeadersSchema,
|
|
9
|
-
composeListItemSchema,
|
|
10
9
|
connectorCatalogRefSchema,
|
|
11
|
-
|
|
12
|
-
getEvents,
|
|
10
|
+
firewallsSchema,
|
|
13
11
|
runnerGroupSchema,
|
|
12
|
+
searchZeroLogs,
|
|
14
13
|
zeroAgentVisibilitySchema
|
|
15
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-5XVBOER3.js";
|
|
16
15
|
import {
|
|
17
16
|
apiErrorSchema,
|
|
18
17
|
external_exports,
|
|
@@ -23,8 +22,12 @@ import {
|
|
|
23
22
|
source_default,
|
|
24
23
|
supportedRunModelSchema,
|
|
25
24
|
upsertModelProviderRequestSchema,
|
|
26
|
-
upsertModelProviderResponseSchema
|
|
27
|
-
|
|
25
|
+
upsertModelProviderResponseSchema,
|
|
26
|
+
withErrorHandler
|
|
27
|
+
} from "./chunk-XYZN3XWH.js";
|
|
28
|
+
import {
|
|
29
|
+
Command
|
|
30
|
+
} from "./chunk-B3W2RUBP.js";
|
|
28
31
|
import {
|
|
29
32
|
__commonJS,
|
|
30
33
|
__require,
|
|
@@ -6955,14 +6958,14 @@ var require_parser = __commonJS({
|
|
|
6955
6958
|
case "scalar":
|
|
6956
6959
|
case "single-quoted-scalar":
|
|
6957
6960
|
case "double-quoted-scalar": {
|
|
6958
|
-
const
|
|
6961
|
+
const fs = this.flowScalar(this.type);
|
|
6959
6962
|
if (atNextItem || it.value) {
|
|
6960
|
-
map.items.push({ start, key:
|
|
6963
|
+
map.items.push({ start, key: fs, sep: [] });
|
|
6961
6964
|
this.onKeyLine = true;
|
|
6962
6965
|
} else if (it.sep) {
|
|
6963
|
-
this.stack.push(
|
|
6966
|
+
this.stack.push(fs);
|
|
6964
6967
|
} else {
|
|
6965
|
-
Object.assign(it, { key:
|
|
6968
|
+
Object.assign(it, { key: fs, sep: [] });
|
|
6966
6969
|
this.onKeyLine = true;
|
|
6967
6970
|
}
|
|
6968
6971
|
return;
|
|
@@ -7090,13 +7093,13 @@ var require_parser = __commonJS({
|
|
|
7090
7093
|
case "scalar":
|
|
7091
7094
|
case "single-quoted-scalar":
|
|
7092
7095
|
case "double-quoted-scalar": {
|
|
7093
|
-
const
|
|
7096
|
+
const fs = this.flowScalar(this.type);
|
|
7094
7097
|
if (!it || it.value)
|
|
7095
|
-
fc.items.push({ start: [], key:
|
|
7098
|
+
fc.items.push({ start: [], key: fs, sep: [] });
|
|
7096
7099
|
else if (it.sep)
|
|
7097
|
-
this.stack.push(
|
|
7100
|
+
this.stack.push(fs);
|
|
7098
7101
|
else
|
|
7099
|
-
Object.assign(it, { key:
|
|
7102
|
+
Object.assign(it, { key: fs, sep: [] });
|
|
7100
7103
|
return;
|
|
7101
7104
|
}
|
|
7102
7105
|
case "flow-map-end":
|
|
@@ -7406,401 +7409,89 @@ var require_dist = __commonJS({
|
|
|
7406
7409
|
}
|
|
7407
7410
|
});
|
|
7408
7411
|
|
|
7409
|
-
//
|
|
7410
|
-
|
|
7411
|
-
|
|
7412
|
-
|
|
7413
|
-
|
|
7414
|
-
|
|
7415
|
-
|
|
7416
|
-
|
|
7417
|
-
|
|
7418
|
-
|
|
7419
|
-
|
|
7420
|
-
|
|
7421
|
-
|
|
7422
|
-
default: "./lib/main.js"
|
|
7423
|
-
},
|
|
7424
|
-
"./config": "./config.js",
|
|
7425
|
-
"./config.js": "./config.js",
|
|
7426
|
-
"./lib/env-options": "./lib/env-options.js",
|
|
7427
|
-
"./lib/env-options.js": "./lib/env-options.js",
|
|
7428
|
-
"./lib/cli-options": "./lib/cli-options.js",
|
|
7429
|
-
"./lib/cli-options.js": "./lib/cli-options.js",
|
|
7430
|
-
"./package.json": "./package.json"
|
|
7431
|
-
},
|
|
7432
|
-
scripts: {
|
|
7433
|
-
"dts-check": "tsc --project tests/types/tsconfig.json",
|
|
7434
|
-
lint: "standard",
|
|
7435
|
-
pretest: "npm run lint && npm run dts-check",
|
|
7436
|
-
test: "tap run tests/**/*.js --allow-empty-coverage --disable-coverage --timeout=60000",
|
|
7437
|
-
"test:coverage": "tap run tests/**/*.js --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov",
|
|
7438
|
-
prerelease: "npm test",
|
|
7439
|
-
release: "standard-version"
|
|
7440
|
-
},
|
|
7441
|
-
repository: {
|
|
7442
|
-
type: "git",
|
|
7443
|
-
url: "git://github.com/motdotla/dotenv.git"
|
|
7444
|
-
},
|
|
7445
|
-
homepage: "https://github.com/motdotla/dotenv#readme",
|
|
7446
|
-
funding: "https://dotenvx.com",
|
|
7447
|
-
keywords: [
|
|
7448
|
-
"dotenv",
|
|
7449
|
-
"env",
|
|
7450
|
-
".env",
|
|
7451
|
-
"environment",
|
|
7452
|
-
"variables",
|
|
7453
|
-
"config",
|
|
7454
|
-
"settings"
|
|
7455
|
-
],
|
|
7456
|
-
readmeFilename: "README.md",
|
|
7457
|
-
license: "BSD-2-Clause",
|
|
7458
|
-
devDependencies: {
|
|
7459
|
-
"@types/node": "^18.11.3",
|
|
7460
|
-
decache: "^4.6.2",
|
|
7461
|
-
sinon: "^14.0.1",
|
|
7462
|
-
standard: "^17.0.0",
|
|
7463
|
-
"standard-version": "^9.5.0",
|
|
7464
|
-
tap: "^19.2.0",
|
|
7465
|
-
typescript: "^4.8.4"
|
|
7466
|
-
},
|
|
7467
|
-
engines: {
|
|
7468
|
-
node: ">=12"
|
|
7469
|
-
},
|
|
7470
|
-
browser: {
|
|
7471
|
-
fs: false
|
|
7472
|
-
}
|
|
7473
|
-
};
|
|
7474
|
-
}
|
|
7475
|
-
});
|
|
7476
|
-
|
|
7477
|
-
// ../../node_modules/.pnpm/dotenv@17.3.1/node_modules/dotenv/lib/main.js
|
|
7478
|
-
var require_main = __commonJS({
|
|
7479
|
-
"../../node_modules/.pnpm/dotenv@17.3.1/node_modules/dotenv/lib/main.js"(exports, module) {
|
|
7480
|
-
"use strict";
|
|
7481
|
-
init_esm_shims();
|
|
7482
|
-
var fs2 = __require("fs");
|
|
7483
|
-
var path = __require("path");
|
|
7484
|
-
var os = __require("os");
|
|
7485
|
-
var crypto = __require("crypto");
|
|
7486
|
-
var packageJson = require_package();
|
|
7487
|
-
var version = packageJson.version;
|
|
7488
|
-
var TIPS = [
|
|
7489
|
-
"\u{1F510} encrypt with Dotenvx: https://dotenvx.com",
|
|
7490
|
-
"\u{1F510} prevent committing .env to code: https://dotenvx.com/precommit",
|
|
7491
|
-
"\u{1F510} prevent building .env in docker: https://dotenvx.com/prebuild",
|
|
7492
|
-
"\u{1F916} agentic secret storage: https://dotenvx.com/as2",
|
|
7493
|
-
"\u26A1\uFE0F secrets for agents: https://dotenvx.com/as2",
|
|
7494
|
-
"\u{1F6E1}\uFE0F auth for agents: https://vestauth.com",
|
|
7495
|
-
"\u{1F6E0}\uFE0F run anywhere with `dotenvx run -- yourcommand`",
|
|
7496
|
-
"\u2699\uFE0F specify custom .env file path with { path: '/custom/path/.env' }",
|
|
7497
|
-
"\u2699\uFE0F enable debug logging with { debug: true }",
|
|
7498
|
-
"\u2699\uFE0F override existing env vars with { override: true }",
|
|
7499
|
-
"\u2699\uFE0F suppress all logs with { quiet: true }",
|
|
7500
|
-
"\u2699\uFE0F write to custom object with { processEnv: myObject }",
|
|
7501
|
-
"\u2699\uFE0F load multiple .env files with { path: ['.env.local', '.env'] }"
|
|
7502
|
-
];
|
|
7503
|
-
function _getRandomTip() {
|
|
7504
|
-
return TIPS[Math.floor(Math.random() * TIPS.length)];
|
|
7505
|
-
}
|
|
7506
|
-
function parseBoolean(value) {
|
|
7507
|
-
if (typeof value === "string") {
|
|
7508
|
-
return !["false", "0", "no", "off", ""].includes(value.toLowerCase());
|
|
7509
|
-
}
|
|
7510
|
-
return Boolean(value);
|
|
7511
|
-
}
|
|
7512
|
-
function supportsAnsi() {
|
|
7513
|
-
return process.stdout.isTTY;
|
|
7514
|
-
}
|
|
7515
|
-
function dim(text) {
|
|
7516
|
-
return supportsAnsi() ? `\x1B[2m${text}\x1B[0m` : text;
|
|
7517
|
-
}
|
|
7518
|
-
var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;
|
|
7519
|
-
function parse(src) {
|
|
7520
|
-
const obj = {};
|
|
7521
|
-
let lines = src.toString();
|
|
7522
|
-
lines = lines.replace(/\r\n?/mg, "\n");
|
|
7523
|
-
let match;
|
|
7524
|
-
while ((match = LINE.exec(lines)) != null) {
|
|
7525
|
-
const key = match[1];
|
|
7526
|
-
let value = match[2] || "";
|
|
7527
|
-
value = value.trim();
|
|
7528
|
-
const maybeQuote = value[0];
|
|
7529
|
-
value = value.replace(/^(['"`])([\s\S]*)\1$/mg, "$2");
|
|
7530
|
-
if (maybeQuote === '"') {
|
|
7531
|
-
value = value.replace(/\\n/g, "\n");
|
|
7532
|
-
value = value.replace(/\\r/g, "\r");
|
|
7533
|
-
}
|
|
7534
|
-
obj[key] = value;
|
|
7535
|
-
}
|
|
7536
|
-
return obj;
|
|
7537
|
-
}
|
|
7538
|
-
function _parseVault(options) {
|
|
7539
|
-
options = options || {};
|
|
7540
|
-
const vaultPath = _vaultPath(options);
|
|
7541
|
-
options.path = vaultPath;
|
|
7542
|
-
const result = DotenvModule.configDotenv(options);
|
|
7543
|
-
if (!result.parsed) {
|
|
7544
|
-
const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`);
|
|
7545
|
-
err.code = "MISSING_DATA";
|
|
7546
|
-
throw err;
|
|
7547
|
-
}
|
|
7548
|
-
const keys = _dotenvKey(options).split(",");
|
|
7549
|
-
const length = keys.length;
|
|
7550
|
-
let decrypted;
|
|
7551
|
-
for (let i = 0; i < length; i++) {
|
|
7552
|
-
try {
|
|
7553
|
-
const key = keys[i].trim();
|
|
7554
|
-
const attrs = _instructions(result, key);
|
|
7555
|
-
decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key);
|
|
7556
|
-
break;
|
|
7557
|
-
} catch (error) {
|
|
7558
|
-
if (i + 1 >= length) {
|
|
7559
|
-
throw error;
|
|
7560
|
-
}
|
|
7561
|
-
}
|
|
7562
|
-
}
|
|
7563
|
-
return DotenvModule.parse(decrypted);
|
|
7564
|
-
}
|
|
7565
|
-
function _warn(message) {
|
|
7566
|
-
console.error(`[dotenv@${version}][WARN] ${message}`);
|
|
7567
|
-
}
|
|
7568
|
-
function _debug(message) {
|
|
7569
|
-
console.log(`[dotenv@${version}][DEBUG] ${message}`);
|
|
7570
|
-
}
|
|
7571
|
-
function _log(message) {
|
|
7572
|
-
console.log(`[dotenv@${version}] ${message}`);
|
|
7573
|
-
}
|
|
7574
|
-
function _dotenvKey(options) {
|
|
7575
|
-
if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) {
|
|
7576
|
-
return options.DOTENV_KEY;
|
|
7577
|
-
}
|
|
7578
|
-
if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) {
|
|
7579
|
-
return process.env.DOTENV_KEY;
|
|
7580
|
-
}
|
|
7581
|
-
return "";
|
|
7582
|
-
}
|
|
7583
|
-
function _instructions(result, dotenvKey) {
|
|
7584
|
-
let uri;
|
|
7585
|
-
try {
|
|
7586
|
-
uri = new URL(dotenvKey);
|
|
7587
|
-
} catch (error) {
|
|
7588
|
-
if (error.code === "ERR_INVALID_URL") {
|
|
7589
|
-
const err = new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");
|
|
7590
|
-
err.code = "INVALID_DOTENV_KEY";
|
|
7591
|
-
throw err;
|
|
7592
|
-
}
|
|
7593
|
-
throw error;
|
|
7594
|
-
}
|
|
7595
|
-
const key = uri.password;
|
|
7596
|
-
if (!key) {
|
|
7597
|
-
const err = new Error("INVALID_DOTENV_KEY: Missing key part");
|
|
7598
|
-
err.code = "INVALID_DOTENV_KEY";
|
|
7599
|
-
throw err;
|
|
7600
|
-
}
|
|
7601
|
-
const environment = uri.searchParams.get("environment");
|
|
7602
|
-
if (!environment) {
|
|
7603
|
-
const err = new Error("INVALID_DOTENV_KEY: Missing environment part");
|
|
7604
|
-
err.code = "INVALID_DOTENV_KEY";
|
|
7605
|
-
throw err;
|
|
7606
|
-
}
|
|
7607
|
-
const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`;
|
|
7608
|
-
const ciphertext = result.parsed[environmentKey];
|
|
7609
|
-
if (!ciphertext) {
|
|
7610
|
-
const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`);
|
|
7611
|
-
err.code = "NOT_FOUND_DOTENV_ENVIRONMENT";
|
|
7612
|
-
throw err;
|
|
7613
|
-
}
|
|
7614
|
-
return { ciphertext, key };
|
|
7615
|
-
}
|
|
7616
|
-
function _vaultPath(options) {
|
|
7617
|
-
let possibleVaultPath = null;
|
|
7618
|
-
if (options && options.path && options.path.length > 0) {
|
|
7619
|
-
if (Array.isArray(options.path)) {
|
|
7620
|
-
for (const filepath of options.path) {
|
|
7621
|
-
if (fs2.existsSync(filepath)) {
|
|
7622
|
-
possibleVaultPath = filepath.endsWith(".vault") ? filepath : `${filepath}.vault`;
|
|
7623
|
-
}
|
|
7624
|
-
}
|
|
7625
|
-
} else {
|
|
7626
|
-
possibleVaultPath = options.path.endsWith(".vault") ? options.path : `${options.path}.vault`;
|
|
7627
|
-
}
|
|
7628
|
-
} else {
|
|
7629
|
-
possibleVaultPath = path.resolve(process.cwd(), ".env.vault");
|
|
7630
|
-
}
|
|
7631
|
-
if (fs2.existsSync(possibleVaultPath)) {
|
|
7632
|
-
return possibleVaultPath;
|
|
7633
|
-
}
|
|
7634
|
-
return null;
|
|
7635
|
-
}
|
|
7636
|
-
function _resolveHome(envPath) {
|
|
7637
|
-
return envPath[0] === "~" ? path.join(os.homedir(), envPath.slice(1)) : envPath;
|
|
7638
|
-
}
|
|
7639
|
-
function _configVault(options) {
|
|
7640
|
-
const debug = parseBoolean(process.env.DOTENV_CONFIG_DEBUG || options && options.debug);
|
|
7641
|
-
const quiet = parseBoolean(process.env.DOTENV_CONFIG_QUIET || options && options.quiet);
|
|
7642
|
-
if (debug || !quiet) {
|
|
7643
|
-
_log("Loading env from encrypted .env.vault");
|
|
7644
|
-
}
|
|
7645
|
-
const parsed = DotenvModule._parseVault(options);
|
|
7646
|
-
let processEnv = process.env;
|
|
7647
|
-
if (options && options.processEnv != null) {
|
|
7648
|
-
processEnv = options.processEnv;
|
|
7649
|
-
}
|
|
7650
|
-
DotenvModule.populate(processEnv, parsed, options);
|
|
7651
|
-
return { parsed };
|
|
7652
|
-
}
|
|
7653
|
-
function configDotenv(options) {
|
|
7654
|
-
const dotenvPath = path.resolve(process.cwd(), ".env");
|
|
7655
|
-
let encoding = "utf8";
|
|
7656
|
-
let processEnv = process.env;
|
|
7657
|
-
if (options && options.processEnv != null) {
|
|
7658
|
-
processEnv = options.processEnv;
|
|
7659
|
-
}
|
|
7660
|
-
let debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || options && options.debug);
|
|
7661
|
-
let quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || options && options.quiet);
|
|
7662
|
-
if (options && options.encoding) {
|
|
7663
|
-
encoding = options.encoding;
|
|
7664
|
-
} else {
|
|
7665
|
-
if (debug) {
|
|
7666
|
-
_debug("No encoding is specified. UTF-8 is used by default");
|
|
7667
|
-
}
|
|
7668
|
-
}
|
|
7669
|
-
let optionPaths = [dotenvPath];
|
|
7670
|
-
if (options && options.path) {
|
|
7671
|
-
if (!Array.isArray(options.path)) {
|
|
7672
|
-
optionPaths = [_resolveHome(options.path)];
|
|
7673
|
-
} else {
|
|
7674
|
-
optionPaths = [];
|
|
7675
|
-
for (const filepath of options.path) {
|
|
7676
|
-
optionPaths.push(_resolveHome(filepath));
|
|
7677
|
-
}
|
|
7678
|
-
}
|
|
7679
|
-
}
|
|
7680
|
-
let lastError;
|
|
7681
|
-
const parsedAll = {};
|
|
7682
|
-
for (const path2 of optionPaths) {
|
|
7683
|
-
try {
|
|
7684
|
-
const parsed = DotenvModule.parse(fs2.readFileSync(path2, { encoding }));
|
|
7685
|
-
DotenvModule.populate(parsedAll, parsed, options);
|
|
7686
|
-
} catch (e) {
|
|
7687
|
-
if (debug) {
|
|
7688
|
-
_debug(`Failed to load ${path2} ${e.message}`);
|
|
7689
|
-
}
|
|
7690
|
-
lastError = e;
|
|
7691
|
-
}
|
|
7692
|
-
}
|
|
7693
|
-
const populated = DotenvModule.populate(processEnv, parsedAll, options);
|
|
7694
|
-
debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || debug);
|
|
7695
|
-
quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || quiet);
|
|
7696
|
-
if (debug || !quiet) {
|
|
7697
|
-
const keysCount = Object.keys(populated).length;
|
|
7698
|
-
const shortPaths = [];
|
|
7699
|
-
for (const filePath of optionPaths) {
|
|
7700
|
-
try {
|
|
7701
|
-
const relative = path.relative(process.cwd(), filePath);
|
|
7702
|
-
shortPaths.push(relative);
|
|
7703
|
-
} catch (e) {
|
|
7704
|
-
if (debug) {
|
|
7705
|
-
_debug(`Failed to load ${filePath} ${e.message}`);
|
|
7706
|
-
}
|
|
7707
|
-
lastError = e;
|
|
7708
|
-
}
|
|
7709
|
-
}
|
|
7710
|
-
_log(`injecting env (${keysCount}) from ${shortPaths.join(",")} ${dim(`-- tip: ${_getRandomTip()}`)}`);
|
|
7711
|
-
}
|
|
7712
|
-
if (lastError) {
|
|
7713
|
-
return { parsed: parsedAll, error: lastError };
|
|
7714
|
-
} else {
|
|
7715
|
-
return { parsed: parsedAll };
|
|
7716
|
-
}
|
|
7717
|
-
}
|
|
7718
|
-
function config(options) {
|
|
7719
|
-
if (_dotenvKey(options).length === 0) {
|
|
7720
|
-
return DotenvModule.configDotenv(options);
|
|
7721
|
-
}
|
|
7722
|
-
const vaultPath = _vaultPath(options);
|
|
7723
|
-
if (!vaultPath) {
|
|
7724
|
-
_warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`);
|
|
7725
|
-
return DotenvModule.configDotenv(options);
|
|
7726
|
-
}
|
|
7727
|
-
return DotenvModule._configVault(options);
|
|
7728
|
-
}
|
|
7729
|
-
function decrypt(encrypted, keyStr) {
|
|
7730
|
-
const key = Buffer.from(keyStr.slice(-64), "hex");
|
|
7731
|
-
let ciphertext = Buffer.from(encrypted, "base64");
|
|
7732
|
-
const nonce = ciphertext.subarray(0, 12);
|
|
7733
|
-
const authTag = ciphertext.subarray(-16);
|
|
7734
|
-
ciphertext = ciphertext.subarray(12, -16);
|
|
7735
|
-
try {
|
|
7736
|
-
const aesgcm = crypto.createDecipheriv("aes-256-gcm", key, nonce);
|
|
7737
|
-
aesgcm.setAuthTag(authTag);
|
|
7738
|
-
return `${aesgcm.update(ciphertext)}${aesgcm.final()}`;
|
|
7739
|
-
} catch (error) {
|
|
7740
|
-
const isRange = error instanceof RangeError;
|
|
7741
|
-
const invalidKeyLength = error.message === "Invalid key length";
|
|
7742
|
-
const decryptionFailed = error.message === "Unsupported state or unable to authenticate data";
|
|
7743
|
-
if (isRange || invalidKeyLength) {
|
|
7744
|
-
const err = new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");
|
|
7745
|
-
err.code = "INVALID_DOTENV_KEY";
|
|
7746
|
-
throw err;
|
|
7747
|
-
} else if (decryptionFailed) {
|
|
7748
|
-
const err = new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");
|
|
7749
|
-
err.code = "DECRYPTION_FAILED";
|
|
7750
|
-
throw err;
|
|
7751
|
-
} else {
|
|
7752
|
-
throw error;
|
|
7753
|
-
}
|
|
7754
|
-
}
|
|
7412
|
+
// src/lib/utils/time-parser.ts
|
|
7413
|
+
init_esm_shims();
|
|
7414
|
+
var ISO_8601_PATTERN = /^(\d{4})-(\d{2})-(\d{2})(?:[Tt](\d{2}):(\d{2})(?::(\d{2})(?:\.\d{1,9})?)?(?:[Zz]|[+-]\d{2}:?\d{2})?)?$/;
|
|
7415
|
+
var DAYS_BY_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
7416
|
+
var MAX_DATE_TIMESTAMP_MS = 864e13;
|
|
7417
|
+
function parseTime(timeStr) {
|
|
7418
|
+
const relativeMatch = timeStr.match(/^(\d+)([smhdw])$/);
|
|
7419
|
+
if (relativeMatch) {
|
|
7420
|
+
const value = Number(relativeMatch[1]);
|
|
7421
|
+
const unit = relativeMatch[2];
|
|
7422
|
+
const timestamp2 = parseRelativeTime(value, unit);
|
|
7423
|
+
if (timestamp2 !== void 0) {
|
|
7424
|
+
return timestamp2;
|
|
7755
7425
|
}
|
|
7756
|
-
|
|
7757
|
-
|
|
7758
|
-
|
|
7759
|
-
|
|
7760
|
-
|
|
7761
|
-
|
|
7762
|
-
err.code = "OBJECT_REQUIRED";
|
|
7763
|
-
throw err;
|
|
7764
|
-
}
|
|
7765
|
-
for (const key of Object.keys(parsed)) {
|
|
7766
|
-
if (Object.prototype.hasOwnProperty.call(processEnv, key)) {
|
|
7767
|
-
if (override === true) {
|
|
7768
|
-
processEnv[key] = parsed[key];
|
|
7769
|
-
populated[key] = parsed[key];
|
|
7770
|
-
}
|
|
7771
|
-
if (debug) {
|
|
7772
|
-
if (override === true) {
|
|
7773
|
-
_debug(`"${key}" is already defined and WAS overwritten`);
|
|
7774
|
-
} else {
|
|
7775
|
-
_debug(`"${key}" is already defined and was NOT overwritten`);
|
|
7776
|
-
}
|
|
7777
|
-
}
|
|
7778
|
-
} else {
|
|
7779
|
-
processEnv[key] = parsed[key];
|
|
7780
|
-
populated[key] = parsed[key];
|
|
7781
|
-
}
|
|
7782
|
-
}
|
|
7783
|
-
return populated;
|
|
7426
|
+
}
|
|
7427
|
+
if (/^\d+$/.test(timeStr)) {
|
|
7428
|
+
const rawTimestamp = Number(timeStr);
|
|
7429
|
+
const timestamp2 = rawTimestamp < 1e10 ? rawTimestamp * 1e3 : rawTimestamp;
|
|
7430
|
+
if (isValidTimestamp(timestamp2)) {
|
|
7431
|
+
return timestamp2;
|
|
7784
7432
|
}
|
|
7785
|
-
var DotenvModule = {
|
|
7786
|
-
configDotenv,
|
|
7787
|
-
_configVault,
|
|
7788
|
-
_parseVault,
|
|
7789
|
-
config,
|
|
7790
|
-
decrypt,
|
|
7791
|
-
parse,
|
|
7792
|
-
populate
|
|
7793
|
-
};
|
|
7794
|
-
module.exports.configDotenv = DotenvModule.configDotenv;
|
|
7795
|
-
module.exports._configVault = DotenvModule._configVault;
|
|
7796
|
-
module.exports._parseVault = DotenvModule._parseVault;
|
|
7797
|
-
module.exports.config = DotenvModule.config;
|
|
7798
|
-
module.exports.decrypt = DotenvModule.decrypt;
|
|
7799
|
-
module.exports.parse = DotenvModule.parse;
|
|
7800
|
-
module.exports.populate = DotenvModule.populate;
|
|
7801
|
-
module.exports = DotenvModule;
|
|
7802
7433
|
}
|
|
7803
|
-
|
|
7434
|
+
const timestamp = parseIsoTime(timeStr);
|
|
7435
|
+
if (timestamp !== void 0) {
|
|
7436
|
+
return timestamp;
|
|
7437
|
+
}
|
|
7438
|
+
throw new Error(
|
|
7439
|
+
`Invalid time format: "${timeStr}". Supported formats: relative (5m, 2h, 1d), ISO 8601 (2024-01-15T10:30:00Z), Unix timestamp`
|
|
7440
|
+
);
|
|
7441
|
+
}
|
|
7442
|
+
function parseIsoTime(timeStr) {
|
|
7443
|
+
const match = ISO_8601_PATTERN.exec(timeStr);
|
|
7444
|
+
if (!match) {
|
|
7445
|
+
return void 0;
|
|
7446
|
+
}
|
|
7447
|
+
const year = Number(match[1]);
|
|
7448
|
+
const month = Number(match[2]);
|
|
7449
|
+
const day = Number(match[3]);
|
|
7450
|
+
const hour = match[4] ? Number(match[4]) : 0;
|
|
7451
|
+
const minute = match[5] ? Number(match[5]) : 0;
|
|
7452
|
+
const second = match[6] ? Number(match[6]) : 0;
|
|
7453
|
+
if (!Number.isInteger(year) || !Number.isInteger(month) || !Number.isInteger(day) || !Number.isInteger(hour) || !Number.isInteger(minute) || !Number.isInteger(second) || month < 1 || month > 12 || day < 1 || day > daysInMonth(year, month) || hour > 23 || minute > 59 || second > 59) {
|
|
7454
|
+
return void 0;
|
|
7455
|
+
}
|
|
7456
|
+
const timestamp = new Date(timeStr).getTime();
|
|
7457
|
+
return isValidTimestamp(timestamp) ? timestamp : void 0;
|
|
7458
|
+
}
|
|
7459
|
+
function daysInMonth(year, month) {
|
|
7460
|
+
if (month === 2) {
|
|
7461
|
+
return isLeapYear(year) ? 29 : 28;
|
|
7462
|
+
}
|
|
7463
|
+
return DAYS_BY_MONTH[month - 1] ?? 0;
|
|
7464
|
+
}
|
|
7465
|
+
function isLeapYear(year) {
|
|
7466
|
+
return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
|
|
7467
|
+
}
|
|
7468
|
+
function parseRelativeTime(value, unit) {
|
|
7469
|
+
if (!Number.isSafeInteger(value)) {
|
|
7470
|
+
return void 0;
|
|
7471
|
+
}
|
|
7472
|
+
const now = Date.now();
|
|
7473
|
+
const multipliers = {
|
|
7474
|
+
s: 1e3,
|
|
7475
|
+
// seconds
|
|
7476
|
+
m: 60 * 1e3,
|
|
7477
|
+
// minutes
|
|
7478
|
+
h: 60 * 60 * 1e3,
|
|
7479
|
+
// hours
|
|
7480
|
+
d: 24 * 60 * 60 * 1e3,
|
|
7481
|
+
// days
|
|
7482
|
+
w: 7 * 24 * 60 * 60 * 1e3
|
|
7483
|
+
// weeks
|
|
7484
|
+
};
|
|
7485
|
+
const multiplier = multipliers[unit];
|
|
7486
|
+
if (!multiplier) {
|
|
7487
|
+
throw new Error(`Unknown time unit: ${unit}`);
|
|
7488
|
+
}
|
|
7489
|
+
const timestamp = now - value * multiplier;
|
|
7490
|
+
return isValidTimestamp(timestamp) ? timestamp : void 0;
|
|
7491
|
+
}
|
|
7492
|
+
function isValidTimestamp(timestamp) {
|
|
7493
|
+
return Number.isSafeInteger(timestamp) && Math.abs(timestamp) <= MAX_DATE_TIMESTAMP_MS;
|
|
7494
|
+
}
|
|
7804
7495
|
|
|
7805
7496
|
// ../../packages/core/src/frameworks.ts
|
|
7806
7497
|
init_esm_shims();
|
|
@@ -7844,57 +7535,6 @@ init_esm_shims();
|
|
|
7844
7535
|
|
|
7845
7536
|
// ../../packages/core/src/variable-expander.ts
|
|
7846
7537
|
init_esm_shims();
|
|
7847
|
-
var VARIABLE_PATTERN = /\$\{\{\s*(env|vars|secrets)\.([a-zA-Z_][a-zA-Z0-9_]*)\s*\}\}/g;
|
|
7848
|
-
function extractVariableReferencesFromString(value) {
|
|
7849
|
-
const refs = [];
|
|
7850
|
-
const matches = value.matchAll(VARIABLE_PATTERN);
|
|
7851
|
-
for (const match of matches) {
|
|
7852
|
-
const source = match[1];
|
|
7853
|
-
const name = match[2];
|
|
7854
|
-
refs.push({ source, name });
|
|
7855
|
-
}
|
|
7856
|
-
return refs;
|
|
7857
|
-
}
|
|
7858
|
-
function extractVariableReferences(obj) {
|
|
7859
|
-
const refs = [];
|
|
7860
|
-
const seen = /* @__PURE__ */ new Set();
|
|
7861
|
-
function scan(value) {
|
|
7862
|
-
if (typeof value === "string") {
|
|
7863
|
-
const stringRefs = extractVariableReferencesFromString(value);
|
|
7864
|
-
for (const ref of stringRefs) {
|
|
7865
|
-
const key = `${ref.source}.${ref.name}`;
|
|
7866
|
-
if (!seen.has(key)) {
|
|
7867
|
-
seen.add(key);
|
|
7868
|
-
refs.push(ref);
|
|
7869
|
-
}
|
|
7870
|
-
}
|
|
7871
|
-
} else if (Array.isArray(value)) {
|
|
7872
|
-
for (const item of value) {
|
|
7873
|
-
scan(item);
|
|
7874
|
-
}
|
|
7875
|
-
} else if (value !== null && typeof value === "object") {
|
|
7876
|
-
for (const val of Object.values(value)) {
|
|
7877
|
-
scan(val);
|
|
7878
|
-
}
|
|
7879
|
-
}
|
|
7880
|
-
}
|
|
7881
|
-
scan(obj);
|
|
7882
|
-
return refs;
|
|
7883
|
-
}
|
|
7884
|
-
function groupVariablesBySource(refs) {
|
|
7885
|
-
const groups = {
|
|
7886
|
-
env: [],
|
|
7887
|
-
vars: [],
|
|
7888
|
-
secrets: []
|
|
7889
|
-
};
|
|
7890
|
-
for (const ref of refs) {
|
|
7891
|
-
groups[ref.source].push(ref);
|
|
7892
|
-
}
|
|
7893
|
-
return groups;
|
|
7894
|
-
}
|
|
7895
|
-
function extractAndGroupVariables(obj) {
|
|
7896
|
-
return groupVariablesBySource(extractVariableReferences(obj));
|
|
7897
|
-
}
|
|
7898
7538
|
|
|
7899
7539
|
// ../../packages/core/src/usage-source-bucket.ts
|
|
7900
7540
|
init_esm_shims();
|
|
@@ -10845,9 +10485,235 @@ var desktopAuthConsumeContract = c3.router({
|
|
|
10845
10485
|
}
|
|
10846
10486
|
});
|
|
10847
10487
|
|
|
10848
|
-
// ../../packages/api-contracts/src/contracts/
|
|
10488
|
+
// ../../packages/api-contracts/src/contracts/composes.ts
|
|
10849
10489
|
init_esm_shims();
|
|
10850
10490
|
var c4 = initContract();
|
|
10491
|
+
var MOUNT_PATH_TEMPLATE = "${{ working_dir }}";
|
|
10492
|
+
var composeVersionQuerySchema = external_exports.string().min(1, "Missing version query parameter").regex(
|
|
10493
|
+
/^[a-f0-9]{8,64}$|^latest$/i,
|
|
10494
|
+
"Version must be 8-64 hex characters or 'latest'"
|
|
10495
|
+
);
|
|
10496
|
+
var AGENT_NAME_REGEX = /^[a-zA-Z0-9][a-zA-Z0-9-]{1,62}[a-zA-Z0-9]$/;
|
|
10497
|
+
var agentNameSchema = external_exports.string().min(3, "Agent name must be at least 3 characters").max(64, "Agent name must be 64 characters or less").regex(
|
|
10498
|
+
AGENT_NAME_REGEX,
|
|
10499
|
+
"Agent name must start and end with letter or number, and contain only letters, numbers, and hyphens"
|
|
10500
|
+
);
|
|
10501
|
+
var volumeConfigSchema = external_exports.object({
|
|
10502
|
+
name: external_exports.string().min(1, "Volume name is required"),
|
|
10503
|
+
version: external_exports.string().min(1, "Volume version is required"),
|
|
10504
|
+
/** When true, skip mounting without error if volume doesn't exist */
|
|
10505
|
+
optional: external_exports.boolean().optional()
|
|
10506
|
+
});
|
|
10507
|
+
var mountPathSchema = external_exports.string().min(1, "mount_path cannot be empty").refine((val) => {
|
|
10508
|
+
return val === MOUNT_PATH_TEMPLATE || val.startsWith("/");
|
|
10509
|
+
}, "mount_path must be an absolute path or ${{ working_dir }}");
|
|
10510
|
+
var artifactConfigSchema = external_exports.object({
|
|
10511
|
+
name: external_exports.string().min(1, "Artifact name is required"),
|
|
10512
|
+
version: external_exports.string().min(1).optional(),
|
|
10513
|
+
mount_path: mountPathSchema.optional()
|
|
10514
|
+
});
|
|
10515
|
+
var artifactsArraySchema = external_exports.array(artifactConfigSchema).refine((items) => {
|
|
10516
|
+
const names = items.map((i) => {
|
|
10517
|
+
return i.name;
|
|
10518
|
+
});
|
|
10519
|
+
return new Set(names).size === names.length;
|
|
10520
|
+
}, "Artifact names must be unique");
|
|
10521
|
+
var agentFirewallsMapSchema = external_exports.record(
|
|
10522
|
+
external_exports.string(),
|
|
10523
|
+
external_exports.object({
|
|
10524
|
+
permissions: external_exports.union([external_exports.literal("all"), external_exports.array(external_exports.string()).min(1)])
|
|
10525
|
+
})
|
|
10526
|
+
);
|
|
10527
|
+
var legacyAgentFirewallsSchema = external_exports.union([
|
|
10528
|
+
agentFirewallsMapSchema,
|
|
10529
|
+
firewallsSchema
|
|
10530
|
+
]);
|
|
10531
|
+
var agentDefinitionSchema = external_exports.object({
|
|
10532
|
+
description: external_exports.string().optional(),
|
|
10533
|
+
framework: external_exports.enum(["claude-code", "codex"]),
|
|
10534
|
+
volumes: external_exports.array(external_exports.string()).optional(),
|
|
10535
|
+
environment: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
10536
|
+
/**
|
|
10537
|
+
* Path to instructions file (e.g., AGENTS.md).
|
|
10538
|
+
* Auto-uploaded as volume and mounted at /home/user/.claude/CLAUDE.md
|
|
10539
|
+
*/
|
|
10540
|
+
instructions: external_exports.string().min(1, "Instructions path cannot be empty").refine((val) => {
|
|
10541
|
+
return !val.includes("..") && !val.startsWith("/") && !val.startsWith("\\");
|
|
10542
|
+
}, "Instructions path must be a relative path without '..' segments").optional(),
|
|
10543
|
+
/**
|
|
10544
|
+
* @deprecated Skills are no longer processed by the CLI path. Declare
|
|
10545
|
+
* mounts via `volumes:` / `--volume` instead. Field retained as optional
|
|
10546
|
+
* so older CLI clients posting `skills:` are not rejected; server strips
|
|
10547
|
+
* the field before persisting compose content.
|
|
10548
|
+
*/
|
|
10549
|
+
skills: external_exports.array(external_exports.string()).optional(),
|
|
10550
|
+
/**
|
|
10551
|
+
* Route this agent to a self-hosted runner instead of E2B.
|
|
10552
|
+
* When specified, runs will be queued for the specified runner group.
|
|
10553
|
+
*/
|
|
10554
|
+
experimental_runner: external_exports.object({
|
|
10555
|
+
group: external_exports.string().regex(
|
|
10556
|
+
/^[a-z0-9-]+\/[a-z0-9-]+$/,
|
|
10557
|
+
"Runner group must be in vm0/<name> format (e.g., vm0/production)"
|
|
10558
|
+
)
|
|
10559
|
+
}).optional(),
|
|
10560
|
+
/**
|
|
10561
|
+
* VM profile for resource allocation (e.g., "vm0/default").
|
|
10562
|
+
* Determines rootfs image and VM resources (vCPU, memory).
|
|
10563
|
+
* Defaults to "vm0/default" when omitted.
|
|
10564
|
+
*/
|
|
10565
|
+
experimental_profile: external_exports.string().regex(
|
|
10566
|
+
/^[a-z0-9-]+\/[a-z0-9-]+$/,
|
|
10567
|
+
"Profile must be in org/name format (e.g., vm0/default)"
|
|
10568
|
+
).optional(),
|
|
10569
|
+
/**
|
|
10570
|
+
* External firewall rules for proxy-side token replacement.
|
|
10571
|
+
* Map format: { slack: { permissions: [...] | "all" } }
|
|
10572
|
+
* Resolved to full ExpandedFirewallConfig[] at runtime.
|
|
10573
|
+
*/
|
|
10574
|
+
firewalls: agentFirewallsMapSchema.optional()
|
|
10575
|
+
});
|
|
10576
|
+
var agentComposeContentSchema = external_exports.object({
|
|
10577
|
+
version: external_exports.string().min(1, "Version is required"),
|
|
10578
|
+
agents: external_exports.record(external_exports.string(), agentDefinitionSchema),
|
|
10579
|
+
volumes: external_exports.record(external_exports.string(), volumeConfigSchema).optional(),
|
|
10580
|
+
artifacts: artifactsArraySchema.optional()
|
|
10581
|
+
});
|
|
10582
|
+
var agentComposeApiContentSchema = external_exports.object({
|
|
10583
|
+
version: external_exports.string().min(1, "Version is required"),
|
|
10584
|
+
agents: external_exports.record(
|
|
10585
|
+
external_exports.string(),
|
|
10586
|
+
agentDefinitionSchema.extend({
|
|
10587
|
+
// Legacy: older compose versions may have this field (map or expanded array).
|
|
10588
|
+
// Accepted for backward compat but ignored at runtime.
|
|
10589
|
+
firewalls: legacyAgentFirewallsSchema.optional()
|
|
10590
|
+
})
|
|
10591
|
+
),
|
|
10592
|
+
volumes: external_exports.record(external_exports.string(), volumeConfigSchema).optional(),
|
|
10593
|
+
artifacts: artifactsArraySchema.optional()
|
|
10594
|
+
});
|
|
10595
|
+
var composeResponseSchema = external_exports.object({
|
|
10596
|
+
id: external_exports.string(),
|
|
10597
|
+
name: external_exports.string(),
|
|
10598
|
+
headVersionId: external_exports.string().nullable(),
|
|
10599
|
+
content: agentComposeApiContentSchema.nullable(),
|
|
10600
|
+
createdAt: external_exports.string(),
|
|
10601
|
+
updatedAt: external_exports.string()
|
|
10602
|
+
});
|
|
10603
|
+
var createComposeResponseSchema = external_exports.object({
|
|
10604
|
+
composeId: external_exports.string(),
|
|
10605
|
+
name: external_exports.string(),
|
|
10606
|
+
versionId: external_exports.string(),
|
|
10607
|
+
action: external_exports.enum(["created", "existing"]),
|
|
10608
|
+
updatedAt: external_exports.string()
|
|
10609
|
+
});
|
|
10610
|
+
var composesMainContract = c4.router({
|
|
10611
|
+
/**
|
|
10612
|
+
* GET /api/agent/composes?name={name}&org={org}
|
|
10613
|
+
* Get agent compose by name with HEAD version content
|
|
10614
|
+
* If org is not provided, uses the authenticated user's default org
|
|
10615
|
+
*/
|
|
10616
|
+
getByName: {
|
|
10617
|
+
method: "GET",
|
|
10618
|
+
path: "/api/agent/composes",
|
|
10619
|
+
headers: authHeadersSchema,
|
|
10620
|
+
query: external_exports.object({
|
|
10621
|
+
name: external_exports.string().min(1, "Missing name query parameter")
|
|
10622
|
+
}),
|
|
10623
|
+
responses: {
|
|
10624
|
+
200: composeResponseSchema,
|
|
10625
|
+
400: apiErrorSchema,
|
|
10626
|
+
401: apiErrorSchema,
|
|
10627
|
+
403: apiErrorSchema,
|
|
10628
|
+
404: apiErrorSchema
|
|
10629
|
+
},
|
|
10630
|
+
summary: "Get agent compose by name"
|
|
10631
|
+
},
|
|
10632
|
+
/**
|
|
10633
|
+
* POST /api/agent/composes
|
|
10634
|
+
* Create or update an agent compose version
|
|
10635
|
+
*
|
|
10636
|
+
* Returns 201 when a new compose is created, 200 when updating an existing compose.
|
|
10637
|
+
* The action field indicates whether a new version was created or an existing one reused.
|
|
10638
|
+
*/
|
|
10639
|
+
create: {
|
|
10640
|
+
method: "POST",
|
|
10641
|
+
path: "/api/agent/composes",
|
|
10642
|
+
headers: authHeadersSchema,
|
|
10643
|
+
body: external_exports.object({
|
|
10644
|
+
content: agentComposeApiContentSchema
|
|
10645
|
+
}),
|
|
10646
|
+
responses: {
|
|
10647
|
+
200: createComposeResponseSchema,
|
|
10648
|
+
201: createComposeResponseSchema,
|
|
10649
|
+
400: apiErrorSchema,
|
|
10650
|
+
401: apiErrorSchema,
|
|
10651
|
+
403: apiErrorSchema
|
|
10652
|
+
},
|
|
10653
|
+
summary: "Create or update agent compose version"
|
|
10654
|
+
}
|
|
10655
|
+
});
|
|
10656
|
+
var composesByIdContract = c4.router({
|
|
10657
|
+
/**
|
|
10658
|
+
* GET /api/agent/composes/:id
|
|
10659
|
+
* Get agent compose by ID with HEAD version content
|
|
10660
|
+
*/
|
|
10661
|
+
getById: {
|
|
10662
|
+
method: "GET",
|
|
10663
|
+
path: "/api/agent/composes/:id",
|
|
10664
|
+
headers: authHeadersSchema,
|
|
10665
|
+
pathParams: external_exports.object({
|
|
10666
|
+
id: external_exports.string().uuid("Compose ID must be a valid UUID")
|
|
10667
|
+
}),
|
|
10668
|
+
responses: {
|
|
10669
|
+
200: composeResponseSchema,
|
|
10670
|
+
400: apiErrorSchema,
|
|
10671
|
+
401: apiErrorSchema,
|
|
10672
|
+
403: apiErrorSchema,
|
|
10673
|
+
404: apiErrorSchema
|
|
10674
|
+
},
|
|
10675
|
+
summary: "Get agent compose by ID"
|
|
10676
|
+
}
|
|
10677
|
+
});
|
|
10678
|
+
var composesVersionsContract = c4.router({
|
|
10679
|
+
/**
|
|
10680
|
+
* GET /api/agent/composes/versions?composeId={id}&version={hash|tag}
|
|
10681
|
+
* Resolve a version specifier to a full version ID
|
|
10682
|
+
*/
|
|
10683
|
+
resolveVersion: {
|
|
10684
|
+
method: "GET",
|
|
10685
|
+
path: "/api/agent/composes/versions",
|
|
10686
|
+
headers: authHeadersSchema,
|
|
10687
|
+
query: external_exports.object({
|
|
10688
|
+
composeId: external_exports.string().min(1, "Missing composeId query parameter"),
|
|
10689
|
+
version: composeVersionQuerySchema
|
|
10690
|
+
}),
|
|
10691
|
+
responses: {
|
|
10692
|
+
200: external_exports.object({
|
|
10693
|
+
versionId: external_exports.string(),
|
|
10694
|
+
tag: external_exports.string().optional()
|
|
10695
|
+
}),
|
|
10696
|
+
400: apiErrorSchema,
|
|
10697
|
+
401: apiErrorSchema,
|
|
10698
|
+
403: apiErrorSchema,
|
|
10699
|
+
404: apiErrorSchema
|
|
10700
|
+
},
|
|
10701
|
+
summary: "Resolve version specifier to full version ID"
|
|
10702
|
+
}
|
|
10703
|
+
});
|
|
10704
|
+
var composeListItemSchema = external_exports.object({
|
|
10705
|
+
id: external_exports.string(),
|
|
10706
|
+
name: external_exports.string(),
|
|
10707
|
+
displayName: external_exports.string().nullable().optional(),
|
|
10708
|
+
description: external_exports.string().nullable().optional(),
|
|
10709
|
+
sound: external_exports.string().nullable().optional(),
|
|
10710
|
+
headVersionId: external_exports.string().nullable(),
|
|
10711
|
+
updatedAt: external_exports.string()
|
|
10712
|
+
});
|
|
10713
|
+
|
|
10714
|
+
// ../../packages/api-contracts/src/contracts/zero-user-model-preference.ts
|
|
10715
|
+
init_esm_shims();
|
|
10716
|
+
var c5 = initContract();
|
|
10851
10717
|
var userModelPreferenceResponseSchema = external_exports.object({
|
|
10852
10718
|
selectedModel: supportedRunModelSchema.nullable(),
|
|
10853
10719
|
updatedAt: external_exports.string().nullable()
|
|
@@ -10855,7 +10721,7 @@ var userModelPreferenceResponseSchema = external_exports.object({
|
|
|
10855
10721
|
var updateUserModelPreferenceRequestSchema = external_exports.object({
|
|
10856
10722
|
selectedModel: supportedRunModelSchema.nullable()
|
|
10857
10723
|
});
|
|
10858
|
-
var zeroUserModelPreferenceContract =
|
|
10724
|
+
var zeroUserModelPreferenceContract = c5.router({
|
|
10859
10725
|
get: {
|
|
10860
10726
|
method: "GET",
|
|
10861
10727
|
path: "/api/zero/user-model-preference",
|
|
@@ -10888,7 +10754,7 @@ var zeroUserModelPreferenceContract = c4.router({
|
|
|
10888
10754
|
|
|
10889
10755
|
// ../../packages/api-contracts/src/contracts/presentation-images.ts
|
|
10890
10756
|
init_esm_shims();
|
|
10891
|
-
var
|
|
10757
|
+
var c6 = initContract();
|
|
10892
10758
|
var presentationImageOrientationSchema = external_exports.enum([
|
|
10893
10759
|
"landscape",
|
|
10894
10760
|
"portrait",
|
|
@@ -10946,7 +10812,7 @@ var presentationImageResolveResponseSchema = external_exports.object({
|
|
|
10946
10812
|
])
|
|
10947
10813
|
)
|
|
10948
10814
|
}).strict();
|
|
10949
|
-
var presentationImagesContract =
|
|
10815
|
+
var presentationImagesContract = c6.router({
|
|
10950
10816
|
resolve: {
|
|
10951
10817
|
method: "POST",
|
|
10952
10818
|
path: "/api/presentation/images/resolve",
|
|
@@ -10965,7 +10831,7 @@ var presentationImagesContract = c5.router({
|
|
|
10965
10831
|
|
|
10966
10832
|
// ../../packages/api-contracts/src/contracts/test-telegram-dispatch-probe.ts
|
|
10967
10833
|
init_esm_shims();
|
|
10968
|
-
var
|
|
10834
|
+
var c7 = initContract();
|
|
10969
10835
|
var testTelegramDispatchProbeBodySchema = external_exports.object({
|
|
10970
10836
|
bot_id: external_exports.string(),
|
|
10971
10837
|
chat_id: external_exports.string(),
|
|
@@ -10990,7 +10856,7 @@ var testTelegramDispatchProbeHandlerErrorSchema = external_exports.object({
|
|
|
10990
10856
|
stack: external_exports.string().optional()
|
|
10991
10857
|
})
|
|
10992
10858
|
});
|
|
10993
|
-
var testTelegramDispatchProbeContract =
|
|
10859
|
+
var testTelegramDispatchProbeContract = c7.router({
|
|
10994
10860
|
post: {
|
|
10995
10861
|
method: "POST",
|
|
10996
10862
|
path: "/api/test/telegram-dispatch-probe",
|
|
@@ -11009,7 +10875,7 @@ var testTelegramDispatchProbeContract = c6.router({
|
|
|
11009
10875
|
|
|
11010
10876
|
// ../../packages/api-contracts/src/contracts/test-teams-dispatch-probe.ts
|
|
11011
10877
|
init_esm_shims();
|
|
11012
|
-
var
|
|
10878
|
+
var c8 = initContract();
|
|
11013
10879
|
var testTeamsDispatchProbeBodySchema = external_exports.object({
|
|
11014
10880
|
tenant_id: external_exports.string(),
|
|
11015
10881
|
conversation_id: external_exports.string(),
|
|
@@ -11048,7 +10914,7 @@ var testTeamsDispatchProbeResponseSchema = external_exports.union([
|
|
|
11048
10914
|
testTeamsDispatchProbeSuccessResponseSchema,
|
|
11049
10915
|
testTeamsDispatchProbeFailureResponseSchema
|
|
11050
10916
|
]);
|
|
11051
|
-
var testTeamsDispatchProbeContract =
|
|
10917
|
+
var testTeamsDispatchProbeContract = c8.router({
|
|
11052
10918
|
post: {
|
|
11053
10919
|
method: "POST",
|
|
11054
10920
|
path: "/api/test/teams-dispatch-probe",
|
|
@@ -11091,7 +10957,7 @@ var internalCallbackErrorSchema = external_exports.object({
|
|
|
11091
10957
|
});
|
|
11092
10958
|
|
|
11093
10959
|
// ../../packages/api-contracts/src/contracts/zero-email.ts
|
|
11094
|
-
var
|
|
10960
|
+
var c9 = initContract();
|
|
11095
10961
|
var emailRecipientsSchema = external_exports.array(external_exports.string()).optional();
|
|
11096
10962
|
var zeroEmailReplyCallbackPayloadSchema = external_exports.object({
|
|
11097
10963
|
emailThreadSessionId: external_exports.string(),
|
|
@@ -11114,7 +10980,7 @@ var zeroEmailTriggerCallbackPayloadSchema = external_exports.object({
|
|
|
11114
10980
|
replyRecipientTo: emailRecipientsSchema,
|
|
11115
10981
|
replyRecipientCc: emailRecipientsSchema
|
|
11116
10982
|
}).passthrough();
|
|
11117
|
-
var zeroEmailReplyCallbackContract =
|
|
10983
|
+
var zeroEmailReplyCallbackContract = c9.router({
|
|
11118
10984
|
post: {
|
|
11119
10985
|
method: "POST",
|
|
11120
10986
|
path: "/api/zero/email/callbacks/reply",
|
|
@@ -11131,7 +10997,7 @@ var zeroEmailReplyCallbackContract = c8.router({
|
|
|
11131
10997
|
summary: "Handle Zero email reply completion callbacks"
|
|
11132
10998
|
}
|
|
11133
10999
|
});
|
|
11134
|
-
var zeroEmailTriggerCallbackContract =
|
|
11000
|
+
var zeroEmailTriggerCallbackContract = c9.router({
|
|
11135
11001
|
post: {
|
|
11136
11002
|
method: "POST",
|
|
11137
11003
|
path: "/api/zero/email/callbacks/trigger",
|
|
@@ -11148,7 +11014,7 @@ var zeroEmailTriggerCallbackContract = c8.router({
|
|
|
11148
11014
|
summary: "Handle Zero email trigger completion callbacks"
|
|
11149
11015
|
}
|
|
11150
11016
|
});
|
|
11151
|
-
var zeroEmailInboundContract =
|
|
11017
|
+
var zeroEmailInboundContract = c9.router({
|
|
11152
11018
|
post: {
|
|
11153
11019
|
method: "POST",
|
|
11154
11020
|
path: "/api/zero/email/inbound",
|
|
@@ -11168,8 +11034,8 @@ var zeroEmailInboundContract = c8.router({
|
|
|
11168
11034
|
|
|
11169
11035
|
// ../../packages/api-contracts/src/contracts/auth.ts
|
|
11170
11036
|
init_esm_shims();
|
|
11171
|
-
var
|
|
11172
|
-
var authContract =
|
|
11037
|
+
var c10 = initContract();
|
|
11038
|
+
var authContract = c10.router({
|
|
11173
11039
|
/**
|
|
11174
11040
|
* GET /api/auth/me
|
|
11175
11041
|
* Get current user information
|
|
@@ -11194,7 +11060,7 @@ var authContract = c9.router({
|
|
|
11194
11060
|
|
|
11195
11061
|
// ../../packages/api-contracts/src/contracts/user-export.ts
|
|
11196
11062
|
init_esm_shims();
|
|
11197
|
-
var
|
|
11063
|
+
var c11 = initContract();
|
|
11198
11064
|
var exportJobStatusSchema = external_exports.enum([
|
|
11199
11065
|
"pending",
|
|
11200
11066
|
"running",
|
|
@@ -11219,7 +11085,7 @@ var userExportStartResponseSchema = external_exports.object({
|
|
|
11219
11085
|
jobId: external_exports.string().uuid(),
|
|
11220
11086
|
status: external_exports.enum(["pending", "running"])
|
|
11221
11087
|
});
|
|
11222
|
-
var userExportContract =
|
|
11088
|
+
var userExportContract = c11.router({
|
|
11223
11089
|
get: {
|
|
11224
11090
|
method: "GET",
|
|
11225
11091
|
path: "/api/user/export",
|
|
@@ -11250,7 +11116,7 @@ var userExportContract = c10.router({
|
|
|
11250
11116
|
|
|
11251
11117
|
// ../../packages/api-contracts/src/contracts/email-unsubscribe.ts
|
|
11252
11118
|
init_esm_shims();
|
|
11253
|
-
var
|
|
11119
|
+
var c12 = initContract();
|
|
11254
11120
|
var emailUnsubscribeQuerySchema = external_exports.object({
|
|
11255
11121
|
token: external_exports.string().optional()
|
|
11256
11122
|
});
|
|
@@ -11260,13 +11126,13 @@ var emailUnsubscribeResponseSchema = external_exports.object({
|
|
|
11260
11126
|
var emailUnsubscribeErrorSchema = external_exports.object({
|
|
11261
11127
|
error: external_exports.string()
|
|
11262
11128
|
});
|
|
11263
|
-
var emailUnsubscribeContract =
|
|
11129
|
+
var emailUnsubscribeContract = c12.router({
|
|
11264
11130
|
get: {
|
|
11265
11131
|
method: "GET",
|
|
11266
11132
|
path: "/api/email/unsubscribe",
|
|
11267
11133
|
query: emailUnsubscribeQuerySchema,
|
|
11268
11134
|
responses: {
|
|
11269
|
-
200:
|
|
11135
|
+
200: c12.otherResponse({
|
|
11270
11136
|
contentType: "text/html",
|
|
11271
11137
|
body: external_exports.unknown()
|
|
11272
11138
|
}),
|
|
@@ -11287,10 +11153,73 @@ var emailUnsubscribeContract = c11.router({
|
|
|
11287
11153
|
}
|
|
11288
11154
|
});
|
|
11289
11155
|
|
|
11156
|
+
// ../../packages/api-contracts/src/contracts/zero-morning-brief.ts
|
|
11157
|
+
init_esm_shims();
|
|
11158
|
+
var c13 = initContract();
|
|
11159
|
+
var triggerMorningBriefResponseSchema = external_exports.object({
|
|
11160
|
+
runId: external_exports.string(),
|
|
11161
|
+
briefDate: external_exports.string()
|
|
11162
|
+
});
|
|
11163
|
+
var zeroMorningBriefContract = c13.router({
|
|
11164
|
+
trigger: {
|
|
11165
|
+
method: "POST",
|
|
11166
|
+
path: "/api/zero/morning-brief/trigger",
|
|
11167
|
+
headers: authHeadersSchema,
|
|
11168
|
+
body: external_exports.object({}),
|
|
11169
|
+
responses: {
|
|
11170
|
+
200: triggerMorningBriefResponseSchema,
|
|
11171
|
+
400: apiErrorSchema,
|
|
11172
|
+
401: apiErrorSchema,
|
|
11173
|
+
403: apiErrorSchema,
|
|
11174
|
+
500: apiErrorSchema
|
|
11175
|
+
},
|
|
11176
|
+
summary: "Trigger a morning brief immediately for the current user"
|
|
11177
|
+
}
|
|
11178
|
+
});
|
|
11179
|
+
|
|
11180
|
+
// ../../packages/api-contracts/src/contracts/email-morning-brief-unsubscribe.ts
|
|
11181
|
+
init_esm_shims();
|
|
11182
|
+
var c14 = initContract();
|
|
11183
|
+
var emailMorningBriefUnsubscribeQuerySchema = external_exports.object({
|
|
11184
|
+
token: external_exports.string().optional()
|
|
11185
|
+
});
|
|
11186
|
+
var emailMorningBriefUnsubscribeResponseSchema = external_exports.object({
|
|
11187
|
+
unsubscribed: external_exports.literal(true)
|
|
11188
|
+
});
|
|
11189
|
+
var emailMorningBriefUnsubscribeErrorSchema = external_exports.object({
|
|
11190
|
+
error: external_exports.string()
|
|
11191
|
+
});
|
|
11192
|
+
var emailMorningBriefUnsubscribeContract = c14.router({
|
|
11193
|
+
get: {
|
|
11194
|
+
method: "GET",
|
|
11195
|
+
path: "/api/email/morning-brief/unsubscribe",
|
|
11196
|
+
query: emailMorningBriefUnsubscribeQuerySchema,
|
|
11197
|
+
responses: {
|
|
11198
|
+
200: c14.otherResponse({
|
|
11199
|
+
contentType: "text/html",
|
|
11200
|
+
body: external_exports.unknown()
|
|
11201
|
+
}),
|
|
11202
|
+
400: emailMorningBriefUnsubscribeErrorSchema
|
|
11203
|
+
},
|
|
11204
|
+
summary: "Turn off the Morning Brief from an email link"
|
|
11205
|
+
},
|
|
11206
|
+
unsubscribe: {
|
|
11207
|
+
method: "POST",
|
|
11208
|
+
path: "/api/email/morning-brief/unsubscribe",
|
|
11209
|
+
query: emailMorningBriefUnsubscribeQuerySchema,
|
|
11210
|
+
body: external_exports.undefined(),
|
|
11211
|
+
responses: {
|
|
11212
|
+
200: emailMorningBriefUnsubscribeResponseSchema,
|
|
11213
|
+
400: emailMorningBriefUnsubscribeErrorSchema
|
|
11214
|
+
},
|
|
11215
|
+
summary: "One-click List-Unsubscribe for the Morning Brief"
|
|
11216
|
+
}
|
|
11217
|
+
});
|
|
11218
|
+
|
|
11290
11219
|
// ../../packages/api-contracts/src/contracts/connectors-type-callback.ts
|
|
11291
11220
|
init_esm_shims();
|
|
11292
|
-
var
|
|
11293
|
-
var connectorsTypeCallbackContract =
|
|
11221
|
+
var c15 = initContract();
|
|
11222
|
+
var connectorsTypeCallbackContract = c15.router({
|
|
11294
11223
|
callback: {
|
|
11295
11224
|
method: "GET",
|
|
11296
11225
|
path: "/api/connectors/:type/callback",
|
|
@@ -11316,7 +11245,7 @@ var connectorsTypeCallbackContract = c12.router({
|
|
|
11316
11245
|
"openid.realm": external_exports.string().optional()
|
|
11317
11246
|
}).catchall(external_exports.string()),
|
|
11318
11247
|
responses: {
|
|
11319
|
-
307:
|
|
11248
|
+
307: c15.noBody()
|
|
11320
11249
|
},
|
|
11321
11250
|
summary: "Complete connector browser authorization"
|
|
11322
11251
|
}
|
|
@@ -11324,7 +11253,7 @@ var connectorsTypeCallbackContract = c12.router({
|
|
|
11324
11253
|
|
|
11325
11254
|
// ../../packages/api-contracts/src/contracts/test-oauth-provider-authorize.ts
|
|
11326
11255
|
init_esm_shims();
|
|
11327
|
-
var
|
|
11256
|
+
var c16 = initContract();
|
|
11328
11257
|
var testOAuthProviderAuthorizeErrorSchema = external_exports.object({
|
|
11329
11258
|
error: external_exports.string()
|
|
11330
11259
|
});
|
|
@@ -11336,13 +11265,13 @@ var testOAuthProviderAuthorizeQuerySchema = external_exports.object({
|
|
|
11336
11265
|
scope: external_exports.string().optional(),
|
|
11337
11266
|
state: external_exports.string().optional()
|
|
11338
11267
|
});
|
|
11339
|
-
var testOAuthProviderAuthorizeContract =
|
|
11268
|
+
var testOAuthProviderAuthorizeContract = c16.router({
|
|
11340
11269
|
authorize: {
|
|
11341
11270
|
method: "GET",
|
|
11342
11271
|
path: "/api/test/oauth-provider/authorize",
|
|
11343
11272
|
query: testOAuthProviderAuthorizeQuerySchema,
|
|
11344
11273
|
responses: {
|
|
11345
|
-
302:
|
|
11274
|
+
302: c16.noBody(),
|
|
11346
11275
|
400: testOAuthProviderAuthorizeErrorSchema,
|
|
11347
11276
|
404: external_exports.string()
|
|
11348
11277
|
},
|
|
@@ -11352,7 +11281,7 @@ var testOAuthProviderAuthorizeContract = c13.router({
|
|
|
11352
11281
|
|
|
11353
11282
|
// ../../packages/api-contracts/src/contracts/test-oauth-provider-echo.ts
|
|
11354
11283
|
init_esm_shims();
|
|
11355
|
-
var
|
|
11284
|
+
var c17 = initContract();
|
|
11356
11285
|
var testOAuthProviderEchoErrorSchema = external_exports.object({
|
|
11357
11286
|
error: external_exports.string()
|
|
11358
11287
|
});
|
|
@@ -11360,7 +11289,7 @@ var testOAuthProviderEchoResponseSchema = external_exports.object({
|
|
|
11360
11289
|
authorization: external_exports.string(),
|
|
11361
11290
|
receivedAt: external_exports.string()
|
|
11362
11291
|
});
|
|
11363
|
-
var testOAuthProviderEchoContract =
|
|
11292
|
+
var testOAuthProviderEchoContract = c17.router({
|
|
11364
11293
|
echo: {
|
|
11365
11294
|
method: "GET",
|
|
11366
11295
|
path: "/api/test/oauth-provider/echo",
|
|
@@ -11375,7 +11304,7 @@ var testOAuthProviderEchoContract = c14.router({
|
|
|
11375
11304
|
|
|
11376
11305
|
// ../../packages/api-contracts/src/contracts/test-oauth-provider-token.ts
|
|
11377
11306
|
init_esm_shims();
|
|
11378
|
-
var
|
|
11307
|
+
var c18 = initContract();
|
|
11379
11308
|
var testOAuthProviderTokenErrorSchema = external_exports.object({
|
|
11380
11309
|
error: external_exports.string(),
|
|
11381
11310
|
error_description: external_exports.string().optional()
|
|
@@ -11387,11 +11316,11 @@ var testOAuthProviderTokenResponseSchema = external_exports.object({
|
|
|
11387
11316
|
expires_in: external_exports.number(),
|
|
11388
11317
|
scope: external_exports.string()
|
|
11389
11318
|
});
|
|
11390
|
-
var testOAuthProviderTokenContract =
|
|
11319
|
+
var testOAuthProviderTokenContract = c18.router({
|
|
11391
11320
|
token: {
|
|
11392
11321
|
method: "POST",
|
|
11393
11322
|
path: "/api/test/oauth-provider/token",
|
|
11394
|
-
body:
|
|
11323
|
+
body: c18.type(),
|
|
11395
11324
|
responses: {
|
|
11396
11325
|
200: testOAuthProviderTokenResponseSchema,
|
|
11397
11326
|
400: testOAuthProviderTokenErrorSchema,
|
|
@@ -11404,7 +11333,7 @@ var testOAuthProviderTokenContract = c15.router({
|
|
|
11404
11333
|
|
|
11405
11334
|
// ../../packages/api-contracts/src/contracts/test-oauth-provider-device-auth.ts
|
|
11406
11335
|
init_esm_shims();
|
|
11407
|
-
var
|
|
11336
|
+
var c19 = initContract();
|
|
11408
11337
|
var testOAuthProviderDeviceAuthErrorSchema = external_exports.object({
|
|
11409
11338
|
error: external_exports.string(),
|
|
11410
11339
|
error_description: external_exports.string().optional()
|
|
@@ -11417,11 +11346,11 @@ var testOAuthProviderDeviceAuthResponseSchema = external_exports.object({
|
|
|
11417
11346
|
expires_in: external_exports.number(),
|
|
11418
11347
|
interval: external_exports.number()
|
|
11419
11348
|
});
|
|
11420
|
-
var testOAuthProviderDeviceAuthContract =
|
|
11349
|
+
var testOAuthProviderDeviceAuthContract = c19.router({
|
|
11421
11350
|
deviceAuth: {
|
|
11422
11351
|
method: "POST",
|
|
11423
11352
|
path: "/api/test/oauth-provider/device/code",
|
|
11424
|
-
body:
|
|
11353
|
+
body: c19.type(),
|
|
11425
11354
|
responses: {
|
|
11426
11355
|
200: testOAuthProviderDeviceAuthResponseSchema,
|
|
11427
11356
|
400: testOAuthProviderDeviceAuthErrorSchema,
|
|
@@ -11434,7 +11363,7 @@ var testOAuthProviderDeviceAuthContract = c16.router({
|
|
|
11434
11363
|
|
|
11435
11364
|
// ../../packages/api-contracts/src/contracts/test-oauth-provider-userinfo.ts
|
|
11436
11365
|
init_esm_shims();
|
|
11437
|
-
var
|
|
11366
|
+
var c20 = initContract();
|
|
11438
11367
|
var testOAuthProviderUserinfoErrorSchema = external_exports.object({
|
|
11439
11368
|
error: external_exports.string()
|
|
11440
11369
|
});
|
|
@@ -11443,7 +11372,7 @@ var testOAuthProviderUserinfoResponseSchema = external_exports.object({
|
|
|
11443
11372
|
id: external_exports.string(),
|
|
11444
11373
|
username: external_exports.string()
|
|
11445
11374
|
});
|
|
11446
|
-
var testOAuthProviderUserinfoContract =
|
|
11375
|
+
var testOAuthProviderUserinfoContract = c20.router({
|
|
11447
11376
|
userinfo: {
|
|
11448
11377
|
method: "GET",
|
|
11449
11378
|
path: "/api/test/oauth-provider/userinfo",
|
|
@@ -11458,7 +11387,7 @@ var testOAuthProviderUserinfoContract = c17.router({
|
|
|
11458
11387
|
|
|
11459
11388
|
// ../../packages/api-contracts/src/contracts/test-computer-use-state.ts
|
|
11460
11389
|
init_esm_shims();
|
|
11461
|
-
var
|
|
11390
|
+
var c21 = initContract();
|
|
11462
11391
|
var testComputerUseStateErrorSchema = external_exports.object({
|
|
11463
11392
|
error: external_exports.string()
|
|
11464
11393
|
});
|
|
@@ -11491,7 +11420,7 @@ var testComputerUseStateGetResponseSchema = external_exports.object({
|
|
|
11491
11420
|
var testComputerUseStateDeleteResponseSchema = external_exports.object({
|
|
11492
11421
|
ok: external_exports.literal(true)
|
|
11493
11422
|
});
|
|
11494
|
-
var testComputerUseStateContract =
|
|
11423
|
+
var testComputerUseStateContract = c21.router({
|
|
11495
11424
|
post: {
|
|
11496
11425
|
method: "POST",
|
|
11497
11426
|
path: "/api/test/computer-use-state",
|
|
@@ -11533,7 +11462,7 @@ var testComputerUseStateContract = c18.router({
|
|
|
11533
11462
|
|
|
11534
11463
|
// ../../packages/api-contracts/src/contracts/test-runtime-state.ts
|
|
11535
11464
|
init_esm_shims();
|
|
11536
|
-
var
|
|
11465
|
+
var c22 = initContract();
|
|
11537
11466
|
var testRuntimeStateErrorSchema = external_exports.object({
|
|
11538
11467
|
error: external_exports.string()
|
|
11539
11468
|
});
|
|
@@ -11590,7 +11519,7 @@ var testRuntimeStateActionResponseSchema = external_exports.object({
|
|
|
11590
11519
|
admission_lock_waiting: external_exports.boolean().optional(),
|
|
11591
11520
|
uploaded_file_sources: external_exports.array(external_exports.string()).optional()
|
|
11592
11521
|
});
|
|
11593
|
-
var testRuntimeStateContract =
|
|
11522
|
+
var testRuntimeStateContract = c22.router({
|
|
11594
11523
|
action: {
|
|
11595
11524
|
method: "POST",
|
|
11596
11525
|
path: "/api/test/runtime-state/action",
|
|
@@ -11606,7 +11535,7 @@ var testRuntimeStateContract = c19.router({
|
|
|
11606
11535
|
|
|
11607
11536
|
// ../../packages/api-contracts/src/contracts/test-zero-agent-state.ts
|
|
11608
11537
|
init_esm_shims();
|
|
11609
|
-
var
|
|
11538
|
+
var c23 = initContract();
|
|
11610
11539
|
var testZeroAgentStateErrorSchema = external_exports.object({
|
|
11611
11540
|
error: external_exports.string()
|
|
11612
11541
|
});
|
|
@@ -11628,7 +11557,7 @@ var testZeroAgentStateActionBodySchema = external_exports.discriminatedUnion(
|
|
|
11628
11557
|
var testZeroAgentStateActionResponseSchema = external_exports.object({
|
|
11629
11558
|
ok: external_exports.literal(true)
|
|
11630
11559
|
});
|
|
11631
|
-
var testZeroAgentStateContract =
|
|
11560
|
+
var testZeroAgentStateContract = c23.router({
|
|
11632
11561
|
action: {
|
|
11633
11562
|
method: "POST",
|
|
11634
11563
|
path: "/api/test/zero-agent-state/action",
|
|
@@ -11644,7 +11573,7 @@ var testZeroAgentStateContract = c20.router({
|
|
|
11644
11573
|
|
|
11645
11574
|
// ../../packages/api-contracts/src/contracts/test-model-provider-state.ts
|
|
11646
11575
|
init_esm_shims();
|
|
11647
|
-
var
|
|
11576
|
+
var c24 = initContract();
|
|
11648
11577
|
var testModelProviderStateErrorSchema = external_exports.object({
|
|
11649
11578
|
error: external_exports.string()
|
|
11650
11579
|
});
|
|
@@ -11662,7 +11591,7 @@ var testModelProviderStateActionBodySchema = external_exports.discriminatedUnion
|
|
|
11662
11591
|
var testModelProviderStateActionResponseSchema = external_exports.object({
|
|
11663
11592
|
ok: external_exports.literal(true)
|
|
11664
11593
|
});
|
|
11665
|
-
var testModelProviderStateContract =
|
|
11594
|
+
var testModelProviderStateContract = c24.router({
|
|
11666
11595
|
action: {
|
|
11667
11596
|
method: "POST",
|
|
11668
11597
|
path: "/api/test/model-provider-state/action",
|
|
@@ -11678,8 +11607,8 @@ var testModelProviderStateContract = c21.router({
|
|
|
11678
11607
|
|
|
11679
11608
|
// ../../packages/api-contracts/src/contracts/test-mail-draft-state.ts
|
|
11680
11609
|
init_esm_shims();
|
|
11681
|
-
var
|
|
11682
|
-
var testMailDraftStateContract =
|
|
11610
|
+
var c25 = initContract();
|
|
11611
|
+
var testMailDraftStateContract = c25.router({
|
|
11683
11612
|
get: {
|
|
11684
11613
|
method: "GET",
|
|
11685
11614
|
path: "/api/test/mail-draft-state/:mailDraftId",
|
|
@@ -11694,7 +11623,7 @@ var testMailDraftStateContract = c22.router({
|
|
|
11694
11623
|
|
|
11695
11624
|
// ../../packages/api-contracts/src/contracts/test-usage-insight-state.ts
|
|
11696
11625
|
init_esm_shims();
|
|
11697
|
-
var
|
|
11626
|
+
var c26 = initContract();
|
|
11698
11627
|
var nullableDateStringSchema = external_exports.string().nullable();
|
|
11699
11628
|
var optionalDateStringSchema = external_exports.string().optional();
|
|
11700
11629
|
var testUsageInsightStateErrorSchema = external_exports.object({
|
|
@@ -11792,7 +11721,7 @@ var testUsageInsightStateActionResponseSchema = external_exports.object({
|
|
|
11792
11721
|
chat_thread_id: external_exports.string().optional(),
|
|
11793
11722
|
usage_event_id: external_exports.string().optional()
|
|
11794
11723
|
});
|
|
11795
|
-
var testUsageInsightStateContract =
|
|
11724
|
+
var testUsageInsightStateContract = c26.router({
|
|
11796
11725
|
action: {
|
|
11797
11726
|
method: "POST",
|
|
11798
11727
|
path: "/api/test/usage-insight-state/action",
|
|
@@ -11808,7 +11737,7 @@ var testUsageInsightStateContract = c23.router({
|
|
|
11808
11737
|
|
|
11809
11738
|
// ../../packages/api-contracts/src/contracts/test-cron-cleanup-sandboxes-state.ts
|
|
11810
11739
|
init_esm_shims();
|
|
11811
|
-
var
|
|
11740
|
+
var c27 = initContract();
|
|
11812
11741
|
var testCronCleanupSandboxesStateActionBodySchema = external_exports.object({
|
|
11813
11742
|
action: external_exports.enum([
|
|
11814
11743
|
"seed-run",
|
|
@@ -11833,7 +11762,7 @@ var testCronCleanupSandboxesStateActionResponseSchema = external_exports.object(
|
|
|
11833
11762
|
var testCronCleanupSandboxesStateErrorSchema = external_exports.object({
|
|
11834
11763
|
error: external_exports.string()
|
|
11835
11764
|
});
|
|
11836
|
-
var testCronCleanupSandboxesStateContract =
|
|
11765
|
+
var testCronCleanupSandboxesStateContract = c27.router({
|
|
11837
11766
|
action: {
|
|
11838
11767
|
method: "POST",
|
|
11839
11768
|
path: "/api/test/cron-cleanup-sandboxes-state/action",
|
|
@@ -11849,7 +11778,7 @@ var testCronCleanupSandboxesStateContract = c24.router({
|
|
|
11849
11778
|
|
|
11850
11779
|
// ../../packages/api-contracts/src/contracts/test-slack-dispatch-probe.ts
|
|
11851
11780
|
init_esm_shims();
|
|
11852
|
-
var
|
|
11781
|
+
var c28 = initContract();
|
|
11853
11782
|
var testSlackDispatchProbeBodySchema = external_exports.object({
|
|
11854
11783
|
team_id: external_exports.string(),
|
|
11855
11784
|
channel_id: external_exports.string(),
|
|
@@ -11877,7 +11806,7 @@ var testSlackDispatchProbeResponseSchema = external_exports.union([
|
|
|
11877
11806
|
testSlackDispatchProbeSuccessResponseSchema,
|
|
11878
11807
|
testSlackDispatchProbeFailureResponseSchema
|
|
11879
11808
|
]);
|
|
11880
|
-
var testSlackDispatchProbeContract =
|
|
11809
|
+
var testSlackDispatchProbeContract = c28.router({
|
|
11881
11810
|
post: {
|
|
11882
11811
|
method: "POST",
|
|
11883
11812
|
path: "/api/test/slack-dispatch-probe",
|
|
@@ -11893,7 +11822,7 @@ var testSlackDispatchProbeContract = c25.router({
|
|
|
11893
11822
|
|
|
11894
11823
|
// ../../packages/api-contracts/src/contracts/test-slack-state.ts
|
|
11895
11824
|
init_esm_shims();
|
|
11896
|
-
var
|
|
11825
|
+
var c29 = initContract();
|
|
11897
11826
|
var testSlackStateErrorSchema = external_exports.object({
|
|
11898
11827
|
error: external_exports.string()
|
|
11899
11828
|
});
|
|
@@ -11986,13 +11915,6 @@ var testSlackStateResponseSchema = external_exports.object({
|
|
|
11986
11915
|
promptPreview: external_exports.string().nullable()
|
|
11987
11916
|
})
|
|
11988
11917
|
),
|
|
11989
|
-
artifact_storage: external_exports.object({
|
|
11990
|
-
id: external_exports.string(),
|
|
11991
|
-
headVersionId: external_exports.string().nullable(),
|
|
11992
|
-
s3Prefix: external_exports.string(),
|
|
11993
|
-
versionId: external_exports.string().nullable(),
|
|
11994
|
-
versionS3Key: external_exports.string().nullable()
|
|
11995
|
-
}).nullable(),
|
|
11996
11918
|
org_metadata: external_exports.object({
|
|
11997
11919
|
orgId: external_exports.string(),
|
|
11998
11920
|
defaultAgentId: external_exports.string().nullable(),
|
|
@@ -12024,15 +11946,14 @@ var testSlackStateResponseSchema = external_exports.object({
|
|
|
12024
11946
|
})
|
|
12025
11947
|
)
|
|
12026
11948
|
});
|
|
12027
|
-
var testSlackStateContract =
|
|
11949
|
+
var testSlackStateContract = c29.router({
|
|
12028
11950
|
get: {
|
|
12029
11951
|
method: "GET",
|
|
12030
11952
|
path: "/api/test/slack-state",
|
|
12031
11953
|
query: external_exports.object({
|
|
12032
11954
|
team_id: external_exports.string().optional(),
|
|
12033
11955
|
empty_team_id: external_exports.literal("1").optional(),
|
|
12034
|
-
org_id: external_exports.string().optional()
|
|
12035
|
-
user_id: external_exports.string().optional()
|
|
11956
|
+
org_id: external_exports.string().optional()
|
|
12036
11957
|
}),
|
|
12037
11958
|
responses: {
|
|
12038
11959
|
200: testSlackStateResponseSchema,
|
|
@@ -12070,7 +11991,7 @@ var testSlackStateContract = c26.router({
|
|
|
12070
11991
|
|
|
12071
11992
|
// ../../packages/api-contracts/src/contracts/test-slack-mock.ts
|
|
12072
11993
|
init_esm_shims();
|
|
12073
|
-
var
|
|
11994
|
+
var c30 = initContract();
|
|
12074
11995
|
var slackMockRequestBodySchema = external_exports.record(external_exports.string(), external_exports.unknown()).optional();
|
|
12075
11996
|
var slackMockNotFoundSchema = external_exports.string();
|
|
12076
11997
|
var testSlackMockOkResponseSchema = external_exports.object({
|
|
@@ -12136,7 +12057,7 @@ var testSlackMockUsersInfoResponseSchema = testSlackMockOkResponseSchema.extend(
|
|
|
12136
12057
|
})
|
|
12137
12058
|
})
|
|
12138
12059
|
});
|
|
12139
|
-
var testSlackMockContract =
|
|
12060
|
+
var testSlackMockContract = c30.router({
|
|
12140
12061
|
assistantThreadsSetStatus: {
|
|
12141
12062
|
method: "POST",
|
|
12142
12063
|
path: "/api/test/slack-mock/assistant.threads.setStatus",
|
|
@@ -12241,7 +12162,7 @@ var testSlackMockContract = c27.router({
|
|
|
12241
12162
|
|
|
12242
12163
|
// ../../packages/api-contracts/src/contracts/test-telegram-mock.ts
|
|
12243
12164
|
init_esm_shims();
|
|
12244
|
-
var
|
|
12165
|
+
var c31 = initContract();
|
|
12245
12166
|
var testTelegramMockPathParamsSchema = external_exports.object({
|
|
12246
12167
|
botToken: external_exports.string(),
|
|
12247
12168
|
method: external_exports.string()
|
|
@@ -12254,7 +12175,7 @@ var testTelegramMockErrorResponseSchema = external_exports.object({
|
|
|
12254
12175
|
ok: external_exports.literal(false),
|
|
12255
12176
|
description: external_exports.string()
|
|
12256
12177
|
});
|
|
12257
|
-
var testTelegramMockContract =
|
|
12178
|
+
var testTelegramMockContract = c31.router({
|
|
12258
12179
|
post: {
|
|
12259
12180
|
method: "POST",
|
|
12260
12181
|
path: "/api/test/telegram-mock/:botToken/:method",
|
|
@@ -12270,7 +12191,7 @@ var testTelegramMockContract = c28.router({
|
|
|
12270
12191
|
|
|
12271
12192
|
// ../../packages/api-contracts/src/contracts/test-teams-mock.ts
|
|
12272
12193
|
init_esm_shims();
|
|
12273
|
-
var
|
|
12194
|
+
var c32 = initContract();
|
|
12274
12195
|
var teamsMockBodySchema = external_exports.record(external_exports.string(), external_exports.unknown()).optional();
|
|
12275
12196
|
var teamsMockOkSchema = external_exports.object({ ok: external_exports.literal(true) });
|
|
12276
12197
|
var teamsMockTokenResponseSchema = external_exports.object({
|
|
@@ -12306,7 +12227,7 @@ var testTeamsMockGraphMessagePathParamsSchema = testTeamsMockGraphMessagesPathPa
|
|
|
12306
12227
|
var testTeamsMockGraphUserPathParamsSchema = external_exports.object({
|
|
12307
12228
|
userId: external_exports.string()
|
|
12308
12229
|
});
|
|
12309
|
-
var testTeamsMockContract =
|
|
12230
|
+
var testTeamsMockContract = c32.router({
|
|
12310
12231
|
token: {
|
|
12311
12232
|
method: "POST",
|
|
12312
12233
|
path: "/api/test/teams-mock/token",
|
|
@@ -12415,7 +12336,7 @@ var testTeamsMockContract = c29.router({
|
|
|
12415
12336
|
|
|
12416
12337
|
// ../../packages/api-contracts/src/contracts/test-teams-state.ts
|
|
12417
12338
|
init_esm_shims();
|
|
12418
|
-
var
|
|
12339
|
+
var c33 = initContract();
|
|
12419
12340
|
var testTeamsStateErrorSchema = external_exports.object({
|
|
12420
12341
|
error: external_exports.string()
|
|
12421
12342
|
});
|
|
@@ -12536,7 +12457,7 @@ var testTeamsStateResponseSchema = external_exports.object({
|
|
|
12536
12457
|
})
|
|
12537
12458
|
)
|
|
12538
12459
|
});
|
|
12539
|
-
var testTeamsStateContract =
|
|
12460
|
+
var testTeamsStateContract = c33.router({
|
|
12540
12461
|
get: {
|
|
12541
12462
|
method: "GET",
|
|
12542
12463
|
path: "/api/test/teams-state",
|
|
@@ -12580,7 +12501,7 @@ var testTeamsStateContract = c30.router({
|
|
|
12580
12501
|
|
|
12581
12502
|
// ../../packages/api-contracts/src/contracts/test-telegram-state.ts
|
|
12582
12503
|
init_esm_shims();
|
|
12583
|
-
var
|
|
12504
|
+
var c34 = initContract();
|
|
12584
12505
|
var testTelegramStateQuerySchema = external_exports.object({
|
|
12585
12506
|
bot_id: external_exports.string().optional()
|
|
12586
12507
|
});
|
|
@@ -12656,7 +12577,7 @@ var testTelegramStateSeedResponseSchema = external_exports.object({
|
|
|
12656
12577
|
user_link_id: external_exports.string().nullable(),
|
|
12657
12578
|
default_agent_id: external_exports.string()
|
|
12658
12579
|
});
|
|
12659
|
-
var testTelegramStateContract =
|
|
12580
|
+
var testTelegramStateContract = c34.router({
|
|
12660
12581
|
get: {
|
|
12661
12582
|
method: "GET",
|
|
12662
12583
|
path: "/api/test/telegram-state",
|
|
@@ -12705,7 +12626,7 @@ var testTelegramStateContract = c31.router({
|
|
|
12705
12626
|
|
|
12706
12627
|
// ../../packages/api-contracts/src/contracts/cron.ts
|
|
12707
12628
|
init_esm_shims();
|
|
12708
|
-
var
|
|
12629
|
+
var c35 = initContract();
|
|
12709
12630
|
var cleanupResultSchema = external_exports.object({
|
|
12710
12631
|
runId: external_exports.string(),
|
|
12711
12632
|
sandboxId: external_exports.string().nullable(),
|
|
@@ -12720,7 +12641,7 @@ var cleanupResponseSchema = external_exports.object({
|
|
|
12720
12641
|
exportJobsCleaned: external_exports.number(),
|
|
12721
12642
|
exportJobsStuck: external_exports.number()
|
|
12722
12643
|
});
|
|
12723
|
-
var cronCleanupSandboxesContract =
|
|
12644
|
+
var cronCleanupSandboxesContract = c35.router({
|
|
12724
12645
|
/**
|
|
12725
12646
|
* GET /api/cron/cleanup-sandboxes
|
|
12726
12647
|
* Cron job to cleanup sandboxes that have stopped sending heartbeats
|
|
@@ -12846,6 +12767,11 @@ var cronExecuteWorkflowAutomationsResponseSchema = external_exports.object({
|
|
|
12846
12767
|
executed: external_exports.number(),
|
|
12847
12768
|
skipped: external_exports.number()
|
|
12848
12769
|
});
|
|
12770
|
+
var cronExecuteMorningBriefsResponseSchema = external_exports.object({
|
|
12771
|
+
success: external_exports.literal(true),
|
|
12772
|
+
executed: external_exports.number(),
|
|
12773
|
+
skipped: external_exports.number()
|
|
12774
|
+
});
|
|
12849
12775
|
var cronRenewGmailWatchesResponseSchema = external_exports.object({
|
|
12850
12776
|
success: external_exports.literal(true),
|
|
12851
12777
|
renewed: external_exports.number(),
|
|
@@ -12902,7 +12828,7 @@ var cronAggregateModelStatsResponseSchema = external_exports.object({
|
|
|
12902
12828
|
windowEnd: external_exports.string(),
|
|
12903
12829
|
aggregated: external_exports.number()
|
|
12904
12830
|
});
|
|
12905
|
-
var cronAggregateUsageContract =
|
|
12831
|
+
var cronAggregateUsageContract = c35.router({
|
|
12906
12832
|
aggregate: {
|
|
12907
12833
|
method: "GET",
|
|
12908
12834
|
path: "/api/cron/aggregate-usage",
|
|
@@ -12914,7 +12840,7 @@ var cronAggregateUsageContract = c32.router({
|
|
|
12914
12840
|
summary: "Aggregate daily usage cache"
|
|
12915
12841
|
}
|
|
12916
12842
|
});
|
|
12917
|
-
var cronProcessUsageEventsContract =
|
|
12843
|
+
var cronProcessUsageEventsContract = c35.router({
|
|
12918
12844
|
process: {
|
|
12919
12845
|
method: "GET",
|
|
12920
12846
|
path: "/api/cron/process-usage-events",
|
|
@@ -12926,7 +12852,7 @@ var cronProcessUsageEventsContract = c32.router({
|
|
|
12926
12852
|
summary: "Process pending usage events"
|
|
12927
12853
|
}
|
|
12928
12854
|
});
|
|
12929
|
-
var cronCompactChatThreadSnapshotsContract =
|
|
12855
|
+
var cronCompactChatThreadSnapshotsContract = c35.router({
|
|
12930
12856
|
compact: {
|
|
12931
12857
|
method: "GET",
|
|
12932
12858
|
path: "/api/cron/compact-chat-thread-snapshots",
|
|
@@ -12938,7 +12864,7 @@ var cronCompactChatThreadSnapshotsContract = c32.router({
|
|
|
12938
12864
|
summary: "Compact chat thread snapshots from lifecycle events"
|
|
12939
12865
|
}
|
|
12940
12866
|
});
|
|
12941
|
-
var cronMonitorChatMessageQueueContract =
|
|
12867
|
+
var cronMonitorChatMessageQueueContract = c35.router({
|
|
12942
12868
|
monitor: {
|
|
12943
12869
|
method: "GET",
|
|
12944
12870
|
path: "/api/cron/monitor-chat-message-queue",
|
|
@@ -12951,7 +12877,7 @@ var cronMonitorChatMessageQueueContract = c32.router({
|
|
|
12951
12877
|
summary: "Monitor for orphaned queued chat messages"
|
|
12952
12878
|
}
|
|
12953
12879
|
});
|
|
12954
|
-
var cronReconcileBillingEntitlementsContract =
|
|
12880
|
+
var cronReconcileBillingEntitlementsContract = c35.router({
|
|
12955
12881
|
reconcile: {
|
|
12956
12882
|
method: "GET",
|
|
12957
12883
|
path: "/api/cron/reconcile-billing-entitlements",
|
|
@@ -12963,7 +12889,7 @@ var cronReconcileBillingEntitlementsContract = c32.router({
|
|
|
12963
12889
|
summary: "Reconcile billing entitlements"
|
|
12964
12890
|
}
|
|
12965
12891
|
});
|
|
12966
|
-
var cronTelegramCleanupContract =
|
|
12892
|
+
var cronTelegramCleanupContract = c35.router({
|
|
12967
12893
|
cleanup: {
|
|
12968
12894
|
method: "GET",
|
|
12969
12895
|
path: "/api/cron/telegram-cleanup",
|
|
@@ -12975,7 +12901,7 @@ var cronTelegramCleanupContract = c32.router({
|
|
|
12975
12901
|
summary: "Delete expired Telegram messages"
|
|
12976
12902
|
}
|
|
12977
12903
|
});
|
|
12978
|
-
var cronComputerUseScreenshotCleanupContract =
|
|
12904
|
+
var cronComputerUseScreenshotCleanupContract = c35.router({
|
|
12979
12905
|
cleanup: {
|
|
12980
12906
|
method: "GET",
|
|
12981
12907
|
path: "/api/cron/computer-use-screenshot-cleanup",
|
|
@@ -12987,7 +12913,7 @@ var cronComputerUseScreenshotCleanupContract = c32.router({
|
|
|
12987
12913
|
summary: "Delete expired desktop computer-use screenshots"
|
|
12988
12914
|
}
|
|
12989
12915
|
});
|
|
12990
|
-
var cronArtifactPreviewContract =
|
|
12916
|
+
var cronArtifactPreviewContract = c35.router({
|
|
12991
12917
|
generate: {
|
|
12992
12918
|
method: "GET",
|
|
12993
12919
|
path: "/api/cron/artifact-preview",
|
|
@@ -12999,7 +12925,7 @@ var cronArtifactPreviewContract = c32.router({
|
|
|
12999
12925
|
summary: "Render static preview images for HTML/website artifacts"
|
|
13000
12926
|
}
|
|
13001
12927
|
});
|
|
13002
|
-
var cronDrainEmailOutboxContract =
|
|
12928
|
+
var cronDrainEmailOutboxContract = c35.router({
|
|
13003
12929
|
drain: {
|
|
13004
12930
|
method: "GET",
|
|
13005
12931
|
path: "/api/cron/drain-email-outbox",
|
|
@@ -13011,7 +12937,7 @@ var cronDrainEmailOutboxContract = c32.router({
|
|
|
13011
12937
|
summary: "Drain pending email outbox messages"
|
|
13012
12938
|
}
|
|
13013
12939
|
});
|
|
13014
|
-
var cronRenewGmailWatchesContract =
|
|
12940
|
+
var cronRenewGmailWatchesContract = c35.router({
|
|
13015
12941
|
renew: {
|
|
13016
12942
|
method: "GET",
|
|
13017
12943
|
path: "/api/cron/renew-gmail-watches",
|
|
@@ -13023,7 +12949,7 @@ var cronRenewGmailWatchesContract = c32.router({
|
|
|
13023
12949
|
summary: "Renew Gmail push notification watches"
|
|
13024
12950
|
}
|
|
13025
12951
|
});
|
|
13026
|
-
var cronRenewGoogleCalendarWatchesContract =
|
|
12952
|
+
var cronRenewGoogleCalendarWatchesContract = c35.router({
|
|
13027
12953
|
renew: {
|
|
13028
12954
|
method: "GET",
|
|
13029
12955
|
path: "/api/cron/renew-google-calendar-watches",
|
|
@@ -13035,7 +12961,7 @@ var cronRenewGoogleCalendarWatchesContract = c32.router({
|
|
|
13035
12961
|
summary: "Renew Google Calendar push notification watches"
|
|
13036
12962
|
}
|
|
13037
12963
|
});
|
|
13038
|
-
var cronRenewGoogleWorkspaceEventSubscriptionsContract =
|
|
12964
|
+
var cronRenewGoogleWorkspaceEventSubscriptionsContract = c35.router({
|
|
13039
12965
|
renew: {
|
|
13040
12966
|
method: "GET",
|
|
13041
12967
|
path: "/api/cron/renew-google-workspace-event-subscriptions",
|
|
@@ -13047,7 +12973,7 @@ var cronRenewGoogleWorkspaceEventSubscriptionsContract = c32.router({
|
|
|
13047
12973
|
summary: "Renew Google Workspace Events subscriptions"
|
|
13048
12974
|
}
|
|
13049
12975
|
});
|
|
13050
|
-
var cronSyncSkillsContract =
|
|
12976
|
+
var cronSyncSkillsContract = c35.router({
|
|
13051
12977
|
sync: {
|
|
13052
12978
|
method: "GET",
|
|
13053
12979
|
path: "/api/cron/sync-skills",
|
|
@@ -13059,7 +12985,7 @@ var cronSyncSkillsContract = c32.router({
|
|
|
13059
12985
|
summary: "Sync official skills from the skills repository"
|
|
13060
12986
|
}
|
|
13061
12987
|
});
|
|
13062
|
-
var cronConnectorCatalogContract =
|
|
12988
|
+
var cronConnectorCatalogContract = c35.router({
|
|
13063
12989
|
sync: {
|
|
13064
12990
|
method: "GET",
|
|
13065
12991
|
path: "/api/cron/sync-connector-catalog",
|
|
@@ -13081,7 +13007,7 @@ var cronConnectorCatalogContract = c32.router({
|
|
|
13081
13007
|
summary: "Read connector catalog sync status"
|
|
13082
13008
|
}
|
|
13083
13009
|
});
|
|
13084
|
-
var cronExecuteWorkflowAutomationsContract =
|
|
13010
|
+
var cronExecuteWorkflowAutomationsContract = c35.router({
|
|
13085
13011
|
execute: {
|
|
13086
13012
|
method: "GET",
|
|
13087
13013
|
path: "/api/cron/execute-workflow-automations",
|
|
@@ -13093,7 +13019,19 @@ var cronExecuteWorkflowAutomationsContract = c32.router({
|
|
|
13093
13019
|
summary: "Execute due workflow automations"
|
|
13094
13020
|
}
|
|
13095
13021
|
});
|
|
13096
|
-
var
|
|
13022
|
+
var cronExecuteMorningBriefsContract = c35.router({
|
|
13023
|
+
execute: {
|
|
13024
|
+
method: "GET",
|
|
13025
|
+
path: "/api/cron/execute-morning-briefs",
|
|
13026
|
+
headers: authHeadersSchema,
|
|
13027
|
+
responses: {
|
|
13028
|
+
200: cronExecuteMorningBriefsResponseSchema,
|
|
13029
|
+
401: apiErrorSchema
|
|
13030
|
+
},
|
|
13031
|
+
summary: "Execute due morning briefs"
|
|
13032
|
+
}
|
|
13033
|
+
});
|
|
13034
|
+
var cronAggregateInsightsContract = c35.router({
|
|
13097
13035
|
aggregate: {
|
|
13098
13036
|
method: "GET",
|
|
13099
13037
|
path: "/api/cron/aggregate-insights",
|
|
@@ -13105,7 +13043,7 @@ var cronAggregateInsightsContract = c32.router({
|
|
|
13105
13043
|
summary: "Aggregate daily usage insights"
|
|
13106
13044
|
}
|
|
13107
13045
|
});
|
|
13108
|
-
var cronAggregateModelStatsContract =
|
|
13046
|
+
var cronAggregateModelStatsContract = c35.router({
|
|
13109
13047
|
aggregate: {
|
|
13110
13048
|
method: "GET",
|
|
13111
13049
|
path: "/api/cron/aggregate-model-stats",
|
|
@@ -13120,7 +13058,7 @@ var cronAggregateModelStatsContract = c32.router({
|
|
|
13120
13058
|
summary: "Aggregate hourly model usage statistics"
|
|
13121
13059
|
}
|
|
13122
13060
|
});
|
|
13123
|
-
var cronSummarizeMemoryContract =
|
|
13061
|
+
var cronSummarizeMemoryContract = c35.router({
|
|
13124
13062
|
summarize: {
|
|
13125
13063
|
method: "GET",
|
|
13126
13064
|
path: "/api/cron/summarize-memory",
|
|
@@ -13132,7 +13070,7 @@ var cronSummarizeMemoryContract = c32.router({
|
|
|
13132
13070
|
summary: "Summarize daily memory changes per user"
|
|
13133
13071
|
}
|
|
13134
13072
|
});
|
|
13135
|
-
var cronRefreshStoragePresignedUrlsContract =
|
|
13073
|
+
var cronRefreshStoragePresignedUrlsContract = c35.router({
|
|
13136
13074
|
refresh: {
|
|
13137
13075
|
method: "GET",
|
|
13138
13076
|
path: "/api/cron/refresh-storage-presigned-urls",
|
|
@@ -13145,199 +13083,83 @@ var cronRefreshStoragePresignedUrlsContract = c32.router({
|
|
|
13145
13083
|
}
|
|
13146
13084
|
});
|
|
13147
13085
|
|
|
13148
|
-
// ../../packages/api-contracts/src/contracts/
|
|
13086
|
+
// ../../packages/api-contracts/src/contracts/sessions.ts
|
|
13149
13087
|
init_esm_shims();
|
|
13150
|
-
var
|
|
13151
|
-
var
|
|
13088
|
+
var c36 = initContract();
|
|
13089
|
+
var sessionResponseSchema = external_exports.object({
|
|
13152
13090
|
id: external_exports.string(),
|
|
13153
|
-
|
|
13091
|
+
agentComposeId: external_exports.string(),
|
|
13092
|
+
conversationId: external_exports.string().nullable(),
|
|
13093
|
+
artifactNames: external_exports.array(external_exports.string()),
|
|
13094
|
+
secretNames: external_exports.array(external_exports.string()).nullable(),
|
|
13154
13095
|
createdAt: external_exports.string(),
|
|
13155
13096
|
updatedAt: external_exports.string()
|
|
13156
13097
|
});
|
|
13157
|
-
var
|
|
13098
|
+
var agentComposeSnapshotSchema = external_exports.object({
|
|
13099
|
+
agentComposeVersionId: external_exports.string(),
|
|
13100
|
+
vars: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
13101
|
+
secretNames: external_exports.array(external_exports.string()).optional()
|
|
13102
|
+
});
|
|
13103
|
+
var volumeVersionsSnapshotSchema = external_exports.object({
|
|
13104
|
+
versions: external_exports.record(external_exports.string(), external_exports.string())
|
|
13105
|
+
});
|
|
13106
|
+
var checkpointResponseSchema = external_exports.object({
|
|
13158
13107
|
id: external_exports.string(),
|
|
13159
|
-
|
|
13160
|
-
|
|
13161
|
-
|
|
13108
|
+
runId: external_exports.string(),
|
|
13109
|
+
conversationId: external_exports.string(),
|
|
13110
|
+
agentComposeSnapshot: agentComposeSnapshotSchema,
|
|
13111
|
+
// Checkpoints persist context-artifact arrays, while the GET handler
|
|
13112
|
+
// projects them to this stable name-to-version response map.
|
|
13113
|
+
artifactSnapshots: external_exports.record(external_exports.string(), external_exports.string()).nullable(),
|
|
13114
|
+
volumeVersionsSnapshot: volumeVersionsSnapshotSchema.nullable(),
|
|
13162
13115
|
createdAt: external_exports.string()
|
|
13163
13116
|
});
|
|
13164
|
-
var
|
|
13165
|
-
|
|
13117
|
+
var sessionsByIdContract = c36.router({
|
|
13118
|
+
/**
|
|
13119
|
+
* GET /api/agent/sessions/:id
|
|
13120
|
+
* Get session by ID
|
|
13121
|
+
*/
|
|
13122
|
+
getById: {
|
|
13166
13123
|
method: "GET",
|
|
13167
|
-
path: "/api/
|
|
13124
|
+
path: "/api/agent/sessions/:id",
|
|
13168
13125
|
headers: authHeadersSchema,
|
|
13169
|
-
pathParams: external_exports.object({
|
|
13126
|
+
pathParams: external_exports.object({
|
|
13127
|
+
id: external_exports.string().min(1, "Session ID is required")
|
|
13128
|
+
}),
|
|
13170
13129
|
responses: {
|
|
13171
|
-
200:
|
|
13130
|
+
200: sessionResponseSchema,
|
|
13172
13131
|
401: apiErrorSchema,
|
|
13173
13132
|
403: apiErrorSchema,
|
|
13174
13133
|
404: apiErrorSchema
|
|
13175
13134
|
},
|
|
13176
|
-
summary: "Get
|
|
13135
|
+
summary: "Get session by ID"
|
|
13177
13136
|
}
|
|
13178
13137
|
});
|
|
13179
|
-
var
|
|
13180
|
-
|
|
13138
|
+
var checkpointsByIdContract = c36.router({
|
|
13139
|
+
/**
|
|
13140
|
+
* GET /api/agent/checkpoints/:id
|
|
13141
|
+
* Get checkpoint by ID
|
|
13142
|
+
*/
|
|
13143
|
+
getById: {
|
|
13181
13144
|
method: "GET",
|
|
13182
|
-
path: "/api/
|
|
13145
|
+
path: "/api/agent/checkpoints/:id",
|
|
13183
13146
|
headers: authHeadersSchema,
|
|
13184
|
-
pathParams: external_exports.object({
|
|
13185
|
-
|
|
13186
|
-
sinceId: external_exports.string().uuid().optional(),
|
|
13187
|
-
beforeId: external_exports.string().uuid().optional(),
|
|
13188
|
-
limit: external_exports.coerce.number().min(1).max(100).default(50)
|
|
13147
|
+
pathParams: external_exports.object({
|
|
13148
|
+
id: external_exports.string().min(1, "Checkpoint ID is required")
|
|
13189
13149
|
}),
|
|
13190
13150
|
responses: {
|
|
13191
|
-
200:
|
|
13151
|
+
200: checkpointResponseSchema,
|
|
13192
13152
|
401: apiErrorSchema,
|
|
13193
13153
|
403: apiErrorSchema,
|
|
13194
13154
|
404: apiErrorSchema
|
|
13195
13155
|
},
|
|
13196
|
-
summary: "
|
|
13197
|
-
}
|
|
13198
|
-
});
|
|
13199
|
-
var chatThreadV1SendContract = c33.router({
|
|
13200
|
-
send: {
|
|
13201
|
-
method: "POST",
|
|
13202
|
-
path: "/api/v1/chat-threads/messages",
|
|
13203
|
-
headers: authHeadersSchema,
|
|
13204
|
-
body: external_exports.object({
|
|
13205
|
-
prompt: external_exports.string().min(1),
|
|
13206
|
-
threadId: external_exports.string().uuid()
|
|
13207
|
-
}),
|
|
13208
|
-
responses: {
|
|
13209
|
-
201: external_exports.object({
|
|
13210
|
-
threadId: external_exports.string(),
|
|
13211
|
-
messageId: external_exports.string(),
|
|
13212
|
-
runId: external_exports.string().nullable(),
|
|
13213
|
-
createdAt: external_exports.string()
|
|
13214
|
-
}),
|
|
13215
|
-
400: apiErrorSchema,
|
|
13216
|
-
401: apiErrorSchema,
|
|
13217
|
-
402: apiErrorSchema,
|
|
13218
|
-
403: apiErrorSchema,
|
|
13219
|
-
404: apiErrorSchema,
|
|
13220
|
-
409: apiErrorSchema,
|
|
13221
|
-
422: apiErrorSchema,
|
|
13222
|
-
429: apiErrorSchema,
|
|
13223
|
-
503: apiErrorSchema
|
|
13224
|
-
},
|
|
13225
|
-
summary: "Send a chat message to an existing thread"
|
|
13226
|
-
}
|
|
13227
|
-
});
|
|
13228
|
-
|
|
13229
|
-
// ../../packages/api-contracts/src/contracts/device-token.ts
|
|
13230
|
-
init_esm_shims();
|
|
13231
|
-
var c34 = initContract();
|
|
13232
|
-
var bb0DeviceCodeSchema = external_exports.string().regex(/^[A-Z2-9]{4}-[A-Z2-9]{4}$/);
|
|
13233
|
-
var bleSessionNonceSchema = external_exports.string().min(16).max(128).regex(/^[A-Za-z0-9._:-]+$/);
|
|
13234
|
-
var pollTokenSchema = external_exports.string().min(32).max(256).regex(/^[A-Za-z0-9._-]+$/);
|
|
13235
|
-
var createDeviceTokenRequestSchema = external_exports.object({
|
|
13236
|
-
device_type: external_exports.literal("bb0"),
|
|
13237
|
-
ble_session_nonce: bleSessionNonceSchema.optional()
|
|
13238
|
-
});
|
|
13239
|
-
var createDeviceTokenResponseSchema = external_exports.object({
|
|
13240
|
-
device_code: bb0DeviceCodeSchema,
|
|
13241
|
-
expires_in: external_exports.number().int().positive(),
|
|
13242
|
-
interval: external_exports.number().int().positive(),
|
|
13243
|
-
poll_token: pollTokenSchema
|
|
13244
|
-
});
|
|
13245
|
-
var pollDeviceTokenRequestSchema = external_exports.object({
|
|
13246
|
-
device_code: bb0DeviceCodeSchema,
|
|
13247
|
-
poll_token: pollTokenSchema
|
|
13248
|
-
});
|
|
13249
|
-
var pollDeviceTokenPendingResponseSchema = external_exports.object({
|
|
13250
|
-
status: external_exports.literal("pending"),
|
|
13251
|
-
interval: external_exports.number().int().positive()
|
|
13252
|
-
});
|
|
13253
|
-
var pollDeviceTokenApprovedResponseSchema = external_exports.object({
|
|
13254
|
-
status: external_exports.literal("approved"),
|
|
13255
|
-
api_token: external_exports.string(),
|
|
13256
|
-
thread_id: external_exports.string().uuid()
|
|
13257
|
-
});
|
|
13258
|
-
var pollDeviceTokenExpiredResponseSchema = external_exports.object({
|
|
13259
|
-
status: external_exports.literal("expired")
|
|
13260
|
-
});
|
|
13261
|
-
var pollDeviceTokenInvalidResponseSchema = external_exports.object({
|
|
13262
|
-
status: external_exports.literal("invalid")
|
|
13263
|
-
});
|
|
13264
|
-
var confirmBb0DeviceRequestSchema = external_exports.object({
|
|
13265
|
-
device_code: bb0DeviceCodeSchema
|
|
13266
|
-
});
|
|
13267
|
-
var confirmBb0DeviceResponseSchema = external_exports.object({
|
|
13268
|
-
status: external_exports.literal("approved")
|
|
13269
|
-
});
|
|
13270
|
-
var deviceTokenContract = c34.router({
|
|
13271
|
-
create: {
|
|
13272
|
-
method: "POST",
|
|
13273
|
-
path: "/api/device-token",
|
|
13274
|
-
body: createDeviceTokenRequestSchema,
|
|
13275
|
-
responses: {
|
|
13276
|
-
200: createDeviceTokenResponseSchema,
|
|
13277
|
-
400: apiErrorSchema
|
|
13278
|
-
},
|
|
13279
|
-
summary: "Create a short-lived device code for embedded device onboarding"
|
|
13280
|
-
},
|
|
13281
|
-
poll: {
|
|
13282
|
-
method: "POST",
|
|
13283
|
-
path: "/api/device-token/poll",
|
|
13284
|
-
body: pollDeviceTokenRequestSchema,
|
|
13285
|
-
responses: {
|
|
13286
|
-
200: pollDeviceTokenApprovedResponseSchema,
|
|
13287
|
-
202: pollDeviceTokenPendingResponseSchema,
|
|
13288
|
-
400: apiErrorSchema,
|
|
13289
|
-
404: pollDeviceTokenInvalidResponseSchema,
|
|
13290
|
-
410: pollDeviceTokenExpiredResponseSchema
|
|
13291
|
-
},
|
|
13292
|
-
summary: "Poll a bb0 device code for approval and final credentials"
|
|
13293
|
-
}
|
|
13294
|
-
});
|
|
13295
|
-
var bb0DeviceConfirmContract = c34.router({
|
|
13296
|
-
confirm: {
|
|
13297
|
-
method: "POST",
|
|
13298
|
-
path: "/api/zero/devices/bb0/confirm",
|
|
13299
|
-
headers: authHeadersSchema,
|
|
13300
|
-
body: confirmBb0DeviceRequestSchema,
|
|
13301
|
-
responses: {
|
|
13302
|
-
200: confirmBb0DeviceResponseSchema,
|
|
13303
|
-
400: apiErrorSchema,
|
|
13304
|
-
401: apiErrorSchema,
|
|
13305
|
-
403: apiErrorSchema,
|
|
13306
|
-
404: apiErrorSchema
|
|
13307
|
-
},
|
|
13308
|
-
summary: "Confirm a bb0 device code for the authenticated user"
|
|
13309
|
-
}
|
|
13310
|
-
});
|
|
13311
|
-
|
|
13312
|
-
// ../../packages/api-contracts/src/contracts/audio-transcriptions-v1.ts
|
|
13313
|
-
init_esm_shims();
|
|
13314
|
-
var c35 = initContract();
|
|
13315
|
-
var audioTranscriptionV1Schema = external_exports.object({
|
|
13316
|
-
text: external_exports.string()
|
|
13317
|
-
});
|
|
13318
|
-
var audioTranscriptionsV1Contract = c35.router({
|
|
13319
|
-
transcribe: {
|
|
13320
|
-
method: "POST",
|
|
13321
|
-
path: "/api/v1/audio/transcriptions",
|
|
13322
|
-
headers: authHeadersSchema,
|
|
13323
|
-
body: c35.type(),
|
|
13324
|
-
responses: {
|
|
13325
|
-
200: audioTranscriptionV1Schema,
|
|
13326
|
-
400: apiErrorSchema,
|
|
13327
|
-
401: apiErrorSchema,
|
|
13328
|
-
402: apiErrorSchema,
|
|
13329
|
-
403: apiErrorSchema,
|
|
13330
|
-
413: apiErrorSchema,
|
|
13331
|
-
429: apiErrorSchema,
|
|
13332
|
-
500: apiErrorSchema
|
|
13333
|
-
},
|
|
13334
|
-
summary: "Transcribe raw 16 kHz mono signed 16-bit PCM audio using the existing voice input pipeline"
|
|
13156
|
+
summary: "Get checkpoint by ID"
|
|
13335
13157
|
}
|
|
13336
13158
|
});
|
|
13337
13159
|
|
|
13338
13160
|
// ../../packages/api-contracts/src/contracts/realtime.ts
|
|
13339
13161
|
init_esm_shims();
|
|
13340
|
-
var
|
|
13162
|
+
var c37 = initContract();
|
|
13341
13163
|
var ablyTokenRequestSchema = external_exports.object({
|
|
13342
13164
|
keyName: external_exports.string(),
|
|
13343
13165
|
ttl: external_exports.number().optional(),
|
|
@@ -13347,7 +13169,7 @@ var ablyTokenRequestSchema = external_exports.object({
|
|
|
13347
13169
|
nonce: external_exports.string(),
|
|
13348
13170
|
mac: external_exports.string()
|
|
13349
13171
|
});
|
|
13350
|
-
var runnerRealtimeTokenContract =
|
|
13172
|
+
var runnerRealtimeTokenContract = c37.router({
|
|
13351
13173
|
/**
|
|
13352
13174
|
* POST /api/runners/realtime/token
|
|
13353
13175
|
* Get an Ably token to subscribe to a runner group's job notification channel
|
|
@@ -13369,7 +13191,7 @@ var runnerRealtimeTokenContract = c36.router({
|
|
|
13369
13191
|
summary: "Get Ably token for runner group job notifications"
|
|
13370
13192
|
}
|
|
13371
13193
|
});
|
|
13372
|
-
var platformRealtimeTokenContract =
|
|
13194
|
+
var platformRealtimeTokenContract = c37.router({
|
|
13373
13195
|
/**
|
|
13374
13196
|
* POST /api/zero/realtime/token
|
|
13375
13197
|
* Get an Ably token to subscribe to the authenticated user's push channel
|
|
@@ -28824,7 +28646,7 @@ var HEX_DIGITS = new Set("0123456789abcdefABCDEF".split(""));
|
|
|
28824
28646
|
|
|
28825
28647
|
// ../../packages/api-contracts/src/contracts/zero-feature-switches.ts
|
|
28826
28648
|
init_esm_shims();
|
|
28827
|
-
var
|
|
28649
|
+
var c38 = initContract();
|
|
28828
28650
|
var featureSwitchesResponseSchema = external_exports.object({
|
|
28829
28651
|
switches: external_exports.record(external_exports.string(), external_exports.boolean()),
|
|
28830
28652
|
effectiveSwitches: external_exports.record(external_exports.string(), external_exports.boolean())
|
|
@@ -28832,7 +28654,7 @@ var featureSwitchesResponseSchema = external_exports.object({
|
|
|
28832
28654
|
var updateFeatureSwitchesRequestSchema = external_exports.object({
|
|
28833
28655
|
switches: external_exports.record(external_exports.string(), external_exports.boolean())
|
|
28834
28656
|
});
|
|
28835
|
-
var zeroFeatureSwitchesContract =
|
|
28657
|
+
var zeroFeatureSwitchesContract = c38.router({
|
|
28836
28658
|
get: {
|
|
28837
28659
|
method: "GET",
|
|
28838
28660
|
path: "/api/zero/feature-switches",
|
|
@@ -28861,7 +28683,7 @@ var zeroFeatureSwitchesContract = c37.router({
|
|
|
28861
28683
|
method: "DELETE",
|
|
28862
28684
|
path: "/api/zero/feature-switches",
|
|
28863
28685
|
headers: authHeadersSchema,
|
|
28864
|
-
body:
|
|
28686
|
+
body: c38.noBody(),
|
|
28865
28687
|
responses: {
|
|
28866
28688
|
200: external_exports.object({ deleted: external_exports.literal(true) }),
|
|
28867
28689
|
401: apiErrorSchema,
|
|
@@ -28873,7 +28695,7 @@ var zeroFeatureSwitchesContract = c37.router({
|
|
|
28873
28695
|
|
|
28874
28696
|
// ../../packages/api-contracts/src/contracts/zero-memory.ts
|
|
28875
28697
|
init_esm_shims();
|
|
28876
|
-
var
|
|
28698
|
+
var c39 = initContract();
|
|
28877
28699
|
var memoryFileSchema = external_exports.object({
|
|
28878
28700
|
path: external_exports.string(),
|
|
28879
28701
|
size: external_exports.number()
|
|
@@ -28891,7 +28713,7 @@ var memoryDetailResponseSchema = external_exports.object({
|
|
|
28891
28713
|
files: external_exports.array(memoryFileSchema),
|
|
28892
28714
|
fileContents: external_exports.array(memoryFileContentSchema)
|
|
28893
28715
|
});
|
|
28894
|
-
var zeroMemoryContract =
|
|
28716
|
+
var zeroMemoryContract = c39.router({
|
|
28895
28717
|
get: {
|
|
28896
28718
|
method: "GET",
|
|
28897
28719
|
path: "/api/zero/memory",
|
|
@@ -28907,7 +28729,7 @@ var zeroMemoryContract = c38.router({
|
|
|
28907
28729
|
|
|
28908
28730
|
// ../../packages/api-contracts/src/contracts/onboarding.ts
|
|
28909
28731
|
init_esm_shims();
|
|
28910
|
-
var
|
|
28732
|
+
var c40 = initContract();
|
|
28911
28733
|
var onboardingStatusResponseSchema = external_exports.object({
|
|
28912
28734
|
needsOnboarding: external_exports.boolean(),
|
|
28913
28735
|
onboardingComplete: external_exports.boolean(),
|
|
@@ -28922,7 +28744,7 @@ var onboardingStatusResponseSchema = external_exports.object({
|
|
|
28922
28744
|
avatarUrl: external_exports.string().optional()
|
|
28923
28745
|
}).nullable()
|
|
28924
28746
|
});
|
|
28925
|
-
var onboardingStatusContract =
|
|
28747
|
+
var onboardingStatusContract = c40.router({
|
|
28926
28748
|
getStatus: {
|
|
28927
28749
|
method: "GET",
|
|
28928
28750
|
path: "/api/zero/onboarding/status",
|
|
@@ -28934,7 +28756,7 @@ var onboardingStatusContract = c39.router({
|
|
|
28934
28756
|
summary: "Get onboarding status for current user"
|
|
28935
28757
|
}
|
|
28936
28758
|
});
|
|
28937
|
-
var onboardingCompleteContract =
|
|
28759
|
+
var onboardingCompleteContract = c40.router({
|
|
28938
28760
|
complete: {
|
|
28939
28761
|
method: "POST",
|
|
28940
28762
|
path: "/api/zero/onboarding/complete",
|
|
@@ -28962,7 +28784,7 @@ var skillFrontmatterSchema = external_exports.object({
|
|
|
28962
28784
|
|
|
28963
28785
|
// ../../packages/api-contracts/src/contracts/zero-codex-device-auth.ts
|
|
28964
28786
|
init_esm_shims();
|
|
28965
|
-
var
|
|
28787
|
+
var c41 = initContract();
|
|
28966
28788
|
var codexDeviceAuthScopeSchema = external_exports.enum(["org", "personal"]);
|
|
28967
28789
|
var codexDeviceAuthStartResponseSchema = external_exports.object({
|
|
28968
28790
|
sessionToken: external_exports.string(),
|
|
@@ -28988,7 +28810,7 @@ var codexDeviceAuthCompleteResponseSchema = external_exports.discriminatedUnion(
|
|
|
28988
28810
|
var codexDeviceAuthCancelResponseSchema = external_exports.object({
|
|
28989
28811
|
status: external_exports.literal("cancelled")
|
|
28990
28812
|
});
|
|
28991
|
-
var zeroCodexDeviceAuthContract =
|
|
28813
|
+
var zeroCodexDeviceAuthContract = c41.router({
|
|
28992
28814
|
start: {
|
|
28993
28815
|
method: "POST",
|
|
28994
28816
|
path: "/api/zero/model-providers/codex/device-auth/sessions",
|
|
@@ -29036,7 +28858,7 @@ var zeroCodexDeviceAuthContract = c40.router({
|
|
|
29036
28858
|
|
|
29037
28859
|
// ../../packages/api-contracts/src/contracts/zero-claude-code-device-auth.ts
|
|
29038
28860
|
init_esm_shims();
|
|
29039
|
-
var
|
|
28861
|
+
var c42 = initContract();
|
|
29040
28862
|
var claudeCodeDeviceAuthScopeSchema = external_exports.enum(["org", "personal"]);
|
|
29041
28863
|
var claudeCodeDeviceAuthStartResponseSchema = external_exports.object({
|
|
29042
28864
|
sessionToken: external_exports.string(),
|
|
@@ -29054,7 +28876,7 @@ var claudeCodeDeviceAuthCompleteResponseSchema = external_exports.object({
|
|
|
29054
28876
|
var claudeCodeDeviceAuthCancelResponseSchema = external_exports.object({
|
|
29055
28877
|
status: external_exports.literal("cancelled")
|
|
29056
28878
|
});
|
|
29057
|
-
var zeroClaudeCodeDeviceAuthContract =
|
|
28879
|
+
var zeroClaudeCodeDeviceAuthContract = c42.router({
|
|
29058
28880
|
start: {
|
|
29059
28881
|
method: "POST",
|
|
29060
28882
|
path: "/api/zero/model-providers/claude-code/device-auth/sessions",
|
|
@@ -29105,12 +28927,12 @@ var zeroClaudeCodeDeviceAuthContract = c41.router({
|
|
|
29105
28927
|
|
|
29106
28928
|
// ../../packages/api-contracts/src/contracts/zero-org-logo.ts
|
|
29107
28929
|
init_esm_shims();
|
|
29108
|
-
var
|
|
28930
|
+
var c43 = initContract();
|
|
29109
28931
|
var zeroOrgLogoResponseSchema = external_exports.object({
|
|
29110
28932
|
logoUrl: external_exports.string().nullable(),
|
|
29111
28933
|
hasImage: external_exports.boolean()
|
|
29112
28934
|
});
|
|
29113
|
-
var zeroOrgLogoContract =
|
|
28935
|
+
var zeroOrgLogoContract = c43.router({
|
|
29114
28936
|
get: {
|
|
29115
28937
|
method: "GET",
|
|
29116
28938
|
path: "/api/zero/org/logo",
|
|
@@ -29128,7 +28950,7 @@ var zeroOrgLogoContract = c42.router({
|
|
|
29128
28950
|
path: "/api/zero/org/logo",
|
|
29129
28951
|
headers: authHeadersSchema,
|
|
29130
28952
|
contentType: "multipart/form-data",
|
|
29131
|
-
body:
|
|
28953
|
+
body: c43.type(),
|
|
29132
28954
|
responses: {
|
|
29133
28955
|
200: zeroOrgLogoResponseSchema,
|
|
29134
28956
|
400: apiErrorSchema,
|
|
@@ -29155,8 +28977,8 @@ var zeroOrgLogoContract = c42.router({
|
|
|
29155
28977
|
|
|
29156
28978
|
// ../../packages/api-contracts/src/contracts/zero-composes.ts
|
|
29157
28979
|
init_esm_shims();
|
|
29158
|
-
var
|
|
29159
|
-
var zeroComposesListContract =
|
|
28980
|
+
var c44 = initContract();
|
|
28981
|
+
var zeroComposesListContract = c44.router({
|
|
29160
28982
|
list: {
|
|
29161
28983
|
method: "GET",
|
|
29162
28984
|
path: "/api/zero/composes/list",
|
|
@@ -29176,14 +28998,14 @@ var zeroComposesListContract = c43.router({
|
|
|
29176
28998
|
|
|
29177
28999
|
// ../../packages/api-contracts/src/contracts/zero-personal-model-providers.ts
|
|
29178
29000
|
init_esm_shims();
|
|
29179
|
-
var
|
|
29001
|
+
var c45 = initContract();
|
|
29180
29002
|
var resetPersonalModelProviderSubscriptionUsageRequestSchema = external_exports.object({
|
|
29181
29003
|
idempotencyKey: external_exports.uuid()
|
|
29182
29004
|
});
|
|
29183
29005
|
var resetPersonalModelProviderSubscriptionUsageResponseSchema = external_exports.object({
|
|
29184
29006
|
outcome: external_exports.enum(["reset", "nothingToReset", "noCredit", "alreadyRedeemed"])
|
|
29185
29007
|
});
|
|
29186
|
-
var zeroPersonalModelProvidersMainContract =
|
|
29008
|
+
var zeroPersonalModelProvidersMainContract = c45.router({
|
|
29187
29009
|
list: {
|
|
29188
29010
|
method: "GET",
|
|
29189
29011
|
path: "/api/zero/me/model-providers",
|
|
@@ -29212,7 +29034,7 @@ var zeroPersonalModelProvidersMainContract = c44.router({
|
|
|
29212
29034
|
summary: "Create or update a personal model provider for the requesting user"
|
|
29213
29035
|
}
|
|
29214
29036
|
});
|
|
29215
|
-
var zeroPersonalModelProvidersByTypeContract =
|
|
29037
|
+
var zeroPersonalModelProvidersByTypeContract = c45.router({
|
|
29216
29038
|
delete: {
|
|
29217
29039
|
method: "DELETE",
|
|
29218
29040
|
path: "/api/zero/me/model-providers/:type",
|
|
@@ -29221,7 +29043,7 @@ var zeroPersonalModelProvidersByTypeContract = c44.router({
|
|
|
29221
29043
|
type: modelProviderTypeSchema
|
|
29222
29044
|
}),
|
|
29223
29045
|
responses: {
|
|
29224
|
-
204:
|
|
29046
|
+
204: c45.noBody(),
|
|
29225
29047
|
401: apiErrorSchema,
|
|
29226
29048
|
404: apiErrorSchema,
|
|
29227
29049
|
500: apiErrorSchema
|
|
@@ -29249,7 +29071,7 @@ var zeroPersonalModelProvidersByTypeContract = c44.router({
|
|
|
29249
29071
|
|
|
29250
29072
|
// ../../packages/api-contracts/src/contracts/zero-memory-dev-refresh.ts
|
|
29251
29073
|
init_esm_shims();
|
|
29252
|
-
var
|
|
29074
|
+
var c46 = initContract();
|
|
29253
29075
|
var memoryDevRefreshSkippedResponseSchema = external_exports.object({
|
|
29254
29076
|
skipped: external_exports.literal(true)
|
|
29255
29077
|
});
|
|
@@ -29260,12 +29082,12 @@ var memoryDevRefreshResponseSchema = external_exports.union([
|
|
|
29260
29082
|
memoryDevRefreshSkippedResponseSchema,
|
|
29261
29083
|
memoryDevRefreshSummarizedResponseSchema
|
|
29262
29084
|
]);
|
|
29263
|
-
var zeroMemoryDevRefreshContract =
|
|
29085
|
+
var zeroMemoryDevRefreshContract = c46.router({
|
|
29264
29086
|
refresh: {
|
|
29265
29087
|
method: "POST",
|
|
29266
29088
|
path: "/api/zero/memory/dev-refresh",
|
|
29267
29089
|
headers: authHeadersSchema,
|
|
29268
|
-
body:
|
|
29090
|
+
body: c46.noBody(),
|
|
29269
29091
|
responses: {
|
|
29270
29092
|
200: memoryDevRefreshResponseSchema,
|
|
29271
29093
|
401: apiErrorSchema,
|
|
@@ -29276,69 +29098,6 @@ var zeroMemoryDevRefreshContract = c45.router({
|
|
|
29276
29098
|
}
|
|
29277
29099
|
});
|
|
29278
29100
|
|
|
29279
|
-
// ../../packages/api-contracts/src/contracts/api-keys.ts
|
|
29280
|
-
init_esm_shims();
|
|
29281
|
-
var c46 = initContract();
|
|
29282
|
-
var apiKeyItemSchema = external_exports.object({
|
|
29283
|
-
id: external_exports.string().uuid(),
|
|
29284
|
-
name: external_exports.string(),
|
|
29285
|
-
tokenPrefix: external_exports.string(),
|
|
29286
|
-
createdAt: external_exports.string(),
|
|
29287
|
-
expiresAt: external_exports.string(),
|
|
29288
|
-
lastUsedAt: external_exports.string().nullable()
|
|
29289
|
-
});
|
|
29290
|
-
var apiKeyListResponseSchema = external_exports.object({
|
|
29291
|
-
apiKeys: external_exports.array(apiKeyItemSchema)
|
|
29292
|
-
});
|
|
29293
|
-
var createApiKeyRequestSchema = external_exports.object({
|
|
29294
|
-
name: external_exports.string().min(1).max(100),
|
|
29295
|
-
expiresInDays: external_exports.number().int().positive().max(3650)
|
|
29296
|
-
});
|
|
29297
|
-
var createApiKeyResponseSchema = apiKeyItemSchema.extend({
|
|
29298
|
-
token: external_exports.string()
|
|
29299
|
-
});
|
|
29300
|
-
var apiKeysContract = c46.router({
|
|
29301
|
-
list: {
|
|
29302
|
-
method: "GET",
|
|
29303
|
-
path: "/api/zero/api-keys",
|
|
29304
|
-
headers: authHeadersSchema,
|
|
29305
|
-
responses: {
|
|
29306
|
-
200: apiKeyListResponseSchema,
|
|
29307
|
-
401: apiErrorSchema,
|
|
29308
|
-
500: apiErrorSchema
|
|
29309
|
-
},
|
|
29310
|
-
summary: "List caller's API keys (metadata only)"
|
|
29311
|
-
},
|
|
29312
|
-
create: {
|
|
29313
|
-
method: "POST",
|
|
29314
|
-
path: "/api/zero/api-keys",
|
|
29315
|
-
headers: authHeadersSchema,
|
|
29316
|
-
body: createApiKeyRequestSchema,
|
|
29317
|
-
responses: {
|
|
29318
|
-
201: createApiKeyResponseSchema,
|
|
29319
|
-
400: apiErrorSchema,
|
|
29320
|
-
401: apiErrorSchema,
|
|
29321
|
-
500: apiErrorSchema
|
|
29322
|
-
},
|
|
29323
|
-
summary: "Create a new API key (token returned once)"
|
|
29324
|
-
}
|
|
29325
|
-
});
|
|
29326
|
-
var apiKeysByIdContract = c46.router({
|
|
29327
|
-
delete: {
|
|
29328
|
-
method: "DELETE",
|
|
29329
|
-
path: "/api/zero/api-keys/:id",
|
|
29330
|
-
headers: authHeadersSchema,
|
|
29331
|
-
pathParams: external_exports.object({ id: external_exports.string().uuid() }),
|
|
29332
|
-
responses: {
|
|
29333
|
-
204: c46.noBody(),
|
|
29334
|
-
401: apiErrorSchema,
|
|
29335
|
-
404: apiErrorSchema,
|
|
29336
|
-
500: apiErrorSchema
|
|
29337
|
-
},
|
|
29338
|
-
summary: "Revoke (delete) an API key"
|
|
29339
|
-
}
|
|
29340
|
-
});
|
|
29341
|
-
|
|
29342
29101
|
// ../../packages/api-contracts/src/contracts/integrations-github.ts
|
|
29343
29102
|
init_esm_shims();
|
|
29344
29103
|
var c47 = initContract();
|
|
@@ -31925,6 +31684,20 @@ var FEATURE_SWITCHES = {
|
|
|
31925
31684
|
enabled: false,
|
|
31926
31685
|
enabledOrgIdHashes: STAFF_ORG_ID_HASHES
|
|
31927
31686
|
},
|
|
31687
|
+
["morningBrief" /* MorningBrief */]: {
|
|
31688
|
+
maintainer: "ethan@vm0.ai",
|
|
31689
|
+
description: "Enable the daily 7:00 local-time Morning Brief email built from GitHub, Gmail, and Google Calendar.",
|
|
31690
|
+
enabled: false,
|
|
31691
|
+
enabledOrgIdHashes: STAFF_ORG_ID_HASHES,
|
|
31692
|
+
userOverridable: true
|
|
31693
|
+
},
|
|
31694
|
+
["manualMorningBrief" /* ManualMorningBrief */]: {
|
|
31695
|
+
maintainer: "ethan@vm0.ai",
|
|
31696
|
+
description: "Show a Send now button in Settings that triggers a Morning Brief immediately for testing.",
|
|
31697
|
+
enabled: false,
|
|
31698
|
+
enabledOrgIdHashes: STAFF_ORG_ID_HASHES,
|
|
31699
|
+
userOverridable: true
|
|
31700
|
+
},
|
|
31928
31701
|
["notionWorkflowAutomations" /* NotionWorkflowAutomations */]: {
|
|
31929
31702
|
maintainer: "lancy@vm0.ai",
|
|
31930
31703
|
description: "Enable Notion event workflow automations, starting with child pages created under a configured parent page.",
|
|
@@ -31956,12 +31729,6 @@ var FEATURE_SWITCHES = {
|
|
|
31956
31729
|
description: "Enable the Workday HCM and finance connector",
|
|
31957
31730
|
enabled: false
|
|
31958
31731
|
},
|
|
31959
|
-
["apiKeys" /* ApiKeys */]: {
|
|
31960
|
-
maintainer: "ethan@vm0.ai",
|
|
31961
|
-
description: "Gate the custom /settings/api-keys UI for issuing personal access tokens used by the /api/v1 public surface. When disabled, the settings page redirects to / and the sidebar menu item is hidden. The backend /api/v1 verification does NOT consult this flag \u2014 previously issued PATs continue to work.",
|
|
31962
|
-
enabled: false,
|
|
31963
|
-
enabledOrgIdHashes: STAFF_ORG_ID_HASHES
|
|
31964
|
-
},
|
|
31965
31732
|
["codexFastMode" /* CodexFastMode */]: {
|
|
31966
31733
|
maintainer: "lancy@vm0.ai",
|
|
31967
31734
|
description: "Enable Codex fast mode for ChatGPT subscription GPT 5.5 and GPT 5.6 web chat runs.",
|
|
@@ -31984,6 +31751,12 @@ var FEATURE_SWITCHES = {
|
|
|
31984
31751
|
enabled: false,
|
|
31985
31752
|
userOverridable: false
|
|
31986
31753
|
},
|
|
31754
|
+
["structuredPrompt" /* StructuredPrompt */]: {
|
|
31755
|
+
maintainer: "bingjie@vm0.ai",
|
|
31756
|
+
description: "Enable structured user prompt rendering, sends, and drafts while preserving the legacy content fallback.",
|
|
31757
|
+
enabled: false,
|
|
31758
|
+
enabledOrgIdHashes: STAFF_ORG_ID_HASHES
|
|
31759
|
+
},
|
|
31987
31760
|
["zapierConnector" /* ZapierConnector */]: {
|
|
31988
31761
|
maintainer: "yuma@vm0.ai",
|
|
31989
31762
|
description: "Enable the Zapier connector. When disabled, Zapier is hidden from the connectors list and cannot be connected.",
|
|
@@ -33929,454 +33702,231 @@ var EventRenderer = class _EventRenderer {
|
|
|
33929
33702
|
}
|
|
33930
33703
|
};
|
|
33931
33704
|
|
|
33932
|
-
// src/
|
|
33705
|
+
// src/lib/utils/log-pagination.ts
|
|
33933
33706
|
init_esm_shims();
|
|
33934
|
-
|
|
33935
|
-
|
|
33936
|
-
|
|
33937
|
-
|
|
33938
|
-
const val = valueParts.join("=");
|
|
33939
|
-
if (!key || val === void 0 || val === "") {
|
|
33940
|
-
throw new Error(`Invalid format: ${value} (expected KEY=value)`);
|
|
33707
|
+
function parsePositiveLogCount(value, optionName) {
|
|
33708
|
+
const trimmed = value.trim();
|
|
33709
|
+
if (!/^0*[1-9]\d*$/.test(trimmed)) {
|
|
33710
|
+
throw new Error(`Option ${optionName} must be a positive integer`);
|
|
33941
33711
|
}
|
|
33942
|
-
|
|
33943
|
-
|
|
33944
|
-
|
|
33945
|
-
const [volumeName, ...versionParts] = value.split("=");
|
|
33946
|
-
const version = versionParts.join("=");
|
|
33947
|
-
if (!volumeName || version === void 0 || version === "") {
|
|
33948
|
-
throw new Error(
|
|
33949
|
-
`Invalid volume-version format: ${value} (expected volumeName=version)`
|
|
33950
|
-
);
|
|
33712
|
+
const count = Number(trimmed);
|
|
33713
|
+
if (!Number.isSafeInteger(count)) {
|
|
33714
|
+
throw new Error(`Option ${optionName} must be a positive integer`);
|
|
33951
33715
|
}
|
|
33952
|
-
return
|
|
33716
|
+
return count;
|
|
33953
33717
|
}
|
|
33954
|
-
function
|
|
33955
|
-
const
|
|
33956
|
-
if (
|
|
33957
|
-
throw new Error(
|
|
33958
|
-
`Invalid ${flagLabel} format: ${value} (expected name:/path or name:version:/path)`
|
|
33959
|
-
);
|
|
33718
|
+
function parseBoundedLogCount(value, optionName, min, max) {
|
|
33719
|
+
const trimmed = value.trim();
|
|
33720
|
+
if (!/^\d+$/.test(trimmed)) {
|
|
33721
|
+
throw new Error(`${optionName} must be between ${min} and ${max}`);
|
|
33960
33722
|
}
|
|
33961
|
-
const
|
|
33962
|
-
|
|
33963
|
-
|
|
33964
|
-
throw new Error(
|
|
33965
|
-
`Invalid ${flagLabel} format: ${value} (name cannot be empty)`
|
|
33966
|
-
);
|
|
33967
|
-
}
|
|
33968
|
-
if (!mountPath.startsWith("/")) {
|
|
33969
|
-
throw new Error(
|
|
33970
|
-
`Invalid ${flagLabel} mount path: ${mountPath} (must start with /)`
|
|
33971
|
-
);
|
|
33972
|
-
}
|
|
33973
|
-
if (parts.length === 2) {
|
|
33974
|
-
return { name, mountPath };
|
|
33975
|
-
}
|
|
33976
|
-
const version = parts[1];
|
|
33977
|
-
if (!version) {
|
|
33978
|
-
throw new Error(
|
|
33979
|
-
`Invalid ${flagLabel} format: ${value} (version cannot be empty)`
|
|
33980
|
-
);
|
|
33723
|
+
const count = Number(trimmed);
|
|
33724
|
+
if (!Number.isSafeInteger(count) || count < min || count > max) {
|
|
33725
|
+
throw new Error(`${optionName} must be between ${min} and ${max}`);
|
|
33981
33726
|
}
|
|
33982
|
-
return
|
|
33983
|
-
}
|
|
33984
|
-
function collectMounts(value, previous) {
|
|
33985
|
-
return [...previous, parseMount(value, "volume")];
|
|
33727
|
+
return count;
|
|
33986
33728
|
}
|
|
33987
|
-
function
|
|
33988
|
-
|
|
33989
|
-
|
|
33990
|
-
|
|
33991
|
-
|
|
33992
|
-
|
|
33993
|
-
|
|
33994
|
-
|
|
33995
|
-
|
|
33996
|
-
|
|
33997
|
-
|
|
33998
|
-
|
|
33999
|
-
);
|
|
34000
|
-
|
|
34001
|
-
|
|
34002
|
-
|
|
34003
|
-
|
|
34004
|
-
|
|
34005
|
-
|
|
34006
|
-
|
|
34007
|
-
);
|
|
33729
|
+
async function collectLogItems(options) {
|
|
33730
|
+
const collected = [];
|
|
33731
|
+
const seenCursors = /* @__PURE__ */ new Set();
|
|
33732
|
+
let cursor2;
|
|
33733
|
+
while (true) {
|
|
33734
|
+
const requestLimit = options.targetCount === "all" ? options.pageLimit : Math.min(options.pageLimit, options.targetCount - collected.length);
|
|
33735
|
+
const page = await options.fetchPage({
|
|
33736
|
+
sinceTime: options.sinceTime,
|
|
33737
|
+
cursor: cursor2,
|
|
33738
|
+
limit: requestLimit,
|
|
33739
|
+
order: options.order
|
|
33740
|
+
});
|
|
33741
|
+
collected.push(...page.items);
|
|
33742
|
+
if (options.targetCount !== "all" && collected.length >= options.targetCount) {
|
|
33743
|
+
break;
|
|
33744
|
+
}
|
|
33745
|
+
const nextCursor = page.nextCursor ?? null;
|
|
33746
|
+
if (!page.hasMore || !nextCursor || seenCursors.has(nextCursor)) {
|
|
33747
|
+
break;
|
|
33748
|
+
}
|
|
33749
|
+
seenCursors.add(nextCursor);
|
|
33750
|
+
cursor2 = nextCursor;
|
|
34008
33751
|
}
|
|
34009
|
-
|
|
33752
|
+
const entries = options.targetCount === "all" ? collected : collected.slice(0, options.targetCount);
|
|
33753
|
+
return options.order === "desc" ? entries.reverse() : entries;
|
|
34010
33754
|
}
|
|
33755
|
+
|
|
33756
|
+
// src/lib/utils/uuid.ts
|
|
33757
|
+
init_esm_shims();
|
|
34011
33758
|
var UUID_PATTERN = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
|
|
34012
|
-
function
|
|
34013
|
-
return UUID_PATTERN.test(
|
|
34014
|
-
}
|
|
34015
|
-
function extractVarNames(composeContent) {
|
|
34016
|
-
const grouped = extractAndGroupVariables(composeContent);
|
|
34017
|
-
return grouped.vars.map((r) => {
|
|
34018
|
-
return r.name;
|
|
34019
|
-
});
|
|
34020
|
-
}
|
|
34021
|
-
function extractSecretNames(composeContent) {
|
|
34022
|
-
const grouped = extractAndGroupVariables(composeContent);
|
|
34023
|
-
return grouped.secrets.map((r) => {
|
|
34024
|
-
return r.name;
|
|
34025
|
-
});
|
|
33759
|
+
function isUuid(value) {
|
|
33760
|
+
return UUID_PATTERN.test(value);
|
|
34026
33761
|
}
|
|
34027
|
-
|
|
34028
|
-
|
|
34029
|
-
|
|
34030
|
-
|
|
34031
|
-
|
|
34032
|
-
if (
|
|
34033
|
-
|
|
34034
|
-
for (const name of missingNames) {
|
|
34035
|
-
const envValue = process.env[name];
|
|
34036
|
-
if (envValue !== void 0) {
|
|
34037
|
-
envValues[name] = envValue;
|
|
34038
|
-
}
|
|
34039
|
-
}
|
|
34040
|
-
let fileValues = {};
|
|
34041
|
-
if (envFilePath) {
|
|
34042
|
-
if (!fs.existsSync(envFilePath)) {
|
|
34043
|
-
throw new Error(`Environment file not found: ${envFilePath}`);
|
|
34044
|
-
}
|
|
34045
|
-
const dotenvResult = (0, import_dotenv.config)({ path: envFilePath, quiet: true });
|
|
34046
|
-
if (dotenvResult.parsed) {
|
|
34047
|
-
fileValues = Object.fromEntries(
|
|
34048
|
-
Object.entries(dotenvResult.parsed).filter(([key]) => {
|
|
34049
|
-
return missingNames.includes(key);
|
|
34050
|
-
})
|
|
34051
|
-
);
|
|
34052
|
-
}
|
|
34053
|
-
}
|
|
34054
|
-
Object.assign(result, envValues, fileValues);
|
|
33762
|
+
|
|
33763
|
+
// src/lib/utils/search-query.ts
|
|
33764
|
+
init_esm_shims();
|
|
33765
|
+
function parseSearchQuery(value, label) {
|
|
33766
|
+
const trimmed = value.trim();
|
|
33767
|
+
if (!trimmed) {
|
|
33768
|
+
throw new Error(`${label} cannot be empty.`);
|
|
34055
33769
|
}
|
|
34056
|
-
return
|
|
33770
|
+
return trimmed;
|
|
34057
33771
|
}
|
|
34058
|
-
|
|
34059
|
-
|
|
34060
|
-
|
|
34061
|
-
|
|
34062
|
-
|
|
34063
|
-
|
|
34064
|
-
|
|
34065
|
-
name: identifier.slice(0, colonIndex),
|
|
34066
|
-
version: identifier.slice(colonIndex + 1)
|
|
34067
|
-
};
|
|
34068
|
-
}
|
|
34069
|
-
return { name: identifier };
|
|
33772
|
+
|
|
33773
|
+
// src/commands/zero/logs/search.ts
|
|
33774
|
+
init_esm_shims();
|
|
33775
|
+
var SEVEN_DAYS_MS = 7 * 24 * 60 * 60 * 1e3;
|
|
33776
|
+
function supportedSearchFramework(framework) {
|
|
33777
|
+
const normalized = framework ?? void 0;
|
|
33778
|
+
return isSupportedFramework(normalized) ? normalized : void 0;
|
|
34070
33779
|
}
|
|
34071
|
-
function
|
|
34072
|
-
|
|
34073
|
-
|
|
34074
|
-
|
|
34075
|
-
|
|
34076
|
-
|
|
34077
|
-
|
|
34078
|
-
|
|
34079
|
-
} else {
|
|
34080
|
-
EventRenderer.renderRunStarted({
|
|
34081
|
-
runId: response.runId,
|
|
34082
|
-
sandboxId: response.sandboxId
|
|
34083
|
-
});
|
|
33780
|
+
function renderSearchEvent(event, framework, renderer, normalizer) {
|
|
33781
|
+
const parsedEvents = normalizer.process(
|
|
33782
|
+
event.eventData,
|
|
33783
|
+
supportedSearchFramework(framework),
|
|
33784
|
+
new Date(event.createdAt)
|
|
33785
|
+
);
|
|
33786
|
+
for (const parsed of parsedEvents) {
|
|
33787
|
+
renderer.render(parsed);
|
|
34084
33788
|
}
|
|
34085
33789
|
}
|
|
34086
|
-
|
|
34087
|
-
|
|
34088
|
-
|
|
34089
|
-
"timeout",
|
|
34090
|
-
"cancelled"
|
|
34091
|
-
];
|
|
34092
|
-
var POLL_INTERVAL_MS = 1e3;
|
|
34093
|
-
var TERMINAL_DRAIN_POLL_INTERVAL_MS = 500;
|
|
34094
|
-
var TERMINAL_DRAIN_IDLE_MS = 1e3;
|
|
34095
|
-
var TERMINAL_DRAIN_MAX_MS = 3e3;
|
|
34096
|
-
function supportedEventFramework(framework) {
|
|
34097
|
-
return isSupportedFramework(framework) ? framework : void 0;
|
|
34098
|
-
}
|
|
34099
|
-
function isTerminalRunState(run) {
|
|
34100
|
-
return TERMINAL_RUN_STATUSES.includes(run.status);
|
|
34101
|
-
}
|
|
34102
|
-
function shouldDrainNextEventPage(response, madeSequenceProgress) {
|
|
34103
|
-
return response.hasMore && response.events.length > 0 && madeSequenceProgress;
|
|
34104
|
-
}
|
|
34105
|
-
function isBlockedBySequenceGap(response, madeSequenceProgress) {
|
|
34106
|
-
return response.hasMore && !madeSequenceProgress;
|
|
34107
|
-
}
|
|
34108
|
-
function hasTerminalWatermark(run) {
|
|
34109
|
-
return run.lastEventSequence !== void 0;
|
|
34110
|
-
}
|
|
34111
|
-
function hasReachedTerminalWatermark(run, nextSequence) {
|
|
34112
|
-
return run.lastEventSequence !== void 0 && nextSequence >= run.lastEventSequence;
|
|
34113
|
-
}
|
|
34114
|
-
function shouldCompleteTerminalDrain(terminalSeenAt, lastTerminalProgressAt, blockedByGap) {
|
|
34115
|
-
const now = Date.now();
|
|
34116
|
-
const terminalElapsedMs = now - terminalSeenAt;
|
|
34117
|
-
const terminalIdleMs = now - lastTerminalProgressAt;
|
|
34118
|
-
return terminalElapsedMs >= TERMINAL_DRAIN_MAX_MS || !blockedByGap && terminalIdleMs >= TERMINAL_DRAIN_IDLE_MS;
|
|
34119
|
-
}
|
|
34120
|
-
function updateTerminalDrainState(state, run, madeSequenceProgress, now) {
|
|
34121
|
-
if (isTerminalRunState(run)) {
|
|
34122
|
-
if (!state.runState) {
|
|
34123
|
-
state.seenAt = now;
|
|
34124
|
-
state.lastProgressAt = now;
|
|
34125
|
-
} else if (madeSequenceProgress) {
|
|
34126
|
-
state.lastProgressAt = now;
|
|
34127
|
-
}
|
|
34128
|
-
state.runState = run;
|
|
34129
|
-
return;
|
|
34130
|
-
}
|
|
34131
|
-
if (state.runState && madeSequenceProgress) {
|
|
34132
|
-
state.lastProgressAt = now;
|
|
33790
|
+
function flushSearchRenderer(renderer, normalizer) {
|
|
33791
|
+
for (const parsed of normalizer.flush()) {
|
|
33792
|
+
renderer.render(parsed);
|
|
34133
33793
|
}
|
|
33794
|
+
renderer.flush();
|
|
34134
33795
|
}
|
|
34135
|
-
function
|
|
34136
|
-
|
|
34137
|
-
}
|
|
34138
|
-
function shouldReturnTerminalRunResult(state, response, nextSequence, madeSequenceProgress, seenResultEvent) {
|
|
34139
|
-
const run = state.runState;
|
|
34140
|
-
if (!run) {
|
|
34141
|
-
return false;
|
|
34142
|
-
}
|
|
34143
|
-
if (!hasTerminalWatermark(run) && run.status !== "completed") {
|
|
34144
|
-
if (run.status === "timeout" && shouldDrainNextEventPage(response, madeSequenceProgress)) {
|
|
34145
|
-
return false;
|
|
34146
|
-
}
|
|
34147
|
-
return true;
|
|
34148
|
-
}
|
|
34149
|
-
if (!hasTerminalWatermark(run) && seenResultEvent) {
|
|
34150
|
-
return true;
|
|
34151
|
-
}
|
|
34152
|
-
return shouldCompleteTerminalDrain(
|
|
34153
|
-
state.seenAt,
|
|
34154
|
-
state.lastProgressAt,
|
|
34155
|
-
isBlockedBySequenceGap(response, madeSequenceProgress) || isBlockedByTerminalWatermark(run, nextSequence)
|
|
34156
|
-
);
|
|
33796
|
+
function formatRunHeader(runId, agentName, timestamp) {
|
|
33797
|
+
const time = formatIsoTimestamp(timestamp);
|
|
33798
|
+
return `\u2500\u2500 Run ${runId} (${agentName}, ${time}) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500`;
|
|
34157
33799
|
}
|
|
34158
|
-
function
|
|
34159
|
-
|
|
34160
|
-
|
|
34161
|
-
|
|
34162
|
-
|
|
34163
|
-
runId,
|
|
34164
|
-
sessionId: run.result?.agentSessionId,
|
|
34165
|
-
checkpointId: run.result?.checkpointId
|
|
34166
|
-
};
|
|
34167
|
-
}
|
|
34168
|
-
if (run.status === "failed") {
|
|
34169
|
-
EventRenderer.renderRunFailed(run.error, runId);
|
|
34170
|
-
return { succeeded: false, runId };
|
|
34171
|
-
}
|
|
34172
|
-
if (run.status === "timeout") {
|
|
34173
|
-
console.error(source_default.red("\n\u2717 Run timed out"));
|
|
34174
|
-
console.error(source_default.dim(` (use "zero logs ${runId}" to view logs)`));
|
|
34175
|
-
return { succeeded: false, runId };
|
|
34176
|
-
}
|
|
34177
|
-
console.error(source_default.yellow("\n\u2717 Run cancelled"));
|
|
34178
|
-
return { succeeded: false, runId };
|
|
33800
|
+
function parseContextOptions(options) {
|
|
33801
|
+
const contextN = options.context !== void 0 ? parseBoundedLogCount(options.context, "--context", 0, 10) : 0;
|
|
33802
|
+
const before = options.beforeContext !== void 0 ? parseBoundedLogCount(options.beforeContext, "--before-context", 0, 10) : contextN;
|
|
33803
|
+
const after = options.afterContext !== void 0 ? parseBoundedLogCount(options.afterContext, "--after-context", 0, 10) : contextN;
|
|
33804
|
+
return { before, after };
|
|
34179
33805
|
}
|
|
34180
|
-
function
|
|
34181
|
-
|
|
34182
|
-
|
|
34183
|
-
});
|
|
33806
|
+
function parseLimit(value) {
|
|
33807
|
+
if (value === void 0) return void 0;
|
|
33808
|
+
return parseBoundedLogCount(value, "--limit", 1, 50);
|
|
34184
33809
|
}
|
|
34185
|
-
|
|
34186
|
-
const
|
|
34187
|
-
const
|
|
34188
|
-
|
|
34189
|
-
|
|
34190
|
-
|
|
34191
|
-
|
|
34192
|
-
|
|
34193
|
-
|
|
34194
|
-
|
|
34195
|
-
|
|
34196
|
-
renderer.render(parsed);
|
|
34197
|
-
}
|
|
34198
|
-
renderer.flush();
|
|
34199
|
-
};
|
|
34200
|
-
for (; ; ) {
|
|
34201
|
-
const previousSequence = nextSequence;
|
|
34202
|
-
const response = await getEvents(runId, {
|
|
34203
|
-
since: nextSequence
|
|
34204
|
-
});
|
|
34205
|
-
const now = Date.now();
|
|
34206
|
-
const madeSequenceProgress = response.nextSequence > previousSequence;
|
|
34207
|
-
let pageHasResultEvent = false;
|
|
34208
|
-
if (madeSequenceProgress) {
|
|
34209
|
-
for (const event of response.events) {
|
|
34210
|
-
const parsedEvents = normalizer.process(
|
|
34211
|
-
event.eventData,
|
|
34212
|
-
supportedEventFramework(response.framework)
|
|
34213
|
-
);
|
|
34214
|
-
for (const parsed of parsedEvents) {
|
|
34215
|
-
renderer.render(parsed);
|
|
34216
|
-
if (parsed.type === "result") {
|
|
34217
|
-
pageHasResultEvent = true;
|
|
34218
|
-
}
|
|
34219
|
-
}
|
|
34220
|
-
}
|
|
33810
|
+
function renderResults(response) {
|
|
33811
|
+
const grouped = /* @__PURE__ */ new Map();
|
|
33812
|
+
for (const result of response.results) {
|
|
33813
|
+
const existing = grouped.get(result.runId);
|
|
33814
|
+
if (existing) {
|
|
33815
|
+
existing.results.push(result);
|
|
33816
|
+
} else {
|
|
33817
|
+
grouped.set(result.runId, {
|
|
33818
|
+
agentName: result.agentName,
|
|
33819
|
+
results: [result]
|
|
33820
|
+
});
|
|
34221
33821
|
}
|
|
34222
|
-
|
|
34223
|
-
|
|
34224
|
-
|
|
34225
|
-
|
|
34226
|
-
|
|
33822
|
+
}
|
|
33823
|
+
let isFirstGroup = true;
|
|
33824
|
+
for (const [runId, group] of grouped) {
|
|
33825
|
+
if (!isFirstGroup) {
|
|
33826
|
+
console.log();
|
|
34227
33827
|
}
|
|
34228
|
-
|
|
34229
|
-
|
|
34230
|
-
|
|
34231
|
-
|
|
34232
|
-
now
|
|
33828
|
+
isFirstGroup = false;
|
|
33829
|
+
const firstTimestamp = group.results[0].matchedEvent.createdAt;
|
|
33830
|
+
console.log(
|
|
33831
|
+
source_default.bold(formatRunHeader(runId, group.agentName, firstTimestamp))
|
|
34233
33832
|
);
|
|
34234
|
-
|
|
34235
|
-
|
|
34236
|
-
|
|
34237
|
-
|
|
34238
|
-
|
|
34239
|
-
|
|
34240
|
-
|
|
34241
|
-
|
|
34242
|
-
|
|
34243
|
-
|
|
34244
|
-
|
|
34245
|
-
|
|
34246
|
-
|
|
34247
|
-
|
|
34248
|
-
|
|
34249
|
-
|
|
34250
|
-
|
|
33833
|
+
for (const result of group.results) {
|
|
33834
|
+
const renderer = new EventRenderer({
|
|
33835
|
+
showTimestamp: true,
|
|
33836
|
+
verbose: false
|
|
33837
|
+
});
|
|
33838
|
+
const normalizer = new EventStreamNormalizer();
|
|
33839
|
+
for (const event of result.contextBefore) {
|
|
33840
|
+
renderSearchEvent(event, result.framework, renderer, normalizer);
|
|
33841
|
+
}
|
|
33842
|
+
renderSearchEvent(
|
|
33843
|
+
result.matchedEvent,
|
|
33844
|
+
result.framework,
|
|
33845
|
+
renderer,
|
|
33846
|
+
normalizer
|
|
33847
|
+
);
|
|
33848
|
+
for (const event of result.contextAfter) {
|
|
33849
|
+
renderSearchEvent(event, result.framework, renderer, normalizer);
|
|
33850
|
+
}
|
|
33851
|
+
flushSearchRenderer(renderer, normalizer);
|
|
34251
33852
|
}
|
|
34252
|
-
|
|
34253
|
-
|
|
33853
|
+
}
|
|
33854
|
+
if (response.hasMore) {
|
|
33855
|
+
console.log();
|
|
33856
|
+
console.log(
|
|
33857
|
+
source_default.dim(
|
|
33858
|
+
` Showing first ${response.results.length} matches. Use --limit to see more.`
|
|
33859
|
+
)
|
|
34254
33860
|
);
|
|
34255
33861
|
}
|
|
34256
33862
|
}
|
|
34257
|
-
function
|
|
34258
|
-
const
|
|
34259
|
-
|
|
34260
|
-
|
|
34261
|
-
|
|
34262
|
-
|
|
34263
|
-
console.log(" Continue with session (latest conversation and artifact):");
|
|
34264
|
-
console.log(
|
|
34265
|
-
source_default.cyan(` vm0 run continue ${sessionId} "your next prompt"`)
|
|
33863
|
+
async function runLogsSearch(keyword, options) {
|
|
33864
|
+
const searchKeyword = parseSearchQuery(keyword, "Keyword");
|
|
33865
|
+
const { before, after } = parseContextOptions(options);
|
|
33866
|
+
if (options.agentId !== void 0 && !isUuid(options.agentId)) {
|
|
33867
|
+
console.error(
|
|
33868
|
+
source_default.red(`\u2717 Invalid agent ID "${options.agentId}" \u2014 expected a UUID`)
|
|
34266
33869
|
);
|
|
33870
|
+
console.error(source_default.dim(" Run: zero logs list to find agent IDs"));
|
|
33871
|
+
process.exit(1);
|
|
34267
33872
|
}
|
|
34268
|
-
if (
|
|
34269
|
-
console.
|
|
34270
|
-
|
|
33873
|
+
if (options.run !== void 0 && !isUuid(options.run)) {
|
|
33874
|
+
console.error(
|
|
33875
|
+
source_default.red(`\u2717 Invalid run ID "${options.run}" \u2014 expected a UUID`)
|
|
34271
33876
|
);
|
|
33877
|
+
console.error(source_default.dim(" Run: zero logs list to find run IDs"));
|
|
33878
|
+
process.exit(1);
|
|
33879
|
+
}
|
|
33880
|
+
const since = options.since !== void 0 ? parseTime(options.since) : Date.now() - SEVEN_DAYS_MS;
|
|
33881
|
+
const limit = parseLimit(options.limit);
|
|
33882
|
+
const response = await searchZeroLogs({
|
|
33883
|
+
keyword: searchKeyword,
|
|
33884
|
+
agentId: options.agentId,
|
|
33885
|
+
runId: options.run,
|
|
33886
|
+
since,
|
|
33887
|
+
limit,
|
|
33888
|
+
before,
|
|
33889
|
+
after
|
|
33890
|
+
});
|
|
33891
|
+
if (response.results.length === 0) {
|
|
33892
|
+
console.log(source_default.dim("No matches found"));
|
|
34272
33893
|
console.log(
|
|
34273
|
-
source_default.
|
|
33894
|
+
source_default.dim(
|
|
33895
|
+
" Try a broader search with --since 30d or a different keyword"
|
|
33896
|
+
)
|
|
34274
33897
|
);
|
|
33898
|
+
return;
|
|
34275
33899
|
}
|
|
33900
|
+
renderResults(response);
|
|
34276
33901
|
}
|
|
34277
|
-
|
|
34278
|
-
|
|
34279
|
-
|
|
34280
|
-
|
|
34281
|
-
|
|
34282
|
-
|
|
34283
|
-
|
|
34284
|
-
|
|
34285
|
-
|
|
34286
|
-
|
|
34287
|
-
|
|
34288
|
-
|
|
34289
|
-
if (timestamp2 !== void 0) {
|
|
34290
|
-
return timestamp2;
|
|
34291
|
-
}
|
|
34292
|
-
}
|
|
34293
|
-
if (/^\d+$/.test(timeStr)) {
|
|
34294
|
-
const rawTimestamp = Number(timeStr);
|
|
34295
|
-
const timestamp2 = rawTimestamp < 1e10 ? rawTimestamp * 1e3 : rawTimestamp;
|
|
34296
|
-
if (isValidTimestamp(timestamp2)) {
|
|
34297
|
-
return timestamp2;
|
|
33902
|
+
var searchCommand = new Command().name("search").description("Search agent events across runs").argument("<keyword>", "Search keyword").option("-A, --after-context <n>", "Show n events after each match").option("-B, --before-context <n>", "Show n events before each match").option("-C, --context <n>", "Show n events before and after each match").option("--agent <id>", "Filter by Zero agent ID").option("--run <id>", "Filter by specific run ID").option("--since <time>", "Search logs since (default: 7d)").option("--limit <n>", "Maximum number of matches (default: 20)").addHelpText(
|
|
33903
|
+
"after",
|
|
33904
|
+
`
|
|
33905
|
+
Examples:
|
|
33906
|
+
zero logs search "error"
|
|
33907
|
+
zero logs search "timeout" --agent 123e4567-e89b-12d3-a456-426614174000 -C 2
|
|
33908
|
+
zero logs search "failed" --since 30d --limit 50`
|
|
33909
|
+
).action(
|
|
33910
|
+
withErrorHandler(
|
|
33911
|
+
async (keyword, options) => {
|
|
33912
|
+
const { agent, ...searchOptions } = options;
|
|
33913
|
+
await runLogsSearch(keyword, { ...searchOptions, agentId: agent });
|
|
34298
33914
|
}
|
|
34299
|
-
|
|
34300
|
-
|
|
34301
|
-
if (timestamp !== void 0) {
|
|
34302
|
-
return timestamp;
|
|
34303
|
-
}
|
|
34304
|
-
throw new Error(
|
|
34305
|
-
`Invalid time format: "${timeStr}". Supported formats: relative (5m, 2h, 1d), ISO 8601 (2024-01-15T10:30:00Z), Unix timestamp`
|
|
34306
|
-
);
|
|
34307
|
-
}
|
|
34308
|
-
function parseIsoTime(timeStr) {
|
|
34309
|
-
const match = ISO_8601_PATTERN.exec(timeStr);
|
|
34310
|
-
if (!match) {
|
|
34311
|
-
return void 0;
|
|
34312
|
-
}
|
|
34313
|
-
const year = Number(match[1]);
|
|
34314
|
-
const month = Number(match[2]);
|
|
34315
|
-
const day = Number(match[3]);
|
|
34316
|
-
const hour = match[4] ? Number(match[4]) : 0;
|
|
34317
|
-
const minute = match[5] ? Number(match[5]) : 0;
|
|
34318
|
-
const second = match[6] ? Number(match[6]) : 0;
|
|
34319
|
-
if (!Number.isInteger(year) || !Number.isInteger(month) || !Number.isInteger(day) || !Number.isInteger(hour) || !Number.isInteger(minute) || !Number.isInteger(second) || month < 1 || month > 12 || day < 1 || day > daysInMonth(year, month) || hour > 23 || minute > 59 || second > 59) {
|
|
34320
|
-
return void 0;
|
|
34321
|
-
}
|
|
34322
|
-
const timestamp = new Date(timeStr).getTime();
|
|
34323
|
-
return isValidTimestamp(timestamp) ? timestamp : void 0;
|
|
34324
|
-
}
|
|
34325
|
-
function daysInMonth(year, month) {
|
|
34326
|
-
if (month === 2) {
|
|
34327
|
-
return isLeapYear(year) ? 29 : 28;
|
|
34328
|
-
}
|
|
34329
|
-
return DAYS_BY_MONTH[month - 1] ?? 0;
|
|
34330
|
-
}
|
|
34331
|
-
function isLeapYear(year) {
|
|
34332
|
-
return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
|
|
34333
|
-
}
|
|
34334
|
-
function parseRelativeTime(value, unit) {
|
|
34335
|
-
if (!Number.isSafeInteger(value)) {
|
|
34336
|
-
return void 0;
|
|
34337
|
-
}
|
|
34338
|
-
const now = Date.now();
|
|
34339
|
-
const multipliers = {
|
|
34340
|
-
s: 1e3,
|
|
34341
|
-
// seconds
|
|
34342
|
-
m: 60 * 1e3,
|
|
34343
|
-
// minutes
|
|
34344
|
-
h: 60 * 60 * 1e3,
|
|
34345
|
-
// hours
|
|
34346
|
-
d: 24 * 60 * 60 * 1e3,
|
|
34347
|
-
// days
|
|
34348
|
-
w: 7 * 24 * 60 * 60 * 1e3
|
|
34349
|
-
// weeks
|
|
34350
|
-
};
|
|
34351
|
-
const multiplier = multipliers[unit];
|
|
34352
|
-
if (!multiplier) {
|
|
34353
|
-
throw new Error(`Unknown time unit: ${unit}`);
|
|
34354
|
-
}
|
|
34355
|
-
const timestamp = now - value * multiplier;
|
|
34356
|
-
return isValidTimestamp(timestamp) ? timestamp : void 0;
|
|
34357
|
-
}
|
|
34358
|
-
function isValidTimestamp(timestamp) {
|
|
34359
|
-
return Number.isSafeInteger(timestamp) && Math.abs(timestamp) <= MAX_DATE_TIMESTAMP_MS;
|
|
34360
|
-
}
|
|
33915
|
+
)
|
|
33916
|
+
);
|
|
34361
33917
|
|
|
34362
33918
|
export {
|
|
33919
|
+
parseTime,
|
|
34363
33920
|
isSupportedFramework,
|
|
34364
33921
|
EventStreamNormalizer,
|
|
34365
33922
|
formatIsoTimestamp,
|
|
34366
33923
|
EventRenderer,
|
|
34367
|
-
|
|
34368
|
-
|
|
34369
|
-
|
|
34370
|
-
|
|
34371
|
-
|
|
34372
|
-
|
|
34373
|
-
|
|
34374
|
-
|
|
34375
|
-
|
|
34376
|
-
parseIdentifier,
|
|
34377
|
-
renderRunCreated,
|
|
34378
|
-
pollEvents,
|
|
34379
|
-
showNextSteps,
|
|
34380
|
-
parseTime
|
|
34381
|
-
};
|
|
34382
|
-
//# sourceMappingURL=chunk-65MTNZ44.js.map
|
|
33924
|
+
parsePositiveLogCount,
|
|
33925
|
+
parseBoundedLogCount,
|
|
33926
|
+
collectLogItems,
|
|
33927
|
+
isUuid,
|
|
33928
|
+
parseSearchQuery,
|
|
33929
|
+
runLogsSearch,
|
|
33930
|
+
searchCommand
|
|
33931
|
+
};
|
|
33932
|
+
//# sourceMappingURL=chunk-6P7XBY46.js.map
|