@mono-agent/agent-app 0.3.0 → 0.4.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 (186) hide show
  1. package/README.md +24 -10
  2. package/dist/adapter-send-tools-main.d.ts +3 -0
  3. package/dist/adapter-send-tools-main.d.ts.map +1 -0
  4. package/dist/adapter-send-tools-main.js +20 -0
  5. package/dist/adapter-send-tools-main.js.map +1 -0
  6. package/dist/adapter-send-tools.d.ts +125 -0
  7. package/dist/adapter-send-tools.d.ts.map +1 -0
  8. package/dist/adapter-send-tools.js +629 -0
  9. package/dist/adapter-send-tools.js.map +1 -0
  10. package/dist/app-config.d.ts +86 -26
  11. package/dist/app-config.d.ts.map +1 -1
  12. package/dist/app-config.js +284 -90
  13. package/dist/app-config.js.map +1 -1
  14. package/dist/app.d.ts +51 -20
  15. package/dist/app.d.ts.map +1 -1
  16. package/dist/app.js +889 -119
  17. package/dist/app.js.map +1 -1
  18. package/dist/artifact-retention.d.ts +32 -0
  19. package/dist/artifact-retention.d.ts.map +1 -0
  20. package/dist/artifact-retention.js +111 -0
  21. package/dist/artifact-retention.js.map +1 -0
  22. package/dist/audit-runs.d.ts +12 -0
  23. package/dist/audit-runs.d.ts.map +1 -0
  24. package/dist/audit-runs.js +68 -0
  25. package/dist/audit-runs.js.map +1 -0
  26. package/dist/backfill.d.ts +75 -0
  27. package/dist/backfill.d.ts.map +1 -0
  28. package/dist/backfill.js +350 -0
  29. package/dist/backfill.js.map +1 -0
  30. package/dist/background.d.ts +8 -5
  31. package/dist/background.d.ts.map +1 -1
  32. package/dist/background.js +279 -53
  33. package/dist/background.js.map +1 -1
  34. package/dist/broadcast-recorder.d.ts +27 -0
  35. package/dist/broadcast-recorder.d.ts.map +1 -0
  36. package/dist/broadcast-recorder.js +82 -0
  37. package/dist/broadcast-recorder.js.map +1 -0
  38. package/dist/channel-config-view.d.ts +28 -0
  39. package/dist/channel-config-view.d.ts.map +1 -0
  40. package/dist/channel-config-view.js +79 -0
  41. package/dist/channel-config-view.js.map +1 -0
  42. package/dist/channel-gate.d.ts +22 -0
  43. package/dist/channel-gate.d.ts.map +1 -0
  44. package/dist/channel-gate.js +35 -0
  45. package/dist/channel-gate.js.map +1 -0
  46. package/dist/channel-plugins.d.ts +39 -0
  47. package/dist/channel-plugins.d.ts.map +1 -0
  48. package/dist/channel-plugins.js +346 -0
  49. package/dist/channel-plugins.js.map +1 -0
  50. package/dist/channels.d.ts +62 -66
  51. package/dist/channels.d.ts.map +1 -1
  52. package/dist/channels.js +850 -120
  53. package/dist/channels.js.map +1 -1
  54. package/dist/cli.d.ts +103 -4
  55. package/dist/cli.d.ts.map +1 -1
  56. package/dist/cli.js +984 -112
  57. package/dist/cli.js.map +1 -1
  58. package/dist/config-reference.d.ts +24 -0
  59. package/dist/config-reference.d.ts.map +1 -0
  60. package/dist/config-reference.js +580 -0
  61. package/dist/config-reference.js.map +1 -0
  62. package/dist/configured-agent.d.ts +104 -0
  63. package/dist/configured-agent.d.ts.map +1 -0
  64. package/dist/configured-agent.js +578 -0
  65. package/dist/configured-agent.js.map +1 -0
  66. package/dist/consumer-contract.d.ts +36 -0
  67. package/dist/consumer-contract.d.ts.map +1 -0
  68. package/dist/consumer-contract.js +290 -0
  69. package/dist/consumer-contract.js.map +1 -0
  70. package/dist/doctor.d.ts +17 -0
  71. package/dist/doctor.d.ts.map +1 -1
  72. package/dist/doctor.js +392 -95
  73. package/dist/doctor.js.map +1 -1
  74. package/dist/index.d.ts +14 -6
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +7 -3
  77. package/dist/index.js.map +1 -1
  78. package/dist/init.d.ts +23 -7
  79. package/dist/init.d.ts.map +1 -1
  80. package/dist/init.js +91 -26
  81. package/dist/init.js.map +1 -1
  82. package/dist/install-skill.d.ts +1 -1
  83. package/dist/install-skill.js +2 -2
  84. package/dist/install-skill.js.map +1 -1
  85. package/dist/interaction-bridge.d.ts +72 -0
  86. package/dist/interaction-bridge.d.ts.map +1 -0
  87. package/dist/interaction-bridge.js +354 -0
  88. package/dist/interaction-bridge.js.map +1 -0
  89. package/dist/launchd.d.ts +0 -2
  90. package/dist/launchd.d.ts.map +1 -1
  91. package/dist/launchd.js +0 -2
  92. package/dist/launchd.js.map +1 -1
  93. package/dist/memory-command.d.ts +10 -0
  94. package/dist/memory-command.d.ts.map +1 -0
  95. package/dist/memory-command.js +649 -0
  96. package/dist/memory-command.js.map +1 -0
  97. package/dist/memory-recall-main.d.ts +3 -0
  98. package/dist/memory-recall-main.d.ts.map +1 -0
  99. package/dist/memory-recall-main.js +30 -0
  100. package/dist/memory-recall-main.js.map +1 -0
  101. package/dist/memory-recall.d.ts +147 -0
  102. package/dist/memory-recall.d.ts.map +1 -0
  103. package/dist/memory-recall.js +345 -0
  104. package/dist/memory-recall.js.map +1 -0
  105. package/dist/memory-rituals.d.ts +8 -11
  106. package/dist/memory-rituals.d.ts.map +1 -1
  107. package/dist/memory-rituals.js +26 -25
  108. package/dist/memory-rituals.js.map +1 -1
  109. package/dist/metrics.d.ts +13 -0
  110. package/dist/metrics.d.ts.map +1 -0
  111. package/dist/metrics.js +105 -0
  112. package/dist/metrics.js.map +1 -0
  113. package/dist/notify-destinations.d.ts +23 -0
  114. package/dist/notify-destinations.d.ts.map +1 -0
  115. package/dist/notify-destinations.js +79 -0
  116. package/dist/notify-destinations.js.map +1 -0
  117. package/dist/posted-message-index.d.ts +61 -0
  118. package/dist/posted-message-index.d.ts.map +1 -0
  119. package/dist/posted-message-index.js +178 -0
  120. package/dist/posted-message-index.js.map +1 -0
  121. package/dist/proactive-notify.d.ts +32 -0
  122. package/dist/proactive-notify.d.ts.map +1 -0
  123. package/dist/proactive-notify.js +62 -0
  124. package/dist/proactive-notify.js.map +1 -0
  125. package/dist/recipes/base.d.ts +15 -0
  126. package/dist/recipes/base.d.ts.map +1 -0
  127. package/dist/recipes/base.js +51 -0
  128. package/dist/recipes/base.js.map +1 -0
  129. package/dist/recipes/catalog.d.ts +4 -0
  130. package/dist/recipes/catalog.d.ts.map +1 -0
  131. package/dist/recipes/catalog.js +509 -0
  132. package/dist/recipes/catalog.js.map +1 -0
  133. package/dist/recipes/index.d.ts +11 -0
  134. package/dist/recipes/index.d.ts.map +1 -0
  135. package/dist/recipes/index.js +14 -0
  136. package/dist/recipes/index.js.map +1 -0
  137. package/dist/recipes/types.d.ts +70 -0
  138. package/dist/recipes/types.d.ts.map +1 -0
  139. package/dist/recipes/types.js +15 -0
  140. package/dist/recipes/types.js.map +1 -0
  141. package/dist/request-model-override.d.ts +67 -0
  142. package/dist/request-model-override.d.ts.map +1 -0
  143. package/dist/request-model-override.js +96 -0
  144. package/dist/request-model-override.js.map +1 -0
  145. package/dist/runs-health.d.ts +22 -0
  146. package/dist/runs-health.d.ts.map +1 -0
  147. package/dist/runs-health.js +144 -0
  148. package/dist/runs-health.js.map +1 -0
  149. package/dist/seen-conversations.d.ts +22 -0
  150. package/dist/seen-conversations.d.ts.map +1 -0
  151. package/dist/seen-conversations.js +120 -0
  152. package/dist/seen-conversations.js.map +1 -0
  153. package/dist/sessions.d.ts +21 -0
  154. package/dist/sessions.d.ts.map +1 -0
  155. package/dist/sessions.js +45 -0
  156. package/dist/sessions.js.map +1 -0
  157. package/dist/setup.d.ts +29 -0
  158. package/dist/setup.d.ts.map +1 -0
  159. package/dist/setup.js +97 -0
  160. package/dist/setup.js.map +1 -0
  161. package/dist/trigger-overrides.d.ts +17 -0
  162. package/dist/trigger-overrides.d.ts.map +1 -0
  163. package/dist/trigger-overrides.js +30 -0
  164. package/dist/trigger-overrides.js.map +1 -0
  165. package/dist/tui-command.d.ts +56 -0
  166. package/dist/tui-command.d.ts.map +1 -0
  167. package/dist/tui-command.js +160 -0
  168. package/dist/tui-command.js.map +1 -0
  169. package/dist/ui.d.ts +54 -0
  170. package/dist/ui.d.ts.map +1 -0
  171. package/dist/ui.js +157 -0
  172. package/dist/ui.js.map +1 -0
  173. package/dist/web-command.d.ts +39 -0
  174. package/dist/web-command.d.ts.map +1 -0
  175. package/dist/web-command.js +151 -0
  176. package/dist/web-command.js.map +1 -0
  177. package/package.json +22 -17
  178. package/schema/mono-agent.config.schema.json +1686 -0
  179. package/skills/mono-agent-composer/SKILL.md +38 -12
  180. package/skills/mono-agent-composer/agents/openai.yaml +4 -0
  181. package/skills/mono-agent-composer/references/config-blueprint.md +84 -31
  182. package/skills/mono-agent-composer/references/discovery-questions.md +49 -36
  183. package/skills/mono-agent-composer/references/feature-coverage.md +26 -19
  184. package/skills/mono-agent-composer/references/package-map.md +20 -22
  185. package/skills/mono-agent-composer/references/playbooks.md +209 -0
  186. package/skills/mono-agent-composer/references/validation.md +14 -5
@@ -1,10 +1,12 @@
1
1
  import { spawn } from "node:child_process";
2
- import { mkdir, rm, writeFile } from "node:fs/promises";
2
+ import { mkdir, rename, rm, stat, writeFile } from "node:fs/promises";
3
3
  import { resolve } from "node:path";
4
4
  import process from "node:process";
5
- import { listTraceSources } from "@mono-agent/observability";
6
- import { resolveAppTraceRegistryDir, resolveAppTraceStaleAfterMs } from "./app-config.js";
5
+ import { listRecordedRuns, listTraceSources } from "@mono-agent/observability";
6
+ import { describeSensitiveDataExportWarning, phoenixAppBaseUrl, resolveAppTraceRegistryDir, resolveAppTraceStaleAfterMs, } from "./app-config.js";
7
7
  import { bootout, bootstrap, buildPlistXml, defaultPathEnv, deriveLaunchdLabel, isLoaded, kickstartRestart, launchdPathsFor, makeLaunchctlRunner, } from "./launchd.js";
8
+ import { buildRunsHealthDisplay, RUNS_HEALTH_MAX_RUNS } from "./runs-health.js";
9
+ import * as ui from "./ui.js";
8
10
  /**
9
11
  * Resolve everything the control commands need from CLI args. The registry dir
10
12
  * and config path are resolved exactly as the worker will resolve them, so the
@@ -31,8 +33,6 @@ export async function resolveInstanceTarget(input) {
31
33
  // Bake an explicit --env-file (resolved absolute) into the plist so the
32
34
  // launchd worker loads the same env file the launcher did.
33
35
  ...(input.args.envFile === undefined ? {} : { envFile: resolve(cwd, input.args.envFile) }),
34
- ...(input.args.port === undefined ? {} : { port: input.args.port }),
35
- noConsole: input.args.noConsole,
36
36
  pathEnv: defaultPathEnv(input.env),
37
37
  };
38
38
  }
@@ -42,10 +42,13 @@ export function defaultBackgroundDeps() {
42
42
  getuid: () => process.getuid?.() ?? 0,
43
43
  now: () => Date.now(),
44
44
  sleep: (ms) => new Promise((resolvePromise) => setTimeout(resolvePromise, ms)),
45
+ listRecordedRuns,
45
46
  listTraceSources,
46
47
  writeFile: (path, data) => writeFile(path, data, "utf8"),
47
48
  mkdir: (path) => mkdir(path, { recursive: true }).then(() => undefined),
48
49
  rm: (path) => rm(path, { force: true }),
50
+ stat,
51
+ rename,
49
52
  isAlive: (pid) => {
50
53
  try {
51
54
  process.kill(pid, 0);
@@ -67,6 +70,8 @@ export function defaultBackgroundDeps() {
67
70
  }
68
71
  const DEFAULT_POLL = { timeoutMs: 18_000, intervalMs: 400 };
69
72
  const SINCE_SKEW_MS = 2_000;
73
+ export const LAUNCHD_LOG_MAX_BYTES = 5 * 1024 * 1024;
74
+ export const LAUNCHD_LOG_ROTATION_COUNT = 3;
70
75
  export async function startBackground(target, deps, poll = DEFAULT_POLL) {
71
76
  return await launchBackground(target, deps, poll);
72
77
  }
@@ -77,11 +82,13 @@ export async function restartBackground(target, deps, poll = DEFAULT_POLL) {
77
82
  async function launchBackground(target, deps, poll) {
78
83
  const uid = deps.getuid();
79
84
  await writePlist(target, deps);
85
+ await rotateLaunchdLogs(target.paths, deps);
80
86
  const sinceMs = deps.now();
81
87
  const outcome = await bootstrapOrRestart(target, deps, uid);
82
88
  if (!outcome.ok) {
83
89
  return failLaunch(target, deps, outcome.restarted ? "restart" : "start", outcome.failure);
84
90
  }
91
+ deps.stdout(ui.hint("Waiting for the worker to report ready…"));
85
92
  const ready = await pollInstanceReady(target, deps, { ...poll, sinceMs });
86
93
  if (ready === undefined) {
87
94
  return reportTimeout(target, deps);
@@ -101,14 +108,41 @@ async function writePlist(target, deps) {
101
108
  configPath: target.configPath,
102
109
  cwd: target.cwd,
103
110
  ...(target.envFile === undefined ? {} : { envFile: target.envFile }),
104
- ...(target.port === undefined ? {} : { port: target.port }),
105
- noConsole: target.noConsole,
106
111
  stdoutPath: target.paths.stdoutPath,
107
112
  stderrPath: target.paths.stderrPath,
108
113
  pathEnv: target.pathEnv,
109
114
  });
110
115
  await deps.writeFile(target.paths.plistPath, xml);
111
116
  }
117
+ async function rotateLaunchdLogs(paths, deps) {
118
+ await Promise.all([
119
+ rotateLaunchdLog(paths.stdoutPath, deps),
120
+ rotateLaunchdLog(paths.stderrPath, deps),
121
+ ]);
122
+ }
123
+ async function rotateLaunchdLog(path, deps) {
124
+ let size;
125
+ try {
126
+ size = (await deps.stat(path)).size;
127
+ }
128
+ catch {
129
+ return;
130
+ }
131
+ if (size <= LAUNCHD_LOG_MAX_BYTES) {
132
+ return;
133
+ }
134
+ await deps.rm(`${path}.${LAUNCHD_LOG_ROTATION_COUNT}`);
135
+ for (let index = LAUNCHD_LOG_ROTATION_COUNT; index >= 1; index -= 1) {
136
+ const source = index === 1 ? path : `${path}.${index - 1}`;
137
+ const destination = `${path}.${index}`;
138
+ try {
139
+ await deps.rename(source, destination);
140
+ }
141
+ catch {
142
+ // Missing or locked rotation segment: leave it for the next launch cycle.
143
+ }
144
+ }
145
+ }
112
146
  /**
113
147
  * Idempotent: bootstrap when not loaded, otherwise `kickstart -k` to restart.
114
148
  * `bootstrap` reporting "already bootstrapped" (or any non-zero) is tolerated as
@@ -146,37 +180,38 @@ export async function stopBackground(target, deps) {
146
180
  // fine. A non-zero exit is only a real failure if the service is still loaded
147
181
  // afterwards — otherwise we'd silently swallow genuine stop failures.
148
182
  if (result.code !== 0 && (await isLoaded(deps.runner, target.label, uid))) {
149
- deps.stderr(`Failed to stop ${target.label}: launchctl bootout exited ${result.code}.\n`);
183
+ deps.stderr(ui.errorLine(`Failed to stop ${target.label}: launchctl bootout exited ${result.code}.`));
150
184
  const detail = (result.stderr || result.stdout).trim();
151
185
  if (detail.length > 0) {
152
- deps.stderr(`${detail}\n`);
186
+ deps.stderr(ui.style.dim(detail) + "\n");
153
187
  }
154
- deps.stderr(`The plist was removed, but the service is still running.\n`);
188
+ deps.stderr(ui.hint("The plist was removed, but the service is still running."));
155
189
  return 1;
156
190
  }
157
191
  deps.stdout(wasLoaded
158
- ? `Stopped ${target.label} and removed its LaunchAgent.\n`
159
- : `${target.label} was not running; removed its LaunchAgent if present.\n`);
160
- deps.stdout(`config ${target.configPath}\n`);
192
+ ? `${ui.badge("ok")}${ui.style.bold(`Stopped ${target.label}`)} and removed its LaunchAgent.\n`
193
+ : `${ui.style.dim(`${target.label} was not running; removed its LaunchAgent if present.`)}\n`);
194
+ deps.stdout(ui.keyValue([["config", target.configPath]]));
161
195
  return 0;
162
196
  }
163
197
  export async function statusBackground(target, deps) {
164
198
  const result = await deps.listTraceSources({ registryDir: target.registryDir, staleAfterMs: target.staleAfterMs });
165
199
  const current = result.sources.find((source) => matchesConfig(source, target.configPath));
166
200
  if (current === undefined) {
167
- deps.stdout(`No running mono-agent instance for ${target.configPath}.\n`);
168
- deps.stdout(`Start it with: mono-agent start${configFlag(target)}\n`);
201
+ deps.stdout(ui.style.dim(`No running mono-agent instance for ${target.configPath}.`) + "\n");
202
+ deps.stdout(ui.hint(`Start it with: mono-agent start${configFlag(target)}`));
169
203
  }
170
204
  else {
171
205
  writeInstanceDetail(current, target, deps);
206
+ await writeRunsHealthDetail(current, deps);
172
207
  }
173
208
  // Only surface other instances that are live or crashed — cleanly stopped
174
209
  // manifests linger in the registry and would just be noise.
175
210
  const others = result.sources.filter((source) => !matchesConfig(source, target.configPath) && source.health !== "stopped");
176
211
  if (others.length > 0) {
177
- deps.stdout(`\nOther mono-agent instances:\n`);
212
+ deps.stdout("\n" + ui.rule("Other mono-agent instances"));
178
213
  for (const source of others) {
179
- deps.stdout(` ${formatOtherInstance(source)}\n`);
214
+ deps.stdout(`${formatOtherInstance(source)}\n`);
180
215
  }
181
216
  }
182
217
  return current?.health === "running" ? 0 : 1;
@@ -207,9 +242,9 @@ export async function pollInstanceReady(target, deps, options) {
207
242
  }
208
243
  export function printInstanceInfo(source, target, deps, verb) {
209
244
  const flag = configFlag(target);
210
- deps.stdout(`mono-agent ${verb} in the background.\n`);
245
+ deps.stdout(`${ui.badge("ok")}${ui.style.bold(`mono-agent ${verb} in the background.`)}\n\n`);
211
246
  writeInstanceDetail(source, target, deps);
212
- deps.stdout(`\nStop with: mono-agent stop${flag} · Logs: mono-agent logs${flag} --follow\n`);
247
+ deps.stdout("\n" + ui.hint(`Stop with: mono-agent stop${flag} · Logs: mono-agent logs${flag} --follow`));
213
248
  }
214
249
  async function findInstance(target, deps) {
215
250
  const result = await deps.listTraceSources({ registryDir: target.registryDir, staleAfterMs: target.staleAfterMs });
@@ -224,51 +259,105 @@ async function maybeUnlinkDeadManifest(target, deps, existing) {
224
259
  await deps.rm(resolve(target.registryDir, `${existing.sourceId}.json`));
225
260
  }
226
261
  function failLaunch(target, deps, verb, result) {
227
- deps.stderr(`Failed to ${verb} ${target.label} via launchctl${result === undefined ? "" : ` (exit ${result.code})`}.\n`);
262
+ deps.stderr(ui.errorLine(`Failed to ${verb} ${target.label} via launchctl${result === undefined ? "" : ` (exit ${result.code})`}.`));
228
263
  const detail = (result?.stderr || result?.stdout || "").trim();
229
264
  if (detail.length > 0) {
230
- deps.stderr(`${detail}\n`);
265
+ deps.stderr(ui.style.dim(detail) + "\n");
231
266
  }
232
- deps.stderr(`Logs: ${target.paths.stderrPath}\n`);
267
+ deps.stderr(ui.hint(`Logs: ${target.paths.stderrPath}`));
233
268
  return 1;
234
269
  }
235
270
  function reportTimeout(target, deps) {
236
271
  const flag = configFlag(target);
237
- deps.stderr("mono-agent did not report ready within the timeout.\n" +
238
- "It may still be starting, or it may have failed. Inspect:\n" +
239
- ` logs: ${target.paths.stderrPath}\n` +
272
+ deps.stderr(ui.errorLine("mono-agent did not report ready within the timeout."));
273
+ deps.stderr(ui.style.dim("It may still be starting, or it may have failed. Inspect:") + "\n");
274
+ deps.stderr(` ${ui.style.gray("logs: ")} ${target.paths.stderrPath}\n` +
240
275
  ` ${target.paths.stdoutPath}\n` +
241
- ` follow: mono-agent logs${flag} --follow\n` +
242
- ` status: mono-agent status${flag}\n` +
243
- ` stop: mono-agent stop${flag}\n`);
276
+ ` ${ui.style.gray("follow:")} mono-agent logs${flag} --follow\n` +
277
+ ` ${ui.style.gray("status:")} mono-agent status${flag}\n` +
278
+ ` ${ui.style.gray("stop: ")} mono-agent stop${flag}\n`);
244
279
  return 1;
245
280
  }
246
281
  function writeInstanceDetail(source, target, deps) {
247
- const consoleUrl = consoleBaseUrl(source);
248
- if (consoleUrl !== undefined) {
249
- // The console's per-boot access token is not persisted to disk; the worker
250
- // prints the full tokenized URL to its log at startup.
251
- deps.stdout(`operator console ${consoleUrl} (tokenized link in \`mono-agent logs${configFlag(target)}\`)\n`);
252
- }
253
- deps.stdout(`config ${target.configPath}\n`);
254
- deps.stdout(`label ${target.label}\n`);
255
- deps.stdout(`pid ${source.pid ?? "unknown"}\n`);
256
- deps.stdout(`health ${source.health}\n`);
257
- deps.stdout(`started ${source.startedAt}\n`);
258
- deps.stdout(`logs ${target.paths.stdoutPath}\n`);
259
- deps.stdout(` ${target.paths.stderrPath}\n`);
282
+ deps.stdout(ui.rule("instance"));
283
+ deps.stdout(ui.keyValue([
284
+ ["pid", String(source.pid ?? "unknown")],
285
+ ["health", `${ui.healthBadge(source.health)}${source.health}`],
286
+ ["config", target.configPath],
287
+ ["label", target.label],
288
+ ["started", source.startedAt],
289
+ ["logs", target.paths.stdoutPath],
290
+ ["", target.paths.stderrPath],
291
+ ], 2));
292
+ const observability = describeObservabilityMetadata(source);
293
+ if (observability !== undefined) {
294
+ deps.stdout(ui.rule("observability"));
295
+ deps.stdout(` ${observability}\n`);
296
+ }
297
+ const sandboxLines = describeSandboxMetadata(source);
298
+ if (sandboxLines.length > 0) {
299
+ deps.stdout(ui.rule("sandbox"));
300
+ for (const line of sandboxLines) {
301
+ deps.stdout(` ${line}\n`);
302
+ }
303
+ }
304
+ const sessionLines = describeSessionMetadata(source, deps.now());
305
+ if (sessionLines.length > 0) {
306
+ deps.stdout(ui.rule("session"));
307
+ for (const line of sessionLines) {
308
+ deps.stdout(` ${line}\n`);
309
+ }
310
+ }
260
311
  const channelLines = formatChannels(source);
261
312
  if (channelLines.length > 0) {
262
- deps.stdout("channels\n");
313
+ deps.stdout(ui.rule("channels"));
263
314
  for (const line of channelLines) {
264
315
  deps.stdout(`${line}\n`);
265
316
  }
266
317
  }
267
318
  }
319
+ async function writeRunsHealthDetail(source, deps) {
320
+ if (source.artifactDir === undefined || source.artifactDir.trim().length === 0) {
321
+ return;
322
+ }
323
+ const { totalRuns, runs, warnings } = await deps.listRecordedRuns({
324
+ artifactDir: source.artifactDir,
325
+ maxRuns: RUNS_HEALTH_MAX_RUNS,
326
+ scope: "agent",
327
+ });
328
+ const selectedSkills = selectedSkillsFromMetadata(source.metadata);
329
+ const runOwnerAlive = source.pid === undefined ? undefined : deps.isAlive(source.pid);
330
+ const display = buildRunsHealthDisplay({
331
+ artifactDir: source.artifactDir,
332
+ totalRuns,
333
+ runs,
334
+ warnings,
335
+ includeSelectedSkills: true,
336
+ nowMs: deps.now(),
337
+ maxRuns: RUNS_HEALTH_MAX_RUNS,
338
+ ...(selectedSkills === undefined ? {} : { selectedSkills }),
339
+ ...(runOwnerAlive === undefined ? {} : { runOwnerAlive }),
340
+ });
341
+ deps.stdout(ui.rule("runs health"));
342
+ for (const detail of display.details) {
343
+ deps.stdout(` ${detail}\n`);
344
+ }
345
+ }
346
+ function selectedSkillsFromMetadata(metadata) {
347
+ const context = metadata?.context;
348
+ if (context === null || typeof context !== "object") {
349
+ return undefined;
350
+ }
351
+ const selectedSkills = context.selectedSkills;
352
+ if (!Array.isArray(selectedSkills)) {
353
+ return undefined;
354
+ }
355
+ return selectedSkills.flatMap((skill) => typeof skill === "string" ? [skill] : []);
356
+ }
268
357
  function formatOtherInstance(source) {
269
358
  const pid = source.pid === undefined ? "?" : String(source.pid);
270
359
  const config = source.configPath ?? "(unknown config)";
271
- return `${source.health.padEnd(8)} pid ${pid.padEnd(7)} ${source.sourceId} ${config}`;
360
+ return ` ${ui.healthBadge(source.health)}${source.health.padEnd(8)} pid ${pid.padEnd(7)} ${source.sourceId} ${config}`;
272
361
  }
273
362
  function matchesConfig(source, configPath) {
274
363
  return source.configPath !== undefined && resolve(source.configPath) === configPath;
@@ -284,13 +373,147 @@ function startedAtMs(source) {
284
373
  const parsed = Date.parse(source.startedAt);
285
374
  return Number.isFinite(parsed) ? parsed : 0;
286
375
  }
287
- function consoleBaseUrl(source) {
288
- const console = source.metadata?.operatorConsole;
289
- if (console === null || typeof console !== "object") {
376
+ /**
377
+ * Format the persisted observability exporter metadata for the detached
378
+ * `status` reader. Reads defensively (the worker persists only endpoint +
379
+ * warning/error strings, never headers/secrets) and always notes that JSONL
380
+ * artifacts remain local.
381
+ */
382
+ function describeObservabilityMetadata(source) {
383
+ const observability = source.metadata?.observability;
384
+ if (observability === null || typeof observability !== "object") {
385
+ return undefined;
386
+ }
387
+ const record = observability;
388
+ const endpoint = record.endpoint;
389
+ if (typeof endpoint !== "string" || endpoint.length === 0) {
290
390
  return undefined;
291
391
  }
292
- const url = console.url;
293
- return typeof url === "string" && url.length > 0 ? url : undefined;
392
+ const parts = [`phoenix ${endpoint}`];
393
+ const appUrl = phoenixAppBaseUrl(endpoint);
394
+ if (appUrl !== undefined) {
395
+ parts.push(`app ${appUrl}`);
396
+ }
397
+ if (record.includeSensitiveData === true) {
398
+ parts.push(ui.style.yellow(describeSensitiveDataExportWarning(endpoint)));
399
+ }
400
+ if (typeof record.lastWarning === "string" && record.lastWarning.length > 0) {
401
+ parts.push(`last warning: ${record.lastWarning}`);
402
+ }
403
+ if (typeof record.lastError === "string" && record.lastError.length > 0) {
404
+ parts.push(`last error: ${record.lastError}`);
405
+ }
406
+ parts.push("JSONL artifacts remain local");
407
+ return parts.join("; ");
408
+ }
409
+ function describeSandboxMetadata(source) {
410
+ const sandbox = source.metadata?.sandbox;
411
+ if (sandbox === null || typeof sandbox !== "object") {
412
+ return [];
413
+ }
414
+ const record = sandbox;
415
+ const effective = stringField(record, "effective") ?? "unknown";
416
+ const engine = stringField(record, "engine") ?? "none";
417
+ const engineAvailability = record.engineAvailable === true
418
+ ? "present"
419
+ : record.engineAvailable === false
420
+ ? "absent"
421
+ : "not checked";
422
+ const fallback = stringField(record, "fallback");
423
+ const fallbackActive = record.fallbackActive === true ? "yes" : "no";
424
+ const summary = [
425
+ `effective: ${effective}`,
426
+ `engine: ${engine} (${engineAvailability})`,
427
+ ...(fallback === undefined ? [] : [`fallback: ${fallback}`]),
428
+ `fallback active: ${fallbackActive}`,
429
+ ].join("; ");
430
+ return [
431
+ summary,
432
+ ...stringFieldAsList(record, "detail"),
433
+ ...stringFieldAsList(record, "warning").map((warning) => ui.style.yellow(warning)),
434
+ ];
435
+ }
436
+ function describeSessionMetadata(source, nowMs) {
437
+ const session = source.metadata?.session;
438
+ if (session === null || typeof session !== "object") {
439
+ return [];
440
+ }
441
+ const record = session;
442
+ const bucket = stringField(record, "currentBucketId");
443
+ if (bucket === undefined) {
444
+ return [];
445
+ }
446
+ const current = sessionSnapshotRecord(record, bucket);
447
+ const hasSnapshot = Array.isArray(record.snapshot);
448
+ const state = current === undefined
449
+ ? hasSnapshot ? "cold" : stringField(record, "state") ?? stringField(record, "status") ?? "cold"
450
+ : "warm";
451
+ const event = stringField(record, "event");
452
+ const providerSessionId = current?.providerSessionId ?? stringField(record, "providerSessionId");
453
+ const nextRolloverAt = stringField(record, "nextRolloverAt");
454
+ const reason = stringField(record, "reason");
455
+ const createdAt = current?.createdAt ?? numberField(record, "createdAt");
456
+ const summary = [
457
+ `bucket: ${bucket}`,
458
+ `state: ${state}`,
459
+ `age: ${formatSessionAge(createdAt, nowMs)}`,
460
+ ...(event === undefined ? [] : [`event: ${event}`]),
461
+ ...(providerSessionId === undefined ? [] : [`provider: ${providerSessionId}`]),
462
+ ...(nextRolloverAt === undefined ? [] : [`next rollover: ${nextRolloverAt}`]),
463
+ ...(reason === undefined ? [] : [`reason: ${reason}`]),
464
+ ];
465
+ return [summary.join("; ")];
466
+ }
467
+ function sessionSnapshotRecord(record, bucket) {
468
+ const snapshot = record.snapshot;
469
+ if (!Array.isArray(snapshot)) {
470
+ return undefined;
471
+ }
472
+ for (const item of snapshot) {
473
+ if (item === null || typeof item !== "object") {
474
+ continue;
475
+ }
476
+ const entry = item;
477
+ if (stringField(entry, "conversationId") !== bucket) {
478
+ continue;
479
+ }
480
+ const providerSessionId = stringField(entry, "providerSessionId");
481
+ const createdAt = numberField(entry, "createdAt");
482
+ if (providerSessionId !== undefined && createdAt !== undefined) {
483
+ return { providerSessionId, createdAt };
484
+ }
485
+ }
486
+ return undefined;
487
+ }
488
+ function stringField(record, key) {
489
+ const value = record[key];
490
+ return typeof value === "string" && value.length > 0 ? value : undefined;
491
+ }
492
+ function numberField(record, key) {
493
+ const value = record[key];
494
+ return typeof value === "number" && Number.isFinite(value) ? value : undefined;
495
+ }
496
+ function formatSessionAge(createdAt, nowMs) {
497
+ if (createdAt === undefined) {
498
+ return "unknown";
499
+ }
500
+ const elapsedSeconds = Math.max(0, Math.floor((nowMs - createdAt) / 1000));
501
+ if (elapsedSeconds < 60) {
502
+ return `${elapsedSeconds}s`;
503
+ }
504
+ const elapsedMinutes = Math.floor(elapsedSeconds / 60);
505
+ if (elapsedMinutes < 60) {
506
+ return `${elapsedMinutes}m`;
507
+ }
508
+ const elapsedHours = Math.floor(elapsedMinutes / 60);
509
+ if (elapsedHours < 48) {
510
+ return `${elapsedHours}h`;
511
+ }
512
+ return `${Math.floor(elapsedHours / 24)}d`;
513
+ }
514
+ function stringFieldAsList(record, key) {
515
+ const value = stringField(record, key);
516
+ return value === undefined ? [] : [value];
294
517
  }
295
518
  /** ` --config <path>` when a non-default config is in play, else empty. */
296
519
  function configFlag(target) {
@@ -302,11 +525,14 @@ function formatChannels(source) {
302
525
  if (channels === null || typeof channels !== "object") {
303
526
  return [];
304
527
  }
305
- return Object.entries(channels).map(([id, value]) => ` ${id.padEnd(15)} ${describeChannelMetadata(value)}`);
528
+ return Object.entries(channels).map(([id, value]) => {
529
+ const { kind, text } = describeChannel(value);
530
+ return ` ${ui.channelBadge(kind)}${ui.style.bold(id.padEnd(11))} ${text}`;
531
+ });
306
532
  }
307
- function describeChannelMetadata(value) {
533
+ function describeChannel(value) {
308
534
  if (value === null || typeof value !== "object") {
309
- return String(value);
535
+ return { kind: "unknown", text: String(value) };
310
536
  }
311
537
  const record = value;
312
538
  const kind = typeof record.kind === "string" ? record.kind : "unknown";
@@ -315,10 +541,10 @@ function describeChannelMetadata(value) {
315
541
  .filter(([key]) => key !== "kind")
316
542
  .map(([key, fact]) => `${key}=${String(fact)}`)
317
543
  .join(" ");
318
- return facts.length === 0 ? "running" : `running (${facts})`;
544
+ return { kind, text: facts.length === 0 ? "running" : `running (${facts})` };
319
545
  }
320
546
  const reason = typeof record.reason === "string" ? record.reason : "";
321
- return reason.length === 0 ? kind : `${kind}: ${reason}`;
547
+ return { kind, text: reason.length === 0 ? kind : `${kind}: ${reason}` };
322
548
  }
323
549
  function isErrno(error, code) {
324
550
  return typeof error === "object" && error !== null && error.code === code;
@@ -1 +1 @@
1
- {"version":3,"file":"background.js","sourceRoot":"","sources":["../src/background.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"background.js","sourceRoot":"","sources":["../src/background.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { RunEventSink } from "@mono-agent/agent-contracts";
2
+ import type { RunRecorder } from "@mono-agent/observability";
3
+ /** Stable run context stamped onto every broadcast frame. */
4
+ export interface BroadcastRunContext {
5
+ readonly runId: string;
6
+ readonly conversationId: string;
7
+ /** Producing instance's trace-source id (empty when the host has none). */
8
+ readonly sourceId: string;
9
+ readonly sourceLabel?: string;
10
+ /** Trigger channel, e.g. "cron" | "webhook" | "chat" | "memory". */
11
+ readonly source?: string;
12
+ /** Trigger detail (cron job id / webhook endpoint name). */
13
+ readonly sourceDetail?: string;
14
+ }
15
+ /**
16
+ * Wrap a {@link RunRecorder} so every run start/event/finish is ALSO published to
17
+ * a {@link RunEventSink} (the in-process live bus), giving operator surfaces
18
+ * sub-run visibility the on-disk recorder can't (it flushes only at start/finish).
19
+ *
20
+ * Broadcast is best-effort and additive, exactly like the Phoenix exporter path:
21
+ * the inner recorder is the source of truth for the returned summary, and a
22
+ * publish failure never changes the run outcome (publish is wrapped and the bus's
23
+ * own `publish` is contracted never to throw). `seq` is left 0 here — the bus
24
+ * stamps a process-wide monotonic value on publish.
25
+ */
26
+ export declare function createBroadcastRunRecorder(inner: RunRecorder, sink: RunEventSink, ctx: BroadcastRunContext): RunRecorder;
27
+ //# sourceMappingURL=broadcast-recorder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast-recorder.d.ts","sourceRoot":"","sources":["../src/broadcast-recorder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAmD,MAAM,2BAA2B,CAAC;AAE9G,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,oEAAoE;IACpE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,YAAY,EAClB,GAAG,EAAE,mBAAmB,GACvB,WAAW,CAkEb"}