@moxt-ai/mobius 0.0.25 → 0.0.27

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 (38) hide show
  1. package/dist/agent-catalog/publish-agent-catalog.js +3 -3
  2. package/dist/agent-catalog/publish-agent-catalog.js.map +1 -1
  3. package/dist/cli.js +1194 -205
  4. package/dist/cli.js.map +4 -4
  5. package/dist/index.js +1186 -204
  6. package/dist/index.js.map +4 -4
  7. package/dist/network/environment-proxy.d.ts +1 -0
  8. package/dist/network/environment-proxy.d.ts.map +1 -1
  9. package/dist/network/environment-proxy.js +47 -0
  10. package/dist/network/environment-proxy.js.map +1 -1
  11. package/dist/prompt-artifact-resolver.d.ts.map +1 -1
  12. package/dist/prompt-artifact-resolver.js +7 -4
  13. package/dist/prompt-artifact-resolver.js.map +1 -1
  14. package/dist/relay-connection/connect.d.ts.map +1 -1
  15. package/dist/relay-connection/connect.js +19 -14
  16. package/dist/relay-connection/connect.js.map +1 -1
  17. package/dist/relay-connection/diagnostics.d.ts +11 -0
  18. package/dist/relay-connection/diagnostics.d.ts.map +1 -0
  19. package/dist/relay-connection/diagnostics.js +122 -0
  20. package/dist/relay-connection/diagnostics.js.map +1 -0
  21. package/dist/relay-connection/liveness.d.ts +1 -1
  22. package/dist/relay-connection/liveness.d.ts.map +1 -1
  23. package/dist/relay-connection/liveness.js +2 -1
  24. package/dist/relay-connection/liveness.js.map +1 -1
  25. package/dist/relay-connection/runtime-authentication.d.ts +3 -0
  26. package/dist/relay-connection/runtime-authentication.d.ts.map +1 -0
  27. package/dist/relay-connection/runtime-authentication.js +14 -0
  28. package/dist/relay-connection/runtime-authentication.js.map +1 -0
  29. package/dist/relay-connection/session-event-outbox.d.ts +34 -3
  30. package/dist/relay-connection/session-event-outbox.d.ts.map +1 -1
  31. package/dist/relay-connection/session-event-outbox.js +404 -13
  32. package/dist/relay-connection/session-event-outbox.js.map +1 -1
  33. package/dist/run-daemon.d.ts.map +1 -1
  34. package/dist/run-daemon.js +437 -151
  35. package/dist/run-daemon.js.map +1 -1
  36. package/dist/runtime.js +1186 -204
  37. package/dist/runtime.js.map +4 -4
  38. package/package.json +1 -1
@@ -1,3 +1,4 @@
1
1
  import { EnvHttpProxyAgent } from "undici";
2
2
  export declare const environmentProxyDispatcher: EnvHttpProxyAgent;
3
+ export declare function describeEnvironmentProxyRoute(target: URL): Readonly<Record<string, string>>;
3
4
  //# sourceMappingURL=environment-proxy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment-proxy.d.ts","sourceRoot":"","sources":["../../src/network/environment-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE3C,eAAO,MAAM,0BAA0B,mBAA0B,CAAC"}
1
+ {"version":3,"file":"environment-proxy.d.ts","sourceRoot":"","sources":["../../src/network/environment-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAK3C,eAAO,MAAM,0BAA0B,mBAA0B,CAAC;AAmClE,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAa3F"}
@@ -1,3 +1,50 @@
1
1
  import { EnvHttpProxyAgent } from "undici";
2
+ const configuredHttpProxy = process.env["http_proxy"] ?? process.env["HTTP_PROXY"] ?? "";
3
+ const configuredHttpsProxy = process.env["https_proxy"] ?? process.env["HTTPS_PROXY"] ?? configuredHttpProxy;
2
4
  export const environmentProxyDispatcher = new EnvHttpProxyAgent();
5
+ function bypassesProxy(target) {
6
+ const noProxy = process.env["no_proxy"] ?? process.env["NO_PROXY"] ?? "";
7
+ if (noProxy === "*") {
8
+ return true;
9
+ }
10
+ const hostname = target.hostname.replace(/^\[|\]$/gu, "").toLowerCase();
11
+ const defaultPort = target.protocol === "wss:" || target.protocol === "https:" ? 443 : 80;
12
+ const port = Number.parseInt(target.port, 10) || defaultPort;
13
+ for (const rawEntry of noProxy.split(/[,\s]/u)) {
14
+ if (rawEntry.length === 0) {
15
+ continue;
16
+ }
17
+ const parsed = rawEntry.match(/^(.+):(\d+)$/u);
18
+ const entryHostname = (parsed?.[1] ?? rawEntry).replace(/^\*?\./u, "").toLowerCase();
19
+ const entryPort = parsed?.[2] === undefined ? 0 : Number.parseInt(parsed[2], 10);
20
+ if (entryPort !== 0 && entryPort !== port) {
21
+ continue;
22
+ }
23
+ if (hostname === entryHostname || hostname.endsWith(`.${entryHostname}`)) {
24
+ return true;
25
+ }
26
+ }
27
+ return false;
28
+ }
29
+ function sanitizedProxyOrigin(proxyUrl) {
30
+ try {
31
+ return new URL(proxyUrl).origin;
32
+ }
33
+ catch {
34
+ return "configured-invalid-url";
35
+ }
36
+ }
37
+ export function describeEnvironmentProxyRoute(target) {
38
+ if (bypassesProxy(target)) {
39
+ return { proxyRoute: "direct" };
40
+ }
41
+ const proxyUrl = target.protocol === "wss:" || target.protocol === "https:" ? configuredHttpsProxy : configuredHttpProxy;
42
+ if (proxyUrl.length === 0) {
43
+ return { proxyRoute: "direct" };
44
+ }
45
+ return {
46
+ proxyOrigin: sanitizedProxyOrigin(proxyUrl),
47
+ proxyRoute: "proxy",
48
+ };
49
+ }
3
50
  //# sourceMappingURL=environment-proxy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment-proxy.js","sourceRoot":"","sources":["../../src/network/environment-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"environment-proxy.js","sourceRoot":"","sources":["../../src/network/environment-proxy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-artifact-resolver.d.ts","sourceRoot":"","sources":["../src/prompt-artifact-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAShD,qBAAa,mBAAoB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,YAAY,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,EAIpE;CACJ;AAED,qBAAa,uBAAuB;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IAE9C,YAAY,MAAM,EAAE,SAAS,WAAW,EAAE,EAAE,SAAS,EAAE,SAAS,cAAc,EAAE,EAG/E;CACJ;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC9B;AAsLD,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,uBAAuB,CAAC,CAmDlC"}
1
+ {"version":3,"file":"prompt-artifact-resolver.d.ts","sourceRoot":"","sources":["../src/prompt-artifact-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAUhD,qBAAa,mBAAoB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,YAAY,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,EAIpE;CACJ;AAED,qBAAa,uBAAuB;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IAE9C,YAAY,MAAM,EAAE,SAAS,WAAW,EAAE,EAAE,SAAS,EAAE,SAAS,cAAc,EAAE,EAG/E;CACJ;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC9B;AAwLD,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,uBAAuB,CAAC,CAmDlC"}
@@ -1,6 +1,7 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { fetch } from "undici";
3
3
  import { environmentProxyDispatcher } from "./network/environment-proxy.js";
4
+ import { relayHttpEndpoint, runtimeAuthorization } from "./relay-connection/runtime-authentication.js";
4
5
  const ARTIFACT_SCHEME = "mobius-artifact:";
5
6
  const ARTIFACT_DOWNLOAD_TIMEOUT_MILLISECONDS = 20_000;
6
7
  const MAX_AGENT_IMAGE_BASE64_LENGTH = 4_000_000;
@@ -65,8 +66,7 @@ function parseReference(resource) {
65
66
  return new PromptArtifactReference(artifactId, byteLength, sha256, resource);
66
67
  }
67
68
  function downloadUrl(config, command, reference) {
68
- const url = new URL(config.relayUrl);
69
- url.protocol = url.protocol === "wss:" ? "https:" : "http:";
69
+ const url = relayHttpEndpoint(config.relayUrl);
70
70
  let channelPath = "";
71
71
  if (url.pathname.endsWith("/daemon")) {
72
72
  channelPath = url.pathname.slice(0, -"/daemon".length);
@@ -79,7 +79,6 @@ function downloadUrl(config, command, reference) {
79
79
  channelPath = `${url.pathname.slice(0, -runtimePath.length)}/channels/${encodeURIComponent(config.channelId)}`;
80
80
  }
81
81
  url.pathname = `${channelPath}/sessions/${encodeURIComponent(command.sessionId)}/commands/${encodeURIComponent(command.commandId)}/artifacts/${encodeURIComponent(reference.artifactId)}/content`;
82
- url.searchParams.delete("liveness");
83
82
  return url;
84
83
  }
85
84
  async function responseBytes(response, expectedByteLength, signal) {
@@ -130,7 +129,11 @@ async function download(config, command, reference, signal) {
130
129
  try {
131
130
  response = await fetch(downloadUrl(config, command, reference), {
132
131
  dispatcher: environmentProxyDispatcher,
133
- headers: { accept: reference.resource.mimeType },
132
+ headers: {
133
+ accept: reference.resource.mimeType,
134
+ "accept-encoding": "identity",
135
+ ...runtimeAuthorization(config.relayUrl),
136
+ },
134
137
  signal: requestSignal,
135
138
  });
136
139
  if (!response.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-artifact-resolver.js","sourceRoot":"","sources":["../src/prompt-artifact-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAG/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAC3C,MAAM,sCAAsC,GAAG,MAAM,CAAC;AACtD,MAAM,6BAA6B,GAAG,SAAS,CAAC;AAChD,MAAM,8BAA8B,GAAG,SAAS,CAAC;AACjD,MAAM,kBAAkB,GAAG,qCAAqC,CAAC;AAEjE,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACjC,IAAI,CAAS;IAEtB,YAAY,IAAY,EAAE,OAAe,EAAE,OAAO,GAAiB,EAAE;QACjE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACtC,CAAC;CACJ;AAED,MAAM,OAAO,uBAAuB;IACvB,MAAM,CAAyB;IAC/B,SAAS,CAA4B;IAE9C,YAAY,MAA8B,EAAE,SAAoC;QAC5E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;CACJ;AASD,MAAM,uBAAuB;IAChB,UAAU,CAAS;IACnB,UAAU,CAAS;IACnB,QAAQ,CAAiB;IACzB,MAAM,CAAS;IAExB,YAAY,UAAkB,EAAE,UAAkB,EAAE,MAAc,EAAE,QAAwB;QACxF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AAED,SAAS,cAAc,CAAC,QAAwB;IAC5C,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACD,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,mBAAmB,CAAC,4BAA4B,EAAE,0CAA0C,EAAE;YACpG,KAAK;SACR,CAAC,CAAC;IACP,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC;IAChC,MAAM,iBAAiB,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACnE,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC7C,IACI,GAAG,CAAC,QAAQ,KAAK,eAAe;QAChC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QACnB,QAAQ,CAAC,IAAI,KAAK,MAAM;QACxB,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QACxB,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,MAAM,KAAK,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY;QACxB,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;QACpB,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACxC,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC;QACjC,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAChC,CAAC;QACC,MAAM,IAAI,mBAAmB,CAAC,4BAA4B,EAAE,0CAA0C,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,IAAI,uBAAuB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,WAAW,CAAC,MAAoB,EAAE,OAA8B,EAAE,SAAkC;IACzG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5D,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACJ,MAAM,WAAW,GAAG,sBAAsB,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,EAAE,wCAAwC,CAAC,CAAC;QACzG,CAAC;QACD,WAAW,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;IACnH,CAAC;IACD,GAAG,CAAC,QAAQ,GAAG,GAAG,WAAW,aAAa,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC;IAClM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC;AACf,CAAC;AAED,KAAK,UAAU,aAAa,CACxB,QAA2C,EAC3C,kBAA0B,EAC1B,MAAmB;IAEnB,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IACpE,IACI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC;QACzC,MAAM,CAAC,cAAc,CAAC,KAAK,kBAAkB;QAC7C,QAAQ,CAAC,IAAI,KAAK,IAAI,EACxB,CAAC;QACC,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,EAAE,iDAAiD,CAAC,CAAC;IAClH,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,CAAC;QACD,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACb,MAAM;YACV,CAAC;YACD,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;YACrC,IAAI,UAAU,GAAG,kBAAkB,EAAE,CAAC;gBAClC,MAAM,MAAM,CAAC,MAAM,CAAC,8CAA8C,CAAC,CAAC;gBACpE,MAAM,IAAI,mBAAmB,CACzB,2BAA2B,EAC3B,iDAAiD,CACpD,CAAC;YACN,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;YAAS,CAAC;QACP,MAAM,CAAC,WAAW,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,UAAU,KAAK,kBAAkB,EAAE,CAAC;QACpC,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,EAAE,iDAAiD,CAAC,CAAC;IAClH,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;IAC/B,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,QAAQ,CACnB,MAAoB,EACpB,OAA8B,EAC9B,SAAkC,EAClC,MAAmB;IAEnB,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;IAClF,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAC/D,IAAI,QAA2C,CAAC;IAChD,IAAI,CAAC;QACD,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;YAC5D,UAAU,EAAE,0BAA0B;YACtC,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAChD,MAAM,EAAE,aAAa;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAC9B,MAAM,IAAI,mBAAmB,CACzB,4BAA4B,EAC5B,iDAAiD,CACpD,CAAC;QACN,CAAC;QACD,IACI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,SAAS,CAAC,QAAQ,CAAC,QAAQ;YACpE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,KAAK,SAAS,CAAC,UAAU;YACrE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,SAAS,CAAC,MAAM,EAC9D,CAAC;YACC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAC9B,MAAM,IAAI,mBAAmB,CACzB,2BAA2B,EAC3B,iDAAiD,CACpD,CAAC;QACN,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QACjF,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;YACxE,MAAM,IAAI,mBAAmB,CACzB,2BAA2B,EAC3B,iDAAiD,CACpD,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;YACvC,MAAM,KAAK,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,mBAAmB,CACzB,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,0BAA0B,EAChF,aAAa,CAAC,OAAO;YACjB,CAAC,CAAC,wCAAwC;YAC1C,CAAC,CAAC,6CAA6C,EACnD,EAAE,KAAK,EAAE,KAAK,EAAE,CACnB,CAAC;IACN,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB;IACtC,OAAO,CACH,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;QAC7B,SAAS,KAAK,kBAAkB;QAChC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC3B,SAAS,KAAK,iBAAiB;QAC/B,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC7B,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,MAAoB,EACpB,OAA8B,EAC9B,MAAmB;IAEnB,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAC5C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,SAAS;QACb,CAAC;QACD,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACjE,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,IAAI,CAAC,MAAM,GAAG,6BAA6B,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,mBAAmB,CACzB,8BAA8B,EAC9B,mDAAmD,CACtD,CAAC;YACN,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACxE,SAAS;QACb,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,mBAAmB,CACzB,iCAAiC,EACjC,0DAA0D,CAC7D,CAAC;QACN,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,GAAG,8BAA8B,IAAI,SAAS,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YAC9E,MAAM,IAAI,mBAAmB,CACzB,8BAA8B,EAC9B,sDAAsD,CACzD,CAAC;QACN,CAAC;QACD,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACD,IAAI,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,EAAE,6CAA6C,EAAE;gBACtG,KAAK;aACR,CAAC,CAAC;QACP,CAAC;QACD,SAAS,CAAC,IAAI,CAAC;YACX,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,IAAI;YACJ,IAAI,EAAE,UAAU;YAChB,GAAG,EAAE,QAAQ,CAAC,GAAG;SACpB,CAAC,CAAC;IACP,CAAC;IACD,OAAO,IAAI,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"prompt-artifact-resolver.js","sourceRoot":"","sources":["../src/prompt-artifact-resolver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/relay-connection/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAgBnC,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAoE9E"}
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/relay-connection/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAwBnC,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAsF9E"}
@@ -1,11 +1,14 @@
1
1
  import { WebSocket } from "undici";
2
2
  import { environmentProxyDispatcher } from "../network/environment-proxy.js";
3
+ import { runtimeAuthorization } from "./runtime-authentication.js";
3
4
  const CONNECTION_TIMEOUT_MILLISECONDS = 15_000;
4
5
  class RelayConnectionError extends Error {
5
6
  code;
6
- constructor(code, message, options = {}) {
7
+ diagnosticDetails;
8
+ constructor(code, message, diagnosticDetails = {}, options = {}) {
7
9
  super(message, options);
8
10
  this.code = code;
11
+ this.diagnosticDetails = diagnosticDetails;
9
12
  this.name = "RelayConnectionError";
10
13
  }
11
14
  }
@@ -13,12 +16,8 @@ export function connectRelay(url, signal) {
13
16
  signal.throwIfAborted();
14
17
  return new Promise((resolve, reject) => {
15
18
  const endpoint = new URL(url);
16
- const headers = {};
17
- if (endpoint.pathname.endsWith("/v1/runtimes/connect")) {
18
- const runtimeCredential = endpoint.searchParams.get("token") ?? "";
19
- endpoint.searchParams.delete("token");
20
- headers["authorization"] = `Bearer ${runtimeCredential}`;
21
- }
19
+ const headers = runtimeAuthorization(endpoint);
20
+ endpoint.searchParams.delete("token");
22
21
  const socket = new WebSocket(endpoint, {
23
22
  dispatcher: environmentProxyDispatcher,
24
23
  headers,
@@ -43,14 +42,18 @@ export function connectRelay(url, signal) {
43
42
  };
44
43
  const onAbort = () => {
45
44
  fail(new RelayConnectionError("relay_connection_cancelled", "Relay connection was cancelled", {
46
- cause: signal.reason,
47
- }));
45
+ cancellation: "requested",
46
+ }, { cause: signal.reason }));
48
47
  };
49
- const onClose = () => {
50
- fail(new RelayConnectionError("relay_connection_closed", "Relay connection closed before it was ready"));
48
+ const onClose = (event) => {
49
+ fail(new RelayConnectionError("relay_connection_closed", "Relay connection closed before it was ready", {
50
+ closeCode: event.code.toString(),
51
+ closeReason: event.reason,
52
+ }));
51
53
  };
52
- const onError = () => {
53
- fail(new RelayConnectionError("relay_connection_failed", "Relay connection failed"));
54
+ const onError = (event) => {
55
+ const cause = Reflect.get(event, "error");
56
+ fail(new RelayConnectionError("relay_connection_failed", "Relay connection failed", {}, { cause: cause ?? event }));
54
57
  };
55
58
  const onOpen = () => {
56
59
  if (finished) {
@@ -61,7 +64,9 @@ export function connectRelay(url, signal) {
61
64
  resolve(socket);
62
65
  };
63
66
  function onTimeout() {
64
- fail(new RelayConnectionError("relay_connection_timeout", "Relay connection timed out"));
67
+ fail(new RelayConnectionError("relay_connection_timeout", "Relay connection timed out", {
68
+ timeoutMilliseconds: CONNECTION_TIMEOUT_MILLISECONDS.toString(),
69
+ }));
65
70
  }
66
71
  signal.addEventListener("abort", onAbort, { once: true });
67
72
  socket.addEventListener("close", onClose, { once: true });
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/relay-connection/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/relay-connection/connect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { AuditStore } from "../audit/audit-store.ts";
2
+ export declare class RelayConnectionDiagnostics {
3
+ #private;
4
+ constructor(audit: AuditStore, channelId: string, relayUrl: URL);
5
+ readonly catalogFailed: (failure: unknown) => void;
6
+ readonly connectionClosed: (connectionEpoch: number, code: number, reason: string, source: string) => void;
7
+ readonly connectionFailed: (connectionEpoch: number, failure: unknown, source: string) => void;
8
+ readonly connectionOpened: (connectionEpoch: number) => void;
9
+ readonly heartbeatTimedOut: (connectionEpoch: number, heartbeatId: string, timeoutMilliseconds: number) => void;
10
+ }
11
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/relay-connection/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAgD1D,qBAAa,0BAA0B;;IAQnC,YAAY,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAK9D;IAED,QAAQ,CAAC,aAAa,YAAa,OAAO,KAAG,IAAI,CAI/C;IAEF,QAAQ,CAAC,gBAAgB,oBAAqB,MAAM,QAAQ,MAAM,UAAU,MAAM,UAAU,MAAM,KAAG,IAAI,CAkBvG;IAEF,QAAQ,CAAC,gBAAgB,oBAAqB,MAAM,WAAW,OAAO,UAAU,MAAM,KAAG,IAAI,CAa3F;IAEF,QAAQ,CAAC,gBAAgB,oBAAqB,MAAM,KAAG,IAAI,CAWzD;IAEF,QAAQ,CAAC,iBAAiB,oBAAqB,MAAM,eAAe,MAAM,uBAAuB,MAAM,KAAG,IAAI,CAa5G;CAqBL"}
@@ -0,0 +1,122 @@
1
+ import { describeEnvironmentProxyRoute } from "../network/environment-proxy.js";
2
+ const MAX_DIAGNOSTIC_TEXT_LENGTH = 256;
3
+ function sanitizeDiagnosticText(value) {
4
+ const printable = Array.from(value, (character) => {
5
+ const code = character.charCodeAt(0);
6
+ return code < 32 || code === 127 ? " " : character;
7
+ }).join("");
8
+ const withoutSecrets = printable
9
+ .replace(/([?&](?:access_token|authorization|credential|key|secret|token)=)[^&\s]*/giu, "$1[redacted]")
10
+ .replace(/(?:https?|wss?):\/\/[^\s)]+/giu, (encodedUrl) => {
11
+ try {
12
+ return new URL(encodedUrl).origin;
13
+ }
14
+ catch {
15
+ return "[redacted-url]";
16
+ }
17
+ });
18
+ return withoutSecrets.slice(0, MAX_DIAGNOSTIC_TEXT_LENGTH);
19
+ }
20
+ function addFailureDetails(details, failure) {
21
+ let current = failure;
22
+ for (let depth = 0; depth < 3 && current instanceof Error; depth += 1) {
23
+ const prefix = depth === 0 ? "failure" : `cause${depth.toString()}`;
24
+ details[`${prefix}Name`] = current.name;
25
+ details[`${prefix}Message`] = sanitizeDiagnosticText(current.message);
26
+ const code = Reflect.get(current, "code");
27
+ if (typeof code === "string" || typeof code === "number") {
28
+ details[`${prefix}Code`] = String(code);
29
+ }
30
+ const statusCode = Reflect.get(current, "statusCode");
31
+ if (typeof statusCode === "string" || typeof statusCode === "number") {
32
+ details[`${prefix}StatusCode`] = String(statusCode);
33
+ }
34
+ const diagnosticDetails = Reflect.get(current, "diagnosticDetails");
35
+ if (typeof diagnosticDetails === "object" && diagnosticDetails !== null) {
36
+ for (const [key, value] of Object.entries(diagnosticDetails)) {
37
+ if (typeof value === "string") {
38
+ details[key] = sanitizeDiagnosticText(value);
39
+ }
40
+ }
41
+ }
42
+ current = current.cause;
43
+ }
44
+ }
45
+ export class RelayConnectionDiagnostics {
46
+ #audit;
47
+ #channelId;
48
+ #lastClosedEpoch = 0;
49
+ #lastFailedEpoch = 0;
50
+ #relayOrigin;
51
+ #route;
52
+ constructor(audit, channelId, relayUrl) {
53
+ this.#audit = audit;
54
+ this.#channelId = channelId;
55
+ this.#relayOrigin = relayUrl.origin;
56
+ this.#route = describeEnvironmentProxyRoute(relayUrl);
57
+ }
58
+ catalogFailed = (failure) => {
59
+ const details = { ...this.#route, relayOrigin: this.#relayOrigin };
60
+ addFailureDetails(details, failure);
61
+ this.#record("agent_catalog_publish_failed", "catalog", details, true);
62
+ };
63
+ connectionClosed = (connectionEpoch, code, reason, source) => {
64
+ if (this.#lastClosedEpoch === connectionEpoch) {
65
+ return;
66
+ }
67
+ this.#lastClosedEpoch = connectionEpoch;
68
+ this.#record("relay_connection_closed", connectionEpoch.toString(), {
69
+ closeCode: code.toString(),
70
+ closeReason: sanitizeDiagnosticText(reason),
71
+ connectionEpoch: connectionEpoch.toString(),
72
+ relayOrigin: this.#relayOrigin,
73
+ source,
74
+ ...this.#route,
75
+ }, true);
76
+ };
77
+ connectionFailed = (connectionEpoch, failure, source) => {
78
+ if (this.#lastFailedEpoch === connectionEpoch) {
79
+ return;
80
+ }
81
+ this.#lastFailedEpoch = connectionEpoch;
82
+ const details = {
83
+ connectionEpoch: connectionEpoch.toString(),
84
+ relayOrigin: this.#relayOrigin,
85
+ source,
86
+ ...this.#route,
87
+ };
88
+ addFailureDetails(details, failure);
89
+ this.#record("relay_connection_failed", connectionEpoch.toString(), details, true);
90
+ };
91
+ connectionOpened = (connectionEpoch) => {
92
+ this.#record("relay_connection_opened", connectionEpoch.toString(), {
93
+ connectionEpoch: connectionEpoch.toString(),
94
+ relayOrigin: this.#relayOrigin,
95
+ ...this.#route,
96
+ }, false);
97
+ };
98
+ heartbeatTimedOut = (connectionEpoch, heartbeatId, timeoutMilliseconds) => {
99
+ this.#record("relay_heartbeat_timed_out", connectionEpoch.toString(), {
100
+ connectionEpoch: connectionEpoch.toString(),
101
+ heartbeatId,
102
+ relayOrigin: this.#relayOrigin,
103
+ timeoutMilliseconds: timeoutMilliseconds.toString(),
104
+ ...this.#route,
105
+ }, true);
106
+ };
107
+ #record = (event, commandId, details, warning) => {
108
+ this.#audit.record({
109
+ commandId,
110
+ details,
111
+ event,
112
+ sessionId: this.#channelId,
113
+ });
114
+ const encoded = JSON.stringify({ channelId: this.#channelId, event, ...details });
115
+ if (warning) {
116
+ process.stderr.write(`Mobius relay diagnostic ${encoded}\n`);
117
+ return;
118
+ }
119
+ process.stdout.write(`Mobius relay diagnostic ${encoded}\n`);
120
+ };
121
+ }
122
+ //# sourceMappingURL=diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/relay-connection/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { type RuntimeHeartbeatAckEvent } from "@moxt-ai/mobius-protocol";
2
2
  import type { DaemonTimer } from "./timer.ts";
3
3
  export interface RelayLivenessTransport {
4
4
  readonly send: (message: string) => void;
5
- readonly unresponsive: () => void;
5
+ readonly unresponsive: (heartbeatId: string, timeoutMilliseconds: number) => void;
6
6
  }
7
7
  export declare class RelayConnectionLiveness {
8
8
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"liveness.d.ts","sourceRoot":"","sources":["../../src/relay-connection/liveness.ts"],"names":[],"mappings":"AAEA,OAAO,EAGH,KAAK,wBAAwB,EAChC,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAuB,WAAW,EAAE,MAAM,YAAY,CAAC;AA+BnE,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC;CACrC;AAED,qBAAa,uBAAuB;;IAKhC,YAAY,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,EAGhE;IAED,QAAQ,CAAC,WAAW,UAAW,wBAAwB,KAAG,IAAI,CAW5D;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAYvB;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAYvB;CAmCL"}
1
+ {"version":3,"file":"liveness.d.ts","sourceRoot":"","sources":["../../src/relay-connection/liveness.ts"],"names":[],"mappings":"AAEA,OAAO,EAGH,KAAK,wBAAwB,EAChC,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAuB,WAAW,EAAE,MAAM,YAAY,CAAC;AA+BnE,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,KAAK,IAAI,CAAC;CACrF;AAED,qBAAa,uBAAuB;;IAKhC,YAAY,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,EAGhE;IAED,QAAQ,CAAC,WAAW,UAAW,wBAAwB,KAAG,IAAI,CAW5D;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAYvB;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAYvB;CAoCL"}
@@ -75,9 +75,10 @@ export class RelayConnectionLiveness {
75
75
  if (!(this.#state instanceof AwaitingHeartbeatAckState)) {
76
76
  throw new Error("Heartbeat timeout occurred in an invalid state");
77
77
  }
78
+ const heartbeatId = this.#state.heartbeatId;
78
79
  this.#state.timeout.cancel();
79
80
  this.#state = new FinishedRelayLivenessState();
80
- this.#transport.unresponsive();
81
+ this.#transport.unresponsive(heartbeatId, HEARTBEAT_ACK_TIMEOUT_MILLISECONDS);
81
82
  };
82
83
  #sendHeartbeat = () => {
83
84
  if (this.#state instanceof WaitingForHeartbeatState) {
@@ -1 +1 @@
1
- {"version":3,"file":"liveness.js","sourceRoot":"","sources":["../../src/relay-connection/liveness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"liveness.js","sourceRoot":"","sources":["../../src/relay-connection/liveness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function runtimeAuthorization(relayUrl: URL): Readonly<Record<string, string>>;
2
+ export declare function relayHttpEndpoint(relayUrl: URL): URL;
3
+ //# sourceMappingURL=runtime-authentication.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-authentication.d.ts","sourceRoot":"","sources":["../../src/relay-connection/runtime-authentication.ts"],"names":[],"mappings":"AAIA,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAGpF;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,CAKpD"}
@@ -0,0 +1,14 @@
1
+ function runtimeCredential(relayUrl) {
2
+ return relayUrl.searchParams.get("token") ?? "";
3
+ }
4
+ export function runtimeAuthorization(relayUrl) {
5
+ const credential = runtimeCredential(relayUrl);
6
+ return credential.length === 0 ? {} : { authorization: `Bearer ${credential}` };
7
+ }
8
+ export function relayHttpEndpoint(relayUrl) {
9
+ const endpoint = new URL(relayUrl);
10
+ endpoint.protocol = endpoint.protocol === "wss:" ? "https:" : "http:";
11
+ endpoint.search = "";
12
+ return endpoint;
13
+ }
14
+ //# sourceMappingURL=runtime-authentication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-authentication.js","sourceRoot":"","sources":["../../src/relay-connection/runtime-authentication.ts"],"names":[],"mappings":"AAAA,SAAS,iBAAiB,CAAC,QAAa;IACpC,OAAO,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAa;IAC9C,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/C,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,UAAU,EAAE,EAAE,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAa;IAC3C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACtE,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,OAAO,QAAQ,CAAC;AACpB,CAAC"}
@@ -1,4 +1,28 @@
1
- import { type SessionEventAcknowledgement, type SessionEventRejection } from "@moxt-ai/mobius-protocol";
1
+ import { type RuntimeDelivery, type SessionEventAcknowledgement, type SessionEventRejection } from "@moxt-ai/mobius-protocol";
2
+ export interface SessionEventOutboxLimits {
3
+ readonly criticalEventBytes: number;
4
+ readonly criticalEventCount: number;
5
+ readonly runtimeDeliveryBytes: number;
6
+ readonly runtimeDeliveryCount: number;
7
+ readonly standardEventBytes: number;
8
+ readonly standardEventCount: number;
9
+ }
10
+ export declare class SessionEventOutboxCapacityError extends Error {
11
+ readonly code = "session_event_outbox_full";
12
+ constructor();
13
+ }
14
+ export declare class RuntimeDeliveryInboxCapacityError extends Error {
15
+ readonly code = "runtime_delivery_inbox_full";
16
+ constructor();
17
+ }
18
+ export declare class StoredRuntimeDelivery {
19
+ readonly deliveryId: string;
20
+ readonly duplicate: boolean;
21
+ readonly payload: string;
22
+ readonly sessionId: string;
23
+ readonly state: string;
24
+ constructor(deliveryId: string, sessionId: string, payload: string, state: string, duplicate: boolean);
25
+ }
2
26
  export type DaemonExecutionState = "cancelled" | "dispatching" | "failed" | "running" | "succeeded";
3
27
  export type DaemonExecutionReceipt = Readonly<{
4
28
  attemptId: string;
@@ -8,14 +32,21 @@ export type DaemonExecutionReceipt = Readonly<{
8
32
  }>;
9
33
  export declare class SessionEventOutbox {
10
34
  #private;
11
- constructor(path: string);
35
+ constructor(path: string, limits?: SessionEventOutboxLimits);
12
36
  readonly claimExecution: (commandId: string, sessionId: string, commandJson: string) => DaemonExecutionReceipt;
13
37
  readonly transitionExecution: (commandId: string, state: DaemonExecutionState) => void;
14
38
  readonly isTerminalExecution: (commandId: string, sessionId: string) => boolean;
15
- readonly acknowledge: (acknowledgement: SessionEventAcknowledgement) => void;
39
+ readonly acknowledge: (acknowledgement: SessionEventAcknowledgement) => boolean;
16
40
  readonly quarantine: (rejection: SessionEventRejection) => boolean;
17
41
  readonly close: () => void;
18
42
  readonly enqueue: (sessionId: string, payload: string, attemptId?: string | null) => string;
43
+ readonly enqueueCritical: (sessionId: string, payload: string, attemptId?: string) => string;
44
+ readonly claimRuntimeDelivery: (delivery: RuntimeDelivery) => StoredRuntimeDelivery;
45
+ readonly markRuntimeDeliveryCommitted: (deliveryId: string, sessionId: string) => boolean;
46
+ readonly markRuntimeDeliveryProcessed: (deliveryId: string, sessionId: string) => boolean;
47
+ readonly runtimeDeliveries: () => readonly StoredRuntimeDelivery[];
19
48
  readonly pending: () => readonly string[];
49
+ readonly pendingBatch: (limit: number) => readonly string[];
50
+ readonly pendingSourceHeads: (limit: number, excludedEventIds: readonly string[], excludedSourceKeys: readonly string[]) => readonly string[];
20
51
  }
21
52
  //# sourceMappingURL=session-event-outbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-event-outbox.d.ts","sourceRoot":"","sources":["../../src/relay-connection/session-event-outbox.ts"],"names":[],"mappings":"AAIA,OAAO,EAGH,KAAK,2BAA2B,EAEhC,KAAK,qBAAqB,EAC7B,MAAM,0BAA0B,CAAC;AAalC,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAEpG,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC;IAC/B,KAAK,EAAE,oBAAoB,CAAC;CAC/B,CAAC,CAAC;AAEH,qBAAa,kBAAkB;;IAG3B,YAAY,IAAI,EAAE,MAAM,EAmCvB;IAED,QAAQ,CAAC,cAAc,cAAe,MAAM,aAAa,MAAM,eAAe,MAAM,KAAG,sBAAsB,CA4C3G;IAEF,QAAQ,CAAC,mBAAmB,cAAe,MAAM,SAAS,oBAAoB,KAAG,IAAI,CAgBnF;IAEF,QAAQ,CAAC,mBAAmB,cAAe,MAAM,aAAa,MAAM,KAAG,OAAO,CAM5E;IAEF,QAAQ,CAAC,WAAW,oBAAqB,2BAA2B,KAAG,IAAI,CAOzE;IAEF,QAAQ,CAAC,UAAU,cAAe,qBAAqB,KAAG,OAAO,CAgC/D;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAEvB;IAEF,QAAQ,CAAC,OAAO,cAAe,MAAM,WAAW,MAAM,cAAa,MAAM,GAAG,IAAI,KAAU,MAAM,CAqD9F;IAEF,QAAQ,CAAC,OAAO,QAAO,SAAS,MAAM,EAAE,CAQN;CACrC"}
1
+ {"version":3,"file":"session-event-outbox.d.ts","sourceRoot":"","sources":["../../src/relay-connection/session-event-outbox.ts"],"names":[],"mappings":"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"}