openmausbot 0.1.87 → 0.1.89
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/assets/{abnfDiagram-O67JEVCF-BTiuL79F.js → abnfDiagram-O67JEVCF-BwaMaZEm.js} +1 -1
- package/dist/assets/{arc-C88Blc2v.js → arc-Be-8GKxd.js} +1 -1
- package/dist/assets/{architectureDiagram-NJMV4G6O-BZsJIZrb.js → architectureDiagram-NJMV4G6O-Dp_U2Kv1.js} +1 -1
- package/dist/assets/{blockDiagram-BEXU5L5S-CVeMe9Ah.js → blockDiagram-BEXU5L5S-DQjUjYUk.js} +1 -1
- package/dist/assets/{c4Diagram-YGBWAQC7-Cedk3Bhx.js → c4Diagram-YGBWAQC7-Bd3aE4Kc.js} +1 -1
- package/dist/assets/channel-DqY_gMLg.js +1 -0
- package/dist/assets/{chunk-2Q5K7J3B-D-VRqzTB.js → chunk-2Q5K7J3B-BijjTBeJ.js} +1 -1
- package/dist/assets/{chunk-3FUC2YCW-BChov01Y.js → chunk-3FUC2YCW-CMGdwvzW.js} +2 -2
- package/dist/assets/{chunk-5VM5RSS4-C-TfwvHy.js → chunk-5VM5RSS4-0G09BfsZ.js} +1 -1
- package/dist/assets/{chunk-GTNCS2PH-Db7CGj5Y.js → chunk-GTNCS2PH-FOp3vSHe.js} +1 -1
- package/dist/assets/{chunk-GWA4HPMP-CNvIfqKT.js → chunk-GWA4HPMP-Dv-20VIn.js} +1 -1
- package/dist/assets/{chunk-JWPE2WC7-C_bEp5tq.js → chunk-JWPE2WC7-CRgrdFcz.js} +1 -1
- package/dist/assets/{chunk-NETBCI7D-Coi4BOls.js → chunk-NETBCI7D-3hP4f7QB.js} +1 -1
- package/dist/assets/{chunk-WEXAMYUT-CzylEuL3.js → chunk-WEXAMYUT-CG98IjlG.js} +1 -1
- package/dist/assets/{chunk-XXDRQBXY-m7p7ztaD.js → chunk-XXDRQBXY-BrSTC9xG.js} +1 -1
- package/dist/assets/{classDiagram-v2-NBCMYWYE-BMy6o9x2.js → classDiagram-v2-NBCMYWYE-rpQQQDFX.js} +1 -1
- package/dist/assets/{cose-bilkent-JH36ORCC-BDQ__0_J.js → cose-bilkent-JH36ORCC-G6RSafHA.js} +1 -1
- package/dist/assets/{cynefin-OW5HDTMX-Djv4ghUb.js → cynefin-OW5HDTMX-CXjv-IM2.js} +1 -1
- package/dist/assets/{cynefinDiagram-VND7K2PF-BULrlGYH.js → cynefinDiagram-VND7K2PF-Dw07MR9f.js} +1 -1
- package/dist/assets/{dagre-6A5THRUB-D-jrT_hU.js → dagre-6A5THRUB-BwPnlTg2.js} +1 -1
- package/dist/assets/{diagram-22UHCM2B-p2UhQmfL.js → diagram-22UHCM2B-Cm6xcMiz.js} +1 -1
- package/dist/assets/{diagram-3UASUU5V-DHvGWZ7q.js → diagram-3UASUU5V-CDpogPbE.js} +1 -1
- package/dist/assets/{diagram-ATOU4E4O-ChhKDot-.js → diagram-ATOU4E4O-BV8z3Pnc.js} +1 -1
- package/dist/assets/{diagram-CDSNMT55-B-T7A43R.js → diagram-CDSNMT55-CKCQhOOC.js} +1 -1
- package/dist/assets/{diagram-MLGK6HIB-CJm8ENNY.js → diagram-MLGK6HIB-FGvJg69C.js} +1 -1
- package/dist/assets/{diagram-MPIPVDR6-510tlza8.js → diagram-MPIPVDR6-CwATvgnS.js} +1 -1
- package/dist/assets/{ebnfDiagram-ZINNZB2B-PkvRPHel.js → ebnfDiagram-ZINNZB2B-CH_c3SSC.js} +1 -1
- package/dist/assets/{elk-276RUBZZ-BVBVPoX3.js → elk-276RUBZZ-3guZi71R.js} +1 -1
- package/dist/assets/{erDiagram-OPXOYQCR-BgYMVm7L.js → erDiagram-OPXOYQCR-BMHphR2n.js} +1 -1
- package/dist/assets/{flowDiagram-KWPJA3E3-BGqsnc_3.js → flowDiagram-KWPJA3E3-Vm5DkW5x.js} +1 -1
- package/dist/assets/{ganttDiagram-FUAMR5RP-D_-UeReH.js → ganttDiagram-FUAMR5RP-DO-1ct07.js} +1 -1
- package/dist/assets/{gitGraphDiagram-X574FWY7-D0uooONx.js → gitGraphDiagram-X574FWY7-nxeksEIN.js} +1 -1
- package/dist/assets/index-BIMdIbaw.css +1 -0
- package/dist/assets/index-BVPdbq2r.js +583 -0
- package/dist/assets/{index-zRsJERGJ.js → index-Oxk9x45i.js} +1 -1
- package/dist/assets/{infoDiagram-VRGFBTTK-B9e1z77f.js → infoDiagram-VRGFBTTK-Dkcvr0p7.js} +1 -1
- package/dist/assets/{ishikawaDiagram-OU5B5YK6-BB4vNwvD.js → ishikawaDiagram-OU5B5YK6-BwVibkoO.js} +1 -1
- package/dist/assets/{journeyDiagram-ZHPQQLJL-DpkosOTB.js → journeyDiagram-ZHPQQLJL-ByiBZqgG.js} +1 -1
- package/dist/assets/{kanban-definition-PNTS6WVX-DbDP4kUu.js → kanban-definition-PNTS6WVX-qqjgXBF3.js} +1 -1
- package/dist/assets/{linear-DBJGPmjT.js → linear-CtJnKe6A.js} +1 -1
- package/dist/assets/{mermaid.core-DWPRi-ue.js → mermaid.core-BEiDklrY.js} +5 -5
- package/dist/assets/{mindmap-definition-NLK3R4M7-nszBbJmx.js → mindmap-definition-NLK3R4M7-DfIYHia9.js} +1 -1
- package/dist/assets/{pegDiagram-GJSIUBJH-CWykJWu_.js → pegDiagram-GJSIUBJH-CYyRqa1a.js} +1 -1
- package/dist/assets/{pieDiagram-5QR66LMP-g3Da-Vnv.js → pieDiagram-5QR66LMP-hOToy_zH.js} +1 -1
- package/dist/assets/{quadrantDiagram-O4NWA36T-Wzrlpzgh.js → quadrantDiagram-O4NWA36T-DKAsNN9I.js} +1 -1
- package/dist/assets/{railroadDiagram-XR7U4H2S-moHTFMC0.js → railroadDiagram-XR7U4H2S-BSA-d8JU.js} +1 -1
- package/dist/assets/{requirementDiagram-PLB6GJNP-CwfXdFH8.js → requirementDiagram-PLB6GJNP-CSmlvb-p.js} +1 -1
- package/dist/assets/{sankeyDiagram-IPEJSGJF-3ZROYvnq.js → sankeyDiagram-IPEJSGJF-CD5F6fnG.js} +1 -1
- package/dist/assets/{sequenceDiagram-PO4LG4MO-E1TBebP8.js → sequenceDiagram-PO4LG4MO-JUq5sx6d.js} +1 -1
- package/dist/assets/{sizeCapture-INFHLROL-DHKEU5pu.js → sizeCapture-INFHLROL-BjIS-Stk.js} +1 -1
- package/dist/assets/{stateDiagram-v2-GCMORJYK-BguEj09D.js → stateDiagram-v2-GCMORJYK-DklkUxOg.js} +1 -1
- package/dist/assets/{swimlanes-2SLR337P-C7IDYnhd.js → swimlanes-2SLR337P-CsjIU6be.js} +1 -1
- package/dist/assets/swimlanesDiagram-TC7HE7FX-Bk14M0_B.js +8 -0
- package/dist/assets/{timeline-definition-EJHVYXUP-DCW-F5PW.js → timeline-definition-EJHVYXUP-BkFqK7AB.js} +1 -1
- package/dist/assets/{usecaseDiagram-POWQR4AR-xBMFtWYV.js → usecaseDiagram-POWQR4AR-70gJB1EU.js} +1 -1
- package/dist/assets/{vennDiagram-UO4OBE2U-B5nIkuH8.js → vennDiagram-UO4OBE2U-83Tm62dN.js} +1 -1
- package/dist/assets/{wardleyDiagram-VNRHLVJA-DYFAhdbr.js → wardleyDiagram-VNRHLVJA-tTmseoX9.js} +1 -1
- package/dist/assets/{xychartDiagram-PMCCYNJV-DeXwX6Cz.js → xychartDiagram-PMCCYNJV-R1LBA55a.js} +1 -1
- package/dist/index.html +2 -2
- package/dist-server/companion/src/routes.js +8 -1
- package/dist-server/connector-proxy.js +105 -1
- package/dist-server/container-mcp.js +11 -1
- package/dist-server/drivers/agents-proxy.js +277 -22
- package/dist-server/index.js +23722 -20272
- package/dist-server/local-computer-proxy.js +2 -0
- package/dist-server/mcp-gate.js +2 -0
- package/dist-server/mcp-server.js +5 -3
- package/dist-server/message-search.worker.js +52 -0
- package/dist-server/openmausbot.js +755 -404
- package/dist-server/pair-cli.js +755 -404
- package/dist-server/server/admission.js +81 -0
- package/dist-server/server/aside-queue.js +294 -0
- package/dist-server/server/attachments.js +43 -1
- package/dist-server/server/automatic-recovery.js +15 -0
- package/dist-server/server/bot-attachment.js +107 -0
- package/dist-server/server/bot-overview.js +19 -0
- package/dist-server/server/composio.js +297 -1
- package/dist-server/server/config.js +34 -3
- package/dist-server/server/connector-advertisement.js +165 -0
- package/dist-server/server/connector-proxy.js +14 -2
- package/dist-server/server/connector-verdict.js +31 -4
- package/dist-server/server/container-computer.js +70 -0
- package/dist-server/server/contracts.js +32 -0
- package/dist-server/server/drivers/acp/core.js +148 -23
- package/dist-server/server/drivers/acp/cursor.js +3 -7
- package/dist-server/server/drivers/acp/droid.js +4 -7
- package/dist-server/server/drivers/acp/gemini.js +4 -4
- package/dist-server/server/drivers/acp/grok.js +4 -9
- package/dist-server/server/drivers/acp/hermes.js +3 -5
- package/dist-server/server/drivers/acp/opencode-go.js +2 -5
- package/dist-server/server/drivers/acp/qwen.js +12 -15
- package/dist-server/server/drivers/agents-call.js +137 -10
- package/dist-server/server/drivers/agents-catalog.js +100 -6
- package/dist-server/server/drivers/boxagent.js +3 -17
- package/dist-server/server/drivers/claude.js +31 -17
- package/dist-server/server/drivers/codex-catalog.js +14 -6
- package/dist-server/server/drivers/codex-identity.js +2 -1
- package/dist-server/server/drivers/codex-release.js +48 -0
- package/dist-server/server/drivers/codex.js +7 -25
- package/dist-server/server/drivers/openai-chat.js +31 -3
- package/dist-server/server/drivers/pi.js +237 -30
- package/dist-server/server/drivers/prompt-split.js +32 -9
- package/dist-server/server/drivers/session-idle.js +29 -0
- package/dist-server/server/env-path.js +15 -0
- package/dist-server/server/guarded-requests.js +2 -2
- package/dist-server/server/harness-capabilities.js +61 -0
- package/dist-server/server/index.js +1173 -262
- package/dist-server/server/message-db.js +22 -42
- package/dist-server/server/message-file.js +9 -1
- package/dist-server/server/message-search-query.js +43 -0
- package/dist-server/server/message-search-worker.js +80 -0
- package/dist-server/server/message-search.worker.js +21 -0
- package/dist-server/server/model-requests.js +248 -0
- package/dist-server/server/options-card.js +21 -0
- package/dist-server/server/org-library.js +15 -1
- package/dist-server/server/peer-delivery.js +60 -0
- package/dist-server/server/peer-roster.js +57 -0
- package/dist-server/server/presets.js +32 -32
- package/dist-server/server/profile-requests.js +66 -39
- package/dist-server/server/profile-revision.js +9 -1
- package/dist-server/server/profile-versions.js +6 -3
- package/dist-server/server/routine-requests.js +29 -7
- package/dist-server/server/skill-fetch.js +72 -14
- package/dist-server/server/skills.js +1 -0
- package/dist-server/server/store.js +32 -2
- package/dist-server/server/system-prompt.js +37 -2
- package/dist-server/server/team-setup-requests.js +124 -23
- package/dist-server/server/thread-events.js +3 -1
- package/dist-server/server/tightening-requests.js +405 -0
- package/dist-server/server/tts/chatterbox.js +27 -5
- package/dist-server/server/usage-ledger.js +7 -1
- package/dist-server/server/webhooks.js +21 -3
- package/dist-server/server/workspace-backup.js +40 -3
- package/dist-server/server/workspace-backup.worker.js +10 -0
- package/dist-server/shared/ask-question.js +19 -0
- package/dist-server/shared/credential-request.js +5 -1
- package/dist-server/shared/line-diff.js +23 -0
- package/dist-server/shared/model-request.js +1 -0
- package/dist-server/shared/options-card.js +51 -0
- package/dist-server/shared/profile-request.js +5 -4
- package/dist-server/shared/tightening-request.js +87 -0
- package/dist-server/src/lib/composer-attachments.js +42 -3
- package/dist-server/vps-container-mcp.js +11 -1
- package/dist-server/workspace-backup.worker.js +19482 -0
- package/package.json +1 -1
- package/dist/assets/channel-taCNRlUU.js +0 -1
- package/dist/assets/index-BwdMAQ6p.css +0 -1
- package/dist/assets/index-ByJennr7.js +0 -581
- package/dist/assets/swimlanesDiagram-TC7HE7FX-BpEdoB2e.js +0 -8
|
@@ -1,11 +1,113 @@
|
|
|
1
1
|
// server/connector-proxy.ts
|
|
2
2
|
import readline from "node:readline";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
|
+
|
|
5
|
+
// shared/wire.ts
|
|
6
|
+
var CONNECTOR_SLUG_PATTERN = /^[a-z0-9][a-z0-9_-]{0,80}$/;
|
|
7
|
+
var CONNECTOR_TOOL_NAME_PATTERN = /^[A-Z][A-Z0-9_]{0,127}$/;
|
|
8
|
+
|
|
9
|
+
// server/connector-verdict.ts
|
|
10
|
+
function serviceSlugFor(tool) {
|
|
11
|
+
const underscore = tool.indexOf("_");
|
|
12
|
+
if (underscore <= 0) return null;
|
|
13
|
+
return tool.slice(0, underscore).toLowerCase();
|
|
14
|
+
}
|
|
15
|
+
function serviceSlugForCandidates(tool, candidates) {
|
|
16
|
+
let match = null;
|
|
17
|
+
for (const candidate of candidates) {
|
|
18
|
+
if (tool.startsWith(candidate.toUpperCase() + "_") && (match === null || candidate.length > match.length)) {
|
|
19
|
+
match = candidate;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return match;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// server/connector-advertisement.ts
|
|
26
|
+
var CONNECTOR_ALLOWED_TOOLS_ENV = "OMB_CONNECTOR_ALLOWED_TOOLS";
|
|
27
|
+
var CONNECTOR_SERVICE_SLUGS_ENV = "OMB_CONNECTOR_SERVICE_SLUGS";
|
|
28
|
+
var CONNECTOR_ALLOWED_TOOLS_MAX_BYTES = 32 * 1024;
|
|
29
|
+
var CONNECTOR_SERVICE_SLUGS_MAX_BYTES = 32 * 1024;
|
|
30
|
+
var CONNECTOR_META_TOOLS = [
|
|
31
|
+
"COMPOSIO_SEARCH_TOOLS",
|
|
32
|
+
"COMPOSIO_GET_TOOL_SCHEMAS",
|
|
33
|
+
"COMPOSIO_MULTI_EXECUTE_TOOL",
|
|
34
|
+
// Session-level connection meta-tools. COMPOSIO_MANAGE_CONNECTIONS ships
|
|
35
|
+
// in every Composio session; COMPOSIO_WAIT_FOR_CONNECTIONS is opt-in and
|
|
36
|
+
// off by default. They prefix as service "composio", which no grant
|
|
37
|
+
// names, so they ride this list instead of CONNECTION_TOOL_SUFFIXES —
|
|
38
|
+
// connector-proxy intercepts their calls to surface connection cards.
|
|
39
|
+
// The filter only keeps names upstream actually lists, so advertising an
|
|
40
|
+
// opted-out tool changes nothing.
|
|
41
|
+
"COMPOSIO_MANAGE_CONNECTIONS",
|
|
42
|
+
"COMPOSIO_WAIT_FOR_CONNECTIONS"
|
|
43
|
+
];
|
|
44
|
+
var CONNECTION_TOOL_SUFFIXES = ["_MANAGE_CONNECTIONS", "_WAIT_FOR_CONNECTIONS"];
|
|
45
|
+
function parseConnectorAllowedToolsEnv(raw) {
|
|
46
|
+
if (!raw) return null;
|
|
47
|
+
let value;
|
|
48
|
+
try {
|
|
49
|
+
value = JSON.parse(raw);
|
|
50
|
+
} catch {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return null;
|
|
54
|
+
const grants = {};
|
|
55
|
+
for (const [slug, grant] of Object.entries(value)) {
|
|
56
|
+
if (!CONNECTOR_SLUG_PATTERN.test(slug)) return null;
|
|
57
|
+
if (!grant || typeof grant !== "object" || Array.isArray(grant)) return null;
|
|
58
|
+
const tools = grant.tools;
|
|
59
|
+
if (tools === "*") {
|
|
60
|
+
grants[slug] = { tools: "*" };
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
if (!Array.isArray(tools) || tools.length === 0) return null;
|
|
64
|
+
if (!tools.every((tool) => typeof tool === "string" && CONNECTOR_TOOL_NAME_PATTERN.test(tool))) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
grants[slug] = { tools };
|
|
68
|
+
}
|
|
69
|
+
return grants;
|
|
70
|
+
}
|
|
71
|
+
function parseConnectorServiceSlugsEnv(raw) {
|
|
72
|
+
if (!raw) return [];
|
|
73
|
+
let value;
|
|
74
|
+
try {
|
|
75
|
+
value = JSON.parse(raw);
|
|
76
|
+
} catch {
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
if (!Array.isArray(value)) return [];
|
|
80
|
+
return value.every((slug) => typeof slug === "string" && CONNECTOR_SLUG_PATTERN.test(slug)) ? value : [];
|
|
81
|
+
}
|
|
82
|
+
function connectorToolAdvertised(name, grants, candidates = []) {
|
|
83
|
+
if (Object.keys(grants).length > 0 && CONNECTOR_META_TOOLS.includes(name)) return true;
|
|
84
|
+
const service = serviceSlugForCandidates(name, candidates) ?? serviceSlugFor(name);
|
|
85
|
+
const grant = service === null ? void 0 : grants[service];
|
|
86
|
+
if (!grant) return false;
|
|
87
|
+
if (grant.tools === "*") return true;
|
|
88
|
+
if (grant.tools.includes(name)) return true;
|
|
89
|
+
return CONNECTION_TOOL_SUFFIXES.some((suffix) => name.endsWith(suffix));
|
|
90
|
+
}
|
|
91
|
+
function filterToolsListFrame(frame, grants, candidates = []) {
|
|
92
|
+
const result = frame.result;
|
|
93
|
+
if (!result || typeof result !== "object" || Array.isArray(result)) return frame;
|
|
94
|
+
const tools = result.tools;
|
|
95
|
+
if (!Array.isArray(tools)) return frame;
|
|
96
|
+
const kept = tools.filter((tool) => {
|
|
97
|
+
const name = tool && typeof tool === "object" && !Array.isArray(tool) ? tool.name : void 0;
|
|
98
|
+
return typeof name === "string" ? connectorToolAdvertised(name, grants, candidates) : true;
|
|
99
|
+
});
|
|
100
|
+
return { ...frame, result: { ...result, tools: kept } };
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// server/connector-proxy.ts
|
|
4
104
|
var UPSTREAM = process.env.OMB_CONNECTOR_UPSTREAM_URL ?? "";
|
|
5
105
|
var HARNESS = process.env.OMB_HARNESS_URL ?? "http://127.0.0.1:8799";
|
|
6
106
|
var BOT_ID = process.env.OMB_BOT_ID ?? "";
|
|
7
107
|
var THREAD_ID = process.env.OMB_THREAD_ID ?? "";
|
|
8
108
|
var TOKEN = process.env.OMB_CONNECTOR_TOKEN ?? process.env.OMB_COMMS_TOKEN ?? "";
|
|
109
|
+
var ALLOWED_TOOLS = parseConnectorAllowedToolsEnv(process.env[CONNECTOR_ALLOWED_TOOLS_ENV]);
|
|
110
|
+
var SERVICE_SLUGS = parseConnectorServiceSlugsEnv(process.env[CONNECTOR_SERVICE_SLUGS_ENV]);
|
|
9
111
|
var MAX_RESPONSE_BYTES = 20 * 1024 * 1024;
|
|
10
112
|
var INITIALIZE_RELAY_TIMEOUT_MS = 1e3;
|
|
11
113
|
var RELAY_TIMEOUT_MS = 10 * 6e4;
|
|
@@ -176,7 +278,9 @@ async function handle(message) {
|
|
|
176
278
|
}
|
|
177
279
|
try {
|
|
178
280
|
const response = await relay(message);
|
|
179
|
-
if (response && id !== void 0)
|
|
281
|
+
if (response && id !== void 0) {
|
|
282
|
+
send(method === "tools/list" && ALLOWED_TOOLS ? filterToolsListFrame(response, ALLOWED_TOOLS, SERVICE_SLUGS) : response);
|
|
283
|
+
}
|
|
180
284
|
} catch (error) {
|
|
181
285
|
if (id === void 0) return;
|
|
182
286
|
const messageText = error instanceof Error ? error.message : String(error);
|
|
@@ -44,6 +44,8 @@ function knownDirs() {
|
|
|
44
44
|
join(home, ".volta", "bin"),
|
|
45
45
|
join(home, ".bun", "bin"),
|
|
46
46
|
join(home, ".asdf", "shims"),
|
|
47
|
+
join(home, ".local", "share", "mise", "shims"),
|
|
48
|
+
// mise installer
|
|
47
49
|
join(home, ".deno", "bin"),
|
|
48
50
|
join(home, "bin"),
|
|
49
51
|
...nvmBinDirs()
|
|
@@ -15642,7 +15644,7 @@ var MAX_CONCURRENT_BOT_THREADS = 10;
|
|
|
15642
15644
|
var MIN_THREAD_EVENT_LOG_BYTES = 256 * 1024;
|
|
15643
15645
|
var MAX_THREAD_EVENT_LOG_BYTES = 4 * 1024 * 1024 * 1024;
|
|
15644
15646
|
var MIN_LOCAL_VM_MAX_INSTANCES = 1;
|
|
15645
|
-
var MAX_LOCAL_VM_MAX_INSTANCES =
|
|
15647
|
+
var MAX_LOCAL_VM_MAX_INSTANCES = 8;
|
|
15646
15648
|
function isValidSshAlias(value) {
|
|
15647
15649
|
return typeof value === "string" && SSH_ALIAS.test(value);
|
|
15648
15650
|
}
|
|
@@ -15843,6 +15845,13 @@ var defaultModelSelectionSchema = external_exports.object({
|
|
|
15843
15845
|
(selection) => selection.variant === void 0 || selection.effort === void 0,
|
|
15844
15846
|
"choose either a model variant or an effort level"
|
|
15845
15847
|
);
|
|
15848
|
+
var automaticRecoverySchema = external_exports.object({
|
|
15849
|
+
enabled: external_exports.boolean(),
|
|
15850
|
+
backup: defaultModelSelectionSchema.optional()
|
|
15851
|
+
}).strict().refine(
|
|
15852
|
+
(recovery) => !recovery.enabled || recovery.backup !== void 0,
|
|
15853
|
+
{ message: "Choose a backup model before enabling automatic recovery", path: ["backup"] }
|
|
15854
|
+
);
|
|
15846
15855
|
var threadsConfigSchema = external_exports.object({
|
|
15847
15856
|
maxConcurrentPerBot: external_exports.number().int().min(1).max(MAX_CONCURRENT_BOT_THREADS),
|
|
15848
15857
|
/** Cap each per-thread events/ and native/ NDJSON log at this many
|
|
@@ -15871,6 +15880,7 @@ var appConfigSchema = external_exports.object({
|
|
|
15871
15880
|
* addresses or `@domain` entries; admins get every scope, members chat only. */
|
|
15872
15881
|
signIn: external_exports.object({ admins: external_exports.array(external_exports.string().max(320)).max(500).optional(), members: external_exports.array(external_exports.string().max(320)).max(5e3).optional() }).optional(),
|
|
15873
15882
|
defaultModelSelection: defaultModelSelectionSchema.optional(),
|
|
15883
|
+
automaticRecovery: automaticRecoverySchema.optional(),
|
|
15874
15884
|
newBotDefaults: newBotDefaultsSchema.optional(),
|
|
15875
15885
|
newBots: newBotsConfigSchema.optional(),
|
|
15876
15886
|
/** CLI-only launch preferences. Never enable remote access implicitly. */
|