@mono-agent/agent-app 0.6.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/README.md +259 -19
  2. package/dist/account-home.d.ts +6 -0
  3. package/dist/account-home.d.ts.map +1 -0
  4. package/dist/account-home.js +9 -0
  5. package/dist/account-home.js.map +1 -0
  6. package/dist/adapter-send-proxy.d.ts +18 -0
  7. package/dist/adapter-send-proxy.d.ts.map +1 -0
  8. package/dist/adapter-send-proxy.js +229 -0
  9. package/dist/adapter-send-proxy.js.map +1 -0
  10. package/dist/adapter-send-tools-main.js +62 -4
  11. package/dist/adapter-send-tools-main.js.map +1 -1
  12. package/dist/adapter-send-tools.d.ts +33 -6
  13. package/dist/adapter-send-tools.d.ts.map +1 -1
  14. package/dist/adapter-send-tools.js +485 -87
  15. package/dist/adapter-send-tools.js.map +1 -1
  16. package/dist/app-config.d.ts +3 -1
  17. package/dist/app-config.d.ts.map +1 -1
  18. package/dist/app-config.js +16 -5
  19. package/dist/app-config.js.map +1 -1
  20. package/dist/app.d.ts +27 -0
  21. package/dist/app.d.ts.map +1 -1
  22. package/dist/app.js +761 -147
  23. package/dist/app.js.map +1 -1
  24. package/dist/background-environment.d.ts +16 -0
  25. package/dist/background-environment.d.ts.map +1 -0
  26. package/dist/background-environment.js +68 -0
  27. package/dist/background-environment.js.map +1 -0
  28. package/dist/background-runtime.d.ts +62 -0
  29. package/dist/background-runtime.d.ts.map +1 -0
  30. package/dist/background-runtime.js +1115 -0
  31. package/dist/background-runtime.js.map +1 -0
  32. package/dist/background-snapshot-key.d.ts +13 -0
  33. package/dist/background-snapshot-key.d.ts.map +1 -0
  34. package/dist/background-snapshot-key.js +194 -0
  35. package/dist/background-snapshot-key.js.map +1 -0
  36. package/dist/background-snapshot.d.ts +96 -0
  37. package/dist/background-snapshot.d.ts.map +1 -0
  38. package/dist/background-snapshot.js +450 -0
  39. package/dist/background-snapshot.js.map +1 -0
  40. package/dist/background-worker-lease.d.ts +39 -0
  41. package/dist/background-worker-lease.d.ts.map +1 -0
  42. package/dist/background-worker-lease.js +356 -0
  43. package/dist/background-worker-lease.js.map +1 -0
  44. package/dist/background.d.ts +74 -2
  45. package/dist/background.d.ts.map +1 -1
  46. package/dist/background.js +815 -73
  47. package/dist/background.js.map +1 -1
  48. package/dist/broadcast-recorder.d.ts.map +1 -1
  49. package/dist/broadcast-recorder.js +24 -2
  50. package/dist/broadcast-recorder.js.map +1 -1
  51. package/dist/channel-plugins.d.ts +2 -0
  52. package/dist/channel-plugins.d.ts.map +1 -1
  53. package/dist/channel-plugins.js +8 -0
  54. package/dist/channel-plugins.js.map +1 -1
  55. package/dist/channels.d.ts +10 -0
  56. package/dist/channels.d.ts.map +1 -1
  57. package/dist/channels.js +87 -9
  58. package/dist/channels.js.map +1 -1
  59. package/dist/cli.d.ts +86 -4
  60. package/dist/cli.d.ts.map +1 -1
  61. package/dist/cli.js +2421 -143
  62. package/dist/cli.js.map +1 -1
  63. package/dist/config-reference.d.ts.map +1 -1
  64. package/dist/config-reference.js +448 -6
  65. package/dist/config-reference.js.map +1 -1
  66. package/dist/configuration-proposal-main.d.ts +3 -0
  67. package/dist/configuration-proposal-main.d.ts.map +1 -0
  68. package/dist/configuration-proposal-main.js +13 -0
  69. package/dist/configuration-proposal-main.js.map +1 -0
  70. package/dist/configuration-proposal-tool.d.ts +33 -0
  71. package/dist/configuration-proposal-tool.d.ts.map +1 -0
  72. package/dist/configuration-proposal-tool.js +188 -0
  73. package/dist/configuration-proposal-tool.js.map +1 -0
  74. package/dist/configured-agent.d.ts +16 -0
  75. package/dist/configured-agent.d.ts.map +1 -1
  76. package/dist/configured-agent.js +165 -18
  77. package/dist/configured-agent.js.map +1 -1
  78. package/dist/consumer-contract.d.ts +3 -0
  79. package/dist/consumer-contract.d.ts.map +1 -1
  80. package/dist/consumer-contract.js +44 -1
  81. package/dist/consumer-contract.js.map +1 -1
  82. package/dist/continuation-command.d.ts +15 -0
  83. package/dist/continuation-command.d.ts.map +1 -0
  84. package/dist/continuation-command.js +170 -0
  85. package/dist/continuation-command.js.map +1 -0
  86. package/dist/continuation-config.d.ts +25 -0
  87. package/dist/continuation-config.d.ts.map +1 -0
  88. package/dist/continuation-config.js +236 -0
  89. package/dist/continuation-config.js.map +1 -0
  90. package/dist/continuation-service.d.ts +99 -0
  91. package/dist/continuation-service.d.ts.map +1 -0
  92. package/dist/continuation-service.js +1313 -0
  93. package/dist/continuation-service.js.map +1 -0
  94. package/dist/continuation-store.d.ts +104 -0
  95. package/dist/continuation-store.d.ts.map +1 -0
  96. package/dist/continuation-store.js +688 -0
  97. package/dist/continuation-store.js.map +1 -0
  98. package/dist/continuations.d.ts +167 -0
  99. package/dist/continuations.d.ts.map +1 -0
  100. package/dist/continuations.js +71 -0
  101. package/dist/continuations.js.map +1 -0
  102. package/dist/doctor.d.ts +29 -5
  103. package/dist/doctor.d.ts.map +1 -1
  104. package/dist/doctor.js +1611 -116
  105. package/dist/doctor.js.map +1 -1
  106. package/dist/first-run-managed-memory.d.ts +39 -0
  107. package/dist/first-run-managed-memory.d.ts.map +1 -0
  108. package/dist/first-run-managed-memory.js +584 -0
  109. package/dist/first-run-managed-memory.js.map +1 -0
  110. package/dist/first-run-readiness.d.ts +111 -0
  111. package/dist/first-run-readiness.d.ts.map +1 -0
  112. package/dist/first-run-readiness.js +728 -0
  113. package/dist/first-run-readiness.js.map +1 -0
  114. package/dist/index.d.ts +17 -3
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.js +8 -1
  117. package/dist/index.js.map +1 -1
  118. package/dist/init.d.ts +95 -3
  119. package/dist/init.d.ts.map +1 -1
  120. package/dist/init.js +1218 -24
  121. package/dist/init.js.map +1 -1
  122. package/dist/interaction-bridge.d.ts +25 -1
  123. package/dist/interaction-bridge.d.ts.map +1 -1
  124. package/dist/interaction-bridge.js +281 -19
  125. package/dist/interaction-bridge.js.map +1 -1
  126. package/dist/launchd.d.ts +16 -6
  127. package/dist/launchd.d.ts.map +1 -1
  128. package/dist/launchd.js +30 -15
  129. package/dist/launchd.js.map +1 -1
  130. package/dist/local-configuration.d.ts +99 -0
  131. package/dist/local-configuration.d.ts.map +1 -0
  132. package/dist/local-configuration.js +1299 -0
  133. package/dist/local-configuration.js.map +1 -0
  134. package/dist/managed-runtime-packages.d.ts +9 -0
  135. package/dist/managed-runtime-packages.d.ts.map +1 -0
  136. package/dist/managed-runtime-packages.js +56 -0
  137. package/dist/managed-runtime-packages.js.map +1 -0
  138. package/dist/memory-command.d.ts +4 -0
  139. package/dist/memory-command.d.ts.map +1 -1
  140. package/dist/memory-command.js +751 -27
  141. package/dist/memory-command.js.map +1 -1
  142. package/dist/memory-embedding-service.d.ts +33 -0
  143. package/dist/memory-embedding-service.d.ts.map +1 -0
  144. package/dist/memory-embedding-service.js +207 -0
  145. package/dist/memory-embedding-service.js.map +1 -0
  146. package/dist/memory-recall.d.ts +43 -14
  147. package/dist/memory-recall.d.ts.map +1 -1
  148. package/dist/memory-recall.js +103 -33
  149. package/dist/memory-recall.js.map +1 -1
  150. package/dist/memory-retrieval.d.ts +66 -0
  151. package/dist/memory-retrieval.d.ts.map +1 -0
  152. package/dist/memory-retrieval.js +332 -0
  153. package/dist/memory-retrieval.js.map +1 -0
  154. package/dist/modules/base.d.ts +6 -5
  155. package/dist/modules/base.d.ts.map +1 -1
  156. package/dist/modules/base.js +11 -7
  157. package/dist/modules/base.js.map +1 -1
  158. package/dist/modules/catalog.d.ts.map +1 -1
  159. package/dist/modules/catalog.js +141 -25
  160. package/dist/modules/catalog.js.map +1 -1
  161. package/dist/modules/index.d.ts +2 -2
  162. package/dist/modules/index.d.ts.map +1 -1
  163. package/dist/modules/index.js +1 -1
  164. package/dist/modules/index.js.map +1 -1
  165. package/dist/modules/known-tools.d.ts +3 -0
  166. package/dist/modules/known-tools.d.ts.map +1 -1
  167. package/dist/modules/known-tools.js +11 -1
  168. package/dist/modules/known-tools.js.map +1 -1
  169. package/dist/modules/types.d.ts +20 -6
  170. package/dist/modules/types.d.ts.map +1 -1
  171. package/dist/modules/types.js.map +1 -1
  172. package/dist/notify-runtime.d.ts +26 -0
  173. package/dist/notify-runtime.d.ts.map +1 -0
  174. package/dist/notify-runtime.js +27 -0
  175. package/dist/notify-runtime.js.map +1 -0
  176. package/dist/notify-tool.d.ts +51 -0
  177. package/dist/notify-tool.d.ts.map +1 -0
  178. package/dist/notify-tool.js +182 -0
  179. package/dist/notify-tool.js.map +1 -0
  180. package/dist/package-version.d.ts +3 -0
  181. package/dist/package-version.d.ts.map +1 -0
  182. package/dist/package-version.js +14 -0
  183. package/dist/package-version.js.map +1 -0
  184. package/dist/pi-auth-store-inspection.d.ts +21 -0
  185. package/dist/pi-auth-store-inspection.d.ts.map +1 -0
  186. package/dist/pi-auth-store-inspection.js +120 -0
  187. package/dist/pi-auth-store-inspection.js.map +1 -0
  188. package/dist/pi-oauth-login-main.d.ts +3 -0
  189. package/dist/pi-oauth-login-main.d.ts.map +1 -0
  190. package/dist/pi-oauth-login-main.js +14 -0
  191. package/dist/pi-oauth-login-main.js.map +1 -0
  192. package/dist/pi-oauth-login.d.ts +22 -0
  193. package/dist/pi-oauth-login.d.ts.map +1 -0
  194. package/dist/pi-oauth-login.js +79 -0
  195. package/dist/pi-oauth-login.js.map +1 -0
  196. package/dist/proactive-notify.d.ts +2 -0
  197. package/dist/proactive-notify.d.ts.map +1 -1
  198. package/dist/proactive-notify.js +1 -0
  199. package/dist/proactive-notify.js.map +1 -1
  200. package/dist/process-incarnation.d.ts +23 -0
  201. package/dist/process-incarnation.d.ts.map +1 -0
  202. package/dist/process-incarnation.js +208 -0
  203. package/dist/process-incarnation.js.map +1 -0
  204. package/dist/project-skills.d.ts +40 -0
  205. package/dist/project-skills.d.ts.map +1 -0
  206. package/dist/project-skills.js +573 -0
  207. package/dist/project-skills.js.map +1 -0
  208. package/dist/provider-setup.d.ts +117 -2
  209. package/dist/provider-setup.d.ts.map +1 -1
  210. package/dist/provider-setup.js +1505 -49
  211. package/dist/provider-setup.js.map +1 -1
  212. package/dist/readiness-probe-worker.d.ts +12 -0
  213. package/dist/readiness-probe-worker.d.ts.map +1 -0
  214. package/dist/readiness-probe-worker.js +276 -0
  215. package/dist/readiness-probe-worker.js.map +1 -0
  216. package/dist/readiness-probe.d.ts +100 -0
  217. package/dist/readiness-probe.d.ts.map +1 -0
  218. package/dist/readiness-probe.js +780 -0
  219. package/dist/readiness-probe.js.map +1 -0
  220. package/dist/recipes/base.d.ts +15 -0
  221. package/dist/recipes/base.d.ts.map +1 -0
  222. package/dist/recipes/base.js +51 -0
  223. package/dist/recipes/base.js.map +1 -0
  224. package/dist/recipes/catalog.d.ts +4 -0
  225. package/dist/recipes/catalog.d.ts.map +1 -0
  226. package/dist/recipes/catalog.js +525 -0
  227. package/dist/recipes/catalog.js.map +1 -0
  228. package/dist/recipes/index.d.ts +11 -0
  229. package/dist/recipes/index.d.ts.map +1 -0
  230. package/dist/recipes/index.js +14 -0
  231. package/dist/recipes/index.js.map +1 -0
  232. package/dist/recipes/types.d.ts +70 -0
  233. package/dist/recipes/types.d.ts.map +1 -0
  234. package/dist/recipes/types.js +15 -0
  235. package/dist/recipes/types.js.map +1 -0
  236. package/dist/request-model-override.d.ts +43 -1
  237. package/dist/request-model-override.d.ts.map +1 -1
  238. package/dist/request-model-override.js +178 -19
  239. package/dist/request-model-override.js.map +1 -1
  240. package/dist/run-history.d.ts +32 -0
  241. package/dist/run-history.d.ts.map +1 -0
  242. package/dist/run-history.js +859 -0
  243. package/dist/run-history.js.map +1 -0
  244. package/dist/runs-health.d.ts.map +1 -1
  245. package/dist/runs-health.js +12 -4
  246. package/dist/runs-health.js.map +1 -1
  247. package/dist/runtime-option-extensions.d.ts +14 -0
  248. package/dist/runtime-option-extensions.d.ts.map +1 -0
  249. package/dist/runtime-option-extensions.js +98 -0
  250. package/dist/runtime-option-extensions.js.map +1 -0
  251. package/dist/runtime-routes.d.ts +9 -0
  252. package/dist/runtime-routes.d.ts.map +1 -0
  253. package/dist/runtime-routes.js +13 -0
  254. package/dist/runtime-routes.js.map +1 -0
  255. package/dist/sandbox-manager.d.ts +86 -0
  256. package/dist/sandbox-manager.d.ts.map +1 -0
  257. package/dist/sandbox-manager.js +1402 -0
  258. package/dist/sandbox-manager.js.map +1 -0
  259. package/dist/setup.d.ts +29 -0
  260. package/dist/setup.d.ts.map +1 -0
  261. package/dist/setup.js +97 -0
  262. package/dist/setup.js.map +1 -0
  263. package/dist/supermemory-plugin.d.ts +56 -0
  264. package/dist/supermemory-plugin.d.ts.map +1 -0
  265. package/dist/supermemory-plugin.js +142 -0
  266. package/dist/supermemory-plugin.js.map +1 -0
  267. package/dist/tui-command.d.ts +56 -0
  268. package/dist/tui-command.d.ts.map +1 -1
  269. package/dist/tui-command.js +305 -31
  270. package/dist/tui-command.js.map +1 -1
  271. package/dist/web-command.d.ts +8 -0
  272. package/dist/web-command.d.ts.map +1 -1
  273. package/dist/web-command.js +174 -17
  274. package/dist/web-command.js.map +1 -1
  275. package/dist/wizard/answers.d.ts +31 -4
  276. package/dist/wizard/answers.d.ts.map +1 -1
  277. package/dist/wizard/answers.js +141 -29
  278. package/dist/wizard/answers.js.map +1 -1
  279. package/dist/wizard/from-flags.d.ts +7 -0
  280. package/dist/wizard/from-flags.d.ts.map +1 -1
  281. package/dist/wizard/from-flags.js +36 -2
  282. package/dist/wizard/from-flags.js.map +1 -1
  283. package/dist/wizard/index.d.ts +4 -4
  284. package/dist/wizard/index.d.ts.map +1 -1
  285. package/dist/wizard/index.js +2 -2
  286. package/dist/wizard/index.js.map +1 -1
  287. package/dist/wizard/model-discovery.d.ts +33 -2
  288. package/dist/wizard/model-discovery.d.ts.map +1 -1
  289. package/dist/wizard/model-discovery.js +826 -108
  290. package/dist/wizard/model-discovery.js.map +1 -1
  291. package/dist/wizard/presets.d.ts +1 -1
  292. package/dist/wizard/presets.d.ts.map +1 -1
  293. package/dist/wizard/presets.js +7 -12
  294. package/dist/wizard/presets.js.map +1 -1
  295. package/dist/wizard/prompts.d.ts +56 -9
  296. package/dist/wizard/prompts.d.ts.map +1 -1
  297. package/dist/wizard/prompts.js +172 -20
  298. package/dist/wizard/prompts.js.map +1 -1
  299. package/dist/wizard/run.d.ts +59 -3
  300. package/dist/wizard/run.d.ts.map +1 -1
  301. package/dist/wizard/run.js +1290 -191
  302. package/dist/wizard/run.js.map +1 -1
  303. package/package.json +21 -16
  304. package/resources/srt/package-lock.json +66 -0
  305. package/resources/srt/package.json +9 -0
  306. package/schema/mono-agent.config.schema.json +587 -20
  307. package/skills/mono-agent-composer/SKILL.md +6 -6
  308. package/skills/mono-agent-composer/references/config-blueprint.md +11 -10
  309. package/skills/mono-agent-composer/references/discovery-questions.md +33 -18
  310. package/skills/mono-agent-composer/references/feature-coverage.md +14 -12
  311. package/skills/mono-agent-composer/references/package-map.md +2 -2
  312. package/skills/mono-agent-composer/references/playbooks.md +8 -7
  313. package/skills/mono-agent-composer/references/validation.md +3 -3
@@ -0,0 +1,15 @@
1
+ /** Resolve declared input defaults, then layer CLI overrides on top. */
2
+ export function resolveRecipeInputs(recipe, overrides = {}) {
3
+ const values = {};
4
+ for (const input of recipe.inputs) {
5
+ values[input.id] = overrides[input.id] ?? input.default;
6
+ }
7
+ // Preserve overrides that don't correspond to a declared input (forward-compat).
8
+ for (const [key, value] of Object.entries(overrides)) {
9
+ if (!(key in values)) {
10
+ values[key] = value;
11
+ }
12
+ }
13
+ return values;
14
+ }
15
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/recipes/types.ts"],"names":[],"mappings":"AA0EA,wEAAwE;AACxE,MAAM,UAAU,mBAAmB,CACjC,MAAmB,EACnB,YAA+B,EAAE;IAEjC,MAAM,MAAM,GAAuC,EAAE,CAAC;IACtD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC;IAC1D,CAAC;IACD,iFAAiF;IACjF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { LocalProviderDefinition, LocalProviderRuntimeOptions, RuntimeModelReference } from "@mono-agent/runtime-adapter";
1
+ import type { LocalProviderDefinition, LocalProviderRuntimeOptions, RuntimeModelReference, SandboxPolicy } from "@mono-agent/runtime-adapter";
2
2
  /**
3
3
  * Per-request runtime-options extension that applies a per-turn model/effort
4
4
  * override carried on webhook (`metadata.webhook`), cron (`metadata.cron`), or
@@ -10,6 +10,15 @@ import type { LocalProviderDefinition, LocalProviderRuntimeOptions, RuntimeModel
10
10
  * harness default) rather than failing — a bad dynamic webhook `model` must not
11
11
  * 500 the request.
12
12
  *
13
+ * The extension ALSO scans every turn's message text for effort trigger
14
+ * phrases ("think"/"extra think"/"ultra think") and escalates the turn's
15
+ * effort — see `applyEffortKeywordEscalation`. This lives here rather than in
16
+ * a sibling extension because siblings compose later-wins in parallel: only
17
+ * this extension knows the metadata effort the keyword must be compared
18
+ * against (escalation-only), and it already owns the direct-OpenCode guard.
19
+ * Effort-only writes keep the shared session (the harness isolates on MODEL
20
+ * overrides only).
21
+ *
13
22
  * Execution mode is NOT set here: the harness derives it from the effective model
14
23
  * plus the host's configured executionMode (keeping a compatible host mode, e.g.
15
24
  * claude in `cli`, and only falling back to the model default for an incompatible
@@ -35,9 +44,33 @@ import type { LocalProviderDefinition, LocalProviderRuntimeOptions, RuntimeModel
35
44
  */
36
45
  export interface RequestModelOverrideLogger {
37
46
  warn?(message: string, metadata?: Record<string, unknown>): void;
47
+ info?(message: string, metadata?: Record<string, unknown>): void;
38
48
  }
39
49
  export interface RequestModelOverrideOptions {
40
50
  readonly logger?: RequestModelOverrideLogger;
51
+ /** Host primary used to prevent unsafe direct-Codex ↔ non-Codex family changes. */
52
+ readonly baseModel?: RuntimeModelReference;
53
+ /** Host fallback chain retained behind a request-level primary override. */
54
+ readonly fallbackModels?: readonly RuntimeModelReference[];
55
+ /** Host effort inherited by model-only overrides unless the override supplies one. */
56
+ readonly baseEffort?: string;
57
+ /** Host hard turn cap inherited by request-level model overrides. */
58
+ readonly baseMaxTurns?: number;
59
+ /** Effective configured/auto-provisioned MCP sources inherited by the turn. */
60
+ readonly mcpSources?: readonly string[];
61
+ /** Whether progressive index disclosure would inject runtime skill metadata. */
62
+ readonly indexSkillsActive?: boolean;
63
+ /**
64
+ * Host mono-agent sandbox policy. Claude and direct OpenCode provider-owned
65
+ * tool loops do not consume this policy, so a request cannot dynamically
66
+ * switch to either runtime while a non-off policy is active.
67
+ */
68
+ readonly sandboxPolicy?: Pick<SandboxPolicy, "mode">;
69
+ /** Effective host tool policy used to reject direct OpenCode overrides it cannot enforce. */
70
+ readonly toolPolicy?: {
71
+ readonly allowedTools: readonly string[];
72
+ readonly disallowedTools: readonly string[];
73
+ };
41
74
  /**
42
75
  * Configured local providers (`config.providers?.local`). When an override
43
76
  * names a model one of these serves, the extension recomputes the provider
@@ -49,6 +82,7 @@ export interface RequestModelOverrideOptions {
49
82
  interface RequestModelOverrideInput {
50
83
  readonly request: {
51
84
  readonly metadata?: Record<string, unknown>;
85
+ readonly userMessage?: string;
52
86
  };
53
87
  }
54
88
  interface RequestModelOverrideResult {
@@ -63,5 +97,13 @@ interface RequestModelOverrideResult {
63
97
  readonly cleanup: () => Promise<void>;
64
98
  }
65
99
  export declare function createRequestModelOverrideRuntimeExtension(options?: RequestModelOverrideOptions): (input: RequestModelOverrideInput) => Promise<RequestModelOverrideResult>;
100
+ /**
101
+ * Whether the request-level override will actually switch this turn to direct
102
+ * OpenCode under the supplied host constraints. Adapter MCP injection uses the
103
+ * same decision as the model extension: a merely parseable OpenCode string is
104
+ * not enough, because a sandbox/tool/MCP/effort/turn-cap rejection must retain
105
+ * both the Pi model and its interaction tools.
106
+ */
107
+ export declare function requestModelOverrideTargetsDirectOpenCode(metadata: Record<string, unknown> | undefined, options?: RequestModelOverrideOptions): boolean;
66
108
  export {};
67
109
  //# sourceMappingURL=request-model-override.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-model-override.d.ts","sourceRoot":"","sources":["../src/request-model-override.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACtB,MAAM,6BAA6B,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAClE;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,0BAA0B,CAAC;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAC9D;AAED,UAAU,yBAAyB;IACjC,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CACnE;AAED,UAAU,0BAA0B;IAClC,QAAQ,CAAC,cAAc,EAAE;QACvB,KAAK,CAAC,EAAE,qBAAqB,CAAC;QAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;QAIhB,cAAc,CAAC,EAAE,2BAA2B,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;QACtE,WAAW,CAAC,EAAE,2BAA2B,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;QAChE,iBAAiB,CAAC,EAAE,2BAA2B,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC;QAC5E,iBAAiB,CAAC,EAAE,2BAA2B,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC;KAC7E,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAID,wBAAgB,0CAA0C,CACxD,OAAO,CAAC,EAAE,2BAA2B,GACpC,CAAC,KAAK,EAAE,yBAAyB,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAoC3E"}
1
+ {"version":3,"file":"request-model-override.d.ts","sourceRoot":"","sources":["../src/request-model-override.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,aAAa,EACd,MAAM,6BAA6B,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAClE;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,0BAA0B,CAAC;IAC7C,mFAAmF;IACnF,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAC3C,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC3D,sFAAsF;IACtF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,gFAAgF;IAChF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACrD,6FAA6F;IAC7F,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpB,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;QACzC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;KAC7C,CAAC;IACF;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAC9D;AAED,UAAU,yBAAyB;IACjC,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH;AAED,UAAU,0BAA0B;IAClC,QAAQ,CAAC,cAAc,EAAE;QACvB,KAAK,CAAC,EAAE,qBAAqB,CAAC;QAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;QAIhB,cAAc,CAAC,EAAE,2BAA2B,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;QACtE,WAAW,CAAC,EAAE,2BAA2B,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;QAChE,iBAAiB,CAAC,EAAE,2BAA2B,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC;QAC5E,iBAAiB,CAAC,EAAE,2BAA2B,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC;KAC7E,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAID,wBAAgB,0CAA0C,CACxD,OAAO,CAAC,EAAE,2BAA2B,GACpC,CAAC,KAAK,EAAE,yBAAyB,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAoD3E;AAiDD;;;;;;GAMG;AACH,wBAAgB,yCAAyC,CACvD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC7C,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAET"}
@@ -1,31 +1,35 @@
1
- import { EFFORT_LEVELS } from "@mono-agent/config";
1
+ import { detectEffortKeyword, EFFORT_LEVELS, effortRank } from "@mono-agent/config";
2
2
  import { parseMonoRuntimeModelReference, runtimeOptionsForLocalProvider } from "@mono-agent/runtime-adapter";
3
3
  const EFFORT_SET = new Set(EFFORT_LEVELS);
4
4
  export function createRequestModelOverrideRuntimeExtension(options) {
5
5
  const logger = options?.logger;
6
6
  const localProviders = options?.localProviders;
7
+ const baseModel = options?.baseModel;
8
+ const fallbackModels = options?.fallbackModels ?? [];
7
9
  return async (input) => {
8
- const { model: rawModel, effort: rawEffort } = readOverride(input.request.metadata);
10
+ const { rawModel, rawEffort, model } = resolveAcceptedModelOverride(input.request.metadata, options, logger);
9
11
  const runtimeOptions = {};
10
- if (rawModel !== undefined) {
11
- let parsed;
12
- try {
13
- parsed = parseMonoRuntimeModelReference(rawModel);
14
- }
15
- catch (error) {
16
- logger?.warn?.("Ignoring invalid per-request model override.", {
17
- model: rawModel,
18
- reason: error instanceof Error ? error.message : String(error),
19
- });
20
- }
21
- if (parsed !== undefined) {
22
- runtimeOptions.model = parsed;
23
- applyLocalProviderBlock(runtimeOptions, parsed, rawModel, localProviders, logger);
24
- }
12
+ const effectiveModelForEffort = model ?? baseModel;
13
+ // Shared by the metadata effort override AND keyword escalation below: any
14
+ // direct OpenCode model in the resulting chain means no run-level effort.
15
+ const directOpenCodeModels = [effectiveModelForEffort, ...fallbackModels]
16
+ .filter((entry) => entry?.sdk === "opencode");
17
+ if (model !== undefined && rawModel !== undefined) {
18
+ runtimeOptions.model = model;
19
+ applyLocalProviderBlock(runtimeOptions, model, rawModel, localProviders, logger);
25
20
  }
26
21
  if (rawEffort !== undefined) {
27
22
  if (EFFORT_SET.has(rawEffort)) {
28
- runtimeOptions.effort = rawEffort;
23
+ if (directOpenCodeModels.length > 0) {
24
+ logger?.warn?.("Ignoring per-request effort override for direct OpenCode anywhere in the resulting model chain.", {
25
+ effort: rawEffort,
26
+ reason: "The direct OpenCode SDK does not expose runtime effort control.",
27
+ directOpenCodeModels: directOpenCodeModels.map(runtimeModelReferenceLabel),
28
+ });
29
+ }
30
+ else {
31
+ runtimeOptions.effort = rawEffort;
32
+ }
29
33
  }
30
34
  else {
31
35
  logger?.warn?.("Ignoring invalid per-request effort override.", {
@@ -34,9 +38,164 @@ export function createRequestModelOverrideRuntimeExtension(options) {
34
38
  });
35
39
  }
36
40
  }
41
+ applyEffortKeywordEscalation(runtimeOptions, input.request.userMessage, options?.baseEffort, directOpenCodeModels, logger);
37
42
  return { runtimeOptions, cleanup: async () => { } };
38
43
  };
39
44
  }
45
+ /**
46
+ * Always-on background escalation: a trigger phrase in the turn's message text
47
+ * ("think" → high, "extra think" → xhigh, "ultra think" → max) RAISES this
48
+ * turn's effort, never lowers it. The baseline is the effort the turn would
49
+ * otherwise run at — an accepted metadata override, else the host default — so
50
+ * a webhook `effort:"max"` survives a bare "think" and an equal-or-lower
51
+ * keyword writes nothing (no spurious `run_config.overridden`). Direct
52
+ * OpenCode anywhere in the effective chain skips escalation (same reason as
53
+ * the metadata effort guard above: the SDK has no runtime effort control), and
54
+ * the warn fires only when the keyword would actually have escalated. The
55
+ * message text itself is never mutated — trigger words reach the model.
56
+ */
57
+ function applyEffortKeywordEscalation(runtimeOptions, userMessage, baseEffort, directOpenCodeModels, logger) {
58
+ if (typeof userMessage !== "string" || userMessage.length === 0) {
59
+ return;
60
+ }
61
+ const match = detectEffortKeyword(userMessage);
62
+ if (match === undefined) {
63
+ return;
64
+ }
65
+ const resolvedEffort = runtimeOptions.effort ?? baseEffort;
66
+ if (effortRank(match.effort) <= effortRank(resolvedEffort)) {
67
+ return;
68
+ }
69
+ if (directOpenCodeModels.length > 0) {
70
+ logger?.warn?.("Skipping keyword effort escalation for direct OpenCode anywhere in the resulting model chain.", {
71
+ keyword: match.keyword,
72
+ effort: match.effort,
73
+ reason: "The direct OpenCode SDK does not expose runtime effort control.",
74
+ directOpenCodeModels: directOpenCodeModels.map(runtimeModelReferenceLabel),
75
+ });
76
+ return;
77
+ }
78
+ runtimeOptions.effort = match.effort;
79
+ logger?.info?.("Escalating per-turn effort from message keyword.", {
80
+ keyword: match.keyword,
81
+ from: resolvedEffort ?? null,
82
+ to: match.effort,
83
+ });
84
+ }
85
+ /**
86
+ * Whether the request-level override will actually switch this turn to direct
87
+ * OpenCode under the supplied host constraints. Adapter MCP injection uses the
88
+ * same decision as the model extension: a merely parseable OpenCode string is
89
+ * not enough, because a sandbox/tool/MCP/effort/turn-cap rejection must retain
90
+ * both the Pi model and its interaction tools.
91
+ */
92
+ export function requestModelOverrideTargetsDirectOpenCode(metadata, options) {
93
+ return resolveAcceptedModelOverride(metadata, options, undefined).model?.sdk === "opencode";
94
+ }
95
+ function resolveAcceptedModelOverride(metadata, options, logger) {
96
+ const { model: rawModel, effort: rawEffort } = readOverride(metadata);
97
+ if (rawModel === undefined) {
98
+ return { ...(rawEffort === undefined ? {} : { rawEffort }) };
99
+ }
100
+ let parsed;
101
+ try {
102
+ parsed = parseMonoRuntimeModelReference(rawModel);
103
+ }
104
+ catch (error) {
105
+ logger?.warn?.("Ignoring invalid per-request model override.", {
106
+ model: rawModel,
107
+ reason: error instanceof Error ? error.message : String(error),
108
+ });
109
+ return { rawModel, ...(rawEffort === undefined ? {} : { rawEffort }) };
110
+ }
111
+ const baseModel = options?.baseModel;
112
+ const baseEffort = options?.baseEffort;
113
+ const baseMaxTurns = options?.baseMaxTurns;
114
+ const mcpSources = options?.mcpSources ?? [];
115
+ const sandboxPolicy = options?.sandboxPolicy;
116
+ const toolPolicy = options?.toolPolicy;
117
+ const sandboxBypassRuntime = monoSandboxBypassRuntime(parsed);
118
+ const directOpenCodeWouldReceiveEffort = parsed.sdk === "opencode"
119
+ && (baseEffort !== undefined || (rawEffort !== undefined && EFFORT_SET.has(rawEffort)));
120
+ const directOpenCodeWouldReceiveTurnCap = parsed.sdk === "opencode"
121
+ && Number.isFinite(Number(baseMaxTurns))
122
+ && Number(baseMaxTurns) > 0;
123
+ const directOpenCodeWouldReceiveMcp = parsed.sdk === "opencode" && mcpSources.length > 0;
124
+ const directOpenCodeWouldReceiveIndexSkills = parsed.sdk === "opencode" && options?.indexSkillsActive === true;
125
+ if (baseModel !== undefined && isDirectCodex(parsed) !== isDirectCodex(baseModel)) {
126
+ logger?.warn?.("Ignoring per-request model override across the direct-Codex runtime boundary.", {
127
+ model: rawModel,
128
+ baseModel: baseModel.reference ?? `${baseModel.sdk}:${baseModel.model}`,
129
+ reason: "Direct Codex and non-Codex runtimes use different tool and sandbox contracts.",
130
+ });
131
+ }
132
+ else if (sandboxBypassRuntime !== undefined && sandboxPolicy?.mode !== undefined && sandboxPolicy.mode !== "off") {
133
+ logger?.warn?.(`Ignoring per-request ${sandboxBypassRuntime} model override while the mono-agent sandbox is active.`, {
134
+ model: rawModel,
135
+ sandboxMode: sandboxPolicy.mode,
136
+ reason: `${sandboxBypassRuntime}'s provider-owned tool loop does not consume the mono-agent sandbox policy.`,
137
+ });
138
+ }
139
+ else if (parsed.sdk === "opencode" && toolPolicy !== undefined && !isExactAllowAllToolPolicy(toolPolicy)) {
140
+ logger?.warn?.("Ignoring per-request direct OpenCode model override under a restrictive tool policy.", {
141
+ model: rawModel,
142
+ reason: "Direct OpenCode does not consume mono-agent allowedTools/disallowedTools.",
143
+ });
144
+ }
145
+ else if (directOpenCodeWouldReceiveMcp) {
146
+ logger?.warn?.("Ignoring per-request direct OpenCode model override because MCP runtime options are unsupported.", {
147
+ model: rawModel,
148
+ mcpSources,
149
+ reason: "Direct OpenCode cannot safely receive configured or auto-provisioned MCP servers.",
150
+ });
151
+ }
152
+ else if (directOpenCodeWouldReceiveIndexSkills) {
153
+ logger?.warn?.("Ignoring per-request direct OpenCode model override because index skill disclosure is unsupported.", {
154
+ model: rawModel,
155
+ reason: "Direct OpenCode disables runtime/external skills; use full disclosure or a Pi runtime.",
156
+ });
157
+ }
158
+ else if (directOpenCodeWouldReceiveEffort) {
159
+ logger?.warn?.("Ignoring per-request direct OpenCode model override because runtime effort is unsupported.", {
160
+ model: rawModel,
161
+ ...(baseEffort === undefined ? {} : { baseEffort }),
162
+ ...(rawEffort === undefined || !EFFORT_SET.has(rawEffort) ? {} : { requestedEffort: rawEffort }),
163
+ });
164
+ }
165
+ else if (directOpenCodeWouldReceiveTurnCap) {
166
+ logger?.warn?.("Ignoring per-request direct OpenCode model override because runtime.maxTurns is unsupported.", {
167
+ model: rawModel,
168
+ baseMaxTurns,
169
+ reason: "Direct OpenCode does not expose an enforceable hard turn cap.",
170
+ });
171
+ }
172
+ else {
173
+ return {
174
+ rawModel,
175
+ ...(rawEffort === undefined ? {} : { rawEffort }),
176
+ model: parsed,
177
+ };
178
+ }
179
+ return { rawModel, ...(rawEffort === undefined ? {} : { rawEffort }) };
180
+ }
181
+ function isDirectCodex(model) {
182
+ return model.sdk === "codex";
183
+ }
184
+ function runtimeModelReferenceLabel(model) {
185
+ return model.reference ?? `${model.sdk}:${model.provider === undefined ? "" : `${model.provider}:`}${model.model}`;
186
+ }
187
+ function monoSandboxBypassRuntime(model) {
188
+ if (model.sdk === "claude")
189
+ return "Claude";
190
+ if (model.sdk === "opencode")
191
+ return "direct OpenCode";
192
+ return undefined;
193
+ }
194
+ function isExactAllowAllToolPolicy(policy) {
195
+ return policy.allowedTools.length === 1
196
+ && policy.allowedTools[0] === "*"
197
+ && policy.disallowedTools.length === 0;
198
+ }
40
199
  /**
41
200
  * OWN the endpoint block for a valid model override. For a model served by a
42
201
  * configured LOCAL provider, `runtimeOptionsForLocalProvider` yields the block and
@@ -69,7 +228,7 @@ function applyLocalProviderBlock(runtimeOptions, model, rawModel, localProviders
69
228
  * Read model/effort from webhook, cron, or TUI request metadata. Webhook takes
70
229
  * precedence, then cron, then an interactive TUI per-session override — a turn
71
230
  * is only ever one of the three. A turn carrying none of these blocks (e.g. an
72
- * ordinary chat turn) returns `{}` and the extension is a no-op.
231
+ * ordinary chat turn) returns `{}`, leaving only the keyword escalation scan.
73
232
  */
74
233
  function readOverride(metadata) {
75
234
  if (!isRecord(metadata)) {
@@ -1 +1 @@
1
- {"version":3,"file":"request-model-override.js","sourceRoot":"","sources":["../src/request-model-override.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-model-override.js","sourceRoot":"","sources":["../src/request-model-override.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { ToolPolicyInput } from "@mono-agent/agent-harness";
3
+ import type { RuntimeOptionsExtension } from "./runtime-option-extensions.js";
4
+ export declare const RUN_HISTORY_MCP_SERVER_NAME = "mono-agent-run-history";
5
+ export declare const RUN_HISTORY_TOOL_NAME = "RunHistory";
6
+ export interface RunHistoryBinding {
7
+ readonly artifactDir: string;
8
+ /** Exact, already-bucketed conversation id for the active request. */
9
+ readonly conversationId: string;
10
+ /** Run id for the active request. It is never listable or inspectable. */
11
+ readonly runId: string;
12
+ }
13
+ export interface RunHistoryRuntimeExtensionOptions {
14
+ readonly artifactDir: string;
15
+ /** Best-effort diagnostic when the loopback MCP endpoint cannot start. */
16
+ readonly onUnavailable?: (error: unknown) => void;
17
+ }
18
+ export interface RunHistoryRuntimeExtension {
19
+ readonly runtimeOptions: {
20
+ readonly mcpServers: Record<string, unknown>;
21
+ };
22
+ readonly cleanup: () => Promise<void>;
23
+ }
24
+ type RunHistoryToolPolicy = Pick<ToolPolicyInput, "allowedTools" | "disallowedTools">;
25
+ /** Resolve the canonical, legacy, MCP-prefixed, and server-wildcard policy spellings. */
26
+ export declare function isRunHistoryToolAllowed(policy: RunHistoryToolPolicy | undefined): boolean;
27
+ /** Build a read-only RunHistory server bound to one exact conversation bucket and active run. */
28
+ export declare function createRunHistoryServer(binding: RunHistoryBinding): McpServer;
29
+ /** Create a per-request loopback MCP endpoint bound to the harness's bucketed conversation id. */
30
+ export declare function createRunHistoryRuntimeExtension(options: RunHistoryRuntimeExtensionOptions): RuntimeOptionsExtension;
31
+ export {};
32
+ //# sourceMappingURL=run-history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-history.d.ts","sourceRoot":"","sources":["../src/run-history.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAWjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE9E,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AACpE,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAiDlD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,cAAc,EAAE;QACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC9C,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,KAAK,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,cAAc,GAAG,iBAAiB,CAAC,CAAC;AAEtF,yFAAyF;AACzF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,oBAAoB,GAAG,SAAS,GAAG,OAAO,CAOzF;AAED,iGAAiG;AACjG,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAc5E;AAED,kGAAkG;AAClG,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,iCAAiC,GACzC,uBAAuB,CA2EzB"}