@okxweb3/a2a-node 0.2.15 → 0.2.16-beta-ca2f5282c7-260921143311
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.js +91 -87
- package/dist/index.js +70 -71
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1851,12 +1851,12 @@ async function acquireDaemonLock(paths, entry) {
|
|
|
1851
1851
|
}
|
|
1852
1852
|
return null;
|
|
1853
1853
|
}
|
|
1854
|
-
function activeDaemonPointerPath() {
|
|
1855
|
-
return (0, import_node_path4.join)(
|
|
1854
|
+
function activeDaemonPointerPath(homeDir = resolveA2aTaskHome()) {
|
|
1855
|
+
return (0, import_node_path4.join)(homeDir, "run", "active-daemon.json");
|
|
1856
1856
|
}
|
|
1857
|
-
async function readActiveDaemonPointer() {
|
|
1857
|
+
async function readActiveDaemonPointer(homeDir = resolveA2aTaskHome()) {
|
|
1858
1858
|
try {
|
|
1859
|
-
const raw = await (0, import_promises.readFile)(activeDaemonPointerPath(), "utf8");
|
|
1859
|
+
const raw = await (0, import_promises.readFile)(activeDaemonPointerPath(homeDir), "utf8");
|
|
1860
1860
|
const parsed = JSON.parse(raw);
|
|
1861
1861
|
return Number.isInteger(parsed.pid) && parsed.pid > 0 ? parsed : null;
|
|
1862
1862
|
} catch {
|
|
@@ -1865,14 +1865,14 @@ async function readActiveDaemonPointer() {
|
|
|
1865
1865
|
}
|
|
1866
1866
|
async function claimActiveDaemon(homeDir) {
|
|
1867
1867
|
let evictedPid = null;
|
|
1868
|
-
const current = await readActiveDaemonPointer();
|
|
1868
|
+
const current = await readActiveDaemonPointer(homeDir);
|
|
1869
1869
|
if (current && current.pid !== process.pid && isProcessAlive(current.pid)) {
|
|
1870
1870
|
if (await evictPid(current.pid)) {
|
|
1871
1871
|
evictedPid = current.pid;
|
|
1872
1872
|
}
|
|
1873
1873
|
}
|
|
1874
|
-
const pointerPath = activeDaemonPointerPath();
|
|
1875
|
-
|
|
1874
|
+
const pointerPath = activeDaemonPointerPath(homeDir);
|
|
1875
|
+
ensureTaskDir((0, import_node_path4.dirname)(pointerPath));
|
|
1876
1876
|
await (0, import_promises.writeFile)(pointerPath, `${JSON.stringify({
|
|
1877
1877
|
pid: process.pid,
|
|
1878
1878
|
homeDir,
|
|
@@ -1881,10 +1881,10 @@ async function claimActiveDaemon(homeDir) {
|
|
|
1881
1881
|
`, "utf8");
|
|
1882
1882
|
return evictedPid;
|
|
1883
1883
|
}
|
|
1884
|
-
async function releaseActiveDaemon() {
|
|
1885
|
-
const current = await readActiveDaemonPointer();
|
|
1884
|
+
async function releaseActiveDaemon(homeDir = resolveA2aTaskHome()) {
|
|
1885
|
+
const current = await readActiveDaemonPointer(homeDir);
|
|
1886
1886
|
if (current?.pid === process.pid) {
|
|
1887
|
-
await (0, import_promises.rm)(activeDaemonPointerPath(), { force: true });
|
|
1887
|
+
await (0, import_promises.rm)(activeDaemonPointerPath(homeDir), { force: true });
|
|
1888
1888
|
}
|
|
1889
1889
|
}
|
|
1890
1890
|
async function chmodBestEffort(path2, mode) {
|
|
@@ -1897,12 +1897,11 @@ async function chmodBestEffort(path2, mode) {
|
|
|
1897
1897
|
}
|
|
1898
1898
|
}
|
|
1899
1899
|
}
|
|
1900
|
-
var import_promises,
|
|
1900
|
+
var import_promises, import_node_path4, OWNER_FILE, EMPTY_LOCK_STALE_MS, DEFAULT_TAKEOVER_GRACE_MS, TAKEOVER_GRACE_ENV, TAKEOVER_POLL_MS, DAEMON_CAPABILITY_AI_DISPATCH, DAEMON_CAPABILITIES;
|
|
1901
1901
|
var init_daemon_lock = __esm({
|
|
1902
1902
|
"src/daemon-lock.ts"() {
|
|
1903
1903
|
"use strict";
|
|
1904
1904
|
import_promises = require("node:fs/promises");
|
|
1905
|
-
import_node_os2 = require("node:os");
|
|
1906
1905
|
import_node_path4 = require("node:path");
|
|
1907
1906
|
init_paths();
|
|
1908
1907
|
init_a2a_paths();
|
|
@@ -2430,7 +2429,7 @@ function collectCodexAppBundledCandidates(env = process.env, platform = process.
|
|
|
2430
2429
|
}
|
|
2431
2430
|
const roots = (env[CODEX_APP_DIRS_ENV] ?? "").split(import_node_path8.delimiter).filter(Boolean);
|
|
2432
2431
|
if (platform === "darwin") {
|
|
2433
|
-
roots.push("/Applications", (0, import_node_path8.join)(env.HOME || (0,
|
|
2432
|
+
roots.push("/Applications", (0, import_node_path8.join)(env.HOME || (0, import_node_os2.homedir)(), "Applications"));
|
|
2434
2433
|
}
|
|
2435
2434
|
const candidates = [];
|
|
2436
2435
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -2558,7 +2557,7 @@ function findExecutableCandidatesOnPath(command, pathValue, platform) {
|
|
|
2558
2557
|
return candidates;
|
|
2559
2558
|
}
|
|
2560
2559
|
function fallbackCandidates(command, env, platform = process.platform) {
|
|
2561
|
-
const home = (0,
|
|
2560
|
+
const home = (0, import_node_os2.homedir)();
|
|
2562
2561
|
const dirs = [
|
|
2563
2562
|
(0, import_node_path8.dirname)(process.execPath),
|
|
2564
2563
|
(0, import_node_path8.join)(home, ".local", "bin"),
|
|
@@ -2577,8 +2576,8 @@ function providerPathDirs(command, env) {
|
|
|
2577
2576
|
return [
|
|
2578
2577
|
(0, import_node_path8.isAbsolute)(command) ? (0, import_node_path8.dirname)(command) : void 0,
|
|
2579
2578
|
(0, import_node_path8.dirname)(process.execPath),
|
|
2580
|
-
(0, import_node_path8.join)((0,
|
|
2581
|
-
(0, import_node_path8.join)((0,
|
|
2579
|
+
(0, import_node_path8.join)((0, import_node_os2.homedir)(), ".local", "bin"),
|
|
2580
|
+
(0, import_node_path8.join)((0, import_node_os2.homedir)(), "Library", "pnpm"),
|
|
2582
2581
|
env.PNPM_HOME
|
|
2583
2582
|
].filter((dir) => !!dir);
|
|
2584
2583
|
}
|
|
@@ -2655,12 +2654,12 @@ function isCodexCommand(command) {
|
|
|
2655
2654
|
function isWindowsAppsPath(commandPath) {
|
|
2656
2655
|
return /(?:^|[\\/])WindowsApps(?:[\\/]|$)/i.test(commandPath);
|
|
2657
2656
|
}
|
|
2658
|
-
var import_node_fs5,
|
|
2657
|
+
var import_node_fs5, import_node_os2, import_node_path8, DEFAULT_AI_PROVIDER_TIMEOUT_MS, CODEX_PROBE_TIMEOUT_MS, CODEX_APP_DIRS_ENV, CODEX_COMMAND_OVERRIDE_ENV;
|
|
2659
2658
|
var init_ai_command = __esm({
|
|
2660
2659
|
"src/ai-command.ts"() {
|
|
2661
2660
|
"use strict";
|
|
2662
2661
|
import_node_fs5 = require("node:fs");
|
|
2663
|
-
|
|
2662
|
+
import_node_os2 = require("node:os");
|
|
2664
2663
|
import_node_path8 = require("node:path");
|
|
2665
2664
|
init_win_spawn();
|
|
2666
2665
|
DEFAULT_AI_PROVIDER_TIMEOUT_MS = null;
|
|
@@ -2708,14 +2707,14 @@ function isSystemdManagerUnavailableMessage(message) {
|
|
|
2708
2707
|
function isAutostartManagerUnavailableError(error) {
|
|
2709
2708
|
return error instanceof AutostartManagerUnavailableError || typeof error === "object" && error !== null && "code" in error && error.code === "AUTOSTART_MANAGER_UNAVAILABLE";
|
|
2710
2709
|
}
|
|
2711
|
-
function resolveSystemdAutostartPaths(home = (0,
|
|
2710
|
+
function resolveSystemdAutostartPaths(home = (0, import_node_os3.homedir)()) {
|
|
2712
2711
|
const serviceDir = (0, import_node_path9.join)(home, ".config", "systemd", "user");
|
|
2713
2712
|
return {
|
|
2714
2713
|
serviceDir,
|
|
2715
2714
|
servicePath: (0, import_node_path9.join)(serviceDir, SERVICE_NAME)
|
|
2716
2715
|
};
|
|
2717
2716
|
}
|
|
2718
|
-
function resolveLaunchdAutostartPaths(home = (0,
|
|
2717
|
+
function resolveLaunchdAutostartPaths(home = (0, import_node_os3.homedir)()) {
|
|
2719
2718
|
const agentDir = (0, import_node_path9.join)(home, "Library", "LaunchAgents");
|
|
2720
2719
|
return {
|
|
2721
2720
|
agentDir,
|
|
@@ -2735,13 +2734,13 @@ function resolveCliPath() {
|
|
|
2735
2734
|
}
|
|
2736
2735
|
return (0, import_node_path9.resolve)(entry);
|
|
2737
2736
|
}
|
|
2738
|
-
function requiredServicePathEntries(env = process.env, home = (0,
|
|
2737
|
+
function requiredServicePathEntries(env = process.env, home = (0, import_node_os3.homedir)(), platform = process.platform) {
|
|
2739
2738
|
const localBin = (0, import_node_path9.join)(home, ".local", "bin");
|
|
2740
2739
|
const explicit = env.ONCHAINOS_BIN?.trim();
|
|
2741
2740
|
const onchainosPath = (explicit ? resolveCommandPath(explicit, env, platform) : null) ?? resolveCommandPath("onchainos", env, platform);
|
|
2742
2741
|
return [...new Set([onchainosPath ? (0, import_node_path9.dirname)(onchainosPath) : null, localBin].filter((entry) => !!entry))];
|
|
2743
2742
|
}
|
|
2744
|
-
function buildServicePath(env = process.env, home = (0,
|
|
2743
|
+
function buildServicePath(env = process.env, home = (0, import_node_os3.homedir)(), platform = process.platform) {
|
|
2745
2744
|
const fallback = "/usr/local/bin:/usr/bin:/bin";
|
|
2746
2745
|
const entries = (env.PATH?.trim() || fallback).split(import_node_path9.delimiter).filter((entry) => !!entry);
|
|
2747
2746
|
const preferred = requiredServicePathEntries(env, home, platform);
|
|
@@ -2793,7 +2792,7 @@ ${args.map((arg) => ` <string>${escapeXml(arg)}</string>`).join("\n")}
|
|
|
2793
2792
|
<key>PATH</key>
|
|
2794
2793
|
<string>${escapeXml(pathValue)}</string>
|
|
2795
2794
|
<key>HOME</key>
|
|
2796
|
-
<string>${escapeXml((0,
|
|
2795
|
+
<string>${escapeXml((0, import_node_os3.homedir)())}</string>
|
|
2797
2796
|
<key>OKX_AGENT_TASK_HOME</key>
|
|
2798
2797
|
<string>${escapeXml(paths.homeDir)}</string>
|
|
2799
2798
|
</dict>
|
|
@@ -3278,14 +3277,14 @@ function autostartStatus() {
|
|
|
3278
3277
|
}
|
|
3279
3278
|
throw new Error(`autostart is not supported on ${process.platform}`);
|
|
3280
3279
|
}
|
|
3281
|
-
var import_node_child_process3, import_node_fs6, import_promises3,
|
|
3280
|
+
var import_node_child_process3, import_node_fs6, import_promises3, import_node_os3, import_node_path9, import_node_util, execFileAsync, SERVICE_NAME, LAUNCHD_LABEL, LAUNCHD_PLIST_NAME, AutostartManagerUnavailableError;
|
|
3282
3281
|
var init_autostart = __esm({
|
|
3283
3282
|
"src/autostart.ts"() {
|
|
3284
3283
|
"use strict";
|
|
3285
3284
|
import_node_child_process3 = require("node:child_process");
|
|
3286
3285
|
import_node_fs6 = require("node:fs");
|
|
3287
3286
|
import_promises3 = require("node:fs/promises");
|
|
3288
|
-
|
|
3287
|
+
import_node_os3 = require("node:os");
|
|
3289
3288
|
import_node_path9 = require("node:path");
|
|
3290
3289
|
import_node_util = require("node:util");
|
|
3291
3290
|
init_autostart_windows();
|
|
@@ -3497,7 +3496,7 @@ async function startDaemon(homeDir) {
|
|
|
3497
3496
|
}
|
|
3498
3497
|
function isDefaultTaskHome(homeDir) {
|
|
3499
3498
|
const target = (0, import_node_path10.resolve)(homeDir ?? resolveTaskHome());
|
|
3500
|
-
return target === (0, import_node_path10.resolve)((0, import_node_path10.join)((0,
|
|
3499
|
+
return target === (0, import_node_path10.resolve)((0, import_node_path10.join)((0, import_node_os4.homedir)(), ".okx-agent-task"));
|
|
3501
3500
|
}
|
|
3502
3501
|
async function shouldDelegateToSupervisor(homeDir, ops) {
|
|
3503
3502
|
if (!isDefaultTaskHome(homeDir)) {
|
|
@@ -3725,14 +3724,14 @@ function readReadyTimeoutMs(env) {
|
|
|
3725
3724
|
function sleep2(ms) {
|
|
3726
3725
|
return new Promise((resolve14) => setTimeout(resolve14, ms));
|
|
3727
3726
|
}
|
|
3728
|
-
var import_node_fs7, import_promises4, import_node_child_process4,
|
|
3727
|
+
var import_node_fs7, import_promises4, import_node_child_process4, import_node_os4, import_node_path10, STOP_GRACE_MS, FORCE_KILL_GRACE_MS, START_EXIT_CHECK_MS, DEFAULT_READY_TIMEOUT_MS, READY_POLL_MS, DAEMON_READY_TIMEOUT_ENV, SUPERVISOR_START_RUNNING_TIMEOUT_MS, SUPERVISOR_START_POLL_MS;
|
|
3729
3728
|
var init_daemon = __esm({
|
|
3730
3729
|
"src/daemon.ts"() {
|
|
3731
3730
|
"use strict";
|
|
3732
3731
|
import_node_fs7 = require("node:fs");
|
|
3733
3732
|
import_promises4 = require("node:fs/promises");
|
|
3734
3733
|
import_node_child_process4 = require("node:child_process");
|
|
3735
|
-
|
|
3734
|
+
import_node_os4 = require("node:os");
|
|
3736
3735
|
import_node_path10 = require("node:path");
|
|
3737
3736
|
init_paths();
|
|
3738
3737
|
init_session_store();
|
|
@@ -26940,7 +26939,7 @@ function buildConnectParams(config, instanceId, protocolVersion) {
|
|
|
26940
26939
|
client: {
|
|
26941
26940
|
id: "gateway-client",
|
|
26942
26941
|
displayName: "okx-a2a-node",
|
|
26943
|
-
version: "0.2.
|
|
26942
|
+
version: "0.2.16-beta-ca2f5282c7-260921143311",
|
|
26944
26943
|
platform: "node",
|
|
26945
26944
|
mode: "backend",
|
|
26946
26945
|
instanceId
|
|
@@ -26951,7 +26950,7 @@ function buildConnectParams(config, instanceId, protocolVersion) {
|
|
|
26951
26950
|
commands: [],
|
|
26952
26951
|
permissions: {},
|
|
26953
26952
|
locale: Intl.DateTimeFormat().resolvedOptions().locale || "en-US",
|
|
26954
|
-
userAgent: `okx-a2a-node/${"0.2.
|
|
26953
|
+
userAgent: `okx-a2a-node/${"0.2.16-beta-ca2f5282c7-260921143311"}`,
|
|
26955
26954
|
auth: {
|
|
26956
26955
|
...config.token ? { token: config.token } : {},
|
|
26957
26956
|
...config.password ? { password: config.password } : {}
|
|
@@ -27646,7 +27645,7 @@ function readSingleActiveOriginSessionKey(env) {
|
|
|
27646
27645
|
}
|
|
27647
27646
|
}
|
|
27648
27647
|
function resolveTaskHome2(env) {
|
|
27649
|
-
return env.OKX_AGENT_TASK_HOME?.trim() || (0, import_node_path16.join)((0,
|
|
27648
|
+
return env.OKX_AGENT_TASK_HOME?.trim() || (0, import_node_path16.join)((0, import_node_os5.homedir)(), ".okx-agent-task");
|
|
27650
27649
|
}
|
|
27651
27650
|
function logOpenClawRouteSkip(reason, input) {
|
|
27652
27651
|
if (reason === "missing_gateway_session_key") {
|
|
@@ -27687,12 +27686,12 @@ function safeDecode2(value) {
|
|
|
27687
27686
|
return value;
|
|
27688
27687
|
}
|
|
27689
27688
|
}
|
|
27690
|
-
var import_node_fs12,
|
|
27689
|
+
var import_node_fs12, import_node_os5, import_node_path16, CURRENT_GATEWAY_SESSION_KEYS_ENV, NON_DELIVERY_CHANNELS, ACTIVE_ORIGIN_TTL_MS;
|
|
27691
27690
|
var init_openclaw_route = __esm({
|
|
27692
27691
|
"src/openclaw-route.ts"() {
|
|
27693
27692
|
"use strict";
|
|
27694
27693
|
import_node_fs12 = require("node:fs");
|
|
27695
|
-
|
|
27694
|
+
import_node_os5 = require("node:os");
|
|
27696
27695
|
import_node_path16 = require("node:path");
|
|
27697
27696
|
CURRENT_GATEWAY_SESSION_KEYS_ENV = "OKX_A2A_CURRENT_GATEWAY_SESSION_KEYS";
|
|
27698
27697
|
NON_DELIVERY_CHANNELS = /* @__PURE__ */ new Set(["heartbeat", "cron", "webhook", "voice"]);
|
|
@@ -29010,7 +29009,7 @@ var init_sentry_config = __esm({
|
|
|
29010
29009
|
environment = process.env.SENTRY_ENV === "dev" ? "dev" : "prod";
|
|
29011
29010
|
SENTRY_CONFIG = {
|
|
29012
29011
|
projectName: "okx/openclaw-okx-a2a-extension",
|
|
29013
|
-
release: "0.2.
|
|
29012
|
+
release: "0.2.16-beta-ca2f5282c7-260921143311",
|
|
29014
29013
|
environment,
|
|
29015
29014
|
runtimeContainer: normalizeRuntimeContainer(process.env.OKX_A2A_RUNTIME_CONTAINER)
|
|
29016
29015
|
};
|
|
@@ -39647,7 +39646,7 @@ function providerConfigCandidates(provider, taskHome2) {
|
|
|
39647
39646
|
if (provider === "codex") {
|
|
39648
39647
|
return [
|
|
39649
39648
|
{
|
|
39650
|
-
path: (0, import_node_path21.join)(process.env.CODEX_HOME ?? (0, import_node_path21.join)((0,
|
|
39649
|
+
path: (0, import_node_path21.join)(process.env.CODEX_HOME ?? (0, import_node_path21.join)((0, import_node_os6.homedir)(), ".codex"), "config.toml"),
|
|
39651
39650
|
archiveName: "config.redacted.toml"
|
|
39652
39651
|
}
|
|
39653
39652
|
];
|
|
@@ -39655,7 +39654,7 @@ function providerConfigCandidates(provider, taskHome2) {
|
|
|
39655
39654
|
if (provider === "claude") {
|
|
39656
39655
|
return [
|
|
39657
39656
|
{
|
|
39658
|
-
path: (0, import_node_path21.join)((0,
|
|
39657
|
+
path: (0, import_node_path21.join)((0, import_node_os6.homedir)(), ".claude", "settings.json"),
|
|
39659
39658
|
archiveName: "settings.redacted.json"
|
|
39660
39659
|
},
|
|
39661
39660
|
{
|
|
@@ -39686,10 +39685,10 @@ function providerConfigCandidates(provider, taskHome2) {
|
|
|
39686
39685
|
}
|
|
39687
39686
|
function resolveOpenClawStateDir() {
|
|
39688
39687
|
const configured = process.env.OPENCLAW_STATE_DIR?.trim() || process.env.OPENCLAW_HOME?.trim();
|
|
39689
|
-
return (0, import_node_path21.resolve)(configured || (0, import_node_path21.join)((0,
|
|
39688
|
+
return (0, import_node_path21.resolve)(configured || (0, import_node_path21.join)((0, import_node_os6.homedir)(), ".openclaw"));
|
|
39690
39689
|
}
|
|
39691
39690
|
function resolveHermesHome() {
|
|
39692
|
-
return (0, import_node_path21.resolve)(process.env.HERMES_HOME?.trim() || (0, import_node_path21.join)((0,
|
|
39691
|
+
return (0, import_node_path21.resolve)(process.env.HERMES_HOME?.trim() || (0, import_node_path21.join)((0, import_node_os6.homedir)(), ".hermes"));
|
|
39693
39692
|
}
|
|
39694
39693
|
function providerEnvironment(provider) {
|
|
39695
39694
|
const prefixes = provider === "codex" ? ["OKX_A2A_AI_CODEX_", "CODEX_"] : provider === "claude" ? ["OKX_A2A_AI_CLAUDE_", "ANTHROPIC_MODEL", "CLAUDE_"] : provider === "openclaw" ? ["OPENCLAW_", "OKX_A2A_OPENCLAW_"] : ["HERMES_", "OKX_A2A_HERMES_"];
|
|
@@ -39734,12 +39733,12 @@ function probeVersion(command) {
|
|
|
39734
39733
|
function isProvider2(value) {
|
|
39735
39734
|
return typeof value === "string" && PROVIDERS2.includes(value);
|
|
39736
39735
|
}
|
|
39737
|
-
var import_node_child_process6,
|
|
39736
|
+
var import_node_child_process6, import_node_os6, import_node_path21, PROVIDERS2;
|
|
39738
39737
|
var init_logs_export_provider = __esm({
|
|
39739
39738
|
"src/logs-export-provider.ts"() {
|
|
39740
39739
|
"use strict";
|
|
39741
39740
|
import_node_child_process6 = require("node:child_process");
|
|
39742
|
-
|
|
39741
|
+
import_node_os6 = require("node:os");
|
|
39743
39742
|
import_node_path21 = require("node:path");
|
|
39744
39743
|
init_logs_export_filter();
|
|
39745
39744
|
PROVIDERS2 = ["codex", "claude", "openclaw", "hermes"];
|
|
@@ -40180,7 +40179,7 @@ async function exportDiagnosticLogs(options) {
|
|
|
40180
40179
|
node: process.version,
|
|
40181
40180
|
platform: process.platform,
|
|
40182
40181
|
arch: process.arch,
|
|
40183
|
-
packageVersion: true ? "0.2.
|
|
40182
|
+
packageVersion: true ? "0.2.16-beta-ca2f5282c7-260921143311" : "unknown",
|
|
40184
40183
|
sensitiveContentIncluded: options.includeSensitiveContent,
|
|
40185
40184
|
listenerAndLlmContentIncluded: true,
|
|
40186
40185
|
credentialsAlwaysRedacted: true,
|
|
@@ -40521,7 +40520,7 @@ async function collectCommands(state, paths, options) {
|
|
|
40521
40520
|
}
|
|
40522
40521
|
async function collectOnchainAudit(state, options, correlationIds) {
|
|
40523
40522
|
await runCollector(state, "onchainos-audit", async () => {
|
|
40524
|
-
const onchainHome = process.env.ONCHAINOS_HOME?.trim() ? (0, import_node_path23.resolve)(process.env.ONCHAINOS_HOME) : (0, import_node_path23.join)((0,
|
|
40523
|
+
const onchainHome = process.env.ONCHAINOS_HOME?.trim() ? (0, import_node_path23.resolve)(process.env.ONCHAINOS_HOME) : (0, import_node_path23.join)((0, import_node_os7.homedir)(), ".onchainos");
|
|
40525
40524
|
const auditPath = (0, import_node_path23.join)(onchainHome, "audit.jsonl");
|
|
40526
40525
|
const output5 = await readFilteredLog(
|
|
40527
40526
|
auditPath,
|
|
@@ -41038,14 +41037,14 @@ function readOption(args, name) {
|
|
|
41038
41037
|
const index2 = args.indexOf(name);
|
|
41039
41038
|
return index2 === -1 ? void 0 : args[index2 + 1];
|
|
41040
41039
|
}
|
|
41041
|
-
var import_node_child_process7, import_node_fs19, import_promises11,
|
|
41040
|
+
var import_node_child_process7, import_node_fs19, import_promises11, import_node_os7, import_node_path23, import_jszip, DEFAULT_MAX_SIZE_MB, MAX_HERMES_ROTATED_LOG_FILES, MAX_OPENCLAW_AGENTS, MAX_OPENCLAW_SESSION_FILES, ISO_TIMESTAMP_WITH_ZONE;
|
|
41042
41041
|
var init_logs_export = __esm({
|
|
41043
41042
|
"src/logs-export.ts"() {
|
|
41044
41043
|
"use strict";
|
|
41045
41044
|
import_node_child_process7 = require("node:child_process");
|
|
41046
41045
|
import_node_fs19 = require("node:fs");
|
|
41047
41046
|
import_promises11 = require("node:fs/promises");
|
|
41048
|
-
|
|
41047
|
+
import_node_os7 = require("node:os");
|
|
41049
41048
|
import_node_path23 = require("node:path");
|
|
41050
41049
|
import_jszip = __toESM(require_lib3());
|
|
41051
41050
|
init_logs_export_archive();
|
|
@@ -63207,10 +63206,10 @@ function readCodexAddDirs(env = process.env) {
|
|
|
63207
63206
|
}
|
|
63208
63207
|
function expandHomePath(value) {
|
|
63209
63208
|
if (value === "~") {
|
|
63210
|
-
return (0,
|
|
63209
|
+
return (0, import_node_os8.homedir)();
|
|
63211
63210
|
}
|
|
63212
63211
|
if (value.startsWith("~/")) {
|
|
63213
|
-
return (0, import_node_path30.join)((0,
|
|
63212
|
+
return (0, import_node_path30.join)((0, import_node_os8.homedir)(), value.slice(2));
|
|
63214
63213
|
}
|
|
63215
63214
|
return value;
|
|
63216
63215
|
}
|
|
@@ -63427,7 +63426,7 @@ function formatOpenClawSessionKey(sessionKey, agentId) {
|
|
|
63427
63426
|
function buildClaudeAddDirArgs(homeDir, env) {
|
|
63428
63427
|
const dirs = [
|
|
63429
63428
|
homeDir,
|
|
63430
|
-
(0, import_node_path30.join)((0,
|
|
63429
|
+
(0, import_node_path30.join)((0, import_node_os8.homedir)(), ".agents"),
|
|
63431
63430
|
(0, import_node_path30.join)(__dirname, ".."),
|
|
63432
63431
|
...env.OKX_A2A_AI_CLAUDE_ADD_DIRS ? env.OKX_A2A_AI_CLAUDE_ADD_DIRS.split(import_node_path30.delimiter).filter(Boolean) : []
|
|
63433
63432
|
];
|
|
@@ -63484,12 +63483,12 @@ function applyArgTemplate(template, options) {
|
|
|
63484
63483
|
return arg.replaceAll("{prompt}", options.prompt).replaceAll("{sessionId}", options.sessionId ?? "").replaceAll("{homeDir}", homeDir).replaceAll("{cwd}", cwd).replaceAll("{repoCli}", (0, import_node_path30.join)(__dirname, "cli.js"));
|
|
63485
63484
|
});
|
|
63486
63485
|
}
|
|
63487
|
-
var
|
|
63486
|
+
var import_node_os8, import_node_path30, CLAUDE_ALLOWED_TOOLS, CLAUDE_PERMISSION_MODES, CODEX_SANDBOX_MODES, CODEX_APPROVAL_POLICIES;
|
|
63488
63487
|
var init_ai_adapter = __esm({
|
|
63489
63488
|
"src/ai-adapter.ts"() {
|
|
63490
63489
|
"use strict";
|
|
63491
63490
|
init_log();
|
|
63492
|
-
|
|
63491
|
+
import_node_os8 = require("node:os");
|
|
63493
63492
|
import_node_path30 = require("node:path");
|
|
63494
63493
|
init_ai_command();
|
|
63495
63494
|
init_paths();
|
|
@@ -63970,7 +63969,7 @@ function extractDeniedFilesystemPath(text) {
|
|
|
63970
63969
|
}
|
|
63971
63970
|
function getPreferredCodexWritableRoot(target) {
|
|
63972
63971
|
const expanded = expandHomePath2(target);
|
|
63973
|
-
const home = (0,
|
|
63972
|
+
const home = (0, import_node_os9.homedir)();
|
|
63974
63973
|
const appRoots = [
|
|
63975
63974
|
(0, import_node_path31.join)(home, ".onchainos", "task"),
|
|
63976
63975
|
(0, import_node_path31.join)(home, ".onchainos", "deliverables"),
|
|
@@ -63989,16 +63988,16 @@ function inferAppOwnedCodexWritableRoot(failure) {
|
|
|
63989
63988
|
return void 0;
|
|
63990
63989
|
}
|
|
63991
63990
|
if (containsOnchainosCommand(command) && /\b0x[0-9a-fA-F]{16,}\b/.test(command)) {
|
|
63992
|
-
return (0, import_node_path31.join)((0,
|
|
63991
|
+
return (0, import_node_path31.join)((0, import_node_os9.homedir)(), ".onchainos", "task");
|
|
63993
63992
|
}
|
|
63994
63993
|
return void 0;
|
|
63995
63994
|
}
|
|
63996
63995
|
function expandHomePath2(value) {
|
|
63997
63996
|
if (value === "~") {
|
|
63998
|
-
return (0,
|
|
63997
|
+
return (0, import_node_os9.homedir)();
|
|
63999
63998
|
}
|
|
64000
63999
|
if (value.startsWith("~/")) {
|
|
64001
|
-
return (0, import_node_path31.join)((0,
|
|
64000
|
+
return (0, import_node_path31.join)((0, import_node_os9.homedir)(), value.slice(2));
|
|
64002
64001
|
}
|
|
64003
64002
|
return value;
|
|
64004
64003
|
}
|
|
@@ -64983,7 +64982,7 @@ function shortenJobId2(jobId) {
|
|
|
64983
64982
|
}
|
|
64984
64983
|
return `${jobId.slice(0, 6)}\u2026${jobId.slice(-4)}`;
|
|
64985
64984
|
}
|
|
64986
|
-
var import_node_crypto13, import_node_fs26, import_promises12,
|
|
64985
|
+
var import_node_crypto13, import_node_fs26, import_promises12, import_node_os9, import_node_path31, AiRunner, CODEX_TOOL_FAILURE_MARKER;
|
|
64987
64986
|
var init_ai_runner = __esm({
|
|
64988
64987
|
"src/ai-runner.ts"() {
|
|
64989
64988
|
"use strict";
|
|
@@ -64991,7 +64990,7 @@ var init_ai_runner = __esm({
|
|
|
64991
64990
|
import_node_crypto13 = require("node:crypto");
|
|
64992
64991
|
import_node_fs26 = require("node:fs");
|
|
64993
64992
|
import_promises12 = require("node:fs/promises");
|
|
64994
|
-
|
|
64993
|
+
import_node_os9 = require("node:os");
|
|
64995
64994
|
import_node_path31 = require("node:path");
|
|
64996
64995
|
init_ai_command();
|
|
64997
64996
|
init_paths();
|
|
@@ -65781,7 +65780,7 @@ var init_ai_runner = __esm({
|
|
|
65781
65780
|
process.env.OKX_AGENT_TASK_AI_CWD,
|
|
65782
65781
|
this.sessionStore.getSetting("ai_working_dir"),
|
|
65783
65782
|
safeProcessCwd(),
|
|
65784
|
-
(0,
|
|
65783
|
+
(0, import_node_os9.homedir)(),
|
|
65785
65784
|
this.homeDir
|
|
65786
65785
|
];
|
|
65787
65786
|
return candidates.find((candidate) => !!candidate && isDirectory(candidate)) ?? this.homeDir;
|
|
@@ -69449,7 +69448,7 @@ async function isGatewayAvailableForHeartbeat(options) {
|
|
|
69449
69448
|
}
|
|
69450
69449
|
async function getHermesGatewayPluginStatus(options = {}) {
|
|
69451
69450
|
const env = options.env ?? process.env;
|
|
69452
|
-
const hermesHome = env.HERMES_HOME?.trim() || (0, import_node_path32.join)((0,
|
|
69451
|
+
const hermesHome = env.HERMES_HOME?.trim() || (0, import_node_path32.join)((0, import_node_os10.homedir)(), ".hermes");
|
|
69453
69452
|
const pluginYamlPath = (0, import_node_path32.join)(hermesHome, "plugins", "platforms", "okx-a2a", "plugin.yaml");
|
|
69454
69453
|
if (!(0, import_node_fs27.existsSync)(pluginYamlPath)) {
|
|
69455
69454
|
return { enabled: false, reason: "plugin_yaml_missing", hermesHome, checkedPath: pluginYamlPath };
|
|
@@ -69564,14 +69563,14 @@ async function runListener(options = {}) {
|
|
|
69564
69563
|
const evictedPid = await claimActiveDaemon(paths.homeDir);
|
|
69565
69564
|
if (evictedPid !== null) {
|
|
69566
69565
|
logWithTimestamp(
|
|
69567
|
-
`[okx-agent-task] stopped previous daemon pid=${evictedPid}
|
|
69566
|
+
`[okx-agent-task] stopped previous daemon pid=${evictedPid} for home=${paths.homeDir} (single-daemon-per-task-home policy)`
|
|
69568
69567
|
);
|
|
69569
69568
|
}
|
|
69570
69569
|
try {
|
|
69571
69570
|
await runListenerWithLock(options, paths);
|
|
69572
69571
|
} finally {
|
|
69573
69572
|
await daemonLock.release();
|
|
69574
|
-
await releaseActiveDaemon();
|
|
69573
|
+
await releaseActiveDaemon(paths.homeDir);
|
|
69575
69574
|
}
|
|
69576
69575
|
}
|
|
69577
69576
|
async function runListenerWithLock(options, paths) {
|
|
@@ -69686,12 +69685,12 @@ async function runListenerWithLock(options, paths) {
|
|
|
69686
69685
|
});
|
|
69687
69686
|
}
|
|
69688
69687
|
});
|
|
69689
|
-
service.setPluginVersion("0.2.
|
|
69688
|
+
service.setPluginVersion("0.2.16-beta-ca2f5282c7-260921143311");
|
|
69690
69689
|
await service.init();
|
|
69691
69690
|
const pluginVersionStatus = service.pluginVersionStatus;
|
|
69692
69691
|
if (pluginVersionStatus.unavailable) {
|
|
69693
69692
|
throw new Error(
|
|
69694
|
-
`@okxweb3/a2a-node v${"0.2.
|
|
69693
|
+
`@okxweb3/a2a-node v${"0.2.16-beta-ca2f5282c7-260921143311"} is below the required minimum v${pluginVersionStatus.minVersion}`
|
|
69695
69694
|
);
|
|
69696
69695
|
}
|
|
69697
69696
|
const systemConfig = service.getSystemConfig();
|
|
@@ -69719,7 +69718,7 @@ async function runListenerWithLock(options, paths) {
|
|
|
69719
69718
|
onchainosAgentId: "*",
|
|
69720
69719
|
reason: "system-config missing sentryDsn",
|
|
69721
69720
|
pluginId: "@okxweb3/a2a-node",
|
|
69722
|
-
pluginVersion: "0.2.
|
|
69721
|
+
pluginVersion: "0.2.16-beta-ca2f5282c7-260921143311"
|
|
69723
69722
|
});
|
|
69724
69723
|
}
|
|
69725
69724
|
logWithTimestamp(
|
|
@@ -70069,14 +70068,14 @@ async function timeSettled(fn) {
|
|
|
70069
70068
|
return { durationMs: Date.now() - startedAt, error };
|
|
70070
70069
|
}
|
|
70071
70070
|
}
|
|
70072
|
-
var import_node_fs27, import_promises13,
|
|
70071
|
+
var import_node_fs27, import_promises13, import_node_os10, import_node_path32, DEFAULT_OFFLINE_REPLAY_INTERVAL_SEC, DEFAULT_XMTP_CLIENT_RECYCLE_INTERVAL_SEC, XMTP_CLIENT_RECYCLE_INTERVAL_ENV, HEARTBEAT_GATEWAY_CHECK_TIMEOUT_MS, AUTH_RECOVERY_PROBE_INTERVAL_MS, AUTH_RECOVERY_REFRESH_BACKOFF_MS, AgentRefreshAuthGate, AgentRefreshCoordinator, ListenerDeferredTaskScheduler, ListenerMaintenanceGate, UPGRADE_RECOMMENDATION_IDEMPOTENCY_KEY, SHUTDOWN_FORCE_RESOLVE_MS;
|
|
70073
70072
|
var init_listener = __esm({
|
|
70074
70073
|
"src/listener.ts"() {
|
|
70075
70074
|
"use strict";
|
|
70076
70075
|
init_log();
|
|
70077
70076
|
import_node_fs27 = require("node:fs");
|
|
70078
70077
|
import_promises13 = require("node:fs/promises");
|
|
70079
|
-
|
|
70078
|
+
import_node_os10 = require("node:os");
|
|
70080
70079
|
import_node_path32 = require("node:path");
|
|
70081
70080
|
init_onchainos();
|
|
70082
70081
|
init_system_config();
|
|
@@ -114163,7 +114162,7 @@ function getUnsafeFileUploadReason(filePath, sensitiveUploadReg = []) {
|
|
|
114163
114162
|
if (configuredRule) {
|
|
114164
114163
|
return `SENSITIVE_UPLOAD_REG:${configuredRule}`;
|
|
114165
114164
|
}
|
|
114166
|
-
const home = safeRealpath((0,
|
|
114165
|
+
const home = safeRealpath((0, import_node_os11.homedir)());
|
|
114167
114166
|
if (!home) {
|
|
114168
114167
|
return null;
|
|
114169
114168
|
}
|
|
@@ -114200,10 +114199,10 @@ function matchSensitiveUploadReg(paths, patterns) {
|
|
|
114200
114199
|
}
|
|
114201
114200
|
function expandHome(filePath) {
|
|
114202
114201
|
if (filePath === "~") {
|
|
114203
|
-
return (0,
|
|
114202
|
+
return (0, import_node_os11.homedir)();
|
|
114204
114203
|
}
|
|
114205
114204
|
if (filePath.startsWith(`~${import_node_path34.sep}`)) {
|
|
114206
|
-
return (0, import_node_path34.join)((0,
|
|
114205
|
+
return (0, import_node_path34.join)((0, import_node_os11.homedir)(), filePath.slice(2));
|
|
114207
114206
|
}
|
|
114208
114207
|
return filePath;
|
|
114209
114208
|
}
|
|
@@ -114216,12 +114215,12 @@ function safeRealpath(path2) {
|
|
|
114216
114215
|
function isPathInside(target, dir) {
|
|
114217
114216
|
return target === dir || target.startsWith(`${dir}${import_node_path34.sep}`);
|
|
114218
114217
|
}
|
|
114219
|
-
var import_node_fs28,
|
|
114218
|
+
var import_node_fs28, import_node_os11, import_node_path34, SENSITIVE_HOME_DIRS, SENSITIVE_HOME_FILES, UNSAFE_FILE_UPLOAD_MESSAGE;
|
|
114220
114219
|
var init_file_upload_safety = __esm({
|
|
114221
114220
|
"../core/src/file-upload-safety.ts"() {
|
|
114222
114221
|
"use strict";
|
|
114223
114222
|
import_node_fs28 = require("node:fs");
|
|
114224
|
-
|
|
114223
|
+
import_node_os11 = require("node:os");
|
|
114225
114224
|
import_node_path34 = require("node:path");
|
|
114226
114225
|
SENSITIVE_HOME_DIRS = [
|
|
114227
114226
|
".ssh",
|
|
@@ -117218,7 +117217,7 @@ async function installWindowsNativeLauncher(options) {
|
|
|
117218
117217
|
}
|
|
117219
117218
|
const exePath = (0, import_node_path36.join)(options.targetDir, NATIVE_LAUNCHER_EXE_NAME);
|
|
117220
117219
|
(0, import_node_fs30.mkdirSync)(options.targetDir, { recursive: true });
|
|
117221
|
-
const work = (0, import_node_fs30.mkdtempSync)((0, import_node_path36.join)((0,
|
|
117220
|
+
const work = (0, import_node_fs30.mkdtempSync)((0, import_node_path36.join)((0, import_node_os12.tmpdir)(), "okx-a2a-sea-"));
|
|
117222
117221
|
try {
|
|
117223
117222
|
const entryPath = (0, import_node_path36.join)(work, "launcher-entry.js");
|
|
117224
117223
|
const blobPath = (0, import_node_path36.join)(work, "okx-a2a.blob");
|
|
@@ -117292,18 +117291,18 @@ async function ensureWindowsNativeLauncher(options = {}) {
|
|
|
117292
117291
|
if (existing) {
|
|
117293
117292
|
return { exePath: existing, installed: false };
|
|
117294
117293
|
}
|
|
117295
|
-
const targetDir = env.APPDATA ? (0, import_node_path36.join)(env.APPDATA, "npm") : (0, import_node_path36.join)(env.USERPROFILE ?? (0,
|
|
117294
|
+
const targetDir = env.APPDATA ? (0, import_node_path36.join)(env.APPDATA, "npm") : (0, import_node_path36.join)(env.USERPROFILE ?? (0, import_node_os12.homedir)(), ".local", "bin");
|
|
117296
117295
|
const result = await installWindowsNativeLauncher({ cliPath: resolveRunningCliPath(), targetDir });
|
|
117297
117296
|
return { exePath: result.exePath, installed: true };
|
|
117298
117297
|
}
|
|
117299
|
-
var import_node_child_process9, import_node_fs30, import_node_module,
|
|
117298
|
+
var import_node_child_process9, import_node_fs30, import_node_module, import_node_os12, import_node_path36, SEA_SENTINEL_FUSE, NATIVE_LAUNCHER_EXE_NAME, POSTJECT_SPEC, POSTJECT_BIN;
|
|
117300
117299
|
var init_win_native_launcher = __esm({
|
|
117301
117300
|
"src/win-native-launcher.ts"() {
|
|
117302
117301
|
"use strict";
|
|
117303
117302
|
import_node_child_process9 = require("node:child_process");
|
|
117304
117303
|
import_node_fs30 = require("node:fs");
|
|
117305
117304
|
import_node_module = require("node:module");
|
|
117306
|
-
|
|
117305
|
+
import_node_os12 = require("node:os");
|
|
117307
117306
|
import_node_path36 = require("node:path");
|
|
117308
117307
|
init_win_compat();
|
|
117309
117308
|
init_win_spawn();
|
|
@@ -118061,7 +118060,7 @@ async function getCurrentNodeCliVersion() {
|
|
|
118061
118060
|
return await getGlobalNpmPackageVersion(UPDATE_PACKAGES.node) ?? getBundledNodeCliVersion();
|
|
118062
118061
|
}
|
|
118063
118062
|
function getBundledNodeCliVersion() {
|
|
118064
|
-
return true ? "0.2.
|
|
118063
|
+
return true ? "0.2.16-beta-ca2f5282c7-260921143311" : null;
|
|
118065
118064
|
}
|
|
118066
118065
|
function readConfiguredAiProvider() {
|
|
118067
118066
|
const explicit = process.env.OKX_A2A_AI_PROVIDER || process.env.OKX_AGENT_TASK_AI_CLI;
|
|
@@ -118246,7 +118245,7 @@ async function updateHermes(release, options) {
|
|
|
118246
118245
|
assertNotRunningInsideGateway("hermes");
|
|
118247
118246
|
}
|
|
118248
118247
|
const spec = buildNpmPackageSpec("hermes", release);
|
|
118249
|
-
const workDir = await (0, import_promises15.mkdtemp)((0, import_node_path37.join)((0,
|
|
118248
|
+
const workDir = await (0, import_promises15.mkdtemp)((0, import_node_path37.join)((0, import_node_os13.tmpdir)(), `okx-a2a-${label}-hermes-`));
|
|
118250
118249
|
try {
|
|
118251
118250
|
console.log(`[${label}] downloading ${spec}`);
|
|
118252
118251
|
const npmTarball = await npmPack(spec, workDir);
|
|
@@ -118271,7 +118270,7 @@ async function updateHermes(release, options) {
|
|
|
118271
118270
|
}
|
|
118272
118271
|
}
|
|
118273
118272
|
async function installGatewayPluginForDoctor(target) {
|
|
118274
|
-
const release = isPrereleaseVersion("0.2.
|
|
118273
|
+
const release = isPrereleaseVersion("0.2.16-beta-ca2f5282c7-260921143311") ? "beta" : "latest";
|
|
118275
118274
|
const insideTargetGateway = detectGatewayInvocation() === target;
|
|
118276
118275
|
const options = {
|
|
118277
118276
|
restart: !insideTargetGateway,
|
|
@@ -118562,7 +118561,7 @@ function findFirstEnabledListItem(lines, startIndex, enabledIndent) {
|
|
|
118562
118561
|
return null;
|
|
118563
118562
|
}
|
|
118564
118563
|
function resolveHermesConfigPath() {
|
|
118565
|
-
return (0, import_node_path37.join)(process.env.HERMES_HOME ?? (0, import_node_path37.join)((0,
|
|
118564
|
+
return (0, import_node_path37.join)(process.env.HERMES_HOME ?? (0, import_node_path37.join)((0, import_node_os13.homedir)(), ".hermes"), "config.yaml");
|
|
118566
118565
|
}
|
|
118567
118566
|
function lineIndent(line) {
|
|
118568
118567
|
const match = line.match(/^\s*/);
|
|
@@ -118640,7 +118639,7 @@ async function assertGatewayPluginInstalled(target) {
|
|
|
118640
118639
|
);
|
|
118641
118640
|
}
|
|
118642
118641
|
function resolveHermesPluginYamlPath() {
|
|
118643
|
-
return (0, import_node_path37.join)(process.env.HERMES_HOME ?? (0, import_node_path37.join)((0,
|
|
118642
|
+
return (0, import_node_path37.join)(process.env.HERMES_HOME ?? (0, import_node_path37.join)((0, import_node_os13.homedir)(), ".hermes"), "plugins", "platforms", "okx-a2a", "plugin.yaml");
|
|
118644
118643
|
}
|
|
118645
118644
|
async function isGatewayPluginInstalled(target) {
|
|
118646
118645
|
if (target === "openclaw") {
|
|
@@ -118733,7 +118732,7 @@ function parsePackageVersionFromText(output5) {
|
|
|
118733
118732
|
return output5.match(/@okxweb3\/a2a-openclaw@([0-9A-Za-z.+-]+)/)?.[1] ?? null;
|
|
118734
118733
|
}
|
|
118735
118734
|
async function getInstalledHermesPluginVersion() {
|
|
118736
|
-
const pluginYaml = (0, import_node_path37.join)(process.env.HERMES_HOME ?? (0, import_node_path37.join)((0,
|
|
118735
|
+
const pluginYaml = (0, import_node_path37.join)(process.env.HERMES_HOME ?? (0, import_node_path37.join)((0, import_node_os13.homedir)(), ".hermes"), "plugins", "platforms", "okx-a2a", "plugin.yaml");
|
|
118737
118736
|
try {
|
|
118738
118737
|
const content2 = await (0, import_promises15.readFile)(pluginYaml, "utf8");
|
|
118739
118738
|
return parsePluginYamlVersion(content2);
|
|
@@ -119028,14 +119027,14 @@ function buildExternalCommandInvocation(command, args, platform = process.platfo
|
|
|
119028
119027
|
function formatExternalCommand(command, args) {
|
|
119029
119028
|
return [command, ...args].join(" ");
|
|
119030
119029
|
}
|
|
119031
|
-
var import_node_child_process10, import_node_fs31, import_promises15,
|
|
119030
|
+
var import_node_child_process10, import_node_fs31, import_promises15, import_node_os13, import_node_path37, UPDATE_PACKAGES, CODEX_NPM_PACKAGE, OPENCLAW_FORCE_INSTALL_FLAG, OPENCLAW_UNSAFE_INSTALL_FLAG, OKX_A2A_PLUGIN_ID, OPENCLAW_SESSION_DM_SCOPE_CONFIG_PATH, OPENCLAW_SESSION_DM_SCOPE_CONFIG_VALUE, OPENCLAW_PLUGIN_ALLOW_CONFIG_PATH, OPENCLAW_OKX_A2A_CONVERSATION_HOOK_ACCESS_CONFIG_PATH, DEFAULT_AI_PROVIDER_LOGIN_TIMEOUT_MS, PROVIDER_CLI_AUTH_PROBE_TIMEOUT_MS, SetupBlockedError, redirectCommandStdoutToStderr;
|
|
119032
119031
|
var init_update_cli = __esm({
|
|
119033
119032
|
"src/update-cli.ts"() {
|
|
119034
119033
|
"use strict";
|
|
119035
119034
|
import_node_child_process10 = require("node:child_process");
|
|
119036
119035
|
import_node_fs31 = require("node:fs");
|
|
119037
119036
|
import_promises15 = require("node:fs/promises");
|
|
119038
|
-
|
|
119037
|
+
import_node_os13 = require("node:os");
|
|
119039
119038
|
import_node_path37 = require("node:path");
|
|
119040
119039
|
init_ai_command();
|
|
119041
119040
|
init_win_spawn();
|
|
@@ -119324,7 +119323,7 @@ async function runDoctor(options = {}) {
|
|
|
119324
119323
|
platform: options.platform ?? process.platform,
|
|
119325
119324
|
env: options.env ?? process.env,
|
|
119326
119325
|
target: options.target ?? resolveDoctorTarget(options.env ?? process.env),
|
|
119327
|
-
cliVersion: options.cliVersion ?? (true ? "0.2.
|
|
119326
|
+
cliVersion: options.cliVersion ?? (true ? "0.2.16-beta-ca2f5282c7-260921143311" : "0.0.0"),
|
|
119328
119327
|
fixMode: options.fix === true,
|
|
119329
119328
|
nonInteractive: options.nonInteractive === true,
|
|
119330
119329
|
packageChanged: false,
|
|
@@ -120362,7 +120361,7 @@ var init_doctor_cli = __esm({
|
|
|
120362
120361
|
|
|
120363
120362
|
// src/cli.ts
|
|
120364
120363
|
var import_node_fs32 = require("node:fs");
|
|
120365
|
-
var
|
|
120364
|
+
var import_node_os14 = require("node:os");
|
|
120366
120365
|
var import_node_path39 = require("node:path");
|
|
120367
120366
|
init_daemon();
|
|
120368
120367
|
init_command_store();
|
|
@@ -120431,7 +120430,7 @@ init_sentry_config();
|
|
|
120431
120430
|
init_runtime_metadata();
|
|
120432
120431
|
var CURRENT_GATEWAY_SESSION_KEYS_ENV4 = "OKX_A2A_CURRENT_GATEWAY_SESSION_KEYS";
|
|
120433
120432
|
function printUsage3() {
|
|
120434
|
-
console.log(`okx-a2a ${"0.2.
|
|
120433
|
+
console.log(`okx-a2a ${"0.2.16-beta-ca2f5282c7-260921143311"}
|
|
120435
120434
|
|
|
120436
120435
|
Usage:
|
|
120437
120436
|
okx-a2a <command> [options]
|
|
@@ -120473,7 +120472,7 @@ Run \`okx-a2a <command> -h\` for command-specific help.
|
|
|
120473
120472
|
`);
|
|
120474
120473
|
}
|
|
120475
120474
|
function printVersion() {
|
|
120476
|
-
console.log("0.2.
|
|
120475
|
+
console.log("0.2.16-beta-ca2f5282c7-260921143311");
|
|
120477
120476
|
}
|
|
120478
120477
|
function printDaemonUsage() {
|
|
120479
120478
|
console.log(`Usage: okx-a2a daemon <start|restart|stop|status|autostart> [options]
|
|
@@ -120489,6 +120488,11 @@ Commands:
|
|
|
120489
120488
|
Print writer process status
|
|
120490
120489
|
daemon autostart <install|uninstall|status>
|
|
120491
120490
|
Manage OS autostart for okx-a2a run
|
|
120491
|
+
|
|
120492
|
+
Note: OKX_AGENT_TASK_HOME isolates each task home's local daemon state (pid, lock,
|
|
120493
|
+
logs, sqlite, xmtp) so daemons under different task homes run concurrently.
|
|
120494
|
+
This is LOCAL-STATE isolation only \u2014 it does not make it safe to run two
|
|
120495
|
+
daemons for the same real agent; use isolated test accounts/agents for that.
|
|
120492
120496
|
`);
|
|
120493
120497
|
}
|
|
120494
120498
|
function printLogsUsage() {
|
|
@@ -121844,7 +121848,7 @@ function resolveTaskHomeForSentryConfig() {
|
|
|
121844
121848
|
return process.env.OKX_AGENT_TASK_HOME;
|
|
121845
121849
|
}
|
|
121846
121850
|
try {
|
|
121847
|
-
const home = (0,
|
|
121851
|
+
const home = (0, import_node_os14.homedir)();
|
|
121848
121852
|
if (home) {
|
|
121849
121853
|
return (0, import_node_path39.join)(home, ".okx-agent-task");
|
|
121850
121854
|
}
|
|
@@ -121963,7 +121967,7 @@ async function main() {
|
|
|
121963
121967
|
if (command === "xmtp-test") {
|
|
121964
121968
|
const { handleXmtpTestCommand: handleXmtpTestCommand2 } = await Promise.resolve().then(() => (init_xmtp_test_cli(), xmtp_test_cli_exports));
|
|
121965
121969
|
await handleXmtpTestCommand2(process.argv.slice(3), {
|
|
121966
|
-
packageVersion: "0.2.
|
|
121970
|
+
packageVersion: "0.2.16-beta-ca2f5282c7-260921143311",
|
|
121967
121971
|
agentSdkVersion: "2.3.0",
|
|
121968
121972
|
nodeSdkVersion: "6.1.0",
|
|
121969
121973
|
nodeBindingsVersion: "1.11.0"
|
package/dist/index.js
CHANGED
|
@@ -1851,12 +1851,12 @@ async function acquireDaemonLock(paths, entry) {
|
|
|
1851
1851
|
}
|
|
1852
1852
|
return null;
|
|
1853
1853
|
}
|
|
1854
|
-
function activeDaemonPointerPath() {
|
|
1855
|
-
return (0, import_node_path4.join)(
|
|
1854
|
+
function activeDaemonPointerPath(homeDir = resolveA2aTaskHome()) {
|
|
1855
|
+
return (0, import_node_path4.join)(homeDir, "run", "active-daemon.json");
|
|
1856
1856
|
}
|
|
1857
|
-
async function readActiveDaemonPointer() {
|
|
1857
|
+
async function readActiveDaemonPointer(homeDir = resolveA2aTaskHome()) {
|
|
1858
1858
|
try {
|
|
1859
|
-
const raw = await (0, import_promises.readFile)(activeDaemonPointerPath(), "utf8");
|
|
1859
|
+
const raw = await (0, import_promises.readFile)(activeDaemonPointerPath(homeDir), "utf8");
|
|
1860
1860
|
const parsed = JSON.parse(raw);
|
|
1861
1861
|
return Number.isInteger(parsed.pid) && parsed.pid > 0 ? parsed : null;
|
|
1862
1862
|
} catch {
|
|
@@ -1865,14 +1865,14 @@ async function readActiveDaemonPointer() {
|
|
|
1865
1865
|
}
|
|
1866
1866
|
async function claimActiveDaemon(homeDir) {
|
|
1867
1867
|
let evictedPid = null;
|
|
1868
|
-
const current = await readActiveDaemonPointer();
|
|
1868
|
+
const current = await readActiveDaemonPointer(homeDir);
|
|
1869
1869
|
if (current && current.pid !== process.pid && isProcessAlive(current.pid)) {
|
|
1870
1870
|
if (await evictPid(current.pid)) {
|
|
1871
1871
|
evictedPid = current.pid;
|
|
1872
1872
|
}
|
|
1873
1873
|
}
|
|
1874
|
-
const pointerPath = activeDaemonPointerPath();
|
|
1875
|
-
|
|
1874
|
+
const pointerPath = activeDaemonPointerPath(homeDir);
|
|
1875
|
+
ensureTaskDir((0, import_node_path4.dirname)(pointerPath));
|
|
1876
1876
|
await (0, import_promises.writeFile)(pointerPath, `${JSON.stringify({
|
|
1877
1877
|
pid: process.pid,
|
|
1878
1878
|
homeDir,
|
|
@@ -1881,10 +1881,10 @@ async function claimActiveDaemon(homeDir) {
|
|
|
1881
1881
|
`, "utf8");
|
|
1882
1882
|
return evictedPid;
|
|
1883
1883
|
}
|
|
1884
|
-
async function releaseActiveDaemon() {
|
|
1885
|
-
const current = await readActiveDaemonPointer();
|
|
1884
|
+
async function releaseActiveDaemon(homeDir = resolveA2aTaskHome()) {
|
|
1885
|
+
const current = await readActiveDaemonPointer(homeDir);
|
|
1886
1886
|
if (current?.pid === process.pid) {
|
|
1887
|
-
await (0, import_promises.rm)(activeDaemonPointerPath(), { force: true });
|
|
1887
|
+
await (0, import_promises.rm)(activeDaemonPointerPath(homeDir), { force: true });
|
|
1888
1888
|
}
|
|
1889
1889
|
}
|
|
1890
1890
|
async function chmodBestEffort(path2, mode) {
|
|
@@ -1897,12 +1897,11 @@ async function chmodBestEffort(path2, mode) {
|
|
|
1897
1897
|
}
|
|
1898
1898
|
}
|
|
1899
1899
|
}
|
|
1900
|
-
var import_promises,
|
|
1900
|
+
var import_promises, import_node_path4, OWNER_FILE, EMPTY_LOCK_STALE_MS, DEFAULT_TAKEOVER_GRACE_MS, TAKEOVER_GRACE_ENV, TAKEOVER_POLL_MS, DAEMON_CAPABILITY_AI_DISPATCH, DAEMON_CAPABILITIES;
|
|
1901
1901
|
var init_daemon_lock = __esm({
|
|
1902
1902
|
"src/daemon-lock.ts"() {
|
|
1903
1903
|
"use strict";
|
|
1904
1904
|
import_promises = require("node:fs/promises");
|
|
1905
|
-
import_node_os2 = require("node:os");
|
|
1906
1905
|
import_node_path4 = require("node:path");
|
|
1907
1906
|
init_paths();
|
|
1908
1907
|
init_a2a_paths();
|
|
@@ -2430,7 +2429,7 @@ function collectCodexAppBundledCandidates(env = process.env, platform = process.
|
|
|
2430
2429
|
}
|
|
2431
2430
|
const roots = (env[CODEX_APP_DIRS_ENV] ?? "").split(import_node_path8.delimiter).filter(Boolean);
|
|
2432
2431
|
if (platform === "darwin") {
|
|
2433
|
-
roots.push("/Applications", (0, import_node_path8.join)(env.HOME || (0,
|
|
2432
|
+
roots.push("/Applications", (0, import_node_path8.join)(env.HOME || (0, import_node_os2.homedir)(), "Applications"));
|
|
2434
2433
|
}
|
|
2435
2434
|
const candidates = [];
|
|
2436
2435
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -2579,7 +2578,7 @@ function findExecutableCandidatesOnPath(command, pathValue, platform) {
|
|
|
2579
2578
|
return candidates;
|
|
2580
2579
|
}
|
|
2581
2580
|
function fallbackCandidates(command, env, platform = process.platform) {
|
|
2582
|
-
const home = (0,
|
|
2581
|
+
const home = (0, import_node_os2.homedir)();
|
|
2583
2582
|
const dirs = [
|
|
2584
2583
|
(0, import_node_path8.dirname)(process.execPath),
|
|
2585
2584
|
(0, import_node_path8.join)(home, ".local", "bin"),
|
|
@@ -2598,8 +2597,8 @@ function providerPathDirs(command, env) {
|
|
|
2598
2597
|
return [
|
|
2599
2598
|
(0, import_node_path8.isAbsolute)(command) ? (0, import_node_path8.dirname)(command) : void 0,
|
|
2600
2599
|
(0, import_node_path8.dirname)(process.execPath),
|
|
2601
|
-
(0, import_node_path8.join)((0,
|
|
2602
|
-
(0, import_node_path8.join)((0,
|
|
2600
|
+
(0, import_node_path8.join)((0, import_node_os2.homedir)(), ".local", "bin"),
|
|
2601
|
+
(0, import_node_path8.join)((0, import_node_os2.homedir)(), "Library", "pnpm"),
|
|
2603
2602
|
env.PNPM_HOME
|
|
2604
2603
|
].filter((dir) => !!dir);
|
|
2605
2604
|
}
|
|
@@ -2676,12 +2675,12 @@ function isCodexCommand(command) {
|
|
|
2676
2675
|
function isWindowsAppsPath(commandPath) {
|
|
2677
2676
|
return /(?:^|[\\/])WindowsApps(?:[\\/]|$)/i.test(commandPath);
|
|
2678
2677
|
}
|
|
2679
|
-
var import_node_fs5,
|
|
2678
|
+
var import_node_fs5, import_node_os2, import_node_path8, DEFAULT_AI_PROVIDER_TIMEOUT_MS, CODEX_PROBE_TIMEOUT_MS, CODEX_APP_DIRS_ENV, CODEX_COMMAND_OVERRIDE_ENV;
|
|
2680
2679
|
var init_ai_command = __esm({
|
|
2681
2680
|
"src/ai-command.ts"() {
|
|
2682
2681
|
"use strict";
|
|
2683
2682
|
import_node_fs5 = require("node:fs");
|
|
2684
|
-
|
|
2683
|
+
import_node_os2 = require("node:os");
|
|
2685
2684
|
import_node_path8 = require("node:path");
|
|
2686
2685
|
init_win_spawn();
|
|
2687
2686
|
DEFAULT_AI_PROVIDER_TIMEOUT_MS = null;
|
|
@@ -2729,14 +2728,14 @@ function isSystemdManagerUnavailableMessage(message) {
|
|
|
2729
2728
|
function isAutostartManagerUnavailableError(error) {
|
|
2730
2729
|
return error instanceof AutostartManagerUnavailableError || typeof error === "object" && error !== null && "code" in error && error.code === "AUTOSTART_MANAGER_UNAVAILABLE";
|
|
2731
2730
|
}
|
|
2732
|
-
function resolveSystemdAutostartPaths(home = (0,
|
|
2731
|
+
function resolveSystemdAutostartPaths(home = (0, import_node_os3.homedir)()) {
|
|
2733
2732
|
const serviceDir = (0, import_node_path9.join)(home, ".config", "systemd", "user");
|
|
2734
2733
|
return {
|
|
2735
2734
|
serviceDir,
|
|
2736
2735
|
servicePath: (0, import_node_path9.join)(serviceDir, SERVICE_NAME)
|
|
2737
2736
|
};
|
|
2738
2737
|
}
|
|
2739
|
-
function resolveLaunchdAutostartPaths(home = (0,
|
|
2738
|
+
function resolveLaunchdAutostartPaths(home = (0, import_node_os3.homedir)()) {
|
|
2740
2739
|
const agentDir = (0, import_node_path9.join)(home, "Library", "LaunchAgents");
|
|
2741
2740
|
return {
|
|
2742
2741
|
agentDir,
|
|
@@ -2756,13 +2755,13 @@ function resolveCliPath() {
|
|
|
2756
2755
|
}
|
|
2757
2756
|
return (0, import_node_path9.resolve)(entry);
|
|
2758
2757
|
}
|
|
2759
|
-
function requiredServicePathEntries(env = process.env, home = (0,
|
|
2758
|
+
function requiredServicePathEntries(env = process.env, home = (0, import_node_os3.homedir)(), platform = process.platform) {
|
|
2760
2759
|
const localBin = (0, import_node_path9.join)(home, ".local", "bin");
|
|
2761
2760
|
const explicit = env.ONCHAINOS_BIN?.trim();
|
|
2762
2761
|
const onchainosPath = (explicit ? resolveCommandPath(explicit, env, platform) : null) ?? resolveCommandPath("onchainos", env, platform);
|
|
2763
2762
|
return [...new Set([onchainosPath ? (0, import_node_path9.dirname)(onchainosPath) : null, localBin].filter((entry) => !!entry))];
|
|
2764
2763
|
}
|
|
2765
|
-
function buildServicePath(env = process.env, home = (0,
|
|
2764
|
+
function buildServicePath(env = process.env, home = (0, import_node_os3.homedir)(), platform = process.platform) {
|
|
2766
2765
|
const fallback = "/usr/local/bin:/usr/bin:/bin";
|
|
2767
2766
|
const entries = (env.PATH?.trim() || fallback).split(import_node_path9.delimiter).filter((entry) => !!entry);
|
|
2768
2767
|
const preferred = requiredServicePathEntries(env, home, platform);
|
|
@@ -2814,7 +2813,7 @@ ${args.map((arg) => ` <string>${escapeXml(arg)}</string>`).join("\n")}
|
|
|
2814
2813
|
<key>PATH</key>
|
|
2815
2814
|
<string>${escapeXml(pathValue)}</string>
|
|
2816
2815
|
<key>HOME</key>
|
|
2817
|
-
<string>${escapeXml((0,
|
|
2816
|
+
<string>${escapeXml((0, import_node_os3.homedir)())}</string>
|
|
2818
2817
|
<key>OKX_AGENT_TASK_HOME</key>
|
|
2819
2818
|
<string>${escapeXml(paths.homeDir)}</string>
|
|
2820
2819
|
</dict>
|
|
@@ -3299,14 +3298,14 @@ function autostartStatus() {
|
|
|
3299
3298
|
}
|
|
3300
3299
|
throw new Error(`autostart is not supported on ${process.platform}`);
|
|
3301
3300
|
}
|
|
3302
|
-
var import_node_child_process3, import_node_fs6, import_promises3,
|
|
3301
|
+
var import_node_child_process3, import_node_fs6, import_promises3, import_node_os3, import_node_path9, import_node_util, execFileAsync, SERVICE_NAME, LAUNCHD_LABEL, LAUNCHD_PLIST_NAME, AutostartManagerUnavailableError;
|
|
3303
3302
|
var init_autostart = __esm({
|
|
3304
3303
|
"src/autostart.ts"() {
|
|
3305
3304
|
"use strict";
|
|
3306
3305
|
import_node_child_process3 = require("node:child_process");
|
|
3307
3306
|
import_node_fs6 = require("node:fs");
|
|
3308
3307
|
import_promises3 = require("node:fs/promises");
|
|
3309
|
-
|
|
3308
|
+
import_node_os3 = require("node:os");
|
|
3310
3309
|
import_node_path9 = require("node:path");
|
|
3311
3310
|
import_node_util = require("node:util");
|
|
3312
3311
|
init_autostart_windows();
|
|
@@ -3518,7 +3517,7 @@ async function startDaemon(homeDir) {
|
|
|
3518
3517
|
}
|
|
3519
3518
|
function isDefaultTaskHome(homeDir) {
|
|
3520
3519
|
const target = (0, import_node_path10.resolve)(homeDir ?? resolveTaskHome());
|
|
3521
|
-
return target === (0, import_node_path10.resolve)((0, import_node_path10.join)((0,
|
|
3520
|
+
return target === (0, import_node_path10.resolve)((0, import_node_path10.join)((0, import_node_os4.homedir)(), ".okx-agent-task"));
|
|
3522
3521
|
}
|
|
3523
3522
|
async function shouldDelegateToSupervisor(homeDir, ops) {
|
|
3524
3523
|
if (!isDefaultTaskHome(homeDir)) {
|
|
@@ -3746,14 +3745,14 @@ function readReadyTimeoutMs(env) {
|
|
|
3746
3745
|
function sleep2(ms) {
|
|
3747
3746
|
return new Promise((resolve11) => setTimeout(resolve11, ms));
|
|
3748
3747
|
}
|
|
3749
|
-
var import_node_fs7, import_promises4, import_node_child_process4,
|
|
3748
|
+
var import_node_fs7, import_promises4, import_node_child_process4, import_node_os4, import_node_path10, STOP_GRACE_MS, FORCE_KILL_GRACE_MS, START_EXIT_CHECK_MS, DEFAULT_READY_TIMEOUT_MS, READY_POLL_MS, DAEMON_READY_TIMEOUT_ENV, SUPERVISOR_START_RUNNING_TIMEOUT_MS, SUPERVISOR_START_POLL_MS;
|
|
3750
3749
|
var init_daemon = __esm({
|
|
3751
3750
|
"src/daemon.ts"() {
|
|
3752
3751
|
"use strict";
|
|
3753
3752
|
import_node_fs7 = require("node:fs");
|
|
3754
3753
|
import_promises4 = require("node:fs/promises");
|
|
3755
3754
|
import_node_child_process4 = require("node:child_process");
|
|
3756
|
-
|
|
3755
|
+
import_node_os4 = require("node:os");
|
|
3757
3756
|
import_node_path10 = require("node:path");
|
|
3758
3757
|
init_paths();
|
|
3759
3758
|
init_session_store();
|
|
@@ -32449,7 +32448,7 @@ var init_sentry_config = __esm({
|
|
|
32449
32448
|
environment = process.env.SENTRY_ENV === "dev" ? "dev" : "prod";
|
|
32450
32449
|
SENTRY_CONFIG = {
|
|
32451
32450
|
projectName: "okx/openclaw-okx-a2a-extension",
|
|
32452
|
-
release: "0.2.
|
|
32451
|
+
release: "0.2.16-beta-ca2f5282c7-260921143311",
|
|
32453
32452
|
environment,
|
|
32454
32453
|
runtimeContainer: normalizeRuntimeContainer(process.env.OKX_A2A_RUNTIME_CONTAINER)
|
|
32455
32454
|
};
|
|
@@ -32562,7 +32561,7 @@ async function installWindowsNativeLauncher(options) {
|
|
|
32562
32561
|
}
|
|
32563
32562
|
const exePath = (0, import_node_path28.join)(options.targetDir, NATIVE_LAUNCHER_EXE_NAME);
|
|
32564
32563
|
(0, import_node_fs21.mkdirSync)(options.targetDir, { recursive: true });
|
|
32565
|
-
const work = (0, import_node_fs21.mkdtempSync)((0, import_node_path28.join)((0,
|
|
32564
|
+
const work = (0, import_node_fs21.mkdtempSync)((0, import_node_path28.join)((0, import_node_os9.tmpdir)(), "okx-a2a-sea-"));
|
|
32566
32565
|
try {
|
|
32567
32566
|
const entryPath = (0, import_node_path28.join)(work, "launcher-entry.js");
|
|
32568
32567
|
const blobPath = (0, import_node_path28.join)(work, "okx-a2a.blob");
|
|
@@ -32636,18 +32635,18 @@ async function ensureWindowsNativeLauncher(options = {}) {
|
|
|
32636
32635
|
if (existing) {
|
|
32637
32636
|
return { exePath: existing, installed: false };
|
|
32638
32637
|
}
|
|
32639
|
-
const targetDir = env.APPDATA ? (0, import_node_path28.join)(env.APPDATA, "npm") : (0, import_node_path28.join)(env.USERPROFILE ?? (0,
|
|
32638
|
+
const targetDir = env.APPDATA ? (0, import_node_path28.join)(env.APPDATA, "npm") : (0, import_node_path28.join)(env.USERPROFILE ?? (0, import_node_os9.homedir)(), ".local", "bin");
|
|
32640
32639
|
const result = await installWindowsNativeLauncher({ cliPath: resolveRunningCliPath(), targetDir });
|
|
32641
32640
|
return { exePath: result.exePath, installed: true };
|
|
32642
32641
|
}
|
|
32643
|
-
var import_node_child_process7, import_node_fs21, import_node_module,
|
|
32642
|
+
var import_node_child_process7, import_node_fs21, import_node_module, import_node_os9, import_node_path28, SEA_SENTINEL_FUSE, NATIVE_LAUNCHER_EXE_NAME, POSTJECT_SPEC, POSTJECT_BIN;
|
|
32644
32643
|
var init_win_native_launcher = __esm({
|
|
32645
32644
|
"src/win-native-launcher.ts"() {
|
|
32646
32645
|
"use strict";
|
|
32647
32646
|
import_node_child_process7 = require("node:child_process");
|
|
32648
32647
|
import_node_fs21 = require("node:fs");
|
|
32649
32648
|
import_node_module = require("node:module");
|
|
32650
|
-
|
|
32649
|
+
import_node_os9 = require("node:os");
|
|
32651
32650
|
import_node_path28 = require("node:path");
|
|
32652
32651
|
init_win_compat();
|
|
32653
32652
|
init_win_spawn();
|
|
@@ -33405,7 +33404,7 @@ async function getCurrentNodeCliVersion() {
|
|
|
33405
33404
|
return await getGlobalNpmPackageVersion(UPDATE_PACKAGES.node) ?? getBundledNodeCliVersion();
|
|
33406
33405
|
}
|
|
33407
33406
|
function getBundledNodeCliVersion() {
|
|
33408
|
-
return true ? "0.2.
|
|
33407
|
+
return true ? "0.2.16-beta-ca2f5282c7-260921143311" : null;
|
|
33409
33408
|
}
|
|
33410
33409
|
function readConfiguredAiProvider() {
|
|
33411
33410
|
const explicit = process.env.OKX_A2A_AI_PROVIDER || process.env.OKX_AGENT_TASK_AI_CLI;
|
|
@@ -33590,7 +33589,7 @@ async function updateHermes(release, options) {
|
|
|
33590
33589
|
assertNotRunningInsideGateway("hermes");
|
|
33591
33590
|
}
|
|
33592
33591
|
const spec = buildNpmPackageSpec("hermes", release);
|
|
33593
|
-
const workDir = await (0, import_promises11.mkdtemp)((0, import_node_path29.join)((0,
|
|
33592
|
+
const workDir = await (0, import_promises11.mkdtemp)((0, import_node_path29.join)((0, import_node_os10.tmpdir)(), `okx-a2a-${label}-hermes-`));
|
|
33594
33593
|
try {
|
|
33595
33594
|
console.log(`[${label}] downloading ${spec}`);
|
|
33596
33595
|
const npmTarball = await npmPack(spec, workDir);
|
|
@@ -33615,7 +33614,7 @@ async function updateHermes(release, options) {
|
|
|
33615
33614
|
}
|
|
33616
33615
|
}
|
|
33617
33616
|
async function installGatewayPluginForDoctor(target) {
|
|
33618
|
-
const release = isPrereleaseVersion("0.2.
|
|
33617
|
+
const release = isPrereleaseVersion("0.2.16-beta-ca2f5282c7-260921143311") ? "beta" : "latest";
|
|
33619
33618
|
const insideTargetGateway = detectGatewayInvocation() === target;
|
|
33620
33619
|
const options = {
|
|
33621
33620
|
restart: !insideTargetGateway,
|
|
@@ -33906,7 +33905,7 @@ function findFirstEnabledListItem(lines, startIndex, enabledIndent) {
|
|
|
33906
33905
|
return null;
|
|
33907
33906
|
}
|
|
33908
33907
|
function resolveHermesConfigPath() {
|
|
33909
|
-
return (0, import_node_path29.join)(process.env.HERMES_HOME ?? (0, import_node_path29.join)((0,
|
|
33908
|
+
return (0, import_node_path29.join)(process.env.HERMES_HOME ?? (0, import_node_path29.join)((0, import_node_os10.homedir)(), ".hermes"), "config.yaml");
|
|
33910
33909
|
}
|
|
33911
33910
|
function lineIndent(line) {
|
|
33912
33911
|
const match = line.match(/^\s*/);
|
|
@@ -33984,7 +33983,7 @@ async function assertGatewayPluginInstalled(target) {
|
|
|
33984
33983
|
);
|
|
33985
33984
|
}
|
|
33986
33985
|
function resolveHermesPluginYamlPath() {
|
|
33987
|
-
return (0, import_node_path29.join)(process.env.HERMES_HOME ?? (0, import_node_path29.join)((0,
|
|
33986
|
+
return (0, import_node_path29.join)(process.env.HERMES_HOME ?? (0, import_node_path29.join)((0, import_node_os10.homedir)(), ".hermes"), "plugins", "platforms", "okx-a2a", "plugin.yaml");
|
|
33988
33987
|
}
|
|
33989
33988
|
async function isGatewayPluginInstalled(target) {
|
|
33990
33989
|
if (target === "openclaw") {
|
|
@@ -34077,7 +34076,7 @@ function parsePackageVersionFromText(output) {
|
|
|
34077
34076
|
return output.match(/@okxweb3\/a2a-openclaw@([0-9A-Za-z.+-]+)/)?.[1] ?? null;
|
|
34078
34077
|
}
|
|
34079
34078
|
async function getInstalledHermesPluginVersion() {
|
|
34080
|
-
const pluginYaml = (0, import_node_path29.join)(process.env.HERMES_HOME ?? (0, import_node_path29.join)((0,
|
|
34079
|
+
const pluginYaml = (0, import_node_path29.join)(process.env.HERMES_HOME ?? (0, import_node_path29.join)((0, import_node_os10.homedir)(), ".hermes"), "plugins", "platforms", "okx-a2a", "plugin.yaml");
|
|
34081
34080
|
try {
|
|
34082
34081
|
const content = await (0, import_promises11.readFile)(pluginYaml, "utf8");
|
|
34083
34082
|
return parsePluginYamlVersion(content);
|
|
@@ -34372,14 +34371,14 @@ function buildExternalCommandInvocation(command, args, platform = process.platfo
|
|
|
34372
34371
|
function formatExternalCommand(command, args) {
|
|
34373
34372
|
return [command, ...args].join(" ");
|
|
34374
34373
|
}
|
|
34375
|
-
var import_node_child_process8, import_node_fs22, import_promises11,
|
|
34374
|
+
var import_node_child_process8, import_node_fs22, import_promises11, import_node_os10, import_node_path29, UPDATE_PACKAGES, CODEX_NPM_PACKAGE, OPENCLAW_FORCE_INSTALL_FLAG, OPENCLAW_UNSAFE_INSTALL_FLAG, OKX_A2A_PLUGIN_ID, OPENCLAW_SESSION_DM_SCOPE_CONFIG_PATH, OPENCLAW_SESSION_DM_SCOPE_CONFIG_VALUE, OPENCLAW_PLUGIN_ALLOW_CONFIG_PATH, OPENCLAW_OKX_A2A_CONVERSATION_HOOK_ACCESS_CONFIG_PATH, DEFAULT_AI_PROVIDER_LOGIN_TIMEOUT_MS, PROVIDER_CLI_AUTH_PROBE_TIMEOUT_MS, SetupBlockedError, redirectCommandStdoutToStderr;
|
|
34376
34375
|
var init_update_cli = __esm({
|
|
34377
34376
|
"src/update-cli.ts"() {
|
|
34378
34377
|
"use strict";
|
|
34379
34378
|
import_node_child_process8 = require("node:child_process");
|
|
34380
34379
|
import_node_fs22 = require("node:fs");
|
|
34381
34380
|
import_promises11 = require("node:fs/promises");
|
|
34382
|
-
|
|
34381
|
+
import_node_os10 = require("node:os");
|
|
34383
34382
|
import_node_path29 = require("node:path");
|
|
34384
34383
|
init_ai_command();
|
|
34385
34384
|
init_win_spawn();
|
|
@@ -44600,7 +44599,7 @@ init_log();
|
|
|
44600
44599
|
var import_node_crypto4 = require("node:crypto");
|
|
44601
44600
|
var import_node_fs11 = require("node:fs");
|
|
44602
44601
|
var import_promises7 = require("node:fs/promises");
|
|
44603
|
-
var
|
|
44602
|
+
var import_node_os6 = require("node:os");
|
|
44604
44603
|
var import_node_path16 = require("node:path");
|
|
44605
44604
|
init_ai_command();
|
|
44606
44605
|
init_paths();
|
|
@@ -44887,7 +44886,7 @@ init_ai_provider();
|
|
|
44887
44886
|
|
|
44888
44887
|
// src/ai-adapter.ts
|
|
44889
44888
|
init_log();
|
|
44890
|
-
var
|
|
44889
|
+
var import_node_os5 = require("node:os");
|
|
44891
44890
|
var import_node_path14 = require("node:path");
|
|
44892
44891
|
init_ai_command();
|
|
44893
44892
|
init_paths();
|
|
@@ -45113,10 +45112,10 @@ function readCodexAddDirs(env = process.env) {
|
|
|
45113
45112
|
}
|
|
45114
45113
|
function expandHomePath(value) {
|
|
45115
45114
|
if (value === "~") {
|
|
45116
|
-
return (0,
|
|
45115
|
+
return (0, import_node_os5.homedir)();
|
|
45117
45116
|
}
|
|
45118
45117
|
if (value.startsWith("~/")) {
|
|
45119
|
-
return (0, import_node_path14.join)((0,
|
|
45118
|
+
return (0, import_node_path14.join)((0, import_node_os5.homedir)(), value.slice(2));
|
|
45120
45119
|
}
|
|
45121
45120
|
return value;
|
|
45122
45121
|
}
|
|
@@ -45333,7 +45332,7 @@ function formatOpenClawSessionKey(sessionKey, agentId) {
|
|
|
45333
45332
|
function buildClaudeAddDirArgs(homeDir, env) {
|
|
45334
45333
|
const dirs = [
|
|
45335
45334
|
homeDir,
|
|
45336
|
-
(0, import_node_path14.join)((0,
|
|
45335
|
+
(0, import_node_path14.join)((0, import_node_os5.homedir)(), ".agents"),
|
|
45337
45336
|
(0, import_node_path14.join)(__dirname, ".."),
|
|
45338
45337
|
...env.OKX_A2A_AI_CLAUDE_ADD_DIRS ? env.OKX_A2A_AI_CLAUDE_ADD_DIRS.split(import_node_path14.delimiter).filter(Boolean) : []
|
|
45339
45338
|
];
|
|
@@ -46443,7 +46442,7 @@ var AiRunner = class {
|
|
|
46443
46442
|
process.env.OKX_AGENT_TASK_AI_CWD,
|
|
46444
46443
|
this.sessionStore.getSetting("ai_working_dir"),
|
|
46445
46444
|
safeProcessCwd(),
|
|
46446
|
-
(0,
|
|
46445
|
+
(0, import_node_os6.homedir)(),
|
|
46447
46446
|
this.homeDir
|
|
46448
46447
|
];
|
|
46449
46448
|
return candidates.find((candidate) => !!candidate && isDirectory(candidate)) ?? this.homeDir;
|
|
@@ -47022,7 +47021,7 @@ function extractDeniedFilesystemPath(text) {
|
|
|
47022
47021
|
}
|
|
47023
47022
|
function getPreferredCodexWritableRoot(target) {
|
|
47024
47023
|
const expanded = expandHomePath2(target);
|
|
47025
|
-
const home = (0,
|
|
47024
|
+
const home = (0, import_node_os6.homedir)();
|
|
47026
47025
|
const appRoots = [
|
|
47027
47026
|
(0, import_node_path16.join)(home, ".onchainos", "task"),
|
|
47028
47027
|
(0, import_node_path16.join)(home, ".onchainos", "deliverables"),
|
|
@@ -47041,16 +47040,16 @@ function inferAppOwnedCodexWritableRoot(failure) {
|
|
|
47041
47040
|
return void 0;
|
|
47042
47041
|
}
|
|
47043
47042
|
if (containsOnchainosCommand(command) && /\b0x[0-9a-fA-F]{16,}\b/.test(command)) {
|
|
47044
|
-
return (0, import_node_path16.join)((0,
|
|
47043
|
+
return (0, import_node_path16.join)((0, import_node_os6.homedir)(), ".onchainos", "task");
|
|
47045
47044
|
}
|
|
47046
47045
|
return void 0;
|
|
47047
47046
|
}
|
|
47048
47047
|
function expandHomePath2(value) {
|
|
47049
47048
|
if (value === "~") {
|
|
47050
|
-
return (0,
|
|
47049
|
+
return (0, import_node_os6.homedir)();
|
|
47051
47050
|
}
|
|
47052
47051
|
if (value.startsWith("~/")) {
|
|
47053
|
-
return (0, import_node_path16.join)((0,
|
|
47052
|
+
return (0, import_node_path16.join)((0, import_node_os6.homedir)(), value.slice(2));
|
|
47054
47053
|
}
|
|
47055
47054
|
return value;
|
|
47056
47055
|
}
|
|
@@ -61333,7 +61332,7 @@ function buildConnectParams(config, instanceId, protocolVersion) {
|
|
|
61333
61332
|
client: {
|
|
61334
61333
|
id: "gateway-client",
|
|
61335
61334
|
displayName: "okx-a2a-node",
|
|
61336
|
-
version: "0.2.
|
|
61335
|
+
version: "0.2.16-beta-ca2f5282c7-260921143311",
|
|
61337
61336
|
platform: "node",
|
|
61338
61337
|
mode: "backend",
|
|
61339
61338
|
instanceId
|
|
@@ -61344,7 +61343,7 @@ function buildConnectParams(config, instanceId, protocolVersion) {
|
|
|
61344
61343
|
commands: [],
|
|
61345
61344
|
permissions: {},
|
|
61346
61345
|
locale: Intl.DateTimeFormat().resolvedOptions().locale || "en-US",
|
|
61347
|
-
userAgent: `okx-a2a-node/${"0.2.
|
|
61346
|
+
userAgent: `okx-a2a-node/${"0.2.16-beta-ca2f5282c7-260921143311"}`,
|
|
61348
61347
|
auth: {
|
|
61349
61348
|
...config.token ? { token: config.token } : {},
|
|
61350
61349
|
...config.password ? { password: config.password } : {}
|
|
@@ -61471,7 +61470,7 @@ function safeDecode(value) {
|
|
|
61471
61470
|
|
|
61472
61471
|
// src/openclaw-route.ts
|
|
61473
61472
|
var import_node_fs18 = require("node:fs");
|
|
61474
|
-
var
|
|
61473
|
+
var import_node_os7 = require("node:os");
|
|
61475
61474
|
var import_node_path24 = require("node:path");
|
|
61476
61475
|
var OPENCLAW_GATEWAY_ROUTE_GROUP_ID = "__openclaw_gateway_route__";
|
|
61477
61476
|
var CURRENT_GATEWAY_SESSION_KEYS_ENV = "OKX_A2A_CURRENT_GATEWAY_SESSION_KEYS";
|
|
@@ -61823,7 +61822,7 @@ function readSingleActiveOriginSessionKey(env) {
|
|
|
61823
61822
|
}
|
|
61824
61823
|
}
|
|
61825
61824
|
function resolveTaskHome2(env) {
|
|
61826
|
-
return env.OKX_AGENT_TASK_HOME?.trim() || (0, import_node_path24.join)((0,
|
|
61825
|
+
return env.OKX_AGENT_TASK_HOME?.trim() || (0, import_node_path24.join)((0, import_node_os7.homedir)(), ".okx-agent-task");
|
|
61827
61826
|
}
|
|
61828
61827
|
function logOpenClawRouteSkip(reason, input) {
|
|
61829
61828
|
if (reason === "missing_gateway_session_key") {
|
|
@@ -66938,7 +66937,7 @@ function isA2AEnvelope(payload) {
|
|
|
66938
66937
|
init_log();
|
|
66939
66938
|
var import_node_fs19 = require("node:fs");
|
|
66940
66939
|
var import_promises8 = require("node:fs/promises");
|
|
66941
|
-
var
|
|
66940
|
+
var import_node_os8 = require("node:os");
|
|
66942
66941
|
var import_node_path25 = require("node:path");
|
|
66943
66942
|
|
|
66944
66943
|
// ../core/src/xmtp-sdk/onchainos/signer.ts
|
|
@@ -67445,7 +67444,7 @@ async function isGatewayAvailableForHeartbeat(options) {
|
|
|
67445
67444
|
}
|
|
67446
67445
|
async function getHermesGatewayPluginStatus(options = {}) {
|
|
67447
67446
|
const env = options.env ?? process.env;
|
|
67448
|
-
const hermesHome = env.HERMES_HOME?.trim() || (0, import_node_path25.join)((0,
|
|
67447
|
+
const hermesHome = env.HERMES_HOME?.trim() || (0, import_node_path25.join)((0, import_node_os8.homedir)(), ".hermes");
|
|
67449
67448
|
const pluginYamlPath = (0, import_node_path25.join)(hermesHome, "plugins", "platforms", "okx-a2a", "plugin.yaml");
|
|
67450
67449
|
if (!(0, import_node_fs19.existsSync)(pluginYamlPath)) {
|
|
67451
67450
|
return { enabled: false, reason: "plugin_yaml_missing", hermesHome, checkedPath: pluginYamlPath };
|
|
@@ -67561,14 +67560,14 @@ async function runListener(options = {}) {
|
|
|
67561
67560
|
const evictedPid = await claimActiveDaemon(paths.homeDir);
|
|
67562
67561
|
if (evictedPid !== null) {
|
|
67563
67562
|
logWithTimestamp(
|
|
67564
|
-
`[okx-agent-task] stopped previous daemon pid=${evictedPid}
|
|
67563
|
+
`[okx-agent-task] stopped previous daemon pid=${evictedPid} for home=${paths.homeDir} (single-daemon-per-task-home policy)`
|
|
67565
67564
|
);
|
|
67566
67565
|
}
|
|
67567
67566
|
try {
|
|
67568
67567
|
await runListenerWithLock(options, paths);
|
|
67569
67568
|
} finally {
|
|
67570
67569
|
await daemonLock.release();
|
|
67571
|
-
await releaseActiveDaemon();
|
|
67570
|
+
await releaseActiveDaemon(paths.homeDir);
|
|
67572
67571
|
}
|
|
67573
67572
|
}
|
|
67574
67573
|
async function runListenerWithLock(options, paths) {
|
|
@@ -67683,12 +67682,12 @@ async function runListenerWithLock(options, paths) {
|
|
|
67683
67682
|
});
|
|
67684
67683
|
}
|
|
67685
67684
|
});
|
|
67686
|
-
service.setPluginVersion("0.2.
|
|
67685
|
+
service.setPluginVersion("0.2.16-beta-ca2f5282c7-260921143311");
|
|
67687
67686
|
await service.init();
|
|
67688
67687
|
const pluginVersionStatus = service.pluginVersionStatus;
|
|
67689
67688
|
if (pluginVersionStatus.unavailable) {
|
|
67690
67689
|
throw new Error(
|
|
67691
|
-
`@okxweb3/a2a-node v${"0.2.
|
|
67690
|
+
`@okxweb3/a2a-node v${"0.2.16-beta-ca2f5282c7-260921143311"} is below the required minimum v${pluginVersionStatus.minVersion}`
|
|
67692
67691
|
);
|
|
67693
67692
|
}
|
|
67694
67693
|
const systemConfig = service.getSystemConfig();
|
|
@@ -67716,7 +67715,7 @@ async function runListenerWithLock(options, paths) {
|
|
|
67716
67715
|
onchainosAgentId: "*",
|
|
67717
67716
|
reason: "system-config missing sentryDsn",
|
|
67718
67717
|
pluginId: "@okxweb3/a2a-node",
|
|
67719
|
-
pluginVersion: "0.2.
|
|
67718
|
+
pluginVersion: "0.2.16-beta-ca2f5282c7-260921143311"
|
|
67720
67719
|
});
|
|
67721
67720
|
}
|
|
67722
67721
|
logWithTimestamp(
|
|
@@ -69173,7 +69172,7 @@ function parseLogsTailArgs(args, subcommand) {
|
|
|
69173
69172
|
var import_node_child_process10 = require("node:child_process");
|
|
69174
69173
|
var import_node_fs27 = require("node:fs");
|
|
69175
69174
|
var import_promises15 = require("node:fs/promises");
|
|
69176
|
-
var
|
|
69175
|
+
var import_node_os12 = require("node:os");
|
|
69177
69176
|
var import_node_path34 = require("node:path");
|
|
69178
69177
|
var import_jszip = __toESM(require_lib3());
|
|
69179
69178
|
|
|
@@ -69997,14 +69996,14 @@ function unavailable(message) {
|
|
|
69997
69996
|
|
|
69998
69997
|
// src/logs-export-provider.ts
|
|
69999
69998
|
var import_node_child_process9 = require("node:child_process");
|
|
70000
|
-
var
|
|
69999
|
+
var import_node_os11 = require("node:os");
|
|
70001
70000
|
var import_node_path32 = require("node:path");
|
|
70002
70001
|
var PROVIDERS2 = ["codex", "claude", "openclaw", "hermes"];
|
|
70003
70002
|
function providerConfigCandidates(provider, taskHome2) {
|
|
70004
70003
|
if (provider === "codex") {
|
|
70005
70004
|
return [
|
|
70006
70005
|
{
|
|
70007
|
-
path: (0, import_node_path32.join)(process.env.CODEX_HOME ?? (0, import_node_path32.join)((0,
|
|
70006
|
+
path: (0, import_node_path32.join)(process.env.CODEX_HOME ?? (0, import_node_path32.join)((0, import_node_os11.homedir)(), ".codex"), "config.toml"),
|
|
70008
70007
|
archiveName: "config.redacted.toml"
|
|
70009
70008
|
}
|
|
70010
70009
|
];
|
|
@@ -70012,7 +70011,7 @@ function providerConfigCandidates(provider, taskHome2) {
|
|
|
70012
70011
|
if (provider === "claude") {
|
|
70013
70012
|
return [
|
|
70014
70013
|
{
|
|
70015
|
-
path: (0, import_node_path32.join)((0,
|
|
70014
|
+
path: (0, import_node_path32.join)((0, import_node_os11.homedir)(), ".claude", "settings.json"),
|
|
70016
70015
|
archiveName: "settings.redacted.json"
|
|
70017
70016
|
},
|
|
70018
70017
|
{
|
|
@@ -70043,10 +70042,10 @@ function providerConfigCandidates(provider, taskHome2) {
|
|
|
70043
70042
|
}
|
|
70044
70043
|
function resolveOpenClawStateDir() {
|
|
70045
70044
|
const configured = process.env.OPENCLAW_STATE_DIR?.trim() || process.env.OPENCLAW_HOME?.trim();
|
|
70046
|
-
return (0, import_node_path32.resolve)(configured || (0, import_node_path32.join)((0,
|
|
70045
|
+
return (0, import_node_path32.resolve)(configured || (0, import_node_path32.join)((0, import_node_os11.homedir)(), ".openclaw"));
|
|
70047
70046
|
}
|
|
70048
70047
|
function resolveHermesHome() {
|
|
70049
|
-
return (0, import_node_path32.resolve)(process.env.HERMES_HOME?.trim() || (0, import_node_path32.join)((0,
|
|
70048
|
+
return (0, import_node_path32.resolve)(process.env.HERMES_HOME?.trim() || (0, import_node_path32.join)((0, import_node_os11.homedir)(), ".hermes"));
|
|
70050
70049
|
}
|
|
70051
70050
|
function providerEnvironment(provider) {
|
|
70052
70051
|
const prefixes = provider === "codex" ? ["OKX_A2A_AI_CODEX_", "CODEX_"] : provider === "claude" ? ["OKX_A2A_AI_CLAUDE_", "ANTHROPIC_MODEL", "CLAUDE_"] : provider === "openclaw" ? ["OPENCLAW_", "OKX_A2A_OPENCLAW_"] : ["HERMES_", "OKX_A2A_HERMES_"];
|
|
@@ -70489,7 +70488,7 @@ async function exportDiagnosticLogs(options) {
|
|
|
70489
70488
|
node: process.version,
|
|
70490
70489
|
platform: process.platform,
|
|
70491
70490
|
arch: process.arch,
|
|
70492
|
-
packageVersion: true ? "0.2.
|
|
70491
|
+
packageVersion: true ? "0.2.16-beta-ca2f5282c7-260921143311" : "unknown",
|
|
70493
70492
|
sensitiveContentIncluded: options.includeSensitiveContent,
|
|
70494
70493
|
listenerAndLlmContentIncluded: true,
|
|
70495
70494
|
credentialsAlwaysRedacted: true,
|
|
@@ -70830,7 +70829,7 @@ async function collectCommands(state, paths, options) {
|
|
|
70830
70829
|
}
|
|
70831
70830
|
async function collectOnchainAudit(state, options, correlationIds) {
|
|
70832
70831
|
await runCollector(state, "onchainos-audit", async () => {
|
|
70833
|
-
const onchainHome = process.env.ONCHAINOS_HOME?.trim() ? (0, import_node_path34.resolve)(process.env.ONCHAINOS_HOME) : (0, import_node_path34.join)((0,
|
|
70832
|
+
const onchainHome = process.env.ONCHAINOS_HOME?.trim() ? (0, import_node_path34.resolve)(process.env.ONCHAINOS_HOME) : (0, import_node_path34.join)((0, import_node_os12.homedir)(), ".onchainos");
|
|
70834
70833
|
const auditPath = (0, import_node_path34.join)(onchainHome, "audit.jsonl");
|
|
70835
70834
|
const output = await readFilteredLog(
|
|
70836
70835
|
auditPath,
|
|
@@ -72401,7 +72400,7 @@ async function runDoctor(options = {}) {
|
|
|
72401
72400
|
platform: options.platform ?? process.platform,
|
|
72402
72401
|
env: options.env ?? process.env,
|
|
72403
72402
|
target: options.target ?? resolveDoctorTarget(options.env ?? process.env),
|
|
72404
|
-
cliVersion: options.cliVersion ?? (true ? "0.2.
|
|
72403
|
+
cliVersion: options.cliVersion ?? (true ? "0.2.16-beta-ca2f5282c7-260921143311" : "0.0.0"),
|
|
72405
72404
|
fixMode: options.fix === true,
|
|
72406
72405
|
nonInteractive: options.nonInteractive === true,
|
|
72407
72406
|
packageChanged: false,
|
package/package.json
CHANGED