@vm0/cli 9.244.8 → 9.245.1
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-G4K3H6XM.js} +6 -5
- package/{agent-QLXX4WY7.js.map → agent-G4K3H6XM.js.map} +1 -1
- package/{banking-WY3J5BTJ.js → banking-EKOZ3Q5H.js} +4 -3
- package/{banking-WY3J5BTJ.js.map → banking-EKOZ3Q5H.js.map} +1 -1
- package/{chat-L3EFI2XJ.js → chat-LJVPQ6E3.js} +5 -4
- package/{chat-L3EFI2XJ.js.map → chat-LJVPQ6E3.js.map} +1 -1
- package/{chunk-TTP663DN.js → chunk-35SF4MIM.js} +2 -2
- package/{chunk-KMLBXZVR.js → chunk-3AV5UOJI.js} +2 -2
- package/{chunk-43PGP5OI.js → chunk-AKRDZBGF.js} +4 -4
- package/{chunk-JVIFZRZ7.js → chunk-C2X2AMNB.js} +3 -3
- package/{chunk-LHR5Z775.js → chunk-D7RUZAYZ.js} +2 -2
- package/{chunk-MX32FFQR.js → chunk-HFZVT4HJ.js} +60 -506
- package/chunk-HFZVT4HJ.js.map +1 -0
- package/{chunk-65MTNZ44.js → chunk-LNJWRJPF.js} +786 -1217
- package/chunk-LNJWRJPF.js.map +1 -0
- package/{chunk-WCRXAO2G.js → chunk-QO2ZPLKJ.js} +2 -2
- package/chunk-TLZUMBBR.js +678 -0
- package/chunk-TLZUMBBR.js.map +1 -0
- package/{chunk-MA37R4QS.js → chunk-WEEPG6HO.js} +3 -665
- package/chunk-WEEPG6HO.js.map +1 -0
- package/{computer-use-7FYLJXZS.js → computer-use-INB6UBIB.js} +4 -3
- package/{computer-use-7FYLJXZS.js.map → computer-use-INB6UBIB.js.map} +1 -1
- package/{connector-BSBQIFMQ.js → connector-P3EJMWEQ.js} +7 -6
- package/{connector-BSBQIFMQ.js.map → connector-P3EJMWEQ.js.map} +1 -1
- package/{credit-JBFJY5US.js → credit-4HVDTUJU.js} +5 -4
- package/{credit-JBFJY5US.js.map → credit-4HVDTUJU.js.map} +1 -1
- package/{developer-support-RUWSZBFP.js → developer-support-H2WWODQP.js} +4 -3
- package/{developer-support-RUWSZBFP.js.map → developer-support-H2WWODQP.js.map} +1 -1
- package/{doctor-YLD526OE.js → doctor-5J2UDQ7Y.js} +4 -3
- package/{doctor-YLD526OE.js.map → doctor-5J2UDQ7Y.js.map} +1 -1
- package/{generate-5EMJ3PE6.js → generate-ZQSGF4JD.js} +10 -8
- package/{generate-5EMJ3PE6.js.map → generate-ZQSGF4JD.js.map} +1 -1
- package/{github-36XCAIUP.js → github-L7OTQLJ3.js} +4 -3
- package/{github-36XCAIUP.js.map → github-L7OTQLJ3.js.map} +1 -1
- package/{goal-FRXLYRUG.js → goal-OD43U6LO.js} +4 -3
- package/{goal-FRXLYRUG.js.map → goal-OD43U6LO.js.map} +1 -1
- package/{host-X2KS3WTS.js → host-AHDILSME.js} +28 -7
- package/host-AHDILSME.js.map +1 -0
- package/index.js +4 -715
- package/index.js.map +1 -1
- package/{logs-WHQES7BY.js → logs-B5UAWP3H.js} +13 -14
- package/logs-B5UAWP3H.js.map +1 -0
- package/{mail-LOXCIZZN.js → mail-OLFTOSFS.js} +6 -5
- package/{mail-LOXCIZZN.js.map → mail-OLFTOSFS.js.map} +1 -1
- package/{maps-KQWCQLHW.js → maps-5275BTHE.js} +4 -3
- package/{maps-KQWCQLHW.js.map → maps-5275BTHE.js.map} +1 -1
- package/{model-2BBROTMX.js → model-3PJFWIGT.js} +5 -4
- package/{model-2BBROTMX.js.map → model-3PJFWIGT.js.map} +1 -1
- package/{model-provider-BOMTZ6JA.js → model-provider-MFTEUVUR.js} +5 -4
- package/{model-provider-BOMTZ6JA.js.map → model-provider-MFTEUVUR.js.map} +1 -1
- package/{org-SO7ELOV6.js → org-FYW5SKNL.js} +4 -3
- package/{org-SO7ELOV6.js.map → org-FYW5SKNL.js.map} +1 -1
- package/package.json +1 -1
- package/{phone-IYUG3RGY.js → phone-GPEGHEYZ.js} +4 -3
- package/{phone-IYUG3RGY.js.map → phone-GPEGHEYZ.js.map} +1 -1
- package/{preference-TGBWXIP7.js → preference-VZPSASBS.js} +4 -3
- package/{preference-TGBWXIP7.js.map → preference-VZPSASBS.js.map} +1 -1
- package/{resource-EA5OUVG4.js → resource-U2AKCUW6.js} +4 -3
- package/{resource-EA5OUVG4.js.map → resource-U2AKCUW6.js.map} +1 -1
- package/{scrape-2S3B33RA.js → scrape-75TPDRWU.js} +4 -3
- package/{scrape-2S3B33RA.js.map → scrape-75TPDRWU.js.map} +1 -1
- package/{search-LCGK3BJI.js → search-FTR3X5KB.js} +9 -10
- package/search-FTR3X5KB.js.map +1 -0
- package/{secret-M5C54VAT.js → secret-EDHHGJ74.js} +4 -3
- package/{secret-M5C54VAT.js.map → secret-EDHHGJ74.js.map} +1 -1
- package/{slack-FJV2NEOT.js → slack-HMY4W3TP.js} +4 -3
- package/{slack-FJV2NEOT.js.map → slack-HMY4W3TP.js.map} +1 -1
- package/{teams-XBLEN2XV.js → teams-FEBFKEOJ.js} +4 -3
- package/{teams-XBLEN2XV.js.map → teams-FEBFKEOJ.js.map} +1 -1
- package/{telegram-RE6IO7ZT.js → telegram-JXCTBHDN.js} +4 -3
- package/{telegram-RE6IO7ZT.js.map → telegram-JXCTBHDN.js.map} +1 -1
- package/{variable-5MVUR6U4.js → variable-X6MW44CV.js} +4 -3
- package/{variable-5MVUR6U4.js.map → variable-X6MW44CV.js.map} +1 -1
- package/{video-DIVG6CMM.js → video-HKMGD425.js} +6 -4
- package/{video-DIVG6CMM.js.map → video-HKMGD425.js.map} +1 -1
- package/{web-KVZL6WM4.js → web-PQCJRMF2.js} +7 -5
- package/{web-KVZL6WM4.js.map → web-PQCJRMF2.js.map} +1 -1
- package/{web-search-XNJH2FXZ.js → web-search-GE3BRO7E.js} +4 -3
- package/{web-search-XNJH2FXZ.js.map → web-search-GE3BRO7E.js.map} +1 -1
- package/{whoami-NQYYRWEE.js → whoami-FJVWNO4Z.js} +6 -5
- package/{whoami-NQYYRWEE.js.map → whoami-FJVWNO4Z.js.map} +1 -1
- package/{workflow-5CGPRRAY.js → workflow-CM6JMVRA.js} +4 -3
- package/{workflow-5CGPRRAY.js.map → workflow-CM6JMVRA.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-TTP663DN.js.map → chunk-35SF4MIM.js.map} +0 -0
- /package/{chunk-KMLBXZVR.js.map → chunk-3AV5UOJI.js.map} +0 -0
- /package/{chunk-43PGP5OI.js.map → chunk-AKRDZBGF.js.map} +0 -0
- /package/{chunk-JVIFZRZ7.js.map → chunk-C2X2AMNB.js.map} +0 -0
- /package/{chunk-LHR5Z775.js.map → chunk-D7RUZAYZ.js.map} +0 -0
- /package/{chunk-WCRXAO2G.js.map → chunk-QO2ZPLKJ.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-HFZVT4HJ.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-WEEPG6HO.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
|
});
|
|
@@ -11975,6 +11904,20 @@ var testSlackStateResponseSchema = external_exports.object({
|
|
|
11975
11904
|
updatedAt: external_exports.string()
|
|
11976
11905
|
})
|
|
11977
11906
|
),
|
|
11907
|
+
chat_message_queue: external_exports.array(
|
|
11908
|
+
external_exports.object({
|
|
11909
|
+
id: external_exports.string(),
|
|
11910
|
+
chatThreadId: external_exports.string(),
|
|
11911
|
+
chatMessageId: external_exports.string().nullable(),
|
|
11912
|
+
itemType: external_exports.enum([
|
|
11913
|
+
"user_message",
|
|
11914
|
+
"slack_user_message",
|
|
11915
|
+
"workflow_event"
|
|
11916
|
+
]),
|
|
11917
|
+
triggerSource: external_exports.string().nullable(),
|
|
11918
|
+
createdAt: external_exports.string()
|
|
11919
|
+
})
|
|
11920
|
+
),
|
|
11978
11921
|
recent_runs: external_exports.array(
|
|
11979
11922
|
external_exports.object({
|
|
11980
11923
|
id: external_exports.string(),
|
|
@@ -11986,13 +11929,6 @@ var testSlackStateResponseSchema = external_exports.object({
|
|
|
11986
11929
|
promptPreview: external_exports.string().nullable()
|
|
11987
11930
|
})
|
|
11988
11931
|
),
|
|
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
11932
|
org_metadata: external_exports.object({
|
|
11997
11933
|
orgId: external_exports.string(),
|
|
11998
11934
|
defaultAgentId: external_exports.string().nullable(),
|
|
@@ -12024,15 +11960,14 @@ var testSlackStateResponseSchema = external_exports.object({
|
|
|
12024
11960
|
})
|
|
12025
11961
|
)
|
|
12026
11962
|
});
|
|
12027
|
-
var testSlackStateContract =
|
|
11963
|
+
var testSlackStateContract = c29.router({
|
|
12028
11964
|
get: {
|
|
12029
11965
|
method: "GET",
|
|
12030
11966
|
path: "/api/test/slack-state",
|
|
12031
11967
|
query: external_exports.object({
|
|
12032
11968
|
team_id: external_exports.string().optional(),
|
|
12033
11969
|
empty_team_id: external_exports.literal("1").optional(),
|
|
12034
|
-
org_id: external_exports.string().optional()
|
|
12035
|
-
user_id: external_exports.string().optional()
|
|
11970
|
+
org_id: external_exports.string().optional()
|
|
12036
11971
|
}),
|
|
12037
11972
|
responses: {
|
|
12038
11973
|
200: testSlackStateResponseSchema,
|
|
@@ -12070,7 +12005,7 @@ var testSlackStateContract = c26.router({
|
|
|
12070
12005
|
|
|
12071
12006
|
// ../../packages/api-contracts/src/contracts/test-slack-mock.ts
|
|
12072
12007
|
init_esm_shims();
|
|
12073
|
-
var
|
|
12008
|
+
var c30 = initContract();
|
|
12074
12009
|
var slackMockRequestBodySchema = external_exports.record(external_exports.string(), external_exports.unknown()).optional();
|
|
12075
12010
|
var slackMockNotFoundSchema = external_exports.string();
|
|
12076
12011
|
var testSlackMockOkResponseSchema = external_exports.object({
|
|
@@ -12136,7 +12071,7 @@ var testSlackMockUsersInfoResponseSchema = testSlackMockOkResponseSchema.extend(
|
|
|
12136
12071
|
})
|
|
12137
12072
|
})
|
|
12138
12073
|
});
|
|
12139
|
-
var testSlackMockContract =
|
|
12074
|
+
var testSlackMockContract = c30.router({
|
|
12140
12075
|
assistantThreadsSetStatus: {
|
|
12141
12076
|
method: "POST",
|
|
12142
12077
|
path: "/api/test/slack-mock/assistant.threads.setStatus",
|
|
@@ -12241,7 +12176,7 @@ var testSlackMockContract = c27.router({
|
|
|
12241
12176
|
|
|
12242
12177
|
// ../../packages/api-contracts/src/contracts/test-telegram-mock.ts
|
|
12243
12178
|
init_esm_shims();
|
|
12244
|
-
var
|
|
12179
|
+
var c31 = initContract();
|
|
12245
12180
|
var testTelegramMockPathParamsSchema = external_exports.object({
|
|
12246
12181
|
botToken: external_exports.string(),
|
|
12247
12182
|
method: external_exports.string()
|
|
@@ -12254,7 +12189,7 @@ var testTelegramMockErrorResponseSchema = external_exports.object({
|
|
|
12254
12189
|
ok: external_exports.literal(false),
|
|
12255
12190
|
description: external_exports.string()
|
|
12256
12191
|
});
|
|
12257
|
-
var testTelegramMockContract =
|
|
12192
|
+
var testTelegramMockContract = c31.router({
|
|
12258
12193
|
post: {
|
|
12259
12194
|
method: "POST",
|
|
12260
12195
|
path: "/api/test/telegram-mock/:botToken/:method",
|
|
@@ -12270,7 +12205,7 @@ var testTelegramMockContract = c28.router({
|
|
|
12270
12205
|
|
|
12271
12206
|
// ../../packages/api-contracts/src/contracts/test-teams-mock.ts
|
|
12272
12207
|
init_esm_shims();
|
|
12273
|
-
var
|
|
12208
|
+
var c32 = initContract();
|
|
12274
12209
|
var teamsMockBodySchema = external_exports.record(external_exports.string(), external_exports.unknown()).optional();
|
|
12275
12210
|
var teamsMockOkSchema = external_exports.object({ ok: external_exports.literal(true) });
|
|
12276
12211
|
var teamsMockTokenResponseSchema = external_exports.object({
|
|
@@ -12306,7 +12241,7 @@ var testTeamsMockGraphMessagePathParamsSchema = testTeamsMockGraphMessagesPathPa
|
|
|
12306
12241
|
var testTeamsMockGraphUserPathParamsSchema = external_exports.object({
|
|
12307
12242
|
userId: external_exports.string()
|
|
12308
12243
|
});
|
|
12309
|
-
var testTeamsMockContract =
|
|
12244
|
+
var testTeamsMockContract = c32.router({
|
|
12310
12245
|
token: {
|
|
12311
12246
|
method: "POST",
|
|
12312
12247
|
path: "/api/test/teams-mock/token",
|
|
@@ -12415,7 +12350,7 @@ var testTeamsMockContract = c29.router({
|
|
|
12415
12350
|
|
|
12416
12351
|
// ../../packages/api-contracts/src/contracts/test-teams-state.ts
|
|
12417
12352
|
init_esm_shims();
|
|
12418
|
-
var
|
|
12353
|
+
var c33 = initContract();
|
|
12419
12354
|
var testTeamsStateErrorSchema = external_exports.object({
|
|
12420
12355
|
error: external_exports.string()
|
|
12421
12356
|
});
|
|
@@ -12536,7 +12471,7 @@ var testTeamsStateResponseSchema = external_exports.object({
|
|
|
12536
12471
|
})
|
|
12537
12472
|
)
|
|
12538
12473
|
});
|
|
12539
|
-
var testTeamsStateContract =
|
|
12474
|
+
var testTeamsStateContract = c33.router({
|
|
12540
12475
|
get: {
|
|
12541
12476
|
method: "GET",
|
|
12542
12477
|
path: "/api/test/teams-state",
|
|
@@ -12580,7 +12515,7 @@ var testTeamsStateContract = c30.router({
|
|
|
12580
12515
|
|
|
12581
12516
|
// ../../packages/api-contracts/src/contracts/test-telegram-state.ts
|
|
12582
12517
|
init_esm_shims();
|
|
12583
|
-
var
|
|
12518
|
+
var c34 = initContract();
|
|
12584
12519
|
var testTelegramStateQuerySchema = external_exports.object({
|
|
12585
12520
|
bot_id: external_exports.string().optional()
|
|
12586
12521
|
});
|
|
@@ -12656,7 +12591,7 @@ var testTelegramStateSeedResponseSchema = external_exports.object({
|
|
|
12656
12591
|
user_link_id: external_exports.string().nullable(),
|
|
12657
12592
|
default_agent_id: external_exports.string()
|
|
12658
12593
|
});
|
|
12659
|
-
var testTelegramStateContract =
|
|
12594
|
+
var testTelegramStateContract = c34.router({
|
|
12660
12595
|
get: {
|
|
12661
12596
|
method: "GET",
|
|
12662
12597
|
path: "/api/test/telegram-state",
|
|
@@ -12705,7 +12640,7 @@ var testTelegramStateContract = c31.router({
|
|
|
12705
12640
|
|
|
12706
12641
|
// ../../packages/api-contracts/src/contracts/cron.ts
|
|
12707
12642
|
init_esm_shims();
|
|
12708
|
-
var
|
|
12643
|
+
var c35 = initContract();
|
|
12709
12644
|
var cleanupResultSchema = external_exports.object({
|
|
12710
12645
|
runId: external_exports.string(),
|
|
12711
12646
|
sandboxId: external_exports.string().nullable(),
|
|
@@ -12720,7 +12655,7 @@ var cleanupResponseSchema = external_exports.object({
|
|
|
12720
12655
|
exportJobsCleaned: external_exports.number(),
|
|
12721
12656
|
exportJobsStuck: external_exports.number()
|
|
12722
12657
|
});
|
|
12723
|
-
var cronCleanupSandboxesContract =
|
|
12658
|
+
var cronCleanupSandboxesContract = c35.router({
|
|
12724
12659
|
/**
|
|
12725
12660
|
* GET /api/cron/cleanup-sandboxes
|
|
12726
12661
|
* Cron job to cleanup sandboxes that have stopped sending heartbeats
|
|
@@ -12846,6 +12781,11 @@ var cronExecuteWorkflowAutomationsResponseSchema = external_exports.object({
|
|
|
12846
12781
|
executed: external_exports.number(),
|
|
12847
12782
|
skipped: external_exports.number()
|
|
12848
12783
|
});
|
|
12784
|
+
var cronExecuteMorningBriefsResponseSchema = external_exports.object({
|
|
12785
|
+
success: external_exports.literal(true),
|
|
12786
|
+
executed: external_exports.number(),
|
|
12787
|
+
skipped: external_exports.number()
|
|
12788
|
+
});
|
|
12849
12789
|
var cronRenewGmailWatchesResponseSchema = external_exports.object({
|
|
12850
12790
|
success: external_exports.literal(true),
|
|
12851
12791
|
renewed: external_exports.number(),
|
|
@@ -12902,7 +12842,7 @@ var cronAggregateModelStatsResponseSchema = external_exports.object({
|
|
|
12902
12842
|
windowEnd: external_exports.string(),
|
|
12903
12843
|
aggregated: external_exports.number()
|
|
12904
12844
|
});
|
|
12905
|
-
var cronAggregateUsageContract =
|
|
12845
|
+
var cronAggregateUsageContract = c35.router({
|
|
12906
12846
|
aggregate: {
|
|
12907
12847
|
method: "GET",
|
|
12908
12848
|
path: "/api/cron/aggregate-usage",
|
|
@@ -12914,7 +12854,7 @@ var cronAggregateUsageContract = c32.router({
|
|
|
12914
12854
|
summary: "Aggregate daily usage cache"
|
|
12915
12855
|
}
|
|
12916
12856
|
});
|
|
12917
|
-
var cronProcessUsageEventsContract =
|
|
12857
|
+
var cronProcessUsageEventsContract = c35.router({
|
|
12918
12858
|
process: {
|
|
12919
12859
|
method: "GET",
|
|
12920
12860
|
path: "/api/cron/process-usage-events",
|
|
@@ -12926,7 +12866,7 @@ var cronProcessUsageEventsContract = c32.router({
|
|
|
12926
12866
|
summary: "Process pending usage events"
|
|
12927
12867
|
}
|
|
12928
12868
|
});
|
|
12929
|
-
var cronCompactChatThreadSnapshotsContract =
|
|
12869
|
+
var cronCompactChatThreadSnapshotsContract = c35.router({
|
|
12930
12870
|
compact: {
|
|
12931
12871
|
method: "GET",
|
|
12932
12872
|
path: "/api/cron/compact-chat-thread-snapshots",
|
|
@@ -12938,7 +12878,7 @@ var cronCompactChatThreadSnapshotsContract = c32.router({
|
|
|
12938
12878
|
summary: "Compact chat thread snapshots from lifecycle events"
|
|
12939
12879
|
}
|
|
12940
12880
|
});
|
|
12941
|
-
var cronMonitorChatMessageQueueContract =
|
|
12881
|
+
var cronMonitorChatMessageQueueContract = c35.router({
|
|
12942
12882
|
monitor: {
|
|
12943
12883
|
method: "GET",
|
|
12944
12884
|
path: "/api/cron/monitor-chat-message-queue",
|
|
@@ -12951,7 +12891,7 @@ var cronMonitorChatMessageQueueContract = c32.router({
|
|
|
12951
12891
|
summary: "Monitor for orphaned queued chat messages"
|
|
12952
12892
|
}
|
|
12953
12893
|
});
|
|
12954
|
-
var cronReconcileBillingEntitlementsContract =
|
|
12894
|
+
var cronReconcileBillingEntitlementsContract = c35.router({
|
|
12955
12895
|
reconcile: {
|
|
12956
12896
|
method: "GET",
|
|
12957
12897
|
path: "/api/cron/reconcile-billing-entitlements",
|
|
@@ -12963,7 +12903,7 @@ var cronReconcileBillingEntitlementsContract = c32.router({
|
|
|
12963
12903
|
summary: "Reconcile billing entitlements"
|
|
12964
12904
|
}
|
|
12965
12905
|
});
|
|
12966
|
-
var cronTelegramCleanupContract =
|
|
12906
|
+
var cronTelegramCleanupContract = c35.router({
|
|
12967
12907
|
cleanup: {
|
|
12968
12908
|
method: "GET",
|
|
12969
12909
|
path: "/api/cron/telegram-cleanup",
|
|
@@ -12975,7 +12915,7 @@ var cronTelegramCleanupContract = c32.router({
|
|
|
12975
12915
|
summary: "Delete expired Telegram messages"
|
|
12976
12916
|
}
|
|
12977
12917
|
});
|
|
12978
|
-
var cronComputerUseScreenshotCleanupContract =
|
|
12918
|
+
var cronComputerUseScreenshotCleanupContract = c35.router({
|
|
12979
12919
|
cleanup: {
|
|
12980
12920
|
method: "GET",
|
|
12981
12921
|
path: "/api/cron/computer-use-screenshot-cleanup",
|
|
@@ -12987,7 +12927,7 @@ var cronComputerUseScreenshotCleanupContract = c32.router({
|
|
|
12987
12927
|
summary: "Delete expired desktop computer-use screenshots"
|
|
12988
12928
|
}
|
|
12989
12929
|
});
|
|
12990
|
-
var cronArtifactPreviewContract =
|
|
12930
|
+
var cronArtifactPreviewContract = c35.router({
|
|
12991
12931
|
generate: {
|
|
12992
12932
|
method: "GET",
|
|
12993
12933
|
path: "/api/cron/artifact-preview",
|
|
@@ -12999,7 +12939,7 @@ var cronArtifactPreviewContract = c32.router({
|
|
|
12999
12939
|
summary: "Render static preview images for HTML/website artifacts"
|
|
13000
12940
|
}
|
|
13001
12941
|
});
|
|
13002
|
-
var cronDrainEmailOutboxContract =
|
|
12942
|
+
var cronDrainEmailOutboxContract = c35.router({
|
|
13003
12943
|
drain: {
|
|
13004
12944
|
method: "GET",
|
|
13005
12945
|
path: "/api/cron/drain-email-outbox",
|
|
@@ -13011,7 +12951,7 @@ var cronDrainEmailOutboxContract = c32.router({
|
|
|
13011
12951
|
summary: "Drain pending email outbox messages"
|
|
13012
12952
|
}
|
|
13013
12953
|
});
|
|
13014
|
-
var cronRenewGmailWatchesContract =
|
|
12954
|
+
var cronRenewGmailWatchesContract = c35.router({
|
|
13015
12955
|
renew: {
|
|
13016
12956
|
method: "GET",
|
|
13017
12957
|
path: "/api/cron/renew-gmail-watches",
|
|
@@ -13023,7 +12963,7 @@ var cronRenewGmailWatchesContract = c32.router({
|
|
|
13023
12963
|
summary: "Renew Gmail push notification watches"
|
|
13024
12964
|
}
|
|
13025
12965
|
});
|
|
13026
|
-
var cronRenewGoogleCalendarWatchesContract =
|
|
12966
|
+
var cronRenewGoogleCalendarWatchesContract = c35.router({
|
|
13027
12967
|
renew: {
|
|
13028
12968
|
method: "GET",
|
|
13029
12969
|
path: "/api/cron/renew-google-calendar-watches",
|
|
@@ -13035,7 +12975,7 @@ var cronRenewGoogleCalendarWatchesContract = c32.router({
|
|
|
13035
12975
|
summary: "Renew Google Calendar push notification watches"
|
|
13036
12976
|
}
|
|
13037
12977
|
});
|
|
13038
|
-
var cronRenewGoogleWorkspaceEventSubscriptionsContract =
|
|
12978
|
+
var cronRenewGoogleWorkspaceEventSubscriptionsContract = c35.router({
|
|
13039
12979
|
renew: {
|
|
13040
12980
|
method: "GET",
|
|
13041
12981
|
path: "/api/cron/renew-google-workspace-event-subscriptions",
|
|
@@ -13047,7 +12987,7 @@ var cronRenewGoogleWorkspaceEventSubscriptionsContract = c32.router({
|
|
|
13047
12987
|
summary: "Renew Google Workspace Events subscriptions"
|
|
13048
12988
|
}
|
|
13049
12989
|
});
|
|
13050
|
-
var cronSyncSkillsContract =
|
|
12990
|
+
var cronSyncSkillsContract = c35.router({
|
|
13051
12991
|
sync: {
|
|
13052
12992
|
method: "GET",
|
|
13053
12993
|
path: "/api/cron/sync-skills",
|
|
@@ -13059,7 +12999,7 @@ var cronSyncSkillsContract = c32.router({
|
|
|
13059
12999
|
summary: "Sync official skills from the skills repository"
|
|
13060
13000
|
}
|
|
13061
13001
|
});
|
|
13062
|
-
var cronConnectorCatalogContract =
|
|
13002
|
+
var cronConnectorCatalogContract = c35.router({
|
|
13063
13003
|
sync: {
|
|
13064
13004
|
method: "GET",
|
|
13065
13005
|
path: "/api/cron/sync-connector-catalog",
|
|
@@ -13081,7 +13021,7 @@ var cronConnectorCatalogContract = c32.router({
|
|
|
13081
13021
|
summary: "Read connector catalog sync status"
|
|
13082
13022
|
}
|
|
13083
13023
|
});
|
|
13084
|
-
var cronExecuteWorkflowAutomationsContract =
|
|
13024
|
+
var cronExecuteWorkflowAutomationsContract = c35.router({
|
|
13085
13025
|
execute: {
|
|
13086
13026
|
method: "GET",
|
|
13087
13027
|
path: "/api/cron/execute-workflow-automations",
|
|
@@ -13093,7 +13033,19 @@ var cronExecuteWorkflowAutomationsContract = c32.router({
|
|
|
13093
13033
|
summary: "Execute due workflow automations"
|
|
13094
13034
|
}
|
|
13095
13035
|
});
|
|
13096
|
-
var
|
|
13036
|
+
var cronExecuteMorningBriefsContract = c35.router({
|
|
13037
|
+
execute: {
|
|
13038
|
+
method: "GET",
|
|
13039
|
+
path: "/api/cron/execute-morning-briefs",
|
|
13040
|
+
headers: authHeadersSchema,
|
|
13041
|
+
responses: {
|
|
13042
|
+
200: cronExecuteMorningBriefsResponseSchema,
|
|
13043
|
+
401: apiErrorSchema
|
|
13044
|
+
},
|
|
13045
|
+
summary: "Execute due morning briefs"
|
|
13046
|
+
}
|
|
13047
|
+
});
|
|
13048
|
+
var cronAggregateInsightsContract = c35.router({
|
|
13097
13049
|
aggregate: {
|
|
13098
13050
|
method: "GET",
|
|
13099
13051
|
path: "/api/cron/aggregate-insights",
|
|
@@ -13105,7 +13057,7 @@ var cronAggregateInsightsContract = c32.router({
|
|
|
13105
13057
|
summary: "Aggregate daily usage insights"
|
|
13106
13058
|
}
|
|
13107
13059
|
});
|
|
13108
|
-
var cronAggregateModelStatsContract =
|
|
13060
|
+
var cronAggregateModelStatsContract = c35.router({
|
|
13109
13061
|
aggregate: {
|
|
13110
13062
|
method: "GET",
|
|
13111
13063
|
path: "/api/cron/aggregate-model-stats",
|
|
@@ -13120,7 +13072,7 @@ var cronAggregateModelStatsContract = c32.router({
|
|
|
13120
13072
|
summary: "Aggregate hourly model usage statistics"
|
|
13121
13073
|
}
|
|
13122
13074
|
});
|
|
13123
|
-
var cronSummarizeMemoryContract =
|
|
13075
|
+
var cronSummarizeMemoryContract = c35.router({
|
|
13124
13076
|
summarize: {
|
|
13125
13077
|
method: "GET",
|
|
13126
13078
|
path: "/api/cron/summarize-memory",
|
|
@@ -13132,7 +13084,7 @@ var cronSummarizeMemoryContract = c32.router({
|
|
|
13132
13084
|
summary: "Summarize daily memory changes per user"
|
|
13133
13085
|
}
|
|
13134
13086
|
});
|
|
13135
|
-
var cronRefreshStoragePresignedUrlsContract =
|
|
13087
|
+
var cronRefreshStoragePresignedUrlsContract = c35.router({
|
|
13136
13088
|
refresh: {
|
|
13137
13089
|
method: "GET",
|
|
13138
13090
|
path: "/api/cron/refresh-storage-presigned-urls",
|
|
@@ -13145,199 +13097,83 @@ var cronRefreshStoragePresignedUrlsContract = c32.router({
|
|
|
13145
13097
|
}
|
|
13146
13098
|
});
|
|
13147
13099
|
|
|
13148
|
-
// ../../packages/api-contracts/src/contracts/
|
|
13100
|
+
// ../../packages/api-contracts/src/contracts/sessions.ts
|
|
13149
13101
|
init_esm_shims();
|
|
13150
|
-
var
|
|
13151
|
-
var
|
|
13102
|
+
var c36 = initContract();
|
|
13103
|
+
var sessionResponseSchema = external_exports.object({
|
|
13152
13104
|
id: external_exports.string(),
|
|
13153
|
-
|
|
13105
|
+
agentComposeId: external_exports.string(),
|
|
13106
|
+
conversationId: external_exports.string().nullable(),
|
|
13107
|
+
artifactNames: external_exports.array(external_exports.string()),
|
|
13108
|
+
secretNames: external_exports.array(external_exports.string()).nullable(),
|
|
13154
13109
|
createdAt: external_exports.string(),
|
|
13155
13110
|
updatedAt: external_exports.string()
|
|
13156
13111
|
});
|
|
13157
|
-
var
|
|
13112
|
+
var agentComposeSnapshotSchema = external_exports.object({
|
|
13113
|
+
agentComposeVersionId: external_exports.string(),
|
|
13114
|
+
vars: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
13115
|
+
secretNames: external_exports.array(external_exports.string()).optional()
|
|
13116
|
+
});
|
|
13117
|
+
var volumeVersionsSnapshotSchema = external_exports.object({
|
|
13118
|
+
versions: external_exports.record(external_exports.string(), external_exports.string())
|
|
13119
|
+
});
|
|
13120
|
+
var checkpointResponseSchema = external_exports.object({
|
|
13158
13121
|
id: external_exports.string(),
|
|
13159
|
-
|
|
13160
|
-
|
|
13161
|
-
|
|
13122
|
+
runId: external_exports.string(),
|
|
13123
|
+
conversationId: external_exports.string(),
|
|
13124
|
+
agentComposeSnapshot: agentComposeSnapshotSchema,
|
|
13125
|
+
// Checkpoints persist context-artifact arrays, while the GET handler
|
|
13126
|
+
// projects them to this stable name-to-version response map.
|
|
13127
|
+
artifactSnapshots: external_exports.record(external_exports.string(), external_exports.string()).nullable(),
|
|
13128
|
+
volumeVersionsSnapshot: volumeVersionsSnapshotSchema.nullable(),
|
|
13162
13129
|
createdAt: external_exports.string()
|
|
13163
13130
|
});
|
|
13164
|
-
var
|
|
13165
|
-
|
|
13166
|
-
|
|
13167
|
-
|
|
13168
|
-
|
|
13169
|
-
|
|
13170
|
-
responses: {
|
|
13171
|
-
200: v1ThreadSchema,
|
|
13172
|
-
401: apiErrorSchema,
|
|
13173
|
-
403: apiErrorSchema,
|
|
13174
|
-
404: apiErrorSchema
|
|
13175
|
-
},
|
|
13176
|
-
summary: "Get a chat thread"
|
|
13177
|
-
}
|
|
13178
|
-
});
|
|
13179
|
-
var chatThreadV1MessagesContract = c33.router({
|
|
13180
|
-
list: {
|
|
13131
|
+
var sessionsByIdContract = c36.router({
|
|
13132
|
+
/**
|
|
13133
|
+
* GET /api/agent/sessions/:id
|
|
13134
|
+
* Get session by ID
|
|
13135
|
+
*/
|
|
13136
|
+
getById: {
|
|
13181
13137
|
method: "GET",
|
|
13182
|
-
path: "/api/
|
|
13138
|
+
path: "/api/agent/sessions/:id",
|
|
13183
13139
|
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)
|
|
13140
|
+
pathParams: external_exports.object({
|
|
13141
|
+
id: external_exports.string().min(1, "Session ID is required")
|
|
13189
13142
|
}),
|
|
13190
13143
|
responses: {
|
|
13191
|
-
200:
|
|
13144
|
+
200: sessionResponseSchema,
|
|
13192
13145
|
401: apiErrorSchema,
|
|
13193
13146
|
403: apiErrorSchema,
|
|
13194
13147
|
404: apiErrorSchema
|
|
13195
13148
|
},
|
|
13196
|
-
summary: "
|
|
13149
|
+
summary: "Get session by ID"
|
|
13197
13150
|
}
|
|
13198
13151
|
});
|
|
13199
|
-
var
|
|
13200
|
-
|
|
13201
|
-
|
|
13202
|
-
|
|
13152
|
+
var checkpointsByIdContract = c36.router({
|
|
13153
|
+
/**
|
|
13154
|
+
* GET /api/agent/checkpoints/:id
|
|
13155
|
+
* Get checkpoint by ID
|
|
13156
|
+
*/
|
|
13157
|
+
getById: {
|
|
13158
|
+
method: "GET",
|
|
13159
|
+
path: "/api/agent/checkpoints/:id",
|
|
13203
13160
|
headers: authHeadersSchema,
|
|
13204
|
-
|
|
13205
|
-
|
|
13206
|
-
threadId: external_exports.string().uuid()
|
|
13161
|
+
pathParams: external_exports.object({
|
|
13162
|
+
id: external_exports.string().min(1, "Checkpoint ID is required")
|
|
13207
13163
|
}),
|
|
13208
13164
|
responses: {
|
|
13209
|
-
|
|
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,
|
|
13165
|
+
200: checkpointResponseSchema,
|
|
13304
13166
|
401: apiErrorSchema,
|
|
13305
13167
|
403: apiErrorSchema,
|
|
13306
13168
|
404: apiErrorSchema
|
|
13307
13169
|
},
|
|
13308
|
-
summary: "
|
|
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"
|
|
13170
|
+
summary: "Get checkpoint by ID"
|
|
13335
13171
|
}
|
|
13336
13172
|
});
|
|
13337
13173
|
|
|
13338
13174
|
// ../../packages/api-contracts/src/contracts/realtime.ts
|
|
13339
13175
|
init_esm_shims();
|
|
13340
|
-
var
|
|
13176
|
+
var c37 = initContract();
|
|
13341
13177
|
var ablyTokenRequestSchema = external_exports.object({
|
|
13342
13178
|
keyName: external_exports.string(),
|
|
13343
13179
|
ttl: external_exports.number().optional(),
|
|
@@ -13347,7 +13183,7 @@ var ablyTokenRequestSchema = external_exports.object({
|
|
|
13347
13183
|
nonce: external_exports.string(),
|
|
13348
13184
|
mac: external_exports.string()
|
|
13349
13185
|
});
|
|
13350
|
-
var runnerRealtimeTokenContract =
|
|
13186
|
+
var runnerRealtimeTokenContract = c37.router({
|
|
13351
13187
|
/**
|
|
13352
13188
|
* POST /api/runners/realtime/token
|
|
13353
13189
|
* Get an Ably token to subscribe to a runner group's job notification channel
|
|
@@ -13369,7 +13205,7 @@ var runnerRealtimeTokenContract = c36.router({
|
|
|
13369
13205
|
summary: "Get Ably token for runner group job notifications"
|
|
13370
13206
|
}
|
|
13371
13207
|
});
|
|
13372
|
-
var platformRealtimeTokenContract =
|
|
13208
|
+
var platformRealtimeTokenContract = c37.router({
|
|
13373
13209
|
/**
|
|
13374
13210
|
* POST /api/zero/realtime/token
|
|
13375
13211
|
* Get an Ably token to subscribe to the authenticated user's push channel
|
|
@@ -28824,7 +28660,7 @@ var HEX_DIGITS = new Set("0123456789abcdefABCDEF".split(""));
|
|
|
28824
28660
|
|
|
28825
28661
|
// ../../packages/api-contracts/src/contracts/zero-feature-switches.ts
|
|
28826
28662
|
init_esm_shims();
|
|
28827
|
-
var
|
|
28663
|
+
var c38 = initContract();
|
|
28828
28664
|
var featureSwitchesResponseSchema = external_exports.object({
|
|
28829
28665
|
switches: external_exports.record(external_exports.string(), external_exports.boolean()),
|
|
28830
28666
|
effectiveSwitches: external_exports.record(external_exports.string(), external_exports.boolean())
|
|
@@ -28832,7 +28668,7 @@ var featureSwitchesResponseSchema = external_exports.object({
|
|
|
28832
28668
|
var updateFeatureSwitchesRequestSchema = external_exports.object({
|
|
28833
28669
|
switches: external_exports.record(external_exports.string(), external_exports.boolean())
|
|
28834
28670
|
});
|
|
28835
|
-
var zeroFeatureSwitchesContract =
|
|
28671
|
+
var zeroFeatureSwitchesContract = c38.router({
|
|
28836
28672
|
get: {
|
|
28837
28673
|
method: "GET",
|
|
28838
28674
|
path: "/api/zero/feature-switches",
|
|
@@ -28861,7 +28697,7 @@ var zeroFeatureSwitchesContract = c37.router({
|
|
|
28861
28697
|
method: "DELETE",
|
|
28862
28698
|
path: "/api/zero/feature-switches",
|
|
28863
28699
|
headers: authHeadersSchema,
|
|
28864
|
-
body:
|
|
28700
|
+
body: c38.noBody(),
|
|
28865
28701
|
responses: {
|
|
28866
28702
|
200: external_exports.object({ deleted: external_exports.literal(true) }),
|
|
28867
28703
|
401: apiErrorSchema,
|
|
@@ -28873,7 +28709,7 @@ var zeroFeatureSwitchesContract = c37.router({
|
|
|
28873
28709
|
|
|
28874
28710
|
// ../../packages/api-contracts/src/contracts/zero-memory.ts
|
|
28875
28711
|
init_esm_shims();
|
|
28876
|
-
var
|
|
28712
|
+
var c39 = initContract();
|
|
28877
28713
|
var memoryFileSchema = external_exports.object({
|
|
28878
28714
|
path: external_exports.string(),
|
|
28879
28715
|
size: external_exports.number()
|
|
@@ -28891,7 +28727,7 @@ var memoryDetailResponseSchema = external_exports.object({
|
|
|
28891
28727
|
files: external_exports.array(memoryFileSchema),
|
|
28892
28728
|
fileContents: external_exports.array(memoryFileContentSchema)
|
|
28893
28729
|
});
|
|
28894
|
-
var zeroMemoryContract =
|
|
28730
|
+
var zeroMemoryContract = c39.router({
|
|
28895
28731
|
get: {
|
|
28896
28732
|
method: "GET",
|
|
28897
28733
|
path: "/api/zero/memory",
|
|
@@ -28907,7 +28743,7 @@ var zeroMemoryContract = c38.router({
|
|
|
28907
28743
|
|
|
28908
28744
|
// ../../packages/api-contracts/src/contracts/onboarding.ts
|
|
28909
28745
|
init_esm_shims();
|
|
28910
|
-
var
|
|
28746
|
+
var c40 = initContract();
|
|
28911
28747
|
var onboardingStatusResponseSchema = external_exports.object({
|
|
28912
28748
|
needsOnboarding: external_exports.boolean(),
|
|
28913
28749
|
onboardingComplete: external_exports.boolean(),
|
|
@@ -28922,7 +28758,7 @@ var onboardingStatusResponseSchema = external_exports.object({
|
|
|
28922
28758
|
avatarUrl: external_exports.string().optional()
|
|
28923
28759
|
}).nullable()
|
|
28924
28760
|
});
|
|
28925
|
-
var onboardingStatusContract =
|
|
28761
|
+
var onboardingStatusContract = c40.router({
|
|
28926
28762
|
getStatus: {
|
|
28927
28763
|
method: "GET",
|
|
28928
28764
|
path: "/api/zero/onboarding/status",
|
|
@@ -28934,7 +28770,7 @@ var onboardingStatusContract = c39.router({
|
|
|
28934
28770
|
summary: "Get onboarding status for current user"
|
|
28935
28771
|
}
|
|
28936
28772
|
});
|
|
28937
|
-
var onboardingCompleteContract =
|
|
28773
|
+
var onboardingCompleteContract = c40.router({
|
|
28938
28774
|
complete: {
|
|
28939
28775
|
method: "POST",
|
|
28940
28776
|
path: "/api/zero/onboarding/complete",
|
|
@@ -28962,7 +28798,7 @@ var skillFrontmatterSchema = external_exports.object({
|
|
|
28962
28798
|
|
|
28963
28799
|
// ../../packages/api-contracts/src/contracts/zero-codex-device-auth.ts
|
|
28964
28800
|
init_esm_shims();
|
|
28965
|
-
var
|
|
28801
|
+
var c41 = initContract();
|
|
28966
28802
|
var codexDeviceAuthScopeSchema = external_exports.enum(["org", "personal"]);
|
|
28967
28803
|
var codexDeviceAuthStartResponseSchema = external_exports.object({
|
|
28968
28804
|
sessionToken: external_exports.string(),
|
|
@@ -28988,7 +28824,7 @@ var codexDeviceAuthCompleteResponseSchema = external_exports.discriminatedUnion(
|
|
|
28988
28824
|
var codexDeviceAuthCancelResponseSchema = external_exports.object({
|
|
28989
28825
|
status: external_exports.literal("cancelled")
|
|
28990
28826
|
});
|
|
28991
|
-
var zeroCodexDeviceAuthContract =
|
|
28827
|
+
var zeroCodexDeviceAuthContract = c41.router({
|
|
28992
28828
|
start: {
|
|
28993
28829
|
method: "POST",
|
|
28994
28830
|
path: "/api/zero/model-providers/codex/device-auth/sessions",
|
|
@@ -29036,7 +28872,7 @@ var zeroCodexDeviceAuthContract = c40.router({
|
|
|
29036
28872
|
|
|
29037
28873
|
// ../../packages/api-contracts/src/contracts/zero-claude-code-device-auth.ts
|
|
29038
28874
|
init_esm_shims();
|
|
29039
|
-
var
|
|
28875
|
+
var c42 = initContract();
|
|
29040
28876
|
var claudeCodeDeviceAuthScopeSchema = external_exports.enum(["org", "personal"]);
|
|
29041
28877
|
var claudeCodeDeviceAuthStartResponseSchema = external_exports.object({
|
|
29042
28878
|
sessionToken: external_exports.string(),
|
|
@@ -29054,7 +28890,7 @@ var claudeCodeDeviceAuthCompleteResponseSchema = external_exports.object({
|
|
|
29054
28890
|
var claudeCodeDeviceAuthCancelResponseSchema = external_exports.object({
|
|
29055
28891
|
status: external_exports.literal("cancelled")
|
|
29056
28892
|
});
|
|
29057
|
-
var zeroClaudeCodeDeviceAuthContract =
|
|
28893
|
+
var zeroClaudeCodeDeviceAuthContract = c42.router({
|
|
29058
28894
|
start: {
|
|
29059
28895
|
method: "POST",
|
|
29060
28896
|
path: "/api/zero/model-providers/claude-code/device-auth/sessions",
|
|
@@ -29105,12 +28941,12 @@ var zeroClaudeCodeDeviceAuthContract = c41.router({
|
|
|
29105
28941
|
|
|
29106
28942
|
// ../../packages/api-contracts/src/contracts/zero-org-logo.ts
|
|
29107
28943
|
init_esm_shims();
|
|
29108
|
-
var
|
|
28944
|
+
var c43 = initContract();
|
|
29109
28945
|
var zeroOrgLogoResponseSchema = external_exports.object({
|
|
29110
28946
|
logoUrl: external_exports.string().nullable(),
|
|
29111
28947
|
hasImage: external_exports.boolean()
|
|
29112
28948
|
});
|
|
29113
|
-
var zeroOrgLogoContract =
|
|
28949
|
+
var zeroOrgLogoContract = c43.router({
|
|
29114
28950
|
get: {
|
|
29115
28951
|
method: "GET",
|
|
29116
28952
|
path: "/api/zero/org/logo",
|
|
@@ -29128,7 +28964,7 @@ var zeroOrgLogoContract = c42.router({
|
|
|
29128
28964
|
path: "/api/zero/org/logo",
|
|
29129
28965
|
headers: authHeadersSchema,
|
|
29130
28966
|
contentType: "multipart/form-data",
|
|
29131
|
-
body:
|
|
28967
|
+
body: c43.type(),
|
|
29132
28968
|
responses: {
|
|
29133
28969
|
200: zeroOrgLogoResponseSchema,
|
|
29134
28970
|
400: apiErrorSchema,
|
|
@@ -29155,8 +28991,8 @@ var zeroOrgLogoContract = c42.router({
|
|
|
29155
28991
|
|
|
29156
28992
|
// ../../packages/api-contracts/src/contracts/zero-composes.ts
|
|
29157
28993
|
init_esm_shims();
|
|
29158
|
-
var
|
|
29159
|
-
var zeroComposesListContract =
|
|
28994
|
+
var c44 = initContract();
|
|
28995
|
+
var zeroComposesListContract = c44.router({
|
|
29160
28996
|
list: {
|
|
29161
28997
|
method: "GET",
|
|
29162
28998
|
path: "/api/zero/composes/list",
|
|
@@ -29176,14 +29012,14 @@ var zeroComposesListContract = c43.router({
|
|
|
29176
29012
|
|
|
29177
29013
|
// ../../packages/api-contracts/src/contracts/zero-personal-model-providers.ts
|
|
29178
29014
|
init_esm_shims();
|
|
29179
|
-
var
|
|
29015
|
+
var c45 = initContract();
|
|
29180
29016
|
var resetPersonalModelProviderSubscriptionUsageRequestSchema = external_exports.object({
|
|
29181
29017
|
idempotencyKey: external_exports.uuid()
|
|
29182
29018
|
});
|
|
29183
29019
|
var resetPersonalModelProviderSubscriptionUsageResponseSchema = external_exports.object({
|
|
29184
29020
|
outcome: external_exports.enum(["reset", "nothingToReset", "noCredit", "alreadyRedeemed"])
|
|
29185
29021
|
});
|
|
29186
|
-
var zeroPersonalModelProvidersMainContract =
|
|
29022
|
+
var zeroPersonalModelProvidersMainContract = c45.router({
|
|
29187
29023
|
list: {
|
|
29188
29024
|
method: "GET",
|
|
29189
29025
|
path: "/api/zero/me/model-providers",
|
|
@@ -29212,7 +29048,7 @@ var zeroPersonalModelProvidersMainContract = c44.router({
|
|
|
29212
29048
|
summary: "Create or update a personal model provider for the requesting user"
|
|
29213
29049
|
}
|
|
29214
29050
|
});
|
|
29215
|
-
var zeroPersonalModelProvidersByTypeContract =
|
|
29051
|
+
var zeroPersonalModelProvidersByTypeContract = c45.router({
|
|
29216
29052
|
delete: {
|
|
29217
29053
|
method: "DELETE",
|
|
29218
29054
|
path: "/api/zero/me/model-providers/:type",
|
|
@@ -29221,7 +29057,7 @@ var zeroPersonalModelProvidersByTypeContract = c44.router({
|
|
|
29221
29057
|
type: modelProviderTypeSchema
|
|
29222
29058
|
}),
|
|
29223
29059
|
responses: {
|
|
29224
|
-
204:
|
|
29060
|
+
204: c45.noBody(),
|
|
29225
29061
|
401: apiErrorSchema,
|
|
29226
29062
|
404: apiErrorSchema,
|
|
29227
29063
|
500: apiErrorSchema
|
|
@@ -29249,7 +29085,7 @@ var zeroPersonalModelProvidersByTypeContract = c44.router({
|
|
|
29249
29085
|
|
|
29250
29086
|
// ../../packages/api-contracts/src/contracts/zero-memory-dev-refresh.ts
|
|
29251
29087
|
init_esm_shims();
|
|
29252
|
-
var
|
|
29088
|
+
var c46 = initContract();
|
|
29253
29089
|
var memoryDevRefreshSkippedResponseSchema = external_exports.object({
|
|
29254
29090
|
skipped: external_exports.literal(true)
|
|
29255
29091
|
});
|
|
@@ -29260,12 +29096,12 @@ var memoryDevRefreshResponseSchema = external_exports.union([
|
|
|
29260
29096
|
memoryDevRefreshSkippedResponseSchema,
|
|
29261
29097
|
memoryDevRefreshSummarizedResponseSchema
|
|
29262
29098
|
]);
|
|
29263
|
-
var zeroMemoryDevRefreshContract =
|
|
29099
|
+
var zeroMemoryDevRefreshContract = c46.router({
|
|
29264
29100
|
refresh: {
|
|
29265
29101
|
method: "POST",
|
|
29266
29102
|
path: "/api/zero/memory/dev-refresh",
|
|
29267
29103
|
headers: authHeadersSchema,
|
|
29268
|
-
body:
|
|
29104
|
+
body: c46.noBody(),
|
|
29269
29105
|
responses: {
|
|
29270
29106
|
200: memoryDevRefreshResponseSchema,
|
|
29271
29107
|
401: apiErrorSchema,
|
|
@@ -29276,69 +29112,6 @@ var zeroMemoryDevRefreshContract = c45.router({
|
|
|
29276
29112
|
}
|
|
29277
29113
|
});
|
|
29278
29114
|
|
|
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
29115
|
// ../../packages/api-contracts/src/contracts/integrations-github.ts
|
|
29343
29116
|
init_esm_shims();
|
|
29344
29117
|
var c47 = initContract();
|
|
@@ -31901,6 +31674,11 @@ var FEATURE_SWITCHES = {
|
|
|
31901
31674
|
description: "Route newly admitted per-user Slack threads through canonical chat ingress.",
|
|
31902
31675
|
enabled: false
|
|
31903
31676
|
},
|
|
31677
|
+
["canonicalSlackWebVisibility" /* CanonicalSlackWebVisibility */]: {
|
|
31678
|
+
maintainer: "lancy@vm0.ai",
|
|
31679
|
+
description: "Show canonical Slack chat threads in Web chat surfaces for enrolled users.",
|
|
31680
|
+
enabled: false
|
|
31681
|
+
},
|
|
31904
31682
|
["zeroScrape" /* ZeroScrape */]: {
|
|
31905
31683
|
maintainer: "liangyou@vm0.ai",
|
|
31906
31684
|
description: "Enable the managed Firecrawl-backed Zero Scrape API and scrape:read ZERO_TOKEN capability.",
|
|
@@ -31925,6 +31703,20 @@ var FEATURE_SWITCHES = {
|
|
|
31925
31703
|
enabled: false,
|
|
31926
31704
|
enabledOrgIdHashes: STAFF_ORG_ID_HASHES
|
|
31927
31705
|
},
|
|
31706
|
+
["morningBrief" /* MorningBrief */]: {
|
|
31707
|
+
maintainer: "ethan@vm0.ai",
|
|
31708
|
+
description: "Enable the daily 7:00 local-time Morning Brief email built from GitHub, Gmail, and Google Calendar.",
|
|
31709
|
+
enabled: false,
|
|
31710
|
+
enabledOrgIdHashes: STAFF_ORG_ID_HASHES,
|
|
31711
|
+
userOverridable: true
|
|
31712
|
+
},
|
|
31713
|
+
["manualMorningBrief" /* ManualMorningBrief */]: {
|
|
31714
|
+
maintainer: "ethan@vm0.ai",
|
|
31715
|
+
description: "Show a Send now button in Settings that triggers a Morning Brief immediately for testing.",
|
|
31716
|
+
enabled: false,
|
|
31717
|
+
enabledOrgIdHashes: STAFF_ORG_ID_HASHES,
|
|
31718
|
+
userOverridable: true
|
|
31719
|
+
},
|
|
31928
31720
|
["notionWorkflowAutomations" /* NotionWorkflowAutomations */]: {
|
|
31929
31721
|
maintainer: "lancy@vm0.ai",
|
|
31930
31722
|
description: "Enable Notion event workflow automations, starting with child pages created under a configured parent page.",
|
|
@@ -31956,12 +31748,6 @@ var FEATURE_SWITCHES = {
|
|
|
31956
31748
|
description: "Enable the Workday HCM and finance connector",
|
|
31957
31749
|
enabled: false
|
|
31958
31750
|
},
|
|
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
31751
|
["codexFastMode" /* CodexFastMode */]: {
|
|
31966
31752
|
maintainer: "lancy@vm0.ai",
|
|
31967
31753
|
description: "Enable Codex fast mode for ChatGPT subscription GPT 5.5 and GPT 5.6 web chat runs.",
|
|
@@ -31984,6 +31770,12 @@ var FEATURE_SWITCHES = {
|
|
|
31984
31770
|
enabled: false,
|
|
31985
31771
|
userOverridable: false
|
|
31986
31772
|
},
|
|
31773
|
+
["structuredPrompt" /* StructuredPrompt */]: {
|
|
31774
|
+
maintainer: "bingjie@vm0.ai",
|
|
31775
|
+
description: "Enable structured user prompt rendering, sends, and drafts while preserving the legacy content fallback.",
|
|
31776
|
+
enabled: false,
|
|
31777
|
+
enabledOrgIdHashes: STAFF_ORG_ID_HASHES
|
|
31778
|
+
},
|
|
31987
31779
|
["zapierConnector" /* ZapierConnector */]: {
|
|
31988
31780
|
maintainer: "yuma@vm0.ai",
|
|
31989
31781
|
description: "Enable the Zapier connector. When disabled, Zapier is hidden from the connectors list and cannot be connected.",
|
|
@@ -33929,454 +33721,231 @@ var EventRenderer = class _EventRenderer {
|
|
|
33929
33721
|
}
|
|
33930
33722
|
};
|
|
33931
33723
|
|
|
33932
|
-
// src/
|
|
33724
|
+
// src/lib/utils/log-pagination.ts
|
|
33933
33725
|
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)`);
|
|
33726
|
+
function parsePositiveLogCount(value, optionName) {
|
|
33727
|
+
const trimmed = value.trim();
|
|
33728
|
+
if (!/^0*[1-9]\d*$/.test(trimmed)) {
|
|
33729
|
+
throw new Error(`Option ${optionName} must be a positive integer`);
|
|
33941
33730
|
}
|
|
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
|
-
);
|
|
33731
|
+
const count = Number(trimmed);
|
|
33732
|
+
if (!Number.isSafeInteger(count)) {
|
|
33733
|
+
throw new Error(`Option ${optionName} must be a positive integer`);
|
|
33951
33734
|
}
|
|
33952
|
-
return
|
|
33735
|
+
return count;
|
|
33953
33736
|
}
|
|
33954
|
-
function
|
|
33955
|
-
const
|
|
33956
|
-
if (
|
|
33957
|
-
throw new Error(
|
|
33958
|
-
`Invalid ${flagLabel} format: ${value} (expected name:/path or name:version:/path)`
|
|
33959
|
-
);
|
|
33960
|
-
}
|
|
33961
|
-
const name = parts[0];
|
|
33962
|
-
const mountPath = parts.length === 3 ? parts[2] : parts[1];
|
|
33963
|
-
if (!name) {
|
|
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 };
|
|
33737
|
+
function parseBoundedLogCount(value, optionName, min, max) {
|
|
33738
|
+
const trimmed = value.trim();
|
|
33739
|
+
if (!/^\d+$/.test(trimmed)) {
|
|
33740
|
+
throw new Error(`${optionName} must be between ${min} and ${max}`);
|
|
33975
33741
|
}
|
|
33976
|
-
const
|
|
33977
|
-
if (!
|
|
33978
|
-
throw new Error(
|
|
33979
|
-
`Invalid ${flagLabel} format: ${value} (version cannot be empty)`
|
|
33980
|
-
);
|
|
33742
|
+
const count = Number(trimmed);
|
|
33743
|
+
if (!Number.isSafeInteger(count) || count < min || count > max) {
|
|
33744
|
+
throw new Error(`${optionName} must be between ${min} and ${max}`);
|
|
33981
33745
|
}
|
|
33982
|
-
return
|
|
33983
|
-
}
|
|
33984
|
-
function collectMounts(value, previous) {
|
|
33985
|
-
return [...previous, parseMount(value, "volume")];
|
|
33986
|
-
}
|
|
33987
|
-
function collectArtifacts(value, previous) {
|
|
33988
|
-
return [...previous, parseMount(value, "artifact")];
|
|
33746
|
+
return count;
|
|
33989
33747
|
}
|
|
33990
|
-
function
|
|
33991
|
-
|
|
33992
|
-
|
|
33993
|
-
|
|
33994
|
-
|
|
33995
|
-
|
|
33996
|
-
|
|
33997
|
-
|
|
33998
|
-
|
|
33999
|
-
|
|
34000
|
-
|
|
34001
|
-
|
|
34002
|
-
|
|
34003
|
-
|
|
34004
|
-
|
|
34005
|
-
|
|
34006
|
-
|
|
34007
|
-
)
|
|
33748
|
+
async function collectLogItems(options) {
|
|
33749
|
+
const collected = [];
|
|
33750
|
+
const seenCursors = /* @__PURE__ */ new Set();
|
|
33751
|
+
let cursor2;
|
|
33752
|
+
while (true) {
|
|
33753
|
+
const requestLimit = options.targetCount === "all" ? options.pageLimit : Math.min(options.pageLimit, options.targetCount - collected.length);
|
|
33754
|
+
const page = await options.fetchPage({
|
|
33755
|
+
sinceTime: options.sinceTime,
|
|
33756
|
+
cursor: cursor2,
|
|
33757
|
+
limit: requestLimit,
|
|
33758
|
+
order: options.order
|
|
33759
|
+
});
|
|
33760
|
+
collected.push(...page.items);
|
|
33761
|
+
if (options.targetCount !== "all" && collected.length >= options.targetCount) {
|
|
33762
|
+
break;
|
|
33763
|
+
}
|
|
33764
|
+
const nextCursor = page.nextCursor ?? null;
|
|
33765
|
+
if (!page.hasMore || !nextCursor || seenCursors.has(nextCursor)) {
|
|
33766
|
+
break;
|
|
33767
|
+
}
|
|
33768
|
+
seenCursors.add(nextCursor);
|
|
33769
|
+
cursor2 = nextCursor;
|
|
34008
33770
|
}
|
|
34009
|
-
|
|
33771
|
+
const entries = options.targetCount === "all" ? collected : collected.slice(0, options.targetCount);
|
|
33772
|
+
return options.order === "desc" ? entries.reverse() : entries;
|
|
34010
33773
|
}
|
|
33774
|
+
|
|
33775
|
+
// src/lib/utils/uuid.ts
|
|
33776
|
+
init_esm_shims();
|
|
34011
33777
|
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(
|
|
33778
|
+
function isUuid(value) {
|
|
33779
|
+
return UUID_PATTERN.test(value);
|
|
34014
33780
|
}
|
|
34015
|
-
|
|
34016
|
-
|
|
34017
|
-
|
|
34018
|
-
|
|
34019
|
-
|
|
34020
|
-
|
|
34021
|
-
|
|
34022
|
-
const grouped = extractAndGroupVariables(composeContent);
|
|
34023
|
-
return grouped.secrets.map((r) => {
|
|
34024
|
-
return r.name;
|
|
34025
|
-
});
|
|
34026
|
-
}
|
|
34027
|
-
function loadValues(cliValues, configNames, envFilePath) {
|
|
34028
|
-
const result = { ...cliValues };
|
|
34029
|
-
const missingNames = configNames.filter((name) => {
|
|
34030
|
-
return !(name in result);
|
|
34031
|
-
});
|
|
34032
|
-
if (missingNames.length > 0) {
|
|
34033
|
-
const envValues = {};
|
|
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);
|
|
33781
|
+
|
|
33782
|
+
// src/lib/utils/search-query.ts
|
|
33783
|
+
init_esm_shims();
|
|
33784
|
+
function parseSearchQuery(value, label) {
|
|
33785
|
+
const trimmed = value.trim();
|
|
33786
|
+
if (!trimmed) {
|
|
33787
|
+
throw new Error(`${label} cannot be empty.`);
|
|
34055
33788
|
}
|
|
34056
|
-
return
|
|
33789
|
+
return trimmed;
|
|
34057
33790
|
}
|
|
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 };
|
|
33791
|
+
|
|
33792
|
+
// src/commands/zero/logs/search.ts
|
|
33793
|
+
init_esm_shims();
|
|
33794
|
+
var SEVEN_DAYS_MS = 7 * 24 * 60 * 60 * 1e3;
|
|
33795
|
+
function supportedSearchFramework(framework) {
|
|
33796
|
+
const normalized = framework ?? void 0;
|
|
33797
|
+
return isSupportedFramework(normalized) ? normalized : void 0;
|
|
34070
33798
|
}
|
|
34071
|
-
function
|
|
34072
|
-
|
|
34073
|
-
|
|
34074
|
-
|
|
34075
|
-
|
|
34076
|
-
|
|
34077
|
-
|
|
34078
|
-
|
|
34079
|
-
} else {
|
|
34080
|
-
EventRenderer.renderRunStarted({
|
|
34081
|
-
runId: response.runId,
|
|
34082
|
-
sandboxId: response.sandboxId
|
|
34083
|
-
});
|
|
33799
|
+
function renderSearchEvent(event, framework, renderer, normalizer) {
|
|
33800
|
+
const parsedEvents = normalizer.process(
|
|
33801
|
+
event.eventData,
|
|
33802
|
+
supportedSearchFramework(framework),
|
|
33803
|
+
new Date(event.createdAt)
|
|
33804
|
+
);
|
|
33805
|
+
for (const parsed of parsedEvents) {
|
|
33806
|
+
renderer.render(parsed);
|
|
34084
33807
|
}
|
|
34085
33808
|
}
|
|
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;
|
|
33809
|
+
function flushSearchRenderer(renderer, normalizer) {
|
|
33810
|
+
for (const parsed of normalizer.flush()) {
|
|
33811
|
+
renderer.render(parsed);
|
|
34133
33812
|
}
|
|
33813
|
+
renderer.flush();
|
|
34134
33814
|
}
|
|
34135
|
-
function
|
|
34136
|
-
|
|
33815
|
+
function formatRunHeader(runId, agentName, timestamp) {
|
|
33816
|
+
const time = formatIsoTimestamp(timestamp);
|
|
33817
|
+
return `\u2500\u2500 Run ${runId} (${agentName}, ${time}) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500`;
|
|
34137
33818
|
}
|
|
34138
|
-
function
|
|
34139
|
-
const
|
|
34140
|
-
|
|
34141
|
-
|
|
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
|
-
);
|
|
33819
|
+
function parseContextOptions(options) {
|
|
33820
|
+
const contextN = options.context !== void 0 ? parseBoundedLogCount(options.context, "--context", 0, 10) : 0;
|
|
33821
|
+
const before = options.beforeContext !== void 0 ? parseBoundedLogCount(options.beforeContext, "--before-context", 0, 10) : contextN;
|
|
33822
|
+
const after = options.afterContext !== void 0 ? parseBoundedLogCount(options.afterContext, "--after-context", 0, 10) : contextN;
|
|
33823
|
+
return { before, after };
|
|
34157
33824
|
}
|
|
34158
|
-
function
|
|
34159
|
-
if (
|
|
34160
|
-
|
|
34161
|
-
return {
|
|
34162
|
-
succeeded: true,
|
|
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 };
|
|
33825
|
+
function parseLimit(value) {
|
|
33826
|
+
if (value === void 0) return void 0;
|
|
33827
|
+
return parseBoundedLogCount(value, "--limit", 1, 50);
|
|
34179
33828
|
}
|
|
34180
|
-
function
|
|
34181
|
-
|
|
34182
|
-
|
|
34183
|
-
|
|
34184
|
-
|
|
34185
|
-
|
|
34186
|
-
|
|
34187
|
-
|
|
34188
|
-
|
|
34189
|
-
|
|
34190
|
-
|
|
34191
|
-
lastProgressAt: 0
|
|
34192
|
-
};
|
|
34193
|
-
let seenResultEvent = false;
|
|
34194
|
-
const flushPendingEvents = () => {
|
|
34195
|
-
for (const parsed of normalizer.flush()) {
|
|
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
|
-
}
|
|
33829
|
+
function renderResults(response) {
|
|
33830
|
+
const grouped = /* @__PURE__ */ new Map();
|
|
33831
|
+
for (const result of response.results) {
|
|
33832
|
+
const existing = grouped.get(result.runId);
|
|
33833
|
+
if (existing) {
|
|
33834
|
+
existing.results.push(result);
|
|
33835
|
+
} else {
|
|
33836
|
+
grouped.set(result.runId, {
|
|
33837
|
+
agentName: result.agentName,
|
|
33838
|
+
results: [result]
|
|
33839
|
+
});
|
|
34221
33840
|
}
|
|
34222
|
-
|
|
34223
|
-
|
|
34224
|
-
|
|
34225
|
-
|
|
34226
|
-
|
|
33841
|
+
}
|
|
33842
|
+
let isFirstGroup = true;
|
|
33843
|
+
for (const [runId, group] of grouped) {
|
|
33844
|
+
if (!isFirstGroup) {
|
|
33845
|
+
console.log();
|
|
34227
33846
|
}
|
|
34228
|
-
|
|
34229
|
-
|
|
34230
|
-
|
|
34231
|
-
|
|
34232
|
-
now
|
|
33847
|
+
isFirstGroup = false;
|
|
33848
|
+
const firstTimestamp = group.results[0].matchedEvent.createdAt;
|
|
33849
|
+
console.log(
|
|
33850
|
+
source_default.bold(formatRunHeader(runId, group.agentName, firstTimestamp))
|
|
34233
33851
|
);
|
|
34234
|
-
|
|
34235
|
-
|
|
34236
|
-
|
|
34237
|
-
|
|
34238
|
-
|
|
34239
|
-
|
|
34240
|
-
|
|
34241
|
-
|
|
34242
|
-
|
|
34243
|
-
|
|
34244
|
-
|
|
34245
|
-
|
|
34246
|
-
|
|
34247
|
-
|
|
34248
|
-
|
|
34249
|
-
|
|
34250
|
-
|
|
33852
|
+
for (const result of group.results) {
|
|
33853
|
+
const renderer = new EventRenderer({
|
|
33854
|
+
showTimestamp: true,
|
|
33855
|
+
verbose: false
|
|
33856
|
+
});
|
|
33857
|
+
const normalizer = new EventStreamNormalizer();
|
|
33858
|
+
for (const event of result.contextBefore) {
|
|
33859
|
+
renderSearchEvent(event, result.framework, renderer, normalizer);
|
|
33860
|
+
}
|
|
33861
|
+
renderSearchEvent(
|
|
33862
|
+
result.matchedEvent,
|
|
33863
|
+
result.framework,
|
|
33864
|
+
renderer,
|
|
33865
|
+
normalizer
|
|
33866
|
+
);
|
|
33867
|
+
for (const event of result.contextAfter) {
|
|
33868
|
+
renderSearchEvent(event, result.framework, renderer, normalizer);
|
|
33869
|
+
}
|
|
33870
|
+
flushSearchRenderer(renderer, normalizer);
|
|
34251
33871
|
}
|
|
34252
|
-
|
|
34253
|
-
|
|
33872
|
+
}
|
|
33873
|
+
if (response.hasMore) {
|
|
33874
|
+
console.log();
|
|
33875
|
+
console.log(
|
|
33876
|
+
source_default.dim(
|
|
33877
|
+
` Showing first ${response.results.length} matches. Use --limit to see more.`
|
|
33878
|
+
)
|
|
34254
33879
|
);
|
|
34255
33880
|
}
|
|
34256
33881
|
}
|
|
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"`)
|
|
33882
|
+
async function runLogsSearch(keyword, options) {
|
|
33883
|
+
const searchKeyword = parseSearchQuery(keyword, "Keyword");
|
|
33884
|
+
const { before, after } = parseContextOptions(options);
|
|
33885
|
+
if (options.agentId !== void 0 && !isUuid(options.agentId)) {
|
|
33886
|
+
console.error(
|
|
33887
|
+
source_default.red(`\u2717 Invalid agent ID "${options.agentId}" \u2014 expected a UUID`)
|
|
34266
33888
|
);
|
|
33889
|
+
console.error(source_default.dim(" Run: zero logs list to find agent IDs"));
|
|
33890
|
+
process.exit(1);
|
|
34267
33891
|
}
|
|
34268
|
-
if (
|
|
34269
|
-
console.
|
|
34270
|
-
|
|
33892
|
+
if (options.run !== void 0 && !isUuid(options.run)) {
|
|
33893
|
+
console.error(
|
|
33894
|
+
source_default.red(`\u2717 Invalid run ID "${options.run}" \u2014 expected a UUID`)
|
|
34271
33895
|
);
|
|
33896
|
+
console.error(source_default.dim(" Run: zero logs list to find run IDs"));
|
|
33897
|
+
process.exit(1);
|
|
33898
|
+
}
|
|
33899
|
+
const since = options.since !== void 0 ? parseTime(options.since) : Date.now() - SEVEN_DAYS_MS;
|
|
33900
|
+
const limit = parseLimit(options.limit);
|
|
33901
|
+
const response = await searchZeroLogs({
|
|
33902
|
+
keyword: searchKeyword,
|
|
33903
|
+
agentId: options.agentId,
|
|
33904
|
+
runId: options.run,
|
|
33905
|
+
since,
|
|
33906
|
+
limit,
|
|
33907
|
+
before,
|
|
33908
|
+
after
|
|
33909
|
+
});
|
|
33910
|
+
if (response.results.length === 0) {
|
|
33911
|
+
console.log(source_default.dim("No matches found"));
|
|
34272
33912
|
console.log(
|
|
34273
|
-
source_default.
|
|
33913
|
+
source_default.dim(
|
|
33914
|
+
" Try a broader search with --since 30d or a different keyword"
|
|
33915
|
+
)
|
|
34274
33916
|
);
|
|
33917
|
+
return;
|
|
34275
33918
|
}
|
|
33919
|
+
renderResults(response);
|
|
34276
33920
|
}
|
|
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;
|
|
33921
|
+
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(
|
|
33922
|
+
"after",
|
|
33923
|
+
`
|
|
33924
|
+
Examples:
|
|
33925
|
+
zero logs search "error"
|
|
33926
|
+
zero logs search "timeout" --agent 123e4567-e89b-12d3-a456-426614174000 -C 2
|
|
33927
|
+
zero logs search "failed" --since 30d --limit 50`
|
|
33928
|
+
).action(
|
|
33929
|
+
withErrorHandler(
|
|
33930
|
+
async (keyword, options) => {
|
|
33931
|
+
const { agent, ...searchOptions } = options;
|
|
33932
|
+
await runLogsSearch(keyword, { ...searchOptions, agentId: agent });
|
|
34298
33933
|
}
|
|
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
|
-
}
|
|
33934
|
+
)
|
|
33935
|
+
);
|
|
34361
33936
|
|
|
34362
33937
|
export {
|
|
33938
|
+
parseTime,
|
|
34363
33939
|
isSupportedFramework,
|
|
34364
33940
|
EventStreamNormalizer,
|
|
34365
33941
|
formatIsoTimestamp,
|
|
34366
33942
|
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
|
|
33943
|
+
parsePositiveLogCount,
|
|
33944
|
+
parseBoundedLogCount,
|
|
33945
|
+
collectLogItems,
|
|
33946
|
+
isUuid,
|
|
33947
|
+
parseSearchQuery,
|
|
33948
|
+
runLogsSearch,
|
|
33949
|
+
searchCommand
|
|
33950
|
+
};
|
|
33951
|
+
//# sourceMappingURL=chunk-LNJWRJPF.js.map
|