@mono-agent/agent-app 0.11.2 → 0.11.4

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 (374) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +222 -26
  3. package/dist/adapter-send-tools-main.js +7 -1
  4. package/dist/adapter-send-tools-main.js.map +1 -1
  5. package/dist/adapter-send-tools.d.ts +19 -1
  6. package/dist/adapter-send-tools.d.ts.map +1 -1
  7. package/dist/adapter-send-tools.js +127 -13
  8. package/dist/adapter-send-tools.js.map +1 -1
  9. package/dist/app-config.d.ts.map +1 -1
  10. package/dist/app-config.js +15 -2
  11. package/dist/app-config.js.map +1 -1
  12. package/dist/app-controller-channels.d.ts +8 -0
  13. package/dist/app-controller-channels.d.ts.map +1 -0
  14. package/dist/app-controller-channels.js +207 -0
  15. package/dist/app-controller-channels.js.map +1 -0
  16. package/dist/app-controller-continuation.d.ts +26 -0
  17. package/dist/app-controller-continuation.d.ts.map +1 -0
  18. package/dist/app-controller-continuation.js +198 -0
  19. package/dist/app-controller-continuation.js.map +1 -0
  20. package/dist/app-controller-lifecycle.d.ts +6 -0
  21. package/dist/app-controller-lifecycle.d.ts.map +1 -0
  22. package/dist/app-controller-lifecycle.js +81 -0
  23. package/dist/app-controller-lifecycle.js.map +1 -0
  24. package/dist/app-controller-maintenance.d.ts +13 -0
  25. package/dist/app-controller-maintenance.d.ts.map +1 -0
  26. package/dist/app-controller-maintenance.js +180 -0
  27. package/dist/app-controller-maintenance.js.map +1 -0
  28. package/dist/app-controller-memory-health.d.ts +12 -0
  29. package/dist/app-controller-memory-health.d.ts.map +1 -0
  30. package/dist/app-controller-memory-health.js +160 -0
  31. package/dist/app-controller-memory-health.js.map +1 -0
  32. package/dist/app-controller-memory.d.ts +9 -0
  33. package/dist/app-controller-memory.d.ts.map +1 -0
  34. package/dist/app-controller-memory.js +83 -0
  35. package/dist/app-controller-memory.js.map +1 -0
  36. package/dist/app-controller-responder.d.ts +20 -0
  37. package/dist/app-controller-responder.d.ts.map +1 -0
  38. package/dist/app-controller-responder.js +246 -0
  39. package/dist/app-controller-responder.js.map +1 -0
  40. package/dist/app-controller-traceability.d.ts +25 -0
  41. package/dist/app-controller-traceability.d.ts.map +1 -0
  42. package/dist/app-controller-traceability.js +418 -0
  43. package/dist/app-controller-traceability.js.map +1 -0
  44. package/dist/app-controller-utils.d.ts +38 -0
  45. package/dist/app-controller-utils.d.ts.map +1 -0
  46. package/dist/app-controller-utils.js +185 -0
  47. package/dist/app-controller-utils.js.map +1 -0
  48. package/dist/app-controller.d.ts +400 -0
  49. package/dist/app-controller.d.ts.map +1 -0
  50. package/dist/app-controller.js +336 -0
  51. package/dist/app-controller.js.map +1 -0
  52. package/dist/app.d.ts +7 -115
  53. package/dist/app.d.ts.map +1 -1
  54. package/dist/app.js +6 -1912
  55. package/dist/app.js.map +1 -1
  56. package/dist/artifact-retention.d.ts +4 -0
  57. package/dist/artifact-retention.d.ts.map +1 -1
  58. package/dist/artifact-retention.js +38 -0
  59. package/dist/artifact-retention.js.map +1 -1
  60. package/dist/backfill.d.ts +3 -1
  61. package/dist/backfill.d.ts.map +1 -1
  62. package/dist/backfill.js +5 -1
  63. package/dist/backfill.js.map +1 -1
  64. package/dist/background-runtime.d.ts +27 -0
  65. package/dist/background-runtime.d.ts.map +1 -1
  66. package/dist/background-runtime.js +383 -205
  67. package/dist/background-runtime.js.map +1 -1
  68. package/dist/background-worker-lease.d.ts.map +1 -1
  69. package/dist/background-worker-lease.js +41 -241
  70. package/dist/background-worker-lease.js.map +1 -1
  71. package/dist/background.d.ts +31 -9
  72. package/dist/background.d.ts.map +1 -1
  73. package/dist/background.js +543 -272
  74. package/dist/background.js.map +1 -1
  75. package/dist/channel-drivers/cron.d.ts +11 -0
  76. package/dist/channel-drivers/cron.d.ts.map +1 -0
  77. package/dist/channel-drivers/cron.js +168 -0
  78. package/dist/channel-drivers/cron.js.map +1 -0
  79. package/dist/channel-drivers/live.d.ts +11 -0
  80. package/dist/channel-drivers/live.d.ts.map +1 -0
  81. package/dist/channel-drivers/live.js +47 -0
  82. package/dist/channel-drivers/live.js.map +1 -0
  83. package/dist/channel-drivers/native-notify.d.ts +27 -0
  84. package/dist/channel-drivers/native-notify.d.ts.map +1 -0
  85. package/dist/channel-drivers/native-notify.js +94 -0
  86. package/dist/channel-drivers/native-notify.js.map +1 -0
  87. package/dist/channel-drivers/openai-api.d.ts +7 -0
  88. package/dist/channel-drivers/openai-api.d.ts.map +1 -0
  89. package/dist/channel-drivers/openai-api.js +63 -0
  90. package/dist/channel-drivers/openai-api.js.map +1 -0
  91. package/dist/channel-drivers/shared.d.ts +4 -0
  92. package/dist/channel-drivers/shared.d.ts.map +1 -0
  93. package/dist/channel-drivers/shared.js +5 -0
  94. package/dist/channel-drivers/shared.js.map +1 -0
  95. package/dist/channel-drivers/slack.d.ts +14 -0
  96. package/dist/channel-drivers/slack.d.ts.map +1 -0
  97. package/dist/channel-drivers/slack.js +227 -0
  98. package/dist/channel-drivers/slack.js.map +1 -0
  99. package/dist/channel-drivers/telegram.d.ts +11 -0
  100. package/dist/channel-drivers/telegram.d.ts.map +1 -0
  101. package/dist/channel-drivers/telegram.js +244 -0
  102. package/dist/channel-drivers/telegram.js.map +1 -0
  103. package/dist/channel-drivers/tui.d.ts +15 -0
  104. package/dist/channel-drivers/tui.d.ts.map +1 -0
  105. package/dist/channel-drivers/tui.js +108 -0
  106. package/dist/channel-drivers/tui.js.map +1 -0
  107. package/dist/channel-drivers/webhook.d.ts +7 -0
  108. package/dist/channel-drivers/webhook.d.ts.map +1 -0
  109. package/dist/channel-drivers/webhook.js +115 -0
  110. package/dist/channel-drivers/webhook.js.map +1 -0
  111. package/dist/channels.d.ts +21 -81
  112. package/dist/channels.d.ts.map +1 -1
  113. package/dist/channels.js +11 -1174
  114. package/dist/channels.js.map +1 -1
  115. package/dist/cli-args.d.ts +121 -0
  116. package/dist/cli-args.d.ts.map +1 -0
  117. package/dist/cli-args.js +532 -0
  118. package/dist/cli-args.js.map +1 -0
  119. package/dist/cli-background-command.d.ts +59 -0
  120. package/dist/cli-background-command.d.ts.map +1 -0
  121. package/dist/cli-background-command.js +475 -0
  122. package/dist/cli-background-command.js.map +1 -0
  123. package/dist/cli-cancellation.d.ts +6 -0
  124. package/dist/cli-cancellation.d.ts.map +1 -0
  125. package/dist/cli-cancellation.js +23 -0
  126. package/dist/cli-cancellation.js.map +1 -0
  127. package/dist/cli-commands.d.ts +12 -0
  128. package/dist/cli-commands.d.ts.map +1 -0
  129. package/dist/cli-commands.js +306 -0
  130. package/dist/cli-commands.js.map +1 -0
  131. package/dist/cli-help.d.ts +11 -0
  132. package/dist/cli-help.d.ts.map +1 -0
  133. package/dist/cli-help.js +262 -0
  134. package/dist/cli-help.js.map +1 -0
  135. package/dist/cli-init-command.d.ts +60 -0
  136. package/dist/cli-init-command.d.ts.map +1 -0
  137. package/dist/cli-init-command.js +1910 -0
  138. package/dist/cli-init-command.js.map +1 -0
  139. package/dist/cli-install-skill-command.d.ts +3 -0
  140. package/dist/cli-install-skill-command.d.ts.map +1 -0
  141. package/dist/cli-install-skill-command.js +51 -0
  142. package/dist/cli-install-skill-command.js.map +1 -0
  143. package/dist/cli-sandbox-command.d.ts +10 -0
  144. package/dist/cli-sandbox-command.d.ts.map +1 -0
  145. package/dist/cli-sandbox-command.js +100 -0
  146. package/dist/cli-sandbox-command.js.map +1 -0
  147. package/dist/cli-validate-config-command.d.ts +36 -0
  148. package/dist/cli-validate-config-command.d.ts.map +1 -0
  149. package/dist/cli-validate-config-command.js +317 -0
  150. package/dist/cli-validate-config-command.js.map +1 -0
  151. package/dist/cli.d.ts +6 -248
  152. package/dist/cli.d.ts.map +1 -1
  153. package/dist/cli.js +6 -3792
  154. package/dist/cli.js.map +1 -1
  155. package/dist/config-reference.d.ts +2 -1
  156. package/dist/config-reference.d.ts.map +1 -1
  157. package/dist/config-reference.js +34 -8
  158. package/dist/config-reference.js.map +1 -1
  159. package/dist/configured-agent.d.ts +23 -0
  160. package/dist/configured-agent.d.ts.map +1 -1
  161. package/dist/configured-agent.js +92 -13
  162. package/dist/configured-agent.js.map +1 -1
  163. package/dist/continuation-dispatch-worker.d.ts +21 -0
  164. package/dist/continuation-dispatch-worker.d.ts.map +1 -0
  165. package/dist/continuation-dispatch-worker.js +425 -0
  166. package/dist/continuation-dispatch-worker.js.map +1 -0
  167. package/dist/continuation-http-routes.d.ts +15 -0
  168. package/dist/continuation-http-routes.d.ts.map +1 -0
  169. package/dist/continuation-http-routes.js +265 -0
  170. package/dist/continuation-http-routes.js.map +1 -0
  171. package/dist/continuation-operator-api.d.ts +18 -0
  172. package/dist/continuation-operator-api.d.ts.map +1 -0
  173. package/dist/continuation-operator-api.js +164 -0
  174. package/dist/continuation-operator-api.js.map +1 -0
  175. package/dist/continuation-origin-store.d.ts +19 -0
  176. package/dist/continuation-origin-store.d.ts.map +1 -0
  177. package/dist/continuation-origin-store.js +273 -0
  178. package/dist/continuation-origin-store.js.map +1 -0
  179. package/dist/continuation-service-errors.d.ts +18 -0
  180. package/dist/continuation-service-errors.d.ts.map +1 -0
  181. package/dist/continuation-service-errors.js +35 -0
  182. package/dist/continuation-service-errors.js.map +1 -0
  183. package/dist/continuation-service-helpers.d.ts +39 -0
  184. package/dist/continuation-service-helpers.d.ts.map +1 -0
  185. package/dist/continuation-service-helpers.js +308 -0
  186. package/dist/continuation-service-helpers.js.map +1 -0
  187. package/dist/continuation-service-origin.d.ts +55 -0
  188. package/dist/continuation-service-origin.d.ts.map +1 -0
  189. package/dist/continuation-service-origin.js +325 -0
  190. package/dist/continuation-service-origin.js.map +1 -0
  191. package/dist/continuation-service-types.d.ts +110 -0
  192. package/dist/continuation-service-types.d.ts.map +1 -0
  193. package/dist/continuation-service-types.js +11 -0
  194. package/dist/continuation-service-types.js.map +1 -0
  195. package/dist/continuation-service.d.ts +4 -97
  196. package/dist/continuation-service.d.ts.map +1 -1
  197. package/dist/continuation-service.js +9 -1525
  198. package/dist/continuation-service.js.map +1 -1
  199. package/dist/continuation-store-fs.d.ts +15 -0
  200. package/dist/continuation-store-fs.d.ts.map +1 -0
  201. package/dist/continuation-store-fs.js +247 -0
  202. package/dist/continuation-store-fs.js.map +1 -0
  203. package/dist/continuation-store-policy.d.ts +21 -0
  204. package/dist/continuation-store-policy.d.ts.map +1 -0
  205. package/dist/continuation-store-policy.js +278 -0
  206. package/dist/continuation-store-policy.js.map +1 -0
  207. package/dist/continuation-store-records.d.ts +9 -0
  208. package/dist/continuation-store-records.d.ts.map +1 -0
  209. package/dist/continuation-store-records.js +221 -0
  210. package/dist/continuation-store-records.js.map +1 -0
  211. package/dist/continuation-store-types.d.ts +173 -0
  212. package/dist/continuation-store-types.d.ts.map +1 -0
  213. package/dist/continuation-store-types.js +26 -0
  214. package/dist/continuation-store-types.js.map +1 -0
  215. package/dist/continuation-store.d.ts +4 -138
  216. package/dist/continuation-store.d.ts.map +1 -1
  217. package/dist/continuation-store.js +145 -1049
  218. package/dist/continuation-store.js.map +1 -1
  219. package/dist/doctor.d.ts +10 -5
  220. package/dist/doctor.d.ts.map +1 -1
  221. package/dist/doctor.js +629 -58
  222. package/dist/doctor.js.map +1 -1
  223. package/dist/init.d.ts +2 -0
  224. package/dist/init.d.ts.map +1 -1
  225. package/dist/init.js +92 -239
  226. package/dist/init.js.map +1 -1
  227. package/dist/interaction-bridge.d.ts +19 -0
  228. package/dist/interaction-bridge.d.ts.map +1 -1
  229. package/dist/interaction-bridge.js +130 -0
  230. package/dist/interaction-bridge.js.map +1 -1
  231. package/dist/launchd-logs.d.ts +91 -0
  232. package/dist/launchd-logs.d.ts.map +1 -0
  233. package/dist/launchd-logs.js +1499 -0
  234. package/dist/launchd-logs.js.map +1 -0
  235. package/dist/launchd.d.ts +27 -0
  236. package/dist/launchd.d.ts.map +1 -1
  237. package/dist/launchd.js +89 -10
  238. package/dist/launchd.js.map +1 -1
  239. package/dist/memory-command.d.ts +2 -0
  240. package/dist/memory-command.d.ts.map +1 -1
  241. package/dist/memory-command.js +161 -48
  242. package/dist/memory-command.js.map +1 -1
  243. package/dist/memory-recall-settings.d.ts +64 -0
  244. package/dist/memory-recall-settings.d.ts.map +1 -0
  245. package/dist/memory-recall-settings.js +51 -0
  246. package/dist/memory-recall-settings.js.map +1 -0
  247. package/dist/memory-recall.d.ts +7 -95
  248. package/dist/memory-recall.d.ts.map +1 -1
  249. package/dist/memory-recall.js +8 -143
  250. package/dist/memory-recall.js.map +1 -1
  251. package/dist/memory-rituals.d.ts +3 -3
  252. package/dist/memory-rituals.d.ts.map +1 -1
  253. package/dist/memory-rituals.js +16 -111
  254. package/dist/memory-rituals.js.map +1 -1
  255. package/dist/modules/catalog.js +2 -2
  256. package/dist/modules/catalog.js.map +1 -1
  257. package/dist/modules/known-tools.d.ts +8 -6
  258. package/dist/modules/known-tools.d.ts.map +1 -1
  259. package/dist/modules/known-tools.js +8 -6
  260. package/dist/modules/known-tools.js.map +1 -1
  261. package/dist/notify-destinations.d.ts +5 -0
  262. package/dist/notify-destinations.d.ts.map +1 -1
  263. package/dist/notify-destinations.js +7 -1
  264. package/dist/notify-destinations.js.map +1 -1
  265. package/dist/owner-private-lock.d.ts +95 -0
  266. package/dist/owner-private-lock.d.ts.map +1 -0
  267. package/dist/owner-private-lock.js +566 -0
  268. package/dist/owner-private-lock.js.map +1 -0
  269. package/dist/pi-oauth-login.d.ts +2 -0
  270. package/dist/pi-oauth-login.d.ts.map +1 -1
  271. package/dist/pi-oauth-login.js +39 -5
  272. package/dist/pi-oauth-login.js.map +1 -1
  273. package/dist/posted-message-index.d.ts +35 -16
  274. package/dist/posted-message-index.d.ts.map +1 -1
  275. package/dist/posted-message-index.js +1068 -52
  276. package/dist/posted-message-index.js.map +1 -1
  277. package/dist/posted-reply-history.d.ts +17 -0
  278. package/dist/posted-reply-history.d.ts.map +1 -0
  279. package/dist/posted-reply-history.js +169 -0
  280. package/dist/posted-reply-history.js.map +1 -0
  281. package/dist/proactive-notify.d.ts.map +1 -1
  282. package/dist/proactive-notify.js +6 -4
  283. package/dist/proactive-notify.js.map +1 -1
  284. package/dist/project-skills.d.ts +4 -0
  285. package/dist/project-skills.d.ts.map +1 -1
  286. package/dist/project-skills.js +99 -130
  287. package/dist/project-skills.js.map +1 -1
  288. package/dist/provider-setup.d.ts +0 -1
  289. package/dist/provider-setup.d.ts.map +1 -1
  290. package/dist/provider-setup.js +0 -3
  291. package/dist/provider-setup.js.map +1 -1
  292. package/dist/readiness-probe-worker.d.ts +61 -1
  293. package/dist/readiness-probe-worker.d.ts.map +1 -1
  294. package/dist/readiness-probe-worker.js +54 -58
  295. package/dist/readiness-probe-worker.js.map +1 -1
  296. package/dist/readiness-probe.d.ts +6 -9
  297. package/dist/readiness-probe.d.ts.map +1 -1
  298. package/dist/readiness-probe.js +30 -56
  299. package/dist/readiness-probe.js.map +1 -1
  300. package/dist/redact-secrets.d.ts +15 -0
  301. package/dist/redact-secrets.d.ts.map +1 -0
  302. package/dist/redact-secrets.js +65 -0
  303. package/dist/redact-secrets.js.map +1 -0
  304. package/dist/run-history.js +34 -24
  305. package/dist/run-history.js.map +1 -1
  306. package/dist/runtime-provenance.d.ts +8 -0
  307. package/dist/runtime-provenance.d.ts.map +1 -0
  308. package/dist/runtime-provenance.js +225 -0
  309. package/dist/runtime-provenance.js.map +1 -0
  310. package/dist/sandbox-manager.d.ts +4 -1
  311. package/dist/sandbox-manager.d.ts.map +1 -1
  312. package/dist/sandbox-manager.js +114 -273
  313. package/dist/sandbox-manager.js.map +1 -1
  314. package/dist/secure-file-replace.d.ts +49 -0
  315. package/dist/secure-file-replace.d.ts.map +1 -0
  316. package/dist/secure-file-replace.js +270 -0
  317. package/dist/secure-file-replace.js.map +1 -0
  318. package/dist/seen-conversations.d.ts +32 -5
  319. package/dist/seen-conversations.d.ts.map +1 -1
  320. package/dist/seen-conversations.js +145 -15
  321. package/dist/seen-conversations.js.map +1 -1
  322. package/dist/sessions.d.ts +20 -0
  323. package/dist/sessions.d.ts.map +1 -1
  324. package/dist/sessions.js +41 -6
  325. package/dist/sessions.js.map +1 -1
  326. package/dist/wizard/index.d.ts +2 -2
  327. package/dist/wizard/index.d.ts.map +1 -1
  328. package/dist/wizard/index.js +1 -1
  329. package/dist/wizard/index.js.map +1 -1
  330. package/dist/wizard/presets.d.ts +2 -1
  331. package/dist/wizard/presets.d.ts.map +1 -1
  332. package/dist/wizard/presets.js +2 -1
  333. package/dist/wizard/presets.js.map +1 -1
  334. package/dist/wizard/run.d.ts +0 -26
  335. package/dist/wizard/run.d.ts.map +1 -1
  336. package/dist/wizard/run.js +0 -53
  337. package/dist/wizard/run.js.map +1 -1
  338. package/package.json +22 -17
  339. package/schema/mono-agent.config.schema.json +45 -10
  340. package/skills/mono-agent-composer/SKILL.md +3 -3
  341. package/skills/mono-agent-composer/references/config-blueprint.md +123 -29
  342. package/skills/mono-agent-composer/references/discovery-questions.md +10 -8
  343. package/skills/mono-agent-composer/references/feature-coverage.md +90 -76
  344. package/skills/mono-agent-composer/references/package-map.md +6 -4
  345. package/skills/mono-agent-composer/references/playbooks.md +48 -27
  346. package/skills/mono-agent-composer/references/validation.md +16 -3
  347. package/dist/notify-runtime.d.ts +0 -26
  348. package/dist/notify-runtime.d.ts.map +0 -1
  349. package/dist/notify-runtime.js +0 -27
  350. package/dist/notify-runtime.js.map +0 -1
  351. package/dist/notify-tool.d.ts +0 -51
  352. package/dist/notify-tool.d.ts.map +0 -1
  353. package/dist/notify-tool.js +0 -182
  354. package/dist/notify-tool.js.map +0 -1
  355. package/dist/recipes/base.d.ts +0 -15
  356. package/dist/recipes/base.d.ts.map +0 -1
  357. package/dist/recipes/base.js +0 -51
  358. package/dist/recipes/base.js.map +0 -1
  359. package/dist/recipes/catalog.d.ts +0 -4
  360. package/dist/recipes/catalog.d.ts.map +0 -1
  361. package/dist/recipes/catalog.js +0 -525
  362. package/dist/recipes/catalog.js.map +0 -1
  363. package/dist/recipes/index.d.ts +0 -11
  364. package/dist/recipes/index.d.ts.map +0 -1
  365. package/dist/recipes/index.js +0 -14
  366. package/dist/recipes/index.js.map +0 -1
  367. package/dist/recipes/types.d.ts +0 -70
  368. package/dist/recipes/types.d.ts.map +0 -1
  369. package/dist/recipes/types.js +0 -15
  370. package/dist/recipes/types.js.map +0 -1
  371. package/dist/setup.d.ts +0 -29
  372. package/dist/setup.d.ts.map +0 -1
  373. package/dist/setup.js +0 -97
  374. package/dist/setup.js.map +0 -1
@@ -0,0 +1,532 @@
1
+ import process from "node:process";
2
+ import { EFFORT_LEVELS, MAX_AGENT_NAME_LENGTH, } from "@mono-agent/config";
3
+ import { INTERNAL_LAUNCHD_LOG_MAINTENANCE_COMMAND } from "./launchd.js";
4
+ const PUBLIC_COMMANDS = ["init", "setup", "validate", "doctor", "auth", "sandbox", "config", "recipes", "presets", "start", "restart", "stop", "status", "logs", "tui", "web", "install-skill", "backfill", "audit-runs", "metrics", "memory", "continuations"];
5
+ const KNOWN_COMMANDS = [...PUBLIC_COMMANDS, INTERNAL_LAUNCHD_LOG_MAINTENANCE_COMMAND];
6
+ export function parseCliArgs(argv) {
7
+ const [command, ...rest] = argv;
8
+ if (command === undefined || command === "help" || command === "--help" || command === "-h") {
9
+ return { command: "help", positionals: [], force: false, foreground: false, follow: false, all: false, dryRun: false, includeMemory: false };
10
+ }
11
+ if (command === "version" || command === "--version" || command === "-v") {
12
+ return { command: "version", positionals: [], force: false, foreground: false, follow: false, all: false, dryRun: false, includeMemory: false };
13
+ }
14
+ if (!KNOWN_COMMANDS.includes(command)) {
15
+ throw new Error(`Unknown command \`${command}\`. Expected ${PUBLIC_COMMANDS.join(", ")}.`);
16
+ }
17
+ // `doctor`/`setup`/`recipes` are aliases; normalize here so every downstream
18
+ // path (routing, env-file resolution, --consumer) applies unchanged. `doctor`
19
+ // → `validate`, `setup` → `init`, `recipes` → `presets`. The deprecated
20
+ // `recipes` branch is removed in v2.0.0; no sunset is set for the other two.
21
+ const cmd = (command === "doctor"
22
+ ? "validate"
23
+ : command === "setup"
24
+ ? "init"
25
+ : command === "recipes"
26
+ ? "presets"
27
+ : command);
28
+ if (cmd === INTERNAL_LAUNCHD_LOG_MAINTENANCE_COMMAND
29
+ && !(rest.length === 2
30
+ && rest[0] === "--config"
31
+ && rest[1] !== undefined
32
+ && !rest[1].startsWith("--"))) {
33
+ throw new Error("The internal launchd log maintenance command accepts only --config <path> and requires it.");
34
+ }
35
+ const isLogs = cmd === "logs";
36
+ let configPath;
37
+ let name;
38
+ let model;
39
+ let fallbackModels;
40
+ const fallbacks = [];
41
+ let canAssignFallbackEffort = false;
42
+ let routeSafety;
43
+ let effort;
44
+ let memory;
45
+ let preset;
46
+ let recipe;
47
+ let withChannels;
48
+ let yes = false;
49
+ let auth = false;
50
+ let piAuthPath;
51
+ let apiKeyStdin = false;
52
+ let codexAuthMode;
53
+ const positionals = [];
54
+ let envFile;
55
+ let expectedBackgroundSnapshot;
56
+ let target;
57
+ let force = false;
58
+ let foreground = false;
59
+ let follow = false;
60
+ let lines;
61
+ let run;
62
+ let all = false;
63
+ let since;
64
+ let until;
65
+ let dryRun = false;
66
+ let includeMemory = false;
67
+ let artifactDir;
68
+ let groupBy;
69
+ let consumerPath;
70
+ let agent;
71
+ let conversation;
72
+ let local = false;
73
+ let configure = false;
74
+ let project = false;
75
+ let check = false;
76
+ let update = false;
77
+ let staleAfterMs;
78
+ let json = false;
79
+ let strict = false;
80
+ let limit;
81
+ let cursor;
82
+ let idsFile;
83
+ let reason;
84
+ let planPath;
85
+ let backupPath;
86
+ let host;
87
+ let port;
88
+ let open;
89
+ let allowNonLoopback;
90
+ let showAuthUrl;
91
+ let maxRunsPerInstance;
92
+ for (let i = 0; i < rest.length; i += 1) {
93
+ const flag = rest[i];
94
+ if (flag !== "--fallback-effort")
95
+ canAssignFallbackEffort = false;
96
+ switch (flag) {
97
+ case "--config":
98
+ configPath = requireValue(rest, ++i, flag);
99
+ break;
100
+ case "--run":
101
+ run = requireValue(rest, ++i, flag);
102
+ break;
103
+ case "--all":
104
+ all = true;
105
+ break;
106
+ case "--since":
107
+ since = requireValue(rest, ++i, flag);
108
+ break;
109
+ case "--until":
110
+ until = requireValue(rest, ++i, flag);
111
+ break;
112
+ case "--dry-run":
113
+ dryRun = true;
114
+ break;
115
+ case "--include-memory":
116
+ includeMemory = true;
117
+ break;
118
+ case "--artifact-dir":
119
+ artifactDir = requireValue(rest, ++i, flag);
120
+ break;
121
+ case "--artifacts":
122
+ artifactDir = requireValue(rest, ++i, flag);
123
+ break;
124
+ case "--by": {
125
+ const raw = requireValue(rest, ++i, flag);
126
+ if (raw !== "model" && raw !== "channel" && raw !== "failureKind") {
127
+ throw new Error("--by must be model, channel, or failureKind.");
128
+ }
129
+ groupBy = raw;
130
+ break;
131
+ }
132
+ case "--consumer":
133
+ consumerPath = requireValue(rest, ++i, flag);
134
+ break;
135
+ case "--agent":
136
+ agent = requireValue(rest, ++i, flag);
137
+ break;
138
+ case "--conversation":
139
+ conversation = requireValue(rest, ++i, flag);
140
+ break;
141
+ case "--local":
142
+ local = true;
143
+ break;
144
+ case "--configure":
145
+ configure = true;
146
+ break;
147
+ case "--project":
148
+ project = true;
149
+ break;
150
+ case "--check":
151
+ check = true;
152
+ break;
153
+ case "--update":
154
+ update = true;
155
+ break;
156
+ case "--stale-after-ms": {
157
+ const raw = requireValue(rest, ++i, flag);
158
+ const parsed = Number(raw);
159
+ if (!Number.isInteger(parsed) || parsed < 1) {
160
+ throw new Error("--stale-after-ms must be a positive integer.");
161
+ }
162
+ staleAfterMs = parsed;
163
+ break;
164
+ }
165
+ case "--json":
166
+ json = true;
167
+ break;
168
+ case "--strict":
169
+ strict = true;
170
+ break;
171
+ case "--limit": {
172
+ const raw = requireValue(rest, ++i, flag);
173
+ const parsed = Number(raw);
174
+ const maximum = cmd === "continuations" ? 500 : 100;
175
+ if (!Number.isInteger(parsed) || parsed < 1 || parsed > maximum) {
176
+ throw new Error(`--limit must be an integer between 1 and ${String(maximum)}.`);
177
+ }
178
+ limit = parsed;
179
+ break;
180
+ }
181
+ case "--cursor":
182
+ cursor = requireValue(rest, ++i, flag).trim();
183
+ if (cursor.length === 0 || cursor.length > 512)
184
+ throw new Error("--cursor must be 1-512 characters.");
185
+ break;
186
+ case "--ids-file":
187
+ idsFile = requireValue(rest, ++i, flag);
188
+ break;
189
+ case "--reason":
190
+ reason = requireValue(rest, ++i, flag);
191
+ break;
192
+ case "--plan":
193
+ planPath = requireValue(rest, ++i, flag);
194
+ break;
195
+ case "--backup":
196
+ backupPath = requireValue(rest, ++i, flag);
197
+ break;
198
+ case "--host":
199
+ host = requireValue(rest, ++i, flag);
200
+ break;
201
+ case "--port": {
202
+ const raw = requireValue(rest, ++i, flag);
203
+ const parsed = Number(raw);
204
+ if (!Number.isInteger(parsed) || parsed < 0 || parsed > 65535) {
205
+ throw new Error("--port must be an integer between 0 and 65535.");
206
+ }
207
+ port = parsed;
208
+ break;
209
+ }
210
+ case "--no-open":
211
+ open = false;
212
+ break;
213
+ case "--allow-non-loopback":
214
+ allowNonLoopback = true;
215
+ break;
216
+ case "--show-auth-url":
217
+ showAuthUrl = true;
218
+ break;
219
+ case "--max-runs": {
220
+ const raw = requireValue(rest, ++i, flag);
221
+ const parsed = Number(raw);
222
+ if (!Number.isInteger(parsed) || parsed < 1) {
223
+ throw new Error("--max-runs must be a positive integer.");
224
+ }
225
+ maxRunsPerInstance = parsed;
226
+ break;
227
+ }
228
+ case "--model":
229
+ model = requireValue(rest, ++i, flag);
230
+ break;
231
+ case "--name":
232
+ name = requireValue(rest, ++i, flag).trim();
233
+ if (Array.from(name).length === 0
234
+ || Array.from(name).length > MAX_AGENT_NAME_LENGTH
235
+ || /[\u0000-\u001f\u007f]/u.test(name)) {
236
+ throw new Error(`--name must be 1-${MAX_AGENT_NAME_LENGTH} characters on one line.`);
237
+ }
238
+ break;
239
+ case "--fallback-models":
240
+ // Deprecated CLI spelling removed in v2.0.0. The similarly named JSON
241
+ // and environment compatibility inputs are separate and remain supported.
242
+ fallbackModels = requireValue(rest, ++i, flag)
243
+ .split(",")
244
+ .map((entry) => entry.trim())
245
+ .filter((entry) => entry.length > 0);
246
+ break;
247
+ case "--fallback": {
248
+ const fallbackModel = requireValue(rest, ++i, flag).trim();
249
+ if (fallbacks.some((entry) => entry.model === fallbackModel)) {
250
+ throw new Error(`Duplicate --fallback model \`${fallbackModel}\`.`);
251
+ }
252
+ fallbacks.push({ model: fallbackModel });
253
+ canAssignFallbackEffort = true;
254
+ break;
255
+ }
256
+ case "--fallback-effort": {
257
+ if (!canAssignFallbackEffort || fallbacks.length === 0) {
258
+ throw new Error("--fallback-effort must immediately follow the --fallback it configures.");
259
+ }
260
+ const raw = requireValue(rest, ++i, flag);
261
+ if (raw !== "provider-default" && !EFFORT_LEVELS.includes(raw)) {
262
+ throw new Error(`--fallback-effort must be provider-default or ${EFFORT_LEVELS.join(", ")}.`);
263
+ }
264
+ if (raw !== "provider-default") {
265
+ const current = fallbacks[fallbacks.length - 1];
266
+ fallbacks[fallbacks.length - 1] = {
267
+ ...current,
268
+ effort: raw,
269
+ };
270
+ }
271
+ canAssignFallbackEffort = false;
272
+ break;
273
+ }
274
+ case "--route-safety": {
275
+ const raw = requireValue(rest, ++i, flag);
276
+ if (raw !== "uniform" && raw !== "per-route-native") {
277
+ throw new Error("--route-safety must be uniform or per-route-native.");
278
+ }
279
+ routeSafety = raw;
280
+ break;
281
+ }
282
+ case "--effort": {
283
+ const raw = requireValue(rest, ++i, flag);
284
+ if (!EFFORT_LEVELS.includes(raw)) {
285
+ throw new Error(`--effort must be ${EFFORT_LEVELS.join(", ")}.`);
286
+ }
287
+ effort = raw;
288
+ break;
289
+ }
290
+ case "--memory": {
291
+ const raw = requireValue(rest, ++i, flag);
292
+ if (raw !== "lite" && raw !== "journal" && raw !== "bujo") {
293
+ throw new Error("--memory must be lite, journal, or bujo.");
294
+ }
295
+ memory = raw;
296
+ break;
297
+ }
298
+ case "--preset":
299
+ preset = requireValue(rest, ++i, flag);
300
+ break;
301
+ case "--recipe":
302
+ // Deprecated init/validate alias removed in v2.0.0.
303
+ recipe = requireValue(rest, ++i, flag);
304
+ break;
305
+ case "--yes":
306
+ yes = true;
307
+ break;
308
+ case "--auth":
309
+ auth = true;
310
+ break;
311
+ case "--pi-auth-path":
312
+ piAuthPath = requireValue(rest, ++i, flag);
313
+ break;
314
+ case "--api-key-stdin":
315
+ apiKeyStdin = true;
316
+ break;
317
+ case "--codex-auth": {
318
+ const raw = requireValue(rest, ++i, flag);
319
+ if (raw !== "browser" && raw !== "device") {
320
+ throw new Error("--codex-auth must be browser or device.");
321
+ }
322
+ codexAuthMode = raw;
323
+ break;
324
+ }
325
+ case "--with":
326
+ withChannels = requireValue(rest, ++i, flag)
327
+ .split(",")
328
+ .map((entry) => entry.trim())
329
+ .filter((entry) => entry.length > 0);
330
+ break;
331
+ case "--env-file":
332
+ envFile = requireValue(rest, ++i, flag);
333
+ break;
334
+ case "--expected-background-snapshot":
335
+ expectedBackgroundSnapshot = requireValue(rest, ++i, flag);
336
+ break;
337
+ case "--target": {
338
+ const raw = requireValue(rest, ++i, flag);
339
+ if (raw !== "claude" && raw !== "codex" && raw !== "both") {
340
+ throw new Error("--target must be claude, codex, or both.");
341
+ }
342
+ target = raw;
343
+ break;
344
+ }
345
+ case "--force":
346
+ force = true;
347
+ break;
348
+ case "--foreground":
349
+ foreground = true;
350
+ break;
351
+ case "--follow":
352
+ follow = true;
353
+ break;
354
+ // `-f` is foreground for start, follow for logs.
355
+ case "-f":
356
+ if (isLogs) {
357
+ follow = true;
358
+ }
359
+ else {
360
+ foreground = true;
361
+ }
362
+ break;
363
+ case "--lines": {
364
+ const raw = requireValue(rest, ++i, flag);
365
+ const parsed = Number(raw);
366
+ if (!Number.isInteger(parsed) || parsed < 1 || parsed > 100_000) {
367
+ throw new Error("--lines must be a positive integer between 1 and 100000.");
368
+ }
369
+ lines = parsed;
370
+ break;
371
+ }
372
+ default:
373
+ if (flag === undefined) {
374
+ break;
375
+ }
376
+ if (flag.startsWith("--")) {
377
+ throw new Error(`Unknown flag \`${flag}\` for \`mono-agent ${command}\`.`);
378
+ }
379
+ // Non-flag tokens are positional arguments (e.g. `recipes show <id>`).
380
+ positionals.push(flag);
381
+ break;
382
+ }
383
+ }
384
+ if (consumerPath !== undefined && cmd !== "validate" && cmd !== "audit-runs") {
385
+ throw new Error("--consumer is only supported for `mono-agent validate` and `mono-agent audit-runs`.");
386
+ }
387
+ if ((local || configure) && cmd !== "tui") {
388
+ throw new Error("--local and --configure are only supported for `mono-agent tui`.");
389
+ }
390
+ if (configure && local) {
391
+ throw new Error("--configure attaches to the authoritative background agent; omit --local.");
392
+ }
393
+ if ((project || check || update) && cmd !== "install-skill") {
394
+ throw new Error("--project, --check, and --update are only supported for `mono-agent install-skill`.");
395
+ }
396
+ if ((check || update) && !project) {
397
+ throw new Error("--check and --update require `mono-agent install-skill --project`.");
398
+ }
399
+ if (check && update) {
400
+ throw new Error("Choose either --check or --update for project skills.");
401
+ }
402
+ if ((host !== undefined
403
+ || port !== undefined
404
+ || open !== undefined
405
+ || allowNonLoopback !== undefined
406
+ || showAuthUrl !== undefined
407
+ || maxRunsPerInstance !== undefined) &&
408
+ cmd !== "web") {
409
+ throw new Error("--host, --port, --no-open, --allow-non-loopback, --show-auth-url, and --max-runs are only supported for `mono-agent web`.");
410
+ }
411
+ if (includeMemory && cmd !== "audit-runs" && cmd !== "metrics" && cmd !== "backfill" && cmd !== "web") {
412
+ throw new Error("--include-memory is only supported for `mono-agent audit-runs`, `mono-agent metrics`, `mono-agent backfill`, and `mono-agent web`.");
413
+ }
414
+ if (limit !== undefined && cmd !== "memory" && cmd !== "continuations") {
415
+ throw new Error("--limit is only supported for `mono-agent memory` and `mono-agent continuations list`.");
416
+ }
417
+ if ((limit !== undefined || cursor !== undefined) && cmd === "continuations" && (positionals[0] ?? "list") !== "list") {
418
+ throw new Error("--limit and --cursor are only supported for `mono-agent continuations list`.");
419
+ }
420
+ if (cursor !== undefined && cmd !== "continuations") {
421
+ throw new Error("--cursor is only supported for `mono-agent continuations list`.");
422
+ }
423
+ if (strict && (cmd !== "memory" || (positionals[0] ?? "stats") !== "audit")) {
424
+ throw new Error("--strict is only supported for `mono-agent memory audit`.");
425
+ }
426
+ if ((idsFile !== undefined || reason !== undefined || planPath !== undefined || backupPath !== undefined)
427
+ && (cmd !== "memory" || positionals[0] !== "forget")) {
428
+ throw new Error("--ids-file, --reason, --plan, and --backup are only supported for `mono-agent memory forget`.");
429
+ }
430
+ if (auth && cmd !== "init") {
431
+ throw new Error("--auth is only supported for `mono-agent init`.");
432
+ }
433
+ if (piAuthPath !== undefined && cmd !== "auth") {
434
+ throw new Error("--pi-auth-path is only supported for `mono-agent auth`.");
435
+ }
436
+ if (apiKeyStdin && cmd !== "auth") {
437
+ throw new Error("--api-key-stdin is only supported for `mono-agent auth login <provider>`.");
438
+ }
439
+ if (codexAuthMode !== undefined && cmd !== "init" && cmd !== "auth") {
440
+ throw new Error("--codex-auth is only supported for `mono-agent init` and `mono-agent auth login codex`.");
441
+ }
442
+ if (fallbackModels !== undefined && fallbacks.length > 0) {
443
+ throw new Error("Use either legacy --fallback-models or repeated --fallback flags, not both.");
444
+ }
445
+ if (fallbackModels !== undefined && new Set(fallbackModels).size !== fallbackModels.length) {
446
+ throw new Error("--fallback-models contains a duplicate model reference.");
447
+ }
448
+ const selectedFallbackModels = fallbackModels ?? fallbacks.map((fallback) => fallback.model);
449
+ if (model !== undefined && selectedFallbackModels.includes(model)) {
450
+ throw new Error(`Primary --model \`${model}\` cannot also be a fallback.`);
451
+ }
452
+ return {
453
+ command: cmd,
454
+ ...(configPath === undefined ? {} : { configPath }),
455
+ ...(name === undefined ? {} : { name }),
456
+ ...(model === undefined ? {} : { model }),
457
+ ...(fallbackModels === undefined ? {} : { fallbackModels }),
458
+ ...(fallbacks.length === 0 ? {} : { fallbacks }),
459
+ ...(routeSafety === undefined ? {} : { routeSafety }),
460
+ ...(effort === undefined ? {} : { effort }),
461
+ ...(memory === undefined ? {} : { memory }),
462
+ ...(preset === undefined ? {} : { preset }),
463
+ ...(recipe === undefined ? {} : { recipe }),
464
+ ...(withChannels === undefined ? {} : { withChannels }),
465
+ ...(yes ? { yes } : {}),
466
+ ...(auth ? { auth } : {}),
467
+ ...(piAuthPath === undefined ? {} : { piAuthPath }),
468
+ ...(apiKeyStdin ? { apiKeyStdin } : {}),
469
+ ...(codexAuthMode === undefined ? {} : { codexAuthMode }),
470
+ positionals,
471
+ ...(envFile === undefined ? {} : { envFile }),
472
+ ...(expectedBackgroundSnapshot === undefined ? {} : { expectedBackgroundSnapshot }),
473
+ ...(target === undefined ? {} : { target }),
474
+ force,
475
+ foreground,
476
+ follow,
477
+ ...(lines === undefined ? {} : { lines }),
478
+ ...(run === undefined ? {} : { run }),
479
+ all,
480
+ ...(since === undefined ? {} : { since }),
481
+ ...(until === undefined ? {} : { until }),
482
+ dryRun,
483
+ includeMemory,
484
+ ...(artifactDir === undefined ? {} : { artifactDir }),
485
+ ...(groupBy === undefined ? {} : { groupBy }),
486
+ ...(consumerPath === undefined ? {} : { consumerPath }),
487
+ ...(staleAfterMs === undefined ? {} : { staleAfterMs }),
488
+ ...(json ? { json } : {}),
489
+ ...(strict ? { strict } : {}),
490
+ ...(limit === undefined ? {} : { limit }),
491
+ ...(cursor === undefined ? {} : { cursor }),
492
+ ...(idsFile === undefined ? {} : { idsFile }),
493
+ ...(reason === undefined ? {} : { reason }),
494
+ ...(planPath === undefined ? {} : { planPath }),
495
+ ...(backupPath === undefined ? {} : { backupPath }),
496
+ ...(agent === undefined ? {} : { agent }),
497
+ ...(conversation === undefined ? {} : { conversation }),
498
+ ...(local ? { local } : {}),
499
+ ...(configure ? { configure } : {}),
500
+ ...(project ? { project } : {}),
501
+ ...(check ? { check } : {}),
502
+ ...(update ? { update } : {}),
503
+ ...(host === undefined ? {} : { host }),
504
+ ...(port === undefined ? {} : { port }),
505
+ ...(open === undefined ? {} : { open }),
506
+ ...(allowNonLoopback === undefined ? {} : { allowNonLoopback }),
507
+ ...(showAuthUrl === undefined ? {} : { showAuthUrl }),
508
+ ...(maxRunsPerInstance === undefined ? {} : { maxRunsPerInstance }),
509
+ };
510
+ }
511
+ /**
512
+ * Loads env vars from a dotenv file when it exists; already-set variables are
513
+ * never overwritten, so exported shell variables take precedence. Returns
514
+ * false when the file is missing or unreadable.
515
+ */
516
+ export function loadCliEnvFile(path) {
517
+ try {
518
+ process.loadEnvFile(path);
519
+ return true;
520
+ }
521
+ catch {
522
+ return false;
523
+ }
524
+ }
525
+ function requireValue(args, index, flag) {
526
+ const value = args[index];
527
+ if (value === undefined || value.startsWith("--")) {
528
+ throw new Error(`Flag ${flag} requires a value.`);
529
+ }
530
+ return value;
531
+ }
532
+ //# sourceMappingURL=cli-args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-args.js","sourceRoot":"","sources":["../src/cli-args.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { listRecordedRuns } from "@mono-agent/observability";
2
+ import type { MonoAgentApp } from "./app.js";
3
+ import type { BackgroundDeps } from "./background.js";
4
+ import type { ChannelStatus } from "./channels.js";
5
+ import type { ParsedCliArgs } from "./cli-args.js";
6
+ import type { ValidationReport } from "./doctor.js";
7
+ declare const BACKGROUND_COMMANDS: readonly ["start", "restart", "stop", "status", "logs"];
8
+ /**
9
+ * Outcome of the start/restart preflight. `code` is the process exit status to
10
+ * return when refusing: 2 for a missing config file (a usage problem, matching
11
+ * the arg-parse convention) and 1 for a config that loads but has errors.
12
+ */
13
+ export type PreflightResult = {
14
+ readonly ok: true;
15
+ } | {
16
+ readonly ok: false;
17
+ readonly code: 2;
18
+ readonly kind: "missing-config";
19
+ readonly configPath: string;
20
+ } | {
21
+ readonly ok: false;
22
+ readonly code: 1;
23
+ readonly kind: "validation";
24
+ readonly report: ValidationReport;
25
+ };
26
+ /**
27
+ * Gate for `start`/`restart`: refuse unless the directory has a present, valid
28
+ * config. First the config FILE must exist (env vars alone are not enough — a
29
+ * folder without a config is not a configured agent). Then run the structural
30
+ * validation with `liveness:false` (network probes only yield `waiting`, never
31
+ * `error`, so skipping them keeps the verdict while avoiding bounded network
32
+ * timeouts) and refuse on any `error` section. `waiting` (e.g.
33
+ * Ollama/Supermemory/Phoenix not up yet) is runtime-soft and never blocks.
34
+ */
35
+ export declare function ensureStartable(args: ParsedCliArgs, env?: Record<string, string | undefined>, options?: {
36
+ readonly cwd?: string;
37
+ readonly configPath?: string;
38
+ readonly preferAppPluginInstall?: boolean;
39
+ }): Promise<PreflightResult>;
40
+ export declare function runStart(args: ParsedCliArgs, env?: Record<string, string | undefined>, managedBackgroundWorker?: boolean): Promise<number>;
41
+ export declare function runBackgroundCommand(args: ParsedCliArgs, command: (typeof BACKGROUND_COMMANDS)[number], env?: Record<string, string | undefined>): Promise<number>;
42
+ /** Private launchd-only entry point; `runCli` recognizes its launchd-only env marker. */
43
+ export declare function runLaunchdLogMaintenanceCommand(args: ParsedCliArgs, deps?: BackgroundDeps): Promise<number>;
44
+ export interface PrintAppStatusOptions {
45
+ readonly listRecordedRuns?: typeof listRecordedRuns;
46
+ readonly nowMs?: number;
47
+ }
48
+ export declare function printAppStatus(app: MonoAgentApp, options?: PrintAppStatusOptions): Promise<void>;
49
+ export declare function describeChannelStatus(status: ChannelStatus): string;
50
+ /**
51
+ * Block the foreground process until SIGINT/SIGTERM, then stop the app and
52
+ * resolve the exit code. A referenced no-op timer owns the event loop so the
53
+ * process stays alive even with no channel handle (signal listeners alone do
54
+ * NOT keep Node running, and the trace heartbeat is unref'd). Cleared on stop so
55
+ * the loop drains cleanly without a forceful `process.exit`. Exported for tests.
56
+ */
57
+ export declare function waitForShutdownSignal(app: Pick<MonoAgentApp, "stop">): Promise<number>;
58
+ export {};
59
+ //# sourceMappingURL=cli-background-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-background-command.d.ts","sourceRoot":"","sources":["../src/cli-background-command.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAO7D,OAAO,KAAK,EAAkB,YAAY,EAAiB,MAAM,UAAU,CAAC;AAmB5E,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,iBAAiB,CAAC;AAStE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,aAAa,CAAC;AAWrB,QAAA,MAAM,mBAAmB,yDAA0D,CAAC;AAkBpF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GACrB;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACtG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAI7G;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,aAAa,EACnB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,OAAO,GAAE;IACP,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACtC,GACL,OAAO,CAAC,eAAe,CAAC,CAiB1B;AA0BD,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,aAAa,EACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACxC,uBAAuB,UAAQ,GAC9B,OAAO,CAAC,MAAM,CAAC,CAKjB;AA0GD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,EAC7C,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAAC,MAAM,CAAC,CAiFjB;AAED,yFAAyF;AACzF,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,aAAa,EACnB,IAAI,GAAE,cAAwC,GAC7C,OAAO,CAAC,MAAM,CAAC,CAajB;AAiDD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,CAAC;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B1G;AAmFD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAQnE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BtF"}