@moxt-ai/mobius 0.0.27 → 0.0.29

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.
Files changed (77) hide show
  1. package/dist/acp/activity.d.ts +1 -0
  2. package/dist/acp/activity.d.ts.map +1 -1
  3. package/dist/acp/activity.js +14 -1
  4. package/dist/acp/activity.js.map +1 -1
  5. package/dist/acp/session-history.d.ts.map +1 -1
  6. package/dist/acp/session-history.js +10 -16
  7. package/dist/acp/session-history.js.map +1 -1
  8. package/dist/acp/session-manager.d.ts +7 -0
  9. package/dist/acp/session-manager.d.ts.map +1 -1
  10. package/dist/acp/session-manager.js +65 -11
  11. package/dist/acp/session-manager.js.map +1 -1
  12. package/dist/agent-catalog/acp-readiness-probe.d.ts.map +1 -1
  13. package/dist/agent-catalog/acp-readiness-probe.js +2 -2
  14. package/dist/agent-catalog/acp-readiness-probe.js.map +1 -1
  15. package/dist/agent-catalog/agent-specification.d.ts +3 -0
  16. package/dist/agent-catalog/agent-specification.d.ts.map +1 -1
  17. package/dist/agent-catalog/agent-specification.js +3 -0
  18. package/dist/agent-catalog/agent-specification.js.map +1 -1
  19. package/dist/agent-catalog/agents/copilot-cli-agent.d.ts +18 -0
  20. package/dist/agent-catalog/agents/copilot-cli-agent.d.ts.map +1 -0
  21. package/dist/agent-catalog/agents/copilot-cli-agent.js +29 -0
  22. package/dist/agent-catalog/agents/copilot-cli-agent.js.map +1 -0
  23. package/dist/agent-catalog/agents/gemini-cli-agent.d.ts +14 -0
  24. package/dist/agent-catalog/agents/gemini-cli-agent.d.ts.map +1 -0
  25. package/dist/agent-catalog/agents/gemini-cli-agent.js +30 -0
  26. package/dist/agent-catalog/agents/gemini-cli-agent.js.map +1 -0
  27. package/dist/agent-catalog/agents/hermes-agent.d.ts +18 -0
  28. package/dist/agent-catalog/agents/hermes-agent.d.ts.map +1 -0
  29. package/dist/agent-catalog/agents/hermes-agent.js +32 -0
  30. package/dist/agent-catalog/agents/hermes-agent.js.map +1 -0
  31. package/dist/agent-catalog/agents/resolve-user-local-executable.d.ts +4 -0
  32. package/dist/agent-catalog/agents/resolve-user-local-executable.d.ts.map +1 -0
  33. package/dist/agent-catalog/agents/resolve-user-local-executable.js +14 -0
  34. package/dist/agent-catalog/agents/resolve-user-local-executable.js.map +1 -0
  35. package/dist/agent-catalog/agents/supported-agent-specifications.d.ts.map +1 -1
  36. package/dist/agent-catalog/agents/supported-agent-specifications.js +6 -0
  37. package/dist/agent-catalog/agents/supported-agent-specifications.js.map +1 -1
  38. package/dist/agent-catalog/discover-agent.d.ts.map +1 -1
  39. package/dist/agent-catalog/discover-agent.js +2 -2
  40. package/dist/agent-catalog/discover-agent.js.map +1 -1
  41. package/dist/agent-catalog/discover-local-agents.d.ts +3 -0
  42. package/dist/agent-catalog/discover-local-agents.d.ts.map +1 -1
  43. package/dist/agent-catalog/discover-local-agents.js +3 -0
  44. package/dist/agent-catalog/discover-local-agents.js.map +1 -1
  45. package/dist/agent-catalog/executable-discovery.d.ts +1 -2
  46. package/dist/agent-catalog/executable-discovery.d.ts.map +1 -1
  47. package/dist/agent-catalog/executable-discovery.js +4 -6
  48. package/dist/agent-catalog/executable-discovery.js.map +1 -1
  49. package/dist/agent-catalog/version-output.d.ts +2 -0
  50. package/dist/agent-catalog/version-output.d.ts.map +1 -0
  51. package/dist/agent-catalog/version-output.js +4 -0
  52. package/dist/agent-catalog/version-output.js.map +1 -0
  53. package/dist/artifacts/runtime-artifact-uploader.d.ts +12 -0
  54. package/dist/artifacts/runtime-artifact-uploader.d.ts.map +1 -0
  55. package/dist/artifacts/runtime-artifact-uploader.js +157 -0
  56. package/dist/artifacts/runtime-artifact-uploader.js.map +1 -0
  57. package/dist/authorization/local-raster.d.ts +10 -0
  58. package/dist/authorization/local-raster.d.ts.map +1 -0
  59. package/dist/authorization/local-raster.js +134 -0
  60. package/dist/authorization/local-raster.js.map +1 -0
  61. package/dist/cli.js +1185 -333
  62. package/dist/cli.js.map +4 -4
  63. package/dist/index.js +1245 -396
  64. package/dist/index.js.map +4 -4
  65. package/dist/native-sessions/codex-history.d.ts.map +1 -1
  66. package/dist/native-sessions/codex-history.js +11 -11
  67. package/dist/native-sessions/codex-history.js.map +1 -1
  68. package/dist/native-sessions/history-images.d.ts +3 -0
  69. package/dist/native-sessions/history-images.d.ts.map +1 -0
  70. package/dist/native-sessions/history-images.js +74 -0
  71. package/dist/native-sessions/history-images.js.map +1 -0
  72. package/dist/run-daemon.d.ts.map +1 -1
  73. package/dist/run-daemon.js +30 -7
  74. package/dist/run-daemon.js.map +1 -1
  75. package/dist/runtime.js +1205 -354
  76. package/dist/runtime.js.map +4 -4
  77. package/package.json +2 -1
@@ -0,0 +1,18 @@
1
+ import type { ClientConnection, InitializeResponse } from "@agentclientprotocol/sdk";
2
+ import type { ResolvedExecutable } from "../../process/executable.ts";
3
+ import type { LocalAgentDiscoveryContext } from "../agent-discovery-context.ts";
4
+ import { DirectAcpAgentDefinition } from "../agent-specification.ts";
5
+ export declare class HermesAgentSpecification extends DirectAcpAgentDefinition {
6
+ readonly acpProbeTimeoutMilliseconds = 20000;
7
+ readonly adapterVersion = "0.21.1";
8
+ readonly adapterVersionArguments: readonly string[];
9
+ readonly authenticationCommand: () => string;
10
+ readonly agentExecutable = "hermes";
11
+ readonly agentVersionArguments: readonly string[];
12
+ readonly id = "hermes";
13
+ readonly label = "Hermes Agent";
14
+ constructor();
15
+ readonly resolveInstalledAgentExecutables: (context: LocalAgentDiscoveryContext) => Promise<readonly ResolvedExecutable[]>;
16
+ readonly verifyAcp: (connection: ClientConnection, initialized: InitializeResponse, defaultWorkspace: string, signal: AbortSignal) => Promise<void>;
17
+ }
18
+ //# sourceMappingURL=hermes-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes-agent.d.ts","sourceRoot":"","sources":["../../../src/agent-catalog/agents/hermes-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAExG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAMrE,qBAAa,wBAAyB,SAAQ,wBAAwB;IAClE,SAAkB,2BAA2B,SAAU;IACvD,QAAQ,CAAC,cAAc,YAAyB;IAChD,SAAkB,uBAAuB,EAAE,SAAS,MAAM,EAAE,CAAwB;IACpF,SAAkB,qBAAqB,QAAO,MAAM,CAAyB;IAC7E,QAAQ,CAAC,eAAe,YAAY;IACpC,SAAkB,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAwB;IAClF,QAAQ,CAAC,EAAE,YAAY;IACvB,QAAQ,CAAC,KAAK,kBAAkB;IAEhC,cAEC;IAED,SAAkB,gCAAgC,YACrC,0BAA0B,KACpC,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAAoE;IAE7G,SAAkB,SAAS,eACX,gBAAgB,eACf,kBAAkB,oBACb,MAAM,UAChB,WAAW,KACpB,OAAO,CAAC,IAAI,CAAC,CAad;CACL"}
@@ -0,0 +1,32 @@
1
+ import { AgentProbeError } from "../agent-probe-error.js";
2
+ import { DirectAcpAgentDefinition } from "../agent-specification.js";
3
+ import { resolveUserLocalExecutable } from "./resolve-user-local-executable.js";
4
+ import { verifySessionCreation } from "./verify-session-creation.js";
5
+ const HERMES_TESTED_VERSION = "0.21.1";
6
+ export class HermesAgentSpecification extends DirectAcpAgentDefinition {
7
+ acpProbeTimeoutMilliseconds = 20_000;
8
+ adapterVersion = HERMES_TESTED_VERSION;
9
+ adapterVersionArguments = ["acp", "--version"];
10
+ authenticationCommand = () => "hermes acp --setup";
11
+ agentExecutable = "hermes";
12
+ agentVersionArguments = ["acp", "--version"];
13
+ id = "hermes";
14
+ label = "Hermes Agent";
15
+ constructor() {
16
+ super("MOBIUS_HERMES_PATH", ["acp"], ["agents", "hermes", HERMES_TESTED_VERSION, "bin", "hermes"]);
17
+ }
18
+ resolveInstalledAgentExecutables = async (context) => await resolveUserLocalExecutable(this.agentExecutable, context);
19
+ verifyAcp = async (connection, initialized, defaultWorkspace, signal) => {
20
+ const capabilities = initialized.agentCapabilities ?? {};
21
+ const session = capabilities.sessionCapabilities;
22
+ if (capabilities.loadSession !== true ||
23
+ session?.fork == null ||
24
+ session.list == null ||
25
+ session.resume == null ||
26
+ (initialized.authMethods ?? []).length === 0) {
27
+ throw new AgentProbeError("acp_incompatible", "Hermes Agent reported an unsupported ACP capability set");
28
+ }
29
+ await verifySessionCreation(connection, capabilities, defaultWorkspace, signal, this.label);
30
+ };
31
+ }
32
+ //# sourceMappingURL=hermes-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes-agent.js","sourceRoot":"","sources":["../../../src/agent-catalog/agents/hermes-agent.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAEvC,MAAM,OAAO,wBAAyB,SAAQ,wBAAwB;IAChD,2BAA2B,GAAG,MAAM,CAAC;IAC9C,cAAc,GAAG,qBAAqB,CAAC;IAC9B,uBAAuB,GAAsB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClE,qBAAqB,GAAG,GAAW,EAAE,CAAC,oBAAoB,CAAC;IACpE,eAAe,GAAG,QAAQ,CAAC;IAClB,qBAAqB,GAAsB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACzE,EAAE,GAAG,QAAQ,CAAC;IACd,KAAK,GAAG,cAAc,CAAC;IAEhC;QACI,KAAK,CAAC,oBAAoB,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvG,CAAC;IAEiB,gCAAgC,GAAG,KAAK,EACtD,OAAmC,EACG,EAAE,CAAC,MAAM,0BAA0B,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAE3F,SAAS,GAAG,KAAK,EAC/B,UAA4B,EAC5B,WAA+B,EAC/B,gBAAwB,EACxB,MAAmB,EACN,EAAE;QACf,MAAM,YAAY,GAAsB,WAAW,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,YAAY,CAAC,mBAAmB,CAAC;QACjD,IACI,YAAY,CAAC,WAAW,KAAK,IAAI;YACjC,OAAO,EAAE,IAAI,IAAI,IAAI;YACrB,OAAO,CAAC,IAAI,IAAI,IAAI;YACpB,OAAO,CAAC,MAAM,IAAI,IAAI;YACtB,CAAC,WAAW,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAC9C,CAAC;YACC,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,yDAAyD,CAAC,CAAC;QAC7G,CAAC;QACD,MAAM,qBAAqB,CAAC,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC,CAAC;CACL"}
@@ -0,0 +1,4 @@
1
+ import { type ResolvedExecutable } from "../../process/executable.ts";
2
+ import type { LocalAgentDiscoveryContext } from "../agent-discovery-context.ts";
3
+ export declare function resolveUserLocalExecutable(executableName: string, context: LocalAgentDiscoveryContext): Promise<readonly ResolvedExecutable[]>;
4
+ //# sourceMappingURL=resolve-user-local-executable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-user-local-executable.d.ts","sourceRoot":"","sources":["../../../src/agent-catalog/agents/resolve-user-local-executable.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAAyB,MAAM,6BAA6B,CAAC;AAC7F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAEhF,wBAAsB,0BAA0B,CAC5C,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,0BAA0B,GACpC,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAUxC"}
@@ -0,0 +1,14 @@
1
+ import { isAbsolute, join } from "node:path";
2
+ import { resolveExecutablePath } from "../../process/executable.js";
3
+ export async function resolveUserLocalExecutable(executableName, context) {
4
+ context.signal.throwIfAborted();
5
+ const platform = context.platform ?? process.platform;
6
+ const homeDirectory = context.environment["HOME"];
7
+ if (platform === "win32" || homeDirectory === undefined || !isAbsolute(homeDirectory)) {
8
+ return [];
9
+ }
10
+ const executable = await resolveExecutablePath(join(homeDirectory, ".local", "bin", executableName), platform);
11
+ context.signal.throwIfAborted();
12
+ return executable === null ? [] : [executable];
13
+ }
14
+ //# sourceMappingURL=resolve-user-local-executable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-user-local-executable.js","sourceRoot":"","sources":["../../../src/agent-catalog/agents/resolve-user-local-executable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAA2B,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAG7F,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC5C,cAAsB,EACtB,OAAmC;IAEnC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACtD,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,QAAQ,KAAK,OAAO,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACpF,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC/G,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IAChC,OAAO,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AACnD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"supported-agent-specifications.d.ts","sourceRoot":"","sources":["../../../src/agent-catalog/agents/supported-agent-specifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAUzE,wBAAgB,iCAAiC,IAAI,SAAS,uBAAuB,EAAE,CAWtF"}
1
+ {"version":3,"file":"supported-agent-specifications.d.ts","sourceRoot":"","sources":["../../../src/agent-catalog/agents/supported-agent-specifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAazE,wBAAgB,iCAAiC,IAAI,SAAS,uBAAuB,EAAE,CActF"}
@@ -1,8 +1,11 @@
1
1
  import { ClaudeCodeAgentSpecification } from "./claude-code-agent.js";
2
2
  import { CodexAgentSpecification } from "./codex-agent.js";
3
+ import { CopilotCliAgentSpecification } from "./copilot-cli-agent.js";
3
4
  import { CursorCliAgentSpecification } from "./cursor-cli-agent.js";
4
5
  import { DeepSeekHarnessAgentSpecification } from "./deepseek-harness-agent.js";
6
+ import { GeminiCliAgentSpecification } from "./gemini-cli-agent.js";
5
7
  import { GrokBuildAgentSpecification } from "./grok-build-agent.js";
8
+ import { HermesAgentSpecification } from "./hermes-agent.js";
6
9
  import { OpenCodeAgentSpecification } from "./opencode-agent.js";
7
10
  import { PiAgentSpecification } from "./pi-agent.js";
8
11
  import { WorkBuddyAgentSpecification } from "./workbuddy-agent.js";
@@ -10,12 +13,15 @@ export function supportedLocalAgentSpecifications() {
10
13
  return Object.freeze([
11
14
  new CodexAgentSpecification(),
12
15
  new ClaudeCodeAgentSpecification(),
16
+ new CopilotCliAgentSpecification(),
13
17
  new PiAgentSpecification(),
14
18
  new DeepSeekHarnessAgentSpecification(),
19
+ new HermesAgentSpecification(),
15
20
  new OpenCodeAgentSpecification(),
16
21
  new CursorCliAgentSpecification(),
17
22
  new GrokBuildAgentSpecification(),
18
23
  new WorkBuddyAgentSpecification(),
24
+ new GeminiCliAgentSpecification(),
19
25
  ]);
20
26
  }
21
27
  //# sourceMappingURL=supported-agent-specifications.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"supported-agent-specifications.js","sourceRoot":"","sources":["../../../src/agent-catalog/agents/supported-agent-specifications.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,UAAU,iCAAiC;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,uBAAuB,EAAE;QAC7B,IAAI,4BAA4B,EAAE;QAClC,IAAI,oBAAoB,EAAE;QAC1B,IAAI,iCAAiC,EAAE;QACvC,IAAI,0BAA0B,EAAE;QAChC,IAAI,2BAA2B,EAAE;QACjC,IAAI,2BAA2B,EAAE;QACjC,IAAI,2BAA2B,EAAE;KACpC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"supported-agent-specifications.js","sourceRoot":"","sources":["../../../src/agent-catalog/agents/supported-agent-specifications.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,UAAU,iCAAiC;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,uBAAuB,EAAE;QAC7B,IAAI,4BAA4B,EAAE;QAClC,IAAI,4BAA4B,EAAE;QAClC,IAAI,oBAAoB,EAAE;QAC1B,IAAI,iCAAiC,EAAE;QACvC,IAAI,wBAAwB,EAAE;QAC9B,IAAI,0BAA0B,EAAE;QAChC,IAAI,2BAA2B,EAAE;QACjC,IAAI,2BAA2B,EAAE;QACjC,IAAI,2BAA2B,EAAE;QACjC,IAAI,2BAA2B,EAAE;KACpC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"discover-agent.d.ts","sourceRoot":"","sources":["../../src/agent-catalog/discover-agent.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,cAAc,EAUtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE/E,OAAO,EAA4B,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAmClG,wBAAsB,aAAa,CAC/B,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GACpC,OAAO,CAAC,cAAc,CAAC,CA0HzB"}
1
+ {"version":3,"file":"discover-agent.d.ts","sourceRoot":"","sources":["../../src/agent-catalog/discover-agent.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,cAAc,EAUtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE/E,OAAO,EAA4B,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAmClG,wBAAsB,aAAa,CAC/B,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GACpC,OAAO,CAAC,cAAc,CAAC,CA4HzB"}
@@ -43,7 +43,7 @@ export async function discoverAgent(specification, context) {
43
43
  for (const agent of agents) {
44
44
  let agentVersion = "";
45
45
  try {
46
- agentVersion = await probeVersion(agent, specification.agentVersionArguments, context.environment, context.defaultWorkspace, context.signal, specification.versionProbeTimeoutMilliseconds);
46
+ agentVersion = await probeVersion(agent, specification.agentVersionArguments, context.environment, context.defaultWorkspace, context.signal, specification.versionProbeTimeoutMilliseconds, specification.normalizeAgentVersion);
47
47
  }
48
48
  catch (error) {
49
49
  if (context.signal.aborted) {
@@ -68,7 +68,7 @@ export async function discoverAgent(specification, context) {
68
68
  adapterVersion = await probeVersion(adapter, specification.adapterVersionArguments, {
69
69
  ...context.environment,
70
70
  ...launchEnvironment,
71
- }, context.defaultWorkspace, context.signal, specification.versionProbeTimeoutMilliseconds);
71
+ }, context.defaultWorkspace, context.signal, specification.versionProbeTimeoutMilliseconds, specification.normalizeAdapterVersion);
72
72
  }
73
73
  }
74
74
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"discover-agent.js","sourceRoot":"","sources":["../../src/agent-catalog/discover-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discover-agent.js","sourceRoot":"","sources":["../../src/agent-catalog/discover-agent.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,12 @@ import type { LocalAgentDiscoveryContext } from "./agent-discovery-context.ts";
3
3
  import type { LocalAgentSpecification } from "./agent-specification.ts";
4
4
  export { AvailableAgent, LocalAgentInventory, } from "./agent-discovery.ts";
5
5
  export { CodexAgentSpecification } from "./agents/codex-agent.ts";
6
+ export { CopilotCliAgentSpecification } from "./agents/copilot-cli-agent.ts";
6
7
  export { CursorCliAgentSpecification } from "./agents/cursor-cli-agent.ts";
7
8
  export { DeepSeekHarnessAgentSpecification } from "./agents/deepseek-harness-agent.ts";
9
+ export { GeminiCliAgentSpecification } from "./agents/gemini-cli-agent.ts";
8
10
  export { GrokBuildAgentSpecification } from "./agents/grok-build-agent.ts";
11
+ export { HermesAgentSpecification } from "./agents/hermes-agent.ts";
9
12
  export { OpenCodeAgentSpecification } from "./agents/opencode-agent.ts";
10
13
  export { PiAgentSpecification } from "./agents/pi-agent.ts";
11
14
  export { supportedLocalAgentSpecifications } from "./agents/supported-agent-specifications.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"discover-local-agents.d.ts","sourceRoot":"","sources":["../../src/agent-catalog/discover-local-agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAIxE,OAAO,EACH,cAAc,EACd,mBAAmB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,WAAW,kCAAmC,SAAQ,0BAA0B;IAClF,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAChE;AAED,wBAAsB,2BAA2B,CAC7C,OAAO,EAAE,kCAAkC,GAC5C,OAAO,CAAC,mBAAmB,CAAC,CAM9B"}
1
+ {"version":3,"file":"discover-local-agents.d.ts","sourceRoot":"","sources":["../../src/agent-catalog/discover-local-agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAIxE,OAAO,EACH,cAAc,EACd,mBAAmB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,WAAW,kCAAmC,SAAQ,0BAA0B;IAClF,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAChE;AAED,wBAAsB,2BAA2B,CAC7C,OAAO,EAAE,kCAAkC,GAC5C,OAAO,CAAC,mBAAmB,CAAC,CAM9B"}
@@ -3,9 +3,12 @@ import { supportedLocalAgentSpecifications } from "./agents/supported-agent-spec
3
3
  import { discoverAgent } from "./discover-agent.js";
4
4
  export { AvailableAgent, LocalAgentInventory, } from "./agent-discovery.js";
5
5
  export { CodexAgentSpecification } from "./agents/codex-agent.js";
6
+ export { CopilotCliAgentSpecification } from "./agents/copilot-cli-agent.js";
6
7
  export { CursorCliAgentSpecification } from "./agents/cursor-cli-agent.js";
7
8
  export { DeepSeekHarnessAgentSpecification } from "./agents/deepseek-harness-agent.js";
9
+ export { GeminiCliAgentSpecification } from "./agents/gemini-cli-agent.js";
8
10
  export { GrokBuildAgentSpecification } from "./agents/grok-build-agent.js";
11
+ export { HermesAgentSpecification } from "./agents/hermes-agent.js";
9
12
  export { OpenCodeAgentSpecification } from "./agents/opencode-agent.js";
10
13
  export { PiAgentSpecification } from "./agents/pi-agent.js";
11
14
  export { supportedLocalAgentSpecifications } from "./agents/supported-agent-specifications.js";
@@ -1 +1 @@
1
- {"version":3,"file":"discover-local-agents.js","sourceRoot":"","sources":["../../src/agent-catalog/discover-local-agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EACH,cAAc,EACd,mBAAmB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAMnE,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC7C,OAA2C;IAE3C,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,iCAAiC,EAAE,CAAC;IACrF,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,MAAM,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAC3F,CAAC;IACF,OAAO,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"discover-local-agents.js","sourceRoot":"","sources":["../../src/agent-catalog/discover-local-agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EACH,cAAc,EACd,mBAAmB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAMnE,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC7C,OAA2C;IAE3C,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,iCAAiC,EAAE,CAAC;IACrF,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,MAAM,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAC3F,CAAC;IACF,OAAO,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;AAChD,CAAC"}
@@ -5,8 +5,7 @@ export declare function resolveAgentExecutables(specification: LocalAgentSpecifi
5
5
  export declare function resolveAdapterExecutables(specification: LocalAgentSpecification, context: LocalAgentDiscoveryContext): Promise<readonly ResolvedExecutable[]>;
6
6
  export declare function resolveAgentExecutable(specification: LocalAgentSpecification, context: LocalAgentDiscoveryContext): Promise<ResolvedExecutable | null>;
7
7
  export declare function resolveAdapterExecutable(specification: LocalAgentSpecification, context: LocalAgentDiscoveryContext): Promise<ResolvedExecutable | null>;
8
- export declare function normalizedVersion(output: string): string;
9
- export declare function probeVersion(executable: ResolvedExecutable, arguments_: readonly string[], environment: Readonly<NodeJS.ProcessEnv>, defaultWorkspace: string, signal: AbortSignal, timeoutMilliseconds: number): Promise<string>;
8
+ export declare function probeVersion(executable: ResolvedExecutable, arguments_: readonly string[], environment: Readonly<NodeJS.ProcessEnv>, defaultWorkspace: string, signal: AbortSignal, timeoutMilliseconds: number, normalize?: (output: string) => string): Promise<string>;
10
9
  export declare class VerifiedAgentExecutable {
11
10
  readonly executable: ResolvedExecutable;
12
11
  readonly version: string;
@@ -1 +1 @@
1
- {"version":3,"file":"executable-discovery.d.ts","sourceRoot":"","sources":["../../src/agent-catalog/executable-discovery.ts"],"names":[],"mappings":"AAGA,OAAO,EAGH,KAAK,kBAAkB,EAG1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAGH,KAAK,uBAAuB,EAC/B,MAAM,0BAA0B,CAAC;AAsElC,wBAAsB,uBAAuB,CACzC,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GACpC,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAQxC;AAED,wBAAsB,yBAAyB,CAC3C,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GACpC,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAcxC;AAED,wBAAsB,sBAAsB,CACxC,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GACpC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAGpC;AAED,wBAAsB,wBAAwB,CAC1C,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GACpC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAGpC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAsB,YAAY,CAC9B,UAAU,EAAE,kBAAkB,EAC9B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EACxC,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,WAAW,EACnB,mBAAmB,EAAE,MAAM,GAC5B,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED,qBAAa,uBAAuB;IAChC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,YAAY,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAG1D;CACJ;AAED,wBAAsB,2BAA2B,CAC7C,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GACpC,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAoBzC"}
1
+ {"version":3,"file":"executable-discovery.d.ts","sourceRoot":"","sources":["../../src/agent-catalog/executable-discovery.ts"],"names":[],"mappings":"AAGA,OAAO,EAGH,KAAK,kBAAkB,EAG1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAGH,KAAK,uBAAuB,EAC/B,MAAM,0BAA0B,CAAC;AAuElC,wBAAsB,uBAAuB,CACzC,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GACpC,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAQxC;AAED,wBAAsB,yBAAyB,CAC3C,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GACpC,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAcxC;AAED,wBAAsB,sBAAsB,CACxC,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GACpC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAGpC;AAED,wBAAsB,wBAAwB,CAC1C,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GACpC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAGpC;AAED,wBAAsB,YAAY,CAC9B,UAAU,EAAE,kBAAkB,EAC9B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EACxC,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,WAAW,EACnB,mBAAmB,EAAE,MAAM,EAC3B,SAAS,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAA+B,GAC/D,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED,qBAAa,uBAAuB;IAChC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,YAAY,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAG1D;CACJ;AAED,wBAAsB,2BAA2B,CAC7C,aAAa,EAAE,uBAAuB,EACtC,OAAO,EAAE,0BAA0B,GACpC,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAqBzC"}
@@ -3,6 +3,7 @@ import { validateManagedAdapter } from "../agent-installation/managed-adapter-in
3
3
  import { findExecutableOnPath, ProcessExecutionError, resolveExecutablePath, runBoundedProcess, } from "../process/executable.js";
4
4
  import { readStateDirectory } from "../storage/state-directory.js";
5
5
  import { BridgedAcpAgentDefinition, DirectAcpAgentDefinition, } from "./agent-specification.js";
6
+ import { normalizeVersionOutput } from "./version-output.js";
6
7
  async function resolveManagedExecutable(specification, context) {
7
8
  try {
8
9
  return await specification.resolveManagedAgent(readStateDirectory(context.environment), context.platform ?? process.platform, context.signal);
@@ -71,10 +72,7 @@ export async function resolveAdapterExecutable(specification, context) {
71
72
  const executables = await resolveAdapterExecutables(specification, context);
72
73
  return executables[0] ?? null;
73
74
  }
74
- export function normalizedVersion(output) {
75
- return output.trim().split(/\r?\n/, 1)[0]?.trim().slice(0, 128) ?? "";
76
- }
77
- export async function probeVersion(executable, arguments_, environment, defaultWorkspace, signal, timeoutMilliseconds) {
75
+ export async function probeVersion(executable, arguments_, environment, defaultWorkspace, signal, timeoutMilliseconds, normalize = normalizeVersionOutput) {
78
76
  const result = await runBoundedProcess({
79
77
  arguments: arguments_,
80
78
  command: executable.path,
@@ -83,7 +81,7 @@ export async function probeVersion(executable, arguments_, environment, defaultW
83
81
  signal,
84
82
  timeoutMilliseconds,
85
83
  });
86
- const version = normalizedVersion(result.stdout || result.stderr);
84
+ const version = normalize(result.stdout || result.stderr);
87
85
  if (version.length === 0) {
88
86
  throw new ProcessExecutionError("process_exit_failed", "The executable did not report a version");
89
87
  }
@@ -101,7 +99,7 @@ export async function findVerifiedAgentExecutable(specification, context) {
101
99
  const executables = await resolveAgentExecutables(specification, context);
102
100
  for (const executable of executables) {
103
101
  try {
104
- const version = await probeVersion(executable, specification.agentVersionArguments, context.environment, context.defaultWorkspace, context.signal, specification.versionProbeTimeoutMilliseconds);
102
+ const version = await probeVersion(executable, specification.agentVersionArguments, context.environment, context.defaultWorkspace, context.signal, specification.versionProbeTimeoutMilliseconds, specification.normalizeAgentVersion);
105
103
  return new VerifiedAgentExecutable(executable, version);
106
104
  }
107
105
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"executable-discovery.js","sourceRoot":"","sources":["../../src/agent-catalog/executable-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executable-discovery.js","sourceRoot":"","sources":["../../src/agent-catalog/executable-discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function normalizeVersionOutput(output: string): string;
2
+ //# sourceMappingURL=version-output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-output.d.ts","sourceRoot":"","sources":["../../src/agent-catalog/version-output.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7D"}
@@ -0,0 +1,4 @@
1
+ export function normalizeVersionOutput(output) {
2
+ return output.trim().split(/\r?\n/, 1)[0]?.trim().slice(0, 128) ?? "";
3
+ }
4
+ //# sourceMappingURL=version-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-output.js","sourceRoot":"","sources":["../../src/agent-catalog/version-output.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACjD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { LocalRasterImage } from "../authorization/local-raster.ts";
2
+ import type { DaemonConfig } from "../config.ts";
3
+ export declare class UploadedRuntimeArtifact {
4
+ readonly artifactId: string;
5
+ readonly byteLength: number;
6
+ readonly mimeType: string;
7
+ readonly name: string;
8
+ readonly sha256: string;
9
+ constructor(artifactId: string, name: string, mimeType: string, byteLength: number, sha256: string);
10
+ }
11
+ export declare function uploadRuntimeArtifact(config: DaemonConfig, sessionId: string, image: LocalRasterImage, signal: AbortSignal): Promise<UploadedRuntimeArtifact>;
12
+ //# sourceMappingURL=runtime-artifact-uploader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-artifact-uploader.d.ts","sourceRoot":"","sources":["../../src/artifacts/runtime-artifact-uploader.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAejD,qBAAa,uBAAuB;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAMjG;CACJ;AA6FD,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,uBAAuB,CAAC,CA4ElC"}
@@ -0,0 +1,157 @@
1
+ import { createHash } from "node:crypto";
2
+ import { MOBIUS_API_PREFIX } from "@moxt-ai/mobius-protocol";
3
+ import { decodeMobiusArtifactUpload, decodeMobiusAvailableArtifact, MobiusArtifactUploadRequest, MobiusProtocolError, MobiusValidationError, } from "@moxt-ai/mobius-sdk";
4
+ import { fetch } from "undici";
5
+ import { environmentProxyDispatcher } from "../network/environment-proxy.js";
6
+ const UPLOAD_TIMEOUT_MILLISECONDS = 20_000;
7
+ class RuntimeArtifactUploadError extends Error {
8
+ code;
9
+ constructor(code, message, options = {}) {
10
+ super(message, options);
11
+ this.code = code;
12
+ this.name = "RuntimeArtifactUploadError";
13
+ }
14
+ }
15
+ export class UploadedRuntimeArtifact {
16
+ artifactId;
17
+ byteLength;
18
+ mimeType;
19
+ name;
20
+ sha256;
21
+ constructor(artifactId, name, mimeType, byteLength, sha256) {
22
+ this.artifactId = artifactId;
23
+ this.byteLength = byteLength;
24
+ this.mimeType = mimeType;
25
+ this.name = name;
26
+ this.sha256 = sha256;
27
+ }
28
+ }
29
+ function daemonToken(config) {
30
+ const token = config.relayUrl.searchParams.get("token");
31
+ if (token === null || token.length < 32) {
32
+ throw new RuntimeArtifactUploadError("artifact_endpoint_invalid", "The Relay daemon token is missing");
33
+ }
34
+ return token;
35
+ }
36
+ function channelOrigin(config) {
37
+ const url = new URL(config.relayUrl);
38
+ url.protocol = url.protocol === "wss:" ? "https:" : "http:";
39
+ let channelPath = "";
40
+ if (url.pathname.endsWith("/daemon")) {
41
+ channelPath = url.pathname.slice(0, -"/daemon".length);
42
+ }
43
+ else {
44
+ const runtimePath = `${MOBIUS_API_PREFIX}/v1/runtimes/connect`;
45
+ if (!url.pathname.endsWith("/v1/runtimes/connect") && !url.pathname.endsWith(runtimePath)) {
46
+ throw new RuntimeArtifactUploadError("artifact_endpoint_invalid", "The Relay artifact endpoint is invalid");
47
+ }
48
+ channelPath = `${url.pathname.replace(/\/v1\/runtimes\/connect$/, "")}/channels/${encodeURIComponent(config.channelId)}`;
49
+ }
50
+ url.pathname = channelPath;
51
+ url.search = "";
52
+ url.hash = "";
53
+ return url;
54
+ }
55
+ function uploadError(code, message, cause) {
56
+ return new RuntimeArtifactUploadError(code, message, cause === undefined ? {} : { cause });
57
+ }
58
+ function translateSdkError(cause) {
59
+ if (cause instanceof MobiusValidationError) {
60
+ throw uploadError("artifact_upload_failed", cause.message, cause);
61
+ }
62
+ if (cause instanceof MobiusProtocolError) {
63
+ throw uploadError("artifact_upload_failed", "The Relay returned an invalid upload response", cause);
64
+ }
65
+ throw cause;
66
+ }
67
+ async function readJson(response) {
68
+ try {
69
+ return await response.json();
70
+ }
71
+ catch (cause) {
72
+ throw uploadError("artifact_upload_failed", "The Relay returned an invalid upload response", cause);
73
+ }
74
+ }
75
+ async function readAuthorization(response) {
76
+ try {
77
+ return decodeMobiusArtifactUpload(await readJson(response));
78
+ }
79
+ catch (cause) {
80
+ translateSdkError(cause);
81
+ }
82
+ }
83
+ function sessionArtifactUrl(origin, sessionId, resourcePath, token) {
84
+ const url = new URL(`${origin.pathname}/sessions/${encodeURIComponent(sessionId)}/${resourcePath}`, origin);
85
+ url.searchParams.set("token", token);
86
+ return url;
87
+ }
88
+ async function postLease(url, request, signal) {
89
+ return await fetch(url, {
90
+ dispatcher: environmentProxyDispatcher,
91
+ headers: { "content-type": "application/json" },
92
+ method: "POST",
93
+ body: JSON.stringify(request),
94
+ signal,
95
+ });
96
+ }
97
+ async function putContent(url, authorization, bytes, signal) {
98
+ return await fetch(url, {
99
+ dispatcher: environmentProxyDispatcher,
100
+ headers: {
101
+ "content-type": authorization.mediaType,
102
+ "x-mobius-upload-token": authorization.uploadToken,
103
+ },
104
+ method: "PUT",
105
+ body: bytes,
106
+ signal,
107
+ });
108
+ }
109
+ export async function uploadRuntimeArtifact(config, sessionId, image, signal) {
110
+ signal.throwIfAborted();
111
+ let request;
112
+ try {
113
+ request = new MobiusArtifactUploadRequest(image.name, image.mimeType, image.bytes.byteLength, createHash("sha256").update(image.bytes).digest("hex"));
114
+ }
115
+ catch (cause) {
116
+ translateSdkError(cause);
117
+ }
118
+ const timeoutSignal = AbortSignal.timeout(UPLOAD_TIMEOUT_MILLISECONDS);
119
+ const requestSignal = AbortSignal.any([signal, timeoutSignal]);
120
+ const origin = channelOrigin(config);
121
+ const token = daemonToken(config);
122
+ let created;
123
+ try {
124
+ created = await postLease(sessionArtifactUrl(origin, sessionId, "artifacts/uploads", token), request, requestSignal);
125
+ }
126
+ catch (cause) {
127
+ signal.throwIfAborted();
128
+ throw uploadError(timeoutSignal.aborted ? "artifact_upload_timeout" : "artifact_upload_failed", timeoutSignal.aborted
129
+ ? "The artifact upload authorization timed out"
130
+ : "The artifact upload could not start", cause);
131
+ }
132
+ if (!created.ok) {
133
+ await created.body?.cancel();
134
+ throw uploadError("artifact_upload_rejected", "The Relay rejected the artifact upload");
135
+ }
136
+ const authorization = await readAuthorization(created);
137
+ let uploaded;
138
+ try {
139
+ uploaded = await putContent(sessionArtifactUrl(origin, sessionId, `artifacts/${encodeURIComponent(authorization.artifactId)}/content`, token), authorization, image.bytes, requestSignal);
140
+ }
141
+ catch (cause) {
142
+ signal.throwIfAborted();
143
+ throw uploadError(timeoutSignal.aborted ? "artifact_upload_timeout" : "artifact_upload_failed", timeoutSignal.aborted ? "The artifact upload timed out" : "The artifact content could not be uploaded", cause);
144
+ }
145
+ if (!uploaded.ok) {
146
+ await uploaded.body?.cancel();
147
+ throw uploadError("artifact_upload_rejected", "The Relay rejected the artifact content");
148
+ }
149
+ try {
150
+ const available = decodeMobiusAvailableArtifact(await readJson(uploaded));
151
+ return new UploadedRuntimeArtifact(available.artifactId, available.name, available.mediaType, available.byteLength, available.sha256);
152
+ }
153
+ catch (cause) {
154
+ translateSdkError(cause);
155
+ }
156
+ }
157
+ //# sourceMappingURL=runtime-artifact-uploader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-artifact-uploader.js","sourceRoot":"","sources":["../../src/artifacts/runtime-artifact-uploader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export type LocalRasterMimeType = "image/png" | "image/jpeg" | "image/gif" | "image/webp";
2
+ export declare class LocalRasterImage {
3
+ readonly bytes: Uint8Array;
4
+ readonly mimeType: LocalRasterMimeType;
5
+ readonly name: string;
6
+ constructor(name: string, mimeType: LocalRasterMimeType, bytes: Uint8Array);
7
+ readonly base64: () => string;
8
+ }
9
+ export declare function readAuthorizedRaster(uri: string, roots: readonly string[], signal: AbortSignal): Promise<LocalRasterImage | null>;
10
+ //# sourceMappingURL=local-raster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-raster.d.ts","sourceRoot":"","sources":["../../src/authorization/local-raster.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;AAE1F,qBAAa,gBAAgB;IACzB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,YAAY,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,EAIzE;IAED,QAAQ,CAAC,MAAM,QAAO,MAAM,CAA+C;CAC9E;AA4ED,wBAAsB,oBAAoB,CACtC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAwClC"}