openmausbot 0.1.90 → 0.1.91
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/dist/assets/{abnfDiagram-O67JEVCF-DUyXd0kL.js → abnfDiagram-O67JEVCF-yP-w8pRq.js} +1 -1
- package/dist/assets/{arc-q73qM-At.js → arc-DsivfZEh.js} +1 -1
- package/dist/assets/{architectureDiagram-NJMV4G6O-D33O3Wur.js → architectureDiagram-NJMV4G6O-CILw7lzT.js} +1 -1
- package/dist/assets/{blockDiagram-BEXU5L5S-DLsJeoXC.js → blockDiagram-BEXU5L5S-DEQUV3HF.js} +1 -1
- package/dist/assets/{c4Diagram-YGBWAQC7-DnaljZnu.js → c4Diagram-YGBWAQC7-lSXCZoKA.js} +1 -1
- package/dist/assets/channel-DrfGMu7X.js +1 -0
- package/dist/assets/{chunk-2Q5K7J3B-Da0h2i79.js → chunk-2Q5K7J3B-QCD5bgWP.js} +1 -1
- package/dist/assets/{chunk-3FUC2YCW-CfzHi54f.js → chunk-3FUC2YCW-C5-iZJuL.js} +2 -2
- package/dist/assets/{chunk-5VM5RSS4-LjE4d9Jf.js → chunk-5VM5RSS4-cxsawMpY.js} +1 -1
- package/dist/assets/{chunk-GTNCS2PH-DY-UGmvc.js → chunk-GTNCS2PH-DV8tV8H7.js} +1 -1
- package/dist/assets/{chunk-GWA4HPMP-BqeGhyhP.js → chunk-GWA4HPMP-CJFZyfbW.js} +1 -1
- package/dist/assets/{chunk-JWPE2WC7-BYa9EBAg.js → chunk-JWPE2WC7-BigbMXco.js} +1 -1
- package/dist/assets/{chunk-NETBCI7D-vTrDtWyb.js → chunk-NETBCI7D-oVxTfpDy.js} +1 -1
- package/dist/assets/{chunk-WEXAMYUT-ic5tXadM.js → chunk-WEXAMYUT-CH4BiroW.js} +1 -1
- package/dist/assets/{chunk-XXDRQBXY-DvRCY-c6.js → chunk-XXDRQBXY-KEDa6gax.js} +1 -1
- package/dist/assets/{classDiagram-v2-NBCMYWYE-DVbmgz_L.js → classDiagram-v2-NBCMYWYE-BiPjfqVv.js} +1 -1
- package/dist/assets/{cose-bilkent-JH36ORCC-vdUs2n57.js → cose-bilkent-JH36ORCC-Caxew3OY.js} +1 -1
- package/dist/assets/{cynefin-OW5HDTMX-BvLGlV3U.js → cynefin-OW5HDTMX-B_Pui369.js} +1 -1
- package/dist/assets/{cynefinDiagram-VND7K2PF-C4GcJQDt.js → cynefinDiagram-VND7K2PF-X64ydIhP.js} +1 -1
- package/dist/assets/{dagre-6A5THRUB-BMSaHpt_.js → dagre-6A5THRUB-TqYCI1E1.js} +1 -1
- package/dist/assets/{diagram-22UHCM2B-D5b9UBhC.js → diagram-22UHCM2B-TeOt3rAQ.js} +1 -1
- package/dist/assets/{diagram-3UASUU5V-CIKLlB7Y.js → diagram-3UASUU5V-D70BLhDA.js} +1 -1
- package/dist/assets/{diagram-ATOU4E4O-BzXb-7k7.js → diagram-ATOU4E4O-BbQDLwUC.js} +1 -1
- package/dist/assets/{diagram-CDSNMT55-HsTvJ7uT.js → diagram-CDSNMT55-ChNJZ1u-.js} +1 -1
- package/dist/assets/{diagram-MLGK6HIB-Db9ySNbQ.js → diagram-MLGK6HIB-DMBl2APa.js} +1 -1
- package/dist/assets/{diagram-MPIPVDR6-D6BKbpqY.js → diagram-MPIPVDR6-CEqDchOp.js} +1 -1
- package/dist/assets/{ebnfDiagram-ZINNZB2B-Bq067L0t.js → ebnfDiagram-ZINNZB2B-BVDKRp_-.js} +1 -1
- package/dist/assets/{elk-276RUBZZ-DhaD7fNJ.js → elk-276RUBZZ-CRkofO9B.js} +1 -1
- package/dist/assets/{erDiagram-OPXOYQCR-fwIhfz36.js → erDiagram-OPXOYQCR-DruOMh5e.js} +1 -1
- package/dist/assets/{flowDiagram-KWPJA3E3-DygIyu0V.js → flowDiagram-KWPJA3E3-8GMQeB7t.js} +1 -1
- package/dist/assets/{ganttDiagram-FUAMR5RP-DPYfSO96.js → ganttDiagram-FUAMR5RP-ORE9jcsM.js} +1 -1
- package/dist/assets/{gitGraphDiagram-X574FWY7-DhkHeCle.js → gitGraphDiagram-X574FWY7-BmsedsWh.js} +1 -1
- package/dist/assets/index-BlnCEcU6.js +588 -0
- package/dist/assets/{index-G1PHKGyh.js → index-DKNEM8Q6.js} +1 -1
- package/dist/assets/index-DVxjOvID.css +1 -0
- package/dist/assets/{infoDiagram-VRGFBTTK-DstBLxME.js → infoDiagram-VRGFBTTK-E_p7AooJ.js} +1 -1
- package/dist/assets/{ishikawaDiagram-OU5B5YK6-CrIsGgch.js → ishikawaDiagram-OU5B5YK6-Y-B2mKda.js} +1 -1
- package/dist/assets/{journeyDiagram-ZHPQQLJL-CYypGDbB.js → journeyDiagram-ZHPQQLJL-eA8RELcK.js} +1 -1
- package/dist/assets/{kanban-definition-PNTS6WVX-DGjPt8E_.js → kanban-definition-PNTS6WVX-DqIL2e8e.js} +1 -1
- package/dist/assets/{linear-Dwc3Hrru.js → linear-yC_29R6e.js} +1 -1
- package/dist/assets/{mermaid.core-Dc4OePBL.js → mermaid.core-VhEMkSND.js} +5 -5
- package/dist/assets/{mindmap-definition-NLK3R4M7-DV-vepj-.js → mindmap-definition-NLK3R4M7-oJ7kyQZy.js} +1 -1
- package/dist/assets/{pegDiagram-GJSIUBJH-lx5Kj-n5.js → pegDiagram-GJSIUBJH-BmfYcY0O.js} +1 -1
- package/dist/assets/{pieDiagram-5QR66LMP-Bq7Vmm15.js → pieDiagram-5QR66LMP-DKvgP7w9.js} +1 -1
- package/dist/assets/{quadrantDiagram-O4NWA36T-DeqeqOBj.js → quadrantDiagram-O4NWA36T-BEKL3W0L.js} +1 -1
- package/dist/assets/{railroadDiagram-XR7U4H2S-CXwRQzSC.js → railroadDiagram-XR7U4H2S-BEsiqR5s.js} +1 -1
- package/dist/assets/{requirementDiagram-PLB6GJNP-8tAeoB88.js → requirementDiagram-PLB6GJNP-DWBcWvAP.js} +1 -1
- package/dist/assets/{sankeyDiagram-IPEJSGJF-BG5zjGWU.js → sankeyDiagram-IPEJSGJF-rpZ2_O4s.js} +1 -1
- package/dist/assets/{sequenceDiagram-PO4LG4MO-DKF3iLcw.js → sequenceDiagram-PO4LG4MO-B99HQdJR.js} +1 -1
- package/dist/assets/{sizeCapture-INFHLROL-B-y1qUgT.js → sizeCapture-INFHLROL-BjN0qT5T.js} +1 -1
- package/dist/assets/{stateDiagram-v2-GCMORJYK-MkzPgxAc.js → stateDiagram-v2-GCMORJYK-BbsVgGsC.js} +1 -1
- package/dist/assets/{swimlanes-2SLR337P-DnbaOEwH.js → swimlanes-2SLR337P-DG3gKkeR.js} +1 -1
- package/dist/assets/swimlanesDiagram-TC7HE7FX-BCZhxl7e.js +8 -0
- package/dist/assets/{timeline-definition-EJHVYXUP-Bb4xG_Bt.js → timeline-definition-EJHVYXUP-BTHOdtF_.js} +1 -1
- package/dist/assets/{usecaseDiagram-POWQR4AR-JgkR9pFf.js → usecaseDiagram-POWQR4AR-acLSLFwc.js} +1 -1
- package/dist/assets/{vennDiagram-UO4OBE2U-CIPIrAYe.js → vennDiagram-UO4OBE2U-C5JzNX9G.js} +1 -1
- package/dist/assets/{wardleyDiagram-VNRHLVJA-BjCLuUvJ.js → wardleyDiagram-VNRHLVJA-DL1-PrR_.js} +1 -1
- package/dist/assets/{xychartDiagram-PMCCYNJV-DKgiaYxT.js → xychartDiagram-PMCCYNJV-Bvr1477p.js} +1 -1
- package/dist/index.html +2 -2
- package/dist-server/cloud-home-start.js +18 -3
- package/dist-server/container-mcp.js +84 -32
- package/dist-server/drivers/agents-proxy.js +11 -0
- package/dist-server/index.js +25183 -23580
- package/dist-server/openmausbot.js +313 -159
- package/dist-server/pair-cli.js +313 -159
- package/dist-server/server/boat.js +66 -21
- package/dist-server/server/bot-overview.js +7 -4
- package/dist-server/server/cloud-home-start.js +23 -5
- package/dist-server/server/cloud-home.js +25 -2
- package/dist-server/server/cloud-lending.js +103 -0
- package/dist-server/server/cloud-move-http.js +268 -0
- package/dist-server/server/cloud-move.js +418 -0
- package/dist-server/server/config.js +42 -4
- package/dist-server/server/decider/index.js +238 -0
- package/dist-server/server/decider/jev.js +183 -0
- package/dist-server/server/decider/log.js +62 -0
- package/dist-server/server/decider/relay.js +52 -0
- package/dist-server/server/decider/room-routing.js +88 -0
- package/dist-server/server/decider/types.js +5 -0
- package/dist-server/server/drivers/agents-catalog.js +16 -0
- package/dist-server/server/drivers/boatagent.js +20 -12
- package/dist-server/server/drivers/claude.js +1 -0
- package/dist-server/server/group-goal-run.js +6 -4
- package/dist-server/server/harness-capabilities.js +2 -0
- package/dist-server/server/included-services.js +70 -0
- package/dist-server/server/index.js +438 -102
- package/dist-server/server/model-context-window.js +4 -4
- package/dist-server/server/package-export.js +17 -10
- package/dist-server/server/package-import.js +6 -3
- package/dist-server/server/package-parts.js +3 -1
- package/dist-server/server/request-auth.js +2 -0
- package/dist-server/server/routes/decider.js +19 -0
- package/dist-server/server/shared-computers.js +116 -30
- package/dist-server/server/store.js +17 -2
- package/dist-server/server/surface.js +13 -0
- package/dist-server/server/system-prompt.js +11 -0
- package/dist-server/server/team-backup.js +6 -2
- package/dist-server/server/team-manifest.js +11 -3
- package/dist-server/server/tts/elevenlabs.js +11 -6
- package/dist-server/server/tts/index.js +17 -10
- package/dist-server/server/workspace-backup-policy.js +22 -3
- package/dist-server/server/workspace-backup.js +25 -8
- package/dist-server/shared/cloud-home.js +4 -0
- package/dist-server/shared/package-format.js +30 -4
- package/dist-server/shared/team-backup.js +20 -3
- package/dist-server/vps-container-mcp.js +84 -32
- package/dist-server/workspace-backup.worker.js +113 -31
- package/package.json +1 -1
- package/dist/assets/channel-BCuyHjFV.js +0 -1
- package/dist/assets/index-CRvo-DS2.css +0 -1
- package/dist/assets/index-CWYGlA63.js +0 -588
- package/dist/assets/swimlanesDiagram-TC7HE7FX-BZQ07DGE.js +0 -8
|
@@ -119,7 +119,7 @@ function probeLoginShellPath() {
|
|
|
119
119
|
|
|
120
120
|
// server/config.ts
|
|
121
121
|
import { homedir as homedir2 } from "node:os";
|
|
122
|
-
import { join as
|
|
122
|
+
import { join as join3 } from "node:path";
|
|
123
123
|
|
|
124
124
|
// node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js
|
|
125
125
|
var external_exports = {};
|
|
@@ -15639,6 +15639,72 @@ var remoteMutationSchema = remoteEntrySchema.extend({
|
|
|
15639
15639
|
var CLOUD_SEAT_IDLE_STOP_MS = 5 * 6e4;
|
|
15640
15640
|
var CLOUD_SEAT_SLEEP_RETRY_MAX_MS = 10 * 6e4;
|
|
15641
15641
|
|
|
15642
|
+
// server/proxy-paths.ts
|
|
15643
|
+
import { existsSync as existsSync2 } from "node:fs";
|
|
15644
|
+
import { dirname as dirname2, join as join2 } from "node:path";
|
|
15645
|
+
import { fileURLToPath } from "node:url";
|
|
15646
|
+
var SERVER_ROOT = dirname2(fileURLToPath(import.meta.url));
|
|
15647
|
+
function resolveProxy(relative) {
|
|
15648
|
+
const source = join2(SERVER_ROOT, `${relative}.ts`);
|
|
15649
|
+
return existsSync2(source) ? source : join2(SERVER_ROOT, `${relative}.js`);
|
|
15650
|
+
}
|
|
15651
|
+
var SPAWNED_PROXIES = {
|
|
15652
|
+
browser: resolveProxy("browser-proxy"),
|
|
15653
|
+
localComputer: resolveProxy("local-computer-proxy"),
|
|
15654
|
+
permission: resolveProxy("permission-proxy"),
|
|
15655
|
+
containerMcp: resolveProxy("container-mcp"),
|
|
15656
|
+
vpsContainerMcp: resolveProxy("vps-container-mcp"),
|
|
15657
|
+
agents: resolveProxy("drivers/agents-proxy"),
|
|
15658
|
+
dweb: resolveProxy("drivers/dweb-proxy"),
|
|
15659
|
+
connectors: resolveProxy("connector-proxy"),
|
|
15660
|
+
mcpGate: resolveProxy("mcp-gate"),
|
|
15661
|
+
phone: resolveProxy("drivers/phone-proxy"),
|
|
15662
|
+
hook: resolveProxy("hooks/omb-hook"),
|
|
15663
|
+
// Loaded by the external `pi` process via `-e`, not by this server — but
|
|
15664
|
+
// resolved through the same single source of truth so the packaged layout
|
|
15665
|
+
// check can assert it ships.
|
|
15666
|
+
piMcpExtension: resolveProxy("drivers/pi-mcp-extension")
|
|
15667
|
+
};
|
|
15668
|
+
|
|
15669
|
+
// server/enterprise.ts
|
|
15670
|
+
var layerSchema = external_exports.object({
|
|
15671
|
+
customer: external_exports.string().min(1),
|
|
15672
|
+
features: external_exports.array(external_exports.string().min(1)),
|
|
15673
|
+
expiresAt: external_exports.string().nullable()
|
|
15674
|
+
});
|
|
15675
|
+
var DAY_MS = 24 * 60 * 6e4;
|
|
15676
|
+
|
|
15677
|
+
// server/sessions.ts
|
|
15678
|
+
var PAIRING_CODE_TTL_MS = 5 * 6e4;
|
|
15679
|
+
function daysMs(value, fallbackDays) {
|
|
15680
|
+
const days = Number(value);
|
|
15681
|
+
const ok = Number.isInteger(days) && days >= 1 && days <= 3650;
|
|
15682
|
+
return (ok ? days : fallbackDays) * 24 * 60 * 6e4;
|
|
15683
|
+
}
|
|
15684
|
+
var SESSION_TTL_MS = daysMs(process.env.OMB_SESSION_TTL_DAYS, 30);
|
|
15685
|
+
var SESSION_MAX_AGE_MS = daysMs(process.env.OMB_SESSION_MAX_DAYS, 180);
|
|
15686
|
+
var SESSION_RENEW_WHEN_LEFT_MS = SESSION_TTL_MS / 2;
|
|
15687
|
+
var STREAM_TICKET_TTL_MS = 5 * 6e4;
|
|
15688
|
+
var scopeSchema = external_exports.enum(["admin", "client"]);
|
|
15689
|
+
var sessionSchema = external_exports.object({
|
|
15690
|
+
id: external_exports.string().min(1),
|
|
15691
|
+
tokenHash: external_exports.string().length(64),
|
|
15692
|
+
label: external_exports.string().max(80),
|
|
15693
|
+
scopes: external_exports.array(scopeSchema).min(1),
|
|
15694
|
+
createdAt: external_exports.number(),
|
|
15695
|
+
lastSeenAt: external_exports.number(),
|
|
15696
|
+
expiresAt: external_exports.number(),
|
|
15697
|
+
/** Set when the session came from an account sign-in rather than a code. */
|
|
15698
|
+
userId: external_exports.string().max(256).optional(),
|
|
15699
|
+
email: external_exports.string().max(320).optional(),
|
|
15700
|
+
/** Set only by the internal verified-portal issuance path, never by email or pairing input. */
|
|
15701
|
+
membershipAuthority: external_exports.literal("portal").optional()
|
|
15702
|
+
});
|
|
15703
|
+
var fileSchema = external_exports.object({ version: external_exports.literal(1), sessions: external_exports.array(sessionSchema) });
|
|
15704
|
+
|
|
15705
|
+
// server/cloud-home.ts
|
|
15706
|
+
var CLOUD_PAIRING_NONCE_MS = 10 * 6e4;
|
|
15707
|
+
|
|
15642
15708
|
// server/config.ts
|
|
15643
15709
|
var optionalText = external_exports.string().optional();
|
|
15644
15710
|
var SSH_ALIAS = /^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$/;
|
|
@@ -15970,6 +16036,19 @@ var appConfigSchema = external_exports.object({
|
|
|
15970
16036
|
baseUrl: external_exports.string().trim().max(2048).refine((value) => !value || /^https?:\/\//i.test(value), "the Chatterbox server address must start with http:// or https://").optional(),
|
|
15971
16037
|
model: optionalText
|
|
15972
16038
|
}).optional(),
|
|
16039
|
+
/** The decision model (server/decider): a fast classifier that picks
|
|
16040
|
+
* things for bots, starting with who answers a room message. `key` is
|
|
16041
|
+
* write-only like every credential; `baseUrl` points at a Jev-compatible
|
|
16042
|
+
* server instead of TypeSafe's (an operator setting with no UI); `jobs`
|
|
16043
|
+
* switches each decision on or off. Not `decisions`: that section is the
|
|
16044
|
+
* authorization log's retention. */
|
|
16045
|
+
decider: external_exports.object({
|
|
16046
|
+
enabled: external_exports.boolean().optional(),
|
|
16047
|
+
provider: external_exports.enum(["jev", "off"]).optional(),
|
|
16048
|
+
key: optionalText,
|
|
16049
|
+
baseUrl: external_exports.string().trim().max(2048).refine((value) => !value || /^https?:\/\//i.test(value), "the decision model address must start with http:// or https://").optional(),
|
|
16050
|
+
jobs: external_exports.object({ roomRouting: external_exports.boolean().optional() }).optional()
|
|
16051
|
+
}).optional(),
|
|
15973
16052
|
/** Avatar provider credentials stay separate; choosing a router never reuses a cloud key. */
|
|
15974
16053
|
imageGen: external_exports.object({
|
|
15975
16054
|
provider: external_exports.enum(["openai", "xai", "custom"]).optional(),
|
|
@@ -16039,37 +16118,10 @@ var storedAppConfigSchema = appConfigSchema.extend({
|
|
|
16039
16118
|
var appConfigPatchSchema = appConfigSchema.omit({ instances: true, mcpServers: true, cliStartup: true, customDomain: true }).extend({ threads: threadsPatchSchema.optional(), newBots: newBotsPatchSchema.optional() });
|
|
16040
16119
|
var jsonObjectSchema = external_exports.record(external_exports.string(), external_exports.json());
|
|
16041
16120
|
var DEFAULT_CAPTURE_QUIET_MS = 2 * 6e4;
|
|
16042
|
-
var DATA_DIR = process.env.OMB_DATA_DIR ??
|
|
16043
|
-
var LEGACY_DATA_DIR =
|
|
16044
|
-
var EVENTS_DIR =
|
|
16045
|
-
var NATIVE_DIR =
|
|
16046
|
-
|
|
16047
|
-
// server/proxy-paths.ts
|
|
16048
|
-
import { existsSync as existsSync2 } from "node:fs";
|
|
16049
|
-
import { dirname as dirname2, join as join3 } from "node:path";
|
|
16050
|
-
import { fileURLToPath } from "node:url";
|
|
16051
|
-
var SERVER_ROOT = dirname2(fileURLToPath(import.meta.url));
|
|
16052
|
-
function resolveProxy(relative) {
|
|
16053
|
-
const source = join3(SERVER_ROOT, `${relative}.ts`);
|
|
16054
|
-
return existsSync2(source) ? source : join3(SERVER_ROOT, `${relative}.js`);
|
|
16055
|
-
}
|
|
16056
|
-
var SPAWNED_PROXIES = {
|
|
16057
|
-
browser: resolveProxy("browser-proxy"),
|
|
16058
|
-
localComputer: resolveProxy("local-computer-proxy"),
|
|
16059
|
-
permission: resolveProxy("permission-proxy"),
|
|
16060
|
-
containerMcp: resolveProxy("container-mcp"),
|
|
16061
|
-
vpsContainerMcp: resolveProxy("vps-container-mcp"),
|
|
16062
|
-
agents: resolveProxy("drivers/agents-proxy"),
|
|
16063
|
-
dweb: resolveProxy("drivers/dweb-proxy"),
|
|
16064
|
-
connectors: resolveProxy("connector-proxy"),
|
|
16065
|
-
mcpGate: resolveProxy("mcp-gate"),
|
|
16066
|
-
phone: resolveProxy("drivers/phone-proxy"),
|
|
16067
|
-
hook: resolveProxy("hooks/omb-hook"),
|
|
16068
|
-
// Loaded by the external `pi` process via `-e`, not by this server — but
|
|
16069
|
-
// resolved through the same single source of truth so the packaged layout
|
|
16070
|
-
// check can assert it ships.
|
|
16071
|
-
piMcpExtension: resolveProxy("drivers/pi-mcp-extension")
|
|
16072
|
-
};
|
|
16121
|
+
var DATA_DIR = process.env.OMB_DATA_DIR ?? join3(homedir2(), ".openmausbot");
|
|
16122
|
+
var LEGACY_DATA_DIR = join3(homedir2(), ".opengrokbot");
|
|
16123
|
+
var EVENTS_DIR = join3(DATA_DIR, "events");
|
|
16124
|
+
var NATIVE_DIR = join3(DATA_DIR, "native");
|
|
16073
16125
|
|
|
16074
16126
|
// server/container-computer.ts
|
|
16075
16127
|
var run = promisify(execFile2);
|
|
@@ -129,6 +129,7 @@ function catalogProfileFromEnv(env) {
|
|
|
129
129
|
skillAuthoring: env.OMB_SKILL_AUTHORING_ENABLED === "1",
|
|
130
130
|
sharedComputers: env.OMB_SHARED_COMPUTERS_ENABLED === "1",
|
|
131
131
|
voiceNotes: env.OMB_VOICE_NOTES === "1",
|
|
132
|
+
cloudHome: env.OMB_CLOUD_HOME === "1",
|
|
132
133
|
botId: env.OMB_BOT_ID ?? ""
|
|
133
134
|
};
|
|
134
135
|
}
|
|
@@ -853,7 +854,17 @@ var ROOM_ONLY_TOOLS = /* @__PURE__ */ new Set(["list_room_targets", "coordinate_
|
|
|
853
854
|
var ROOM_REPLACED_TOOLS = /* @__PURE__ */ new Set(["ask_bot", "delegate_bot", "check_delegation", "wait_delegation", "start_thread", "send_to_thread", "wait_thread"]);
|
|
854
855
|
var EXTERNAL_TOOL_NAMES = /* @__PURE__ */ new Set(["list_bots", "ask_bot", "delegate_bot", "check_delegation", "wait_delegation"]);
|
|
855
856
|
var WATCHER_TOOL_NAMES = /* @__PURE__ */ new Set(["create_options_card"]);
|
|
857
|
+
var LOCAL_VM_TOOL_NAMES = /* @__PURE__ */ new Set(["vm_exec"]);
|
|
858
|
+
var CLOUD_HOME_SURFACE = {
|
|
859
|
+
type: "string",
|
|
860
|
+
enum: ["auto", "cloud", "browser"],
|
|
861
|
+
description: "auto = suitable configured computer, cloud = remote Boat/VPS, browser = built-in browser. Omit to list. This server runs in the cloud: the user's own computer and a Local VM are not places here."
|
|
862
|
+
};
|
|
856
863
|
function availableTools(profile) {
|
|
864
|
+
const tools = catalogTools(profile);
|
|
865
|
+
return profile.cloudHome ? tools.filter((tool) => !LOCAL_VM_TOOL_NAMES.has(tool.name)).map((tool) => tool.name === "select_computer" ? { ...tool, inputSchema: { ...tool.inputSchema, properties: { surface: CLOUD_HOME_SURFACE } } } : tool) : tools;
|
|
866
|
+
}
|
|
867
|
+
function catalogTools(profile) {
|
|
857
868
|
const TOOLS = toolDefinitions(profile.externalRuntime);
|
|
858
869
|
const BOT_SCOPED_TOOLS = profile.botId === WATCHER_OPTIONS_CARD_BOT_ID ? TOOLS : TOOLS.filter((tool) => !WATCHER_TOOL_NAMES.has(tool.name));
|
|
859
870
|
const AUTHORING_TOOLS = profile.skillAuthoring ? BOT_SCOPED_TOOLS : BOT_SCOPED_TOOLS.filter((tool) => !SKILL_TOOL_NAMES.has(tool.name));
|