@moxxy/core 0.4.0 → 0.5.1

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 (151) hide show
  1. package/dist/events/log.d.ts.map +1 -1
  2. package/dist/events/log.js +38 -1
  3. package/dist/events/log.js.map +1 -1
  4. package/dist/permissions/engine.d.ts.map +1 -1
  5. package/dist/permissions/engine.js +80 -17
  6. package/dist/permissions/engine.js.map +1 -1
  7. package/dist/plugins/discovery.d.ts.map +1 -1
  8. package/dist/plugins/discovery.js +48 -7
  9. package/dist/plugins/discovery.js.map +1 -1
  10. package/dist/plugins/host.d.ts.map +1 -1
  11. package/dist/plugins/host.js +54 -11
  12. package/dist/plugins/host.js.map +1 -1
  13. package/dist/plugins/lifecycle.d.ts.map +1 -1
  14. package/dist/plugins/lifecycle.js +7 -0
  15. package/dist/plugins/lifecycle.js.map +1 -1
  16. package/dist/plugins/loader.d.ts +9 -0
  17. package/dist/plugins/loader.d.ts.map +1 -1
  18. package/dist/plugins/loader.js +34 -8
  19. package/dist/plugins/loader.js.map +1 -1
  20. package/dist/plugins/registry-kinds.d.ts +21 -2
  21. package/dist/plugins/registry-kinds.d.ts.map +1 -1
  22. package/dist/plugins/registry-kinds.js +3 -1
  23. package/dist/plugins/registry-kinds.js.map +1 -1
  24. package/dist/plugins/toposort.d.ts.map +1 -1
  25. package/dist/plugins/toposort.js +43 -18
  26. package/dist/plugins/toposort.js.map +1 -1
  27. package/dist/preferences.d.ts.map +1 -1
  28. package/dist/preferences.js +5 -4
  29. package/dist/preferences.js.map +1 -1
  30. package/dist/registries/active-backend-registry.d.ts.map +1 -1
  31. package/dist/registries/active-backend-registry.js +10 -1
  32. package/dist/registries/active-backend-registry.js.map +1 -1
  33. package/dist/registries/channels.d.ts +2 -1
  34. package/dist/registries/channels.d.ts.map +1 -1
  35. package/dist/registries/channels.js +30 -20
  36. package/dist/registries/channels.js.map +1 -1
  37. package/dist/registries/commands.d.ts.map +1 -1
  38. package/dist/registries/commands.js +27 -8
  39. package/dist/registries/commands.js.map +1 -1
  40. package/dist/registries/isolators.d.ts +27 -1
  41. package/dist/registries/isolators.d.ts.map +1 -1
  42. package/dist/registries/isolators.js +35 -1
  43. package/dist/registries/isolators.js.map +1 -1
  44. package/dist/registries/modes.d.ts +4 -0
  45. package/dist/registries/modes.d.ts.map +1 -1
  46. package/dist/registries/modes.js +15 -4
  47. package/dist/registries/modes.js.map +1 -1
  48. package/dist/registries/providers.d.ts +8 -0
  49. package/dist/registries/providers.d.ts.map +1 -1
  50. package/dist/registries/providers.js +8 -0
  51. package/dist/registries/providers.js.map +1 -1
  52. package/dist/registries/skills.d.ts +9 -0
  53. package/dist/registries/skills.d.ts.map +1 -1
  54. package/dist/registries/skills.js +22 -0
  55. package/dist/registries/skills.js.map +1 -1
  56. package/dist/requirements.d.ts.map +1 -1
  57. package/dist/requirements.js +7 -1
  58. package/dist/requirements.js.map +1 -1
  59. package/dist/run-turn.d.ts.map +1 -1
  60. package/dist/run-turn.js +65 -17
  61. package/dist/run-turn.js.map +1 -1
  62. package/dist/session.d.ts +9 -0
  63. package/dist/session.d.ts.map +1 -1
  64. package/dist/session.js +25 -3
  65. package/dist/session.js.map +1 -1
  66. package/dist/sessions/persistence.d.ts +15 -0
  67. package/dist/sessions/persistence.d.ts.map +1 -1
  68. package/dist/sessions/persistence.js +116 -13
  69. package/dist/sessions/persistence.js.map +1 -1
  70. package/dist/skills/loader.d.ts.map +1 -1
  71. package/dist/skills/loader.js +11 -2
  72. package/dist/skills/loader.js.map +1 -1
  73. package/dist/skills/synthesize.d.ts.map +1 -1
  74. package/dist/skills/synthesize.js +87 -36
  75. package/dist/skills/synthesize.js.map +1 -1
  76. package/dist/subagents/events.js +33 -2
  77. package/dist/subagents/events.js.map +1 -1
  78. package/dist/subagents/registry.d.ts +22 -1
  79. package/dist/subagents/registry.d.ts.map +1 -1
  80. package/dist/subagents/registry.js +72 -2
  81. package/dist/subagents/registry.js.map +1 -1
  82. package/dist/subagents/run-child.d.ts.map +1 -1
  83. package/dist/subagents/run-child.js +138 -46
  84. package/dist/subagents/run-child.js.map +1 -1
  85. package/dist/surfaces/host.d.ts +10 -0
  86. package/dist/surfaces/host.d.ts.map +1 -1
  87. package/dist/surfaces/host.js +41 -3
  88. package/dist/surfaces/host.js.map +1 -1
  89. package/dist/usage-stats.d.ts +7 -1
  90. package/dist/usage-stats.d.ts.map +1 -1
  91. package/dist/usage-stats.js +41 -15
  92. package/dist/usage-stats.js.map +1 -1
  93. package/dist/view/parse.d.ts.map +1 -1
  94. package/dist/view/parse.js +119 -19
  95. package/dist/view/parse.js.map +1 -1
  96. package/package.json +4 -4
  97. package/src/events/log.test.ts +45 -0
  98. package/src/events/log.ts +39 -1
  99. package/src/permissions/engine.test.ts +60 -0
  100. package/src/permissions/engine.ts +81 -16
  101. package/src/plugins/discovery.test.ts +59 -1
  102. package/src/plugins/discovery.ts +57 -9
  103. package/src/plugins/host.test.ts +40 -0
  104. package/src/plugins/host.ts +48 -10
  105. package/src/plugins/lifecycle.test.ts +29 -0
  106. package/src/plugins/lifecycle.ts +7 -0
  107. package/src/plugins/loader.ts +45 -7
  108. package/src/plugins/registry-kinds.test.ts +53 -0
  109. package/src/plugins/registry-kinds.ts +25 -3
  110. package/src/plugins/toposort.ts +45 -17
  111. package/src/preferences.test.ts +52 -1
  112. package/src/preferences.ts +5 -4
  113. package/src/registries/active-backend-registry.ts +10 -1
  114. package/src/registries/channels.test.ts +79 -0
  115. package/src/registries/channels.ts +33 -18
  116. package/src/registries/commands.test.ts +65 -0
  117. package/src/registries/commands.ts +25 -8
  118. package/src/registries/isolators.test.ts +37 -0
  119. package/src/registries/isolators.ts +48 -1
  120. package/src/registries/modes.test.ts +21 -1
  121. package/src/registries/modes.ts +15 -2
  122. package/src/registries/providers.ts +8 -0
  123. package/src/registries/semantics.test.ts +33 -1
  124. package/src/registries/skills.ts +28 -0
  125. package/src/registries/transcribers.test.ts +13 -0
  126. package/src/requirements.test.ts +35 -0
  127. package/src/requirements.ts +7 -1
  128. package/src/run-turn.test.ts +219 -0
  129. package/src/run-turn.ts +68 -18
  130. package/src/session.test.ts +24 -0
  131. package/src/session.ts +24 -3
  132. package/src/sessions/page.test.ts +17 -0
  133. package/src/sessions/persistence.test.ts +93 -1
  134. package/src/sessions/persistence.ts +138 -30
  135. package/src/skills/loader.test.ts +18 -0
  136. package/src/skills/loader.ts +12 -1
  137. package/src/skills/synthesize.test.ts +59 -0
  138. package/src/skills/synthesize.ts +89 -36
  139. package/src/subagents/events.test.ts +56 -0
  140. package/src/subagents/events.ts +32 -2
  141. package/src/subagents/registry.test.ts +106 -0
  142. package/src/subagents/registry.ts +77 -3
  143. package/src/subagents/run-child.test.ts +125 -2
  144. package/src/subagents/run-child.ts +150 -47
  145. package/src/surfaces/host.test.ts +71 -1
  146. package/src/surfaces/host.ts +39 -2
  147. package/src/usage-stats.test.ts +99 -1
  148. package/src/usage-stats.ts +42 -17
  149. package/src/view/parse-extended.test.ts +80 -0
  150. package/src/view/parse.test.ts +14 -0
  151. package/src/view/parse.ts +113 -18
@@ -1 +1 @@
1
- {"version":3,"file":"synthesize.js","sourceRoot":"","sources":["../../src/skills/synthesize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"synthesize.js","sourceRoot":"","sources":["../../src/skills/synthesize.ts"],"names":[],"mappings":"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"}
@@ -89,6 +89,33 @@ export async function streamChildEventToParent(parentSession, parentTurnId, labe
89
89
  `${err instanceof Error ? err.message : String(err)}\n`);
90
90
  }
91
91
  }
92
+ /** Max chars of a forwarded child tool output/error mirrored onto the parent log. */
93
+ const MAX_FORWARD_CHARS = 16 * 1024;
94
+ /**
95
+ * Bound an arbitrary child tool result before mirroring it onto the parent log.
96
+ * Strings are truncated with an elision marker; other values pass through when
97
+ * their serialized length is small and are replaced with a marker when not (we
98
+ * avoid re-parsing — the full payload still lives in the child log).
99
+ */
100
+ function truncateForward(value) {
101
+ if (typeof value === 'string') {
102
+ return value.length > MAX_FORWARD_CHARS
103
+ ? `${value.slice(0, MAX_FORWARD_CHARS)}… [${value.length - MAX_FORWARD_CHARS} more chars elided]`
104
+ : value;
105
+ }
106
+ if (value === null || value === undefined || typeof value !== 'object')
107
+ return value;
108
+ let serialized;
109
+ try {
110
+ serialized = JSON.stringify(value);
111
+ }
112
+ catch {
113
+ return '[unserializable subagent output elided]';
114
+ }
115
+ if (serialized.length <= MAX_FORWARD_CHARS)
116
+ return value;
117
+ return `${serialized.slice(0, MAX_FORWARD_CHARS)}… [${serialized.length - MAX_FORWARD_CHARS} more chars elided]`;
118
+ }
92
119
  function mapChildEvent(label, childSessionId, childEvt) {
93
120
  const payload = {
94
121
  label,
@@ -106,10 +133,14 @@ function mapChildEvent(label, childSessionId, childEvt) {
106
133
  case 'tool_result':
107
134
  payload.callId = String(childEvt.callId);
108
135
  payload.ok = childEvt.ok;
136
+ // Child tool outputs are `unknown` and unbounded (a child Read/Bash can
137
+ // return multi-MB blobs). Forwarding them verbatim copies the full payload
138
+ // into the in-memory parent log too — doubling memory/persistence cost and
139
+ // multiplying it under deep nesting. The TUI only needs a preview, so cap it.
109
140
  if (childEvt.ok)
110
- payload.output = childEvt.output;
141
+ payload.output = truncateForward(childEvt.output);
111
142
  else
112
- payload.error = childEvt.error;
143
+ payload.error = truncateForward(childEvt.error);
113
144
  return { subtype: 'subagent_tool_result', payload };
114
145
  case 'error':
115
146
  payload.kind = childEvt.kind;
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/subagents/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/subagents/events.ts"],"names":[],"mappings":"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"}
@@ -26,9 +26,30 @@ export interface RetainedChildSession {
26
26
  readonly strategyName: string;
27
27
  readonly parentSession: SessionRuntime;
28
28
  readonly parentTurnId: TurnId;
29
+ /** Cumulative provider token cost across this retained session's turns. */
30
+ tokensUsed?: number;
31
+ /** Wall-clock ms when the entry was (re)registered — drives TTL eviction. */
32
+ readonly retainedAt?: number;
29
33
  }
30
- export declare function registerRetainedChild(session: RetainedChildSession): void;
34
+ /**
35
+ * Register (or re-register) a retained child. Returns the entries DROPPED by
36
+ * this call — TTL-expired children plus any evicted to make room under the cap —
37
+ * so the caller can surface a `subagent_warning` for each (a paused `awaitInput`
38
+ * child whose `continue()` will now fail with "no retained subagent session").
39
+ * The registry has no SessionRuntime handle of its own, so it can't emit.
40
+ */
41
+ export declare function registerRetainedChild(session: RetainedChildSession): RetainedChildSession[];
31
42
  export declare function getRetainedChild(childSessionId: SessionId): RetainedChildSession | undefined;
43
+ /**
44
+ * Atomically claim a retained child for a `continue()` turn: remove it from the
45
+ * registry and mark it busy, so a racing `continue()`/`release()` for the same
46
+ * id can't observe the live entry and drive `strategy.run` over the same
47
+ * childLog/childCtx concurrently. Returns `undefined` if the id is unknown or
48
+ * already in flight.
49
+ */
50
+ export declare function claimRetainedChild(childSessionId: SessionId): RetainedChildSession | undefined;
51
+ /** Release a claim taken by {@link claimRetainedChild} (after the turn settles). */
52
+ export declare function unclaimRetainedChild(childSessionId: SessionId): void;
32
53
  export declare function releaseRetainedChild(childSessionId: SessionId): void;
33
54
  /**
34
55
  * Drop retained children. With a `parentSessionId`, drop ONLY the children
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/subagents/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACvE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAID,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAEzE;AAED,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,SAAS,GAAG,oBAAoB,GAAG,SAAS,CAE5F;AAED,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,SAAS,GAAG,IAAI,CAEpE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,CAAC,EAAE,SAAS,GAAG,IAAI,CASvE"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/subagents/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACvE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AA6BD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,GAAG,oBAAoB,EAAE,CAe3F;AAED,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,SAAS,GAAG,oBAAoB,GAAG,SAAS,CAE5F;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,SAAS,GAAG,oBAAoB,GAAG,SAAS,CAQ9F;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,SAAS,GAAG,IAAI,CAEpE;AAED,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,SAAS,GAAG,IAAI,CAIpE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,CAAC,EAAE,SAAS,GAAG,IAAI,CAUvE"}
@@ -12,15 +12,84 @@
12
12
  * live session's paused children — that would break their `continue()` in any
13
13
  * host that runs >1 Session per process (the desktop in-process path, tests).
14
14
  */
15
+ /**
16
+ * Cap the number of live retained children. Each entry pins a full EventLog +
17
+ * ModeContext (provider, tool registry, plugin host, signal); an `awaitInput`
18
+ * child whose resume never arrives would otherwise leak for the life of a
19
+ * long-lived in-process runner. When the cap is exceeded the oldest entry is
20
+ * evicted (its `continue()` will then fail with "no retained subagent session").
21
+ */
22
+ const MAX_RETAINED = 64;
23
+ /** Evict a paused child this long after registration if never resumed. */
24
+ const RETAIN_TTL_MS = 30 * 60 * 1000;
15
25
  const retained = new Map();
26
+ /** Child session ids with a `continue()` currently in flight (claim-then-run). */
27
+ const busy = new Set();
28
+ /** Drop entries past their TTL and return them so the caller can warn. */
29
+ function pruneExpired(now) {
30
+ const expired = [];
31
+ for (const [id, entry] of retained) {
32
+ if (entry.retainedAt !== undefined && now - entry.retainedAt >= RETAIN_TTL_MS) {
33
+ retained.delete(id);
34
+ expired.push(entry);
35
+ }
36
+ }
37
+ return expired;
38
+ }
39
+ /**
40
+ * Register (or re-register) a retained child. Returns the entries DROPPED by
41
+ * this call — TTL-expired children plus any evicted to make room under the cap —
42
+ * so the caller can surface a `subagent_warning` for each (a paused `awaitInput`
43
+ * child whose `continue()` will now fail with "no retained subagent session").
44
+ * The registry has no SessionRuntime handle of its own, so it can't emit.
45
+ */
16
46
  export function registerRetainedChild(session) {
17
- retained.set(String(session.childSessionId), session);
47
+ const now = Date.now();
48
+ const evicted = pruneExpired(now);
49
+ const id = String(session.childSessionId);
50
+ // Map preserves insertion order, so the first key is the oldest. Evict
51
+ // oldest until we have room for this one (Map.set on an existing id is an
52
+ // update, not an insert, so don't count a re-register against the cap).
53
+ while (retained.size >= MAX_RETAINED && !retained.has(id)) {
54
+ const [oldestId, oldestEntry] = retained.entries().next().value ?? [];
55
+ if (oldestId === undefined)
56
+ break;
57
+ retained.delete(oldestId);
58
+ if (oldestEntry)
59
+ evicted.push(oldestEntry);
60
+ }
61
+ retained.set(id, { ...session, retainedAt: now });
62
+ return evicted;
18
63
  }
19
64
  export function getRetainedChild(childSessionId) {
20
65
  return retained.get(String(childSessionId));
21
66
  }
67
+ /**
68
+ * Atomically claim a retained child for a `continue()` turn: remove it from the
69
+ * registry and mark it busy, so a racing `continue()`/`release()` for the same
70
+ * id can't observe the live entry and drive `strategy.run` over the same
71
+ * childLog/childCtx concurrently. Returns `undefined` if the id is unknown or
72
+ * already in flight.
73
+ */
74
+ export function claimRetainedChild(childSessionId) {
75
+ const id = String(childSessionId);
76
+ if (busy.has(id))
77
+ return undefined;
78
+ const entry = retained.get(id);
79
+ if (!entry)
80
+ return undefined;
81
+ retained.delete(id);
82
+ busy.add(id);
83
+ return entry;
84
+ }
85
+ /** Release a claim taken by {@link claimRetainedChild} (after the turn settles). */
86
+ export function unclaimRetainedChild(childSessionId) {
87
+ busy.delete(String(childSessionId));
88
+ }
22
89
  export function releaseRetainedChild(childSessionId) {
23
- retained.delete(String(childSessionId));
90
+ const id = String(childSessionId);
91
+ retained.delete(id);
92
+ busy.delete(id);
24
93
  }
25
94
  /**
26
95
  * Drop retained children. With a `parentSessionId`, drop ONLY the children
@@ -31,6 +100,7 @@ export function releaseRetainedChild(childSessionId) {
31
100
  export function clearRetainedChildren(parentSessionId) {
32
101
  if (parentSessionId === undefined) {
33
102
  retained.clear();
103
+ busy.clear();
34
104
  return;
35
105
  }
36
106
  const target = String(parentSessionId);
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/subagents/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAmBH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC;AAEzD,MAAM,UAAU,qBAAqB,CAAC,OAA6B;IACjE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,cAAyB;IACxD,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,cAAyB;IAC5D,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,eAA2B;IAC/D,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IACvC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QACxC,IAAI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,MAAM;YAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/subagents/registry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-child.d.ts","sourceRoot":"","sources":["../../src/subagents/run-child.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAIV,SAAS,EAGT,cAAc,EACd,eAAe,EACf,YAAY,EAEZ,MAAM,EACP,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAe5D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAMD,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,EAAE,EAAE,eAAe,CAAC;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC,cAAc,CAAC,CAsE1B;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,cAAc,EAAE,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,cAAc,CAAC,CAqC1B;AAiOD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,eAAe,GAAG,eAAe,CAiB1E"}
1
+ {"version":3,"file":"run-child.d.ts","sourceRoot":"","sources":["../../src/subagents/run-child.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAIV,SAAS,EAGT,cAAc,EACd,eAAe,EACf,YAAY,EAEZ,MAAM,EACP,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAgB5D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAMD,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,EAAE,EAAE,eAAe,CAAC;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC,cAAc,CAAC,CA+E1B;AAyBD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,cAAc,EAAE,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,cAAc,CAAC,CAqD1B;AAoQD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,eAAe,GAAG,eAAe,CAoC1E"}
@@ -25,7 +25,7 @@ import { EventLog } from '../events/log.js';
25
25
  import { newSessionId, newTurnId } from '../events/factory.js';
26
26
  import { emitSubagentCompleted, emitSubagentStart, emitSubagentWarning, streamChildEventToParent, } from './events.js';
27
27
  import { buildFilteredToolRegistry } from './tools.js';
28
- import { getRetainedChild, registerRetainedChild, releaseRetainedChild, } from './registry.js';
28
+ import { claimRetainedChild, registerRetainedChild, releaseRetainedChild, unclaimRetainedChild, } from './registry.js';
29
29
  export async function runChildTurn(args) {
30
30
  const { rt, spec, retainSession } = args;
31
31
  const { parentSession, parentTurnId } = rt;
@@ -37,9 +37,12 @@ export async function runChildTurn(args) {
37
37
  if ('failure' in resolved)
38
38
  return resolved.failure;
39
39
  const { strategy, strategyName } = resolved;
40
- const toolRegistry = spec.allowedTools && spec.allowedTools.length > 0
41
- ? buildFilteredToolRegistry(parentSession.tools, new Set(spec.allowedTools))
42
- : parentSession.tools;
40
+ // `undefined` means "inherit the full parent registry"; a present-but-empty
41
+ // array means "deny all" (least-privilege). Collapsing the two would turn an
42
+ // explicit [] into full tool inheritance — the opposite of the caller's intent.
43
+ const toolRegistry = spec.allowedTools === undefined
44
+ ? parentSession.tools
45
+ : buildFilteredToolRegistry(parentSession.tools, new Set(spec.allowedTools));
43
46
  const childModel = await resolveChildModel(rt, spec, label, childSessionId);
44
47
  const childLog = new EventLog();
45
48
  // The nested spawner's parentModel must be the CHILD's effective model —
@@ -60,7 +63,7 @@ export async function runChildTurn(args) {
60
63
  emitCompleted: !retainSession,
61
64
  });
62
65
  if (retainSession) {
63
- registerRetainedChild({
66
+ const evicted = registerRetainedChild({
64
67
  label,
65
68
  childSessionId,
66
69
  childTurnId,
@@ -71,52 +74,92 @@ export async function runChildTurn(args) {
71
74
  strategyName,
72
75
  parentSession,
73
76
  parentTurnId,
77
+ tokensUsed: capture.tokensUsed,
74
78
  });
79
+ // A capped/TTL-expired paused child is now unreachable: its `continue()`
80
+ // will fail. Surface that on the EVICTED child's own parent log (best-effort
81
+ // — a warning append must never take this spawn down) so the operator who
82
+ // started it isn't left waiting on a resume that can no longer happen.
83
+ await warnEvicted(evicted);
75
84
  }
76
85
  return capture.result;
77
86
  }
87
+ /**
88
+ * Emit a `subagent_warning` on each evicted child's OWN parent log so the
89
+ * operator who spawned a now-unreachable paused child sees why its `continue()`
90
+ * will fail. Best-effort: a warning-append reject (or a since-closed parent
91
+ * session) must never propagate out of the spawn that triggered the eviction.
92
+ */
93
+ async function warnEvicted(evicted) {
94
+ for (const e of evicted) {
95
+ try {
96
+ await emitSubagentWarning(e.parentSession, e.parentTurnId, e.label, e.childSessionId, `retained subagent "${e.label}" was evicted before resume ` +
97
+ `(retention cap or TTL reached); its continue() will no longer work`);
98
+ }
99
+ catch {
100
+ // A closed/failing parent log must not abort the spawn that evicted it.
101
+ }
102
+ }
103
+ }
78
104
  export async function continueChildTurn(args) {
79
- const retained = getRetainedChild(args.childSessionId);
105
+ // Claim-then-run: atomically remove the entry from the registry and mark it
106
+ // busy so a racing continue()/release() for the same id can't observe the
107
+ // live entry and drive strategy.run over the same childLog/childCtx in
108
+ // parallel (interleaved appends, double-seeded prompts, double release).
109
+ const retained = claimRetainedChild(args.childSessionId);
80
110
  if (!retained) {
81
111
  throw new Error(`no retained subagent session for "${String(args.childSessionId)}"`);
82
112
  }
83
- await retained.childLog.append({
84
- type: 'user_prompt',
85
- sessionId: retained.childSessionId,
86
- turnId: retained.childTurnId,
87
- source: 'user',
88
- text: args.prompt,
89
- });
90
- const rt = {
91
- parentSession: retained.parentSession,
92
- parentTurnId: retained.parentTurnId,
93
- parentSignal: retained.childCtx.signal,
94
- parentModel: retained.childCtx.model,
95
- };
96
- const capture = await executeChildLoop({
97
- rt,
98
- spec: retained.spec,
99
- label: args.label ?? retained.label,
100
- childSessionId: retained.childSessionId,
101
- childTurnId: retained.childTurnId,
102
- childLog: retained.childLog,
103
- childCtx: retained.childCtx,
104
- strategy: retained.strategy,
105
- strategyName: retained.strategyName,
106
- emitCompleted: true,
107
- skipStartEvent: true,
108
- });
109
- releaseRetainedChild(args.childSessionId);
110
- return capture.result;
113
+ try {
114
+ await retained.childLog.append({
115
+ type: 'user_prompt',
116
+ sessionId: retained.childSessionId,
117
+ turnId: retained.childTurnId,
118
+ source: 'user',
119
+ text: args.prompt,
120
+ });
121
+ const rt = {
122
+ parentSession: retained.parentSession,
123
+ parentTurnId: retained.parentTurnId,
124
+ // Re-derive the resume signal from the still-live owning session rather
125
+ // than reusing the possibly-already-aborted per-turn signal captured at
126
+ // first-turn spawn time (which would cancel the resume before any work).
127
+ parentSignal: retained.parentSession.signal,
128
+ parentModel: retained.childCtx.model,
129
+ };
130
+ const capture = await executeChildLoop({
131
+ rt,
132
+ spec: retained.spec,
133
+ label: args.label ?? retained.label,
134
+ childSessionId: retained.childSessionId,
135
+ childTurnId: retained.childTurnId,
136
+ childLog: retained.childLog,
137
+ childCtx: retained.childCtx,
138
+ strategy: retained.strategy,
139
+ strategyName: retained.strategyName,
140
+ emitCompleted: true,
141
+ skipStartEvent: true,
142
+ // Carry forward the cost accumulated across prior turns so the deferred
143
+ // subagent_completed reports the retained session's cumulative usage, not
144
+ // just this last continue's delta.
145
+ priorTokensUsed: retained.tokensUsed ?? 0,
146
+ });
147
+ return capture.result;
148
+ }
149
+ finally {
150
+ // The entry was already removed by the claim; just drop the busy marker so
151
+ // a future continue() (if the session were re-registered) isn't blocked.
152
+ unclaimRetainedChild(args.childSessionId);
153
+ }
111
154
  }
112
155
  async function executeChildLoop(args) {
113
- const { rt, spec, label, childSessionId, childTurnId, childLog, childCtx, strategy, strategyName, emitCompleted, skipStartEvent, } = args;
156
+ const { rt, spec, label, childSessionId, childTurnId, childLog, childCtx, strategy, strategyName, emitCompleted, skipStartEvent, priorTokensUsed = 0, } = args;
114
157
  const { parentSession, parentTurnId } = rt;
115
158
  const capture = {
116
159
  text: '',
117
160
  stopReason: 'end_turn',
118
161
  error: null,
119
- tokensUsed: 0,
162
+ tokensUsed: priorTokensUsed,
120
163
  };
121
164
  const unsubCapture = childLog.subscribe((e) => {
122
165
  if (e.type === 'assistant_message') {
@@ -169,7 +212,7 @@ async function executeChildLoop(args) {
169
212
  if (emitCompleted) {
170
213
  await emitSubagentCompleted(parentSession, parentTurnId, label, childSessionId, capture.text, result.stopReason, capture.error, spec.agentType ?? 'default', capture.tokensUsed);
171
214
  }
172
- return { result };
215
+ return { result, tokensUsed: capture.tokensUsed };
173
216
  }
174
217
  async function resolveStrategy(parentSession, parentTurnId, label, childSessionId, spec, requestedStrategy) {
175
218
  // Look up the requested strategy in the parent's loop registry. The
@@ -177,16 +220,18 @@ async function resolveStrategy(parentSession, parentTurnId, label, childSessionI
177
220
  const exact = parentSession.modes.list().find((s) => s.name === requestedStrategy);
178
221
  if (exact)
179
222
  return { strategy: exact, strategyName: requestedStrategy };
180
- // Fall back to the default mode if the model invented a name
181
- // (e.g. "react"). Failing the child outright wastes the user's turn —
182
- // any reasonable agent task can run on the default mode. We surface the
183
- // fallback as a non-fatal warning event so the operator sees it.
184
- const fallback = parentSession.modes.list().find((s) => s.name === 'default');
223
+ // Fall back when the model invented a name (e.g. "react"). Failing the child
224
+ // outright wastes the user's turn — any reasonable agent task can run on the
225
+ // session's current strategy. Prefer a mode literally named "default", then
226
+ // the session's active mode (a host may ship a renamed/alternative default),
227
+ // surfacing the fallback as a non-fatal warning so the operator sees it.
228
+ const fallback = parentSession.modes.list().find((s) => s.name === 'default') ??
229
+ safeActiveMode(parentSession);
185
230
  if (fallback) {
186
- await emitSubagentWarning(parentSession, parentTurnId, label, childSessionId, `unknown mode "${requestedStrategy}" — falling back to "default"`);
187
- return { strategy: fallback, strategyName: 'default' };
231
+ await emitSubagentWarning(parentSession, parentTurnId, label, childSessionId, `unknown mode "${requestedStrategy}" — falling back to "${fallback.name}"`);
232
+ return { strategy: fallback, strategyName: fallback.name };
188
233
  }
189
- // No default mode either — that's a config error, not a model mistake.
234
+ // No fallback mode at all — that's a config error, not a model mistake.
190
235
  await emitSubagentStart(parentSession, parentTurnId, label, childSessionId, spec, requestedStrategy);
191
236
  const errorMsg = `Subagent failed: unknown mode "${requestedStrategy}" and no fallback available`;
192
237
  await emitSubagentCompleted(parentSession, parentTurnId, label, childSessionId, '', 'error', errorMsg, spec.agentType ?? 'default', 0);
@@ -200,6 +245,15 @@ async function resolveStrategy(parentSession, parentTurnId, label, childSessionI
200
245
  },
201
246
  };
202
247
  }
248
+ /** `modes.getActive()` throws when no mode is active; treat that as "no fallback". */
249
+ function safeActiveMode(parentSession) {
250
+ try {
251
+ return parentSession.modes.getActive();
252
+ }
253
+ catch {
254
+ return undefined;
255
+ }
256
+ }
203
257
  /**
204
258
  * Resolve the child's effective model. A `spec.model` usually comes from the
205
259
  * calling LLM (dispatch_agent's free-form string field), which sometimes
@@ -257,13 +311,51 @@ function buildChildContext(rt, spec, model, childSessionId, childTurnId, toolReg
257
311
  emit: (event) => childLog.append(event),
258
312
  };
259
313
  }
314
+ /**
315
+ * Build an error-bearing {@link SubagentResult} for a spec whose `runChildTurn`
316
+ * threw during setup (before it could degrade the error into a result itself).
317
+ * Keeps `spawnAll` total: one result per spec, in input order, never a thrown
318
+ * batch. The real child id is unknown here (setup failed before it was captured),
319
+ * so a fresh placeholder id is minted; the result still carries the failing
320
+ * spec's label and the error message.
321
+ */
322
+ function spawnFailureResult(spec, reason) {
323
+ const message = reason instanceof Error ? reason.message : String(reason);
324
+ return {
325
+ label: spec.label ?? 'subagent',
326
+ childSessionId: newSessionId(),
327
+ text: '',
328
+ stopReason: 'error',
329
+ error: { message },
330
+ };
331
+ }
260
332
  export function createSubagentSpawner(rt) {
261
333
  return {
262
334
  async spawn(spec) {
263
335
  return runChildTurn({ rt, spec, retainSession: spec.retainSession === true });
264
336
  },
265
337
  async spawnAll(specs) {
266
- return Promise.all(specs.map((s) => runChildTurn({ rt, spec: s, retainSession: s.retainSession === true })));
338
+ // Per-child degradation: a single child's PRE-`try` setup throw (no active
339
+ // provider, a `compactors.getActive()` config error, a log-append reject in
340
+ // `resolveStrategy`) must NOT reject the whole batch. `Promise.all` would do
341
+ // exactly that, and worse — it would orphan the still-running sibling
342
+ // promises, whose later settlement surfaces as an `unhandledRejection`.
343
+ // Convert every spec into one result in input order; a setup throw becomes
344
+ // an error-bearing `SubagentResult` so a fan-out partially succeeds instead
345
+ // of taking the parent turn down with it.
346
+ const settled = await Promise.all(specs.map(async (spec) => {
347
+ try {
348
+ return await runChildTurn({ rt, spec, retainSession: spec.retainSession === true });
349
+ }
350
+ catch (err) {
351
+ // A PRE-`try` setup throw inside runChildTurn (no active provider, a
352
+ // failing getActive(), a log-append reject in resolveStrategy) is
353
+ // caught HERE per-child so it can't reject the batch or orphan a
354
+ // sibling. The outer Promise.all is now safe: every element resolves.
355
+ return spawnFailureResult(spec, err);
356
+ }
357
+ }));
358
+ return settled;
267
359
  },
268
360
  async continue(args) {
269
361
  return continueChildTurn(args);
@@ -1 +1 @@
1
- {"version":3,"file":"run-child.js","sourceRoot":"","sources":["../../src/subagents/run-child.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-child.js","sourceRoot":"","sources":["../../src/subagents/run-child.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ export declare class SurfaceHostImpl implements SurfaceHost {
17
17
  private readonly registry;
18
18
  private readonly ctx;
19
19
  private readonly logger?;
20
+ /** Upper bound on a single instance.close() before we give up waiting on it. */
21
+ private static readonly CLOSE_TIMEOUT_MS;
20
22
  /** Open instances, keyed by kind (one shared instance per kind). */
21
23
  private readonly instances;
22
24
  /** Per-instance unsubscribe from its onData, dropped on close. */
@@ -36,12 +38,20 @@ export declare class SurfaceHostImpl implements SurfaceHost {
36
38
  * snapshot, but keystrokes/navigation silently vanish).
37
39
  */
38
40
  private readonly refs;
41
+ /** Set once closeAll() runs: rejects/ tears down any open() that races teardown. */
42
+ private disposed;
39
43
  constructor(registry: SurfaceRegistryImpl, ctx: SurfaceContext, logger?: Logger | undefined);
40
44
  list(): Promise<ReadonlyArray<SurfaceInfo>>;
41
45
  open(kind: SurfaceKind): Promise<OpenSurfaceResult>;
42
46
  input(surfaceId: string, msg: SurfaceInputMessage): Promise<void>;
43
47
  resize(surfaceId: string, size: SurfaceSize): Promise<void>;
44
48
  close(surfaceId: string): Promise<void>;
49
+ /**
50
+ * Tear an instance down without ever blocking forever: a wedged PTY/browser
51
+ * whose close() neither resolves nor rejects must not stall session shutdown.
52
+ * Races close() against a timeout and swallows (logs) any rejection.
53
+ */
54
+ private safeClose;
45
55
  /** Bump the viewer attach count for an already-open kind. */
46
56
  private retain;
47
57
  private describe;
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/surfaces/host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,mBAAmB,EAEnB,WAAW,EACX,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE;;;;;;;;;;;GAWG;AACH,qBAAa,eAAgB,YAAW,WAAW;IAsB/C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAvB1B,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;IACrE,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgD;IAC9E,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsD;IAC9E;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkC;gBAGpC,QAAQ,EAAE,mBAAmB,EAC7B,GAAG,EAAE,cAAc,EACnB,MAAM,CAAC,EAAE,MAAM,YAAA;IAG5B,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAyB3C,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoCnD,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3D,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB7C,6DAA6D;IAC7D,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ;IAQhB,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/B,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,IAAI;CASb"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/surfaces/host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,mBAAmB,EAEnB,WAAW,EACX,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE;;;;;;;;;;;GAWG;AACH,qBAAa,eAAgB,YAAW,WAAW;IA0B/C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IA3B1B,gFAAgF;IAChF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IAChD,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;IACrE,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgD;IAC9E,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsD;IAC9E;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkC;IACvD,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAS;gBAGN,QAAQ,EAAE,mBAAmB,EAC7B,GAAG,EAAE,cAAc,EACnB,MAAM,CAAC,EAAE,MAAM,YAAA;IAG5B,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAyB3C,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA2CnD,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3D,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB7C;;;;OAIG;YACW,SAAS;IAsBvB,6DAA6D;IAC7D,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ;IAQhB,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAa/B,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,IAAI;CASb"}