oh-my-opencode 3.17.0 → 3.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/doctor/spawn-with-timeout.d.ts +8 -0
- package/dist/cli/index.js +131 -50
- package/dist/create-tools.d.ts +2 -1
- package/dist/features/builtin-commands/commands.d.ts +2 -1
- package/dist/index.js +50 -42
- package/dist/openclaw/config.d.ts +1 -1
- package/dist/openclaw/dispatcher.d.ts +0 -1
- package/dist/openclaw/gateway-url-validation.d.ts +1 -0
- package/package.json +12 -12
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SpawnOptions } from "../../shared/spawn-with-windows-hide";
|
|
2
|
+
export interface SpawnWithTimeoutResult {
|
|
3
|
+
stdout: string;
|
|
4
|
+
stderr: string;
|
|
5
|
+
exitCode: number;
|
|
6
|
+
timedOut: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function spawnWithTimeout(command: string[], options: SpawnOptions, timeoutMs?: number): Promise<SpawnWithTimeoutResult>;
|
package/dist/cli/index.js
CHANGED
|
@@ -48590,7 +48590,7 @@ function getAgentDisplayName(configKey) {
|
|
|
48590
48590
|
}
|
|
48591
48591
|
return configKey;
|
|
48592
48592
|
}
|
|
48593
|
-
function
|
|
48593
|
+
function resolveKnownAgentConfigKey(agentName) {
|
|
48594
48594
|
const lower = stripAgentListSortPrefix(agentName).trim().toLowerCase();
|
|
48595
48595
|
const reversed = REVERSE_DISPLAY_NAMES[lower];
|
|
48596
48596
|
if (reversed !== undefined)
|
|
@@ -48600,7 +48600,11 @@ function getAgentConfigKey(agentName) {
|
|
|
48600
48600
|
return legacy;
|
|
48601
48601
|
if (AGENT_DISPLAY_NAMES[lower] !== undefined)
|
|
48602
48602
|
return lower;
|
|
48603
|
-
return
|
|
48603
|
+
return;
|
|
48604
|
+
}
|
|
48605
|
+
function getAgentConfigKey(agentName) {
|
|
48606
|
+
const lower = stripAgentListSortPrefix(agentName).trim().toLowerCase();
|
|
48607
|
+
return resolveKnownAgentConfigKey(agentName) ?? lower;
|
|
48604
48608
|
}
|
|
48605
48609
|
var AGENT_DISPLAY_NAMES, INVISIBLE_AGENT_CHARACTERS_REGEX, REVERSE_DISPLAY_NAMES, LEGACY_DISPLAY_NAMES;
|
|
48606
48610
|
var init_agent_display_names = __esm(() => {
|
|
@@ -51608,7 +51612,7 @@ var {
|
|
|
51608
51612
|
// package.json
|
|
51609
51613
|
var package_default = {
|
|
51610
51614
|
name: "oh-my-opencode",
|
|
51611
|
-
version: "3.17.
|
|
51615
|
+
version: "3.17.1",
|
|
51612
51616
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
51613
51617
|
main: "./dist/index.js",
|
|
51614
51618
|
types: "dist/index.d.ts",
|
|
@@ -51687,17 +51691,17 @@ var package_default = {
|
|
|
51687
51691
|
typescript: "^5.7.3"
|
|
51688
51692
|
},
|
|
51689
51693
|
optionalDependencies: {
|
|
51690
|
-
"oh-my-opencode-darwin-arm64": "3.17.
|
|
51691
|
-
"oh-my-opencode-darwin-x64": "3.17.
|
|
51692
|
-
"oh-my-opencode-darwin-x64-baseline": "3.17.
|
|
51693
|
-
"oh-my-opencode-linux-arm64": "3.17.
|
|
51694
|
-
"oh-my-opencode-linux-arm64-musl": "3.17.
|
|
51695
|
-
"oh-my-opencode-linux-x64": "3.17.
|
|
51696
|
-
"oh-my-opencode-linux-x64-baseline": "3.17.
|
|
51697
|
-
"oh-my-opencode-linux-x64-musl": "3.17.
|
|
51698
|
-
"oh-my-opencode-linux-x64-musl-baseline": "3.17.
|
|
51699
|
-
"oh-my-opencode-windows-x64": "3.17.
|
|
51700
|
-
"oh-my-opencode-windows-x64-baseline": "3.17.
|
|
51694
|
+
"oh-my-opencode-darwin-arm64": "3.17.1",
|
|
51695
|
+
"oh-my-opencode-darwin-x64": "3.17.1",
|
|
51696
|
+
"oh-my-opencode-darwin-x64-baseline": "3.17.1",
|
|
51697
|
+
"oh-my-opencode-linux-arm64": "3.17.1",
|
|
51698
|
+
"oh-my-opencode-linux-arm64-musl": "3.17.1",
|
|
51699
|
+
"oh-my-opencode-linux-x64": "3.17.1",
|
|
51700
|
+
"oh-my-opencode-linux-x64-baseline": "3.17.1",
|
|
51701
|
+
"oh-my-opencode-linux-x64-musl": "3.17.1",
|
|
51702
|
+
"oh-my-opencode-linux-x64-musl-baseline": "3.17.1",
|
|
51703
|
+
"oh-my-opencode-windows-x64": "3.17.1",
|
|
51704
|
+
"oh-my-opencode-windows-x64-baseline": "3.17.1"
|
|
51701
51705
|
},
|
|
51702
51706
|
overrides: {},
|
|
51703
51707
|
trustedDependencies: [
|
|
@@ -56469,7 +56473,20 @@ function getSharedProperties(source) {
|
|
|
56469
56473
|
plugin_name: PLUGIN_NAME,
|
|
56470
56474
|
package_version: package_default.version,
|
|
56471
56475
|
runtime: "bun",
|
|
56472
|
-
|
|
56476
|
+
runtime_version: process.versions.bun ?? process.version,
|
|
56477
|
+
source,
|
|
56478
|
+
$os: os3.platform(),
|
|
56479
|
+
$os_version: os3.release(),
|
|
56480
|
+
os_arch: os3.arch(),
|
|
56481
|
+
os_type: os3.type(),
|
|
56482
|
+
cpu_count: os3.cpus().length,
|
|
56483
|
+
cpu_model: os3.cpus()[0]?.model,
|
|
56484
|
+
total_memory_gb: Math.round(os3.totalmem() / 1024 / 1024 / 1024),
|
|
56485
|
+
locale: Intl.DateTimeFormat().resolvedOptions().locale,
|
|
56486
|
+
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
56487
|
+
shell: process.env.SHELL,
|
|
56488
|
+
ci: Boolean(process.env.CI),
|
|
56489
|
+
terminal: process.env.TERM_PROGRAM
|
|
56473
56490
|
};
|
|
56474
56491
|
}
|
|
56475
56492
|
function createPostHogClient(source, options) {
|
|
@@ -56478,7 +56495,8 @@ function createPostHogClient(source, options) {
|
|
|
56478
56495
|
}
|
|
56479
56496
|
const configuredClient = new PostHog(getPostHogApiKey(), {
|
|
56480
56497
|
...options,
|
|
56481
|
-
host: getPostHogHost()
|
|
56498
|
+
host: getPostHogHost(),
|
|
56499
|
+
disableGeoip: false
|
|
56482
56500
|
});
|
|
56483
56501
|
const sharedProperties = getSharedProperties(source);
|
|
56484
56502
|
return {
|
|
@@ -75372,10 +75390,41 @@ async function getLocalVersion(options = {}) {
|
|
|
75372
75390
|
import { existsSync as existsSync31, readFileSync as readFileSync26 } from "fs";
|
|
75373
75391
|
|
|
75374
75392
|
// src/cli/doctor/checks/system-binary.ts
|
|
75375
|
-
init_spawn_with_windows_hide();
|
|
75376
75393
|
import { existsSync as existsSync28 } from "fs";
|
|
75377
75394
|
import { homedir as homedir5 } from "os";
|
|
75378
75395
|
import { join as join27 } from "path";
|
|
75396
|
+
|
|
75397
|
+
// src/cli/doctor/spawn-with-timeout.ts
|
|
75398
|
+
init_spawn_with_windows_hide();
|
|
75399
|
+
var DEFAULT_SPAWN_TIMEOUT_MS = 1e4;
|
|
75400
|
+
async function spawnWithTimeout(command, options, timeoutMs = DEFAULT_SPAWN_TIMEOUT_MS) {
|
|
75401
|
+
let proc;
|
|
75402
|
+
try {
|
|
75403
|
+
proc = spawnWithWindowsHide(command, options);
|
|
75404
|
+
} catch {
|
|
75405
|
+
return { stdout: "", stderr: "", exitCode: 1, timedOut: false };
|
|
75406
|
+
}
|
|
75407
|
+
let timer;
|
|
75408
|
+
const timeoutPromise = new Promise((resolve2) => {
|
|
75409
|
+
timer = setTimeout(() => resolve2("timeout"), timeoutMs);
|
|
75410
|
+
});
|
|
75411
|
+
const processPromise = (async () => {
|
|
75412
|
+
await proc.exited;
|
|
75413
|
+
return "done";
|
|
75414
|
+
})();
|
|
75415
|
+
const race = await Promise.race([processPromise, timeoutPromise]);
|
|
75416
|
+
if (race === "timeout") {
|
|
75417
|
+
proc.kill("SIGTERM");
|
|
75418
|
+
await proc.exited.catch(() => {});
|
|
75419
|
+
return { stdout: "", stderr: "", exitCode: 1, timedOut: true };
|
|
75420
|
+
}
|
|
75421
|
+
clearTimeout(timer);
|
|
75422
|
+
const stdout = proc.stdout ? await new Response(proc.stdout).text() : "";
|
|
75423
|
+
const stderr = proc.stderr ? await new Response(proc.stderr).text() : "";
|
|
75424
|
+
return { stdout, stderr, exitCode: proc.exitCode ?? 1, timedOut: false };
|
|
75425
|
+
}
|
|
75426
|
+
|
|
75427
|
+
// src/cli/doctor/checks/system-binary.ts
|
|
75379
75428
|
function getDesktopAppPaths(platform) {
|
|
75380
75429
|
const home = homedir5();
|
|
75381
75430
|
switch (platform) {
|
|
@@ -75433,12 +75482,10 @@ async function findOpenCodeBinary() {
|
|
|
75433
75482
|
async function getOpenCodeVersion3(binaryPath, platform = process.platform) {
|
|
75434
75483
|
try {
|
|
75435
75484
|
const command = buildVersionCommand(binaryPath, platform);
|
|
75436
|
-
const
|
|
75437
|
-
|
|
75438
|
-
await processResult.exited;
|
|
75439
|
-
if (processResult.exitCode !== 0)
|
|
75485
|
+
const result = await spawnWithTimeout(command, { stdout: "pipe", stderr: "pipe" });
|
|
75486
|
+
if (result.timedOut || result.exitCode !== 0)
|
|
75440
75487
|
return null;
|
|
75441
|
-
return
|
|
75488
|
+
return result.stdout.trim() || null;
|
|
75442
75489
|
} catch {
|
|
75443
75490
|
return null;
|
|
75444
75491
|
}
|
|
@@ -76196,7 +76243,6 @@ async function checkConfig() {
|
|
|
76196
76243
|
}
|
|
76197
76244
|
|
|
76198
76245
|
// src/cli/doctor/checks/dependencies.ts
|
|
76199
|
-
init_spawn_with_windows_hide();
|
|
76200
76246
|
import { existsSync as existsSync33 } from "fs";
|
|
76201
76247
|
import { createRequire } from "module";
|
|
76202
76248
|
import { dirname as dirname13, join as join33 } from "path";
|
|
@@ -76211,15 +76257,14 @@ async function checkBinaryExists(binary2) {
|
|
|
76211
76257
|
}
|
|
76212
76258
|
async function getBinaryVersion(binary2) {
|
|
76213
76259
|
try {
|
|
76214
|
-
const
|
|
76215
|
-
|
|
76216
|
-
|
|
76217
|
-
|
|
76218
|
-
|
|
76219
|
-
|
|
76220
|
-
|
|
76221
|
-
}
|
|
76222
|
-
return null;
|
|
76260
|
+
const result = await spawnWithTimeout([binary2, "--version"], { stdout: "pipe", stderr: "pipe" });
|
|
76261
|
+
if (result.timedOut || result.exitCode !== 0)
|
|
76262
|
+
return null;
|
|
76263
|
+
return result.stdout.trim().split(`
|
|
76264
|
+
`)[0] ?? null;
|
|
76265
|
+
} catch {
|
|
76266
|
+
return null;
|
|
76267
|
+
}
|
|
76223
76268
|
}
|
|
76224
76269
|
async function checkAstGrepCli() {
|
|
76225
76270
|
const binaryCheck = await checkBinaryExists("sg");
|
|
@@ -76318,7 +76363,6 @@ async function checkCommentChecker() {
|
|
|
76318
76363
|
}
|
|
76319
76364
|
|
|
76320
76365
|
// src/cli/doctor/checks/tools-gh.ts
|
|
76321
|
-
init_spawn_with_windows_hide();
|
|
76322
76366
|
async function checkBinaryExists2(binary2) {
|
|
76323
76367
|
try {
|
|
76324
76368
|
const binaryPath = Bun.which(binary2);
|
|
@@ -76329,13 +76373,11 @@ async function checkBinaryExists2(binary2) {
|
|
|
76329
76373
|
}
|
|
76330
76374
|
async function getGhVersion() {
|
|
76331
76375
|
try {
|
|
76332
|
-
const
|
|
76333
|
-
|
|
76334
|
-
await processResult.exited;
|
|
76335
|
-
if (processResult.exitCode !== 0)
|
|
76376
|
+
const result = await spawnWithTimeout(["gh", "--version"], { stdout: "pipe", stderr: "pipe" });
|
|
76377
|
+
if (result.timedOut || result.exitCode !== 0)
|
|
76336
76378
|
return null;
|
|
76337
|
-
const matchedVersion =
|
|
76338
|
-
return matchedVersion?.[1] ??
|
|
76379
|
+
const matchedVersion = result.stdout.match(/gh version (\S+)/);
|
|
76380
|
+
return matchedVersion?.[1] ?? result.stdout.trim().split(`
|
|
76339
76381
|
`)[0] ?? null;
|
|
76340
76382
|
} catch {
|
|
76341
76383
|
return null;
|
|
@@ -76343,16 +76385,12 @@ async function getGhVersion() {
|
|
|
76343
76385
|
}
|
|
76344
76386
|
async function getGhAuthStatus() {
|
|
76345
76387
|
try {
|
|
76346
|
-
const
|
|
76347
|
-
|
|
76348
|
-
|
|
76349
|
-
|
|
76350
|
-
|
|
76351
|
-
|
|
76352
|
-
const stderr = await new Response(processResult.stderr).text();
|
|
76353
|
-
await processResult.exited;
|
|
76354
|
-
const output = stderr || stdout;
|
|
76355
|
-
if (processResult.exitCode === 0) {
|
|
76388
|
+
const result = await spawnWithTimeout(["gh", "auth", "status"], { stdout: "pipe", stderr: "pipe", env: { ...process.env, GH_NO_UPDATE_NOTIFIER: "1" } });
|
|
76389
|
+
if (result.timedOut) {
|
|
76390
|
+
return { authenticated: false, username: null, scopes: [], error: "gh auth status timed out" };
|
|
76391
|
+
}
|
|
76392
|
+
const output = result.stderr || result.stdout;
|
|
76393
|
+
if (result.exitCode === 0) {
|
|
76356
76394
|
const usernameMatch = output.match(/Logged in to github\.com account (\S+)/);
|
|
76357
76395
|
const scopesMatch = output.match(/Token scopes?:\s*(.+)/i);
|
|
76358
76396
|
return {
|
|
@@ -77025,6 +77063,14 @@ function formatJsonOutput2(result) {
|
|
|
77025
77063
|
}
|
|
77026
77064
|
|
|
77027
77065
|
// src/cli/doctor/runner.ts
|
|
77066
|
+
var DOCTOR_TIMEOUT_MS = 30000;
|
|
77067
|
+
|
|
77068
|
+
class DoctorTimeoutError extends Error {
|
|
77069
|
+
constructor() {
|
|
77070
|
+
super("Doctor timed out");
|
|
77071
|
+
this.name = "DoctorTimeoutError";
|
|
77072
|
+
}
|
|
77073
|
+
}
|
|
77028
77074
|
async function runCheck(check2) {
|
|
77029
77075
|
const start = performance.now();
|
|
77030
77076
|
try {
|
|
@@ -77054,14 +77100,49 @@ function calculateSummary(results, duration3) {
|
|
|
77054
77100
|
function determineExitCode(results) {
|
|
77055
77101
|
return results.some((r2) => r2.status === "fail") ? EXIT_CODES.FAILURE : EXIT_CODES.SUCCESS;
|
|
77056
77102
|
}
|
|
77103
|
+
function buildTimeoutResult(start, options) {
|
|
77104
|
+
const timeoutResult = {
|
|
77105
|
+
results: [{ name: "Timeout", status: "fail", message: "Doctor timed out after 30s", issues: [{ title: "Doctor timeout", description: "Checks did not complete within 30s. A subprocess may be hanging.", severity: "error" }] }],
|
|
77106
|
+
systemInfo: { opencodeVersion: null, opencodePath: null, pluginVersion: null, loadedVersion: null, bunVersion: null, configPath: null, configValid: false, isLocalDev: false },
|
|
77107
|
+
tools: { lspServers: [], astGrepCli: false, astGrepNapi: false, commentChecker: false, ghCli: { installed: false, authenticated: false, username: null }, mcpBuiltin: [], mcpUser: [] },
|
|
77108
|
+
summary: { total: 1, passed: 0, failed: 1, warnings: 0, skipped: 0, duration: Math.round(performance.now() - start) },
|
|
77109
|
+
exitCode: EXIT_CODES.FAILURE
|
|
77110
|
+
};
|
|
77111
|
+
if (options.json) {
|
|
77112
|
+
console.log(formatJsonOutput2(timeoutResult));
|
|
77113
|
+
} else {
|
|
77114
|
+
console.error(`
|
|
77115
|
+
Doctor timed out after 30s. A subprocess may be hanging.`);
|
|
77116
|
+
console.error(`Try running with --verbose to identify the stuck check.
|
|
77117
|
+
`);
|
|
77118
|
+
}
|
|
77119
|
+
return timeoutResult;
|
|
77120
|
+
}
|
|
77057
77121
|
async function runDoctor(options) {
|
|
77058
77122
|
const start = performance.now();
|
|
77059
77123
|
const allChecks = getAllCheckDefinitions();
|
|
77060
|
-
const
|
|
77124
|
+
const checksPromise = Promise.all([
|
|
77061
77125
|
Promise.all(allChecks.map(runCheck)),
|
|
77062
77126
|
gatherSystemInfo(),
|
|
77063
77127
|
gatherToolsSummary()
|
|
77064
77128
|
]);
|
|
77129
|
+
let timer;
|
|
77130
|
+
const timeoutPromise = new Promise((_3, reject) => {
|
|
77131
|
+
timer = setTimeout(() => reject(new DoctorTimeoutError), DOCTOR_TIMEOUT_MS);
|
|
77132
|
+
});
|
|
77133
|
+
let results;
|
|
77134
|
+
let systemInfo;
|
|
77135
|
+
let tools;
|
|
77136
|
+
try {
|
|
77137
|
+
[results, systemInfo, tools] = await Promise.race([checksPromise, timeoutPromise]);
|
|
77138
|
+
} catch (error48) {
|
|
77139
|
+
clearTimeout(timer);
|
|
77140
|
+
if (error48 instanceof DoctorTimeoutError) {
|
|
77141
|
+
return buildTimeoutResult(start, options);
|
|
77142
|
+
}
|
|
77143
|
+
throw error48;
|
|
77144
|
+
}
|
|
77145
|
+
clearTimeout(timer);
|
|
77065
77146
|
const duration3 = performance.now() - start;
|
|
77066
77147
|
const summary = calculateSummary(results, duration3);
|
|
77067
77148
|
const exitCode = determineExitCode(results);
|
package/dist/create-tools.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { BrowserAutomationProvider } from "./config/schema/browser-automati
|
|
|
4
4
|
import type { LoadedSkill } from "./features/opencode-skill-loader/types";
|
|
5
5
|
import type { PluginContext, ToolsRecord } from "./plugin/types";
|
|
6
6
|
import type { Managers } from "./create-managers";
|
|
7
|
-
|
|
7
|
+
type CreateToolsResult = {
|
|
8
8
|
filteredTools: ToolsRecord;
|
|
9
9
|
mergedSkills: LoadedSkill[];
|
|
10
10
|
availableSkills: AvailableSkill[];
|
|
@@ -18,3 +18,4 @@ export declare function createTools(args: {
|
|
|
18
18
|
pluginConfig: OhMyOpenCodeConfig;
|
|
19
19
|
managers: Pick<Managers, "backgroundManager" | "tmuxSessionManager" | "skillMcpManager">;
|
|
20
20
|
}): Promise<CreateToolsResult>;
|
|
21
|
+
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { BuiltinCommandName, BuiltinCommands } from "./types";
|
|
2
|
-
|
|
2
|
+
interface LoadBuiltinCommandsOptions {
|
|
3
3
|
useRegisteredAgents?: boolean;
|
|
4
4
|
}
|
|
5
5
|
export declare function loadBuiltinCommands(disabledCommands?: BuiltinCommandName[], options?: LoadBuiltinCommandsOptions): BuiltinCommands;
|
|
6
|
+
export {};
|
package/dist/index.js
CHANGED
|
@@ -128,7 +128,7 @@ function getAgentDisplayName(configKey) {
|
|
|
128
128
|
function getAgentListDisplayName(configKey) {
|
|
129
129
|
return getAgentRuntimeName(configKey);
|
|
130
130
|
}
|
|
131
|
-
function
|
|
131
|
+
function resolveKnownAgentConfigKey(agentName) {
|
|
132
132
|
const lower = stripAgentListSortPrefix(agentName).trim().toLowerCase();
|
|
133
133
|
const reversed = REVERSE_DISPLAY_NAMES[lower];
|
|
134
134
|
if (reversed !== undefined)
|
|
@@ -138,7 +138,11 @@ function getAgentConfigKey(agentName) {
|
|
|
138
138
|
return legacy;
|
|
139
139
|
if (AGENT_DISPLAY_NAMES[lower] !== undefined)
|
|
140
140
|
return lower;
|
|
141
|
-
return
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
function getAgentConfigKey(agentName) {
|
|
144
|
+
const lower = stripAgentListSortPrefix(agentName).trim().toLowerCase();
|
|
145
|
+
return resolveKnownAgentConfigKey(agentName) ?? lower;
|
|
142
146
|
}
|
|
143
147
|
function normalizeAgentForPromptKey(agentName) {
|
|
144
148
|
if (typeof agentName !== "string") {
|
|
@@ -148,19 +152,7 @@ function normalizeAgentForPromptKey(agentName) {
|
|
|
148
152
|
if (!trimmed) {
|
|
149
153
|
return;
|
|
150
154
|
}
|
|
151
|
-
|
|
152
|
-
const reversed = REVERSE_DISPLAY_NAMES[lower];
|
|
153
|
-
if (reversed !== undefined) {
|
|
154
|
-
return reversed;
|
|
155
|
-
}
|
|
156
|
-
const legacy = LEGACY_DISPLAY_NAMES[lower];
|
|
157
|
-
if (legacy !== undefined) {
|
|
158
|
-
return legacy;
|
|
159
|
-
}
|
|
160
|
-
if (AGENT_DISPLAY_NAMES[lower] !== undefined) {
|
|
161
|
-
return lower;
|
|
162
|
-
}
|
|
163
|
-
return trimmed;
|
|
155
|
+
return resolveKnownAgentConfigKey(trimmed) ?? trimmed;
|
|
164
156
|
}
|
|
165
157
|
var AGENT_DISPLAY_NAMES, AGENT_LIST_SORT_PREFIXES, INVISIBLE_AGENT_CHARACTERS_REGEX, REVERSE_DISPLAY_NAMES, LEGACY_DISPLAY_NAMES;
|
|
166
158
|
var init_agent_display_names = __esm(() => {
|
|
@@ -135275,6 +135267,21 @@ var MIN_STABILITY_TIME_MS4 = 10 * 1000;
|
|
|
135275
135267
|
// src/openclaw/index.ts
|
|
135276
135268
|
import { basename as basename14 } from "path";
|
|
135277
135269
|
|
|
135270
|
+
// src/openclaw/gateway-url-validation.ts
|
|
135271
|
+
function validateGatewayUrl(url3) {
|
|
135272
|
+
try {
|
|
135273
|
+
const parsed = new URL(url3);
|
|
135274
|
+
if (parsed.protocol === "https:")
|
|
135275
|
+
return true;
|
|
135276
|
+
if (parsed.protocol === "http:" && (parsed.hostname === "localhost" || parsed.hostname === "127.0.0.1" || parsed.hostname === "::1" || parsed.hostname === "[::1]")) {
|
|
135277
|
+
return true;
|
|
135278
|
+
}
|
|
135279
|
+
return false;
|
|
135280
|
+
} catch {
|
|
135281
|
+
return false;
|
|
135282
|
+
}
|
|
135283
|
+
}
|
|
135284
|
+
|
|
135278
135285
|
// src/openclaw/config.ts
|
|
135279
135286
|
var DEFAULT_REPLY_POLL_INTERVAL_MS = 3000;
|
|
135280
135287
|
var MIN_REPLY_POLL_INTERVAL_MS = 500;
|
|
@@ -135342,19 +135349,6 @@ var DEFAULT_HTTP_TIMEOUT_MS = 1e4;
|
|
|
135342
135349
|
var DEFAULT_COMMAND_TIMEOUT_MS = 5000;
|
|
135343
135350
|
var MIN_COMMAND_TIMEOUT_MS = 100;
|
|
135344
135351
|
var MAX_COMMAND_TIMEOUT_MS = 300000;
|
|
135345
|
-
function validateGatewayUrl(url3) {
|
|
135346
|
-
try {
|
|
135347
|
-
const parsed = new URL(url3);
|
|
135348
|
-
if (parsed.protocol === "https:")
|
|
135349
|
-
return true;
|
|
135350
|
-
if (parsed.protocol === "http:" && (parsed.hostname === "localhost" || parsed.hostname === "127.0.0.1" || parsed.hostname === "::1" || parsed.hostname === "[::1]")) {
|
|
135351
|
-
return true;
|
|
135352
|
-
}
|
|
135353
|
-
return false;
|
|
135354
|
-
} catch {
|
|
135355
|
-
return false;
|
|
135356
|
-
}
|
|
135357
|
-
}
|
|
135358
135352
|
function interpolateInstruction(template, variables) {
|
|
135359
135353
|
return template.replace(/\{\{(\w+)\}\}/g, (_match, key) => {
|
|
135360
135354
|
return variables[key] ?? "";
|
|
@@ -152850,7 +152844,7 @@ class PostHog extends PostHogBackendClient {
|
|
|
152850
152844
|
// package.json
|
|
152851
152845
|
var package_default = {
|
|
152852
152846
|
name: "oh-my-opencode",
|
|
152853
|
-
version: "3.17.
|
|
152847
|
+
version: "3.17.1",
|
|
152854
152848
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
152855
152849
|
main: "./dist/index.js",
|
|
152856
152850
|
types: "dist/index.d.ts",
|
|
@@ -152929,17 +152923,17 @@ var package_default = {
|
|
|
152929
152923
|
typescript: "^5.7.3"
|
|
152930
152924
|
},
|
|
152931
152925
|
optionalDependencies: {
|
|
152932
|
-
"oh-my-opencode-darwin-arm64": "3.17.
|
|
152933
|
-
"oh-my-opencode-darwin-x64": "3.17.
|
|
152934
|
-
"oh-my-opencode-darwin-x64-baseline": "3.17.
|
|
152935
|
-
"oh-my-opencode-linux-arm64": "3.17.
|
|
152936
|
-
"oh-my-opencode-linux-arm64-musl": "3.17.
|
|
152937
|
-
"oh-my-opencode-linux-x64": "3.17.
|
|
152938
|
-
"oh-my-opencode-linux-x64-baseline": "3.17.
|
|
152939
|
-
"oh-my-opencode-linux-x64-musl": "3.17.
|
|
152940
|
-
"oh-my-opencode-linux-x64-musl-baseline": "3.17.
|
|
152941
|
-
"oh-my-opencode-windows-x64": "3.17.
|
|
152942
|
-
"oh-my-opencode-windows-x64-baseline": "3.17.
|
|
152926
|
+
"oh-my-opencode-darwin-arm64": "3.17.1",
|
|
152927
|
+
"oh-my-opencode-darwin-x64": "3.17.1",
|
|
152928
|
+
"oh-my-opencode-darwin-x64-baseline": "3.17.1",
|
|
152929
|
+
"oh-my-opencode-linux-arm64": "3.17.1",
|
|
152930
|
+
"oh-my-opencode-linux-arm64-musl": "3.17.1",
|
|
152931
|
+
"oh-my-opencode-linux-x64": "3.17.1",
|
|
152932
|
+
"oh-my-opencode-linux-x64-baseline": "3.17.1",
|
|
152933
|
+
"oh-my-opencode-linux-x64-musl": "3.17.1",
|
|
152934
|
+
"oh-my-opencode-linux-x64-musl-baseline": "3.17.1",
|
|
152935
|
+
"oh-my-opencode-windows-x64": "3.17.1",
|
|
152936
|
+
"oh-my-opencode-windows-x64-baseline": "3.17.1"
|
|
152943
152937
|
},
|
|
152944
152938
|
overrides: {},
|
|
152945
152939
|
trustedDependencies: [
|
|
@@ -153065,7 +153059,20 @@ function getSharedProperties(source) {
|
|
|
153065
153059
|
plugin_name: PLUGIN_NAME,
|
|
153066
153060
|
package_version: package_default.version,
|
|
153067
153061
|
runtime: "bun",
|
|
153068
|
-
|
|
153062
|
+
runtime_version: process.versions.bun ?? process.version,
|
|
153063
|
+
source,
|
|
153064
|
+
$os: os6.platform(),
|
|
153065
|
+
$os_version: os6.release(),
|
|
153066
|
+
os_arch: os6.arch(),
|
|
153067
|
+
os_type: os6.type(),
|
|
153068
|
+
cpu_count: os6.cpus().length,
|
|
153069
|
+
cpu_model: os6.cpus()[0]?.model,
|
|
153070
|
+
total_memory_gb: Math.round(os6.totalmem() / 1024 / 1024 / 1024),
|
|
153071
|
+
locale: Intl.DateTimeFormat().resolvedOptions().locale,
|
|
153072
|
+
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
153073
|
+
shell: process.env.SHELL,
|
|
153074
|
+
ci: Boolean(process.env.CI),
|
|
153075
|
+
terminal: process.env.TERM_PROGRAM
|
|
153069
153076
|
};
|
|
153070
153077
|
}
|
|
153071
153078
|
function createPostHogClient(source, options) {
|
|
@@ -153074,7 +153081,8 @@ function createPostHogClient(source, options) {
|
|
|
153074
153081
|
}
|
|
153075
153082
|
const configuredClient = new PostHog(getPostHogApiKey(), {
|
|
153076
153083
|
...options,
|
|
153077
|
-
host: getPostHogHost()
|
|
153084
|
+
host: getPostHogHost(),
|
|
153085
|
+
disableGeoip: false
|
|
153078
153086
|
});
|
|
153079
153087
|
const sharedProperties = getSharedProperties(source);
|
|
153080
153088
|
return {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { OpenClawConfig, OpenClawGateway } from "./types";
|
|
2
|
+
export { validateGatewayUrl } from "./gateway-url-validation";
|
|
2
3
|
export declare function normalizeReplyListenerConfig(config: OpenClawConfig): OpenClawConfig;
|
|
3
4
|
export declare function resolveGateway(config: OpenClawConfig, event: string): {
|
|
4
5
|
gatewayName: string;
|
|
5
6
|
gateway: OpenClawGateway;
|
|
6
7
|
instruction: string;
|
|
7
8
|
} | null;
|
|
8
|
-
export declare function validateGatewayUrl(url: string): boolean;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { OpenClawGateway, WakeResult } from "./types";
|
|
2
|
-
export declare function validateGatewayUrl(url: string): boolean;
|
|
3
2
|
export declare function interpolateInstruction(template: string, variables: Record<string, string | undefined>): string;
|
|
4
3
|
export declare function shellEscapeArg(value: string): string;
|
|
5
4
|
export declare function resolveCommandTimeoutMs(gatewayTimeout?: number, envTimeoutRaw?: string | undefined): number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function validateGatewayUrl(url: string): boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oh-my-opencode",
|
|
3
|
-
"version": "3.17.
|
|
3
|
+
"version": "3.17.1",
|
|
4
4
|
"description": "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -79,17 +79,17 @@
|
|
|
79
79
|
"typescript": "^5.7.3"
|
|
80
80
|
},
|
|
81
81
|
"optionalDependencies": {
|
|
82
|
-
"oh-my-opencode-darwin-arm64": "3.17.
|
|
83
|
-
"oh-my-opencode-darwin-x64": "3.17.
|
|
84
|
-
"oh-my-opencode-darwin-x64-baseline": "3.17.
|
|
85
|
-
"oh-my-opencode-linux-arm64": "3.17.
|
|
86
|
-
"oh-my-opencode-linux-arm64-musl": "3.17.
|
|
87
|
-
"oh-my-opencode-linux-x64": "3.17.
|
|
88
|
-
"oh-my-opencode-linux-x64-baseline": "3.17.
|
|
89
|
-
"oh-my-opencode-linux-x64-musl": "3.17.
|
|
90
|
-
"oh-my-opencode-linux-x64-musl-baseline": "3.17.
|
|
91
|
-
"oh-my-opencode-windows-x64": "3.17.
|
|
92
|
-
"oh-my-opencode-windows-x64-baseline": "3.17.
|
|
82
|
+
"oh-my-opencode-darwin-arm64": "3.17.1",
|
|
83
|
+
"oh-my-opencode-darwin-x64": "3.17.1",
|
|
84
|
+
"oh-my-opencode-darwin-x64-baseline": "3.17.1",
|
|
85
|
+
"oh-my-opencode-linux-arm64": "3.17.1",
|
|
86
|
+
"oh-my-opencode-linux-arm64-musl": "3.17.1",
|
|
87
|
+
"oh-my-opencode-linux-x64": "3.17.1",
|
|
88
|
+
"oh-my-opencode-linux-x64-baseline": "3.17.1",
|
|
89
|
+
"oh-my-opencode-linux-x64-musl": "3.17.1",
|
|
90
|
+
"oh-my-opencode-linux-x64-musl-baseline": "3.17.1",
|
|
91
|
+
"oh-my-opencode-windows-x64": "3.17.1",
|
|
92
|
+
"oh-my-opencode-windows-x64-baseline": "3.17.1"
|
|
93
93
|
},
|
|
94
94
|
"overrides": {},
|
|
95
95
|
"trustedDependencies": [
|