@agentrq/acp-gateway 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/acpClient.js CHANGED
@@ -8,6 +8,26 @@ import * as fs from "node:fs/promises";
8
8
  import * as path from "node:path";
9
9
  /** Identifies a tool call routed through an agentrq MCP server. */
10
10
  const AGENTRQ_TOOL_PATTERN = /agentrq-[a-zA-Z0-9]{11}/;
11
+ /**
12
+ * What a turn ending in anything but `end_turn` means, in the human's terms.
13
+ *
14
+ * Without this the workspace sees the agent's partial answer and nothing else,
15
+ * so a refused or truncated turn is indistinguishable from a finished one.
16
+ */
17
+ /**
18
+ * How long a tool call waits for a human before the turn is given up on.
19
+ *
20
+ * Humans are slow — this is not a network timeout — but it must exist: a wait
21
+ * with no end holds a task-queue slot for the life of the process, and at low
22
+ * concurrency one unanswered approval is enough to stop the workspace.
23
+ */
24
+ export const DEFAULT_PERMISSION_TIMEOUT_MS = 30 * 60 * 1000;
25
+ const STOP_REASON_NOTES = {
26
+ refusal: "⚠️ The agent refused to continue this turn.",
27
+ max_tokens: "⚠️ The agent stopped mid-turn: it ran out of output tokens.",
28
+ max_turn_requests: "⚠️ The agent stopped mid-turn: it reached its limit on model requests for a single turn.",
29
+ cancelled: "⚠️ The turn was cancelled before the agent finished.",
30
+ };
11
31
  export class AgentRQACPClient {
12
32
  mcpBridge;
13
33
  getTaskIdForSession;
@@ -19,9 +39,97 @@ export class AgentRQACPClient {
19
39
  // (ACP marks it optional there, and codex-acp sends it bare), which would
20
40
  // otherwise leave us unable to tell an agentrq MCP call from anything else.
21
41
  toolCallDetails = new Map();
22
- constructor(mcpBridge, getTaskIdForSession = () => undefined) {
42
+ // request_id the tool call waiting on a human. One shared verdict listener
43
+ // serves them all: a listener per request was only ever removed on a matching
44
+ // verdict, so every unanswered request leaked one for the life of the process.
45
+ pendingPermissions = new Map();
46
+ permissionTimeoutMs;
47
+ cancelSession;
48
+ onModeChanged;
49
+ constructor(mcpBridge, getTaskIdForSession = () => undefined, options = {}) {
23
50
  this.mcpBridge = mcpBridge;
24
51
  this.getTaskIdForSession = getTaskIdForSession;
52
+ this.permissionTimeoutMs = options.permissionTimeoutMs ?? DEFAULT_PERMISSION_TIMEOUT_MS;
53
+ this.mcpBridge.on("verdict", this.onVerdict);
54
+ this.mcpBridge.on("reconnected", this.onWorkspaceReconnected);
55
+ }
56
+ /**
57
+ * Supplies what to do when the agent changes its own session mode.
58
+ *
59
+ * The gateway pins a mode that routes approvals to the human at session
60
+ * creation, but agents may switch modes on their own — and back into one
61
+ * that approves on the user's behalf.
62
+ */
63
+ setModeChangeHandler(handler) {
64
+ this.onModeChanged = handler;
65
+ }
66
+ /** How many tool calls are waiting on a human right now. */
67
+ get pendingPermissionCount() {
68
+ return this.pendingPermissions.size;
69
+ }
70
+ /**
71
+ * Supplies the way to stop a turn, which only exists once the agent
72
+ * connection has been built around this client.
73
+ */
74
+ setSessionCanceller(cancel) {
75
+ this.cancelSession = cancel;
76
+ }
77
+ /**
78
+ * Answers every waiting tool call with `cancelled`.
79
+ *
80
+ * Used when the agent is gone: nothing will ever act on those answers, but
81
+ * the promises must settle or their task-queue slots are held forever.
82
+ */
83
+ cancelPendingPermissions(reason) {
84
+ if (this.pendingPermissions.size === 0)
85
+ return;
86
+ console.error(`[acp] Cancelling ${this.pendingPermissions.size} waiting permission request(s): ${reason}`);
87
+ for (const pending of [...this.pendingPermissions.values()]) {
88
+ pending.settle({ outcome: "cancelled" });
89
+ }
90
+ }
91
+ /**
92
+ * Re-sends everything still waiting, after the workspace connection was
93
+ * re-established on a new session.
94
+ *
95
+ * A verdict is routed back to the session its request arrived on, so a
96
+ * request that was in flight across a reconnect can never be answered. The
97
+ * request id stays the same, which is what lets the workspace recognise this
98
+ * as the same pending decision rather than a new one to ask about again.
99
+ */
100
+ onWorkspaceReconnected = () => {
101
+ if (this.pendingPermissions.size === 0)
102
+ return;
103
+ console.error(`[acp] Workspace reconnected — re-sending ${this.pendingPermissions.size} ` +
104
+ `permission request(s) that would otherwise never be answered`);
105
+ for (const pending of this.pendingPermissions.values()) {
106
+ void this.mcpBridge
107
+ .sendNotification("notifications/claude/channel/permission_request", pending.payload)
108
+ .catch((err) => {
109
+ console.error(`[acp] Failed to re-send permission request ${pending.payload.request_id}:`, err);
110
+ });
111
+ }
112
+ };
113
+ /** Delivers a verdict to whichever tool call is waiting on it, if any. */
114
+ onVerdict = (data) => {
115
+ const pending = this.pendingPermissions.get(data.requestId);
116
+ if (!pending) {
117
+ console.error(`[acp] Verdict for ${data.requestId} arrived with nothing waiting on it`);
118
+ return;
119
+ }
120
+ console.error(`✅ Permission verdict received: ${data.behavior}`);
121
+ pending.settle(this.outcomeForVerdict(pending.options, data.behavior));
122
+ };
123
+ /** Stops the agent's current turn, where there is a connection to stop it on. */
124
+ async cancelTurn(sessionId) {
125
+ if (!sessionId || !this.cancelSession)
126
+ return;
127
+ try {
128
+ await this.cancelSession(sessionId);
129
+ }
130
+ catch (err) {
131
+ console.error(`[acp] Failed to cancel turn for session ${sessionId}:`, err);
132
+ }
25
133
  }
26
134
  async flushReply(sessionId) {
27
135
  const text = this.replyBuffers.get(sessionId) ?? "";
@@ -47,17 +155,40 @@ export class AgentRQACPClient {
47
155
  console.error(`[acp] Failed to forward reply to task ${taskId}:`, err);
48
156
  }
49
157
  }
158
+ /**
159
+ * Tells the workspace when a turn ended for any reason other than the agent
160
+ * finishing what it was asked. Call after flushReply, so the note follows
161
+ * whatever the agent did manage to say.
162
+ */
163
+ async reportStopReason(sessionId, stopReason) {
164
+ if (stopReason === "end_turn")
165
+ return;
166
+ const taskId = this.getTaskIdForSession(sessionId);
167
+ if (!taskId) {
168
+ console.error(`[acp] No task ID for session ${sessionId}, not reporting "${stopReason}"`);
169
+ return;
170
+ }
171
+ const text = STOP_REASON_NOTES[stopReason] ??
172
+ `⚠️ The agent stopped for a reason this gateway does not recognise: ${stopReason}.`;
173
+ try {
174
+ await this.mcpBridge.callTool("reply", { chatId: taskId, text });
175
+ console.error(`[acp] Reported stop reason "${stopReason}" to task ${taskId}`);
176
+ }
177
+ catch (err) {
178
+ console.error(`[acp] Failed to report stop reason to task ${taskId}:`, err);
179
+ }
180
+ }
50
181
  async requestPermission(params) {
51
- const requestId = params.toolCall.toolCallId;
182
+ const toolCallId = params.toolCall.toolCallId;
52
183
  // Fall back to what the earlier session update reported for this same tool
53
184
  // call: the permission request itself may carry no title or input.
54
- const remembered = this.toolCallDetails.get(requestId);
55
- this.toolCallDetails.delete(requestId);
185
+ const remembered = this.toolCallDetails.get(toolCallId);
186
+ this.toolCallDetails.delete(toolCallId);
56
187
  const toolTitle = params.toolCall.title ?? remembered?.title ?? "Unknown Tool";
57
188
  const rawInput = params.toolCall.rawInput ?? remembered?.rawInput;
58
189
  // Auto-allow tool calls that contain the pattern: agentrq-<11 chars a-zA-Z0-9>
59
190
  if (AGENTRQ_TOOL_PATTERN.test(toolTitle)) {
60
- console.error(`\n🔓 ACP Auto-allowing tool call: ${toolTitle} (ID: ${requestId})`);
191
+ console.error(`\n🔓 ACP Auto-allowing tool call: ${toolTitle} (ID: ${toolCallId})`);
61
192
  const option = params.options.find(o => o.kind.startsWith("allow") ||
62
193
  o.name.toLowerCase().includes("allow") ||
63
194
  o.name.toLowerCase().includes("yes") ||
@@ -70,8 +201,14 @@ export class AgentRQACPClient {
70
201
  },
71
202
  };
72
203
  }
73
- console.error(`\n🔐 ACP Permission requested: ${toolTitle} (ID: ${requestId})`);
74
- const taskId = params.sessionId ? this.getTaskIdForSession(params.sessionId) : undefined;
204
+ console.error(`\n🔐 ACP Permission requested: ${toolTitle} (ID: ${toolCallId})`);
205
+ const sessionId = params.sessionId;
206
+ // agentrq keys its own bookkeeping on the request id alone, across the whole
207
+ // workspace. Tool call ids are only unique within a session, and agents
208
+ // commonly number them from one, so two tasks running at once could
209
+ // otherwise have a verdict land on the wrong tool call.
210
+ const requestId = sessionId ? `${sessionId}:${toolCallId}` : toolCallId;
211
+ const taskId = sessionId ? this.getTaskIdForSession(sessionId) : undefined;
75
212
  const payload = {
76
213
  request_id: requestId,
77
214
  task_id: taskId,
@@ -94,63 +231,78 @@ export class AgentRQACPClient {
94
231
  console.error(`[acp] Failed to forward permission request ${requestId} (cancelling):`, err);
95
232
  return { outcome: { outcome: "cancelled" } };
96
233
  }
97
- // 2. Wait for the verdict from the MCP server
234
+ // 2. Wait for the verdict from the MCP server — but not forever.
98
235
  console.error(`⌛ Waiting for human approval in the agentrq dashboard...`);
99
236
  return new Promise((resolve) => {
100
- const handler = (data) => {
101
- if (data.requestId === requestId) {
102
- // Cleanup this listener
103
- this.mcpBridge.off("verdict", handler);
104
- console.error(`✅ Permission verdict received: ${data.behavior}`);
105
- // A verdict from agentrq covers exactly one tool call. Never select
106
- // a "persistent" option (ACP's "allow_always"/"reject_always" kinds,
107
- // or an equivalent "remember"/"don't ask again" option by name)
108
- // picking one would make the *spawned agent* remember the decision
109
- // and stop sending requestPermission for matching future tool
110
- // calls, so those calls would never reach agentrq again. Every
111
- // subsequent call must still be forwarded and re-approved there.
112
- const isPersistent = (o) => /always|remember|don'?t ask/i.test(o.kind) || /always|remember|don'?t ask/i.test(o.name);
113
- const onceOptions = params.options.filter(o => !isPersistent(o));
114
- // Map "allow"/"deny" to the correct ACP option. Per the ACP spec,
115
- // PermissionOptionKind is one of "allow_once" | "allow_always" |
116
- // "reject_once" | "reject_always" — there is no "deny_*" kind, so a
117
- // deny verdict must match on "reject" to find a spec-compliant option.
118
- const isAllow = data.behavior === "allow";
119
- const option = onceOptions.find(o => {
120
- const name = o.name.toLowerCase();
121
- return isAllow
122
- ? o.kind.startsWith("allow") || name.includes("allow") || name.includes("yes") || name.includes("approve")
123
- : o.kind.startsWith("reject") || name.includes("deny") || name.includes("reject") || name.includes("no");
124
- });
125
- // Falling back to onceOptions[0] unconditionally is unsafe for a
126
- // deny verdict: ACP conventionally lists allow options first, so an
127
- // unmatched deny could silently resolve to an allow option and
128
- // approve a tool call the human explicitly denied. Only ever fall
129
- // back to a non-persistent option that is not itself an allow-kind;
130
- // if no safe option exists at all (e.g. only "always" options were
131
- // offered), cancel instead of guessing.
132
- let outcome;
133
- if (option) {
134
- outcome = { outcome: "selected", optionId: option.optionId };
135
- }
136
- else if (isAllow) {
137
- outcome = onceOptions[0]
138
- ? { outcome: "selected", optionId: onceOptions[0].optionId }
139
- : { outcome: "cancelled" };
140
- }
141
- else {
142
- const safeFallback = onceOptions.find(o => !o.kind.startsWith("allow"));
143
- outcome = safeFallback
144
- ? { outcome: "selected", optionId: safeFallback.optionId }
145
- : { outcome: "cancelled" };
146
- }
147
- console.error(`[acp] Selected permission option: ${"optionId" in outcome ? outcome.optionId : "cancelled"} (${option?.name ?? "default"})`);
148
- resolve({ outcome });
149
- }
237
+ const timer = this.permissionTimeoutMs > 0
238
+ ? setTimeout(() => {
239
+ console.error(`[acp] No verdict for ${requestId} after ` +
240
+ `${Math.round(this.permissionTimeoutMs / 60000)} min — cancelling the turn.`);
241
+ // Cancel as well as answering: the spec treats `cancelled` as the
242
+ // answer a client gives *because* it cancelled the turn. Answering
243
+ // alone would leave the agent free to carry on and ask again.
244
+ void this.cancelTurn(sessionId);
245
+ settle({ outcome: "cancelled" });
246
+ }, this.permissionTimeoutMs)
247
+ : undefined;
248
+ const settle = (outcome) => {
249
+ if (timer)
250
+ clearTimeout(timer);
251
+ this.pendingPermissions.delete(requestId);
252
+ console.error(`[acp] Selected permission option: ${"optionId" in outcome ? outcome.optionId : "cancelled"}`);
253
+ resolve({ outcome });
150
254
  };
151
- this.mcpBridge.on("verdict", handler);
255
+ this.pendingPermissions.set(requestId, {
256
+ payload,
257
+ sessionId,
258
+ options: params.options,
259
+ settle,
260
+ });
152
261
  });
153
262
  }
263
+ /**
264
+ * Turns a workspace verdict into one of the options the agent offered.
265
+ *
266
+ * A verdict from agentrq covers exactly one tool call. Never select a
267
+ * "persistent" option (ACP's "allow_always"/"reject_always" kinds, or an
268
+ * equivalent "remember"/"don't ask again" option by name) — picking one would
269
+ * make the *spawned agent* remember the decision and stop sending
270
+ * requestPermission for matching future tool calls, so those calls would
271
+ * never reach agentrq again. Every subsequent call must still be forwarded
272
+ * and re-approved there.
273
+ */
274
+ outcomeForVerdict(options, behavior) {
275
+ const isPersistent = (o) => /always|remember|don'?t ask/i.test(o.kind) || /always|remember|don'?t ask/i.test(o.name);
276
+ const onceOptions = options.filter(o => !isPersistent(o));
277
+ // Map "allow"/"deny" to the correct ACP option. Per the ACP spec,
278
+ // PermissionOptionKind is one of "allow_once" | "allow_always" |
279
+ // "reject_once" | "reject_always" — there is no "deny_*" kind, so a
280
+ // deny verdict must match on "reject" to find a spec-compliant option.
281
+ const isAllow = behavior === "allow";
282
+ const option = onceOptions.find(o => {
283
+ const name = o.name.toLowerCase();
284
+ return isAllow
285
+ ? o.kind.startsWith("allow") || name.includes("allow") || name.includes("yes") || name.includes("approve")
286
+ : o.kind.startsWith("reject") || name.includes("deny") || name.includes("reject") || name.includes("no");
287
+ });
288
+ if (option)
289
+ return { outcome: "selected", optionId: option.optionId };
290
+ // Falling back to onceOptions[0] unconditionally is unsafe for a deny
291
+ // verdict: ACP conventionally lists allow options first, so an unmatched
292
+ // deny could silently resolve to an allow option and approve a tool call
293
+ // the human explicitly denied. Only ever fall back to a non-persistent
294
+ // option that is not itself an allow-kind; if no safe option exists at all
295
+ // (e.g. only "always" options were offered), cancel instead of guessing.
296
+ if (isAllow) {
297
+ return onceOptions[0]
298
+ ? { outcome: "selected", optionId: onceOptions[0].optionId }
299
+ : { outcome: "cancelled" };
300
+ }
301
+ const safeFallback = onceOptions.find(o => !o.kind.startsWith("allow"));
302
+ return safeFallback
303
+ ? { outcome: "selected", optionId: safeFallback.optionId }
304
+ : { outcome: "cancelled" };
305
+ }
154
306
  /**
155
307
  * Records what a tool call is, keyed by its id, so that a permission request
156
308
  * arriving without a title or input can still be identified. ACP requires a
@@ -186,6 +338,10 @@ export class AgentRQACPClient {
186
338
  this.replyBuffers.set(sid, (this.replyBuffers.get(sid) ?? "") + update.content.text);
187
339
  }
188
340
  break;
341
+ case "current_mode_update":
342
+ console.error(`[acp] Agent switched session mode to "${update.currentModeId}"`);
343
+ await this.onModeChanged?.(params.sessionId, update.currentModeId);
344
+ break;
189
345
  case "tool_call_update":
190
346
  this.rememberToolCall(update);
191
347
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"acpClient.js","sourceRoot":"","sources":["../src/acpClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acpClient.js","sourceRoot":"","sources":["../src/acpClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,mEAAmE;AACnE,MAAM,oBAAoB,GAAG,yBAAyB,CAAC;AAEvD;;;;;GAKG;AACH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAY5D,MAAM,iBAAiB,GAA2B;IAChD,OAAO,EAAE,6CAA6C;IACtD,UAAU,EAAE,6DAA6D;IACzE,iBAAiB,EACf,0FAA0F;IAC5F,SAAS,EAAE,sDAAsD;CAClE,CAAC;AAEF,MAAM,OAAO,gBAAgB;IAmBjB,SAAS;IACT,mBAAmB;IAnBrB,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,mFAAmF;IAC3E,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,4EAA4E;IAC5E,6EAA6E;IAC7E,0EAA0E;IAC1E,4EAA4E;IACpE,eAAe,GAAG,IAAI,GAAG,EAAkD,CAAC;IAEpF,6EAA6E;IAC7E,8EAA8E;IAC9E,+EAA+E;IACvE,kBAAkB,GAAG,IAAI,GAAG,EAA6B,CAAC;IAC1D,mBAAmB,CAAS;IAC5B,aAAa,CAAkC;IAC/C,aAAa,CAAkD;IAEvE,YACU,SAAoB,EACpB,mBAAmB,GAA8C,GAAG,EAAE,CAAC,SAAS,EACxF,OAAO,GAAqC,EAAE;yBAFtC,SAAS;mCACT,mBAAmB;QAG3B,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,6BAA6B,CAAC;QACxF,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACH,oBAAoB,CAAC,OAAuD;QAC1E,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;IAC/B,CAAC;IAED,4DAA4D;IAC5D,IAAI,sBAAsB;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,MAAsC;QACxD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,wBAAwB,CAAC,MAAc;QACrC,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAC/C,OAAO,CAAC,KAAK,CACX,oBAAoB,IAAI,CAAC,kBAAkB,CAAC,IAAI,mCAAmC,MAAM,EAAE,CAC5F,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YAC5D,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,sBAAsB,GAAG,GAAS,EAAE;QAC1C,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAC/C,OAAO,CAAC,KAAK,CACX,4CAA4C,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG;YACzE,8DAA8D,CACjE,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;YACvD,KAAK,IAAI,CAAC,SAAS;iBAChB,gBAAgB,CAAC,iDAAiD,EAAE,OAAO,CAAC,OAAO,CAAC;iBACpF,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,OAAO,CAAC,KAAK,CACX,8CAA8C,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,EAC3E,GAAG,CACJ,CAAC;YACJ,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC,CAAC;IAEF,0EAA0E;IAClE,SAAS,GAAG,CAAC,IAA6C,EAAQ,EAAE;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,SAAS,qCAAqC,CAAC,CAAC;YACxF,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC;IAEF,iFAAiF;IACzE,KAAK,CAAC,UAAU,CAAC,SAA6B;QACpD,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAC9C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO;QAEzB,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,gCAAgC,SAAS,kBAAkB,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5D,OAAO,CAAC,KAAK,CAAC,gCAAgC,MAAM,uCAAuC,CAAC,CAAC;YAC7F,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,uCAAuC,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,yCAAyC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,UAAkB;QAC1D,IAAI,UAAU,KAAK,UAAU;YAAE,OAAO;QAEtC,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,gCAAgC,SAAS,oBAAoB,UAAU,GAAG,CAAC,CAAC;YAC1F,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GACR,iBAAiB,CAAC,UAAU,CAAC;YAC7B,sEAAsE,UAAU,GAAG,CAAC;QAEtF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,+BAA+B,UAAU,aAAa,MAAM,EAAE,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8CAA8C,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,MAAoC;QAEpC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC9C,2EAA2E;QAC3E,mEAAmE;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,UAAU,EAAE,KAAK,IAAI,cAAc,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,UAAU,EAAE,QAAQ,CAAC;QAElE,+EAA+E;QAC/E,IAAI,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,qCAAqC,SAAS,SAAS,UAAU,GAAG,CAAC,CAAC;YACpF,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACrC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC1B,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACtC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CACzC,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAChE,OAAO;gBACL,OAAO,EAAE;oBACP,OAAO,EAAE,UAAU;oBACnB,QAAQ,EAAE,QAAQ;iBACnB;aACF,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,kCAAkC,SAAS,SAAS,UAAU,GAAG,CAAC,CAAC;QAEjF,MAAM,SAAS,GAAG,MAAM,CAAC,SAA+B,CAAC;QACzD,6EAA6E;QAC7E,wEAAwE;QACxE,oEAAoE;QACpE,wDAAwD;QACxD,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QACxE,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,MAAM,OAAO,GAAG;YACd,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,SAAS;YACpB,WAAW,EAAE,SAAS;YACtB,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;SAC9C,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,SAAS,EAAE,CAAC,CAAC;QACxF,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAElG,yEAAyE;QACzE,0EAA0E;QAC1E,uEAAuE;QACvE,wEAAwE;QACxE,oEAAoE;QACpE,iEAAiE;QACjE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CACnC,iDAAiD,EACjD,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,8CAA8C,SAAS,gBAAgB,EACvE,GAAG,CACJ,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC;QAC/C,CAAC;QAED,iEAAiE;QACjE,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAE1E,OAAO,IAAI,OAAO,CAAgC,CAAC,OAAO,EAAE,EAAE;YAC5D,MAAM,KAAK,GACT,IAAI,CAAC,mBAAmB,GAAG,CAAC;gBAC1B,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;oBACd,OAAO,CAAC,KAAK,CACX,0BAA0B,SAAS,SAAS;wBAC1C,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,6BAA6B,CAC/E,CAAC;oBACF,kEAAkE;oBAClE,mEAAmE;oBACnE,8DAA8D;oBAC9D,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBAChC,MAAM,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;gBACnC,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC;gBAC9B,CAAC,CAAC,SAAS,CAAC;YAEhB,MAAM,MAAM,GAAG,CAAC,OAAqC,EAAQ,EAAE;gBAC7D,IAAI,KAAK;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC/B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC1C,OAAO,CAAC,KAAK,CACX,qCAAqC,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAC9F,CAAC;gBACF,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YACvB,CAAC,CAAC;YAEF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE;gBACrC,OAAO;gBACP,SAAS;gBACT,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACK,iBAAiB,CACvB,OAA+B,EAC/B,QAAgB;QAEhB,MAAM,YAAY,GAAG,CAAC,CAAuB,EAAE,EAAE,CAC/C,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3F,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1D,kEAAkE;QAClE,iEAAiE;QACjE,oEAAoE;QACpE,uEAAuE;QACvE,MAAM,OAAO,GAAG,QAAQ,KAAK,OAAO,CAAC;QACrC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAClC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,OAAO,OAAO;gBACZ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC1G,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7G,CAAC,CAAC,CAAC;QACH,IAAI,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAEtE,sEAAsE;QACtE,yEAAyE;QACzE,yEAAyE;QACzE,uEAAuE;QACvE,2EAA2E;QAC3E,yEAAyE;QACzE,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,WAAW,CAAC,CAAC,CAAC;gBACnB,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;gBAC5D,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAC/B,CAAC;QACD,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACxE,OAAO,YAAY;YACjB,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE;YAC1D,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;;OAOG;IACK,gBAAgB,CAAC,MAKxB;QACC,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;QAC7B,IAAI,CAAC,EAAE;YAAE,OAAO;QAEhB,sEAAsE;QACtE,+DAA+D;QAC/D,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,QAAQ,EAAE,KAAK,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,QAAQ,EAAE,QAAQ,CAAC;QACvD,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO;QAC1D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAA+B;QACjD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE7B,QAAQ,MAAM,CAAC,aAAa,EAAE,CAAC;YAC7B,KAAK,qBAAqB;gBACxB,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;oBAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACvF,CAAC;gBACD,MAAM;YACR,KAAK,qBAAqB;gBACxB,OAAO,CAAC,KAAK,CAAC,yCAAyC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC;gBAChF,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;gBACnE,MAAM;YACR,KAAK,kBAAkB;gBACrB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,WAAW,EAAE,CAAC;gBACjB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC9B,IAAI,MAAM,CAAC,KAAK,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC5D,sEAAsE;oBACtE,IACE,MAAM,CAAC,MAAM,KAAK,WAAW;wBAC7B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO;wBAC1C,MAAM,CAAC,QAAQ,IAAI,IAAI;wBACvB,OAAQ,MAAM,CAAC,QAAgB,CAAC,MAAM,KAAK,QAAQ,EACnD,CAAC;wBACD,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,QAA6C,CAAC;wBACnF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBACtC,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,+BAA+B,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChF,MAAM;YACR,CAAC;YACD;gBACE,MAAM;QACV,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,iBAAiB,CACrB,MAAoC;QAEpC,MAAM,SAAS,GAAG,WAAW,IAAI,MAAM,CAAC,CAAC,CAAE,MAAM,CAAC,SAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEzE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,uEAAuE;YACvE,qEAAqE;YACrE,+DAA+D;YAC/D,uBAAuB;YACvB,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;gBACvG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAA4B;YACxC,MAAM;YACN,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,QAAQ,CAAC,eAAe,GAAI,MAAkC,CAAC,eAAe,CAAC;QACjF,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACjC,QAAQ,CAAC,GAAG,GAAI,MAAiC,CAAC,GAAG,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,uCAAuC,MAAM,CAAC,IAAI,eAAe,CAAC,CAAC;YACjF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC9B,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,qCAAqC,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAEtF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACjE,MAAM,YAAY,GAAG,MAAM,CAAC,OAA6D,CAAC;YAC1F,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;YACrC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBACnE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAC9B,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;gBACxD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAC9B,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0D,CAAC;YACzF,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YACvD,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YAC/B,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAC;YACnE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,wBAAwB,CAAC,OAAe;QACpD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE;gBAC1D,KAAK,EAAE,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;gBACnE,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,MAAM,IAAI,GAAI,OAAO,CAAC,OAA8D,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;YAChG,MAAM,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,2DAA2D,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;gBAC9F,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACjF,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAC;YACnE,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,mBAAmB,CAAC,OAA4C,IAAkB,CAAC;IAEzF,KAAK,CAAC,aAAa,CACjB,MAAgC;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrD,OAAO,CAAC,KAAK,CAAC,oCAAoC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,4BAA4B,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACvE,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,MAA+B;QAE/B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACpD,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,4BAA4B,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACvE,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * agentInfo.ts
3
+ *
4
+ * Renders what an agent said about itself during `initialize`.
5
+ *
6
+ * An agent's capabilities are only knowable from a live handshake — nothing in
7
+ * the registry lists them — so the answer to "can this agent resume a session?"
8
+ * or "will it accept an HTTP MCP server?" is otherwise a guess.
9
+ */
10
+ import { describeAuthMethods } from "./auth.js";
11
+ /** ACP marks an optional capability as supported by supplying `{}` for it. */
12
+ function supported(value) {
13
+ return value !== undefined && value !== null && value !== false;
14
+ }
15
+ function yesNo(value) {
16
+ return supported(value) ? "yes" : "no";
17
+ }
18
+ function section(title, rows) {
19
+ const width = Math.max(...rows.map(([label]) => label.length));
20
+ const body = rows.map(([label, value]) => ` ${label.padEnd(width)} ${value}`);
21
+ return [title, ...body].join("\n");
22
+ }
23
+ /** The agent's own name for itself, falling back to how it was launched. */
24
+ function heading(initResult, launchedAs) {
25
+ const info = initResult
26
+ .agentInfo;
27
+ if (!info?.name)
28
+ return launchedAs;
29
+ const title = info.title && info.title !== info.name ? ` — ${info.title}` : "";
30
+ const version = info.version ? ` ${info.version}` : "";
31
+ return `${info.name}${title}${version}`;
32
+ }
33
+ /**
34
+ * Describes an agent's capabilities as the agent itself reported them.
35
+ *
36
+ * `launchedAs` is only used when the agent supplies no `agentInfo`, so that the
37
+ * output still says which agent is being described.
38
+ */
39
+ export function describeAgentInfo(initResult, launchedAs) {
40
+ const caps = (initResult.agentCapabilities ?? {});
41
+ const sessions = caps.sessionCapabilities ?? {};
42
+ const prompt = caps.promptCapabilities ?? {};
43
+ const mcp = caps.mcpCapabilities ?? {};
44
+ const blocks = [
45
+ `${heading(initResult, launchedAs)}\nACP protocol version ${initResult.protocolVersion}`,
46
+ section("SESSIONS", [
47
+ ["session/load", yesNo(caps.loadSession)],
48
+ ["session/list", yesNo(sessions.list)],
49
+ ["session/resume", yesNo(sessions.resume)],
50
+ ["session/close", yesNo(sessions.close)],
51
+ ["session/delete", yesNo(sessions.delete)],
52
+ ["session/fork", yesNo(sessions.fork)],
53
+ ]),
54
+ section("PROMPT CONTENT", [
55
+ ["image", yesNo(prompt.image)],
56
+ ["audio", yesNo(prompt.audio)],
57
+ ["embedded context", yesNo(prompt.embeddedContext)],
58
+ ]),
59
+ section("MCP TRANSPORTS", [
60
+ ["http", yesNo(mcp.http)],
61
+ ["sse", yesNo(mcp.sse)],
62
+ ["acp", yesNo(mcp.acp)],
63
+ ]),
64
+ section("AUTHENTICATION", [["logout", yesNo(caps.auth?.logout)]]) +
65
+ `\n\n Login methods:\n${describeAuthMethods(initResult.authMethods)}`,
66
+ ];
67
+ return blocks.join("\n\n");
68
+ }
69
+ //# sourceMappingURL=agentInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentInfo.js","sourceRoot":"","sources":["../src/agentInfo.ts"],"names":[],"mappings":"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"}