@perkos/perkos-a2a 0.12.22 → 0.12.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/dist/agent.js +3 -2
- package/dist/agent.js.map +1 -1
- package/dist/bridge-agent.js +0 -0
- package/dist/bridge-chat-reply.d.ts.map +1 -1
- package/dist/bridge-chat-reply.js +3 -2
- package/dist/bridge-chat-reply.js.map +1 -1
- package/dist/connect.d.ts +9 -0
- package/dist/connect.d.ts.map +1 -0
- package/dist/connect.js +31 -0
- package/dist/connect.js.map +1 -0
- package/dist/hermes-plugin.d.ts +2 -0
- package/dist/hermes-plugin.d.ts.map +1 -1
- package/dist/hermes-plugin.js +4 -2
- package/dist/hermes-plugin.js.map +1 -1
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +322 -267
- package/dist/index.js.map +4 -4
- package/dist/platform-heartbeat.d.ts +4 -0
- package/dist/platform-heartbeat.d.ts.map +1 -1
- package/dist/platform-heartbeat.js +5 -5
- package/dist/platform-heartbeat.js.map +1 -1
- package/dist/repair-cli.d.ts +3 -0
- package/dist/repair-cli.d.ts.map +1 -0
- package/dist/repair-cli.js +40 -0
- package/dist/repair-cli.js.map +1 -0
- package/dist/repair.d.ts +58 -0
- package/dist/repair.d.ts.map +1 -0
- package/dist/repair.js +359 -0
- package/dist/repair.js.map +1 -0
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/openclaw.plugin.json +28 -1
- package/package.json +7 -5
|
@@ -18,5 +18,9 @@ export declare function startPlatformHeartbeat(opts: {
|
|
|
18
18
|
fetcher?: typeof fetch;
|
|
19
19
|
logger: PlatformHeartbeatLogger;
|
|
20
20
|
intervalMs?: number;
|
|
21
|
+
url?: string;
|
|
22
|
+
relayKey?: string;
|
|
23
|
+
runtimeKind?: "openclaw" | "hermes" | "custom";
|
|
24
|
+
version?: string;
|
|
21
25
|
}): PlatformHeartbeatHandle;
|
|
22
26
|
//# sourceMappingURL=platform-heartbeat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-heartbeat.d.ts","sourceRoot":"","sources":["../src/platform-heartbeat.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,IAAI,IAAI,CAAC;CACd,CAAC;AAKF;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,MAAM,EAAE,uBAAuB,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"platform-heartbeat.d.ts","sourceRoot":"","sources":["../src/platform-heartbeat.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,IAAI,IAAI,CAAC;CACd,CAAC;AAKF;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,MAAM,EAAE,uBAAuB,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,uBAAuB,CAuE1B"}
|
|
@@ -11,8 +11,8 @@ const MIN_INTERVAL_MS = 10_000;
|
|
|
11
11
|
export function startPlatformHeartbeat(opts) {
|
|
12
12
|
const env = opts.env ?? process.env;
|
|
13
13
|
const fetcher = opts.fetcher ?? fetch;
|
|
14
|
-
const url = env.PERKOS_HEARTBEAT_URL?.trim();
|
|
15
|
-
const relayKey = env.A2A_RELAY_API_KEY?.trim();
|
|
14
|
+
const url = opts.url?.trim() || env.PERKOS_HEARTBEAT_URL?.trim();
|
|
15
|
+
const relayKey = opts.relayKey?.trim() || env.A2A_RELAY_API_KEY?.trim();
|
|
16
16
|
if (!url || !relayKey)
|
|
17
17
|
return { stop: () => undefined };
|
|
18
18
|
const configuredInterval = Number(opts.intervalMs ?? env.PERKOS_HEARTBEAT_INTERVAL_MS ?? DEFAULT_INTERVAL_MS);
|
|
@@ -20,11 +20,11 @@ export function startPlatformHeartbeat(opts) {
|
|
|
20
20
|
? Math.max(MIN_INTERVAL_MS, configuredInterval)
|
|
21
21
|
: DEFAULT_INTERVAL_MS;
|
|
22
22
|
const a2aRuntime = env.A2A_RUNTIME?.trim() || "hermes-api";
|
|
23
|
-
const runtimeKind = a2aRuntime === "openclaw"
|
|
23
|
+
const runtimeKind = opts.runtimeKind ?? (a2aRuntime === "openclaw"
|
|
24
24
|
? "openclaw"
|
|
25
25
|
: a2aRuntime === "custom"
|
|
26
26
|
? "custom"
|
|
27
|
-
: "hermes";
|
|
27
|
+
: "hermes");
|
|
28
28
|
let stopped = false;
|
|
29
29
|
let firstSuccess = true;
|
|
30
30
|
const report = async () => {
|
|
@@ -40,7 +40,7 @@ export function startPlatformHeartbeat(opts) {
|
|
|
40
40
|
},
|
|
41
41
|
body: JSON.stringify({
|
|
42
42
|
runtimeKind,
|
|
43
|
-
version: env.PERKOS_A2A_VERSION?.trim() || "0.12.
|
|
43
|
+
version: opts.version?.trim() || env.PERKOS_A2A_VERSION?.trim() || "0.12.26",
|
|
44
44
|
ts: Date.now(),
|
|
45
45
|
}),
|
|
46
46
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-heartbeat.js","sourceRoot":"","sources":["../src/platform-heartbeat.ts"],"names":[],"mappings":"AASA,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,eAAe,GAAG,MAAM,CAAC;AAE/B;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"platform-heartbeat.js","sourceRoot":"","sources":["../src/platform-heartbeat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repair-cli.d.ts","sourceRoot":"","sources":["../src/repair-cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { connectOpenClaw } from "./connect.js";
|
|
3
|
+
import { repairOpenClaw } from "./repair.js";
|
|
4
|
+
function value(flag) {
|
|
5
|
+
const index = process.argv.indexOf(flag);
|
|
6
|
+
return index >= 0 ? process.argv[index + 1] : undefined;
|
|
7
|
+
}
|
|
8
|
+
function required(flag) {
|
|
9
|
+
const found = value(flag);
|
|
10
|
+
if (!found)
|
|
11
|
+
throw new Error(`missing required argument: ${flag}`);
|
|
12
|
+
return found;
|
|
13
|
+
}
|
|
14
|
+
async function main() {
|
|
15
|
+
const command = process.argv[2];
|
|
16
|
+
if (command !== "repair" && command !== "connect") {
|
|
17
|
+
throw new Error("usage: perkos-a2a <connect|repair> --artifact <plugin.tgz> --sha256 <digest> --agent-name <name> --agent-id <id> [--relay-api-key <key>] [--json]");
|
|
18
|
+
}
|
|
19
|
+
const common = {
|
|
20
|
+
artifactPath: required("--artifact"),
|
|
21
|
+
artifactSha256: required("--sha256"),
|
|
22
|
+
expectedAgentName: required("--agent-name"),
|
|
23
|
+
expectedAgentId: required("--agent-id"),
|
|
24
|
+
timeoutMs: value("--timeout-ms") ? Number(value("--timeout-ms")) : undefined,
|
|
25
|
+
};
|
|
26
|
+
const relayApiKey = value("--relay-api-key") ?? process.env.A2A_RELAY_API_KEY;
|
|
27
|
+
if (command === "connect" && !relayApiKey) {
|
|
28
|
+
throw new Error("missing relay credential: set A2A_RELAY_API_KEY or pass --relay-api-key");
|
|
29
|
+
}
|
|
30
|
+
const result = command === "connect"
|
|
31
|
+
? await connectOpenClaw({ ...common, relayApiKey: relayApiKey })
|
|
32
|
+
: await repairOpenClaw(common);
|
|
33
|
+
process.stdout.write(`${JSON.stringify(result)}\n`);
|
|
34
|
+
}
|
|
35
|
+
main().catch((error) => {
|
|
36
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
37
|
+
process.stdout.write(`${JSON.stringify({ ok: false, error: message })}\n`);
|
|
38
|
+
process.exitCode = 1;
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=repair-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repair-cli.js","sourceRoot":"","sources":["../src/repair-cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,SAAS,KAAK,CAAC,IAAY;IACzB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,mJAAmJ,CAAC,CAAC;IACvK,CAAC;IACD,MAAM,MAAM,GAAG;QACb,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC;QACpC,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC;QACpC,iBAAiB,EAAE,QAAQ,CAAC,cAAc,CAAC;QAC3C,eAAe,EAAE,QAAQ,CAAC,YAAY,CAAC;QACvC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;KAC7E,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC9E,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,KAAK,SAAS;QAClC,CAAC,CAAC,MAAM,eAAe,CAAC,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,WAAY,EAAE,CAAC;QACjE,CAAC,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
package/dist/repair.d.ts
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
type JsonObject = Record<string, unknown>;
|
|
2
|
+
export interface RepairOptions {
|
|
3
|
+
artifactPath: string;
|
|
4
|
+
artifactSha256: string;
|
|
5
|
+
expectedAgentName: string;
|
|
6
|
+
expectedAgentId: string;
|
|
7
|
+
/** Used only when this identity has no existing PerkOS plugin config. */
|
|
8
|
+
initialConfig?: JsonObject;
|
|
9
|
+
openclawBin?: string;
|
|
10
|
+
stateDir?: string;
|
|
11
|
+
configPath?: string;
|
|
12
|
+
timeoutMs?: number;
|
|
13
|
+
pollIntervalMs?: number;
|
|
14
|
+
skipRestart?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface CommandResult {
|
|
17
|
+
code: number;
|
|
18
|
+
stdout: string;
|
|
19
|
+
stderr: string;
|
|
20
|
+
}
|
|
21
|
+
export type CommandRunner = (command: string, args: string[]) => Promise<CommandResult>;
|
|
22
|
+
export interface RepairResult {
|
|
23
|
+
ok: boolean;
|
|
24
|
+
version: string;
|
|
25
|
+
mode: "installed" | "repaired";
|
|
26
|
+
artifactVerified: boolean;
|
|
27
|
+
source: "managed-npm";
|
|
28
|
+
normalized: boolean;
|
|
29
|
+
removedUnsupportedPaths: string[];
|
|
30
|
+
quarantinedLegacyExtension: boolean;
|
|
31
|
+
configValid: boolean;
|
|
32
|
+
pluginDoctorClean: boolean;
|
|
33
|
+
restart: {
|
|
34
|
+
requested: boolean;
|
|
35
|
+
verified: boolean;
|
|
36
|
+
beforePid?: number;
|
|
37
|
+
afterPid?: number;
|
|
38
|
+
beforeStartTime?: string;
|
|
39
|
+
afterStartTime?: string;
|
|
40
|
+
};
|
|
41
|
+
postRestart: {
|
|
42
|
+
connected: boolean;
|
|
43
|
+
registered: boolean;
|
|
44
|
+
heartbeat200: boolean;
|
|
45
|
+
chatAuthed: boolean;
|
|
46
|
+
duplicatePlugin: boolean;
|
|
47
|
+
duplicateRegistration: boolean;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export declare function normalizeToSchema(value: unknown, schema: unknown, at?: string): {
|
|
51
|
+
value: unknown;
|
|
52
|
+
removed: string[];
|
|
53
|
+
};
|
|
54
|
+
export declare function postRestartStateFromLogs(output: string, agentName: string, startedAt: number): RepairResult["postRestart"];
|
|
55
|
+
export declare const defaultCommandRunner: CommandRunner;
|
|
56
|
+
export declare function repairOpenClaw(options: RepairOptions, run?: CommandRunner): Promise<RepairResult>;
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=repair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repair.d.ts","sourceRoot":"","sources":["../src/repair.ts"],"names":[],"mappings":"AAOA,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;AAExF,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,0BAA0B,EAAE,OAAO,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE;QACP,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,WAAW,EAAE;QACX,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,EAAE,OAAO,CAAC;QACtB,UAAU,EAAE,OAAO,CAAC;QACpB,eAAe,EAAE,OAAO,CAAC;QACzB,qBAAqB,EAAE,OAAO,CAAC;KAChC,CAAC;CACH;AA0BD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,SAAK,GAAG;IAC3E,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAyBA;AA4FD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAE1H;AAaD,eAAO,MAAM,oBAAoB,EAAE,aAQjC,CAAC;AA6CH,wBAAsB,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,GAAE,aAAoC,GAAG,OAAO,CAAC,YAAY,CAAC,CAmI7H"}
|
package/dist/repair.js
ADDED
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
import { mkdtemp, mkdir, readFile, realpath, rename, rm, stat, writeFile } from "node:fs/promises";
|
|
4
|
+
import { homedir, tmpdir } from "node:os";
|
|
5
|
+
import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
const PROTECTED_PATHS = [
|
|
8
|
+
"agentName",
|
|
9
|
+
"relay.apiKey",
|
|
10
|
+
"relay.url",
|
|
11
|
+
"chat.apiKey",
|
|
12
|
+
"chat.url",
|
|
13
|
+
"platform.agentId",
|
|
14
|
+
"platform.heartbeatUrl",
|
|
15
|
+
"runtime.kind",
|
|
16
|
+
"runtime.sessionKey",
|
|
17
|
+
];
|
|
18
|
+
function isObject(value) {
|
|
19
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
20
|
+
}
|
|
21
|
+
function getAt(value, dotted) {
|
|
22
|
+
return dotted.split(".").reduce((current, key) => isObject(current) ? current[key] : undefined, value);
|
|
23
|
+
}
|
|
24
|
+
function sameValue(left, right) {
|
|
25
|
+
return JSON.stringify(left) === JSON.stringify(right);
|
|
26
|
+
}
|
|
27
|
+
export function normalizeToSchema(value, schema, at = "") {
|
|
28
|
+
if (Array.isArray(value)) {
|
|
29
|
+
const itemSchema = isObject(schema) ? schema.items : undefined;
|
|
30
|
+
const normalized = value.map((item, index) => normalizeToSchema(item, itemSchema, `${at}[${index}]`));
|
|
31
|
+
return { value: normalized.map((item) => item.value), removed: normalized.flatMap((item) => item.removed) };
|
|
32
|
+
}
|
|
33
|
+
if (!isObject(value))
|
|
34
|
+
return { value, removed: [] };
|
|
35
|
+
const rule = isObject(schema) ? schema : {};
|
|
36
|
+
const properties = isObject(rule.properties) ? rule.properties : {};
|
|
37
|
+
const additional = rule.additionalProperties;
|
|
38
|
+
const output = {};
|
|
39
|
+
const removed = [];
|
|
40
|
+
for (const [key, child] of Object.entries(value)) {
|
|
41
|
+
const childPath = at ? `${at}.${key}` : key;
|
|
42
|
+
const childSchema = properties[key] ?? (isObject(additional) ? additional : undefined);
|
|
43
|
+
if (!childSchema) {
|
|
44
|
+
removed.push(childPath);
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const normalized = normalizeToSchema(child, childSchema, childPath);
|
|
48
|
+
output[key] = normalized.value;
|
|
49
|
+
removed.push(...normalized.removed);
|
|
50
|
+
}
|
|
51
|
+
return { value: output, removed };
|
|
52
|
+
}
|
|
53
|
+
function assertProtected(before, after) {
|
|
54
|
+
for (const dotted of PROTECTED_PATHS) {
|
|
55
|
+
const oldValue = getAt(before, dotted);
|
|
56
|
+
if (oldValue !== undefined && !sameValue(oldValue, getAt(after, dotted))) {
|
|
57
|
+
throw new Error(`migration changed protected field: ${dotted}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
async function pathExists(path) {
|
|
62
|
+
try {
|
|
63
|
+
await stat(path);
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
async function atomicWriteJson(path, value) {
|
|
71
|
+
const temporary = `${path}.perkos-repair-${process.pid}.tmp`;
|
|
72
|
+
await writeFile(temporary, `${JSON.stringify(value, null, 2)}\n`, { mode: 0o600 });
|
|
73
|
+
await rename(temporary, path);
|
|
74
|
+
}
|
|
75
|
+
function parseJsonOutput(output) {
|
|
76
|
+
const trimmed = output.trim();
|
|
77
|
+
if (!trimmed)
|
|
78
|
+
throw new Error("command returned no JSON");
|
|
79
|
+
try {
|
|
80
|
+
return JSON.parse(trimmed);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
const lines = trimmed.split(/\n/u).reverse();
|
|
84
|
+
for (const line of lines) {
|
|
85
|
+
try {
|
|
86
|
+
return JSON.parse(line);
|
|
87
|
+
}
|
|
88
|
+
catch { /* keep looking */ }
|
|
89
|
+
}
|
|
90
|
+
throw new Error("command returned invalid JSON");
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function findScalar(value, keys) {
|
|
94
|
+
if (!isObject(value))
|
|
95
|
+
return undefined;
|
|
96
|
+
for (const [key, child] of Object.entries(value)) {
|
|
97
|
+
if (keys.has(key) && (typeof child === "string" || typeof child === "number"))
|
|
98
|
+
return child;
|
|
99
|
+
}
|
|
100
|
+
for (const child of Object.values(value)) {
|
|
101
|
+
const found = findScalar(child, keys);
|
|
102
|
+
if (found !== undefined)
|
|
103
|
+
return found;
|
|
104
|
+
}
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
function processIdentity(status) {
|
|
108
|
+
const pidValue = findScalar(status, new Set(["pid", "processId"]));
|
|
109
|
+
const startValue = findScalar(status, new Set(["startedAt", "startTime", "started", "processStartTime"]));
|
|
110
|
+
return {
|
|
111
|
+
pid: typeof pidValue === "number" ? pidValue : typeof pidValue === "string" && /^\d+$/u.test(pidValue) ? Number(pidValue) : undefined,
|
|
112
|
+
startTime: typeof startValue === "string" ? startValue : undefined,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
async function processIdentityWithStart(run, status) {
|
|
116
|
+
const identity = processIdentity(status);
|
|
117
|
+
if (identity.pid === undefined || identity.startTime)
|
|
118
|
+
return identity;
|
|
119
|
+
const ps = await run("ps", ["-o", "lstart=", "-p", String(identity.pid)]);
|
|
120
|
+
const startTime = ps.code === 0 ? ps.stdout.trim() : "";
|
|
121
|
+
return startTime ? { ...identity, startTime } : identity;
|
|
122
|
+
}
|
|
123
|
+
function processChanged(before, after) {
|
|
124
|
+
if (before.pid !== undefined && after.pid !== undefined)
|
|
125
|
+
return before.pid !== after.pid;
|
|
126
|
+
if (before.startTime && after.startTime)
|
|
127
|
+
return before.startTime !== after.startTime;
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
function logTextSince(output, startedAt) {
|
|
131
|
+
return output.split(/\n/u).filter(Boolean).flatMap((line) => {
|
|
132
|
+
try {
|
|
133
|
+
const parsed = JSON.parse(line);
|
|
134
|
+
if (isObject(parsed)) {
|
|
135
|
+
const rawTime = parsed.time ?? parsed.timestamp ?? parsed.ts;
|
|
136
|
+
const timestamp = typeof rawTime === "number" ? rawTime : typeof rawTime === "string" ? Date.parse(rawTime) : Number.NaN;
|
|
137
|
+
if (!Number.isFinite(timestamp))
|
|
138
|
+
return [];
|
|
139
|
+
const milliseconds = timestamp < 10_000_000_000 ? timestamp * 1_000 : timestamp;
|
|
140
|
+
if (milliseconds < startedAt - 2_000)
|
|
141
|
+
return [];
|
|
142
|
+
return [String(parsed.message ?? parsed.raw ?? parsed.text ?? line)];
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch { /* plain log line */ }
|
|
146
|
+
return [];
|
|
147
|
+
}).join("\n");
|
|
148
|
+
}
|
|
149
|
+
export function postRestartStateFromLogs(output, agentName, startedAt) {
|
|
150
|
+
return verifyLogState(logTextSince(output, startedAt), agentName);
|
|
151
|
+
}
|
|
152
|
+
function verifyLogState(text, agentName) {
|
|
153
|
+
return {
|
|
154
|
+
connected: text.includes("Connected to relay hub"),
|
|
155
|
+
registered: text.includes("Registered with relay hub"),
|
|
156
|
+
heartbeat200: /\[perkos-heartbeat\].*status=200/u.test(text),
|
|
157
|
+
chatAuthed: text.includes(`[perkos-chat] authed as agent:${agentName}`),
|
|
158
|
+
duplicatePlugin: text.toLowerCase().includes("duplicate plugin id detected"),
|
|
159
|
+
duplicateRegistration: text.toLowerCase().includes("duplicate registration replaced"),
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
export const defaultCommandRunner = (command, args) => new Promise((resolveResult, reject) => {
|
|
163
|
+
const child = spawn(command, args, { stdio: ["ignore", "pipe", "pipe"] });
|
|
164
|
+
let stdout = "";
|
|
165
|
+
let stderr = "";
|
|
166
|
+
child.stdout.on("data", (chunk) => { stdout += String(chunk); });
|
|
167
|
+
child.stderr.on("data", (chunk) => { stderr += String(chunk); });
|
|
168
|
+
child.once("error", reject);
|
|
169
|
+
child.once("close", (code) => resolveResult({ code: code ?? 1, stdout, stderr }));
|
|
170
|
+
});
|
|
171
|
+
async function mustRun(run, command, args, label) {
|
|
172
|
+
const result = await run(command, args);
|
|
173
|
+
if (result.code !== 0)
|
|
174
|
+
throw new Error(`${label} failed: ${(result.stderr || result.stdout).trim().slice(0, 500)}`);
|
|
175
|
+
return result;
|
|
176
|
+
}
|
|
177
|
+
function openClawConfig(document) {
|
|
178
|
+
const plugins = document.plugins;
|
|
179
|
+
const entries = isObject(plugins) ? plugins.entries : undefined;
|
|
180
|
+
const entry = isObject(entries) ? entries["perkos-a2a"] : undefined;
|
|
181
|
+
const config = isObject(entry) ? entry.config : undefined;
|
|
182
|
+
return isObject(config) ? config : undefined;
|
|
183
|
+
}
|
|
184
|
+
function replacePluginEntry(document, config, enabled) {
|
|
185
|
+
if (!isObject(document.plugins))
|
|
186
|
+
document.plugins = {};
|
|
187
|
+
const plugins = document.plugins;
|
|
188
|
+
if (!isObject(plugins.entries))
|
|
189
|
+
plugins.entries = {};
|
|
190
|
+
const entries = plugins.entries;
|
|
191
|
+
const previous = isObject(entries["perkos-a2a"]) ? entries["perkos-a2a"] : {};
|
|
192
|
+
entries["perkos-a2a"] = { ...previous, enabled, config };
|
|
193
|
+
}
|
|
194
|
+
function assertIdentity(config, expectedName, expectedId) {
|
|
195
|
+
if (config.agentName !== expectedName)
|
|
196
|
+
throw new Error("configured agentName does not match this invitation");
|
|
197
|
+
const agentId = getAt(config, "platform.agentId");
|
|
198
|
+
const heartbeatUrl = String(getAt(config, "platform.heartbeatUrl") ?? "");
|
|
199
|
+
if (agentId !== expectedId && !heartbeatUrl.includes(`/agents/${expectedId}/heartbeat`)) {
|
|
200
|
+
throw new Error("configured agentId does not match this invitation");
|
|
201
|
+
}
|
|
202
|
+
if (!getAt(config, "relay.apiKey"))
|
|
203
|
+
throw new Error("relay credential is missing");
|
|
204
|
+
}
|
|
205
|
+
function assertUnder(parent, child) {
|
|
206
|
+
const rel = relative(parent, child);
|
|
207
|
+
if (rel === "" || (!rel.startsWith(`..${sep}`) && rel !== ".." && !isAbsolute(rel)))
|
|
208
|
+
return;
|
|
209
|
+
throw new Error("managed install escaped the OpenClaw npm root");
|
|
210
|
+
}
|
|
211
|
+
async function wait(ms) {
|
|
212
|
+
await new Promise((resolvePromise) => setTimeout(resolvePromise, ms));
|
|
213
|
+
}
|
|
214
|
+
export async function repairOpenClaw(options, run = defaultCommandRunner) {
|
|
215
|
+
const openclaw = options.openclawBin ?? "openclaw";
|
|
216
|
+
const stateDir = resolve(options.stateDir ?? process.env.OPENCLAW_STATE_DIR ?? join(homedir(), ".openclaw"));
|
|
217
|
+
const configPath = resolve(options.configPath ?? process.env.OPENCLAW_CONFIG_PATH ?? join(stateDir, "openclaw.json"));
|
|
218
|
+
const artifactPath = resolve(options.artifactPath);
|
|
219
|
+
const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
220
|
+
const manifestPath = join(packageRoot, "openclaw.plugin.json");
|
|
221
|
+
const manifest = JSON.parse(await readFile(manifestPath, "utf8"));
|
|
222
|
+
const version = String(manifest.version ?? "unknown");
|
|
223
|
+
if (manifest.id !== "perkos-a2a" || !isObject(manifest.configSchema))
|
|
224
|
+
throw new Error("repair CLI manifest/schema is invalid");
|
|
225
|
+
if (!await pathExists(artifactPath))
|
|
226
|
+
throw new Error("verified plugin artifact is missing");
|
|
227
|
+
const artifactDigest = createHash("sha256").update(await readFile(artifactPath)).digest("hex");
|
|
228
|
+
if (artifactDigest !== options.artifactSha256.toLowerCase())
|
|
229
|
+
throw new Error(`plugin artifact checksum mismatch: ${artifactDigest}`);
|
|
230
|
+
const migrationDir = await mkdtemp(join(tmpdir(), "perkos-a2a-repair-"));
|
|
231
|
+
const backupRoot = join(stateDir, "perkos-migration-backups");
|
|
232
|
+
await mkdir(backupRoot, { recursive: true, mode: 0o700 });
|
|
233
|
+
const backupPath = join(migrationDir, "openclaw.before.json");
|
|
234
|
+
const legacyExtension = join(stateDir, "extensions", "perkos-a2a");
|
|
235
|
+
const quarantinePath = join(backupRoot, `perkos-a2a-extension-${Date.now()}`);
|
|
236
|
+
const originalRaw = await readFile(configPath, "utf8");
|
|
237
|
+
let document;
|
|
238
|
+
try {
|
|
239
|
+
document = JSON.parse(originalRaw);
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
throw new Error("OpenClaw config must be strict JSON for safe automatic repair");
|
|
243
|
+
}
|
|
244
|
+
const existingConfig = openClawConfig(document);
|
|
245
|
+
const before = structuredClone(existingConfig ?? options.initialConfig);
|
|
246
|
+
if (!isObject(before))
|
|
247
|
+
throw new Error("existing PerkOS plugin config is missing");
|
|
248
|
+
await writeFile(backupPath, originalRaw, { mode: 0o600 });
|
|
249
|
+
const normalized = normalizeToSchema(before, manifest.configSchema);
|
|
250
|
+
if (!isObject(normalized.value))
|
|
251
|
+
throw new Error("normalized PerkOS config is invalid");
|
|
252
|
+
assertProtected(before, normalized.value);
|
|
253
|
+
assertIdentity(normalized.value, options.expectedAgentName, options.expectedAgentId);
|
|
254
|
+
let quarantined = false;
|
|
255
|
+
let committed = false;
|
|
256
|
+
try {
|
|
257
|
+
replacePluginEntry(document, {}, false);
|
|
258
|
+
await atomicWriteJson(configPath, document);
|
|
259
|
+
if (await pathExists(legacyExtension)) {
|
|
260
|
+
const legacyManifest = JSON.parse(await readFile(join(legacyExtension, "openclaw.plugin.json"), "utf8"));
|
|
261
|
+
if (legacyManifest.id !== "perkos-a2a")
|
|
262
|
+
throw new Error("refusing to quarantine a non-PerkOS extension");
|
|
263
|
+
await rename(legacyExtension, quarantinePath);
|
|
264
|
+
quarantined = true;
|
|
265
|
+
}
|
|
266
|
+
await mustRun(run, openclaw, ["plugins", "install", `npm-pack:${artifactPath}`, "--force"], "managed plugin install");
|
|
267
|
+
const inspectResult = await mustRun(run, openclaw, ["plugins", "inspect", "perkos-a2a", "--json"], "plugin inspection");
|
|
268
|
+
const inspect = parseJsonOutput(inspectResult.stdout);
|
|
269
|
+
if (!isObject(inspect))
|
|
270
|
+
throw new Error("plugin inspection result is invalid");
|
|
271
|
+
const plugin = isObject(inspect.plugin) ? inspect.plugin : {};
|
|
272
|
+
const install = isObject(inspect.install) ? inspect.install : {};
|
|
273
|
+
if (plugin.id !== "perkos-a2a" || install.artifactKind !== "npm-pack" || typeof install.installPath !== "string" || typeof plugin.rootDir !== "string") {
|
|
274
|
+
throw new Error("managed npm install was not recorded");
|
|
275
|
+
}
|
|
276
|
+
const npmRoot = await realpath(join(stateDir, "npm"));
|
|
277
|
+
const managedPath = await realpath(install.installPath);
|
|
278
|
+
const activeRoot = await realpath(plugin.rootDir);
|
|
279
|
+
assertUnder(npmRoot, managedPath);
|
|
280
|
+
if (activeRoot !== managedPath)
|
|
281
|
+
throw new Error("PerkOS is still loading from a non-managed plugin source");
|
|
282
|
+
const installedManifest = JSON.parse(await readFile(join(managedPath, "openclaw.plugin.json"), "utf8"));
|
|
283
|
+
if (installedManifest.id !== "perkos-a2a" || installedManifest.version !== version)
|
|
284
|
+
throw new Error("installed plugin version does not match repair CLI");
|
|
285
|
+
const currentRaw = await readFile(configPath, "utf8");
|
|
286
|
+
const currentDocument = JSON.parse(currentRaw);
|
|
287
|
+
replacePluginEntry(currentDocument, normalized.value, true);
|
|
288
|
+
await atomicWriteJson(configPath, currentDocument);
|
|
289
|
+
await mustRun(run, openclaw, ["config", "validate"], "config validation");
|
|
290
|
+
const doctor = await mustRun(run, openclaw, ["plugins", "doctor"], "plugin doctor");
|
|
291
|
+
const doctorText = `${doctor.stdout}\n${doctor.stderr}`.toLowerCase();
|
|
292
|
+
if (doctorText.includes("duplicate plugin id detected"))
|
|
293
|
+
throw new Error("duplicate plugin source remains after migration");
|
|
294
|
+
committed = true;
|
|
295
|
+
const emptyPostRestart = verifyLogState("", options.expectedAgentName);
|
|
296
|
+
const restartResult = { requested: false, verified: false };
|
|
297
|
+
let postRestart = emptyPostRestart;
|
|
298
|
+
if (!options.skipRestart) {
|
|
299
|
+
const beforeStatusResult = await mustRun(run, openclaw, ["gateway", "status", "--json"], "pre-restart gateway status");
|
|
300
|
+
const beforeStatus = await processIdentityWithStart(run, parseJsonOutput(beforeStatusResult.stdout));
|
|
301
|
+
restartResult.beforePid = beforeStatus.pid;
|
|
302
|
+
restartResult.beforeStartTime = beforeStatus.startTime;
|
|
303
|
+
const restartStartedAt = Date.now();
|
|
304
|
+
await mustRun(run, openclaw, ["gateway", "restart", "--safe", "--skip-deferral", "--json"], "gateway restart");
|
|
305
|
+
restartResult.requested = true;
|
|
306
|
+
const deadline = Date.now() + (options.timeoutMs ?? 90_000);
|
|
307
|
+
let recentLogs = "";
|
|
308
|
+
while (Date.now() < deadline) {
|
|
309
|
+
await wait(options.pollIntervalMs ?? 2_000);
|
|
310
|
+
const status = await run(openclaw, ["gateway", "status", "--json", "--require-rpc"]);
|
|
311
|
+
if (status.code !== 0)
|
|
312
|
+
continue;
|
|
313
|
+
const afterStatus = await processIdentityWithStart(run, parseJsonOutput(status.stdout));
|
|
314
|
+
restartResult.afterPid = afterStatus.pid;
|
|
315
|
+
restartResult.afterStartTime = afterStatus.startTime;
|
|
316
|
+
restartResult.verified = processChanged(beforeStatus, afterStatus);
|
|
317
|
+
const logs = await run(openclaw, ["logs", "--json", "--limit", "1000", "--max-bytes", "2000000"]);
|
|
318
|
+
if (logs.code === 0)
|
|
319
|
+
recentLogs = logs.stdout;
|
|
320
|
+
postRestart = postRestartStateFromLogs(recentLogs, options.expectedAgentName, restartStartedAt);
|
|
321
|
+
if (restartResult.verified && postRestart.connected && postRestart.registered && postRestart.heartbeat200 && postRestart.chatAuthed && !postRestart.duplicatePlugin && !postRestart.duplicateRegistration)
|
|
322
|
+
break;
|
|
323
|
+
}
|
|
324
|
+
if (!restartResult.verified)
|
|
325
|
+
throw new Error("gateway restart was not verified by a new PID/start time");
|
|
326
|
+
if (!postRestart.connected || !postRestart.registered || !postRestart.heartbeat200 || !postRestart.chatAuthed || postRestart.duplicatePlugin || postRestart.duplicateRegistration) {
|
|
327
|
+
throw new Error(`post-restart verification failed: ${JSON.stringify(postRestart)}`);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
return {
|
|
331
|
+
ok: true,
|
|
332
|
+
version,
|
|
333
|
+
mode: existingConfig ? "repaired" : "installed",
|
|
334
|
+
artifactVerified: true,
|
|
335
|
+
source: "managed-npm",
|
|
336
|
+
normalized: true,
|
|
337
|
+
removedUnsupportedPaths: normalized.removed,
|
|
338
|
+
quarantinedLegacyExtension: quarantined,
|
|
339
|
+
configValid: true,
|
|
340
|
+
pluginDoctorClean: true,
|
|
341
|
+
restart: restartResult,
|
|
342
|
+
postRestart,
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
catch (error) {
|
|
346
|
+
if (!committed) {
|
|
347
|
+
await writeFile(configPath, originalRaw, { mode: 0o600 });
|
|
348
|
+
if (quarantined && await pathExists(quarantinePath) && !await pathExists(legacyExtension)) {
|
|
349
|
+
await mkdir(dirname(legacyExtension), { recursive: true });
|
|
350
|
+
await rename(quarantinePath, legacyExtension);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
throw error;
|
|
354
|
+
}
|
|
355
|
+
finally {
|
|
356
|
+
await rm(migrationDir, { recursive: true, force: true });
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
//# sourceMappingURL=repair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repair.js","sourceRoot":"","sources":["../src/repair.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -124,6 +124,16 @@ export interface A2APluginConfig {
|
|
|
124
124
|
* rate-limit characteristics than task dispatch. See `src/chat-client.ts`.
|
|
125
125
|
*/
|
|
126
126
|
chat?: import("./chat-types.js").ChatConfig;
|
|
127
|
+
/** PerkOS control-plane presence reporting for invited/BYO agents. */
|
|
128
|
+
platform?: PlatformPresenceConfig;
|
|
129
|
+
}
|
|
130
|
+
export interface PlatformPresenceConfig {
|
|
131
|
+
/** Stable PerkOS agent id issued by the invitation (used for idempotency checks). */
|
|
132
|
+
agentId?: string;
|
|
133
|
+
/** Per-agent POST endpoint issued by the official PerkOS invitation. */
|
|
134
|
+
heartbeatUrl: string;
|
|
135
|
+
/** Optional heartbeat cadence. The client enforces a 10s minimum. */
|
|
136
|
+
heartbeatIntervalMs?: number;
|
|
127
137
|
}
|
|
128
138
|
export type RuntimeKind = "openclaw" | "hermes" | "hermes-api" | "none";
|
|
129
139
|
export interface RuntimeDeliveryConfig {
|
|
@@ -131,6 +141,12 @@ export interface RuntimeDeliveryConfig {
|
|
|
131
141
|
kind?: RuntimeKind;
|
|
132
142
|
/** Session to wake/send into. OpenClaw default: agent:main. Hermes API default: a2a. */
|
|
133
143
|
sessionKey?: string;
|
|
144
|
+
/**
|
|
145
|
+
* Optional runtime-owned model override. Official external invitations
|
|
146
|
+
* omit this field so OpenClaw, Hermes, or a custom runtime resolves its own
|
|
147
|
+
* current/default model.
|
|
148
|
+
*/
|
|
149
|
+
model?: string;
|
|
134
150
|
/** Hermes API Server base URL, e.g. http://127.0.0.1:8642. */
|
|
135
151
|
hermesUrl?: string;
|
|
136
152
|
/** Optional Hermes API Server bearer token/API key. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kCAAkC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAiOlC,2EAA2E;AAC3E,MAAM,UAAU,cAAc,CAC5B,GAAiB;IAEjB,OAAO,GAAG,CAAC,IAAI,KAAK,eAAe,CAAC;AACtC,CAAC"}
|