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