@mono-agent/agent-app 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/README.md +190 -33
  2. package/dist/adapter-send-tools-main.js +0 -1
  3. package/dist/adapter-send-tools-main.js.map +1 -1
  4. package/dist/adapter-send-tools.d.ts +8 -5
  5. package/dist/adapter-send-tools.d.ts.map +1 -1
  6. package/dist/adapter-send-tools.js +195 -257
  7. package/dist/adapter-send-tools.js.map +1 -1
  8. package/dist/app-controller-channels.d.ts.map +1 -1
  9. package/dist/app-controller-channels.js +2 -1
  10. package/dist/app-controller-channels.js.map +1 -1
  11. package/dist/app-controller-continuation.d.ts.map +1 -1
  12. package/dist/app-controller-continuation.js +1 -5
  13. package/dist/app-controller-continuation.js.map +1 -1
  14. package/dist/app-controller-lifecycle.d.ts.map +1 -1
  15. package/dist/app-controller-lifecycle.js +2 -6
  16. package/dist/app-controller-lifecycle.js.map +1 -1
  17. package/dist/app-controller-maintenance.d.ts +2 -1
  18. package/dist/app-controller-maintenance.d.ts.map +1 -1
  19. package/dist/app-controller-maintenance.js +66 -2
  20. package/dist/app-controller-maintenance.js.map +1 -1
  21. package/dist/app-controller-memory-health.d.ts +1 -1
  22. package/dist/app-controller-memory-health.d.ts.map +1 -1
  23. package/dist/app-controller-memory-health.js +5 -1
  24. package/dist/app-controller-memory-health.js.map +1 -1
  25. package/dist/app-controller-responder.d.ts.map +1 -1
  26. package/dist/app-controller-responder.js +12 -4
  27. package/dist/app-controller-responder.js.map +1 -1
  28. package/dist/app-controller-traceability.d.ts.map +1 -1
  29. package/dist/app-controller-traceability.js +15 -1
  30. package/dist/app-controller-traceability.js.map +1 -1
  31. package/dist/app-controller-utils.js +1 -1
  32. package/dist/app-controller-utils.js.map +1 -1
  33. package/dist/app-controller.d.ts +14 -1
  34. package/dist/app-controller.d.ts.map +1 -1
  35. package/dist/app-controller.js +61 -9
  36. package/dist/app-controller.js.map +1 -1
  37. package/dist/audit-runs.d.ts.map +1 -1
  38. package/dist/audit-runs.js +12 -2
  39. package/dist/audit-runs.js.map +1 -1
  40. package/dist/background-environment.d.ts +1 -0
  41. package/dist/background-environment.d.ts.map +1 -1
  42. package/dist/background-environment.js +1 -0
  43. package/dist/background-environment.js.map +1 -1
  44. package/dist/background-runtime.d.ts +39 -2
  45. package/dist/background-runtime.d.ts.map +1 -1
  46. package/dist/background-runtime.js +901 -49
  47. package/dist/background-runtime.js.map +1 -1
  48. package/dist/background.d.ts +36 -3
  49. package/dist/background.d.ts.map +1 -1
  50. package/dist/background.js +404 -57
  51. package/dist/background.js.map +1 -1
  52. package/dist/channel-drivers/cron.js +8 -1
  53. package/dist/channel-drivers/cron.js.map +1 -1
  54. package/dist/channel-drivers/live.d.ts +3 -2
  55. package/dist/channel-drivers/live.d.ts.map +1 -1
  56. package/dist/channel-drivers/live.js +3 -2
  57. package/dist/channel-drivers/live.js.map +1 -1
  58. package/dist/channel-drivers/native-notify.d.ts +2 -0
  59. package/dist/channel-drivers/native-notify.d.ts.map +1 -1
  60. package/dist/channel-drivers/native-notify.js +14 -2
  61. package/dist/channel-drivers/native-notify.js.map +1 -1
  62. package/dist/channel-drivers/slack.d.ts.map +1 -1
  63. package/dist/channel-drivers/slack.js +55 -0
  64. package/dist/channel-drivers/slack.js.map +1 -1
  65. package/dist/channel-drivers/telegram.d.ts.map +1 -1
  66. package/dist/channel-drivers/telegram.js +19 -14
  67. package/dist/channel-drivers/telegram.js.map +1 -1
  68. package/dist/channel-drivers/tui.d.ts.map +1 -1
  69. package/dist/channel-drivers/tui.js +8 -0
  70. package/dist/channel-drivers/tui.js.map +1 -1
  71. package/dist/channel-runtime-controls.d.ts +23 -0
  72. package/dist/channel-runtime-controls.d.ts.map +1 -0
  73. package/dist/channel-runtime-controls.js +63 -0
  74. package/dist/channel-runtime-controls.js.map +1 -0
  75. package/dist/channel-status-display.d.ts +15 -0
  76. package/dist/channel-status-display.d.ts.map +1 -0
  77. package/dist/channel-status-display.js +48 -0
  78. package/dist/channel-status-display.js.map +1 -0
  79. package/dist/cli-args.d.ts +23 -22
  80. package/dist/cli-args.d.ts.map +1 -1
  81. package/dist/cli-args.js +136 -83
  82. package/dist/cli-args.js.map +1 -1
  83. package/dist/cli-background-command.d.ts +1 -0
  84. package/dist/cli-background-command.d.ts.map +1 -1
  85. package/dist/cli-background-command.js +158 -27
  86. package/dist/cli-background-command.js.map +1 -1
  87. package/dist/cli-commands.d.ts +2 -2
  88. package/dist/cli-commands.d.ts.map +1 -1
  89. package/dist/cli-commands.js +27 -59
  90. package/dist/cli-commands.js.map +1 -1
  91. package/dist/cli-help.d.ts +19 -1
  92. package/dist/cli-help.d.ts.map +1 -1
  93. package/dist/cli-help.js +203 -67
  94. package/dist/cli-help.js.map +1 -1
  95. package/dist/cli-init-command.d.ts.map +1 -1
  96. package/dist/cli-init-command.js +4 -18
  97. package/dist/cli-init-command.js.map +1 -1
  98. package/dist/cli-install-skill-command.d.ts.map +1 -1
  99. package/dist/cli-install-skill-command.js +32 -3
  100. package/dist/cli-install-skill-command.js.map +1 -1
  101. package/dist/cli-runs-command.d.ts +10 -0
  102. package/dist/cli-runs-command.d.ts.map +1 -0
  103. package/dist/cli-runs-command.js +66 -0
  104. package/dist/cli-runs-command.js.map +1 -0
  105. package/dist/cli-sandbox-command.d.ts +1 -1
  106. package/dist/cli-sandbox-command.d.ts.map +1 -1
  107. package/dist/cli-sandbox-command.js +14 -2
  108. package/dist/cli-sandbox-command.js.map +1 -1
  109. package/dist/cli-validate-config-command.d.ts +24 -5
  110. package/dist/cli-validate-config-command.d.ts.map +1 -1
  111. package/dist/cli-validate-config-command.js +120 -41
  112. package/dist/cli-validate-config-command.js.map +1 -1
  113. package/dist/config-reference.d.ts.map +1 -1
  114. package/dist/config-reference.js +4 -5
  115. package/dist/config-reference.js.map +1 -1
  116. package/dist/docs-mcp-pairing.d.ts +35 -0
  117. package/dist/docs-mcp-pairing.d.ts.map +1 -0
  118. package/dist/docs-mcp-pairing.js +311 -0
  119. package/dist/docs-mcp-pairing.js.map +1 -0
  120. package/dist/doctor.d.ts +6 -0
  121. package/dist/doctor.d.ts.map +1 -1
  122. package/dist/doctor.js +4 -5
  123. package/dist/doctor.js.map +1 -1
  124. package/dist/install-skill.d.ts +2 -0
  125. package/dist/install-skill.d.ts.map +1 -1
  126. package/dist/install-skill.js +10 -4
  127. package/dist/install-skill.js.map +1 -1
  128. package/dist/interaction-bridge.d.ts +5 -20
  129. package/dist/interaction-bridge.d.ts.map +1 -1
  130. package/dist/interaction-bridge.js +255 -100
  131. package/dist/interaction-bridge.js.map +1 -1
  132. package/dist/launchd.d.ts +35 -1
  133. package/dist/launchd.d.ts.map +1 -1
  134. package/dist/launchd.js +131 -2
  135. package/dist/launchd.js.map +1 -1
  136. package/dist/managed-runtime-publication.d.ts +22 -0
  137. package/dist/managed-runtime-publication.d.ts.map +1 -0
  138. package/dist/managed-runtime-publication.js +91 -0
  139. package/dist/managed-runtime-publication.js.map +1 -0
  140. package/dist/managed-startup.d.ts +8 -0
  141. package/dist/managed-startup.d.ts.map +1 -0
  142. package/dist/managed-startup.js +12 -0
  143. package/dist/managed-startup.js.map +1 -0
  144. package/dist/memory-retrieval.d.ts.map +1 -1
  145. package/dist/memory-retrieval.js +31 -18
  146. package/dist/memory-retrieval.js.map +1 -1
  147. package/dist/metrics.d.ts.map +1 -1
  148. package/dist/metrics.js +12 -2
  149. package/dist/metrics.js.map +1 -1
  150. package/dist/modules/catalog.js +1 -1
  151. package/dist/modules/catalog.js.map +1 -1
  152. package/dist/modules/known-tools.d.ts +1 -1
  153. package/dist/modules/known-tools.d.ts.map +1 -1
  154. package/dist/modules/known-tools.js +0 -3
  155. package/dist/modules/known-tools.js.map +1 -1
  156. package/dist/posted-reply-history.d.ts.map +1 -1
  157. package/dist/posted-reply-history.js +7 -0
  158. package/dist/posted-reply-history.js.map +1 -1
  159. package/dist/request-model-override.d.ts +2 -2
  160. package/dist/request-model-override.js +8 -4
  161. package/dist/request-model-override.js.map +1 -1
  162. package/dist/run-history.d.ts +6 -2
  163. package/dist/run-history.d.ts.map +1 -1
  164. package/dist/run-history.js +511 -118
  165. package/dist/run-history.js.map +1 -1
  166. package/dist/runtime-provenance.d.ts.map +1 -1
  167. package/dist/runtime-provenance.js +10 -5
  168. package/dist/runtime-provenance.js.map +1 -1
  169. package/dist/tui-command.d.ts.map +1 -1
  170. package/dist/tui-command.js +2 -1
  171. package/dist/tui-command.js.map +1 -1
  172. package/dist/ui.js +1 -1
  173. package/dist/ui.js.map +1 -1
  174. package/dist/wizard/from-flags.d.ts +0 -1
  175. package/dist/wizard/from-flags.d.ts.map +1 -1
  176. package/dist/wizard/from-flags.js +1 -8
  177. package/dist/wizard/from-flags.js.map +1 -1
  178. package/dist/wizard/index.d.ts +1 -1
  179. package/dist/wizard/index.d.ts.map +1 -1
  180. package/dist/wizard/index.js +1 -1
  181. package/dist/wizard/index.js.map +1 -1
  182. package/dist/wizard/presets.d.ts +3 -12
  183. package/dist/wizard/presets.d.ts.map +1 -1
  184. package/dist/wizard/presets.js +3 -15
  185. package/dist/wizard/presets.js.map +1 -1
  186. package/dist/wizard/prompts.d.ts.map +1 -1
  187. package/dist/wizard/prompts.js +3 -4
  188. package/dist/wizard/prompts.js.map +1 -1
  189. package/dist/wizard/run.js +3 -3
  190. package/dist/wizard/run.js.map +1 -1
  191. package/package.json +15 -16
  192. package/schema/mono-agent.config.schema.json +4 -4
  193. package/skills/mono-agent-composer/SKILL.md +13 -5
  194. package/skills/mono-agent-composer/agents/openai.yaml +1 -1
  195. package/skills/mono-agent-composer/references/config-blueprint.md +18 -10
  196. package/skills/mono-agent-composer/references/discovery-questions.md +8 -5
  197. package/skills/mono-agent-composer/references/feature-coverage.md +10 -9
  198. package/skills/mono-agent-composer/references/package-map.md +10 -4
  199. package/skills/mono-agent-composer/references/playbooks.md +6 -6
  200. package/skills/mono-agent-composer/references/validation.md +24 -2
@@ -0,0 +1,311 @@
1
+ import { spawn } from "node:child_process";
2
+ import { constants } from "node:fs";
3
+ import { access, cp, mkdtemp, readFile, rm, stat } from "node:fs/promises";
4
+ import { homedir, tmpdir } from "node:os";
5
+ import { basename, delimiter, join } from "node:path";
6
+ import process from "node:process";
7
+ import { composerSkillDestinations, installComposerSkill, } from "./install-skill.js";
8
+ export const DOCS_MCP_SERVER_NAME = "mono-agent-docs";
9
+ const DOCS_MCP_PACKAGE = "@mono-agent/docs-mcp";
10
+ export async function installComposerCompanion(options, dependencies) {
11
+ if (!options.pairDocsMcp) {
12
+ const result = await installComposerSkill(options);
13
+ return { ...result, pairings: [] };
14
+ }
15
+ const version = options.docsMcpVersion?.trim();
16
+ if (version === undefined || version.length === 0) {
17
+ throw new Error("Cannot pair @mono-agent/docs-mcp because the installed @mono-agent/agent-app version is unavailable.");
18
+ }
19
+ const homeDir = options.homeDir ?? homedir();
20
+ if (dependencies === undefined && homeDir !== homedir()) {
21
+ throw new Error("A custom homeDir requires injected MCP pairing dependencies.");
22
+ }
23
+ const activeDependencies = dependencies ?? realPairingDependencies(homeDir);
24
+ const destinations = composerSkillDestinations(options.target, homeDir);
25
+ if (!options.force) {
26
+ for (const destination of destinations) {
27
+ if (await pathExists(destination)) {
28
+ throw new Error(`Destination ${destination} already exists. Re-run with --force to overwrite.`);
29
+ }
30
+ }
31
+ }
32
+ const selectedTargets = targetList(options.target);
33
+ const availableTargets = [];
34
+ const statuses = [];
35
+ for (const target of selectedTargets) {
36
+ if (await activeDependencies.harnesses[target].isAvailable()) {
37
+ availableTargets.push(target);
38
+ }
39
+ else {
40
+ statuses.push({ target, state: "skipped-missing", command: manualPairingCommand(target, version) });
41
+ }
42
+ }
43
+ if (availableTargets.length === 0) {
44
+ throw new Error(`Cannot pair ${DOCS_MCP_SERVER_NAME}: none of the selected harness CLIs (${selectedTargets.join(", ")}) are available on PATH. Re-run with --no-docs-mcp to install only the skill.`);
45
+ }
46
+ if (!(await activeDependencies.isNpxAvailable())) {
47
+ throw new Error("Cannot pair mono-agent-docs because npx is not available on PATH.");
48
+ }
49
+ const desiredEntry = managedEntry(version);
50
+ const existingEntries = new Map();
51
+ for (const target of availableTargets) {
52
+ const existing = await activeDependencies.harnesses[target].read();
53
+ if (existing !== undefined && !isManagedEntry(existing)) {
54
+ throw new Error(`MCP server name ${DOCS_MCP_SERVER_NAME} already exists in ${target} with an unmanaged configuration; remove or rename it manually. --force will not overwrite it.`);
55
+ }
56
+ existingEntries.set(target, existing);
57
+ }
58
+ const backupRoot = await mkdtemp(join(tmpdir(), "mono-agent-composer-install-"));
59
+ const destinationBackups = new Map();
60
+ try {
61
+ for (const [index, destination] of destinations.entries()) {
62
+ if (await pathExists(destination)) {
63
+ const backup = join(backupRoot, `skill-${index}`);
64
+ await cp(destination, backup, { recursive: true, force: true });
65
+ destinationBackups.set(destination, backup);
66
+ }
67
+ }
68
+ const changedTargets = [];
69
+ try {
70
+ for (const target of availableTargets) {
71
+ const adapter = activeDependencies.harnesses[target];
72
+ const existing = existingEntries.get(target);
73
+ if (existing !== undefined && entriesEqual(existing, desiredEntry)) {
74
+ statuses.push({ target, state: "already-current", command: manualPairingCommand(target, version) });
75
+ continue;
76
+ }
77
+ if (existing !== undefined)
78
+ await adapter.remove();
79
+ try {
80
+ await adapter.add(desiredEntry);
81
+ }
82
+ catch (error) {
83
+ if (existing !== undefined) {
84
+ try {
85
+ await adapter.add(existing);
86
+ }
87
+ catch (restoreError) {
88
+ throw new Error(`${errorMessage(error)} Restoring the previous ${target} entry also failed: ${errorMessage(restoreError)}`);
89
+ }
90
+ }
91
+ throw error;
92
+ }
93
+ changedTargets.push(target);
94
+ const verified = await adapter.read();
95
+ if (verified === undefined || !entriesEqual(verified, desiredEntry)) {
96
+ throw new Error(`${target} did not persist the expected ${DOCS_MCP_SERVER_NAME} MCP configuration.`);
97
+ }
98
+ statuses.push({
99
+ target,
100
+ state: existing === undefined ? "paired" : "upgraded",
101
+ command: manualPairingCommand(target, version),
102
+ });
103
+ }
104
+ try {
105
+ const skillResult = await installComposerSkill(options);
106
+ return {
107
+ ...skillResult,
108
+ pairings: selectedTargets.map((target) => statuses.find((status) => status.target === target)),
109
+ };
110
+ }
111
+ catch (error) {
112
+ await restoreDestinations(destinations, destinationBackups);
113
+ throw error;
114
+ }
115
+ }
116
+ catch (error) {
117
+ const rollbackErrors = [];
118
+ for (const target of [...changedTargets].reverse()) {
119
+ const adapter = activeDependencies.harnesses[target];
120
+ try {
121
+ await adapter.remove();
122
+ const existing = existingEntries.get(target);
123
+ if (existing !== undefined)
124
+ await adapter.add(existing);
125
+ }
126
+ catch (rollbackError) {
127
+ rollbackErrors.push(`${target}: ${errorMessage(rollbackError)}`);
128
+ }
129
+ }
130
+ if (rollbackErrors.length > 0) {
131
+ throw new Error(`${errorMessage(error)} Rollback also failed (${rollbackErrors.join("; ")}).`);
132
+ }
133
+ throw error;
134
+ }
135
+ }
136
+ finally {
137
+ await rm(backupRoot, { recursive: true, force: true });
138
+ }
139
+ }
140
+ function realPairingDependencies(homeDir) {
141
+ return {
142
+ isNpxAvailable: () => executableAvailable("npx"),
143
+ harnesses: {
144
+ codex: {
145
+ target: "codex",
146
+ isAvailable: () => executableAvailable("codex"),
147
+ read: readCodexEntry,
148
+ add: async (entry) => runChecked("codex", ["mcp", "add", DOCS_MCP_SERVER_NAME, "--", entry.command, ...entry.args]),
149
+ remove: async () => runChecked("codex", ["mcp", "remove", DOCS_MCP_SERVER_NAME]),
150
+ },
151
+ claude: {
152
+ target: "claude",
153
+ isAvailable: () => executableAvailable("claude"),
154
+ read: () => readClaudeEntry(homeDir),
155
+ add: async (entry) => runChecked("claude", ["mcp", "add", "--scope", "user", DOCS_MCP_SERVER_NAME, "--", entry.command, ...entry.args]),
156
+ remove: async () => runChecked("claude", ["mcp", "remove", "--scope", "user", DOCS_MCP_SERVER_NAME]),
157
+ },
158
+ },
159
+ };
160
+ }
161
+ async function readCodexEntry() {
162
+ const result = await runProcess("codex", ["mcp", "get", DOCS_MCP_SERVER_NAME, "--json"]);
163
+ if (result.code !== 0) {
164
+ if (/not found|no mcp server|does not exist/iu.test(`${result.stdout}\n${result.stderr}`))
165
+ return undefined;
166
+ throw new Error(`codex mcp get failed: ${result.stderr.trim() || result.stdout.trim() || `exit ${result.code}`}`);
167
+ }
168
+ let parsed;
169
+ try {
170
+ parsed = JSON.parse(result.stdout);
171
+ }
172
+ catch {
173
+ throw new Error("codex mcp get returned invalid JSON.");
174
+ }
175
+ return normalizeEntry(parsed, "Codex");
176
+ }
177
+ async function readClaudeEntry(homeDir) {
178
+ let raw;
179
+ try {
180
+ raw = await readFile(join(homeDir, ".claude.json"), "utf8");
181
+ }
182
+ catch (error) {
183
+ if (isNodeError(error) && error.code === "ENOENT")
184
+ return undefined;
185
+ throw error;
186
+ }
187
+ let parsed;
188
+ try {
189
+ parsed = JSON.parse(raw);
190
+ }
191
+ catch {
192
+ throw new Error("~/.claude.json is not valid JSON; refusing to change MCP configuration.");
193
+ }
194
+ if (!isObject(parsed) || !isObject(parsed.mcpServers))
195
+ return undefined;
196
+ const candidate = parsed.mcpServers[DOCS_MCP_SERVER_NAME];
197
+ return candidate === undefined ? undefined : normalizeEntry(candidate, "Claude");
198
+ }
199
+ function normalizeEntry(raw, label) {
200
+ if (!isObject(raw))
201
+ throw new Error(`${label} returned an invalid ${DOCS_MCP_SERVER_NAME} MCP configuration.`);
202
+ const transport = isObject(raw.transport) ? raw.transport : raw;
203
+ const type = transport.type;
204
+ if (type !== undefined && type !== "stdio") {
205
+ return { command: `<${String(type)}>`, args: [] };
206
+ }
207
+ if (typeof transport.command !== "string" || !Array.isArray(transport.args) || !transport.args.every((value) => typeof value === "string")) {
208
+ throw new Error(`${label} returned an unrecognized ${DOCS_MCP_SERVER_NAME} MCP configuration.`);
209
+ }
210
+ const env = isObject(transport.env)
211
+ ? Object.fromEntries(Object.entries(transport.env).filter((entry) => typeof entry[1] === "string"))
212
+ : undefined;
213
+ return {
214
+ command: transport.command,
215
+ args: transport.args,
216
+ ...(env === undefined || Object.keys(env).length === 0 ? {} : { env }),
217
+ };
218
+ }
219
+ function managedEntry(version) {
220
+ return { command: "npx", args: ["-y", `${DOCS_MCP_PACKAGE}@${version}`] };
221
+ }
222
+ function isManagedEntry(entry) {
223
+ return entry.command === "npx"
224
+ && entry.args.length === 2
225
+ && entry.args[0] === "-y"
226
+ && /^@mono-agent\/docs-mcp@(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:[-+][0-9A-Za-z.-]+)?$/u.test(entry.args[1] ?? "")
227
+ && Object.keys(entry.env ?? {}).length === 0;
228
+ }
229
+ function entriesEqual(left, right) {
230
+ return left.command === right.command
231
+ && left.args.length === right.args.length
232
+ && left.args.every((value, index) => value === right.args[index])
233
+ && Object.keys(left.env ?? {}).length === 0
234
+ && Object.keys(right.env ?? {}).length === 0;
235
+ }
236
+ function targetList(target) {
237
+ return target === "both" ? ["claude", "codex"] : [target];
238
+ }
239
+ function manualPairingCommand(target, version) {
240
+ const command = `npx -y ${DOCS_MCP_PACKAGE}@${version}`;
241
+ return target === "claude"
242
+ ? `claude mcp add --scope user ${DOCS_MCP_SERVER_NAME} -- ${command}`
243
+ : `codex mcp add ${DOCS_MCP_SERVER_NAME} -- ${command}`;
244
+ }
245
+ async function restoreDestinations(destinations, backups) {
246
+ for (const destination of destinations) {
247
+ await rm(destination, { recursive: true, force: true });
248
+ const backup = backups.get(destination);
249
+ if (backup !== undefined)
250
+ await cp(backup, destination, { recursive: true, force: true });
251
+ }
252
+ }
253
+ async function executableAvailable(command) {
254
+ const pathValue = process.env.PATH ?? "";
255
+ const extensions = process.platform === "win32" ? (process.env.PATHEXT ?? ".EXE;.CMD;.BAT").split(";") : [""];
256
+ for (const directory of pathValue.split(delimiter).filter(Boolean)) {
257
+ for (const extension of extensions) {
258
+ try {
259
+ await access(join(directory, `${command}${extension}`), constants.X_OK);
260
+ return true;
261
+ }
262
+ catch {
263
+ // Continue searching PATH.
264
+ }
265
+ }
266
+ }
267
+ return false;
268
+ }
269
+ async function runChecked(command, args) {
270
+ const result = await runProcess(command, args);
271
+ if (result.code !== 0) {
272
+ throw new Error(`${basename(command)} ${args.slice(0, 3).join(" ")} failed: ${result.stderr.trim() || result.stdout.trim() || `exit ${result.code}`}`);
273
+ }
274
+ }
275
+ async function runProcess(command, args) {
276
+ return await new Promise((resolve, reject) => {
277
+ const child = spawn(command, args, { stdio: ["ignore", "pipe", "pipe"] });
278
+ let stdout = "";
279
+ let stderr = "";
280
+ const timeout = setTimeout(() => child.kill("SIGTERM"), 20_000);
281
+ child.stdout.setEncoding("utf8").on("data", (chunk) => { stdout += chunk; });
282
+ child.stderr.setEncoding("utf8").on("data", (chunk) => { stderr += chunk; });
283
+ child.once("error", (error) => {
284
+ clearTimeout(timeout);
285
+ reject(error);
286
+ });
287
+ child.once("close", (code) => {
288
+ clearTimeout(timeout);
289
+ resolve({ code: code ?? 1, stdout: stdout.slice(0, 65_536), stderr: stderr.slice(0, 65_536) });
290
+ });
291
+ });
292
+ }
293
+ async function pathExists(path) {
294
+ try {
295
+ await stat(path);
296
+ return true;
297
+ }
298
+ catch {
299
+ return false;
300
+ }
301
+ }
302
+ function errorMessage(error) {
303
+ return error instanceof Error ? error.message : String(error);
304
+ }
305
+ function isNodeError(error) {
306
+ return error instanceof Error && "code" in error;
307
+ }
308
+ function isObject(value) {
309
+ return typeof value === "object" && value !== null && !Array.isArray(value);
310
+ }
311
+ //# sourceMappingURL=docs-mcp-pairing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-mcp-pairing.js","sourceRoot":"","sources":["../src/docs-mcp-pairing.ts"],"names":[],"mappings":"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"}
package/dist/doctor.d.ts CHANGED
@@ -56,6 +56,12 @@ export interface ValidateMonoAgentFolderOptions extends MonoAgentAppConfigInput
56
56
  readonly sdkAuthStatusExecFile?: SdkAuthStatusExecFile;
57
57
  /** Managed workers resolve optional plugins only from their attested app closure. */
58
58
  readonly preferAppPluginInstall?: boolean;
59
+ /**
60
+ * Internal managed-worker fast path. The launch verifier has already bound
61
+ * this informational detail to the exact private runtime marker, so doctor
62
+ * must not repeat the full dependency-tree provenance traversal.
63
+ */
64
+ readonly verifiedRuntimeProvenanceDetail?: string;
59
65
  }
60
66
  /**
61
67
  * Loads every config section the app would use at start and reports it
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAUjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAK/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAiDnD,OAAO,KAAK,EAAE,oBAAoB,EAA8B,MAAM,mBAAmB,CAAC;AAQ1F,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,iFAAiF;IACjF,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACtB;AAED,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;CAC3C;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,gBAAgB,CAAC,CAuF3B;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":"AA6CA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAUjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAK/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAiDnD,OAAO,KAAK,EAAE,oBAAoB,EAA8B,MAAM,mBAAmB,CAAC;AAQ1F,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,iFAAiF;IACjF,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACtB;AAED,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,CAuF3B;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"}
package/dist/doctor.js CHANGED
@@ -62,7 +62,7 @@ export async function validateMonoAgentFolder(options) {
62
62
  }
63
63
  sections.push({ id: "core", label: "Core config", status: "error", details: [error.message] });
64
64
  }
65
- sections.push(await runtimeProvenanceSection());
65
+ sections.push(await runtimeProvenanceSection(options.verifiedRuntimeProvenanceDetail));
66
66
  if (coreConfig !== undefined) {
67
67
  const staticTriggerCredentialRefs = await collectStaticTriggerCredentialRefs(drivers, options);
68
68
  const jsonResult = await readMonoAgentConfigJson(options.configPath);
@@ -401,7 +401,7 @@ function hasExactAllowAllToolPolicy(tools) {
401
401
  /** Adapter send tools each channel owns; an allowed entry needs BOTH the tool AND the enabled channel. */
402
402
  const CHANNEL_OWNED_SEND_TOOLS = {
403
403
  slack: ["SlackSendMessage"],
404
- telegram: ["TelegramSendMessage", "TelegramAskButtons", "TelegramSendFile"],
404
+ telegram: ["TelegramSendMessage", "TelegramSendFile"],
405
405
  };
406
406
  /**
407
407
  * Reconciles the already-built `channel:*` section statuses with the tool policy
@@ -458,12 +458,12 @@ function applyToolChannelCrossChecks(sections, allowedTools, disallowedTools) {
458
458
  }
459
459
  sections[toolsIndex] = { ...current, status, details: [...current.details, ...extraDetails] };
460
460
  }
461
- async function runtimeProvenanceSection() {
461
+ async function runtimeProvenanceSection(verifiedDetail) {
462
462
  return {
463
463
  id: "runtime-provenance",
464
464
  label: "Runtime provenance",
465
465
  status: "ok",
466
- details: [await runtimeProvenanceDetail()],
466
+ details: [verifiedDetail ?? await runtimeProvenanceDetail()],
467
467
  };
468
468
  }
469
469
  function runtimeSection(config) {
@@ -2655,7 +2655,6 @@ async function adapterSendToolNetworkPolicyWarnings(config, input, settings, sup
2655
2655
  });
2656
2656
  const bridgeTools = [
2657
2657
  ...(askUserAllowed ? ["AskUser"] : []),
2658
- ...(toolNames.includes("TelegramAskButtons") ? ["TelegramAskButtons"] : []),
2659
2658
  ];
2660
2659
  if (bridgeTools.length > 0) {
2661
2660
  const configuredBridgeUrl = input.env.MONO_AGENT_INTERACTION_BRIDGE_URL?.trim();