harness-dispatch 0.7.9 → 0.9.0

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 (153) hide show
  1. package/CHANGELOG.md +1170 -1
  2. package/README.md +52 -6
  3. package/config.default.yaml +49 -5
  4. package/dist/auth.d.ts +29 -0
  5. package/dist/auth.d.ts.map +1 -1
  6. package/dist/auth.js +58 -5
  7. package/dist/auth.js.map +1 -1
  8. package/dist/billing.d.ts +24 -0
  9. package/dist/billing.d.ts.map +1 -1
  10. package/dist/billing.js +24 -0
  11. package/dist/billing.js.map +1 -1
  12. package/dist/bin.d.ts.map +1 -1
  13. package/dist/bin.js +529 -31
  14. package/dist/bin.js.map +1 -1
  15. package/dist/breaker-store.d.ts +25 -1
  16. package/dist/breaker-store.d.ts.map +1 -1
  17. package/dist/breaker-store.js +193 -25
  18. package/dist/breaker-store.js.map +1 -1
  19. package/dist/circuit-breaker.d.ts +9 -1
  20. package/dist/circuit-breaker.d.ts.map +1 -1
  21. package/dist/circuit-breaker.js +15 -1
  22. package/dist/circuit-breaker.js.map +1 -1
  23. package/dist/client-register.d.ts +157 -0
  24. package/dist/client-register.d.ts.map +1 -0
  25. package/dist/client-register.js +389 -0
  26. package/dist/client-register.js.map +1 -0
  27. package/dist/config/validation.d.ts +41 -0
  28. package/dist/config/validation.d.ts.map +1 -1
  29. package/dist/config/validation.js +215 -1
  30. package/dist/config/validation.js.map +1 -1
  31. package/dist/config.d.ts +4 -2
  32. package/dist/config.d.ts.map +1 -1
  33. package/dist/config.js +143 -6
  34. package/dist/config.js.map +1 -1
  35. package/dist/configure-yaml.d.ts +2 -0
  36. package/dist/configure-yaml.d.ts.map +1 -1
  37. package/dist/configure-yaml.js +69 -3
  38. package/dist/configure-yaml.js.map +1 -1
  39. package/dist/dispatch-log.d.ts +14 -0
  40. package/dist/dispatch-log.d.ts.map +1 -1
  41. package/dist/dispatch-log.js +3 -0
  42. package/dist/dispatch-log.js.map +1 -1
  43. package/dist/dispatchers/generic-cli.d.ts.map +1 -1
  44. package/dist/dispatchers/generic-cli.js +92 -15
  45. package/dist/dispatchers/generic-cli.js.map +1 -1
  46. package/dist/dispatchers/openai-compatible.d.ts +20 -4
  47. package/dist/dispatchers/openai-compatible.d.ts.map +1 -1
  48. package/dist/dispatchers/openai-compatible.js +167 -19
  49. package/dist/dispatchers/openai-compatible.js.map +1 -1
  50. package/dist/dispatchers/shared/harness-login.d.ts +25 -0
  51. package/dist/dispatchers/shared/harness-login.d.ts.map +1 -0
  52. package/dist/dispatchers/shared/harness-login.js +68 -0
  53. package/dist/dispatchers/shared/harness-login.js.map +1 -0
  54. package/dist/dispatchers/shared/stream-subprocess.d.ts.map +1 -1
  55. package/dist/dispatchers/shared/stream-subprocess.js +70 -4
  56. package/dist/dispatchers/shared/stream-subprocess.js.map +1 -1
  57. package/dist/file-lock.d.ts +29 -1
  58. package/dist/file-lock.d.ts.map +1 -1
  59. package/dist/file-lock.js +22 -1
  60. package/dist/file-lock.js.map +1 -1
  61. package/dist/http/answer-stream.d.ts +52 -0
  62. package/dist/http/answer-stream.d.ts.map +1 -0
  63. package/dist/http/answer-stream.js +47 -0
  64. package/dist/http/answer-stream.js.map +1 -0
  65. package/dist/http/parse.d.ts.map +1 -1
  66. package/dist/http/parse.js +41 -0
  67. package/dist/http/parse.js.map +1 -1
  68. package/dist/http/server.d.ts +2 -0
  69. package/dist/http/server.d.ts.map +1 -1
  70. package/dist/http/server.js +281 -23
  71. package/dist/http/server.js.map +1 -1
  72. package/dist/jobs/context.d.ts +0 -7
  73. package/dist/jobs/context.d.ts.map +1 -1
  74. package/dist/jobs/context.js +95 -7
  75. package/dist/jobs/context.js.map +1 -1
  76. package/dist/jobs/store.d.ts.map +1 -1
  77. package/dist/jobs/store.js +45 -4
  78. package/dist/jobs/store.js.map +1 -1
  79. package/dist/jobs/types.d.ts +8 -1
  80. package/dist/jobs/types.d.ts.map +1 -1
  81. package/dist/jobs.d.ts +39 -0
  82. package/dist/jobs.d.ts.map +1 -1
  83. package/dist/jobs.js +207 -15
  84. package/dist/jobs.js.map +1 -1
  85. package/dist/leaderboard.d.ts.map +1 -1
  86. package/dist/leaderboard.js +39 -27
  87. package/dist/leaderboard.js.map +1 -1
  88. package/dist/mcp/config-hot-reload.d.ts +14 -3
  89. package/dist/mcp/config-hot-reload.d.ts.map +1 -1
  90. package/dist/mcp/config-hot-reload.js +33 -5
  91. package/dist/mcp/config-hot-reload.js.map +1 -1
  92. package/dist/mcp/dispatcher-factory.d.ts.map +1 -1
  93. package/dist/mcp/dispatcher-factory.js +14 -3
  94. package/dist/mcp/dispatcher-factory.js.map +1 -1
  95. package/dist/mcp/near-miss-guard.d.ts +45 -0
  96. package/dist/mcp/near-miss-guard.d.ts.map +1 -0
  97. package/dist/mcp/near-miss-guard.js +98 -0
  98. package/dist/mcp/near-miss-guard.js.map +1 -0
  99. package/dist/mcp/server.d.ts.map +1 -1
  100. package/dist/mcp/server.js +36 -0
  101. package/dist/mcp/server.js.map +1 -1
  102. package/dist/mcp/tool-schemas.d.ts +1 -1
  103. package/dist/mcp/tool-schemas.d.ts.map +1 -1
  104. package/dist/mcp/tool-schemas.js +27 -7
  105. package/dist/mcp/tool-schemas.js.map +1 -1
  106. package/dist/mcp/tools.d.ts +33 -4
  107. package/dist/mcp/tools.d.ts.map +1 -1
  108. package/dist/mcp/tools.js +85 -8
  109. package/dist/mcp/tools.js.map +1 -1
  110. package/dist/mcp-clients.d.ts +72 -0
  111. package/dist/mcp-clients.d.ts.map +1 -0
  112. package/dist/mcp-clients.js +121 -0
  113. package/dist/mcp-clients.js.map +1 -0
  114. package/dist/near-miss.d.ts +63 -0
  115. package/dist/near-miss.d.ts.map +1 -0
  116. package/dist/near-miss.js +132 -0
  117. package/dist/near-miss.js.map +1 -0
  118. package/dist/quota.d.ts +31 -1
  119. package/dist/quota.d.ts.map +1 -1
  120. package/dist/quota.js +84 -8
  121. package/dist/quota.js.map +1 -1
  122. package/dist/route-policy.d.ts +12 -1
  123. package/dist/route-policy.d.ts.map +1 -1
  124. package/dist/route-policy.js +74 -2
  125. package/dist/route-policy.js.map +1 -1
  126. package/dist/router.d.ts +61 -2
  127. package/dist/router.d.ts.map +1 -1
  128. package/dist/router.js +160 -29
  129. package/dist/router.js.map +1 -1
  130. package/dist/safety.d.ts.map +1 -1
  131. package/dist/safety.js +37 -1
  132. package/dist/safety.js.map +1 -1
  133. package/dist/state-dir.d.ts +10 -0
  134. package/dist/state-dir.d.ts.map +1 -1
  135. package/dist/state-dir.js +12 -0
  136. package/dist/state-dir.js.map +1 -1
  137. package/dist/status.d.ts +30 -21
  138. package/dist/status.d.ts.map +1 -1
  139. package/dist/status.js +152 -8
  140. package/dist/status.js.map +1 -1
  141. package/dist/types.d.ts +49 -2
  142. package/dist/types.d.ts.map +1 -1
  143. package/dist/working-dir.d.ts.map +1 -1
  144. package/dist/working-dir.js +16 -0
  145. package/dist/working-dir.js.map +1 -1
  146. package/dist/workspace-resolve.d.ts.map +1 -1
  147. package/dist/workspace-resolve.js +196 -15
  148. package/dist/workspace-resolve.js.map +1 -1
  149. package/dist/workspaces.d.ts +98 -0
  150. package/dist/workspaces.d.ts.map +1 -1
  151. package/dist/workspaces.js +609 -20
  152. package/dist/workspaces.js.map +1 -1
  153. package/package.json +1 -1
@@ -14,4 +14,14 @@
14
14
  * With no env vars set nothing moves, so existing installs are untouched.
15
15
  */
16
16
  export declare function stateRoot(): string;
17
+ /**
18
+ * Where `configure` writes and the last place config lookup looks: the tool's
19
+ * own state directory, so a global install has one config no matter which
20
+ * directory a command is run from. `configure` used to write `./config.yaml`
21
+ * wherever the user happened to be, and lookup stopped at the current
22
+ * directory, so a config written from `~` was invisible to `doctor` run inside
23
+ * a project — while the MCP client, given the absolute path, saw it fine. The
24
+ * cold-install walk in acceptance/0.8.0.md is where that was seen.
25
+ */
26
+ export declare function userConfigPath(): string;
17
27
  //# sourceMappingURL=state-dir.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-dir.d.ts","sourceRoot":"","sources":["../src/state-dir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
1
+ {"version":3,"file":"state-dir.d.ts","sourceRoot":"","sources":["../src/state-dir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC"}
package/dist/state-dir.js CHANGED
@@ -18,4 +18,16 @@ import path from "node:path";
18
18
  export function stateRoot() {
19
19
  return process.env.HARNESS_DISPATCH_STATE_DIR ?? path.join(homedir(), ".harness-dispatch");
20
20
  }
21
+ /**
22
+ * Where `configure` writes and the last place config lookup looks: the tool's
23
+ * own state directory, so a global install has one config no matter which
24
+ * directory a command is run from. `configure` used to write `./config.yaml`
25
+ * wherever the user happened to be, and lookup stopped at the current
26
+ * directory, so a config written from `~` was invisible to `doctor` run inside
27
+ * a project — while the MCP client, given the absolute path, saw it fine. The
28
+ * cold-install walk in acceptance/0.8.0.md is where that was seen.
29
+ */
30
+ export function userConfigPath() {
31
+ return path.join(stateRoot(), "config.yaml");
32
+ }
21
33
  //# sourceMappingURL=state-dir.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-dir.js","sourceRoot":"","sources":["../src/state-dir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAC;AAC7F,CAAC"}
1
+ {"version":3,"file":"state-dir.js","sourceRoot":"","sources":["../src/state-dir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAC;AAC7F,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;AAC/C,CAAC"}
package/dist/status.d.ts CHANGED
@@ -3,32 +3,27 @@ import type { LeaderboardCache } from "./leaderboard.js";
3
3
  import type { QuotaCache } from "./quota.js";
4
4
  import type { Router } from "./router.js";
5
5
  import type { RouteBilling, RouteSkip, RouterConfig, SafetyProfile, ServiceConfig } from "./types.js";
6
+ export declare function redactEndpointHost(baseUrl: string): string;
6
7
  /**
7
- * Where to find the authoritative, current model catalog for a route.
8
- * hints.model routing is unvalidated by this server — a mismatched or
9
- * unsupported name is passed straight to the harness and fails at dispatch
10
- * time with that harness's real error, so these hints let a caller pick a
11
- * real model up front or self-correct after a failure.
8
+ * Strip an endpoint's credential-bearing parts out of TEXT WE DID NOT WRITE.
12
9
  *
13
- * The hint itself is DECLARED CONFIG (`model_hint:` on the route or its
14
- * harness's shipped-config entry) no per-harness table lives in code. The
15
- * one structural fallback: OpenAI-compatible endpoints all support the
16
- * standard GET /models catalog, hint or no hint.
17
- */
18
- /**
19
- * Replace a private endpoint host with a stable placeholder for output that
20
- * gets shared.
10
+ * `redactEndpointHost` only cleans a URL a caller hands it. An exception
11
+ * message is a different problem: undici embeds the URL it was given, so
12
+ * wrapping such a message and appending a redacted URL beside it produced
13
+ *
14
+ * Request cannot be constructed from a URL that includes credentials:
15
+ * https://user:pw@host:8443/v1?key=SECRET/v1/chat/completions
16
+ * (https://<endpoint-host>:8443/v1)
21
17
  *
22
- * `usage` output, the model-discovery hint and endpoint fetch errors all
23
- * quoted the full base_url, so a private host a `.ts.net` tailnet name, an
24
- * internal DNS entry — travelled into anything a user pastes into an issue.
25
- * The scheme, port and path carry all the diagnostic value; the hostname
26
- * carries none of it and is the only part that identifies infrastructure.
18
+ * the redacted form sitting next to the raw one, in the terminal AND in
19
+ * `logs/dispatches.jsonl`, under a doc comment promising it was safe to paste
20
+ * into a bug report. Reproduced by an acceptance pass.
27
21
  *
28
- * Loopback is left intact: "localhost" tells the reader something useful and
29
- * discloses nothing.
22
+ * Each credential-bearing piece is removed by value, so it does not matter how
23
+ * the message happened to assemble them: the whole base URL, then origin,
24
+ * hostname, userinfo, and every query value on their own.
30
25
  */
31
- export declare function redactEndpointHost(baseUrl: string): string;
26
+ export declare function scrubEndpointSecrets(text: string, baseUrl: string): string;
32
27
  export interface RouteStatus {
33
28
  id: string;
34
29
  harness: string;
@@ -67,6 +62,13 @@ export interface RouteStatus {
67
62
  tripped: boolean;
68
63
  failures: number;
69
64
  cooldownRemainingSec?: number;
65
+ /**
66
+ * The persisted record exists but could not be parsed, so `tripped` and
67
+ * `failures` below are this process's defaults rather than the route's
68
+ * real state. Set only when that is the case, so its absence keeps
69
+ * meaning what it always meant.
70
+ */
71
+ stateUnreadable?: true;
70
72
  };
71
73
  quality?: {
72
74
  score: number;
@@ -94,6 +96,13 @@ export interface HarnessDispatchStatus {
94
96
  * is the surface people actually run.
95
97
  */
96
98
  configWarnings?: readonly string[];
99
+ /**
100
+ * Saved state that could not be read, for records naming no configured
101
+ * route — a corrupt legacy blob has no route name at all, and a per-route
102
+ * line cannot carry one. Kept apart from `configWarnings` because nothing
103
+ * here was misconfigured or ignored.
104
+ */
105
+ stateWarnings?: readonly string[];
97
106
  next?: {
98
107
  route: string;
99
108
  tier: number;
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
package/dist/status.js CHANGED
@@ -30,23 +30,105 @@ import { workspacePolicyFor } from "./workspaces.js";
30
30
  * Loopback is left intact: "localhost" tells the reader something useful and
31
31
  * discloses nothing.
32
32
  */
33
+ /** The placeholder this function substitutes, and recognises on the way back in. */
34
+ const REDACTED_HOST = "<endpoint-host>";
33
35
  export function redactEndpointHost(baseUrl) {
36
+ // Idempotent: an already-redacted string comes back unchanged.
37
+ //
38
+ // Without this, redacting twice was actively worse than redacting once —
39
+ // `https://<endpoint-host>/v1` is not a parseable URL, so the second call
40
+ // fell to the catch and returned the bare `<endpoint>` placeholder, throwing
41
+ // away the scheme, port and path the comment below calls the diagnostic
42
+ // value. An acceptance pass found that as a regression in `usage`'s model
43
+ // hint. The alternative — asking every caller to know whether redaction has
44
+ // already happened — is how the leak this function exists for got in.
45
+ if (baseUrl.includes(REDACTED_HOST))
46
+ return baseUrl;
34
47
  try {
35
48
  const url = new URL(baseUrl);
36
49
  const host = url.hostname.toLowerCase();
37
- if (host === "localhost" || host === "127.0.0.1" || host === "::1")
38
- return baseUrl;
39
- url.hostname = "<endpoint-host>";
40
- return url.toString().replace(/\/+$/, "");
50
+ const loopback = host === "localhost" || host === "127.0.0.1" || host === "::1";
51
+ // Built as a string rather than by assigning to `url.hostname`.
52
+ //
53
+ // That assignment was the whole implementation and it did NOTHING: the
54
+ // WHATWG URL setter silently rejects a value containing `<` and `>`, so
55
+ // every "redacted" string was the input verbatim. An acceptance pass
56
+ // measured a failed dispatch reporting
57
+ // `https://api.secret-internal.example.com/v1?key=SECRETKEY123` into an
58
+ // error the calling comment describes as safe to paste into a bug report,
59
+ // and into the dispatch log. A silent no-op setter is exactly the kind of
60
+ // thing a test would have caught, and there was no test.
61
+ //
62
+ // Userinfo, query and fragment are dropped on every path, loopback
63
+ // included: a key embedded in the URL is a credential wherever the host
64
+ // points, and the original kept them even when it did replace the host.
65
+ const port = url.port === "" ? "" : `:${url.port}`;
66
+ const shown = loopback ? url.hostname : REDACTED_HOST;
67
+ return `${url.protocol}//${shown}${port}${url.pathname}`.replace(/\/+$/, "");
41
68
  }
42
69
  catch {
43
70
  return "<endpoint>";
44
71
  }
45
72
  }
73
+ /**
74
+ * Strip an endpoint's credential-bearing parts out of TEXT WE DID NOT WRITE.
75
+ *
76
+ * `redactEndpointHost` only cleans a URL a caller hands it. An exception
77
+ * message is a different problem: undici embeds the URL it was given, so
78
+ * wrapping such a message and appending a redacted URL beside it produced
79
+ *
80
+ * Request cannot be constructed from a URL that includes credentials:
81
+ * https://user:pw@host:8443/v1?key=SECRET/v1/chat/completions
82
+ * (https://<endpoint-host>:8443/v1)
83
+ *
84
+ * — the redacted form sitting next to the raw one, in the terminal AND in
85
+ * `logs/dispatches.jsonl`, under a doc comment promising it was safe to paste
86
+ * into a bug report. Reproduced by an acceptance pass.
87
+ *
88
+ * Each credential-bearing piece is removed by value, so it does not matter how
89
+ * the message happened to assemble them: the whole base URL, then origin,
90
+ * hostname, userinfo, and every query value on their own.
91
+ */
92
+ export function scrubEndpointSecrets(text, baseUrl) {
93
+ let out = text;
94
+ const replaceAll = (needle, with_) => {
95
+ if (needle.length === 0)
96
+ return;
97
+ out = out.split(needle).join(with_);
98
+ };
99
+ replaceAll(baseUrl, redactEndpointHost(baseUrl));
100
+ try {
101
+ const url = new URL(baseUrl);
102
+ const host = url.hostname.toLowerCase();
103
+ const loopback = host === "localhost" || host === "127.0.0.1" || host === "::1";
104
+ if (url.password)
105
+ replaceAll(url.password, "<redacted>");
106
+ if (url.username)
107
+ replaceAll(url.username, "<redacted>");
108
+ for (const value of url.searchParams.values())
109
+ replaceAll(value, "<redacted>");
110
+ // A loopback host is not itself a secret and its name is diagnostic, so it
111
+ // stays — the same call redactEndpointHost makes. Everything above is
112
+ // removed on every path, loopback included.
113
+ if (!loopback) {
114
+ replaceAll(url.origin, REDACTED_HOST);
115
+ replaceAll(url.hostname, REDACTED_HOST);
116
+ }
117
+ }
118
+ catch {
119
+ // Not a parseable URL, so there is nothing further to take out of it than
120
+ // the literal string already replaced above.
121
+ }
122
+ return out;
123
+ }
46
124
  function modelDiscoveryHint(route) {
47
125
  if (route.modelHint)
48
126
  return route.modelHint;
49
127
  if (route.type === "openai_compatible" && route.baseUrl) {
128
+ // Still redacted here even though buildStatus already did it: this
129
+ // function also runs on route objects a caller assembled itself, and the
130
+ // cost of forgetting is a credential. `redactEndpointHost` is idempotent,
131
+ // so applying it twice is a no-op rather than a degradation.
50
132
  return `Standard OpenAI-compatible catalog: GET ${redactEndpointHost(route.baseUrl)}/models`;
51
133
  }
52
134
  return undefined;
@@ -54,6 +136,8 @@ function modelDiscoveryHint(route) {
54
136
  export async function buildStatus(config, dispatchers, quota, router, leaderboard) {
55
137
  const quotaStatus = await quota.fullStatus();
56
138
  const breakers = router.circuitBreakerStatus();
139
+ // Read after circuitBreakerStatus(), which is what refreshes the store.
140
+ const breakerUnreadable = new Set(router.breakerStateUnreadable());
57
141
  const routes = [];
58
142
  const skippedRoutes = [];
59
143
  for (const [id, svc] of Object.entries(config.services)) {
@@ -79,7 +163,10 @@ export async function buildStatus(config, dispatchers, quota, router, leaderboar
79
163
  quota: {
80
164
  score: Math.round(quotaScore * 1000) / 1000,
81
165
  },
82
- breaker: breakers[id] ?? { tripped: false, failures: 0 },
166
+ breaker: {
167
+ ...(breakers[id] ?? { tripped: false, failures: 0 }),
168
+ ...(breakerUnreadable.has(id) ? { stateUnreadable: true } : {}),
169
+ },
83
170
  };
84
171
  const policy = evaluateRoutePolicy(id, svc, {
85
172
  ...(dispatcher !== undefined ? { dispatcher } : {}),
@@ -91,8 +178,21 @@ export async function buildStatus(config, dispatchers, quota, router, leaderboar
91
178
  }
92
179
  if (svc.command !== undefined)
93
180
  route.command = svc.command;
181
+ // Redacted HERE too, not only in the text rendering and the error paths.
182
+ //
183
+ // `redactEndpointHost` lives in this file and was wired into the usage
184
+ // hint and the failure messages, and never into the structured payload —
185
+ // so `status --json` and the `harness-dispatch://status.json` resource
186
+ // emitted `base_url` verbatim, twice. An acceptance pass measured a key in
187
+ // the URL (`?key=SUPERSECRET123`, which is Google AI Studio's own shape)
188
+ // reaching both, and that resource is one this server's own instructions
189
+ // tell agents to read — so the credential lands in an agent's context.
190
+ //
191
+ // An earlier pass recorded "endpoint redaction — verified"; it had checked
192
+ // the text surface only, which is how a fix to one rendering of a value
193
+ // leaves the other rendering untouched.
94
194
  if (svc.baseUrl !== undefined)
95
- route.baseUrl = svc.baseUrl;
195
+ route.baseUrl = redactEndpointHost(svc.baseUrl);
96
196
  if (svc.endpointMode !== undefined) {
97
197
  route.endpoint = {
98
198
  mode: svc.endpointMode,
@@ -100,7 +200,7 @@ export async function buildStatus(config, dispatchers, quota, router, leaderboar
100
200
  if (svc.endpointProvider !== undefined)
101
201
  route.endpoint.provider = svc.endpointProvider;
102
202
  if (svc.baseUrl !== undefined)
103
- route.endpoint.baseUrl = svc.baseUrl;
203
+ route.endpoint.baseUrl = redactEndpointHost(svc.baseUrl);
104
204
  if (svc.wireProtocol !== undefined)
105
205
  route.endpoint.wireProtocol = svc.wireProtocol;
106
206
  }
@@ -147,6 +247,40 @@ export async function buildStatus(config, dispatchers, quota, router, leaderboar
147
247
  .filter((route) => route.enabled && route.available && !route.breaker.tripped && !route.skipped)
148
248
  .map((route) => route.id);
149
249
  const decision = await router.pickService();
250
+ // An unreadable record whose name is not a configured route has nowhere to
251
+ // be shown — the per-route line it would appear on does not exist. That is
252
+ // every corrupt legacy blob (which has no route name at all) and any record
253
+ // left behind by a route since renamed or removed. Reporting them here keeps
254
+ // the fix from being silent in exactly the cases it was added for.
255
+ //
256
+ // Reported separately from configWarnings, which says "these change
257
+ // behaviour" and means config entries that were ignored. A lost cooldown is
258
+ // neither: nothing was misconfigured and nothing was ignored. Filing it
259
+ // there put a true sentence under a false heading, and `doctor` and the
260
+ // CLI's "ignored config entries" list both read configWarnings directly, so
261
+ // it would have reached them mislabelled.
262
+ //
263
+ // `Object.hasOwn`, not `=== undefined`: a record named `constructor` or
264
+ // `toString` would otherwise find a match on Object.prototype and suppress
265
+ // its own warning.
266
+ const quotaPersistError = quota.localCountsPersistError();
267
+ const stateWarnings = [
268
+ ...(quotaPersistError !== undefined
269
+ ? [
270
+ `usage counters are not reaching disk (${quotaPersistError}) — the numbers ` +
271
+ `below are this process's only, and reset to zero when it restarts`,
272
+ ]
273
+ : []),
274
+ ...(config.reloadError !== undefined
275
+ ? [
276
+ `config reload FAILED — the file on disk is NOT the config in effect; still routing ` +
277
+ `on the previously loaded one (${config.reloadError})`,
278
+ ]
279
+ : []),
280
+ ...[...breakerUnreadable]
281
+ .filter((name) => !Object.hasOwn(config.services, name))
282
+ .map((name) => `saved breaker state for ${name} is unreadable — a cooldown it held may have been lost`),
283
+ ];
150
284
  const status = {
151
285
  name: "harness-dispatch",
152
286
  generatedAt: new Date().toISOString(),
@@ -156,6 +290,7 @@ export async function buildStatus(config, dispatchers, quota, router, leaderboar
156
290
  ...(config.configWarnings && config.configWarnings.length > 0
157
291
  ? { configWarnings: [...config.configWarnings] }
158
292
  : {}),
293
+ ...(stateWarnings.length > 0 ? { stateWarnings } : {}),
159
294
  };
160
295
  if (decision) {
161
296
  status.next = {
@@ -258,7 +393,10 @@ export function renderStatusText(status) {
258
393
  lines.push(`${mark} ${route.id} / ${route.harness}`);
259
394
  lines.push(` billing=${route.billing.kind} provider=${route.billing.provider} auth=${route.billing.authSource}`);
260
395
  lines.push(` paid=${route.billing.paidUsagePossible ? "possible" : "no"} allow_paid=${route.billing.allowPaidUsage ? "yes" : "no"} safety=${route.effectiveSafetyProfile} tier=${route.tier} model=${model}`);
261
- lines.push(` quota=${Math.round(route.quota.score * 100)}% breaker=${route.breaker.tripped ? "open" : "closed"} failures=${route.breaker.failures}`);
396
+ lines.push(` quota=${Math.round(route.quota.score * 100)}% breaker=${route.breaker.tripped ? "open" : "closed"} failures=${route.breaker.failures}` +
397
+ // Appended rather than replacing `closed`, so the reader sees both
398
+ // what this process is acting on and that it is not to be trusted.
399
+ (route.breaker.stateUnreadable ? " (saved breaker state unreadable — may be stale)" : ""));
262
400
  lines.push(` calls=${route.quota.localCallCount ?? 0} success=${route.quota.localSuccessCount ?? 0} failed=${route.quota.localFailureCount ?? 0}` +
263
401
  // Shown separately, and only when non-zero, because a busy route is
264
402
  // not a broken one. Folding these into `failed` told a reader — and an
@@ -285,6 +423,12 @@ export function renderStatusText(status) {
285
423
  lines.push(` ! ${w}`);
286
424
  lines.push("");
287
425
  }
426
+ if (status.stateWarnings && status.stateWarnings.length > 0) {
427
+ lines.push(`State problems (${status.stateWarnings.length}) — not what they look like:`);
428
+ for (const w of status.stateWarnings)
429
+ lines.push(` ! ${w}`);
430
+ lines.push("");
431
+ }
288
432
  lines.push(`Ready to route: ${status.ready.length ? status.ready.join(", ") : "none"}`);
289
433
  if (status.routes.length === 0) {
290
434
  // doctor has a good empty state; status had none, and status is the
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -73,7 +73,7 @@ export interface RouteBilling {
73
73
  }
74
74
  export interface RouteSkip {
75
75
  route: string;
76
- code: "disabled" | "no_dispatcher" | "unavailable" | "circuit_broken" | "paid_blocked" | "unknown_billing" | "route_policy" | "approval_required" | "safety_incompatible" | "workspace_isolation_required";
76
+ code: "disabled" | "no_dispatcher" | "unavailable" | "circuit_broken" | "paid_blocked" | "unknown_billing" | "route_policy" | "approval_required" | "safety_incompatible" | "cannot_execute" | "workspace_isolation_required";
77
77
  message: string;
78
78
  }
79
79
  export interface DispatchResult {
@@ -398,6 +398,29 @@ export interface ServiceConfig {
398
398
  export interface RouterConfig {
399
399
  services: Record<string, ServiceConfig>;
400
400
  disabled?: readonly string[];
401
+ /**
402
+ * Whether auto-detection ran, as the loaded config resolved it.
403
+ *
404
+ * Carried so `configure` can WRITE IT BACK. It could not: `detect` was a
405
+ * top-level key with no field here, so regenerating a config dropped it
406
+ * silently — and `detect: false` is the only setting that isolates a machine
407
+ * from its installed paid CLIs. An acceptance pass measured
408
+ * `configure --yes --force` turning an isolating config into one routing to
409
+ * four real subscriptions, reporting "Wrote", with the safety warning
410
+ * suppressed because an emptied document fails its own trigger condition.
411
+ *
412
+ * Undefined means "not stated in the file"; the loader's default then
413
+ * applies (detection on when the config names no routes, off when it does).
414
+ */
415
+ detect?: boolean;
416
+ /**
417
+ * Whether detection actually ran for THIS load, after the file's own
418
+ * `detect:` and the authoritative-routes rule were applied. `configure`
419
+ * printed "Detected N harness routes" from the route count alone, so a
420
+ * re-run over an edited, authoritative file reported a detection it never
421
+ * made and left a newly installed harness out without saying so.
422
+ */
423
+ detectionRan?: boolean;
401
424
  /**
402
425
  * OpenTelemetry traces. OFF by default — purely operator-facing local
403
426
  * observability (OTLP to localhost unless redirected); enable only if you
@@ -462,6 +485,16 @@ export interface RouterConfig {
462
485
  * unnoticed forever.
463
486
  */
464
487
  configWarnings?: readonly string[];
488
+ /**
489
+ * Set when a hot reload FAILED and this config is the previously loaded one
490
+ * still in effect — so the file on disk is not the file being routed on.
491
+ *
492
+ * Carried here because it has to reach `status`. The failure was reported on
493
+ * stderr only, which no MCP client and no HTTP caller ever sees, and the
494
+ * comment at the throw site described the bug as "nothing on stderr and
495
+ * nothing in status" while closing only the first half.
496
+ */
497
+ reloadError?: string;
465
498
  }
466
499
  export interface RoutingDecision {
467
500
  service: string;
@@ -535,9 +568,23 @@ export interface RouteHints {
535
568
  /** Per-call dispatch timeout override in milliseconds. See ServiceConfig.timeoutMs. */
536
569
  timeoutMs?: number;
537
570
  }
538
- export type DispatcherEvent = {
571
+ export type DispatcherEvent =
572
+ /**
573
+ * `text: true` means the chunk is the ANSWER, safe to show a user as it
574
+ * arrives. Without it the chunk is raw process output, which for an
575
+ * event-driven harness is protocol JSONL.
576
+ *
577
+ * The distinction exists because the HTTP streaming path forwarded every
578
+ * stdout chunk into `delta.content`, so an OpenAI-compatible client
579
+ * concatenating deltas received Codex protocol frames and internal thread
580
+ * ids instead of the answer — while the non-streaming call on the same
581
+ * endpoint returned the parsed result. Only the dispatcher knows which of
582
+ * the two it is producing.
583
+ */
584
+ {
539
585
  type: "stdout";
540
586
  chunk: string;
587
+ text?: boolean;
541
588
  } | {
542
589
  type: "stderr";
543
590
  chunk: string;
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"working-dir.d.ts","sourceRoot":"","sources":["../src/working-dir.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAUhF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,kBAAkB,CAK/E;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAOlF"}
1
+ {"version":3,"file":"working-dir.d.ts","sourceRoot":"","sources":["../src/working-dir.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CA2BhF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,kBAAkB,CAK/E;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAOlF"}
@@ -7,6 +7,7 @@
7
7
  * callers can surface a visible warning instead of failing quietly.
8
8
  */
9
9
  import { statSync } from "node:fs";
10
+ import path from "node:path";
10
11
  /**
11
12
  * Reject a workingDir that cannot possibly work, at the boundary.
12
13
  *
@@ -22,6 +23,21 @@ import { statSync } from "node:fs";
22
23
  export function validateWorkingDir(input) {
23
24
  if (input === undefined || input === "")
24
25
  return undefined;
26
+ // A relative path is resolved against THIS process's cwd — the server's, not
27
+ // the caller's — which is the silent wrong-directory execution described
28
+ // above, only harder to spot: `../..` exists, so every check passed and the
29
+ // dispatch ran somewhere nobody chose. `defaulted` stays false in that case,
30
+ // so even the warning for an omitted value does not fire. An acceptance pass
31
+ // ran a real dispatch this way.
32
+ //
33
+ // The caller and the server are different processes with different working
34
+ // directories — a caller cannot know what a relative path will mean here, so
35
+ // there is no correct relative value to accept.
36
+ if (!path.isAbsolute(input)) {
37
+ return (`workingDir must be an absolute path, got ${input} — a relative path resolves ` +
38
+ `against the server's own directory, not yours, so it would run somewhere ` +
39
+ `neither of us chose.`);
40
+ }
25
41
  let stats;
26
42
  try {
27
43
  stats = statSync(input);
@@ -1 +1 @@
1
- {"version":3,"file":"working-dir.js","sourceRoot":"","sources":["../src/working-dir.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOnC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAyB;IAC1D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAC1D,IAAI,KAA8B,CAAC;IACnC,IAAI,CAAC;QACH,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,8BAA8B,KAAK,EAAE,CAAC;IAC/C,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;QAAE,OAAO,kCAAkC,KAAK,EAAE,CAAC;IAC3E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAyB;IACzD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACxC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAA4B;IAC5D,IAAI,CAAC,QAAQ,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,CACL,yEAAyE;QACzE,IAAI,QAAQ,CAAC,UAAU,yDAAyD;QAChF,+CAA+C,CAChD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"working-dir.js","sourceRoot":"","sources":["../src/working-dir.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAO7B;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAyB;IAC1D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAC1D,6EAA6E;IAC7E,yEAAyE;IACzE,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,gCAAgC;IAChC,EAAE;IACF,2EAA2E;IAC3E,6EAA6E;IAC7E,gDAAgD;IAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CACL,4CAA4C,KAAK,8BAA8B;YAC/E,2EAA2E;YAC3E,sBAAsB,CACvB,CAAC;IACJ,CAAC;IACD,IAAI,KAA8B,CAAC;IACnC,IAAI,CAAC;QACH,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,8BAA8B,KAAK,EAAE,CAAC;IAC/C,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;QAAE,OAAO,kCAAkC,KAAK,EAAE,CAAC;IAC3E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAyB;IACzD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACxC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAA4B;IAC5D,IAAI,CAAC,QAAQ,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,CACL,yEAAyE;QACzE,IAAI,QAAQ,CAAC,UAAU,yDAAyD;QAChF,+CAA+C,CAChD,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-resolve.d.ts","sourceRoot":"","sources":["../src/workspace-resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,+EAA+E;AAC/E,eAAO,MAAM,eAAe,QAAkB,CAAC;AAE/C,iFAAiF;AACjF,eAAO,MAAM,eAAe,QAAS,CAAC;AA2FtC,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,SAAS,GAAG,GAAG,IAAI,YAAY,CAE/E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA0F5E;AAkTD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAyC9F;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/B,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;CAC7C;AAED,0EAA0E;AAC1E,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,WAAW,CAAC,CAiBtB;AA6CD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,YAAY,EACjB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7B,OAAO,CAAC,WAAW,CAAC,CA8MtB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,YAAY,EACjB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7B,OAAO,CAAC,aAAa,CAAC,CA6DxB;AAED,0DAA0D;AAC1D,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAM7E"}
1
+ {"version":3,"file":"workspace-resolve.d.ts","sourceRoot":"","sources":["../src/workspace-resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,+EAA+E;AAC/E,eAAO,MAAM,eAAe,QAAkB,CAAC;AAE/C,iFAAiF;AACjF,eAAO,MAAM,eAAe,QAAS,CAAC;AAiItC,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,SAAS,GAAG,GAAG,IAAI,YAAY,CAE/E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAmH5E;AAoWD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAyC9F;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/B,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;CAC7C;AAED,0EAA0E;AAC1E,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,WAAW,CAAC,CAiBtB;AA+DD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,YAAY,EACjB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7B,OAAO,CAAC,WAAW,CAAC,CAsPtB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,YAAY,EACjB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7B,OAAO,CAAC,aAAa,CAAC,CA6ExB;AAED,0DAA0D;AAC1D,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAM7E"}