@nextclaw/nextclaw-hermes-acp-bridge 0.1.14 → 0.1.16
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.
|
@@ -10,4 +10,5 @@ type HermesAcpBridgeLaunchEnvParams = HermesAcpLaunchTarget & {
|
|
|
10
10
|
declare function isHermesAcpRuntimeConfig(config: HermesAcpLaunchTarget): boolean;
|
|
11
11
|
declare function buildHermesAcpBridgeLaunchEnv(params: HermesAcpBridgeLaunchEnvParams): Record<string, string>;
|
|
12
12
|
//#endregion
|
|
13
|
-
export { buildHermesAcpBridgeLaunchEnv, isHermesAcpRuntimeConfig };
|
|
13
|
+
export { buildHermesAcpBridgeLaunchEnv, isHermesAcpRuntimeConfig };
|
|
14
|
+
//# sourceMappingURL=hermes-acp-route-bridge.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hermes-acp-route-bridge.utils.d.ts","names":[],"sources":["../src/hermes-acp-route-bridge.utils.ts"],"mappings":";KAeK,qBAAA;EACH,OAAA;EACA,IAAA;AAAA;AAAA,KAGG,8BAAA,GAAiC,qBAAA;EACpC,OAAA,GAAU,MAAA;EACV,aAAA;AAAA;AAAA,iBA+Bc,wBAAA,CAAyB,MAAA,EAAQ,qBAAA;AAAA,iBAmCjC,6BAAA,CACd,MAAA,EAAQ,8BAAA,GACP,MAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hermes-acp-route-bridge.utils.js","names":[],"sources":["../src/hermes-acp-route-bridge.utils.ts"],"sourcesContent":["import { existsSync } from \"node:fs\";\nimport { basename, delimiter, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst HERMES_ACP_BRIDGE_ENABLE_ENV = \"NEXTCLAW_HERMES_ACP_ROUTE_BRIDGE\";\nconst HERMES_ACP_BRIDGE_DIR_ENV = \"NEXTCLAW_HERMES_ACP_ROUTE_BRIDGE_DIR\";\nconst HERMES_ACP_PROBE_ROUTE_ENV = {\n NEXTCLAW_MODEL: \"nextclaw-hermes-acp-probe\",\n NEXTCLAW_API_BASE: \"http://127.0.0.1:1/v1\",\n NEXTCLAW_API_KEY: \"nextclaw-hermes-acp-probe-key\",\n NEXTCLAW_HEADERS_JSON: JSON.stringify({\n \"x-nextclaw-narp-api-mode\": \"chat_completions\",\n }),\n} as const;\n\ntype HermesAcpLaunchTarget = {\n command: string;\n args: string[];\n};\n\ntype HermesAcpBridgeLaunchEnvParams = HermesAcpLaunchTarget & {\n baseEnv?: Record<string, string | undefined>;\n useProbeRoute?: boolean;\n};\n\nfunction normalizeCommandBasename(command: string): string {\n return basename(command).trim().toLowerCase();\n}\n\nfunction normalizeStringEnv(source: Record<string, string | undefined>): Record<string, string> {\n const output: Record<string, string> = {};\n for (const [key, value] of Object.entries(source)) {\n if (typeof value === \"string\") {\n output[key] = value;\n }\n }\n return output;\n}\n\nfunction isPythonCommand(command: string): boolean {\n const normalized = normalizeCommandBasename(command);\n return normalized === \"python\" || normalized === \"python3\" || normalized.startsWith(\"python3.\");\n}\n\nfunction targetsHermesAcpModule(args: string[]): boolean {\n for (let index = 0; index < args.length - 1; index += 1) {\n if (args[index] === \"-m\" && args[index + 1]?.trim().toLowerCase() === \"acp_adapter.entry\") {\n return true;\n }\n }\n return false;\n}\n\nexport function isHermesAcpRuntimeConfig(config: HermesAcpLaunchTarget): boolean {\n const command = normalizeCommandBasename(config.command);\n if (command === \"hermes-acp\") {\n return true;\n }\n if (command === \"hermes\") {\n return config.args[0]?.trim().toLowerCase() === \"acp\";\n }\n if (isPythonCommand(config.command)) {\n return targetsHermesAcpModule(config.args);\n }\n return false;\n}\n\nfunction resolveHermesAcpBridgeDir(): string | null {\n const packageDir = fileURLToPath(new URL(\"../\", import.meta.url));\n const sourceBridgeDir = resolve(packageDir, \"src/hermes-acp-route-bridge\");\n if (existsSync(sourceBridgeDir)) {\n return sourceBridgeDir;\n }\n const distBridgeDir = resolve(packageDir, \"dist/hermes-acp-route-bridge\");\n return existsSync(distBridgeDir) ? distBridgeDir : null;\n}\n\nfunction mergePathList(existingValue: string | undefined, injectedPath: string): string {\n const parts = (existingValue ?? \"\")\n .split(delimiter)\n .map((entry) => entry.trim())\n .filter(Boolean);\n if (!parts.includes(injectedPath)) {\n parts.unshift(injectedPath);\n }\n return parts.join(delimiter);\n}\n\nexport function buildHermesAcpBridgeLaunchEnv(\n params: HermesAcpBridgeLaunchEnvParams,\n): Record<string, string> {\n const env = normalizeStringEnv(params.baseEnv ?? process.env);\n if (!isHermesAcpRuntimeConfig(params)) {\n return env;\n }\n const bridgeDir = resolveHermesAcpBridgeDir();\n if (!bridgeDir) {\n return env;\n }\n return {\n ...env,\n ...(params.useProbeRoute ? HERMES_ACP_PROBE_ROUTE_ENV : {}),\n [HERMES_ACP_BRIDGE_ENABLE_ENV]: \"1\",\n [HERMES_ACP_BRIDGE_DIR_ENV]: bridgeDir,\n PYTHONPATH: mergePathList(env.PYTHONPATH, bridgeDir),\n };\n}\n"],"mappings":";;;;AAIA,MAAM,+BAA+B;AACrC,MAAM,4BAA4B;AAClC,MAAM,6BAA6B;CACjC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,uBAAuB,KAAK,UAAU,EACpC,4BAA4B,oBAC7B,CAAC;CACH;AAYD,SAAS,yBAAyB,SAAyB;AACzD,QAAO,SAAS,QAAQ,CAAC,MAAM,CAAC,aAAa;;AAG/C,SAAS,mBAAmB,QAAoE;CAC9F,MAAM,SAAiC,EAAE;AACzC,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,CAC/C,KAAI,OAAO,UAAU,SACnB,QAAO,OAAO;AAGlB,QAAO;;AAGT,SAAS,gBAAgB,SAA0B;CACjD,MAAM,aAAa,yBAAyB,QAAQ;AACpD,QAAO,eAAe,YAAY,eAAe,aAAa,WAAW,WAAW,WAAW;;AAGjG,SAAS,uBAAuB,MAAyB;AACvD,MAAK,IAAI,QAAQ,GAAG,QAAQ,KAAK,SAAS,GAAG,SAAS,EACpD,KAAI,KAAK,WAAW,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,KAAK,oBACpE,QAAO;AAGX,QAAO;;AAGT,SAAgB,yBAAyB,QAAwC;CAC/E,MAAM,UAAU,yBAAyB,OAAO,QAAQ;AACxD,KAAI,YAAY,aACd,QAAO;AAET,KAAI,YAAY,SACd,QAAO,OAAO,KAAK,IAAI,MAAM,CAAC,aAAa,KAAK;AAElD,KAAI,gBAAgB,OAAO,QAAQ,CACjC,QAAO,uBAAuB,OAAO,KAAK;AAE5C,QAAO;;AAGT,SAAS,4BAA2C;CAClD,MAAM,aAAa,cAAc,IAAI,IAAI,OAAO,OAAO,KAAK,IAAI,CAAC;CACjE,MAAM,kBAAkB,QAAQ,YAAY,8BAA8B;AAC1E,KAAI,WAAW,gBAAgB,CAC7B,QAAO;CAET,MAAM,gBAAgB,QAAQ,YAAY,+BAA+B;AACzE,QAAO,WAAW,cAAc,GAAG,gBAAgB;;AAGrD,SAAS,cAAc,eAAmC,cAA8B;CACtF,MAAM,SAAS,iBAAiB,IAC7B,MAAM,UAAU,CAChB,KAAK,UAAU,MAAM,MAAM,CAAC,CAC5B,OAAO,QAAQ;AAClB,KAAI,CAAC,MAAM,SAAS,aAAa,CAC/B,OAAM,QAAQ,aAAa;AAE7B,QAAO,MAAM,KAAK,UAAU;;AAG9B,SAAgB,8BACd,QACwB;CACxB,MAAM,MAAM,mBAAmB,OAAO,WAAW,QAAQ,IAAI;AAC7D,KAAI,CAAC,yBAAyB,OAAO,CACnC,QAAO;CAET,MAAM,YAAY,2BAA2B;AAC7C,KAAI,CAAC,UACH,QAAO;AAET,QAAO;EACL,GAAG;EACH,GAAI,OAAO,gBAAgB,6BAA6B,EAAE;GACzD,+BAA+B;GAC/B,4BAA4B;EAC7B,YAAY,cAAc,IAAI,YAAY,UAAU;EACrD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nextclaw/nextclaw-hermes-acp-bridge",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.16",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Hermes-specific ACP bridge helpers used by NextClaw runtime integrations.",
|
|
6
6
|
"type": "module",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"README.md"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@nextclaw/ncp": "0.5.
|
|
19
|
+
"@nextclaw/ncp": "0.5.17"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@types/node": "^20.17.6",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"vitest": "^4.1.2"
|
|
25
25
|
},
|
|
26
26
|
"scripts": {
|
|
27
|
-
"build": "tsdown src/index.ts --dts --clean --target es2022 --no-fixedExtension --unbundle && node ./scripts/copy-hermes-acp-route-bridge.mjs",
|
|
27
|
+
"build": "tsdown src/index.ts --dts.sourcemap --clean --target es2022 --no-fixedExtension --unbundle && node ./scripts/copy-hermes-acp-route-bridge.mjs",
|
|
28
28
|
"check:bridge-sync": "node ./scripts/check-hermes-acp-route-bridge-sync.mjs",
|
|
29
29
|
"lint": "eslint .",
|
|
30
30
|
"tsc": "tsc -p tsconfig.json",
|