@mono-agent/agent-app 0.19.1 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +307 -32
- package/dist/acp-bridge.d.ts.map +1 -1
- package/dist/acp-bridge.js +113 -54
- package/dist/acp-bridge.js.map +1 -1
- package/dist/acp-session-store.d.ts +12 -0
- package/dist/acp-session-store.d.ts.map +1 -0
- package/dist/acp-session-store.js +74 -0
- package/dist/acp-session-store.js.map +1 -0
- package/dist/agent-artifact-paths.d.ts +8 -0
- package/dist/agent-artifact-paths.d.ts.map +1 -0
- package/dist/agent-artifact-paths.js +11 -0
- package/dist/agent-artifact-paths.js.map +1 -0
- package/dist/agent-root-coordinator.d.ts +101 -0
- package/dist/agent-root-coordinator.d.ts.map +1 -0
- package/dist/agent-root-coordinator.js +470 -0
- package/dist/agent-root-coordinator.js.map +1 -0
- package/dist/app-controller-channels.d.ts +13 -1
- package/dist/app-controller-channels.d.ts.map +1 -1
- package/dist/app-controller-channels.js +152 -20
- package/dist/app-controller-channels.js.map +1 -1
- package/dist/app-controller-continuation.d.ts +2 -0
- package/dist/app-controller-continuation.d.ts.map +1 -1
- package/dist/app-controller-continuation.js.map +1 -1
- package/dist/app-controller-lifecycle.d.ts +5 -0
- package/dist/app-controller-lifecycle.d.ts.map +1 -1
- package/dist/app-controller-lifecycle.js +24 -5
- package/dist/app-controller-lifecycle.js.map +1 -1
- package/dist/app-controller-maintenance.d.ts +4 -0
- package/dist/app-controller-maintenance.d.ts.map +1 -1
- package/dist/app-controller-maintenance.js +34 -2
- package/dist/app-controller-maintenance.js.map +1 -1
- package/dist/app-controller-memory.d.ts +2 -0
- package/dist/app-controller-memory.d.ts.map +1 -1
- package/dist/app-controller-memory.js +6 -3
- package/dist/app-controller-memory.js.map +1 -1
- package/dist/app-controller-process-jobs.d.ts +49 -0
- package/dist/app-controller-process-jobs.d.ts.map +1 -0
- package/dist/app-controller-process-jobs.js +294 -0
- package/dist/app-controller-process-jobs.js.map +1 -0
- package/dist/app-controller-responder.d.ts +17 -0
- package/dist/app-controller-responder.d.ts.map +1 -1
- package/dist/app-controller-responder.js +164 -13
- package/dist/app-controller-responder.js.map +1 -1
- package/dist/app-controller-traceability.d.ts +8 -0
- package/dist/app-controller-traceability.d.ts.map +1 -1
- package/dist/app-controller-traceability.js +22 -1
- package/dist/app-controller-traceability.js.map +1 -1
- package/dist/app-controller-types.d.ts +1 -1
- package/dist/app-controller-types.d.ts.map +1 -1
- package/dist/app-controller-utils.d.ts +8 -0
- package/dist/app-controller-utils.d.ts.map +1 -1
- package/dist/app-controller-utils.js +24 -1
- package/dist/app-controller-utils.js.map +1 -1
- package/dist/app-controller.d.ts +45 -1
- package/dist/app-controller.d.ts.map +1 -1
- package/dist/app-controller.js +135 -39
- package/dist/app-controller.js.map +1 -1
- package/dist/background-log-maintenance.d.ts +85 -2
- package/dist/background-log-maintenance.d.ts.map +1 -1
- package/dist/background-log-maintenance.js +407 -136
- package/dist/background-log-maintenance.js.map +1 -1
- package/dist/background-runtime.d.ts.map +1 -1
- package/dist/background-runtime.js +22 -41
- package/dist/background-runtime.js.map +1 -1
- package/dist/background.d.ts +18 -26
- package/dist/background.d.ts.map +1 -1
- package/dist/background.js +105 -138
- package/dist/background.js.map +1 -1
- package/dist/channel-drivers/cron.d.ts +12 -1
- package/dist/channel-drivers/cron.d.ts.map +1 -1
- package/dist/channel-drivers/cron.js +121 -18
- package/dist/channel-drivers/cron.js.map +1 -1
- package/dist/channel-drivers/native-notify.d.ts +3 -0
- package/dist/channel-drivers/native-notify.d.ts.map +1 -1
- package/dist/channel-drivers/native-notify.js +2 -1
- package/dist/channel-drivers/native-notify.js.map +1 -1
- package/dist/channel-drivers/slack.d.ts.map +1 -1
- package/dist/channel-drivers/slack.js +41 -4
- 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 +46 -3
- package/dist/channel-drivers/telegram.js.map +1 -1
- package/dist/channel-drivers/tui.d.ts +13 -2
- package/dist/channel-drivers/tui.d.ts.map +1 -1
- package/dist/channel-drivers/tui.js +112 -3
- package/dist/channel-drivers/tui.js.map +1 -1
- package/dist/channels.d.ts +1 -1
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js +4 -2
- package/dist/channels.js.map +1 -1
- package/dist/cli-args.d.ts +15 -1
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +82 -12
- package/dist/cli-args.js.map +1 -1
- package/dist/cli-background-command.d.ts +9 -2
- package/dist/cli-background-command.d.ts.map +1 -1
- package/dist/cli-background-command.js +179 -66
- package/dist/cli-background-command.js.map +1 -1
- package/dist/cli-commands.d.ts.map +1 -1
- package/dist/cli-commands.js +50 -12
- package/dist/cli-commands.js.map +1 -1
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +21 -1
- package/dist/cli-help.js.map +1 -1
- package/dist/config-reference.d.ts.map +1 -1
- package/dist/config-reference.js +105 -2
- package/dist/config-reference.js.map +1 -1
- package/dist/configured-agent.d.ts +64 -21
- package/dist/configured-agent.d.ts.map +1 -1
- package/dist/configured-agent.js +840 -156
- package/dist/configured-agent.js.map +1 -1
- package/dist/conversation-state-roots.d.ts +59 -0
- package/dist/conversation-state-roots.d.ts.map +1 -0
- package/dist/conversation-state-roots.js +248 -0
- package/dist/conversation-state-roots.js.map +1 -0
- package/dist/cron-control-store.d.ts +91 -0
- package/dist/cron-control-store.d.ts.map +1 -0
- package/dist/cron-control-store.js +1251 -0
- package/dist/cron-control-store.js.map +1 -0
- package/dist/cron-operator-service.d.ts +54 -0
- package/dist/cron-operator-service.d.ts.map +1 -0
- package/dist/cron-operator-service.js +352 -0
- package/dist/cron-operator-service.js.map +1 -0
- package/dist/doctor-session-history.d.ts +9 -0
- package/dist/doctor-session-history.d.ts.map +1 -0
- package/dist/doctor-session-history.js +313 -0
- package/dist/doctor-session-history.js.map +1 -0
- package/dist/doctor.d.ts +2 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +356 -9
- package/dist/doctor.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/interaction-bridge.d.ts +1 -0
- package/dist/interaction-bridge.d.ts.map +1 -1
- package/dist/interaction-bridge.js +54 -6
- package/dist/interaction-bridge.js.map +1 -1
- package/dist/jobs-command.d.ts +17 -0
- package/dist/jobs-command.d.ts.map +1 -0
- package/dist/jobs-command.js +207 -0
- package/dist/jobs-command.js.map +1 -0
- package/dist/launchd-lifecycle-lock.d.ts +36 -0
- package/dist/launchd-lifecycle-lock.d.ts.map +1 -0
- package/dist/launchd-lifecycle-lock.js +124 -0
- package/dist/launchd-lifecycle-lock.js.map +1 -0
- package/dist/launchd-log-monitor-status.d.ts +7 -0
- package/dist/launchd-log-monitor-status.d.ts.map +1 -0
- package/dist/launchd-log-monitor-status.js +224 -0
- package/dist/launchd-log-monitor-status.js.map +1 -0
- package/dist/launchd-logs.d.ts +9 -1
- package/dist/launchd-logs.d.ts.map +1 -1
- package/dist/launchd-logs.js +69 -16
- package/dist/launchd-logs.js.map +1 -1
- package/dist/launchd-maintenance-command.d.ts +10 -0
- package/dist/launchd-maintenance-command.d.ts.map +1 -0
- package/dist/launchd-maintenance-command.js +2 -0
- package/dist/launchd-maintenance-command.js.map +1 -0
- package/dist/launchd-maintenance-entry.d.ts +30 -0
- package/dist/launchd-maintenance-entry.d.ts.map +1 -0
- package/dist/launchd-maintenance-entry.js +206 -0
- package/dist/launchd-maintenance-entry.js.map +1 -0
- package/dist/launchd-maintenance-gate.d.ts +28 -0
- package/dist/launchd-maintenance-gate.d.ts.map +1 -0
- package/dist/launchd-maintenance-gate.js +80 -0
- package/dist/launchd-maintenance-gate.js.map +1 -0
- package/dist/launchd-private-files.d.ts +3 -0
- package/dist/launchd-private-files.d.ts.map +1 -0
- package/dist/launchd-private-files.js +58 -0
- package/dist/launchd-private-files.js.map +1 -0
- package/dist/launchd.d.ts +56 -2
- package/dist/launchd.d.ts.map +1 -1
- package/dist/launchd.js +210 -5
- package/dist/launchd.js.map +1 -1
- package/dist/local-configuration.d.ts.map +1 -1
- package/dist/local-configuration.js +34 -7
- package/dist/local-configuration.js.map +1 -1
- package/dist/managed-launchd-maintenance-environment.d.ts +3 -0
- package/dist/managed-launchd-maintenance-environment.d.ts.map +1 -0
- package/dist/managed-launchd-maintenance-environment.js +12 -0
- package/dist/managed-launchd-maintenance-environment.js.map +1 -0
- package/dist/managed-runtime-launch-proof.d.ts +11 -0
- package/dist/managed-runtime-launch-proof.d.ts.map +1 -0
- package/dist/managed-runtime-launch-proof.js +59 -0
- package/dist/managed-runtime-launch-proof.js.map +1 -0
- package/dist/managed-runtime-maintenance-entry.d.ts +10 -0
- package/dist/managed-runtime-maintenance-entry.d.ts.map +1 -0
- package/dist/managed-runtime-maintenance-entry.js +244 -0
- package/dist/managed-runtime-maintenance-entry.js.map +1 -0
- package/dist/managed-web-logs.d.ts +29 -11
- package/dist/managed-web-logs.d.ts.map +1 -1
- package/dist/managed-web-logs.js +244 -121
- package/dist/managed-web-logs.js.map +1 -1
- package/dist/managed-web-maintenance-environment.d.ts +6 -0
- package/dist/managed-web-maintenance-environment.d.ts.map +1 -0
- package/dist/managed-web-maintenance-environment.js +19 -0
- package/dist/managed-web-maintenance-environment.js.map +1 -0
- package/dist/mcp-apps.d.ts +37 -0
- package/dist/mcp-apps.d.ts.map +1 -0
- package/dist/mcp-apps.js +1753 -0
- package/dist/mcp-apps.js.map +1 -0
- package/dist/memory-command.d.ts +12 -0
- package/dist/memory-command.d.ts.map +1 -1
- package/dist/memory-command.js +510 -1
- package/dist/memory-command.js.map +1 -1
- package/dist/modules/known-tools.d.ts +1 -1
- package/dist/modules/known-tools.d.ts.map +1 -1
- package/dist/modules/known-tools.js +2 -0
- package/dist/modules/known-tools.js.map +1 -1
- package/dist/posted-reply-history.d.ts.map +1 -1
- package/dist/posted-reply-history.js +12 -0
- package/dist/posted-reply-history.js.map +1 -1
- package/dist/proactive-notify.d.ts +4 -1
- package/dist/proactive-notify.d.ts.map +1 -1
- package/dist/proactive-notify.js +43 -5
- package/dist/proactive-notify.js.map +1 -1
- package/dist/process-jobs-config.d.ts +84 -0
- package/dist/process-jobs-config.d.ts.map +1 -0
- package/dist/process-jobs-config.js +427 -0
- package/dist/process-jobs-config.js.map +1 -0
- package/dist/process-jobs-context.d.ts +24 -0
- package/dist/process-jobs-context.d.ts.map +1 -0
- package/dist/process-jobs-context.js +135 -0
- package/dist/process-jobs-context.js.map +1 -0
- package/dist/process-jobs-protection.d.ts +33 -0
- package/dist/process-jobs-protection.d.ts.map +1 -0
- package/dist/process-jobs-protection.js +74 -0
- package/dist/process-jobs-protection.js.map +1 -0
- package/dist/process-jobs-root-registry.d.ts +115 -0
- package/dist/process-jobs-root-registry.d.ts.map +1 -0
- package/dist/process-jobs-root-registry.js +978 -0
- package/dist/process-jobs-root-registry.js.map +1 -0
- package/dist/process-jobs-runtime.d.ts +38 -0
- package/dist/process-jobs-runtime.d.ts.map +1 -0
- package/dist/process-jobs-runtime.js +178 -0
- package/dist/process-jobs-runtime.js.map +1 -0
- package/dist/process-jobs-service.d.ts +70 -0
- package/dist/process-jobs-service.d.ts.map +1 -0
- package/dist/process-jobs-service.js +1989 -0
- package/dist/process-jobs-service.js.map +1 -0
- package/dist/process-jobs-store.d.ts +151 -0
- package/dist/process-jobs-store.d.ts.map +1 -0
- package/dist/process-jobs-store.js +1290 -0
- package/dist/process-jobs-store.js.map +1 -0
- package/dist/reply-artifacts.d.ts +65 -0
- package/dist/reply-artifacts.d.ts.map +1 -0
- package/dist/reply-artifacts.js +1147 -0
- package/dist/reply-artifacts.js.map +1 -0
- package/dist/reply-part-budget.d.ts +16 -0
- package/dist/reply-part-budget.d.ts.map +1 -0
- package/dist/reply-part-budget.js +57 -0
- package/dist/reply-part-budget.js.map +1 -0
- package/dist/request-model-override.d.ts +19 -0
- package/dist/request-model-override.d.ts.map +1 -1
- package/dist/request-model-override.js +54 -1
- package/dist/request-model-override.js.map +1 -1
- package/dist/request-scoped-mcp.d.ts +31 -0
- package/dist/request-scoped-mcp.d.ts.map +1 -0
- package/dist/request-scoped-mcp.js +197 -0
- package/dist/request-scoped-mcp.js.map +1 -0
- package/dist/run-history.d.ts.map +1 -1
- package/dist/run-history.js +50 -254
- package/dist/run-history.js.map +1 -1
- package/dist/runtime-option-extensions.d.ts +23 -0
- package/dist/runtime-option-extensions.d.ts.map +1 -1
- package/dist/runtime-option-extensions.js +55 -0
- package/dist/runtime-option-extensions.js.map +1 -1
- package/dist/runtime-routes.d.ts +7 -1
- package/dist/runtime-routes.d.ts.map +1 -1
- package/dist/runtime-routes.js +25 -0
- package/dist/runtime-routes.js.map +1 -1
- package/dist/secure-file-replace.d.ts +3 -0
- package/dist/secure-file-replace.d.ts.map +1 -1
- package/dist/secure-file-replace.js +31 -7
- package/dist/secure-file-replace.js.map +1 -1
- package/dist/session-history.d.ts +146 -0
- package/dist/session-history.d.ts.map +1 -0
- package/dist/session-history.js +347 -0
- package/dist/session-history.js.map +1 -0
- package/dist/sessions.d.ts +45 -2
- package/dist/sessions.d.ts.map +1 -1
- package/dist/sessions.js +849 -30
- package/dist/sessions.js.map +1 -1
- package/dist/web-command.d.ts +12 -11
- package/dist/web-command.d.ts.map +1 -1
- package/dist/web-command.js +554 -80
- package/dist/web-command.js.map +1 -1
- package/dist/web-log-maintenance-command.d.ts +7 -0
- package/dist/web-log-maintenance-command.d.ts.map +1 -0
- package/dist/web-log-maintenance-command.js +21 -0
- package/dist/web-log-maintenance-command.js.map +1 -0
- package/dist/web-log-maintenance-status.d.ts +26 -0
- package/dist/web-log-maintenance-status.d.ts.map +1 -0
- package/dist/web-log-maintenance-status.js +171 -0
- package/dist/web-log-maintenance-status.js.map +1 -0
- package/dist/web-log-maintenance.d.ts +32 -0
- package/dist/web-log-maintenance.d.ts.map +1 -0
- package/dist/web-log-maintenance.js +163 -0
- package/dist/web-log-maintenance.js.map +1 -0
- package/dist/web-maintenance-paths.d.ts +12 -0
- package/dist/web-maintenance-paths.d.ts.map +1 -0
- package/dist/web-maintenance-paths.js +24 -0
- package/dist/web-maintenance-paths.js.map +1 -0
- package/dist/wizard/prompts.d.ts.map +1 -1
- package/dist/wizard/prompts.js +1 -0
- package/dist/wizard/prompts.js.map +1 -1
- package/dist/wizard/run.js +1 -1
- package/dist/wizard/run.js.map +1 -1
- package/package.json +15 -15
- package/schema/mono-agent.config.schema.json +106 -1
- package/skills/mono-agent-composer/references/config-blueprint.md +27 -2
- package/skills/mono-agent-composer/references/discovery-questions.md +2 -2
- package/skills/mono-agent-composer/references/feature-coverage.md +6 -4
- package/skills/mono-agent-composer/references/package-map.md +19 -3
- package/skills/mono-agent-composer/references/playbooks.md +3 -3
- package/skills/mono-agent-composer/references/validation.md +4 -2
package/dist/launchd.js
CHANGED
|
@@ -4,6 +4,9 @@ import { basename, dirname, isAbsolute, resolve } from "node:path";
|
|
|
4
4
|
import process from "node:process";
|
|
5
5
|
import { accountHomeDirectory } from "./account-home.js";
|
|
6
6
|
import { isBackgroundOperationalEnvName, MANAGED_BACKGROUND_WORKER_ENV, } from "./background-environment.js";
|
|
7
|
+
import { MANAGED_LAUNCHD_MAINTENANCE_ENTRY_FILE } from "./launchd-maintenance-command.js";
|
|
8
|
+
import { managedWebLogMaintenanceEnvironment, MANAGED_WEB_LOG_MAINTENANCE_ENV, } from "./managed-web-maintenance-environment.js";
|
|
9
|
+
export { MANAGED_WEB_LOG_MAINTENANCE_ENV } from "./managed-web-maintenance-environment.js";
|
|
7
10
|
const LABEL_PREFIX = "com.mono-agent";
|
|
8
11
|
const MAINTENANCE_LABEL_PREFIX = "com.mono-agent-maintenance";
|
|
9
12
|
const MAX_FOLDER_SEGMENT = 40;
|
|
@@ -11,6 +14,9 @@ const FALLBACK_PATH = "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/homebre
|
|
|
11
14
|
const PATH_EXTRAS = ["/opt/homebrew/bin", "/usr/local/bin"];
|
|
12
15
|
export const INTERNAL_LAUNCHD_LOG_MAINTENANCE_COMMAND = "__launchd-log-maintenance";
|
|
13
16
|
export const MANAGED_LAUNCHD_LOG_MAINTENANCE_ENV = "MONO_AGENT_MANAGED_LOG_MAINTENANCE";
|
|
17
|
+
export const WEB_LAUNCHD_LABEL = "com.mono-agent-web";
|
|
18
|
+
export const WEB_MAINTENANCE_LAUNCHD_LABEL = "com.mono-agent-web-maintenance";
|
|
19
|
+
export const INTERNAL_WEB_LOG_MAINTENANCE_COMMAND = "__web-log-maintenance";
|
|
14
20
|
/**
|
|
15
21
|
* A stable, launchd-legal label derived from the resolved config path. The
|
|
16
22
|
* folder name keeps it human-readable; an 8-char hash of the absolute config
|
|
@@ -52,6 +58,35 @@ export function deriveLaunchdMaintenanceLabel(mainLabel) {
|
|
|
52
58
|
}
|
|
53
59
|
return `${MAINTENANCE_LABEL_PREFIX}.${match[1]}`;
|
|
54
60
|
}
|
|
61
|
+
/** Deterministically stagger recurring helpers by the canonical main label. */
|
|
62
|
+
export function launchdMaintenanceCalendarMinute(canonicalMainLabel) {
|
|
63
|
+
return launchdMaintenanceHashBucket(canonicalMainLabel, 60);
|
|
64
|
+
}
|
|
65
|
+
export const LAUNCHD_MAINTENANCE_DISPERSION_SECONDS = 120;
|
|
66
|
+
/** Spread login helpers before PID authentication, locking, or heavy import. */
|
|
67
|
+
export function launchdMaintenanceDispersionSeconds(canonicalMainLabel) {
|
|
68
|
+
return launchdMaintenanceHashBucket(canonicalMainLabel, LAUNCHD_MAINTENANCE_DISPERSION_SECONDS);
|
|
69
|
+
}
|
|
70
|
+
/** Web has a fixed label and therefore a distinct exact-label schedule validator. */
|
|
71
|
+
export function webMaintenanceCalendarMinute(label = WEB_LAUNCHD_LABEL) {
|
|
72
|
+
return webMaintenanceHashBucket(label, 60);
|
|
73
|
+
}
|
|
74
|
+
/** Mirror agent RunAtLoad dispersion without admitting the web label to agent grammar. */
|
|
75
|
+
export function webMaintenanceDispersionSeconds(label = WEB_LAUNCHD_LABEL) {
|
|
76
|
+
return webMaintenanceHashBucket(label, LAUNCHD_MAINTENANCE_DISPERSION_SECONDS);
|
|
77
|
+
}
|
|
78
|
+
function webMaintenanceHashBucket(label, bucketCount) {
|
|
79
|
+
if (label !== WEB_LAUNCHD_LABEL) {
|
|
80
|
+
throw new Error("Web maintenance requires the exact managed web LaunchAgent label.");
|
|
81
|
+
}
|
|
82
|
+
return createHash("sha256").update(label).digest().readUInt32BE(0) % bucketCount;
|
|
83
|
+
}
|
|
84
|
+
function launchdMaintenanceHashBucket(canonicalMainLabel, bucketCount) {
|
|
85
|
+
// Reuse the canonical-label validator. Hashing a maintenance label would
|
|
86
|
+
// silently create a different schedule/dispersion and is therefore rejected.
|
|
87
|
+
deriveLaunchdMaintenanceLabel(canonicalMainLabel);
|
|
88
|
+
return createHash("sha256").update(canonicalMainLabel).digest().readUInt32BE(0) % bucketCount;
|
|
89
|
+
}
|
|
55
90
|
export function launchdMaintenancePathsFor(mainLabel, home = accountHomeDirectory()) {
|
|
56
91
|
const label = deriveLaunchdMaintenanceLabel(mainLabel);
|
|
57
92
|
return {
|
|
@@ -59,6 +94,14 @@ export function launchdMaintenancePathsFor(mainLabel, home = accountHomeDirector
|
|
|
59
94
|
plistPath: resolve(home, "Library", "LaunchAgents", `${label}.plist`),
|
|
60
95
|
};
|
|
61
96
|
}
|
|
97
|
+
/** Canonical lightweight helper next to the attested managed-runtime CLI. */
|
|
98
|
+
export function launchdMaintenanceEntrypointPathForCli(cliPath) {
|
|
99
|
+
const canonicalCliPath = resolve(cliPath);
|
|
100
|
+
if (basename(canonicalCliPath) !== "cli.js" || basename(dirname(canonicalCliPath)) !== "dist") {
|
|
101
|
+
throw new Error("Launchd maintenance requires the canonical dist/cli.js managed runtime layout.");
|
|
102
|
+
}
|
|
103
|
+
return resolve(dirname(canonicalCliPath), MANAGED_LAUNCHD_MAINTENANCE_ENTRY_FILE);
|
|
104
|
+
}
|
|
62
105
|
export function escapeXml(value) {
|
|
63
106
|
return value
|
|
64
107
|
.replace(/&/gu, "&")
|
|
@@ -117,8 +160,10 @@ ${argsXml}
|
|
|
117
160
|
}
|
|
118
161
|
/** Scheduled one-shot recovery controller. It owns no logs and never KeepAlives. */
|
|
119
162
|
export function buildLaunchdMaintenancePlistXml(input) {
|
|
120
|
-
if (!Number.isSafeInteger(input.
|
|
121
|
-
|
|
163
|
+
if (!Number.isSafeInteger(input.calendarMinute)
|
|
164
|
+
|| input.calendarMinute < 0
|
|
165
|
+
|| input.calendarMinute > 59) {
|
|
166
|
+
throw new Error("Launchd maintenance calendar minute must be an integer from 0 through 59.");
|
|
122
167
|
}
|
|
123
168
|
for (const [name, value] of [
|
|
124
169
|
["launchd maintenance label", input.label],
|
|
@@ -143,8 +188,60 @@ ${argsXml}
|
|
|
143
188
|
<string>${escapeXml(input.cwd)}</string>
|
|
144
189
|
<key>RunAtLoad</key>
|
|
145
190
|
<true/>
|
|
146
|
-
<key>
|
|
147
|
-
<
|
|
191
|
+
<key>StartCalendarInterval</key>
|
|
192
|
+
<dict>
|
|
193
|
+
<key>Minute</key>
|
|
194
|
+
<integer>${String(input.calendarMinute)}</integer>
|
|
195
|
+
</dict>
|
|
196
|
+
<key>StandardOutPath</key>
|
|
197
|
+
<string>/dev/null</string>
|
|
198
|
+
<key>StandardErrorPath</key>
|
|
199
|
+
<string>/dev/null</string>
|
|
200
|
+
<key>ProcessType</key>
|
|
201
|
+
<string>Background</string>
|
|
202
|
+
</dict>
|
|
203
|
+
</plist>
|
|
204
|
+
`;
|
|
205
|
+
}
|
|
206
|
+
/** Scheduled one-shot web log controller. It never owns a KeepAlive or log stream. */
|
|
207
|
+
export function buildWebMaintenancePlistXml(input) {
|
|
208
|
+
if (input.label !== WEB_MAINTENANCE_LAUNCHD_LABEL) {
|
|
209
|
+
throw new Error("Web maintenance requires its exact private LaunchAgent label.");
|
|
210
|
+
}
|
|
211
|
+
if (!Number.isSafeInteger(input.calendarMinute)
|
|
212
|
+
|| input.calendarMinute < 0
|
|
213
|
+
|| input.calendarMinute > 59) {
|
|
214
|
+
throw new Error("Web maintenance calendar minute must be an integer from 0 through 59.");
|
|
215
|
+
}
|
|
216
|
+
assertWebPlistIdentity(input.expectedWebPlistIdentity);
|
|
217
|
+
for (const [name, value] of [
|
|
218
|
+
["web maintenance launchd label", input.label],
|
|
219
|
+
["web maintenance working directory", input.cwd],
|
|
220
|
+
]) {
|
|
221
|
+
assertControlFree(value, name);
|
|
222
|
+
}
|
|
223
|
+
const argsXml = buildWebMaintenanceProgramArguments(input)
|
|
224
|
+
.map((argument) => ` <string>${escapeXml(argument)}</string>`)
|
|
225
|
+
.join("\n");
|
|
226
|
+
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
227
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
228
|
+
<plist version="1.0">
|
|
229
|
+
<dict>
|
|
230
|
+
<key>Label</key>
|
|
231
|
+
<string>${escapeXml(input.label)}</string>
|
|
232
|
+
<key>ProgramArguments</key>
|
|
233
|
+
<array>
|
|
234
|
+
${argsXml}
|
|
235
|
+
</array>
|
|
236
|
+
<key>WorkingDirectory</key>
|
|
237
|
+
<string>${escapeXml(input.cwd)}</string>
|
|
238
|
+
<key>RunAtLoad</key>
|
|
239
|
+
<true/>
|
|
240
|
+
<key>StartCalendarInterval</key>
|
|
241
|
+
<dict>
|
|
242
|
+
<key>Minute</key>
|
|
243
|
+
<integer>${String(input.calendarMinute)}</integer>
|
|
244
|
+
</dict>
|
|
148
245
|
<key>StandardOutPath</key>
|
|
149
246
|
<string>/dev/null</string>
|
|
150
247
|
<key>StandardErrorPath</key>
|
|
@@ -244,12 +341,33 @@ export function buildLaunchdMaintenanceProgramArguments(input) {
|
|
|
244
341
|
input.agentCwd,
|
|
245
342
|
"--agent-path",
|
|
246
343
|
input.agentPath,
|
|
344
|
+
"--expected-managed-runtime-launch",
|
|
345
|
+
input.expectedManagedRuntimeLaunch,
|
|
247
346
|
...(input.envFile === undefined ? [] : ["--env-file", input.envFile]),
|
|
248
347
|
];
|
|
249
348
|
for (const argument of arguments_)
|
|
250
349
|
assertControlFree(argument, "launchd maintenance program argument");
|
|
251
350
|
return arguments_;
|
|
252
351
|
}
|
|
352
|
+
/** Exact argv persisted by the private scheduled web-maintenance LaunchAgent. */
|
|
353
|
+
export function buildWebMaintenanceProgramArguments(input) {
|
|
354
|
+
assertWebPlistIdentity(input.expectedWebPlistIdentity);
|
|
355
|
+
const arguments_ = [
|
|
356
|
+
"/usr/bin/env",
|
|
357
|
+
"-i",
|
|
358
|
+
...buildEnvironmentArguments(input.environment),
|
|
359
|
+
input.nodePath,
|
|
360
|
+
input.cliPath,
|
|
361
|
+
INTERNAL_WEB_LOG_MAINTENANCE_COMMAND,
|
|
362
|
+
"--expected-managed-runtime-launch",
|
|
363
|
+
input.expectedManagedRuntimeLaunch,
|
|
364
|
+
"--expected-web-plist-identity",
|
|
365
|
+
input.expectedWebPlistIdentity,
|
|
366
|
+
];
|
|
367
|
+
for (const argument of arguments_)
|
|
368
|
+
assertControlFree(argument, "web maintenance program argument");
|
|
369
|
+
return arguments_;
|
|
370
|
+
}
|
|
253
371
|
/** Exact argv persisted for the always-on web console. */
|
|
254
372
|
export function buildWebLaunchdProgramArguments(input) {
|
|
255
373
|
const arguments_ = [
|
|
@@ -271,7 +389,7 @@ export function buildWebLaunchdProgramArguments(input) {
|
|
|
271
389
|
assertControlFree(argument, "web launchd program argument");
|
|
272
390
|
return arguments_;
|
|
273
391
|
}
|
|
274
|
-
function buildEnvironmentArguments(environment) {
|
|
392
|
+
export function buildEnvironmentArguments(environment) {
|
|
275
393
|
return Object.entries(environment)
|
|
276
394
|
.sort(([left], [right]) => compareCodeUnits(left, right))
|
|
277
395
|
.map(([key, value]) => {
|
|
@@ -287,6 +405,11 @@ function assertControlFree(value, label) {
|
|
|
287
405
|
throw new Error(`${label} must not contain control characters.`);
|
|
288
406
|
}
|
|
289
407
|
}
|
|
408
|
+
export function assertWebPlistIdentity(value) {
|
|
409
|
+
if (!/^\d+:\d+:\d+:[0-9a-f]{64}$/u.test(value)) {
|
|
410
|
+
throw new Error("Web LaunchAgent plist identity must be dev:ino:size:sha256.");
|
|
411
|
+
}
|
|
412
|
+
}
|
|
290
413
|
function compareCodeUnits(left, right) {
|
|
291
414
|
return left < right ? -1 : left > right ? 1 : 0;
|
|
292
415
|
}
|
|
@@ -363,6 +486,84 @@ export async function launchdManagedWorkerInfo(runner, label, uid) {
|
|
|
363
486
|
...(definition === undefined ? {} : { definition }),
|
|
364
487
|
};
|
|
365
488
|
}
|
|
489
|
+
/** Read the cached definition, not merely the mutable helper plist on disk. */
|
|
490
|
+
export async function launchdWebMaintenanceInfo(runner, uid) {
|
|
491
|
+
const result = await runner(["print", serviceTarget(WEB_MAINTENANCE_LAUNCHD_LABEL, uid)]);
|
|
492
|
+
if (result.code !== 0)
|
|
493
|
+
return { loaded: false };
|
|
494
|
+
const pid = parseLaunchdServicePid(result.stdout);
|
|
495
|
+
const definition = parseLaunchdWebMaintenanceDefinition(result.stdout);
|
|
496
|
+
return {
|
|
497
|
+
loaded: true,
|
|
498
|
+
...(pid === undefined ? {} : { pid }),
|
|
499
|
+
...(definition === undefined ? {} : { definition }),
|
|
500
|
+
};
|
|
501
|
+
}
|
|
502
|
+
/** Parse only the exact cached web-helper definition emitted by this producer. */
|
|
503
|
+
export function parseLaunchdWebMaintenanceDefinition(output) {
|
|
504
|
+
const lines = output.endsWith("\n") ? output.slice(0, -1).split("\n") : output.split("\n");
|
|
505
|
+
const oneValue = (name) => {
|
|
506
|
+
const prefix = `\t${name} = `;
|
|
507
|
+
const matches = lines.filter((line) => line.startsWith(prefix));
|
|
508
|
+
if (matches.length !== 1)
|
|
509
|
+
return undefined;
|
|
510
|
+
const value = matches[0].slice(prefix.length);
|
|
511
|
+
return value.length > 0 && !/[\u0000-\u001f\u007f]/u.test(value) ? value : undefined;
|
|
512
|
+
};
|
|
513
|
+
const blockStarts = lines
|
|
514
|
+
.map((line, index) => line === "\targuments = {" ? index : -1)
|
|
515
|
+
.filter((index) => index >= 0);
|
|
516
|
+
if (blockStarts.length !== 1)
|
|
517
|
+
return undefined;
|
|
518
|
+
const blockStart = blockStarts[0];
|
|
519
|
+
const blockEnd = lines.indexOf("\t}", blockStart + 1);
|
|
520
|
+
if (blockEnd <= blockStart + 1)
|
|
521
|
+
return undefined;
|
|
522
|
+
const args = lines.slice(blockStart + 1, blockEnd).map((line) => line.startsWith("\t\t") ? line.slice(2) : "");
|
|
523
|
+
if (args.some((argument) => argument.length === 0 || /[\u0000-\u001f\u007f]/u.test(argument))) {
|
|
524
|
+
return undefined;
|
|
525
|
+
}
|
|
526
|
+
const expectedPrefix = [
|
|
527
|
+
"/usr/bin/env",
|
|
528
|
+
"-i",
|
|
529
|
+
...buildEnvironmentArguments(managedWebLogMaintenanceEnvironment()),
|
|
530
|
+
];
|
|
531
|
+
const nodeIndex = expectedPrefix.length;
|
|
532
|
+
if (oneValue("program") !== "/usr/bin/env"
|
|
533
|
+
|| args.length !== expectedPrefix.length + 7
|
|
534
|
+
|| expectedPrefix.some((value, index) => args[index] !== value)
|
|
535
|
+
|| args[nodeIndex + 2] !== INTERNAL_WEB_LOG_MAINTENANCE_COMMAND
|
|
536
|
+
|| args[nodeIndex + 3] !== "--expected-managed-runtime-launch"
|
|
537
|
+
|| args[nodeIndex + 5] !== "--expected-web-plist-identity") {
|
|
538
|
+
return undefined;
|
|
539
|
+
}
|
|
540
|
+
const nodePath = args[nodeIndex];
|
|
541
|
+
const cliPath = args[nodeIndex + 1];
|
|
542
|
+
const expectedManagedRuntimeLaunch = args[nodeIndex + 4];
|
|
543
|
+
const expectedWebPlistIdentity = args[nodeIndex + 6];
|
|
544
|
+
const plistPath = oneValue("path");
|
|
545
|
+
const cwd = oneValue("working directory");
|
|
546
|
+
if (nodePath === undefined || cliPath === undefined || plistPath === undefined || cwd === undefined
|
|
547
|
+
|| ![nodePath, cliPath, plistPath, cwd].every((path) => isAbsolute(path))
|
|
548
|
+
|| expectedManagedRuntimeLaunch === undefined
|
|
549
|
+
|| !/^[A-Za-z0-9_-]+$/u.test(expectedManagedRuntimeLaunch)
|
|
550
|
+
|| expectedWebPlistIdentity === undefined)
|
|
551
|
+
return undefined;
|
|
552
|
+
try {
|
|
553
|
+
assertWebPlistIdentity(expectedWebPlistIdentity);
|
|
554
|
+
}
|
|
555
|
+
catch {
|
|
556
|
+
return undefined;
|
|
557
|
+
}
|
|
558
|
+
return {
|
|
559
|
+
plistPath,
|
|
560
|
+
nodePath,
|
|
561
|
+
cliPath,
|
|
562
|
+
cwd,
|
|
563
|
+
expectedManagedRuntimeLaunch,
|
|
564
|
+
expectedWebPlistIdentity,
|
|
565
|
+
};
|
|
566
|
+
}
|
|
366
567
|
/** Parse only the exact managed-worker launchctl-print shape emitted here. */
|
|
367
568
|
export function parseLaunchdManagedWorkerDefinition(output) {
|
|
368
569
|
const lines = output.endsWith("\n") ? output.slice(0, -1).split("\n") : output.split("\n");
|
|
@@ -474,6 +675,10 @@ export function parseLaunchdServicePid(output) {
|
|
|
474
675
|
export async function bootstrap(runner, plistPath, uid) {
|
|
475
676
|
return await runner(["bootstrap", domainTarget(uid), plistPath]);
|
|
476
677
|
}
|
|
678
|
+
/** Ask launchd to start a loaded one-shot service without replacing a running instance. */
|
|
679
|
+
export async function kickstart(runner, label, uid) {
|
|
680
|
+
return await runner(["kickstart", serviceTarget(label, uid)]);
|
|
681
|
+
}
|
|
477
682
|
/**
|
|
478
683
|
* Remove the service from the domain. Sends SIGTERM and — unlike a plain kill —
|
|
479
684
|
* prevents KeepAlive from relaunching it. Caller tolerates "not loaded".
|
package/dist/launchd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchd.js","sourceRoot":"","sources":["../src/launchd.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"launchd.js","sourceRoot":"","sources":["../src/launchd.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-configuration.d.ts","sourceRoot":"","sources":["../src/local-configuration.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,mCAAmC,EACnC,+BAA+B,EAChC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,iBAAiB,CAAC;AAOzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAKL,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACxB,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"local-configuration.d.ts","sourceRoot":"","sources":["../src/local-configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,17 +8,21 @@ import { createToolPolicy } from "@mono-agent/agent-harness";
|
|
|
8
8
|
import { loadAppCoreConfig } from "./app-config.js";
|
|
9
9
|
import { ADAPTER_SEND_TOOLS_MCP_SERVER_NAME } from "./adapter-send-tools.js";
|
|
10
10
|
import { captureBackgroundSnapshot, } from "./background-snapshot.js";
|
|
11
|
-
import {
|
|
11
|
+
import { createConfiguredAgentResponderForApp } from "./configured-agent.js";
|
|
12
12
|
import { CONFIGURATION_PROPOSAL_MCP_SERVER_NAME, CONFIGURATION_PROPOSAL_TOOL_NAME, configurationProposalMcpServerSpec, containsUnsafeConfigurationReviewControl, } from "./configuration-proposal-tool.js";
|
|
13
13
|
import { validateMonoAgentFolder } from "./doctor.js";
|
|
14
14
|
import { ADAPTER_SEND_TOOL_NAMES, canonicalToolName } from "./modules/known-tools.js";
|
|
15
15
|
import { RUN_HISTORY_MCP_SERVER_NAME, RUN_HISTORY_TOOL_NAME } from "./run-history.js";
|
|
16
|
+
import { SESSION_HISTORY_MCP_SERVER_NAME, SESSION_HISTORY_TOOL_NAME } from "./session-history.js";
|
|
16
17
|
import { configuredRuntimeFallbackModels } from "./runtime-routes.js";
|
|
18
|
+
import { loadProcessJobsSettings } from "./process-jobs-config.js";
|
|
19
|
+
import { hasExactProcessJobStateMarkers } from "./process-jobs-store.js";
|
|
17
20
|
export const LOCAL_CONFIGURATION_PROMPT = "Begin the dedicated self-configuration session. This is not ordinary chat. Read the mono-agent-configure skill. In the first assistant message, identify the session as SELF-CONFIG and show one compact, user-led map of every capability area: identity and knowledge; runtime and models; skills, tools, MCP servers, and plugins; memory; channels, APIs, and A2A; automation and proactive work; security, sandboxing, and secrets; observability and operations; and acceptance criteria. Explain that the conversation can build a workflow from trigger → context/data → tools/actions → delivery → memory → safety/operations → success checks. State that secrets must never be entered, every file change requires a separate host-owned approval, and approval, rejection, done, or no changes keeps SELF-CONFIG active. Only /quit, /exit, or ctrl+c twice exits this session; quitting never sends a background stop request. Invite the operator to choose an area or describe the workflow they want, using one concise question. Do not repeat the setup wizard and do not overwhelm the operator with a questionnaire. The session may use multiple turns: ask one focused question at a time, and record one minimal coherent proposal with ProposeAgentConfiguration only when enough information is available. It is valid to explain or ask the next question without proposing a change. Never execute ordinary tasks with configuration authority or claim a proposal was applied; the local host validates proposals and asks for separate approval.";
|
|
18
21
|
export const LOCAL_CONFIGURATION_OPERATOR_PROMPT = "Continue the dedicated SELF-CONFIG conversation. The capability map and opening invitation were already shown: do not repeat them. Read the mono-agent-configure skill and use the existing conversation plus any host outcome below. Help the operator shape a usable workflow across trigger → context/data → tools/actions → delivery → memory → safety/operations → success checks. Take one conversational step: ask at most one focused question, explain the relevant supported or guided path, or, when the request is decision-complete, record one minimal coherent proposal with ProposeAgentConfiguration. A turn without a proposal is expected while exploring. After a host-applied or rejected proposal, continue with the next relevant area instead of handing off to ordinary chat. Never ask for secrets, execute an ordinary task with configuration authority, or claim a proposal was applied.";
|
|
19
22
|
const CONFIGURATION_READ_ONLY_TOOLS = [
|
|
20
23
|
"ReadSkill",
|
|
21
24
|
"MemoryRecall",
|
|
25
|
+
SESSION_HISTORY_TOOL_NAME,
|
|
22
26
|
CONFIGURATION_PROPOSAL_TOOL_NAME,
|
|
23
27
|
`mcp__${CONFIGURATION_PROPOSAL_MCP_SERVER_NAME}__${CONFIGURATION_PROPOSAL_TOOL_NAME}`,
|
|
24
28
|
];
|
|
@@ -30,7 +34,26 @@ export async function createLocalConfigurationSession(options) {
|
|
|
30
34
|
const authenticated = await authenticatedLocalConfig(options.cwd, options.configPath);
|
|
31
35
|
const secureOptions = { ...options, ...authenticated };
|
|
32
36
|
const config = await loadAppCoreConfig(secureOptions);
|
|
33
|
-
const
|
|
37
|
+
const processJobs = await loadProcessJobsSettings({
|
|
38
|
+
cwd: secureOptions.cwd,
|
|
39
|
+
configPath: secureOptions.configPath,
|
|
40
|
+
env: secureOptions.env,
|
|
41
|
+
});
|
|
42
|
+
const bootstrapProcessJobsStateDir = processJobs.enabled
|
|
43
|
+
|| await hasExactProcessJobStateMarkers(secureOptions.cwd, processJobs.stateDir)
|
|
44
|
+
? processJobs.stateDir
|
|
45
|
+
: undefined;
|
|
46
|
+
const responder = await createConfiguredAgentResponderForApp({
|
|
47
|
+
config,
|
|
48
|
+
// The configured responder owns both clear-sessions and process-job root
|
|
49
|
+
// protection. Use the authenticated root, never the ambient CLI cwd.
|
|
50
|
+
cwd: secureOptions.cwd,
|
|
51
|
+
}, {
|
|
52
|
+
bootstrapProcessJobs: {
|
|
53
|
+
settings: processJobs,
|
|
54
|
+
...(bootstrapProcessJobsStateDir === undefined ? {} : { stateDir: bootstrapProcessJobsStateDir }),
|
|
55
|
+
},
|
|
56
|
+
});
|
|
34
57
|
return {
|
|
35
58
|
responder,
|
|
36
59
|
title: config.agent?.name ?? "Mono Agent",
|
|
@@ -207,7 +230,7 @@ export function createLocalConfigurationRuntimeExtension(options) {
|
|
|
207
230
|
if (request.phase === "invitation") {
|
|
208
231
|
return {
|
|
209
232
|
toolPolicyOverride: createToolPolicy({
|
|
210
|
-
allowedTools: allRoutesUseDirectCodex ? ["*"] : ["ReadSkill", "MemoryRecall"],
|
|
233
|
+
allowedTools: allRoutesUseDirectCodex ? ["*"] : ["ReadSkill", "MemoryRecall", SESSION_HISTORY_TOOL_NAME],
|
|
211
234
|
disallowedTools: [],
|
|
212
235
|
mcpServers: {},
|
|
213
236
|
}),
|
|
@@ -980,18 +1003,22 @@ function mcpQualifiedTool(pattern) {
|
|
|
980
1003
|
function isAppOwnedMcpTool(server, tool) {
|
|
981
1004
|
return server === ADAPTER_SEND_TOOLS_MCP_SERVER_NAME
|
|
982
1005
|
? ADAPTER_SEND_TOOL_NAMES.some((name) => name === tool)
|
|
983
|
-
: server === RUN_HISTORY_MCP_SERVER_NAME && tool === RUN_HISTORY_TOOL_NAME
|
|
1006
|
+
: (server === RUN_HISTORY_MCP_SERVER_NAME && tool === RUN_HISTORY_TOOL_NAME)
|
|
1007
|
+
|| (server === SESSION_HISTORY_MCP_SERVER_NAME && tool === SESSION_HISTORY_TOOL_NAME);
|
|
984
1008
|
}
|
|
985
1009
|
function appOwnedMcpWildcardCovers(prefix, candidate) {
|
|
986
1010
|
if (prefix === `mcp__${ADAPTER_SEND_TOOLS_MCP_SERVER_NAME}__`) {
|
|
987
1011
|
return ADAPTER_SEND_TOOL_NAMES.some((name) => name === candidate);
|
|
988
1012
|
}
|
|
989
|
-
return prefix === `mcp__${RUN_HISTORY_MCP_SERVER_NAME}__`
|
|
990
|
-
&& candidate === RUN_HISTORY_TOOL_NAME
|
|
1013
|
+
return (prefix === `mcp__${RUN_HISTORY_MCP_SERVER_NAME}__`
|
|
1014
|
+
&& candidate === RUN_HISTORY_TOOL_NAME)
|
|
1015
|
+
|| (prefix === `mcp__${SESSION_HISTORY_MCP_SERVER_NAME}__`
|
|
1016
|
+
&& candidate === SESSION_HISTORY_TOOL_NAME);
|
|
991
1017
|
}
|
|
992
1018
|
function isAppOwnedTool(candidate) {
|
|
993
1019
|
return ADAPTER_SEND_TOOL_NAMES.some((name) => name === candidate)
|
|
994
|
-
|| candidate === RUN_HISTORY_TOOL_NAME
|
|
1020
|
+
|| candidate === RUN_HISTORY_TOOL_NAME
|
|
1021
|
+
|| candidate === SESSION_HISTORY_TOOL_NAME;
|
|
995
1022
|
}
|
|
996
1023
|
function isMcpAuthorityTool(candidate) {
|
|
997
1024
|
return (candidate.startsWith("mcp__") && candidate !== "mcp__*") || isAppOwnedTool(candidate);
|