genaicode 2.14.0 → 2.16.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 (54) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +70 -0
  3. package/dist/agents/drivers/claude.d.ts +5 -0
  4. package/dist/agents/drivers/claude.js +12 -4
  5. package/dist/agents/drivers/claude.js.map +1 -1
  6. package/dist/agents/drivers/codex.d.ts +34 -2
  7. package/dist/agents/drivers/codex.js +83 -8
  8. package/dist/agents/drivers/codex.js.map +1 -1
  9. package/dist/agents/drivers/copilot.d.ts +13 -0
  10. package/dist/agents/drivers/copilot.js +26 -1
  11. package/dist/agents/drivers/copilot.js.map +1 -1
  12. package/dist/agents/drivers/mcp-isolation.d.ts +9 -0
  13. package/dist/agents/drivers/mcp-isolation.js +24 -0
  14. package/dist/agents/drivers/mcp-isolation.js.map +1 -0
  15. package/dist/agents/prepare.d.ts +2 -0
  16. package/dist/agents/prepare.js +2 -1
  17. package/dist/agents/prepare.js.map +1 -1
  18. package/dist/agents/session.d.ts +12 -2
  19. package/dist/agents/session.js +53 -9
  20. package/dist/agents/session.js.map +1 -1
  21. package/dist/app-agent/app-agent.d.ts +139 -0
  22. package/dist/app-agent/app-agent.js +683 -0
  23. package/dist/app-agent/app-agent.js.map +1 -0
  24. package/dist/app-agent/git.d.ts +25 -0
  25. package/dist/app-agent/git.js +286 -0
  26. package/dist/app-agent/git.js.map +1 -0
  27. package/dist/app-agent/http.d.ts +41 -0
  28. package/dist/app-agent/http.js +228 -0
  29. package/dist/app-agent/http.js.map +1 -0
  30. package/dist/app-agent/json.d.ts +7 -0
  31. package/dist/app-agent/json.js +62 -0
  32. package/dist/app-agent/json.js.map +1 -0
  33. package/dist/app-agent/mcp.d.ts +15 -0
  34. package/dist/app-agent/mcp.js +53 -0
  35. package/dist/app-agent/mcp.js.map +1 -0
  36. package/dist/app-agent/policy.d.ts +13 -0
  37. package/dist/app-agent/policy.js +99 -0
  38. package/dist/app-agent/policy.js.map +1 -0
  39. package/dist/app-agent/state.d.ts +75 -0
  40. package/dist/app-agent/state.js +10 -0
  41. package/dist/app-agent/state.js.map +1 -0
  42. package/dist/app-agent.d.ts +8 -0
  43. package/dist/app-agent.js +5 -0
  44. package/dist/app-agent.js.map +1 -0
  45. package/dist/react/agent-chat.css +137 -0
  46. package/dist/react/app-agent-chat.d.ts +62 -0
  47. package/dist/react/app-agent-chat.js +230 -0
  48. package/dist/react/app-agent-chat.js.map +1 -0
  49. package/dist/react.d.ts +4 -0
  50. package/dist/react.js +2 -0
  51. package/dist/react.js.map +1 -1
  52. package/dist/ui/index.js +59 -59
  53. package/dist/ui/web-client.js +148 -11
  54. package/package.json +5 -1
@@ -0,0 +1,9 @@
1
+ import type { AgentTask } from '../types.js';
2
+ /**
3
+ * Names of the MCP servers an agent CLI would load on its own (user, workspace and plugin
4
+ * config), from its `mcp list --json`, so a run can switch off every server but the task's.
5
+ * Throws when the list cannot be read: a run that must be isolated does not start without it.
6
+ */
7
+ export declare function configuredMcpServers<T extends string | {
8
+ name: string;
9
+ }>(command: string, task: AgentTask, servers: (listing: unknown) => T[]): Promise<T[]>;
@@ -0,0 +1,24 @@
1
+ import { execFile } from 'node:child_process';
2
+ /**
3
+ * Names of the MCP servers an agent CLI would load on its own (user, workspace and plugin
4
+ * config), from its `mcp list --json`, so a run can switch off every server but the task's.
5
+ * Throws when the list cannot be read: a run that must be isolated does not start without it.
6
+ */
7
+ export function configuredMcpServers(command, task, servers) {
8
+ return new Promise((resolve, reject) => {
9
+ // `task.env` replaces the environment, as it does for the run itself: what the caller left out stays out.
10
+ execFile(command, ['mcp', 'list', '--json'], { cwd: task.cwd, env: task.env ?? process.env, timeout: 30_000, maxBuffer: 8 * 1024 * 1024 }, (error, stdout) => {
11
+ if (error)
12
+ return reject(new Error(`could not list ${command}'s MCP servers: ${error.message}`));
13
+ try {
14
+ const own = new Set((task.mcpServers ?? []).map((server) => server.name));
15
+ const nameOf = (server) => (typeof server === 'string' ? server : server.name);
16
+ resolve(servers(JSON.parse(String(stdout))).filter((server) => !own.has(nameOf(server))));
17
+ }
18
+ catch (parseError) {
19
+ reject(new Error(`could not read ${command}'s MCP server list: ${parseError.message}`));
20
+ }
21
+ });
22
+ });
23
+ }
24
+ //# sourceMappingURL=mcp-isolation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-isolation.js","sourceRoot":"","sources":["../../../src/agents/drivers/mcp-isolation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,IAAe,EACf,OAAkC;IAElC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,0GAA0G;QAC1G,QAAQ,CACN,OAAO,EACP,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EACzB,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,EAC5F,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAChB,IAAI,KAAK;gBAAE,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,OAAO,mBAAmB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACjG,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1E,MAAM,MAAM,GAAG,CAAC,MAAS,EAAE,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClF,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAY,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvG,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,OAAO,uBAAwB,UAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACrG,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -14,6 +14,8 @@ export interface PrepareContext {
14
14
  /** Aborts once the task is over: the process exited, or it was stopped before it started. */
15
15
  readonly signal: AbortSignal;
16
16
  }
17
+ /** MCP server names every driver accepts. */
18
+ export declare const MCP_NAME: RegExp;
17
19
  /** Reject a task the agent cannot honor before anything is spawned. */
18
20
  export declare function unsupportedTask(name: string, capabilities: AgentCapabilities, task: AgentTask): string | undefined;
19
21
  export declare function isHttpServer(server: McpServer): server is Extract<McpServer, {
@@ -1,5 +1,6 @@
1
1
  import { unsupportedPermissions } from './permissions.js';
2
- const MCP_NAME = /^[A-Za-z0-9_-]+$/;
2
+ /** MCP server names every driver accepts. */
3
+ export const MCP_NAME = /^[A-Za-z0-9_-]+$/;
3
4
  /** Reject a task the agent cannot honor before anything is spawned. */
4
5
  export function unsupportedTask(name, capabilities, task) {
5
6
  const servers = task.mcpServers ?? [];
@@ -1 +1 @@
1
- {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../src/agents/prepare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../src/agents/prepare.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,8 @@ export interface SessionState {
54
54
  turns: SessionTurn[];
55
55
  /** Prompts waiting for the running turn to end. */
56
56
  queued: string[];
57
+ /** Host notes (`send(text, { note: true })`) waiting for a turn; they run before `queued`. */
58
+ notes?: string[];
57
59
  /** Approval requests waiting for `approve()`. */
58
60
  approvals: ApprovalRequest[];
59
61
  usage: TokenUsage;
@@ -97,8 +99,16 @@ export interface AgentSessionOptions {
97
99
  export interface AgentSession {
98
100
  get(): SessionState;
99
101
  subscribe(listener: (state: SessionState) => void): () => void;
100
- /** Start, steer, or queue a prompt. Empty text is ignored. */
101
- send(text: string): void;
102
+ /**
103
+ * Start, steer, or queue a prompt. Empty text is ignored. `note` marks a message from the
104
+ * host app (an action's outcome): it is never steered, runs before the queued prompts, and is
105
+ * kept when the user stops the turn, to run before their next prompt. `queue` waits for its
106
+ * own turn instead of steering a running one.
107
+ */
108
+ send(text: string, options?: {
109
+ note?: boolean;
110
+ queue?: boolean;
111
+ }): void;
102
112
  /** Stop the running turn and drop queued prompts. */
103
113
  stop(): void;
104
114
  /** Answer a pending approval request. Returns false when no such request is pending. */
@@ -12,6 +12,7 @@ export function createAgentSession(options) {
12
12
  status: 'idle',
13
13
  turns: [],
14
14
  queued: [],
15
+ notes: [],
15
16
  approvals: [],
16
17
  usage: {},
17
18
  canSteer: false,
@@ -27,6 +28,17 @@ export function createAgentSession(options) {
27
28
  let explicitResume = options.resume;
28
29
  // `reset()` during a turn: forget the session that turn reports when it ends.
29
30
  let forgetAfterTurn = false;
31
+ // After a user stop, `state.notes` wait for the user's next prompt instead of starting a turn.
32
+ let holdNotes = false;
33
+ // A note's turn that a stop cuts short puts the note back: the agent may not have heard it.
34
+ let nextIsNote = false;
35
+ let noteTurn;
36
+ const shiftNote = () => {
37
+ const [next, ...rest] = state.notes ?? [];
38
+ nextIsNote = true;
39
+ set({ notes: rest });
40
+ return next;
41
+ };
30
42
  // Usage of finished turns; the running turn's latest report is added on top.
31
43
  let pastUsage = {};
32
44
  let pastCost;
@@ -169,7 +181,10 @@ export function createAgentSession(options) {
169
181
  resolve();
170
182
  };
171
183
  const startTurn = (prompt) => {
184
+ holdNotes = false;
172
185
  const turnId = nextTurnId++;
186
+ noteTurn = nextIsNote ? { id: turnId, text: prompt } : undefined;
187
+ nextIsNote = false;
173
188
  const turn = { id: turnId, agent: agent.name, prompt, entries: [], startedAt: Date.now() };
174
189
  const resume = explicitResume !== undefined
175
190
  ? explicitResume
@@ -213,6 +228,8 @@ export function createAgentSession(options) {
213
228
  addEntry(turnId, { kind: 'error', message: error instanceof Error ? error.message : String(error) });
214
229
  }
215
230
  const result = await current.result;
231
+ if (noteTurn?.id === turnId)
232
+ noteTurn = undefined;
216
233
  denyPending();
217
234
  run = undefined;
218
235
  controller = undefined;
@@ -234,9 +251,8 @@ export function createAgentSession(options) {
234
251
  }
235
252
  else if (result.sessionId)
236
253
  set({ sessionId: result.sessionId });
237
- const [next, ...rest] = state.queued;
238
- if (next !== undefined && !closed) {
239
- set({ queued: rest });
254
+ const next = closed ? undefined : takeNext();
255
+ if (next !== undefined) {
240
256
  startTurn(next);
241
257
  }
242
258
  else {
@@ -245,24 +261,46 @@ export function createAgentSession(options) {
245
261
  }
246
262
  })();
247
263
  };
264
+ const takeNext = () => {
265
+ if (state.notes?.length && !holdNotes)
266
+ return shiftNote();
267
+ const [next, ...rest] = state.queued;
268
+ if (next !== undefined)
269
+ set({ queued: rest });
270
+ return next;
271
+ };
248
272
  return {
249
273
  get: () => state,
250
274
  subscribe(listener) {
251
275
  listeners.add(listener);
252
276
  return () => listeners.delete(listener);
253
277
  },
254
- send(text) {
278
+ send(text, sendOptions) {
255
279
  const prompt = text.trim();
256
280
  if (!prompt || closed)
257
281
  return;
258
- if (state.status === 'idle')
259
- return startTurn(prompt);
282
+ if (sendOptions?.note) {
283
+ set({ notes: [...(state.notes ?? []), prompt] });
284
+ // A new note releases the held ones, oldest first: now, or as the running turn ends.
285
+ holdNotes = false;
286
+ if (state.status === 'idle')
287
+ return startTurn(shiftNote());
288
+ return;
289
+ }
290
+ holdNotes = false;
291
+ if (state.status === 'idle') {
292
+ // Held notes go first: the agent hears what happened before the user's next words.
293
+ if (!state.notes?.length)
294
+ return startTurn(prompt);
295
+ set({ queued: [...state.queued, prompt] });
296
+ return startTurn(shiftNote());
297
+ }
260
298
  const current = run;
261
299
  const turnId = state.turns.at(-1)?.id;
262
300
  const turnController = controller;
263
301
  // Transform only what is steered now; a queued prompt is transformed when its turn starts.
264
302
  let steerText;
265
- if (current?.steer && state.canSteer && turnId !== undefined) {
303
+ if (current?.steer && state.canSteer && turnId !== undefined && !sendOptions?.queue) {
266
304
  try {
267
305
  steerText = toAgent(prompt);
268
306
  }
@@ -279,8 +317,7 @@ export function createAgentSession(options) {
279
317
  return;
280
318
  set({ queued: [...state.queued, prompt] });
281
319
  if (state.status === 'idle') {
282
- const [next, ...rest] = state.queued;
283
- set({ queued: rest });
320
+ const next = takeNext();
284
321
  if (next !== undefined)
285
322
  startTurn(next);
286
323
  }
@@ -292,6 +329,11 @@ export function createAgentSession(options) {
292
329
  stop() {
293
330
  if (state.queued.length)
294
331
  set({ queued: [] });
332
+ if (noteTurn) {
333
+ set({ notes: [noteTurn.text, ...(state.notes ?? [])] });
334
+ noteTurn = undefined;
335
+ }
336
+ holdNotes = true;
295
337
  denyPending();
296
338
  controller?.abort();
297
339
  run?.abort();
@@ -331,6 +373,8 @@ export function createAgentSession(options) {
331
373
  },
332
374
  close() {
333
375
  closed = true;
376
+ if (state.notes?.length)
377
+ set({ notes: [] });
334
378
  this.stop();
335
379
  listeners.clear();
336
380
  },
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/agents/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/agents/session.ts"],"names":[],"mappings":"AA2HA,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC7D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC;IACzC,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACzG,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC1B,IAAI,KAAK,GAAiB;QACxB,KAAK,EAAE,KAAK,CAAC,IAAI;QACjB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,MAAM;QACzB,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,KAAK;KAChB,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgD,CAAC;IACxE,MAAM,WAAW,GAAsB,EAAE,CAAC;IAC1C,IAAI,GAAyB,CAAC;IAC9B,IAAI,UAAuC,CAAC;IAC5C,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,kGAAkG;IAClG,IAAI,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IACpC,8EAA8E;IAC9E,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,+FAA+F;IAC/F,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,4FAA4F;IAC5F,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,QAAkD,CAAC;IACvD,MAAM,SAAS,GAAG,GAAW,EAAE;QAC7B,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1C,UAAU,GAAG,IAAI,CAAC;QAClB,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrB,OAAO,IAAK,CAAC;IACf,CAAC,CAAC;IACF,6EAA6E;IAC7E,IAAI,SAAS,GAAe,EAAE,CAAC;IAC/B,IAAI,QAA4B,CAAC;IAEjC,MAAM,GAAG,GAAG,CAAC,KAA4B,EAAE,EAAE;QAC3C,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC;QAC/B,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,wEAAwE;YAC1E,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,EAAU,EAAE,MAA0C,EAAE,EAAE;QAC5E,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,KAAmB,EAAE,EAAE,CACnD,UAAU,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7F,MAAM,IAAI,GAAG,CAAC,IAAwB,EAAE,EAAE,CACxC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC;IAE/G,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,KAAiB,EAAE,EAAE;QACpD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,SAAS;gBACZ,IAAI,CAAC,eAAe;oBAAE,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC1D,OAAO;YACT,KAAK,YAAY;gBACf,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBAC5C,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;oBACzG,CAAC;oBACD,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBACtG,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,KAAK,SAAS;gBACZ,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjC,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;oBACjF,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS;wBACzC,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;oBACrE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;gBACxD,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,KAAK,YAAY;gBACf,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpG,OAAO;YACT,KAAK,UAAU;gBACb,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC1B,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC5D,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;oBACjF,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;wBACX,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;wBACjG,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;oBACxE,CAAC;oBACD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAI,OAAO,CAAC,EAAE,CAA6C,EAAE,GAAG,KAAK,EAAE,CAAC;oBACxF,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;gBAC9B,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,KAAK,aAAa;gBAChB,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBACxD,OAAO;YACT,KAAK,kBAAkB;gBACrB,wFAAwF;gBACxF,mDAAmD;gBACnD,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnC,OAAO;YACT,KAAK,mBAAmB;gBACtB,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC5B,GAAG,IAAI;oBACP,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAClC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;wBAC3E,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;wBACzF,CAAC,CAAC,KAAK,CACV;iBACF,CAAC,CAAC,CAAC;gBACJ,OAAO;YACT,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC5B,GAAG,IAAI;oBACP,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;iBACvC,CAAC,CAAC,CAAC;gBACJ,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;gBACtE,GAAG,CAAC;oBACF,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;oBAC7C,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO;iBACjF,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,KAAK,OAAO;gBACV,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5D,OAAO;YACT,KAAK,QAAQ,CAAC;YACd,KAAK,KAAK,CAAC;YACX,KAAK,MAAM;gBACT,OAAO;QACX,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,OAAwB,EAAE,EAAE;QAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,EAAE,OAAO,CAAC,IAAI,CAC9B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAC3F,CAAC;QACF,IAAI,CAAC,KAAK;YAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,OAAwB,EAAE,MAAoB,EAA6B,EAAE;QAC/G,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7B,IAAI,MAAM,EAAE,OAAO;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,SAAS;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,8EAA8E;YAC9E,MAAM,QAAQ,GAAG,GAAG,EAAE;gBACpB,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,MAAM;oBAAE,OAAO;gBAC/C,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC3B,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnF,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC;YACF,MAAM,MAAM,GAAG,CAAC,QAA0B,EAAE,EAAE;gBAC5C,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC/C,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC,CAAC;YACF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAChC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;YAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM;YAAE,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO;QAC3D,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;IACzD,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,EAAE;QACnC,SAAS,GAAG,KAAK,CAAC;QAClB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,UAAU,GAAG,KAAK,CAAC;QACnB,MAAM,IAAI,GAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACxG,MAAM,MAAM,GACV,cAAc,KAAK,SAAS;YAC1B,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM;gBAC5C,CAAC,CAAC,KAAK,CAAC,SAAS;gBACjB,CAAC,CAAC,SAAS,CAAC;QAClB,cAAc,GAAG,SAAS,CAAC;QAC3B,MAAM,cAAc,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,UAAU,GAAG,cAAc,CAAC;QAC5B,GAAG,CAAC;YACF,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;YAC9C,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC;gBAClB,GAAG,OAAO,CAAC,IAAI;gBACf,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;gBACvB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM;gBACN,MAAM,EAAE,cAAc,CAAC,MAAM;gBAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;aACrE,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sFAAsF;YACtF,OAAO,GAAG,SAAS,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,GAAG,GAAG,OAAO,CAAC;QACd,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK;YAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO;oBAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvG,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;YACpC,IAAI,QAAQ,EAAE,EAAE,KAAK,MAAM;gBAAE,QAAQ,GAAG,SAAS,CAAC;YAClD,WAAW,EAAE,CAAC;YACd,GAAG,GAAG,SAAS,CAAC;YAChB,UAAU,GAAG,SAAS,CAAC;YACvB,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC5B,GAAG,IAAI;gBACP,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;gBACrC,MAAM;gBACN,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;aACpB,CAAC,CAAC,CAAC;YACJ,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;YAC1E,IAAI,QAAQ,EAAE,KAAK;gBAAE,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrE,IAAI,QAAQ,EAAE,OAAO,KAAK,SAAS;gBAAE,QAAQ,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;YACnF,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7C,IAAI,eAAe,EAAE,CAAC;gBACpB,eAAe,GAAG,KAAK,CAAC;gBACxB,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,MAAM,CAAC,SAAS;gBAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAClE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC7C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,SAAS,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzC,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAuB,EAAE;QACxC,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,EAAE,CAAC;QAC1D,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QACrC,IAAI,IAAI,KAAK,SAAS;YAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,OAAO;QACL,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK;QAChB,SAAS,CAAC,QAAQ;YAChB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,WAAW;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,IAAI,MAAM;gBAAE,OAAO;YAC9B,IAAI,WAAW,EAAE,IAAI,EAAE,CAAC;gBACtB,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBACjD,qFAAqF;gBACrF,SAAS,GAAG,KAAK,CAAC;gBAClB,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;oBAAE,OAAO,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC3D,OAAO;YACT,CAAC;YACD,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC5B,mFAAmF;gBACnF,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM;oBAAE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;gBACnD,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC3C,OAAO,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,CAAC;YACpB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,cAAc,GAAG,UAAU,CAAC;YAClC,2FAA2F;YAC3F,IAAI,SAA6B,CAAC;YAClC,IAAI,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC;gBACpF,IAAI,CAAC;oBACH,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC9B,CAAC;gBAAC,MAAM,CAAC;oBACP,gDAAgD;gBAClD,CAAC;YACH,CAAC;YACD,IAAI,OAAO,EAAE,KAAK,IAAI,MAAM,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBACtE,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;gBAClD,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;oBAClC,mFAAmF;oBACnF,qCAAqC;oBACrC,IAAI,MAAM,IAAI,cAAc,EAAE,MAAM,CAAC,OAAO;wBAAE,OAAO;oBACrD,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;wBAC5B,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;wBACxB,IAAI,IAAI,KAAK,SAAS;4BAAE,SAAS,CAAC,IAAI,CAAC,CAAC;oBAC1C,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI;YACF,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM;gBAAE,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7C,IAAI,QAAQ,EAAE,CAAC;gBACb,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxD,QAAQ,GAAG,SAAS,CAAC;YACvB,CAAC;YACD,SAAS,GAAG,IAAI,CAAC;YACjB,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,KAAK,EAAE,CAAC;YACpB,GAAG,EAAE,KAAK,EAAE,CAAC;YACb,UAAU,EAAE,CAAC;QACf,CAAC;QACD,OAAO,CAAC,EAAE,EAAE,QAAQ;YAClB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnB,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3E,OAAO,CAAC,QAAQ,CAAC,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,QAAQ,CAAC,IAAI;YACX,IAAI,IAAI,KAAK,KAAK;gBAAE,OAAO;YAC3B,KAAK,GAAG,IAAI,CAAC;YACb,cAAc,GAAG,SAAS,CAAC;YAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;gBAAE,eAAe,GAAG,IAAI,CAAC;YACvD,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,QAAQ,CAAC,KAAK;YACZ,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACjB,CAAC;QACD,KAAK;YACH,cAAc,GAAG,SAAS,CAAC;YAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;gBAAE,eAAe,GAAG,IAAI,CAAC;YACvD,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,IAAI;YACF,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;gBAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK;YACH,MAAM,GAAG,IAAI,CAAC;YACd,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM;gBAAE,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,2CAA2C;AAC3C,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,MAAM,GAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC1G,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/B,KAAK,KAAI,CAAC;QACV,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;YACjC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACjC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAuB;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS;QAAE,OAAO,OAAO,CAAC;IAC7D,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,YAAY,CAAC,OAAuB,EAAE,EAAsB,EAAE,IAAwB;IAC7F,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI;YAAE,SAAS;QAClD,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAiB,EAAE,KAAiB;IACpD,MAAM,GAAG,GAAG,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/G,MAAM,IAAI,GAAe,EAAE,CAAC;IAC5B,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACjE,MAAM,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAChF,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC9D,IAAI,WAAW,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAC9D,IAAI,YAAY,KAAK,SAAS;QAAE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACjE,IAAI,iBAAiB,KAAK,SAAS;QAAE,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAChF,IAAI,WAAW,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAC9D,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,139 @@
1
+ import type { ApprovalDecision, CodingAgent } from '../agents/types.js';
2
+ import type { McpTool } from './mcp.js';
3
+ import { type AppAgentMode, type AppAgentState, type TreeChanges } from './state.js';
4
+ export interface AppTool {
5
+ name: string;
6
+ description: string;
7
+ /** JSON Schema of the arguments. Default: no arguments. */
8
+ inputSchema?: Record<string, unknown>;
9
+ /** Needs the user's approval. The agent also passes `approval_summary`, which `run` never sees. */
10
+ write?: boolean;
11
+ /** Throw to refuse a call. Write tools check here, before an action is created. */
12
+ validate?(args: Record<string, unknown>): void;
13
+ /** What the tool returns to the agent (read tools) or the outcome of an approved action (write tools). */
14
+ run(args: Record<string, unknown>): Promise<string> | string;
15
+ }
16
+ export interface AppAgentOptions {
17
+ /** How the agent should call the app, e.g. "the gamedev.pl operator console". */
18
+ name: string;
19
+ /** Added to the briefing the first prompt carries. */
20
+ instructions?: string | ((mode: AppAgentMode) => string);
21
+ tools?: readonly AppTool[];
22
+ /** Paths of the app's pages. Turns on page context and the `app_view`, `app_links` and `app_open` tools. */
23
+ pages?: () => readonly string[];
24
+ /** Turns on `dev` mode: the agent edits the app's code in `cwd` and proposes a commit. */
25
+ dev?: {
26
+ cwd: string;
27
+ /** Git repository the commit goes to. Default `cwd`. */
28
+ repo?: string;
29
+ /**
30
+ * Commands the agent may run there, each with any arguments, e.g. `npm test`; anything
31
+ * else, git included, goes through the agent CLI's own permission prompt.
32
+ * Claude and Copilot enforce the list; Codex only has its `workspace-write` sandbox.
33
+ */
34
+ commands?: readonly string[];
35
+ instructions?: string;
36
+ };
37
+ /** Agents offered in each mode. Default `defaultAppAgents(mode, dev.commands)`. */
38
+ agents?: (mode: AppAgentMode) => readonly CodingAgent[];
39
+ /** Agent to start with. Default: the first installed one. */
40
+ agent?: string;
41
+ /** Where the agent reaches the app's MCP endpoint (`<basePath>/mcp` of the handler). */
42
+ mcpUrl: string | (() => string);
43
+ /** MCP server name the agent sees (letters, digits, `_`, `-`); its tools show as `mcp__<name>__<tool>`. Default `app`. */
44
+ serverName?: string;
45
+ env?: NodeJS.ProcessEnv;
46
+ /** Every prompt, tool call, decision and finished turn, e.g. to append to a JSONL log. */
47
+ trace?: (record: AppAgentTrace) => void;
48
+ now?: () => number;
49
+ /** How long an approved commit waits for the turn it stops to end; past it the commit fails. Default 10 s. */
50
+ stopTimeoutMs?: number;
51
+ }
52
+ /** One line of the trace. Long texts are clipped. */
53
+ export type AppAgentTrace = {
54
+ kind: 'session';
55
+ agent: string;
56
+ mode: AppAgentMode;
57
+ } | {
58
+ kind: 'prompt';
59
+ agent: string;
60
+ mode: AppAgentMode;
61
+ view: string | null;
62
+ text: string;
63
+ } | {
64
+ kind: 'note';
65
+ text: string;
66
+ } | {
67
+ kind: 'mcp';
68
+ tool: string;
69
+ args: Record<string, unknown>;
70
+ ok: boolean;
71
+ ms: number;
72
+ result?: string;
73
+ error?: string;
74
+ } | {
75
+ kind: 'decision';
76
+ action: string;
77
+ summary: string;
78
+ decision: 'approve' | 'reject';
79
+ } | {
80
+ kind: 'turn';
81
+ agent: string;
82
+ mode: AppAgentMode;
83
+ turn: number;
84
+ status: string;
85
+ ok: boolean;
86
+ error?: string;
87
+ ms: number;
88
+ costUsd?: number;
89
+ entries: unknown[];
90
+ };
91
+ export interface AppAgent {
92
+ get(): AppAgentState;
93
+ subscribe(listener: (state: AppAgentState) => void): () => void;
94
+ /** A message from the user. Carries the open page when the app reports one. */
95
+ send(text: string): void;
96
+ /**
97
+ * A note from the app, e.g. a background job a tool started has finished. It reaches the
98
+ * agent ahead of queued prompts but never starts a conversation. Right after an agent or mode
99
+ * switch the next agent hears it in its briefing; with no conversation at all it is dropped.
100
+ */
101
+ notify(text: string): void;
102
+ stop(): void;
103
+ /** Drop the conversation, history and chips; the next message starts fresh. */
104
+ reset(): void;
105
+ /**
106
+ * Switch agent or mode between turns. Throws while a turn runs. The transcript so far moves
107
+ * to `history`, and the next agent's first prompt carries a short version of it.
108
+ */
109
+ configure(change: {
110
+ agent?: string;
111
+ mode?: AppAgentMode;
112
+ }): void;
113
+ /** The app reports which page is open. */
114
+ setView(path: string): void;
115
+ decide(id: string, decision: 'approve' | 'reject'): void;
116
+ /** Answer a permission prompt of the agent CLI itself (`session.approvals`). */
117
+ approve(id: string, decision: ApprovalDecision): void;
118
+ /** The diff a proposed commit would land. */
119
+ changes(id: string): Promise<TreeChanges>;
120
+ /** The tools the agent currently sees over MCP. */
121
+ mcpTools(): McpTool[];
122
+ /** Bearer the current session's agent sends to the MCP endpoint; a new one with every session. */
123
+ readonly mcpToken: string;
124
+ readonly serverName: string;
125
+ close(): void;
126
+ }
127
+ export declare class AppAgentError extends Error {
128
+ readonly status: number;
129
+ constructor(message: string, status: number);
130
+ }
131
+ /**
132
+ * A coding agent inside a local app: the user chats with an agent CLI from their machine
133
+ * (Claude Code, Codex, Copilot...), the agent uses the app through tools the app serves over
134
+ * MCP, writes wait for the user's approval, and in `dev` mode the agent also changes the
135
+ * app's code and proposes a commit of exactly the reviewed tree.
136
+ *
137
+ * This is the state and logic only; `createAppAgentHandler` serves it over HTTP.
138
+ */
139
+ export declare function createAppAgent(options: AppAgentOptions): AppAgent;