@mono-agent/agent-app 0.11.3 → 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 (345) hide show
  1. package/README.md +222 -26
  2. package/dist/adapter-send-tools-main.js +7 -1
  3. package/dist/adapter-send-tools-main.js.map +1 -1
  4. package/dist/adapter-send-tools.d.ts +19 -1
  5. package/dist/adapter-send-tools.d.ts.map +1 -1
  6. package/dist/adapter-send-tools.js +127 -13
  7. package/dist/adapter-send-tools.js.map +1 -1
  8. package/dist/app-config.d.ts.map +1 -1
  9. package/dist/app-config.js +15 -2
  10. package/dist/app-config.js.map +1 -1
  11. package/dist/app-controller-channels.d.ts +8 -0
  12. package/dist/app-controller-channels.d.ts.map +1 -0
  13. package/dist/app-controller-channels.js +207 -0
  14. package/dist/app-controller-channels.js.map +1 -0
  15. package/dist/app-controller-continuation.d.ts +26 -0
  16. package/dist/app-controller-continuation.d.ts.map +1 -0
  17. package/dist/app-controller-continuation.js +198 -0
  18. package/dist/app-controller-continuation.js.map +1 -0
  19. package/dist/app-controller-lifecycle.d.ts +6 -0
  20. package/dist/app-controller-lifecycle.d.ts.map +1 -0
  21. package/dist/app-controller-lifecycle.js +81 -0
  22. package/dist/app-controller-lifecycle.js.map +1 -0
  23. package/dist/app-controller-maintenance.d.ts +13 -0
  24. package/dist/app-controller-maintenance.d.ts.map +1 -0
  25. package/dist/app-controller-maintenance.js +180 -0
  26. package/dist/app-controller-maintenance.js.map +1 -0
  27. package/dist/app-controller-memory-health.d.ts +12 -0
  28. package/dist/app-controller-memory-health.d.ts.map +1 -0
  29. package/dist/app-controller-memory-health.js +160 -0
  30. package/dist/app-controller-memory-health.js.map +1 -0
  31. package/dist/app-controller-memory.d.ts +9 -0
  32. package/dist/app-controller-memory.d.ts.map +1 -0
  33. package/dist/app-controller-memory.js +83 -0
  34. package/dist/app-controller-memory.js.map +1 -0
  35. package/dist/app-controller-responder.d.ts +20 -0
  36. package/dist/app-controller-responder.d.ts.map +1 -0
  37. package/dist/app-controller-responder.js +246 -0
  38. package/dist/app-controller-responder.js.map +1 -0
  39. package/dist/app-controller-traceability.d.ts +25 -0
  40. package/dist/app-controller-traceability.d.ts.map +1 -0
  41. package/dist/app-controller-traceability.js +418 -0
  42. package/dist/app-controller-traceability.js.map +1 -0
  43. package/dist/app-controller-utils.d.ts +38 -0
  44. package/dist/app-controller-utils.d.ts.map +1 -0
  45. package/dist/app-controller-utils.js +185 -0
  46. package/dist/app-controller-utils.js.map +1 -0
  47. package/dist/app-controller.d.ts +400 -0
  48. package/dist/app-controller.d.ts.map +1 -0
  49. package/dist/app-controller.js +336 -0
  50. package/dist/app-controller.js.map +1 -0
  51. package/dist/app.d.ts +7 -115
  52. package/dist/app.d.ts.map +1 -1
  53. package/dist/app.js +6 -1912
  54. package/dist/app.js.map +1 -1
  55. package/dist/artifact-retention.d.ts +4 -0
  56. package/dist/artifact-retention.d.ts.map +1 -1
  57. package/dist/artifact-retention.js +38 -0
  58. package/dist/artifact-retention.js.map +1 -1
  59. package/dist/backfill.d.ts +3 -1
  60. package/dist/backfill.d.ts.map +1 -1
  61. package/dist/backfill.js +5 -1
  62. package/dist/backfill.js.map +1 -1
  63. package/dist/background-runtime.d.ts +27 -0
  64. package/dist/background-runtime.d.ts.map +1 -1
  65. package/dist/background-runtime.js +383 -205
  66. package/dist/background-runtime.js.map +1 -1
  67. package/dist/background-worker-lease.d.ts.map +1 -1
  68. package/dist/background-worker-lease.js +41 -241
  69. package/dist/background-worker-lease.js.map +1 -1
  70. package/dist/background.d.ts +31 -9
  71. package/dist/background.d.ts.map +1 -1
  72. package/dist/background.js +543 -272
  73. package/dist/background.js.map +1 -1
  74. package/dist/channel-drivers/cron.d.ts +11 -0
  75. package/dist/channel-drivers/cron.d.ts.map +1 -0
  76. package/dist/channel-drivers/cron.js +168 -0
  77. package/dist/channel-drivers/cron.js.map +1 -0
  78. package/dist/channel-drivers/live.d.ts +11 -0
  79. package/dist/channel-drivers/live.d.ts.map +1 -0
  80. package/dist/channel-drivers/live.js +47 -0
  81. package/dist/channel-drivers/live.js.map +1 -0
  82. package/dist/channel-drivers/native-notify.d.ts +27 -0
  83. package/dist/channel-drivers/native-notify.d.ts.map +1 -0
  84. package/dist/channel-drivers/native-notify.js +94 -0
  85. package/dist/channel-drivers/native-notify.js.map +1 -0
  86. package/dist/channel-drivers/openai-api.d.ts +7 -0
  87. package/dist/channel-drivers/openai-api.d.ts.map +1 -0
  88. package/dist/channel-drivers/openai-api.js +63 -0
  89. package/dist/channel-drivers/openai-api.js.map +1 -0
  90. package/dist/channel-drivers/shared.d.ts +4 -0
  91. package/dist/channel-drivers/shared.d.ts.map +1 -0
  92. package/dist/channel-drivers/shared.js +5 -0
  93. package/dist/channel-drivers/shared.js.map +1 -0
  94. package/dist/channel-drivers/slack.d.ts +14 -0
  95. package/dist/channel-drivers/slack.d.ts.map +1 -0
  96. package/dist/channel-drivers/slack.js +227 -0
  97. package/dist/channel-drivers/slack.js.map +1 -0
  98. package/dist/channel-drivers/telegram.d.ts +11 -0
  99. package/dist/channel-drivers/telegram.d.ts.map +1 -0
  100. package/dist/channel-drivers/telegram.js +244 -0
  101. package/dist/channel-drivers/telegram.js.map +1 -0
  102. package/dist/channel-drivers/tui.d.ts +15 -0
  103. package/dist/channel-drivers/tui.d.ts.map +1 -0
  104. package/dist/channel-drivers/tui.js +108 -0
  105. package/dist/channel-drivers/tui.js.map +1 -0
  106. package/dist/channel-drivers/webhook.d.ts +7 -0
  107. package/dist/channel-drivers/webhook.d.ts.map +1 -0
  108. package/dist/channel-drivers/webhook.js +115 -0
  109. package/dist/channel-drivers/webhook.js.map +1 -0
  110. package/dist/channels.d.ts +21 -81
  111. package/dist/channels.d.ts.map +1 -1
  112. package/dist/channels.js +11 -1174
  113. package/dist/channels.js.map +1 -1
  114. package/dist/cli-args.d.ts +121 -0
  115. package/dist/cli-args.d.ts.map +1 -0
  116. package/dist/cli-args.js +532 -0
  117. package/dist/cli-args.js.map +1 -0
  118. package/dist/cli-background-command.d.ts +59 -0
  119. package/dist/cli-background-command.d.ts.map +1 -0
  120. package/dist/cli-background-command.js +475 -0
  121. package/dist/cli-background-command.js.map +1 -0
  122. package/dist/cli-cancellation.d.ts +6 -0
  123. package/dist/cli-cancellation.d.ts.map +1 -0
  124. package/dist/cli-cancellation.js +23 -0
  125. package/dist/cli-cancellation.js.map +1 -0
  126. package/dist/cli-commands.d.ts +12 -0
  127. package/dist/cli-commands.d.ts.map +1 -0
  128. package/dist/cli-commands.js +306 -0
  129. package/dist/cli-commands.js.map +1 -0
  130. package/dist/cli-help.d.ts +11 -0
  131. package/dist/cli-help.d.ts.map +1 -0
  132. package/dist/cli-help.js +262 -0
  133. package/dist/cli-help.js.map +1 -0
  134. package/dist/cli-init-command.d.ts +60 -0
  135. package/dist/cli-init-command.d.ts.map +1 -0
  136. package/dist/cli-init-command.js +1910 -0
  137. package/dist/cli-init-command.js.map +1 -0
  138. package/dist/cli-install-skill-command.d.ts +3 -0
  139. package/dist/cli-install-skill-command.d.ts.map +1 -0
  140. package/dist/cli-install-skill-command.js +51 -0
  141. package/dist/cli-install-skill-command.js.map +1 -0
  142. package/dist/cli-sandbox-command.d.ts +10 -0
  143. package/dist/cli-sandbox-command.d.ts.map +1 -0
  144. package/dist/cli-sandbox-command.js +100 -0
  145. package/dist/cli-sandbox-command.js.map +1 -0
  146. package/dist/cli-validate-config-command.d.ts +36 -0
  147. package/dist/cli-validate-config-command.d.ts.map +1 -0
  148. package/dist/cli-validate-config-command.js +317 -0
  149. package/dist/cli-validate-config-command.js.map +1 -0
  150. package/dist/cli.d.ts +6 -248
  151. package/dist/cli.d.ts.map +1 -1
  152. package/dist/cli.js +6 -3792
  153. package/dist/cli.js.map +1 -1
  154. package/dist/config-reference.d.ts +2 -1
  155. package/dist/config-reference.d.ts.map +1 -1
  156. package/dist/config-reference.js +14 -3
  157. package/dist/config-reference.js.map +1 -1
  158. package/dist/configured-agent.d.ts +23 -0
  159. package/dist/configured-agent.d.ts.map +1 -1
  160. package/dist/configured-agent.js +89 -12
  161. package/dist/configured-agent.js.map +1 -1
  162. package/dist/continuation-dispatch-worker.d.ts +21 -0
  163. package/dist/continuation-dispatch-worker.d.ts.map +1 -0
  164. package/dist/continuation-dispatch-worker.js +425 -0
  165. package/dist/continuation-dispatch-worker.js.map +1 -0
  166. package/dist/continuation-http-routes.d.ts +15 -0
  167. package/dist/continuation-http-routes.d.ts.map +1 -0
  168. package/dist/continuation-http-routes.js +265 -0
  169. package/dist/continuation-http-routes.js.map +1 -0
  170. package/dist/continuation-operator-api.d.ts +18 -0
  171. package/dist/continuation-operator-api.d.ts.map +1 -0
  172. package/dist/continuation-operator-api.js +164 -0
  173. package/dist/continuation-operator-api.js.map +1 -0
  174. package/dist/continuation-origin-store.d.ts +19 -0
  175. package/dist/continuation-origin-store.d.ts.map +1 -0
  176. package/dist/continuation-origin-store.js +273 -0
  177. package/dist/continuation-origin-store.js.map +1 -0
  178. package/dist/continuation-service-errors.d.ts +18 -0
  179. package/dist/continuation-service-errors.d.ts.map +1 -0
  180. package/dist/continuation-service-errors.js +35 -0
  181. package/dist/continuation-service-errors.js.map +1 -0
  182. package/dist/continuation-service-helpers.d.ts +39 -0
  183. package/dist/continuation-service-helpers.d.ts.map +1 -0
  184. package/dist/continuation-service-helpers.js +308 -0
  185. package/dist/continuation-service-helpers.js.map +1 -0
  186. package/dist/continuation-service-origin.d.ts +55 -0
  187. package/dist/continuation-service-origin.d.ts.map +1 -0
  188. package/dist/continuation-service-origin.js +325 -0
  189. package/dist/continuation-service-origin.js.map +1 -0
  190. package/dist/continuation-service-types.d.ts +110 -0
  191. package/dist/continuation-service-types.d.ts.map +1 -0
  192. package/dist/continuation-service-types.js +11 -0
  193. package/dist/continuation-service-types.js.map +1 -0
  194. package/dist/continuation-service.d.ts +4 -97
  195. package/dist/continuation-service.d.ts.map +1 -1
  196. package/dist/continuation-service.js +9 -1525
  197. package/dist/continuation-service.js.map +1 -1
  198. package/dist/continuation-store-fs.d.ts +15 -0
  199. package/dist/continuation-store-fs.d.ts.map +1 -0
  200. package/dist/continuation-store-fs.js +247 -0
  201. package/dist/continuation-store-fs.js.map +1 -0
  202. package/dist/continuation-store-policy.d.ts +21 -0
  203. package/dist/continuation-store-policy.d.ts.map +1 -0
  204. package/dist/continuation-store-policy.js +278 -0
  205. package/dist/continuation-store-policy.js.map +1 -0
  206. package/dist/continuation-store-records.d.ts +9 -0
  207. package/dist/continuation-store-records.d.ts.map +1 -0
  208. package/dist/continuation-store-records.js +221 -0
  209. package/dist/continuation-store-records.js.map +1 -0
  210. package/dist/continuation-store-types.d.ts +173 -0
  211. package/dist/continuation-store-types.d.ts.map +1 -0
  212. package/dist/continuation-store-types.js +26 -0
  213. package/dist/continuation-store-types.js.map +1 -0
  214. package/dist/continuation-store.d.ts +4 -138
  215. package/dist/continuation-store.d.ts.map +1 -1
  216. package/dist/continuation-store.js +145 -1049
  217. package/dist/continuation-store.js.map +1 -1
  218. package/dist/doctor.d.ts +5 -0
  219. package/dist/doctor.d.ts.map +1 -1
  220. package/dist/doctor.js +575 -38
  221. package/dist/doctor.js.map +1 -1
  222. package/dist/init.d.ts +2 -0
  223. package/dist/init.d.ts.map +1 -1
  224. package/dist/init.js +92 -239
  225. package/dist/init.js.map +1 -1
  226. package/dist/interaction-bridge.d.ts +19 -0
  227. package/dist/interaction-bridge.d.ts.map +1 -1
  228. package/dist/interaction-bridge.js +130 -0
  229. package/dist/interaction-bridge.js.map +1 -1
  230. package/dist/launchd-logs.d.ts +91 -0
  231. package/dist/launchd-logs.d.ts.map +1 -0
  232. package/dist/launchd-logs.js +1499 -0
  233. package/dist/launchd-logs.js.map +1 -0
  234. package/dist/launchd.d.ts +27 -0
  235. package/dist/launchd.d.ts.map +1 -1
  236. package/dist/launchd.js +89 -10
  237. package/dist/launchd.js.map +1 -1
  238. package/dist/memory-command.d.ts +2 -0
  239. package/dist/memory-command.d.ts.map +1 -1
  240. package/dist/memory-command.js +161 -48
  241. package/dist/memory-command.js.map +1 -1
  242. package/dist/memory-recall-settings.d.ts +64 -0
  243. package/dist/memory-recall-settings.d.ts.map +1 -0
  244. package/dist/memory-recall-settings.js +51 -0
  245. package/dist/memory-recall-settings.js.map +1 -0
  246. package/dist/memory-recall.d.ts +7 -95
  247. package/dist/memory-recall.d.ts.map +1 -1
  248. package/dist/memory-recall.js +8 -143
  249. package/dist/memory-recall.js.map +1 -1
  250. package/dist/memory-rituals.d.ts +3 -3
  251. package/dist/memory-rituals.d.ts.map +1 -1
  252. package/dist/memory-rituals.js +16 -111
  253. package/dist/memory-rituals.js.map +1 -1
  254. package/dist/modules/catalog.js +2 -2
  255. package/dist/modules/catalog.js.map +1 -1
  256. package/dist/modules/known-tools.d.ts +8 -6
  257. package/dist/modules/known-tools.d.ts.map +1 -1
  258. package/dist/modules/known-tools.js +8 -6
  259. package/dist/modules/known-tools.js.map +1 -1
  260. package/dist/notify-destinations.d.ts +5 -0
  261. package/dist/notify-destinations.d.ts.map +1 -1
  262. package/dist/notify-destinations.js +7 -1
  263. package/dist/notify-destinations.js.map +1 -1
  264. package/dist/owner-private-lock.d.ts +95 -0
  265. package/dist/owner-private-lock.d.ts.map +1 -0
  266. package/dist/owner-private-lock.js +566 -0
  267. package/dist/owner-private-lock.js.map +1 -0
  268. package/dist/pi-oauth-login.d.ts +2 -0
  269. package/dist/pi-oauth-login.d.ts.map +1 -1
  270. package/dist/pi-oauth-login.js +39 -5
  271. package/dist/pi-oauth-login.js.map +1 -1
  272. package/dist/posted-message-index.d.ts +35 -16
  273. package/dist/posted-message-index.d.ts.map +1 -1
  274. package/dist/posted-message-index.js +1068 -52
  275. package/dist/posted-message-index.js.map +1 -1
  276. package/dist/posted-reply-history.d.ts +17 -0
  277. package/dist/posted-reply-history.d.ts.map +1 -0
  278. package/dist/posted-reply-history.js +169 -0
  279. package/dist/posted-reply-history.js.map +1 -0
  280. package/dist/proactive-notify.d.ts.map +1 -1
  281. package/dist/proactive-notify.js +6 -4
  282. package/dist/proactive-notify.js.map +1 -1
  283. package/dist/project-skills.d.ts +4 -0
  284. package/dist/project-skills.d.ts.map +1 -1
  285. package/dist/project-skills.js +99 -130
  286. package/dist/project-skills.js.map +1 -1
  287. package/dist/provider-setup.d.ts +0 -1
  288. package/dist/provider-setup.d.ts.map +1 -1
  289. package/dist/provider-setup.js +0 -3
  290. package/dist/provider-setup.js.map +1 -1
  291. package/dist/readiness-probe-worker.d.ts +61 -1
  292. package/dist/readiness-probe-worker.d.ts.map +1 -1
  293. package/dist/readiness-probe-worker.js +49 -56
  294. package/dist/readiness-probe-worker.js.map +1 -1
  295. package/dist/readiness-probe.d.ts +6 -9
  296. package/dist/readiness-probe.d.ts.map +1 -1
  297. package/dist/readiness-probe.js +23 -56
  298. package/dist/readiness-probe.js.map +1 -1
  299. package/dist/redact-secrets.d.ts +15 -0
  300. package/dist/redact-secrets.d.ts.map +1 -0
  301. package/dist/redact-secrets.js +65 -0
  302. package/dist/redact-secrets.js.map +1 -0
  303. package/dist/run-history.js +34 -24
  304. package/dist/run-history.js.map +1 -1
  305. package/dist/runtime-provenance.d.ts +8 -0
  306. package/dist/runtime-provenance.d.ts.map +1 -0
  307. package/dist/runtime-provenance.js +225 -0
  308. package/dist/runtime-provenance.js.map +1 -0
  309. package/dist/sandbox-manager.d.ts +4 -1
  310. package/dist/sandbox-manager.d.ts.map +1 -1
  311. package/dist/sandbox-manager.js +114 -273
  312. package/dist/sandbox-manager.js.map +1 -1
  313. package/dist/secure-file-replace.d.ts +49 -0
  314. package/dist/secure-file-replace.d.ts.map +1 -0
  315. package/dist/secure-file-replace.js +270 -0
  316. package/dist/secure-file-replace.js.map +1 -0
  317. package/dist/seen-conversations.d.ts +32 -5
  318. package/dist/seen-conversations.d.ts.map +1 -1
  319. package/dist/seen-conversations.js +145 -15
  320. package/dist/seen-conversations.js.map +1 -1
  321. package/dist/sessions.d.ts +20 -0
  322. package/dist/sessions.d.ts.map +1 -1
  323. package/dist/sessions.js +41 -6
  324. package/dist/sessions.js.map +1 -1
  325. package/dist/wizard/index.d.ts +2 -2
  326. package/dist/wizard/index.d.ts.map +1 -1
  327. package/dist/wizard/index.js +1 -1
  328. package/dist/wizard/index.js.map +1 -1
  329. package/dist/wizard/presets.d.ts +2 -1
  330. package/dist/wizard/presets.d.ts.map +1 -1
  331. package/dist/wizard/presets.js +2 -1
  332. package/dist/wizard/presets.js.map +1 -1
  333. package/dist/wizard/run.d.ts +0 -26
  334. package/dist/wizard/run.d.ts.map +1 -1
  335. package/dist/wizard/run.js +0 -53
  336. package/dist/wizard/run.js.map +1 -1
  337. package/package.json +21 -16
  338. package/schema/mono-agent.config.schema.json +17 -6
  339. package/skills/mono-agent-composer/SKILL.md +3 -3
  340. package/skills/mono-agent-composer/references/config-blueprint.md +41 -22
  341. package/skills/mono-agent-composer/references/discovery-questions.md +4 -4
  342. package/skills/mono-agent-composer/references/feature-coverage.md +14 -14
  343. package/skills/mono-agent-composer/references/package-map.md +3 -3
  344. package/skills/mono-agent-composer/references/playbooks.md +38 -20
  345. package/skills/mono-agent-composer/references/validation.md +16 -3
@@ -0,0 +1,418 @@
1
+ import { pruneTraceSources, reconcileStaleRunArtifacts, registerTraceSource, } from "@mono-agent/observability";
2
+ import { resolveSandboxEffectiveState } from "@mono-agent/runtime-adapter";
3
+ import { loadAppCoreConfig, resolveAppArtifactDir, resolveAppObservabilityExporters, resolveAppTraceGlobalDiscovery, resolveAppTraceHeartbeatMs, resolveAppTraceRegistryDir, resolveAppTraceSourceId, resolveAppTraceSourceLabel, resolveGlobalTraceRegistryDir, resolveTraceTmpdirRoot, shouldMirrorTraceSourceGlobally, } from "./app-config.js";
4
+ import { resolveMemoryRecallSettings } from "./memory-recall.js";
5
+ import { nextDailyRolloverAt, reasonOf, sandboxStatusFromState, } from "./app-controller-utils.js";
6
+ const DEFAULT_SANDBOX_STATUS = sandboxStatusFromState({
7
+ configured: false,
8
+ configuredMode: undefined,
9
+ effective: "off",
10
+ engine: undefined,
11
+ engineAvailable: undefined,
12
+ fallback: undefined,
13
+ fallbackActive: false,
14
+ unsafeAllowHostProcess: false,
15
+ });
16
+ /** Strict memory audits scan durable state; never run them at sub-second trace-heartbeat cadence. */
17
+ const MIN_MEMORY_HEALTH_REFRESH_INTERVAL_MS = 30_000;
18
+ export async function startTraceability(controller, reason) {
19
+ if (controller.stopped) {
20
+ return controller.traceabilityStatusValue;
21
+ }
22
+ let artifactDirForRetention;
23
+ try {
24
+ const input = { env: controller.env, cwd: controller.cwd, configPath: controller.configReadPath };
25
+ await controller.refreshSelectedSkillsSnapshot(reason);
26
+ await controller.refreshMemoryHealthSnapshot(reason);
27
+ const [registryDir, artifactDir, sourceId, label, heartbeatMs, globalDiscovery] = await Promise.all([
28
+ resolveAppTraceRegistryDir(input),
29
+ resolveAppArtifactDir(input),
30
+ resolveAppTraceSourceId(input, controller.traceDefaults, controller.configPath),
31
+ resolveAppTraceSourceLabel(input, controller.traceDefaults),
32
+ resolveAppTraceHeartbeatMs(input),
33
+ resolveAppTraceGlobalDiscovery(input),
34
+ ]);
35
+ artifactDirForRetention = artifactDir;
36
+ const registerOptions = {
37
+ registryDir,
38
+ sourceId,
39
+ label,
40
+ artifactDir,
41
+ pid: process.pid,
42
+ transports: controller.activeTransports(),
43
+ configPath: controller.configPath,
44
+ metadata: controller.traceMetadata(reason),
45
+ memoryHealth: controller.memoryHealthValue,
46
+ heartbeatMs,
47
+ };
48
+ controller.traceSource = await registerTraceSource(registerOptions);
49
+ controller.traceabilityStatusValue = { kind: "running", sourceId, registryDir, artifactDir };
50
+ controller.logger?.info?.("Traceability source registered.", { reason, sourceId, registryDir, artifactDir });
51
+ void pruneTraceSources({ registryDir });
52
+ // Best-effort global mirror: makes this agent discoverable by `mono-agent
53
+ // tui` run anywhere on the machine, even when its own registryDir is a
54
+ // config-local override (e.g. `mono-agent init`'s scaffold). A mirror
55
+ // failure must never affect the primary registration above.
56
+ const globalRegistryDir = resolveGlobalTraceRegistryDir(controller.env);
57
+ const tmpdirRoot = resolveTraceTmpdirRoot(controller.env);
58
+ if (shouldMirrorTraceSourceGlobally({ registryDir, globalRegistryDir, globalDiscovery, tmpdirRoot })) {
59
+ try {
60
+ controller.globalTraceSource = await registerTraceSource({ ...registerOptions, registryDir: globalRegistryDir });
61
+ void pruneTraceSources({ registryDir: globalRegistryDir });
62
+ }
63
+ catch (error) {
64
+ controller.globalTraceSource = undefined;
65
+ controller.logger?.warn?.("Global trace-source mirror registration failed.", { reason: reasonOf(error) });
66
+ }
67
+ }
68
+ else {
69
+ controller.globalTraceSource = undefined;
70
+ }
71
+ controller.startMemoryHealthRefreshLoop(MIN_MEMORY_HEALTH_REFRESH_INTERVAL_MS);
72
+ }
73
+ catch (error) {
74
+ controller.clearMemoryHealthRefreshTimer();
75
+ const failure = reasonOf(error);
76
+ controller.traceabilityStatusValue = { kind: "failed", reason: failure };
77
+ controller.logger?.error?.("Traceability source registration failed.", { reason: failure });
78
+ }
79
+ finally {
80
+ if (artifactDirForRetention !== undefined) {
81
+ // Fire-and-forget: orphan reclamation and retention are best-effort cleanup
82
+ // and must not gate startup readiness. Keep them independent from trace
83
+ // source registration; a broken registry should not disable artifact GC.
84
+ controller.restartArtifactRetentionScheduler(artifactDirForRetention, reason);
85
+ }
86
+ }
87
+ return controller.traceabilityStatusValue;
88
+ }
89
+ export async function refreshSandboxStatus(controller, reason) {
90
+ try {
91
+ const input = { env: controller.env, cwd: controller.cwd, configPath: controller.configReadPath };
92
+ const coreConfig = await loadAppCoreConfig(input);
93
+ const state = await resolveSandboxEffectiveState({
94
+ ...(coreConfig.sandbox === undefined ? {} : { policy: coreConfig.sandbox }),
95
+ ...(controller.sandboxEngine === undefined ? {} : { engine: controller.sandboxEngine }),
96
+ });
97
+ const status = sandboxStatusFromState(state);
98
+ controller.sandboxStatusValue = status;
99
+ if (status.warning !== undefined) {
100
+ controller.logger?.warn?.(status.warning, { reason, detail: status.detail });
101
+ }
102
+ return status;
103
+ }
104
+ catch (error) {
105
+ const resolutionError = reasonOf(error);
106
+ const status = {
107
+ ...DEFAULT_SANDBOX_STATUS,
108
+ detail: `Sandbox status unavailable until agent config loads: ${resolutionError}`,
109
+ resolutionError,
110
+ };
111
+ controller.sandboxStatusValue = status;
112
+ controller.logger?.info?.("Sandbox status unavailable until agent config loads.", { reason, detail: resolutionError });
113
+ return status;
114
+ }
115
+ }
116
+ export async function reconcileStaleRunsOnce(controller, artifactDir) {
117
+ if (controller.staleRunsReconciled) {
118
+ return;
119
+ }
120
+ controller.staleRunsReconciled = true;
121
+ try {
122
+ const { reconciled, warnings } = await reconcileStaleRunArtifacts(artifactDir, {
123
+ startedBeforeMs: controller.processStartMs,
124
+ });
125
+ for (const warning of warnings) {
126
+ controller.logger?.warn?.(`Stale-run reconciliation: ${warning}`);
127
+ }
128
+ if (reconciled.length > 0) {
129
+ controller.logger?.info?.('Reclaimed orphaned runs left as "running" by a prior process.', {
130
+ count: reconciled.length,
131
+ runIds: reconciled.slice(0, 20),
132
+ });
133
+ }
134
+ }
135
+ catch (error) {
136
+ controller.logger?.warn?.("Stale-run reconciliation failed.", { reason: reasonOf(error) });
137
+ }
138
+ }
139
+ export async function startExporters(controller, reason) {
140
+ if (controller.stopped) {
141
+ return controller.exporterStatusValue;
142
+ }
143
+ const input = { env: controller.env, cwd: controller.cwd, configPath: controller.configReadPath };
144
+ let exporters;
145
+ try {
146
+ exporters = await resolveAppObservabilityExporters(input);
147
+ }
148
+ catch (error) {
149
+ controller.resolvedExporter = undefined;
150
+ controller.exporterStatusValue = { kind: "failed", reason: reasonOf(error) };
151
+ controller.logger?.error?.("Observability exporter config is invalid.", { reason: reasonOf(error) });
152
+ return controller.exporterStatusValue;
153
+ }
154
+ const exporter = exporters[0];
155
+ if (exporter === undefined) {
156
+ controller.resolvedExporter = undefined;
157
+ controller.exporterStatusValue = { kind: "disabled", reason: "No observability exporter configured." };
158
+ return controller.exporterStatusValue;
159
+ }
160
+ controller.resolvedExporter = exporter;
161
+ controller.exporterStatusValue = {
162
+ kind: "configured",
163
+ endpoint: exporter.endpoint,
164
+ includeSensitiveData: exporter.includeSensitiveData ?? false,
165
+ };
166
+ controller.logger?.info?.("Observability exporter configured.", {
167
+ reason,
168
+ endpoint: exporter.endpoint,
169
+ includeSensitiveData: exporter.includeSensitiveData ?? false,
170
+ });
171
+ return controller.exporterStatusValue;
172
+ }
173
+ export function recordExporterWarning(controller, warning) {
174
+ const current = controller.exporterStatusValue;
175
+ if (current.kind !== "configured") {
176
+ return;
177
+ }
178
+ const message = `${warning.phase}: ${warning.message}`;
179
+ // The "fail" phase fires only when export fails on the run-failure path;
180
+ // surface it as lastError so operators can tell it apart from a transient
181
+ // best-effort warning. The run outcome is unchanged either way.
182
+ controller.exporterStatusValue =
183
+ warning.phase === "fail" ? { ...current, lastError: message } : { ...current, lastWarning: message };
184
+ controller.logger?.warn?.("Observability export warning.", { phase: warning.phase, message: warning.message });
185
+ // Persist to the trace-source manifest so the detached `mono-agent status`
186
+ // (which reads the manifest, not this live object) can surface it too.
187
+ void controller.refreshTraceSource("exporter-warning").catch(() => undefined);
188
+ }
189
+ export function refreshTraceSource(controller, reason) {
190
+ const existing = controller.traceRefreshInFlight;
191
+ if (existing !== undefined) {
192
+ // Keep one bounded replay slot. Concurrent explicit callers share the
193
+ // exact owner promise; the owner publishes the latest state/reason once
194
+ // more after its current write. Requests arriving during that replay set
195
+ // the same bit again, without growing a callback queue.
196
+ controller.traceRefreshDirty = true;
197
+ controller.traceRefreshLatestReason = reason;
198
+ return existing;
199
+ }
200
+ const traceSource = controller.traceSource;
201
+ const globalTraceSource = controller.globalTraceSource;
202
+ if (traceSource === undefined) {
203
+ return Promise.resolve();
204
+ }
205
+ const generation = controller.memoryHealthGeneration;
206
+ let pending;
207
+ pending = (async () => {
208
+ let publishReason = reason;
209
+ for (;;) {
210
+ controller.traceRefreshDirty = false;
211
+ controller.traceRefreshLatestReason = undefined;
212
+ const health = await controller.refreshMemoryHealthSnapshot(publishReason);
213
+ if (generation !== controller.memoryHealthGeneration || controller.traceSource !== traceSource) {
214
+ return;
215
+ }
216
+ const patch = {
217
+ transports: controller.activeTransports(),
218
+ metadata: controller.traceMetadata(publishReason),
219
+ memoryHealth: health,
220
+ };
221
+ try {
222
+ await traceSource.update(patch);
223
+ }
224
+ catch (error) {
225
+ controller.logger?.warn?.("Traceability source update failed.", { reason: reasonOf(error) });
226
+ }
227
+ if (globalTraceSource !== undefined && generation === controller.memoryHealthGeneration
228
+ && controller.globalTraceSource === globalTraceSource) {
229
+ try {
230
+ await globalTraceSource.update(patch);
231
+ }
232
+ catch (error) {
233
+ controller.logger?.warn?.("Global trace-source mirror update failed.", { reason: reasonOf(error) });
234
+ }
235
+ }
236
+ if (!controller.traceRefreshDirty || generation !== controller.memoryHealthGeneration
237
+ || controller.traceSource !== traceSource) {
238
+ return;
239
+ }
240
+ publishReason = controller.traceRefreshLatestReason ?? publishReason;
241
+ }
242
+ })().catch(() => {
243
+ // Health computation and trace handles already sanitize/log their own
244
+ // failures. Keep this final boundary closed so background refreshes never
245
+ // become unhandled rejections or leak raw provider/native errors.
246
+ }).finally(() => {
247
+ if (controller.traceRefreshInFlight === pending) {
248
+ controller.traceRefreshInFlight = undefined;
249
+ const replayDue = controller.memoryHealthRefreshDue
250
+ && !controller.stopped
251
+ && generation === controller.memoryHealthGeneration
252
+ && controller.traceSource === traceSource;
253
+ controller.traceRefreshDirty = false;
254
+ controller.traceRefreshLatestReason = undefined;
255
+ // A timer can fire after the loop's final dirty check but before this
256
+ // owner settles. Preserve exactly one due replay across that seam.
257
+ if (replayDue) {
258
+ void controller.refreshTraceSource("memory-health-periodic").catch(() => undefined);
259
+ }
260
+ }
261
+ });
262
+ controller.traceRefreshInFlight = pending;
263
+ return pending;
264
+ }
265
+ export async function observabilityContext(controller) {
266
+ const input = { env: controller.env, cwd: controller.cwd, configPath: controller.configReadPath };
267
+ const [sourceId, sourceLabel] = await Promise.all([
268
+ resolveAppTraceSourceId(input, controller.traceDefaults, controller.configPath),
269
+ resolveAppTraceSourceLabel(input, controller.traceDefaults),
270
+ ]);
271
+ return { sourceId, sourceLabel, configPath: controller.configPath };
272
+ }
273
+ export function reportMemoryRecallStatus(controller, coreConfig, service) {
274
+ const settings = resolveMemoryRecallSettings(coreConfig);
275
+ if (settings === undefined) {
276
+ return false;
277
+ }
278
+ if (service === undefined) {
279
+ controller.logger?.warn?.("MemoryRecall could not be enabled because the configured store has no recall surface.");
280
+ return false;
281
+ }
282
+ controller.logger?.info?.("Read-only MemoryRecall tool enabled.", {
283
+ provider: "supermemory" in settings ? "supermemory" : settings.embeddings?.provider ?? "fts-only",
284
+ });
285
+ return true;
286
+ }
287
+ export async function stopTraceSource(controller, reason) {
288
+ controller.invalidateMemoryHealthRefresh();
289
+ const traceSource = controller.traceSource;
290
+ const globalTraceSource = controller.globalTraceSource;
291
+ // Detach before stopping. A health probe may be stalled indefinitely; its
292
+ // generation/handle checks fence any late result, while a reload is free to
293
+ // register and refresh a new source without waiting for the old probe.
294
+ controller.traceSource = undefined;
295
+ controller.globalTraceSource = undefined;
296
+ controller.traceRefreshInFlight = undefined;
297
+ controller.traceRefreshDirty = false;
298
+ controller.traceRefreshLatestReason = undefined;
299
+ if (traceSource === undefined && globalTraceSource === undefined) {
300
+ return;
301
+ }
302
+ const patch = {
303
+ metadata: controller.traceMetadata(reason),
304
+ transports: controller.activeTransports(),
305
+ memoryHealth: controller.memoryHealthValue,
306
+ };
307
+ await traceSource?.stop(patch).catch((error) => {
308
+ controller.logger?.warn?.("Traceability source stop update failed.", { reason: reasonOf(error) });
309
+ });
310
+ await globalTraceSource?.stop(patch).catch((error) => {
311
+ controller.logger?.warn?.("Global trace-source mirror stop update failed.", { reason: reasonOf(error) });
312
+ });
313
+ if (!controller.stopped) {
314
+ controller.traceabilityStatusValue = { kind: "disabled", reason: "Traceability source stopped while applying config." };
315
+ }
316
+ }
317
+ export async function refreshSelectedSkillsSnapshot(controller, reason) {
318
+ try {
319
+ const input = { env: controller.env, cwd: controller.cwd, configPath: controller.configReadPath };
320
+ controller.rememberSelectedSkills(await loadAppCoreConfig(input));
321
+ }
322
+ catch (error) {
323
+ controller.selectedSkillsValue = undefined;
324
+ controller.logger?.info?.("Selected skills unavailable until agent config loads.", { reason, detail: reasonOf(error) });
325
+ }
326
+ }
327
+ export function rememberSelectedSkills(controller, coreConfig) {
328
+ controller.selectedSkillsValue = [...coreConfig.context.selectedSkills];
329
+ }
330
+ export function recordSessionEvent(controller, event, coreConfig) {
331
+ const now = new Date();
332
+ const nextRolloverAt = coreConfig.runtime.session.rollover === "daily"
333
+ ? nextDailyRolloverAt(now, coreConfig.runtime.session.rolloverTimezone)
334
+ : undefined;
335
+ const snapshot = event.snapshot ?? [];
336
+ const current = snapshot.find((entry) => entry.conversationId === event.conversationId);
337
+ const providerSessionId = current?.providerSessionId ?? event.providerSessionId;
338
+ controller.sessionMetadataValue = {
339
+ currentBucketId: event.conversationId,
340
+ state: current === undefined ? "cold" : "warm",
341
+ event: event.kind,
342
+ updatedAt: now.toISOString(),
343
+ ...(snapshot.length === 0 ? {} : { snapshot }),
344
+ ...(providerSessionId === undefined ? {} : { providerSessionId }),
345
+ ...(current?.createdAt === undefined ? {} : { createdAt: current.createdAt }),
346
+ ...(current?.lastActivityAt === undefined ? {} : { lastActivityAt: current.lastActivityAt }),
347
+ ...(current?.busy === undefined ? {} : { busy: current.busy }),
348
+ ...(event.reason === undefined ? {} : { reason: event.reason }),
349
+ ...(nextRolloverAt === undefined ? {} : { nextRolloverAt }),
350
+ };
351
+ if (event.kind === "evicted") {
352
+ controller.logger?.info?.("Provider session evicted.", {
353
+ conversationId: event.conversationId,
354
+ providerSessionId: event.providerSessionId,
355
+ reason: event.reason,
356
+ });
357
+ }
358
+ void controller.refreshTraceSource(`session-${event.kind}`).catch(() => undefined);
359
+ }
360
+ export function traceMetadata(controller, reason) {
361
+ const channels = {};
362
+ for (const driver of controller.drivers) {
363
+ const status = controller.statuses.get(driver.id);
364
+ if (status === undefined) {
365
+ continue;
366
+ }
367
+ channels[driver.id] = status.kind === "running"
368
+ ? { kind: "running", ...status.summary }
369
+ : { kind: status.kind, reason: status.reason };
370
+ }
371
+ return {
372
+ reason,
373
+ ...(controller.backgroundSnapshot === undefined ? {} : { backgroundSnapshot: controller.backgroundSnapshot }),
374
+ ...(controller.exporterStatusValue.kind === "configured"
375
+ ? {
376
+ observability: {
377
+ // Persist only the endpoint + warning/error strings (never headers
378
+ // or secrets) so the detached `status` reader can surface exporter
379
+ // state. JSONL artifacts always remain local.
380
+ endpoint: controller.exporterStatusValue.endpoint,
381
+ includeSensitiveData: controller.exporterStatusValue.includeSensitiveData,
382
+ jsonlArtifactsLocal: true,
383
+ ...(controller.exporterStatusValue.lastWarning === undefined
384
+ ? {}
385
+ : { lastWarning: controller.exporterStatusValue.lastWarning }),
386
+ ...(controller.exporterStatusValue.lastError === undefined
387
+ ? {}
388
+ : { lastError: controller.exporterStatusValue.lastError }),
389
+ },
390
+ }
391
+ : {}),
392
+ sandbox: {
393
+ configured: controller.sandboxStatusValue.configured,
394
+ configuredMode: controller.sandboxStatusValue.configuredMode,
395
+ effective: controller.sandboxStatusValue.effective,
396
+ engine: controller.sandboxStatusValue.engine,
397
+ engineAvailable: controller.sandboxStatusValue.engineAvailable,
398
+ fallback: controller.sandboxStatusValue.fallback,
399
+ fallbackActive: controller.sandboxStatusValue.fallbackActive,
400
+ unsafeAllowHostProcess: controller.sandboxStatusValue.unsafeAllowHostProcess,
401
+ detail: controller.sandboxStatusValue.detail,
402
+ ...(controller.sandboxStatusValue.warning === undefined ? {} : { warning: controller.sandboxStatusValue.warning }),
403
+ ...(controller.sandboxStatusValue.resolutionError === undefined
404
+ ? {}
405
+ : { resolutionError: controller.sandboxStatusValue.resolutionError }),
406
+ },
407
+ ...(controller.selectedSkillsValue === undefined
408
+ ? {}
409
+ : {
410
+ context: {
411
+ selectedSkills: [...controller.selectedSkillsValue],
412
+ },
413
+ }),
414
+ ...(controller.sessionMetadataValue === undefined ? {} : { session: controller.sessionMetadataValue }),
415
+ channels,
416
+ };
417
+ }
418
+ //# sourceMappingURL=app-controller-traceability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-controller-traceability.js","sourceRoot":"","sources":["../src/app-controller-traceability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { MonoAgentConfig } from "@mono-agent/config";
2
+ import type { AgentContinuationOriginContext } from "@mono-agent/agent-contracts";
3
+ import type { TraceSourceMemoryHealth } from "@mono-agent/observability";
4
+ import type { BujoMemoryHealthReport } from "@mono-agent/memory/bujo";
5
+ import type { SandboxEffectiveState } from "@mono-agent/runtime-adapter";
6
+ import type { SandboxStatus } from "./app-controller.js";
7
+ import type { ContinuationChannelSynthesisResult, RunningChannel } from "./channels.js";
8
+ import type { ContinuationHistoryRecordResult } from "./continuations.js";
9
+ export interface ContinuationRunningChannel extends RunningChannel {
10
+ synthesizeContinuation?(input: {
11
+ readonly continuationId: string;
12
+ readonly originRunId: string;
13
+ readonly historyBoundary?: string;
14
+ readonly originContextPolicy: "pinned" | "detached_latest";
15
+ readonly originContext?: AgentContinuationOriginContext;
16
+ readonly originConversationId: string;
17
+ readonly replyToConversationId: string;
18
+ readonly prompt: string;
19
+ }): Promise<ContinuationChannelSynthesisResult>;
20
+ recordContinuationHistory?(input: {
21
+ readonly conversationId: string;
22
+ readonly text: string;
23
+ readonly deliveryKey: string;
24
+ }): Promise<ContinuationHistoryRecordResult>;
25
+ }
26
+ export declare function continuationSynthesisPrompt(payload: unknown, mode: string): string;
27
+ export declare function isActionableContinuationPayload(payload: unknown): boolean;
28
+ export declare function normalizeContinuationOrigin(conversationId: string): string;
29
+ export declare function isPermanentDeliveryReason(reason: string): boolean;
30
+ export declare function traceMemoryHealthFromBujo(report: BujoMemoryHealthReport): TraceSourceMemoryHealth;
31
+ export declare function unknownNoMemoryHealth(): TraceSourceMemoryHealth;
32
+ export declare function unknownBujoMemoryHealth(mode: NonNullable<MonoAgentConfig["memory"]>["mode"]): TraceSourceMemoryHealth;
33
+ export declare function nextDailyRolloverAt(now: Date, timezone: string | undefined): string | undefined;
34
+ export declare function sandboxStatusFromState(state: SandboxEffectiveState): SandboxStatus;
35
+ export declare function reasonOf(error: unknown): string;
36
+ export declare function runtimeRouteContainsDirectOpenCode(config: MonoAgentConfig): boolean;
37
+ export declare function isInteractionToolName(name: string): boolean;
38
+ //# sourceMappingURL=app-controller-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-controller-utils.d.ts","sourceRoot":"","sources":["../src/app-controller-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,KAAK,EACV,uBAAuB,EAGxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,sBAAsB,EAGvB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EACV,kCAAkC,EAClC,cAAc,EACf,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAG1E,MAAM,WAAW,0BAA2B,SAAQ,cAAc;IAChE,sBAAsB,CAAC,CAAC,KAAK,EAAE;QAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,GAAG,iBAAiB,CAAC;QAC3D,QAAQ,CAAC,aAAa,CAAC,EAAE,8BAA8B,CAAC;QACxD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;QACtC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;QACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAChD,yBAAyB,CAAC,CAAC,KAAK,EAAE;QAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;CAC9C;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAalF;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAMzE;AAED,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOjE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,sBAAsB,GAAG,uBAAuB,CAkBjG;AA8CD,wBAAgB,qBAAqB,IAAI,uBAAuB,CAM/D;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,WAAW,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GACnD,uBAAuB,CAQzB;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAwB/F;AA8CD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,qBAAqB,GAAG,aAAa,CAOlF;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE/C;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAGnF;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D"}