@mono-agent/agent-app 0.12.0 → 0.13.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.
- package/README.md +33 -7
- package/dist/adapter-send-tools.d.ts.map +1 -1
- package/dist/adapter-send-tools.js +126 -34
- package/dist/adapter-send-tools.js.map +1 -1
- package/dist/app-controller-lifecycle.d.ts.map +1 -1
- package/dist/app-controller-lifecycle.js +2 -6
- package/dist/app-controller-lifecycle.js.map +1 -1
- package/dist/app-controller-maintenance.d.ts.map +1 -1
- package/dist/app-controller-maintenance.js +2 -1
- package/dist/app-controller-maintenance.js.map +1 -1
- package/dist/app-controller-memory-health.d.ts +1 -1
- package/dist/app-controller-memory-health.d.ts.map +1 -1
- package/dist/app-controller-memory-health.js +5 -1
- package/dist/app-controller-memory-health.js.map +1 -1
- package/dist/app-controller-responder.d.ts.map +1 -1
- package/dist/app-controller-responder.js +8 -3
- package/dist/app-controller-responder.js.map +1 -1
- package/dist/app-controller-traceability.d.ts.map +1 -1
- package/dist/app-controller-traceability.js +15 -1
- package/dist/app-controller-traceability.js.map +1 -1
- package/dist/app-controller.d.ts +14 -1
- package/dist/app-controller.d.ts.map +1 -1
- package/dist/app-controller.js +61 -9
- package/dist/app-controller.js.map +1 -1
- package/dist/audit-runs.d.ts.map +1 -1
- package/dist/audit-runs.js +12 -2
- package/dist/audit-runs.js.map +1 -1
- package/dist/background-runtime.d.ts +26 -0
- package/dist/background-runtime.d.ts.map +1 -1
- package/dist/background-runtime.js +874 -46
- package/dist/background-runtime.js.map +1 -1
- package/dist/background.d.ts +10 -2
- package/dist/background.d.ts.map +1 -1
- package/dist/background.js +193 -38
- package/dist/background.js.map +1 -1
- package/dist/channel-drivers/live.d.ts +3 -2
- package/dist/channel-drivers/live.d.ts.map +1 -1
- package/dist/channel-drivers/live.js +3 -2
- package/dist/channel-drivers/live.js.map +1 -1
- package/dist/channel-drivers/slack.d.ts.map +1 -1
- package/dist/channel-drivers/slack.js +6 -0
- package/dist/channel-drivers/slack.js.map +1 -1
- package/dist/channel-drivers/telegram.d.ts.map +1 -1
- package/dist/channel-drivers/telegram.js +20 -4
- package/dist/channel-drivers/telegram.js.map +1 -1
- package/dist/channel-runtime-controls.d.ts +23 -0
- package/dist/channel-runtime-controls.d.ts.map +1 -0
- package/dist/channel-runtime-controls.js +63 -0
- package/dist/channel-runtime-controls.js.map +1 -0
- package/dist/channel-status-display.d.ts +15 -0
- package/dist/channel-status-display.d.ts.map +1 -0
- package/dist/channel-status-display.js +48 -0
- package/dist/channel-status-display.js.map +1 -0
- package/dist/cli-args.d.ts +17 -22
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +107 -75
- package/dist/cli-args.js.map +1 -1
- package/dist/cli-background-command.d.ts +1 -0
- package/dist/cli-background-command.d.ts.map +1 -1
- package/dist/cli-background-command.js +72 -16
- package/dist/cli-background-command.js.map +1 -1
- package/dist/cli-commands.d.ts +2 -2
- package/dist/cli-commands.d.ts.map +1 -1
- package/dist/cli-commands.js +35 -53
- package/dist/cli-commands.js.map +1 -1
- package/dist/cli-help.d.ts +19 -1
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +209 -67
- package/dist/cli-help.js.map +1 -1
- package/dist/cli-init-command.d.ts.map +1 -1
- package/dist/cli-init-command.js +4 -18
- package/dist/cli-init-command.js.map +1 -1
- package/dist/cli-install-skill-command.d.ts.map +1 -1
- package/dist/cli-install-skill-command.js +32 -3
- package/dist/cli-install-skill-command.js.map +1 -1
- package/dist/cli-runs-command.d.ts +13 -0
- package/dist/cli-runs-command.d.ts.map +1 -0
- package/dist/cli-runs-command.js +70 -0
- package/dist/cli-runs-command.js.map +1 -0
- package/dist/cli-sandbox-command.d.ts +1 -1
- package/dist/cli-sandbox-command.d.ts.map +1 -1
- package/dist/cli-sandbox-command.js +14 -2
- package/dist/cli-sandbox-command.js.map +1 -1
- package/dist/cli-validate-config-command.d.ts +24 -5
- package/dist/cli-validate-config-command.d.ts.map +1 -1
- package/dist/cli-validate-config-command.js +120 -41
- package/dist/cli-validate-config-command.js.map +1 -1
- package/dist/config-reference.js +1 -1
- package/dist/docs-mcp-pairing.d.ts +35 -0
- package/dist/docs-mcp-pairing.d.ts.map +1 -0
- package/dist/docs-mcp-pairing.js +311 -0
- package/dist/docs-mcp-pairing.js.map +1 -0
- package/dist/doctor.d.ts +6 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +3 -3
- package/dist/doctor.js.map +1 -1
- package/dist/install-skill.d.ts +2 -0
- package/dist/install-skill.d.ts.map +1 -1
- package/dist/install-skill.js +10 -4
- package/dist/install-skill.js.map +1 -1
- package/dist/interaction-bridge.d.ts +2 -0
- package/dist/interaction-bridge.d.ts.map +1 -1
- package/dist/interaction-bridge.js +46 -1
- package/dist/interaction-bridge.js.map +1 -1
- package/dist/launchd.d.ts +2 -0
- package/dist/launchd.d.ts.map +1 -1
- package/dist/launchd.js +2 -0
- package/dist/launchd.js.map +1 -1
- package/dist/managed-runtime-publication.d.ts +22 -0
- package/dist/managed-runtime-publication.d.ts.map +1 -0
- package/dist/managed-runtime-publication.js +91 -0
- package/dist/managed-runtime-publication.js.map +1 -0
- package/dist/managed-startup.d.ts +8 -0
- package/dist/managed-startup.d.ts.map +1 -0
- package/dist/managed-startup.js +12 -0
- package/dist/managed-startup.js.map +1 -0
- package/dist/memory-retrieval.d.ts.map +1 -1
- package/dist/memory-retrieval.js +31 -18
- package/dist/memory-retrieval.js.map +1 -1
- package/dist/metrics.d.ts.map +1 -1
- package/dist/metrics.js +12 -2
- package/dist/metrics.js.map +1 -1
- package/dist/posted-reply-history.d.ts.map +1 -1
- package/dist/posted-reply-history.js +7 -0
- package/dist/posted-reply-history.js.map +1 -1
- package/dist/request-model-override.d.ts +2 -2
- package/dist/request-model-override.js +8 -4
- package/dist/request-model-override.js.map +1 -1
- package/dist/run-history.d.ts.map +1 -1
- package/dist/run-history.js +35 -22
- package/dist/run-history.js.map +1 -1
- package/dist/runtime-provenance.d.ts.map +1 -1
- package/dist/runtime-provenance.js +10 -5
- package/dist/runtime-provenance.js.map +1 -1
- package/dist/tui-command.d.ts.map +1 -1
- package/dist/tui-command.js +2 -1
- package/dist/tui-command.js.map +1 -1
- package/dist/wizard/from-flags.d.ts +0 -1
- package/dist/wizard/from-flags.d.ts.map +1 -1
- package/dist/wizard/from-flags.js +1 -8
- package/dist/wizard/from-flags.js.map +1 -1
- package/dist/wizard/index.d.ts +1 -1
- package/dist/wizard/index.d.ts.map +1 -1
- package/dist/wizard/index.js +1 -1
- package/dist/wizard/index.js.map +1 -1
- package/dist/wizard/presets.d.ts +3 -12
- package/dist/wizard/presets.d.ts.map +1 -1
- package/dist/wizard/presets.js +3 -15
- package/dist/wizard/presets.js.map +1 -1
- package/package.json +15 -16
- package/schema/mono-agent.config.schema.json +2 -2
- package/skills/mono-agent-composer/SKILL.md +13 -5
- package/skills/mono-agent-composer/agents/openai.yaml +1 -1
- package/skills/mono-agent-composer/references/config-blueprint.md +17 -9
- package/skills/mono-agent-composer/references/discovery-questions.md +8 -5
- package/skills/mono-agent-composer/references/feature-coverage.md +9 -8
- package/skills/mono-agent-composer/references/package-map.md +10 -4
- package/skills/mono-agent-composer/references/playbooks.md +5 -5
- package/skills/mono-agent-composer/references/validation.md +4 -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
|
package/dist/doctor.d.ts.map
CHANGED
|
@@ -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;
|
|
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);
|
|
@@ -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) {
|