@mono-agent/agent-app 0.19.1 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/README.md +307 -32
  2. package/dist/acp-bridge.d.ts.map +1 -1
  3. package/dist/acp-bridge.js +113 -54
  4. package/dist/acp-bridge.js.map +1 -1
  5. package/dist/acp-session-store.d.ts +12 -0
  6. package/dist/acp-session-store.d.ts.map +1 -0
  7. package/dist/acp-session-store.js +74 -0
  8. package/dist/acp-session-store.js.map +1 -0
  9. package/dist/agent-artifact-paths.d.ts +8 -0
  10. package/dist/agent-artifact-paths.d.ts.map +1 -0
  11. package/dist/agent-artifact-paths.js +11 -0
  12. package/dist/agent-artifact-paths.js.map +1 -0
  13. package/dist/agent-root-coordinator.d.ts +101 -0
  14. package/dist/agent-root-coordinator.d.ts.map +1 -0
  15. package/dist/agent-root-coordinator.js +470 -0
  16. package/dist/agent-root-coordinator.js.map +1 -0
  17. package/dist/app-controller-channels.d.ts +13 -1
  18. package/dist/app-controller-channels.d.ts.map +1 -1
  19. package/dist/app-controller-channels.js +152 -20
  20. package/dist/app-controller-channels.js.map +1 -1
  21. package/dist/app-controller-continuation.d.ts +2 -0
  22. package/dist/app-controller-continuation.d.ts.map +1 -1
  23. package/dist/app-controller-continuation.js.map +1 -1
  24. package/dist/app-controller-lifecycle.d.ts +5 -0
  25. package/dist/app-controller-lifecycle.d.ts.map +1 -1
  26. package/dist/app-controller-lifecycle.js +24 -5
  27. package/dist/app-controller-lifecycle.js.map +1 -1
  28. package/dist/app-controller-maintenance.d.ts +4 -0
  29. package/dist/app-controller-maintenance.d.ts.map +1 -1
  30. package/dist/app-controller-maintenance.js +34 -2
  31. package/dist/app-controller-maintenance.js.map +1 -1
  32. package/dist/app-controller-memory.d.ts +2 -0
  33. package/dist/app-controller-memory.d.ts.map +1 -1
  34. package/dist/app-controller-memory.js +6 -3
  35. package/dist/app-controller-memory.js.map +1 -1
  36. package/dist/app-controller-process-jobs.d.ts +49 -0
  37. package/dist/app-controller-process-jobs.d.ts.map +1 -0
  38. package/dist/app-controller-process-jobs.js +294 -0
  39. package/dist/app-controller-process-jobs.js.map +1 -0
  40. package/dist/app-controller-responder.d.ts +17 -0
  41. package/dist/app-controller-responder.d.ts.map +1 -1
  42. package/dist/app-controller-responder.js +164 -13
  43. package/dist/app-controller-responder.js.map +1 -1
  44. package/dist/app-controller-traceability.d.ts +8 -0
  45. package/dist/app-controller-traceability.d.ts.map +1 -1
  46. package/dist/app-controller-traceability.js +22 -1
  47. package/dist/app-controller-traceability.js.map +1 -1
  48. package/dist/app-controller-types.d.ts +1 -1
  49. package/dist/app-controller-types.d.ts.map +1 -1
  50. package/dist/app-controller-utils.d.ts +8 -0
  51. package/dist/app-controller-utils.d.ts.map +1 -1
  52. package/dist/app-controller-utils.js +24 -1
  53. package/dist/app-controller-utils.js.map +1 -1
  54. package/dist/app-controller.d.ts +45 -1
  55. package/dist/app-controller.d.ts.map +1 -1
  56. package/dist/app-controller.js +135 -39
  57. package/dist/app-controller.js.map +1 -1
  58. package/dist/background-log-maintenance.d.ts +85 -2
  59. package/dist/background-log-maintenance.d.ts.map +1 -1
  60. package/dist/background-log-maintenance.js +407 -136
  61. package/dist/background-log-maintenance.js.map +1 -1
  62. package/dist/background-runtime.d.ts.map +1 -1
  63. package/dist/background-runtime.js +22 -41
  64. package/dist/background-runtime.js.map +1 -1
  65. package/dist/background.d.ts +18 -26
  66. package/dist/background.d.ts.map +1 -1
  67. package/dist/background.js +105 -138
  68. package/dist/background.js.map +1 -1
  69. package/dist/channel-drivers/cron.d.ts +12 -1
  70. package/dist/channel-drivers/cron.d.ts.map +1 -1
  71. package/dist/channel-drivers/cron.js +121 -18
  72. package/dist/channel-drivers/cron.js.map +1 -1
  73. package/dist/channel-drivers/native-notify.d.ts +3 -0
  74. package/dist/channel-drivers/native-notify.d.ts.map +1 -1
  75. package/dist/channel-drivers/native-notify.js +2 -1
  76. package/dist/channel-drivers/native-notify.js.map +1 -1
  77. package/dist/channel-drivers/slack.d.ts.map +1 -1
  78. package/dist/channel-drivers/slack.js +41 -4
  79. package/dist/channel-drivers/slack.js.map +1 -1
  80. package/dist/channel-drivers/telegram.d.ts.map +1 -1
  81. package/dist/channel-drivers/telegram.js +46 -3
  82. package/dist/channel-drivers/telegram.js.map +1 -1
  83. package/dist/channel-drivers/tui.d.ts +13 -2
  84. package/dist/channel-drivers/tui.d.ts.map +1 -1
  85. package/dist/channel-drivers/tui.js +112 -3
  86. package/dist/channel-drivers/tui.js.map +1 -1
  87. package/dist/channels.d.ts +1 -1
  88. package/dist/channels.d.ts.map +1 -1
  89. package/dist/channels.js +4 -2
  90. package/dist/channels.js.map +1 -1
  91. package/dist/cli-args.d.ts +15 -1
  92. package/dist/cli-args.d.ts.map +1 -1
  93. package/dist/cli-args.js +82 -12
  94. package/dist/cli-args.js.map +1 -1
  95. package/dist/cli-background-command.d.ts +9 -2
  96. package/dist/cli-background-command.d.ts.map +1 -1
  97. package/dist/cli-background-command.js +179 -66
  98. package/dist/cli-background-command.js.map +1 -1
  99. package/dist/cli-commands.d.ts.map +1 -1
  100. package/dist/cli-commands.js +50 -12
  101. package/dist/cli-commands.js.map +1 -1
  102. package/dist/cli-help.d.ts.map +1 -1
  103. package/dist/cli-help.js +21 -1
  104. package/dist/cli-help.js.map +1 -1
  105. package/dist/config-reference.d.ts.map +1 -1
  106. package/dist/config-reference.js +105 -2
  107. package/dist/config-reference.js.map +1 -1
  108. package/dist/configured-agent.d.ts +64 -21
  109. package/dist/configured-agent.d.ts.map +1 -1
  110. package/dist/configured-agent.js +840 -156
  111. package/dist/configured-agent.js.map +1 -1
  112. package/dist/conversation-state-roots.d.ts +59 -0
  113. package/dist/conversation-state-roots.d.ts.map +1 -0
  114. package/dist/conversation-state-roots.js +248 -0
  115. package/dist/conversation-state-roots.js.map +1 -0
  116. package/dist/cron-control-store.d.ts +91 -0
  117. package/dist/cron-control-store.d.ts.map +1 -0
  118. package/dist/cron-control-store.js +1251 -0
  119. package/dist/cron-control-store.js.map +1 -0
  120. package/dist/cron-operator-service.d.ts +54 -0
  121. package/dist/cron-operator-service.d.ts.map +1 -0
  122. package/dist/cron-operator-service.js +352 -0
  123. package/dist/cron-operator-service.js.map +1 -0
  124. package/dist/doctor-session-history.d.ts +9 -0
  125. package/dist/doctor-session-history.d.ts.map +1 -0
  126. package/dist/doctor-session-history.js +313 -0
  127. package/dist/doctor-session-history.js.map +1 -0
  128. package/dist/doctor.d.ts +2 -1
  129. package/dist/doctor.d.ts.map +1 -1
  130. package/dist/doctor.js +356 -9
  131. package/dist/doctor.js.map +1 -1
  132. package/dist/index.d.ts +4 -0
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js +2 -0
  135. package/dist/index.js.map +1 -1
  136. package/dist/interaction-bridge.d.ts +1 -0
  137. package/dist/interaction-bridge.d.ts.map +1 -1
  138. package/dist/interaction-bridge.js +54 -6
  139. package/dist/interaction-bridge.js.map +1 -1
  140. package/dist/jobs-command.d.ts +17 -0
  141. package/dist/jobs-command.d.ts.map +1 -0
  142. package/dist/jobs-command.js +207 -0
  143. package/dist/jobs-command.js.map +1 -0
  144. package/dist/launchd-lifecycle-lock.d.ts +36 -0
  145. package/dist/launchd-lifecycle-lock.d.ts.map +1 -0
  146. package/dist/launchd-lifecycle-lock.js +124 -0
  147. package/dist/launchd-lifecycle-lock.js.map +1 -0
  148. package/dist/launchd-log-monitor-status.d.ts +7 -0
  149. package/dist/launchd-log-monitor-status.d.ts.map +1 -0
  150. package/dist/launchd-log-monitor-status.js +224 -0
  151. package/dist/launchd-log-monitor-status.js.map +1 -0
  152. package/dist/launchd-logs.d.ts +9 -1
  153. package/dist/launchd-logs.d.ts.map +1 -1
  154. package/dist/launchd-logs.js +69 -16
  155. package/dist/launchd-logs.js.map +1 -1
  156. package/dist/launchd-maintenance-command.d.ts +10 -0
  157. package/dist/launchd-maintenance-command.d.ts.map +1 -0
  158. package/dist/launchd-maintenance-command.js +2 -0
  159. package/dist/launchd-maintenance-command.js.map +1 -0
  160. package/dist/launchd-maintenance-entry.d.ts +30 -0
  161. package/dist/launchd-maintenance-entry.d.ts.map +1 -0
  162. package/dist/launchd-maintenance-entry.js +206 -0
  163. package/dist/launchd-maintenance-entry.js.map +1 -0
  164. package/dist/launchd-maintenance-gate.d.ts +28 -0
  165. package/dist/launchd-maintenance-gate.d.ts.map +1 -0
  166. package/dist/launchd-maintenance-gate.js +80 -0
  167. package/dist/launchd-maintenance-gate.js.map +1 -0
  168. package/dist/launchd-private-files.d.ts +3 -0
  169. package/dist/launchd-private-files.d.ts.map +1 -0
  170. package/dist/launchd-private-files.js +58 -0
  171. package/dist/launchd-private-files.js.map +1 -0
  172. package/dist/launchd.d.ts +56 -2
  173. package/dist/launchd.d.ts.map +1 -1
  174. package/dist/launchd.js +210 -5
  175. package/dist/launchd.js.map +1 -1
  176. package/dist/local-configuration.d.ts.map +1 -1
  177. package/dist/local-configuration.js +34 -7
  178. package/dist/local-configuration.js.map +1 -1
  179. package/dist/managed-launchd-maintenance-environment.d.ts +3 -0
  180. package/dist/managed-launchd-maintenance-environment.d.ts.map +1 -0
  181. package/dist/managed-launchd-maintenance-environment.js +12 -0
  182. package/dist/managed-launchd-maintenance-environment.js.map +1 -0
  183. package/dist/managed-runtime-launch-proof.d.ts +11 -0
  184. package/dist/managed-runtime-launch-proof.d.ts.map +1 -0
  185. package/dist/managed-runtime-launch-proof.js +59 -0
  186. package/dist/managed-runtime-launch-proof.js.map +1 -0
  187. package/dist/managed-runtime-maintenance-entry.d.ts +10 -0
  188. package/dist/managed-runtime-maintenance-entry.d.ts.map +1 -0
  189. package/dist/managed-runtime-maintenance-entry.js +244 -0
  190. package/dist/managed-runtime-maintenance-entry.js.map +1 -0
  191. package/dist/managed-web-logs.d.ts +29 -11
  192. package/dist/managed-web-logs.d.ts.map +1 -1
  193. package/dist/managed-web-logs.js +244 -121
  194. package/dist/managed-web-logs.js.map +1 -1
  195. package/dist/managed-web-maintenance-environment.d.ts +6 -0
  196. package/dist/managed-web-maintenance-environment.d.ts.map +1 -0
  197. package/dist/managed-web-maintenance-environment.js +19 -0
  198. package/dist/managed-web-maintenance-environment.js.map +1 -0
  199. package/dist/mcp-apps.d.ts +37 -0
  200. package/dist/mcp-apps.d.ts.map +1 -0
  201. package/dist/mcp-apps.js +1753 -0
  202. package/dist/mcp-apps.js.map +1 -0
  203. package/dist/memory-command.d.ts +12 -0
  204. package/dist/memory-command.d.ts.map +1 -1
  205. package/dist/memory-command.js +510 -1
  206. package/dist/memory-command.js.map +1 -1
  207. package/dist/modules/known-tools.d.ts +1 -1
  208. package/dist/modules/known-tools.d.ts.map +1 -1
  209. package/dist/modules/known-tools.js +2 -0
  210. package/dist/modules/known-tools.js.map +1 -1
  211. package/dist/posted-reply-history.d.ts.map +1 -1
  212. package/dist/posted-reply-history.js +12 -0
  213. package/dist/posted-reply-history.js.map +1 -1
  214. package/dist/proactive-notify.d.ts +4 -1
  215. package/dist/proactive-notify.d.ts.map +1 -1
  216. package/dist/proactive-notify.js +43 -5
  217. package/dist/proactive-notify.js.map +1 -1
  218. package/dist/process-jobs-config.d.ts +84 -0
  219. package/dist/process-jobs-config.d.ts.map +1 -0
  220. package/dist/process-jobs-config.js +427 -0
  221. package/dist/process-jobs-config.js.map +1 -0
  222. package/dist/process-jobs-context.d.ts +24 -0
  223. package/dist/process-jobs-context.d.ts.map +1 -0
  224. package/dist/process-jobs-context.js +135 -0
  225. package/dist/process-jobs-context.js.map +1 -0
  226. package/dist/process-jobs-protection.d.ts +33 -0
  227. package/dist/process-jobs-protection.d.ts.map +1 -0
  228. package/dist/process-jobs-protection.js +74 -0
  229. package/dist/process-jobs-protection.js.map +1 -0
  230. package/dist/process-jobs-root-registry.d.ts +115 -0
  231. package/dist/process-jobs-root-registry.d.ts.map +1 -0
  232. package/dist/process-jobs-root-registry.js +978 -0
  233. package/dist/process-jobs-root-registry.js.map +1 -0
  234. package/dist/process-jobs-runtime.d.ts +38 -0
  235. package/dist/process-jobs-runtime.d.ts.map +1 -0
  236. package/dist/process-jobs-runtime.js +178 -0
  237. package/dist/process-jobs-runtime.js.map +1 -0
  238. package/dist/process-jobs-service.d.ts +70 -0
  239. package/dist/process-jobs-service.d.ts.map +1 -0
  240. package/dist/process-jobs-service.js +1989 -0
  241. package/dist/process-jobs-service.js.map +1 -0
  242. package/dist/process-jobs-store.d.ts +151 -0
  243. package/dist/process-jobs-store.d.ts.map +1 -0
  244. package/dist/process-jobs-store.js +1290 -0
  245. package/dist/process-jobs-store.js.map +1 -0
  246. package/dist/reply-artifacts.d.ts +65 -0
  247. package/dist/reply-artifacts.d.ts.map +1 -0
  248. package/dist/reply-artifacts.js +1147 -0
  249. package/dist/reply-artifacts.js.map +1 -0
  250. package/dist/reply-part-budget.d.ts +16 -0
  251. package/dist/reply-part-budget.d.ts.map +1 -0
  252. package/dist/reply-part-budget.js +57 -0
  253. package/dist/reply-part-budget.js.map +1 -0
  254. package/dist/request-model-override.d.ts +19 -0
  255. package/dist/request-model-override.d.ts.map +1 -1
  256. package/dist/request-model-override.js +54 -1
  257. package/dist/request-model-override.js.map +1 -1
  258. package/dist/request-scoped-mcp.d.ts +31 -0
  259. package/dist/request-scoped-mcp.d.ts.map +1 -0
  260. package/dist/request-scoped-mcp.js +197 -0
  261. package/dist/request-scoped-mcp.js.map +1 -0
  262. package/dist/run-history.d.ts.map +1 -1
  263. package/dist/run-history.js +50 -254
  264. package/dist/run-history.js.map +1 -1
  265. package/dist/runtime-option-extensions.d.ts +23 -0
  266. package/dist/runtime-option-extensions.d.ts.map +1 -1
  267. package/dist/runtime-option-extensions.js +55 -0
  268. package/dist/runtime-option-extensions.js.map +1 -1
  269. package/dist/runtime-routes.d.ts +7 -1
  270. package/dist/runtime-routes.d.ts.map +1 -1
  271. package/dist/runtime-routes.js +25 -0
  272. package/dist/runtime-routes.js.map +1 -1
  273. package/dist/secure-file-replace.d.ts +3 -0
  274. package/dist/secure-file-replace.d.ts.map +1 -1
  275. package/dist/secure-file-replace.js +31 -7
  276. package/dist/secure-file-replace.js.map +1 -1
  277. package/dist/session-history.d.ts +146 -0
  278. package/dist/session-history.d.ts.map +1 -0
  279. package/dist/session-history.js +347 -0
  280. package/dist/session-history.js.map +1 -0
  281. package/dist/sessions.d.ts +45 -2
  282. package/dist/sessions.d.ts.map +1 -1
  283. package/dist/sessions.js +849 -30
  284. package/dist/sessions.js.map +1 -1
  285. package/dist/web-command.d.ts +12 -11
  286. package/dist/web-command.d.ts.map +1 -1
  287. package/dist/web-command.js +554 -80
  288. package/dist/web-command.js.map +1 -1
  289. package/dist/web-log-maintenance-command.d.ts +7 -0
  290. package/dist/web-log-maintenance-command.d.ts.map +1 -0
  291. package/dist/web-log-maintenance-command.js +21 -0
  292. package/dist/web-log-maintenance-command.js.map +1 -0
  293. package/dist/web-log-maintenance-status.d.ts +26 -0
  294. package/dist/web-log-maintenance-status.d.ts.map +1 -0
  295. package/dist/web-log-maintenance-status.js +171 -0
  296. package/dist/web-log-maintenance-status.js.map +1 -0
  297. package/dist/web-log-maintenance.d.ts +32 -0
  298. package/dist/web-log-maintenance.d.ts.map +1 -0
  299. package/dist/web-log-maintenance.js +163 -0
  300. package/dist/web-log-maintenance.js.map +1 -0
  301. package/dist/web-maintenance-paths.d.ts +12 -0
  302. package/dist/web-maintenance-paths.d.ts.map +1 -0
  303. package/dist/web-maintenance-paths.js +24 -0
  304. package/dist/web-maintenance-paths.js.map +1 -0
  305. package/dist/wizard/prompts.d.ts.map +1 -1
  306. package/dist/wizard/prompts.js +1 -0
  307. package/dist/wizard/prompts.js.map +1 -1
  308. package/dist/wizard/run.js +1 -1
  309. package/dist/wizard/run.js.map +1 -1
  310. package/package.json +15 -15
  311. package/schema/mono-agent.config.schema.json +106 -1
  312. package/skills/mono-agent-composer/references/config-blueprint.md +27 -2
  313. package/skills/mono-agent-composer/references/discovery-questions.md +2 -2
  314. package/skills/mono-agent-composer/references/feature-coverage.md +6 -4
  315. package/skills/mono-agent-composer/references/package-map.md +19 -3
  316. package/skills/mono-agent-composer/references/playbooks.md +3 -3
  317. package/skills/mono-agent-composer/references/validation.md +4 -2
@@ -0,0 +1,313 @@
1
+ import { lstat, readdir, stat } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { DatabaseSync } from "node:sqlite";
4
+ import { isProcessAlive, ToolHistoryReader, TOOL_HISTORY_APPLICATION_ID, TOOL_HISTORY_DATABASE, TOOL_HISTORY_DIRECTORY, TOOL_HISTORY_OWNER_DATABASE, TOOL_HISTORY_USER_VERSION, } from "@mono-agent/agent-harness";
5
+ /** Read-only storage/security/recovery audit for canonical tool lifecycle state. */
6
+ export async function sessionToolHistorySection(options) {
7
+ try {
8
+ return await inspectSessionToolHistorySection(options);
9
+ }
10
+ catch (error) {
11
+ const details = [
12
+ `Session tool history could not be inspected (${boundedInspectionErrorCode(error)}).`,
13
+ ];
14
+ if (!options.requestScopedToolSupported) {
15
+ details.push("unsupported_route: lifecycle records persist and cold-project, but this direct OpenCode/ACP route cannot expose SessionHistory.");
16
+ }
17
+ return { id: "session-tool-history", label: "Session tool history", status: "error", details };
18
+ }
19
+ }
20
+ async function inspectSessionToolHistorySection(options) {
21
+ const details = [];
22
+ let status = "ok";
23
+ const worsen = (next, detail) => {
24
+ details.push(detail);
25
+ if (next === "error" || next === "waiting" && status === "ok")
26
+ status = next;
27
+ };
28
+ const historyRootInfo = await optionalLstat(options.historyRoot);
29
+ const historyRootErrorCode = historyRootInfo === undefined
30
+ ? undefined
31
+ : !historyRootInfo.isDirectory() || historyRootInfo.isSymbolicLink()
32
+ ? "HISTORY_ROOT_INSECURE"
33
+ : !ownerOnly(historyRootInfo, 0o700) ? "EACCES" : undefined;
34
+ if (historyRootErrorCode !== undefined) {
35
+ const error = new Error("Session history root must be a real current-user directory with mode 0700.");
36
+ error.code = historyRootErrorCode;
37
+ throw error;
38
+ }
39
+ const messageUsage = await topLevelMessageHistoryUsage(options.historyRoot).catch(() => undefined);
40
+ if (messageUsage === undefined) {
41
+ worsen("error", "Message-history bytes could not be inspected.");
42
+ }
43
+ else {
44
+ details.push(`Message history: ${String(messageUsage.files)} files, ${String(messageUsage.bytes)} bytes.`);
45
+ }
46
+ const toolDirectory = join(options.historyRoot, TOOL_HISTORY_DIRECTORY);
47
+ const contentPath = join(toolDirectory, TOOL_HISTORY_DATABASE);
48
+ const journalPath = `${contentPath}-journal`;
49
+ const locksDirectory = join(options.historyRoot, ".locks");
50
+ const ownerPath = join(locksDirectory, TOOL_HISTORY_OWNER_DATABASE);
51
+ const toolDirectoryInfo = await optionalLstat(toolDirectory);
52
+ const ownerInfo = await optionalLstat(ownerPath);
53
+ if (toolDirectoryInfo === undefined && ownerInfo === undefined) {
54
+ details.push("Tool history: not created yet (0 bytes).");
55
+ if (!options.requestScopedToolSupported) {
56
+ worsen("waiting", "unsupported_route: lifecycle records will persist and cold-project, but this direct OpenCode/ACP route cannot expose SessionHistory.");
57
+ }
58
+ return { id: "session-tool-history", label: "Session tool history", status, details };
59
+ }
60
+ if (toolDirectoryInfo === undefined || !toolDirectoryInfo.isDirectory() || toolDirectoryInfo.isSymbolicLink()) {
61
+ worsen("error", "Tool history directory must be a real owner-only directory.");
62
+ }
63
+ else if (!ownerOnly(toolDirectoryInfo, 0o700)) {
64
+ worsen("error", "Tool history directory must be owned by the current user with mode 0700.");
65
+ }
66
+ const locksInfo = await optionalLstat(locksDirectory);
67
+ if (locksInfo === undefined || !locksInfo.isDirectory() || locksInfo.isSymbolicLink() || !ownerOnly(locksInfo, 0o700)) {
68
+ worsen("error", "Tool history owner-lock directory must be a real current-user directory with mode 0700.");
69
+ }
70
+ let entries = [];
71
+ try {
72
+ entries = await readdir(toolDirectory);
73
+ }
74
+ catch { /* directory error is already reported */ }
75
+ const unexpected = entries.filter((name) => name !== TOOL_HISTORY_DATABASE && name !== `${TOOL_HISTORY_DATABASE}-journal`);
76
+ if (unexpected.length > 0)
77
+ worsen("error", `Tool history directory contains unsupported entries: ${unexpected.join(", ")}.`);
78
+ if (entries.some((name) => name.endsWith("-wal") || name.endsWith("-shm"))) {
79
+ worsen("error", "Tool history contains WAL/SHM state even though its canonical journal mode is DELETE.");
80
+ }
81
+ const owner = inspectOwner(ownerPath, ownerInfo, worsen);
82
+ const contentInfo = await optionalLstat(contentPath);
83
+ const contentSecure = contentInfo !== undefined
84
+ && contentInfo.isFile()
85
+ && !contentInfo.isSymbolicLink()
86
+ && contentInfo.nlink === 1
87
+ && ownerOnly(contentInfo, 0o600);
88
+ if (!contentSecure) {
89
+ if (contentInfo === undefined && (owner.live === true || owner.initializing === true)) {
90
+ worsen("waiting", owner.live === true
91
+ ? "A live writer owns the sidecar and is still initializing the tool-history database."
92
+ : "The zero-byte owner database is still initializing before the tool-history database is published.");
93
+ }
94
+ else {
95
+ worsen("error", "Tool history database must be a single-link regular current-user file with mode 0600.");
96
+ }
97
+ }
98
+ const journalInfo = await optionalLstat(journalPath);
99
+ let journalSecure = false;
100
+ if (journalInfo !== undefined) {
101
+ if (!journalInfo.isFile() || journalInfo.isSymbolicLink() || journalInfo.nlink !== 1 || !ownerOnly(journalInfo, 0o600)) {
102
+ worsen("error", "Tool history DELETE journal must be a single-link regular current-user file with mode 0600.");
103
+ }
104
+ else {
105
+ journalSecure = true;
106
+ }
107
+ }
108
+ const canonicalToolFiles = [contentInfo, journalInfo, ownerInfo]
109
+ .filter((info) => info !== undefined && info.isFile() && !info.isSymbolicLink());
110
+ details.push(`Tool history physical storage: ${String(canonicalToolFiles.length)} files, ${String(canonicalToolFiles.reduce((sum, info) => sum + Number(info.size), 0))} bytes.`);
111
+ const contentInspection = contentSecure
112
+ ? inspectContentDatabase(contentPath, Number(contentInfo.size), owner.live === true, worsen)
113
+ : "unavailable";
114
+ if (contentInspection === "pristine") {
115
+ details.push("Tool history database is a pristine zero-byte file; the next writer can initialize it safely.");
116
+ if (owner.live === true) {
117
+ worsen("waiting", "A live writer is still initializing the pristine tool-history database.");
118
+ }
119
+ }
120
+ if (journalSecure) {
121
+ if (contentInspection === "pristine") {
122
+ worsen("waiting", owner.live === true
123
+ ? "An in-flight DELETE journal is present while the live writer initializes the pristine tool-history database."
124
+ : "A crash-stale DELETE journal accompanies the pristine tool-history database; the next writer can recover and initialize it safely.");
125
+ }
126
+ else if (owner.live === true) {
127
+ worsen("waiting", "An in-flight DELETE journal is present under the protected 0700 tool-history directory.");
128
+ }
129
+ else {
130
+ worsen("error", "A tool-history DELETE journal survived without a live writer; recovery is required before trusting the store.");
131
+ }
132
+ }
133
+ if (contentInspection === "readable") {
134
+ try {
135
+ const stats = new ToolHistoryReader(options.historyRoot).stats();
136
+ if (stats !== undefined) {
137
+ details.push(`Tool history: ${String(stats.calls)} calls, ${String(stats.records)} records, ${String(stats.tombstones)} tombstones, ${String(stats.retainedBytes)} retained payload bytes, ${String(stats.bytes)} database bytes.`, `Retention: ${String(stats.limits.maxCompletedCalls)} completed calls, ${String(stats.limits.maxAgeMs)} ms age, ${String(stats.limits.maxBytes)} retained bytes, ${String(stats.limits.maxTombstones)} tombstones.`);
138
+ if (stats.dangling > 0)
139
+ worsen(owner.live === true ? "waiting" : "error", `${String(stats.dangling)} dangling invocation(s) await terminal recovery.`);
140
+ if (stats.orphanResults > 0)
141
+ worsen("waiting", `${String(stats.orphanResults)} result(s) required a synthetic invocation because the provider start was missing.`);
142
+ if (stats.recovered > 0)
143
+ worsen("waiting", `${String(stats.recovered)} invocation(s) were recovered as interrupted without rerun.`);
144
+ if (stats.writeFailures > 0)
145
+ worsen("waiting", `${String(stats.writeFailures)} unresolved lifecycle write incident(s); only the matching tool-phase retry or a retry of the failed run finalization clears that incident.`);
146
+ if (stats.idempotencyConflicts > 0)
147
+ worsen("error", `${String(stats.idempotencyConflicts)} unresolved lifecycle idempotency conflict(s); only the matching tool-phase retry or canonical run-binding retry clears that incident.`);
148
+ if (stats.maintenanceFailures > 0)
149
+ worsen("waiting", `${String(stats.maintenanceFailures)} retention failure(s) remain since the latest successful retention pass.`);
150
+ if (stats.recoveryFailures > 0)
151
+ worsen("error", `${String(stats.recoveryFailures)} recovery failure(s) remain since the latest successful writer recovery.`);
152
+ if (stats.retainedBytes > stats.limits.maxBytes)
153
+ worsen("error", "Tool-history retained payload bytes exceed the configured byte ceiling.");
154
+ else if (stats.retainedBytes >= Math.floor(stats.limits.maxBytes * 0.9))
155
+ worsen("waiting", "Tool-history retained payload bytes have reached 90% of the configured ceiling.");
156
+ }
157
+ }
158
+ catch (error) {
159
+ const reason = reasonOf(error);
160
+ if (isUnsupportedSchema(error)) {
161
+ worsen("error", `Tool-history statistics are unavailable: ${reason} Downgrade hard-fails until persisted conversation state is purged.`);
162
+ }
163
+ else {
164
+ worsen(owner.live === true && isBusyReason(reason) ? "waiting" : "error", `Tool-history statistics are unavailable: ${reason}`);
165
+ }
166
+ }
167
+ }
168
+ else if (contentInspection === "unavailable" && contentInfo !== undefined && contentInfo.isFile() && !contentInfo.isSymbolicLink()) {
169
+ details.push(`Tool history database: ${String(contentInfo.size)} physical bytes; record statistics unavailable.`);
170
+ }
171
+ if (owner.pid !== undefined) {
172
+ details.push(owner.live === true
173
+ ? `Writer owner PID ${String(owner.pid)} is live.`
174
+ : `Recorded writer owner PID ${String(owner.pid)} is dead and will be reaped on the next bounded acquisition.`);
175
+ if (owner.live === false)
176
+ worsen("waiting", "A dead recorded writer owner remains; the next writer will reap it before acquisition.");
177
+ }
178
+ if (!options.requestScopedToolSupported) {
179
+ worsen("waiting", "unsupported_route: lifecycle records persist and cold-project, but this direct OpenCode/ACP route cannot expose SessionHistory.");
180
+ }
181
+ return { id: "session-tool-history", label: "Session tool history", status, details };
182
+ }
183
+ function inspectContentDatabase(path, size, liveOwner, worsen) {
184
+ let database;
185
+ try {
186
+ database = new DatabaseSync(path, { readOnly: true });
187
+ database.exec("PRAGMA busy_timeout=250");
188
+ const applicationId = pragmaNumber(database, "application_id");
189
+ const userVersion = pragmaNumber(database, "user_version");
190
+ if (size === 0 && applicationId === 0 && userVersion === 0)
191
+ return "pristine";
192
+ if (applicationId !== TOOL_HISTORY_APPLICATION_ID) {
193
+ worsen("error", `Foreign tool-history schema (application_id=${String(applicationId)}, user_version=${String(userVersion)}); persisted conversation state must be purged before adoption.`);
194
+ return "unavailable";
195
+ }
196
+ if (userVersion < TOOL_HISTORY_USER_VERSION) {
197
+ worsen("waiting", `Tool-history schema upgrade is pending (user_version=${String(userVersion)}, current=${String(TOOL_HISTORY_USER_VERSION)}); the next writer will upgrade it before use.`);
198
+ return "unavailable";
199
+ }
200
+ if (userVersion > TOOL_HISTORY_USER_VERSION) {
201
+ worsen("error", `Tool-history schema is newer (user_version=${String(userVersion)}, current=${String(TOOL_HISTORY_USER_VERSION)}). Downgrade hard-fails until persisted conversation state is purged.`);
202
+ return "unavailable";
203
+ }
204
+ const journalMode = String(Object.values(database.prepare("PRAGMA journal_mode").get())[0]).toLocaleLowerCase();
205
+ if (journalMode !== "delete") {
206
+ worsen("error", `Tool-history journal_mode is ${journalMode}; expected DELETE.`);
207
+ return "unavailable";
208
+ }
209
+ const integrity = String(Object.values(database.prepare("PRAGMA integrity_check").get())[0]);
210
+ if (integrity !== "ok") {
211
+ worsen("error", `Tool-history integrity_check failed: ${integrity}.`);
212
+ return "unavailable";
213
+ }
214
+ return "readable";
215
+ }
216
+ catch (error) {
217
+ const reason = reasonOf(error);
218
+ worsen(liveOwner && isBusyReason(reason) ? "waiting" : "error", `Tool-history database cannot be inspected: ${reason}`);
219
+ return "unavailable";
220
+ }
221
+ finally {
222
+ try {
223
+ database?.close();
224
+ }
225
+ catch { /* read-only doctor */ }
226
+ }
227
+ }
228
+ function inspectOwner(path, info, worsen) {
229
+ if (info === undefined)
230
+ return {};
231
+ if (!info.isFile() || info.isSymbolicLink() || info.nlink !== 1 || !ownerOnly(info, 0o600)) {
232
+ worsen("error", "Tool history owner database must be a single-link regular current-user file with mode 0600.");
233
+ return {};
234
+ }
235
+ if (info.size === 0) {
236
+ worsen("waiting", "Tool history owner database is a pristine zero-byte file; a writer may still be initializing it, otherwise the next writer can resume initialization safely.");
237
+ return { initializing: true };
238
+ }
239
+ let database;
240
+ try {
241
+ database = new DatabaseSync(path, { readOnly: true });
242
+ database.exec("PRAGMA busy_timeout=250");
243
+ const row = database.prepare("SELECT pid FROM writer_owner WHERE singleton=1").get();
244
+ const pid = Number(row?.pid);
245
+ return Number.isSafeInteger(pid) && pid > 0 ? { pid, live: isProcessAlive(pid) } : {};
246
+ }
247
+ catch (error) {
248
+ worsen("error", `Tool history owner database cannot be inspected: ${reasonOf(error)}`);
249
+ return {};
250
+ }
251
+ finally {
252
+ try {
253
+ database?.close();
254
+ }
255
+ catch { /* read-only doctor */ }
256
+ }
257
+ }
258
+ async function topLevelMessageHistoryUsage(root) {
259
+ let entries;
260
+ try {
261
+ entries = await readdir(root, { withFileTypes: true });
262
+ }
263
+ catch (error) {
264
+ if (errno(error) === "ENOENT")
265
+ return { files: 0, bytes: 0 };
266
+ throw error;
267
+ }
268
+ let files = 0;
269
+ let bytes = 0;
270
+ for (const entry of entries) {
271
+ if (!entry.isFile() || entry.isSymbolicLink() || !entry.name.endsWith(".history.json"))
272
+ continue;
273
+ files += 1;
274
+ bytes += (await stat(join(root, entry.name))).size;
275
+ }
276
+ return { files, bytes };
277
+ }
278
+ async function optionalLstat(path) {
279
+ try {
280
+ return await lstat(path);
281
+ }
282
+ catch (error) {
283
+ if (errno(error) === "ENOENT")
284
+ return undefined;
285
+ throw error;
286
+ }
287
+ }
288
+ function ownerOnly(info, mode) {
289
+ const uid = process.getuid?.();
290
+ return (uid === undefined || Number(info.uid) === uid)
291
+ && (process.platform === "win32" || (Number(info.mode) & 0o777) === mode);
292
+ }
293
+ function pragmaNumber(database, name) {
294
+ return Number(Object.values(database.prepare(`PRAGMA ${name}`).get())[0]);
295
+ }
296
+ function errno(error) {
297
+ return typeof error === "object" && error !== null && "code" in error && typeof error.code === "string" ? error.code : undefined;
298
+ }
299
+ function boundedInspectionErrorCode(error) {
300
+ const code = errno(error);
301
+ return code !== undefined && /^[A-Z][A-Z0-9_]{0,31}$/u.test(code) ? code : "INSPECTION_FAILED";
302
+ }
303
+ function reasonOf(error) {
304
+ return error instanceof Error ? error.message : String(error);
305
+ }
306
+ function isUnsupportedSchema(error) {
307
+ return typeof error === "object" && error !== null && "code" in error && error.code === "history_schema_unsupported"
308
+ || /schema is unsupported|schema is newer or foreign/iu.test(reasonOf(error));
309
+ }
310
+ function isBusyReason(reason) {
311
+ return /\b(?:busy|locked)\b/iu.test(reason);
312
+ }
313
+ //# sourceMappingURL=doctor-session-history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-session-history.js","sourceRoot":"","sources":["../src/doctor-session-history.ts"],"names":[],"mappings":"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"}
package/dist/doctor.d.ts CHANGED
@@ -2,6 +2,7 @@ import type { SandboxEngine } from "@mono-agent/runtime-adapter";
2
2
  import type { MonoAgentAppConfigInput } from "./app-config.js";
3
3
  import type { ChannelDriver } from "./channels.js";
4
4
  import type { LaunchdLogInspection } from "./launchd-logs.js";
5
+ import type { ManagedLaunchdLogMonitorStatus } from "./background-log-maintenance.js";
5
6
  import type { ValidationReport, ValidationSection } from "./doctor-types.js";
6
7
  export type { ValidationReport, ValidationSection, ValidationStatus } from "./doctor-types.js";
7
8
  export interface SdkAuthStatusExecOptions {
@@ -62,5 +63,5 @@ export declare function validateMonoAgentFolder(options: ValidateMonoAgentFolder
62
63
  /** Read-only launchd log inventory used by both `validate` and its `doctor` alias. */
63
64
  export declare function launchdLogsSection(configPath: string): Promise<ValidationSection>;
64
65
  /** Pure renderer kept separate so exact byte accounting is deterministic in tests. */
65
- export declare function launchdLogsSectionFromInspection(inspection: LaunchdLogInspection): ValidationSection;
66
+ export declare function launchdLogsSectionFromInspection(inspection: LaunchdLogInspection, monitorStatus?: ManagedLaunchdLogMonitorStatus | "unavailable"): ValidationSection;
66
67
  //# sourceMappingURL=doctor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAMjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAK/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AA+CnD,OAAO,KAAK,EAAE,oBAAoB,EAA8B,MAAM,mBAAmB,CAAC;AAE1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAoB,MAAM,mBAAmB,CAAC;AAE/F,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQ/F,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,uFAAuF;AACvF,MAAM,MAAM,qBAAqB,GAAG,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE,wBAAwB,KAC9B,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAEtC,MAAM,WAAW,8BAA+B,SAAQ,uBAAuB;IAC7E,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,2EAA2E;IAC3E,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,0EAA0E;IAC1E,QAAQ,CAAC,2BAA2B,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzD,2FAA2F;IAC3F,QAAQ,CAAC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IACvD,qFAAqF;IACrF,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,+BAA+B,CAAC,EAAE,MAAM,CAAC;CACnD;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,gBAAgB,CAAC,CA2F3B;AAED,sFAAsF;AACtF,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAevF;AAED,sFAAsF;AACtF,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,oBAAoB,GAC/B,iBAAiB,CAwBnB"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAMjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAK/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAgEnD,OAAO,KAAK,EAAE,oBAAoB,EAA8B,MAAM,mBAAmB,CAAC;AAE1F,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AAItF,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAoB,MAAM,mBAAmB,CAAC;AAE/F,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQ/F,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,uFAAuF;AACvF,MAAM,MAAM,qBAAqB,GAAG,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE,wBAAwB,KAC9B,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAEtC,MAAM,WAAW,8BAA+B,SAAQ,uBAAuB;IAC7E,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,2EAA2E;IAC3E,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,0EAA0E;IAC1E,QAAQ,CAAC,2BAA2B,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzD,2FAA2F;IAC3F,QAAQ,CAAC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IACvD,qFAAqF;IACrF,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,+BAA+B,CAAC,EAAE,MAAM,CAAC;CACnD;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,gBAAgB,CAAC,CAgG3B;AAED,sFAAsF;AACtF,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyBvF;AAED,sFAAsF;AACtF,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,oBAAoB,EAChC,aAAa,CAAC,EAAE,8BAA8B,GAAG,aAAa,GAC7D,iBAAiB,CAyBnB"}