@mono-agent/agent-app 0.11.2 → 0.11.4
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/LICENSE +674 -0
- package/README.md +222 -26
- package/dist/adapter-send-tools-main.js +7 -1
- package/dist/adapter-send-tools-main.js.map +1 -1
- package/dist/adapter-send-tools.d.ts +19 -1
- package/dist/adapter-send-tools.d.ts.map +1 -1
- package/dist/adapter-send-tools.js +127 -13
- package/dist/adapter-send-tools.js.map +1 -1
- package/dist/app-config.d.ts.map +1 -1
- package/dist/app-config.js +15 -2
- package/dist/app-config.js.map +1 -1
- package/dist/app-controller-channels.d.ts +8 -0
- package/dist/app-controller-channels.d.ts.map +1 -0
- package/dist/app-controller-channels.js +207 -0
- package/dist/app-controller-channels.js.map +1 -0
- package/dist/app-controller-continuation.d.ts +26 -0
- package/dist/app-controller-continuation.d.ts.map +1 -0
- package/dist/app-controller-continuation.js +198 -0
- package/dist/app-controller-continuation.js.map +1 -0
- package/dist/app-controller-lifecycle.d.ts +6 -0
- package/dist/app-controller-lifecycle.d.ts.map +1 -0
- package/dist/app-controller-lifecycle.js +81 -0
- package/dist/app-controller-lifecycle.js.map +1 -0
- package/dist/app-controller-maintenance.d.ts +13 -0
- package/dist/app-controller-maintenance.d.ts.map +1 -0
- package/dist/app-controller-maintenance.js +180 -0
- package/dist/app-controller-maintenance.js.map +1 -0
- package/dist/app-controller-memory-health.d.ts +12 -0
- package/dist/app-controller-memory-health.d.ts.map +1 -0
- package/dist/app-controller-memory-health.js +160 -0
- package/dist/app-controller-memory-health.js.map +1 -0
- package/dist/app-controller-memory.d.ts +9 -0
- package/dist/app-controller-memory.d.ts.map +1 -0
- package/dist/app-controller-memory.js +83 -0
- package/dist/app-controller-memory.js.map +1 -0
- package/dist/app-controller-responder.d.ts +20 -0
- package/dist/app-controller-responder.d.ts.map +1 -0
- package/dist/app-controller-responder.js +246 -0
- package/dist/app-controller-responder.js.map +1 -0
- package/dist/app-controller-traceability.d.ts +25 -0
- package/dist/app-controller-traceability.d.ts.map +1 -0
- package/dist/app-controller-traceability.js +418 -0
- package/dist/app-controller-traceability.js.map +1 -0
- package/dist/app-controller-utils.d.ts +38 -0
- package/dist/app-controller-utils.d.ts.map +1 -0
- package/dist/app-controller-utils.js +185 -0
- package/dist/app-controller-utils.js.map +1 -0
- package/dist/app-controller.d.ts +400 -0
- package/dist/app-controller.d.ts.map +1 -0
- package/dist/app-controller.js +336 -0
- package/dist/app-controller.js.map +1 -0
- package/dist/app.d.ts +7 -115
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +6 -1912
- package/dist/app.js.map +1 -1
- package/dist/artifact-retention.d.ts +4 -0
- package/dist/artifact-retention.d.ts.map +1 -1
- package/dist/artifact-retention.js +38 -0
- package/dist/artifact-retention.js.map +1 -1
- package/dist/backfill.d.ts +3 -1
- package/dist/backfill.d.ts.map +1 -1
- package/dist/backfill.js +5 -1
- package/dist/backfill.js.map +1 -1
- package/dist/background-runtime.d.ts +27 -0
- package/dist/background-runtime.d.ts.map +1 -1
- package/dist/background-runtime.js +383 -205
- package/dist/background-runtime.js.map +1 -1
- package/dist/background-worker-lease.d.ts.map +1 -1
- package/dist/background-worker-lease.js +41 -241
- package/dist/background-worker-lease.js.map +1 -1
- package/dist/background.d.ts +31 -9
- package/dist/background.d.ts.map +1 -1
- package/dist/background.js +543 -272
- package/dist/background.js.map +1 -1
- package/dist/channel-drivers/cron.d.ts +11 -0
- package/dist/channel-drivers/cron.d.ts.map +1 -0
- package/dist/channel-drivers/cron.js +168 -0
- package/dist/channel-drivers/cron.js.map +1 -0
- package/dist/channel-drivers/live.d.ts +11 -0
- package/dist/channel-drivers/live.d.ts.map +1 -0
- package/dist/channel-drivers/live.js +47 -0
- package/dist/channel-drivers/live.js.map +1 -0
- package/dist/channel-drivers/native-notify.d.ts +27 -0
- package/dist/channel-drivers/native-notify.d.ts.map +1 -0
- package/dist/channel-drivers/native-notify.js +94 -0
- package/dist/channel-drivers/native-notify.js.map +1 -0
- package/dist/channel-drivers/openai-api.d.ts +7 -0
- package/dist/channel-drivers/openai-api.d.ts.map +1 -0
- package/dist/channel-drivers/openai-api.js +63 -0
- package/dist/channel-drivers/openai-api.js.map +1 -0
- package/dist/channel-drivers/shared.d.ts +4 -0
- package/dist/channel-drivers/shared.d.ts.map +1 -0
- package/dist/channel-drivers/shared.js +5 -0
- package/dist/channel-drivers/shared.js.map +1 -0
- package/dist/channel-drivers/slack.d.ts +14 -0
- package/dist/channel-drivers/slack.d.ts.map +1 -0
- package/dist/channel-drivers/slack.js +227 -0
- package/dist/channel-drivers/slack.js.map +1 -0
- package/dist/channel-drivers/telegram.d.ts +11 -0
- package/dist/channel-drivers/telegram.d.ts.map +1 -0
- package/dist/channel-drivers/telegram.js +244 -0
- package/dist/channel-drivers/telegram.js.map +1 -0
- package/dist/channel-drivers/tui.d.ts +15 -0
- package/dist/channel-drivers/tui.d.ts.map +1 -0
- package/dist/channel-drivers/tui.js +108 -0
- package/dist/channel-drivers/tui.js.map +1 -0
- package/dist/channel-drivers/webhook.d.ts +7 -0
- package/dist/channel-drivers/webhook.d.ts.map +1 -0
- package/dist/channel-drivers/webhook.js +115 -0
- package/dist/channel-drivers/webhook.js.map +1 -0
- package/dist/channels.d.ts +21 -81
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js +11 -1174
- package/dist/channels.js.map +1 -1
- package/dist/cli-args.d.ts +121 -0
- package/dist/cli-args.d.ts.map +1 -0
- package/dist/cli-args.js +532 -0
- package/dist/cli-args.js.map +1 -0
- package/dist/cli-background-command.d.ts +59 -0
- package/dist/cli-background-command.d.ts.map +1 -0
- package/dist/cli-background-command.js +475 -0
- package/dist/cli-background-command.js.map +1 -0
- package/dist/cli-cancellation.d.ts +6 -0
- package/dist/cli-cancellation.d.ts.map +1 -0
- package/dist/cli-cancellation.js +23 -0
- package/dist/cli-cancellation.js.map +1 -0
- package/dist/cli-commands.d.ts +12 -0
- package/dist/cli-commands.d.ts.map +1 -0
- package/dist/cli-commands.js +306 -0
- package/dist/cli-commands.js.map +1 -0
- package/dist/cli-help.d.ts +11 -0
- package/dist/cli-help.d.ts.map +1 -0
- package/dist/cli-help.js +262 -0
- package/dist/cli-help.js.map +1 -0
- package/dist/cli-init-command.d.ts +60 -0
- package/dist/cli-init-command.d.ts.map +1 -0
- package/dist/cli-init-command.js +1910 -0
- package/dist/cli-init-command.js.map +1 -0
- package/dist/cli-install-skill-command.d.ts +3 -0
- package/dist/cli-install-skill-command.d.ts.map +1 -0
- package/dist/cli-install-skill-command.js +51 -0
- package/dist/cli-install-skill-command.js.map +1 -0
- package/dist/cli-sandbox-command.d.ts +10 -0
- package/dist/cli-sandbox-command.d.ts.map +1 -0
- package/dist/cli-sandbox-command.js +100 -0
- package/dist/cli-sandbox-command.js.map +1 -0
- package/dist/cli-validate-config-command.d.ts +36 -0
- package/dist/cli-validate-config-command.d.ts.map +1 -0
- package/dist/cli-validate-config-command.js +317 -0
- package/dist/cli-validate-config-command.js.map +1 -0
- package/dist/cli.d.ts +6 -248
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +6 -3792
- package/dist/cli.js.map +1 -1
- package/dist/config-reference.d.ts +2 -1
- package/dist/config-reference.d.ts.map +1 -1
- package/dist/config-reference.js +34 -8
- package/dist/config-reference.js.map +1 -1
- package/dist/configured-agent.d.ts +23 -0
- package/dist/configured-agent.d.ts.map +1 -1
- package/dist/configured-agent.js +92 -13
- package/dist/configured-agent.js.map +1 -1
- package/dist/continuation-dispatch-worker.d.ts +21 -0
- package/dist/continuation-dispatch-worker.d.ts.map +1 -0
- package/dist/continuation-dispatch-worker.js +425 -0
- package/dist/continuation-dispatch-worker.js.map +1 -0
- package/dist/continuation-http-routes.d.ts +15 -0
- package/dist/continuation-http-routes.d.ts.map +1 -0
- package/dist/continuation-http-routes.js +265 -0
- package/dist/continuation-http-routes.js.map +1 -0
- package/dist/continuation-operator-api.d.ts +18 -0
- package/dist/continuation-operator-api.d.ts.map +1 -0
- package/dist/continuation-operator-api.js +164 -0
- package/dist/continuation-operator-api.js.map +1 -0
- package/dist/continuation-origin-store.d.ts +19 -0
- package/dist/continuation-origin-store.d.ts.map +1 -0
- package/dist/continuation-origin-store.js +273 -0
- package/dist/continuation-origin-store.js.map +1 -0
- package/dist/continuation-service-errors.d.ts +18 -0
- package/dist/continuation-service-errors.d.ts.map +1 -0
- package/dist/continuation-service-errors.js +35 -0
- package/dist/continuation-service-errors.js.map +1 -0
- package/dist/continuation-service-helpers.d.ts +39 -0
- package/dist/continuation-service-helpers.d.ts.map +1 -0
- package/dist/continuation-service-helpers.js +308 -0
- package/dist/continuation-service-helpers.js.map +1 -0
- package/dist/continuation-service-origin.d.ts +55 -0
- package/dist/continuation-service-origin.d.ts.map +1 -0
- package/dist/continuation-service-origin.js +325 -0
- package/dist/continuation-service-origin.js.map +1 -0
- package/dist/continuation-service-types.d.ts +110 -0
- package/dist/continuation-service-types.d.ts.map +1 -0
- package/dist/continuation-service-types.js +11 -0
- package/dist/continuation-service-types.js.map +1 -0
- package/dist/continuation-service.d.ts +4 -97
- package/dist/continuation-service.d.ts.map +1 -1
- package/dist/continuation-service.js +9 -1525
- package/dist/continuation-service.js.map +1 -1
- package/dist/continuation-store-fs.d.ts +15 -0
- package/dist/continuation-store-fs.d.ts.map +1 -0
- package/dist/continuation-store-fs.js +247 -0
- package/dist/continuation-store-fs.js.map +1 -0
- package/dist/continuation-store-policy.d.ts +21 -0
- package/dist/continuation-store-policy.d.ts.map +1 -0
- package/dist/continuation-store-policy.js +278 -0
- package/dist/continuation-store-policy.js.map +1 -0
- package/dist/continuation-store-records.d.ts +9 -0
- package/dist/continuation-store-records.d.ts.map +1 -0
- package/dist/continuation-store-records.js +221 -0
- package/dist/continuation-store-records.js.map +1 -0
- package/dist/continuation-store-types.d.ts +173 -0
- package/dist/continuation-store-types.d.ts.map +1 -0
- package/dist/continuation-store-types.js +26 -0
- package/dist/continuation-store-types.js.map +1 -0
- package/dist/continuation-store.d.ts +4 -138
- package/dist/continuation-store.d.ts.map +1 -1
- package/dist/continuation-store.js +145 -1049
- package/dist/continuation-store.js.map +1 -1
- package/dist/doctor.d.ts +10 -5
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +629 -58
- package/dist/doctor.js.map +1 -1
- package/dist/init.d.ts +2 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +92 -239
- package/dist/init.js.map +1 -1
- package/dist/interaction-bridge.d.ts +19 -0
- package/dist/interaction-bridge.d.ts.map +1 -1
- package/dist/interaction-bridge.js +130 -0
- package/dist/interaction-bridge.js.map +1 -1
- package/dist/launchd-logs.d.ts +91 -0
- package/dist/launchd-logs.d.ts.map +1 -0
- package/dist/launchd-logs.js +1499 -0
- package/dist/launchd-logs.js.map +1 -0
- package/dist/launchd.d.ts +27 -0
- package/dist/launchd.d.ts.map +1 -1
- package/dist/launchd.js +89 -10
- package/dist/launchd.js.map +1 -1
- package/dist/memory-command.d.ts +2 -0
- package/dist/memory-command.d.ts.map +1 -1
- package/dist/memory-command.js +161 -48
- package/dist/memory-command.js.map +1 -1
- package/dist/memory-recall-settings.d.ts +64 -0
- package/dist/memory-recall-settings.d.ts.map +1 -0
- package/dist/memory-recall-settings.js +51 -0
- package/dist/memory-recall-settings.js.map +1 -0
- package/dist/memory-recall.d.ts +7 -95
- package/dist/memory-recall.d.ts.map +1 -1
- package/dist/memory-recall.js +8 -143
- package/dist/memory-recall.js.map +1 -1
- package/dist/memory-rituals.d.ts +3 -3
- package/dist/memory-rituals.d.ts.map +1 -1
- package/dist/memory-rituals.js +16 -111
- package/dist/memory-rituals.js.map +1 -1
- package/dist/modules/catalog.js +2 -2
- package/dist/modules/catalog.js.map +1 -1
- package/dist/modules/known-tools.d.ts +8 -6
- package/dist/modules/known-tools.d.ts.map +1 -1
- package/dist/modules/known-tools.js +8 -6
- package/dist/modules/known-tools.js.map +1 -1
- package/dist/notify-destinations.d.ts +5 -0
- package/dist/notify-destinations.d.ts.map +1 -1
- package/dist/notify-destinations.js +7 -1
- package/dist/notify-destinations.js.map +1 -1
- package/dist/owner-private-lock.d.ts +95 -0
- package/dist/owner-private-lock.d.ts.map +1 -0
- package/dist/owner-private-lock.js +566 -0
- package/dist/owner-private-lock.js.map +1 -0
- package/dist/pi-oauth-login.d.ts +2 -0
- package/dist/pi-oauth-login.d.ts.map +1 -1
- package/dist/pi-oauth-login.js +39 -5
- package/dist/pi-oauth-login.js.map +1 -1
- package/dist/posted-message-index.d.ts +35 -16
- package/dist/posted-message-index.d.ts.map +1 -1
- package/dist/posted-message-index.js +1068 -52
- package/dist/posted-message-index.js.map +1 -1
- package/dist/posted-reply-history.d.ts +17 -0
- package/dist/posted-reply-history.d.ts.map +1 -0
- package/dist/posted-reply-history.js +169 -0
- package/dist/posted-reply-history.js.map +1 -0
- package/dist/proactive-notify.d.ts.map +1 -1
- package/dist/proactive-notify.js +6 -4
- package/dist/proactive-notify.js.map +1 -1
- package/dist/project-skills.d.ts +4 -0
- package/dist/project-skills.d.ts.map +1 -1
- package/dist/project-skills.js +99 -130
- package/dist/project-skills.js.map +1 -1
- package/dist/provider-setup.d.ts +0 -1
- package/dist/provider-setup.d.ts.map +1 -1
- package/dist/provider-setup.js +0 -3
- package/dist/provider-setup.js.map +1 -1
- package/dist/readiness-probe-worker.d.ts +61 -1
- package/dist/readiness-probe-worker.d.ts.map +1 -1
- package/dist/readiness-probe-worker.js +54 -58
- package/dist/readiness-probe-worker.js.map +1 -1
- package/dist/readiness-probe.d.ts +6 -9
- package/dist/readiness-probe.d.ts.map +1 -1
- package/dist/readiness-probe.js +30 -56
- package/dist/readiness-probe.js.map +1 -1
- package/dist/redact-secrets.d.ts +15 -0
- package/dist/redact-secrets.d.ts.map +1 -0
- package/dist/redact-secrets.js +65 -0
- package/dist/redact-secrets.js.map +1 -0
- package/dist/run-history.js +34 -24
- package/dist/run-history.js.map +1 -1
- package/dist/runtime-provenance.d.ts +8 -0
- package/dist/runtime-provenance.d.ts.map +1 -0
- package/dist/runtime-provenance.js +225 -0
- package/dist/runtime-provenance.js.map +1 -0
- package/dist/sandbox-manager.d.ts +4 -1
- package/dist/sandbox-manager.d.ts.map +1 -1
- package/dist/sandbox-manager.js +114 -273
- package/dist/sandbox-manager.js.map +1 -1
- package/dist/secure-file-replace.d.ts +49 -0
- package/dist/secure-file-replace.d.ts.map +1 -0
- package/dist/secure-file-replace.js +270 -0
- package/dist/secure-file-replace.js.map +1 -0
- package/dist/seen-conversations.d.ts +32 -5
- package/dist/seen-conversations.d.ts.map +1 -1
- package/dist/seen-conversations.js +145 -15
- package/dist/seen-conversations.js.map +1 -1
- package/dist/sessions.d.ts +20 -0
- package/dist/sessions.d.ts.map +1 -1
- package/dist/sessions.js +41 -6
- package/dist/sessions.js.map +1 -1
- package/dist/wizard/index.d.ts +2 -2
- 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 +2 -1
- package/dist/wizard/presets.d.ts.map +1 -1
- package/dist/wizard/presets.js +2 -1
- package/dist/wizard/presets.js.map +1 -1
- package/dist/wizard/run.d.ts +0 -26
- package/dist/wizard/run.d.ts.map +1 -1
- package/dist/wizard/run.js +0 -53
- package/dist/wizard/run.js.map +1 -1
- package/package.json +22 -17
- package/schema/mono-agent.config.schema.json +45 -10
- package/skills/mono-agent-composer/SKILL.md +3 -3
- package/skills/mono-agent-composer/references/config-blueprint.md +123 -29
- package/skills/mono-agent-composer/references/discovery-questions.md +10 -8
- package/skills/mono-agent-composer/references/feature-coverage.md +90 -76
- package/skills/mono-agent-composer/references/package-map.md +6 -4
- package/skills/mono-agent-composer/references/playbooks.md +48 -27
- package/skills/mono-agent-composer/references/validation.md +16 -3
- package/dist/notify-runtime.d.ts +0 -26
- package/dist/notify-runtime.d.ts.map +0 -1
- package/dist/notify-runtime.js +0 -27
- package/dist/notify-runtime.js.map +0 -1
- package/dist/notify-tool.d.ts +0 -51
- package/dist/notify-tool.d.ts.map +0 -1
- package/dist/notify-tool.js +0 -182
- package/dist/notify-tool.js.map +0 -1
- package/dist/recipes/base.d.ts +0 -15
- package/dist/recipes/base.d.ts.map +0 -1
- package/dist/recipes/base.js +0 -51
- package/dist/recipes/base.js.map +0 -1
- package/dist/recipes/catalog.d.ts +0 -4
- package/dist/recipes/catalog.d.ts.map +0 -1
- package/dist/recipes/catalog.js +0 -525
- package/dist/recipes/catalog.js.map +0 -1
- package/dist/recipes/index.d.ts +0 -11
- package/dist/recipes/index.d.ts.map +0 -1
- package/dist/recipes/index.js +0 -14
- package/dist/recipes/index.js.map +0 -1
- package/dist/recipes/types.d.ts +0 -70
- package/dist/recipes/types.d.ts.map +0 -1
- package/dist/recipes/types.js +0 -15
- package/dist/recipes/types.js.map +0 -1
- package/dist/setup.d.ts +0 -29
- package/dist/setup.d.ts.map +0 -1
- package/dist/setup.js +0 -97
- package/dist/setup.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createHash, randomUUID } from "node:crypto";
|
|
2
|
-
import {
|
|
3
|
-
import { chmod, lstat, mkdir,
|
|
2
|
+
import {} from "node:fs";
|
|
3
|
+
import { chmod, lstat, mkdir, realpath, } from "node:fs/promises";
|
|
4
4
|
import { userInfo } from "node:os";
|
|
5
5
|
import { basename, dirname, join, resolve } from "node:path";
|
|
6
6
|
import process from "node:process";
|
|
7
|
-
import {
|
|
7
|
+
import { acquireOwnerPrivateLock, validateOwnerPrivateLockInputs, } from "./owner-private-lock.js";
|
|
8
8
|
const LEASE_SCHEMA = "mono-agent.background-worker-lease.v2";
|
|
9
9
|
const DEFAULT_OWNERLESS_GRACE_MS = 5 * 60_000;
|
|
10
10
|
const MAX_ACQUIRE_ATTEMPTS = 4;
|
|
@@ -32,98 +32,49 @@ export async function acquireBackgroundWorkerLease(configPath, options = {}) {
|
|
|
32
32
|
// homeDir seam, while normal workers always converge on one lease root.
|
|
33
33
|
const home = resolve(options.homeDir ?? effectiveUserHome());
|
|
34
34
|
const pid = options.pid ?? process.pid;
|
|
35
|
-
if (!Number.isSafeInteger(pid) || pid <= 0) {
|
|
36
|
-
throw new Error(`Background worker lease pid must be a positive safe integer; received ${String(pid)}.`);
|
|
37
|
-
}
|
|
38
35
|
const now = options.now ?? (() => Date.now());
|
|
39
|
-
const incarnation = options.processIncarnation ?? await currentProcessIncarnation();
|
|
40
|
-
const isSameProcess = options.isSameProcessIncarnation ?? matchesProcessIncarnation;
|
|
41
36
|
const randomToken = options.randomToken ?? randomUUID;
|
|
42
37
|
const ownerlessGraceMs = options.ownerlessGraceMs ?? DEFAULT_OWNERLESS_GRACE_MS;
|
|
43
|
-
|
|
44
|
-
throw new Error("Background worker lease ownerless grace must be a non-negative finite duration.");
|
|
45
|
-
}
|
|
38
|
+
validateOwnerPrivateLockInputs("Background worker lease", pid, ownerlessGraceMs);
|
|
46
39
|
const leasesRoot = await ensurePrivateLeaseRoot(home);
|
|
47
40
|
const leasePath = backgroundWorkerLeasePath(resolvedConfig, home);
|
|
48
41
|
const leaseId = basename(leasePath, ".lease");
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
const existing = await inspectExistingLease(leasePath, ownerPath, resolvedConfig);
|
|
87
|
-
if (existing === undefined)
|
|
88
|
-
continue;
|
|
89
|
-
if (existing.kind === "owned") {
|
|
90
|
-
let sameOwner = true;
|
|
91
|
-
try {
|
|
92
|
-
sameOwner = await isSameProcess(existing.owner.pid, existing.owner.incarnation);
|
|
93
|
-
}
|
|
94
|
-
catch {
|
|
95
|
-
// A failed incarnation probe cannot authorize stealing another process's lease.
|
|
96
|
-
sameOwner = true;
|
|
97
|
-
}
|
|
98
|
-
if (sameOwner)
|
|
99
|
-
return undefined;
|
|
100
|
-
}
|
|
101
|
-
else if (now() - existing.mtimeMs < ownerlessGraceMs) {
|
|
102
|
-
// Never steal the normal mkdir -> owner.json initialization window.
|
|
103
|
-
return undefined;
|
|
104
|
-
}
|
|
105
|
-
await options.hooks?.beforeStaleLeaseRename?.();
|
|
106
|
-
if (!(await samePrivateDirectory(leasePath, existing.identity)))
|
|
107
|
-
continue;
|
|
108
|
-
const quarantine = join(leasesRoot, `.${leaseId}-${now()}-${pid}-${safeToken(randomToken())}.stale`);
|
|
109
|
-
try {
|
|
110
|
-
await rename(leasePath, quarantine);
|
|
111
|
-
}
|
|
112
|
-
catch (error) {
|
|
113
|
-
if (isErrno(error, "ENOENT") || isErrno(error, "EEXIST"))
|
|
114
|
-
continue;
|
|
115
|
-
return undefined;
|
|
116
|
-
}
|
|
117
|
-
const moved = await lstat(quarantine);
|
|
118
|
-
if (!sameIdentity(moved, existing.identity)) {
|
|
119
|
-
// A same-user path swap crossed the final rename boundary. Restore when
|
|
120
|
-
// possible and fail closed rather than claiming a potentially live lease.
|
|
121
|
-
await rename(quarantine, leasePath).catch(() => undefined);
|
|
122
|
-
return undefined;
|
|
123
|
-
}
|
|
124
|
-
await rm(quarantine, { recursive: true, force: true });
|
|
125
|
-
}
|
|
126
|
-
return undefined;
|
|
42
|
+
const held = await acquireOwnerPrivateLock({
|
|
43
|
+
path: leasePath,
|
|
44
|
+
label: "Background worker lease",
|
|
45
|
+
schemaTag: LEASE_SCHEMA,
|
|
46
|
+
ownerlessGraceMs,
|
|
47
|
+
maxAcquireAttempts: MAX_ACQUIRE_ATTEMPTS,
|
|
48
|
+
pid,
|
|
49
|
+
now,
|
|
50
|
+
randomToken,
|
|
51
|
+
...(options.processIncarnation === undefined ? {} : { processIncarnation: options.processIncarnation }),
|
|
52
|
+
...(options.isSameProcessIncarnation === undefined
|
|
53
|
+
? {}
|
|
54
|
+
: { isSameProcessIncarnation: options.isSameProcessIncarnation }),
|
|
55
|
+
ownerFields: () => ({ configPath: resolvedConfig }),
|
|
56
|
+
validateOwnerFields: (record) => record.configPath === resolvedConfig,
|
|
57
|
+
invalidOwner: "ownerless",
|
|
58
|
+
livenessError: () => "assume-live",
|
|
59
|
+
...(options.hooks?.afterLeaseDirectoryCreated === undefined
|
|
60
|
+
? {}
|
|
61
|
+
: { afterDirectoryCreated: options.hooks.afterLeaseDirectoryCreated }),
|
|
62
|
+
...(options.hooks?.beforeStaleLeaseRename === undefined
|
|
63
|
+
? {}
|
|
64
|
+
: { beforeStaleRename: options.hooks.beforeStaleLeaseRename }),
|
|
65
|
+
staleRace: "return",
|
|
66
|
+
stalePath: ({ now: staleAt, pid: stalePid, token }) => join(leasesRoot, `.${leaseId}-${staleAt}-${stalePid}-${token}.stale`),
|
|
67
|
+
releasedPath: ({ pid: ownerPid, token }) => join(leasesRoot, `.${leaseId}-${ownerPid}-${token}.released`),
|
|
68
|
+
abandonedPath: ({ pid: ownerPid, token }) => join(leasesRoot, `.${leaseId}-${ownerPid}-${token}.abandoned`),
|
|
69
|
+
});
|
|
70
|
+
if (held === undefined)
|
|
71
|
+
return undefined;
|
|
72
|
+
return {
|
|
73
|
+
configPath: resolvedConfig,
|
|
74
|
+
path: held.path,
|
|
75
|
+
ownerPid: held.ownerPid,
|
|
76
|
+
release: () => held.release(),
|
|
77
|
+
};
|
|
127
78
|
}
|
|
128
79
|
async function canonicalLeaseConfigPath(configPath) {
|
|
129
80
|
const lexical = resolve(configPath);
|
|
@@ -155,34 +106,6 @@ function effectiveUserHome() {
|
|
|
155
106
|
}
|
|
156
107
|
return home;
|
|
157
108
|
}
|
|
158
|
-
function createLease(input) {
|
|
159
|
-
let released = false;
|
|
160
|
-
return {
|
|
161
|
-
configPath: input.configPath,
|
|
162
|
-
path: input.leasePath,
|
|
163
|
-
ownerPid: input.owner.pid,
|
|
164
|
-
async release() {
|
|
165
|
-
if (released)
|
|
166
|
-
return;
|
|
167
|
-
await assertSamePrivateDirectory(input.leasePath, input.identity, "Background worker lease");
|
|
168
|
-
const current = await readOwnerRecord(join(input.leasePath, "owner.json"), input.configPath);
|
|
169
|
-
if (current === undefined
|
|
170
|
-
|| current.pid !== input.owner.pid
|
|
171
|
-
|| current.token !== input.owner.token) {
|
|
172
|
-
throw new Error(`Background worker lease ${input.leasePath} is no longer owned by this worker.`);
|
|
173
|
-
}
|
|
174
|
-
const releasedPath = join(input.leasesRoot, `.${input.leaseId}-${input.owner.pid}-${safeToken(input.randomToken())}.released`);
|
|
175
|
-
await rename(input.leasePath, releasedPath);
|
|
176
|
-
const moved = await assertPrivateDirectory(releasedPath, "Released background worker lease");
|
|
177
|
-
if (!sameIdentity(moved, input.identity)) {
|
|
178
|
-
await rename(releasedPath, input.leasePath).catch(() => undefined);
|
|
179
|
-
throw new Error(`Background worker lease ${input.leasePath} changed during release.`);
|
|
180
|
-
}
|
|
181
|
-
released = true;
|
|
182
|
-
await rm(releasedPath, { recursive: true, force: true });
|
|
183
|
-
},
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
109
|
async function ensurePrivateLeaseRoot(home) {
|
|
187
110
|
const homeDetails = await lstat(home);
|
|
188
111
|
if (!homeDetails.isDirectory() || homeDetails.isSymbolicLink()) {
|
|
@@ -206,93 +129,13 @@ async function ensurePrivateLeaseRoot(home) {
|
|
|
206
129
|
assertOwned(before, path, "Background worker lease parent");
|
|
207
130
|
await chmod(path, 0o700);
|
|
208
131
|
const secured = await lstat(path);
|
|
209
|
-
if (
|
|
132
|
+
if (secured.dev !== before.dev || secured.ino !== before.ino) {
|
|
210
133
|
throw new Error(`Background worker lease parent ${path} changed while it was secured.`);
|
|
211
134
|
}
|
|
212
135
|
assertPrivateDirectoryDetails(secured, path, "Background worker lease parent");
|
|
213
136
|
}
|
|
214
137
|
return leasesRoot;
|
|
215
138
|
}
|
|
216
|
-
async function inspectExistingLease(leasePath, ownerPath, configPath) {
|
|
217
|
-
let details;
|
|
218
|
-
try {
|
|
219
|
-
details = await assertPrivateDirectory(leasePath, "Existing background worker lease");
|
|
220
|
-
}
|
|
221
|
-
catch (error) {
|
|
222
|
-
if (isErrno(error, "ENOENT"))
|
|
223
|
-
return undefined;
|
|
224
|
-
throw error;
|
|
225
|
-
}
|
|
226
|
-
const identity = identityOf(details);
|
|
227
|
-
const owner = await readOwnerRecord(ownerPath, configPath);
|
|
228
|
-
return owner === undefined
|
|
229
|
-
? { kind: "ownerless", mtimeMs: details.mtimeMs, identity }
|
|
230
|
-
: { kind: "owned", owner, identity };
|
|
231
|
-
}
|
|
232
|
-
async function writeOwnerRecord(path, owner) {
|
|
233
|
-
const flags = fsConstants.O_WRONLY
|
|
234
|
-
| fsConstants.O_CREAT
|
|
235
|
-
| fsConstants.O_EXCL
|
|
236
|
-
| (fsConstants.O_NOFOLLOW ?? 0);
|
|
237
|
-
const handle = await open(path, flags, 0o600);
|
|
238
|
-
try {
|
|
239
|
-
await handle.writeFile(`${JSON.stringify(owner)}\n`, "utf8");
|
|
240
|
-
await handle.sync();
|
|
241
|
-
assertPrivateOwnerFile(await handle.stat(), path);
|
|
242
|
-
}
|
|
243
|
-
finally {
|
|
244
|
-
await handle.close();
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
async function readOwnerRecord(path, configPath) {
|
|
248
|
-
const flags = fsConstants.O_RDONLY | (fsConstants.O_NOFOLLOW ?? 0);
|
|
249
|
-
let handle;
|
|
250
|
-
try {
|
|
251
|
-
handle = await open(path, flags);
|
|
252
|
-
}
|
|
253
|
-
catch (error) {
|
|
254
|
-
if (isErrno(error, "ENOENT"))
|
|
255
|
-
return undefined;
|
|
256
|
-
throw error;
|
|
257
|
-
}
|
|
258
|
-
try {
|
|
259
|
-
assertPrivateOwnerFile(await handle.stat(), path);
|
|
260
|
-
let parsed;
|
|
261
|
-
try {
|
|
262
|
-
parsed = JSON.parse(await handle.readFile("utf8"));
|
|
263
|
-
}
|
|
264
|
-
catch {
|
|
265
|
-
return undefined;
|
|
266
|
-
}
|
|
267
|
-
const incarnation = processIncarnationFromJson(parsed.incarnation);
|
|
268
|
-
return parsed.schema === LEASE_SCHEMA
|
|
269
|
-
&& parsed.configPath === configPath
|
|
270
|
-
&& typeof parsed.pid === "number"
|
|
271
|
-
&& Number.isSafeInteger(parsed.pid)
|
|
272
|
-
&& parsed.pid > 0
|
|
273
|
-
&& typeof parsed.token === "string"
|
|
274
|
-
&& parsed.token.length > 0
|
|
275
|
-
&& typeof parsed.createdAt === "string"
|
|
276
|
-
&& incarnation !== undefined
|
|
277
|
-
? {
|
|
278
|
-
schema: LEASE_SCHEMA,
|
|
279
|
-
configPath,
|
|
280
|
-
pid: parsed.pid,
|
|
281
|
-
token: parsed.token,
|
|
282
|
-
createdAt: parsed.createdAt,
|
|
283
|
-
incarnation,
|
|
284
|
-
}
|
|
285
|
-
: undefined;
|
|
286
|
-
}
|
|
287
|
-
finally {
|
|
288
|
-
await handle.close();
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
async function assertPrivateDirectory(path, label) {
|
|
292
|
-
const details = await lstat(path);
|
|
293
|
-
assertPrivateDirectoryDetails(details, path, label);
|
|
294
|
-
return details;
|
|
295
|
-
}
|
|
296
139
|
function assertPrivateDirectoryDetails(details, path, label) {
|
|
297
140
|
if (!details.isDirectory() || details.isSymbolicLink()) {
|
|
298
141
|
throw new Error(`${label} ${path} must be a real directory.`);
|
|
@@ -302,54 +145,11 @@ function assertPrivateDirectoryDetails(details, path, label) {
|
|
|
302
145
|
throw new Error(`${label} ${path} must be owner-only (mode 0700).`);
|
|
303
146
|
}
|
|
304
147
|
}
|
|
305
|
-
function assertPrivateOwnerFile(details, path) {
|
|
306
|
-
if (!details.isFile()
|
|
307
|
-
|| details.isSymbolicLink()
|
|
308
|
-
|| details.nlink !== 1
|
|
309
|
-
|| (details.mode & 0o077) !== 0) {
|
|
310
|
-
throw new Error(`Background worker lease owner ${path} must be an owner-only single-link regular file.`);
|
|
311
|
-
}
|
|
312
|
-
assertOwned(details, path, "Background worker lease owner");
|
|
313
|
-
}
|
|
314
148
|
function assertOwned(details, path, label) {
|
|
315
149
|
if (typeof process.getuid === "function" && details.uid !== process.getuid()) {
|
|
316
150
|
throw new Error(`${label} ${path} is not owned by the current user.`);
|
|
317
151
|
}
|
|
318
152
|
}
|
|
319
|
-
async function assertSamePrivateDirectory(path, identity, label) {
|
|
320
|
-
const details = await assertPrivateDirectory(path, label);
|
|
321
|
-
if (!sameIdentity(details, identity)) {
|
|
322
|
-
throw new Error(`${label} ${path} changed while the lease was active.`);
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
async function samePrivateDirectory(path, identity) {
|
|
326
|
-
try {
|
|
327
|
-
const details = await assertPrivateDirectory(path, "Background worker lease");
|
|
328
|
-
return sameIdentity(details, identity);
|
|
329
|
-
}
|
|
330
|
-
catch (error) {
|
|
331
|
-
if (isErrno(error, "ENOENT"))
|
|
332
|
-
return false;
|
|
333
|
-
throw error;
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
async function removeIfSameDirectory(path, identity) {
|
|
337
|
-
if (await samePrivateDirectory(path, identity)) {
|
|
338
|
-
await rm(path, { recursive: true, force: true });
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
function identityOf(details) {
|
|
342
|
-
return { dev: details.dev, ino: details.ino };
|
|
343
|
-
}
|
|
344
|
-
function sameIdentity(details, identity) {
|
|
345
|
-
return details.dev === identity.dev && details.ino === identity.ino;
|
|
346
|
-
}
|
|
347
|
-
function safeToken(value) {
|
|
348
|
-
if (!/^[0-9A-Za-z._-]+$/u.test(value) || value.length === 0) {
|
|
349
|
-
throw new Error("Background worker lease token contains unsupported characters.");
|
|
350
|
-
}
|
|
351
|
-
return value;
|
|
352
|
-
}
|
|
353
153
|
function isErrno(error, code) {
|
|
354
154
|
return typeof error === "object" && error !== null && error.code === code;
|
|
355
155
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"background-worker-lease.js","sourceRoot":"","sources":["../src/background-worker-lease.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"background-worker-lease.js","sourceRoot":"","sources":["../src/background-worker-lease.ts"],"names":[],"mappings":"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"}
|
package/dist/background.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { listRecordedRuns, listTraceSources } from "@mono-agent/observability";
|
|
2
2
|
import type { TraceSourceListItem } from "@mono-agent/observability";
|
|
3
3
|
import type { LaunchctlRunner, LaunchdPaths } from "./launchd.js";
|
|
4
|
+
import type { LaunchdLogInspection, LaunchdLogMaintenanceIntent } from "./launchd-logs.js";
|
|
4
5
|
import type { ManagedBackgroundRuntime, ManagedBackgroundRuntimeInput, ManagedRuntimeAdditionalPackage } from "./background-runtime.js";
|
|
5
6
|
import type { BackgroundSnapshot } from "./background-snapshot.js";
|
|
6
7
|
import type { ProcessIncarnation, SameProcessIncarnation } from "./process-incarnation.js";
|
|
7
8
|
export { acquireBackgroundWorkerLease, backgroundWorkerLeasePath, } from "./background-worker-lease.js";
|
|
8
9
|
export type { BackgroundWorkerLease, BackgroundWorkerLeaseOptions, } from "./background-worker-lease.js";
|
|
10
|
+
export { LAUNCHD_LOG_MAX_BYTES, LAUNCHD_LOG_ROTATION_COUNT, } from "./launchd-logs.js";
|
|
9
11
|
/**
|
|
10
12
|
* Background-service orchestration for the mono-agent CLI. The interactive
|
|
11
13
|
* control commands never talk to the worker directly: they derive a stable
|
|
@@ -38,6 +40,10 @@ export interface InstanceTarget {
|
|
|
38
40
|
/** Guided/configuration handoffs additionally require a usable TUI endpoint. */
|
|
39
41
|
readonly requireTui?: boolean;
|
|
40
42
|
}
|
|
43
|
+
export interface BackgroundLifecycleTarget {
|
|
44
|
+
readonly label: string;
|
|
45
|
+
readonly paths: LaunchdPaths;
|
|
46
|
+
}
|
|
41
47
|
export interface ResolveInstanceTargetInput {
|
|
42
48
|
readonly args: BackgroundCliArgs;
|
|
43
49
|
readonly env: Record<string, string | undefined>;
|
|
@@ -48,6 +54,8 @@ export interface ResolveInstanceTargetInput {
|
|
|
48
54
|
}
|
|
49
55
|
/** Exact non-secret environment materialised into a managed LaunchAgent. */
|
|
50
56
|
export declare function managedBackgroundEnvironment(env: Readonly<Record<string, string | undefined>>): Readonly<Record<string, string>>;
|
|
57
|
+
/** Exact non-secret environment for the scheduled one-shot log maintainer. */
|
|
58
|
+
export declare function managedLaunchdLogMaintenanceEnvironment(env: Readonly<Record<string, string | undefined>>): Readonly<Record<string, string>>;
|
|
51
59
|
/**
|
|
52
60
|
* Resolve everything the control commands need from CLI args. The registry dir
|
|
53
61
|
* and config path are resolved exactly as the worker will resolve them, so the
|
|
@@ -72,10 +80,16 @@ export interface BackgroundDeps {
|
|
|
72
80
|
readonly writeFile: (path: string, data: string) => Promise<void>;
|
|
73
81
|
readonly mkdir: (path: string) => Promise<void>;
|
|
74
82
|
readonly rm: (path: string) => Promise<void>;
|
|
75
|
-
readonly
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
readonly
|
|
83
|
+
readonly inspectLaunchdLogs: (paths: Pick<LaunchdPaths, "logDir" | "stdoutPath" | "stderrPath">) => Promise<LaunchdLogInspection>;
|
|
84
|
+
readonly rotateStoppedLaunchdLogs: (paths: Pick<LaunchdPaths, "logDir" | "stdoutPath" | "stderrPath">) => Promise<void>;
|
|
85
|
+
readonly readLaunchdLogMaintenanceIntent: (paths: Pick<LaunchdPaths, "logDir" | "stdoutPath" | "stderrPath">) => Promise<LaunchdLogMaintenanceIntent | undefined>;
|
|
86
|
+
readonly beginLaunchdLogMaintenanceIntent: (paths: Pick<LaunchdPaths, "logDir" | "stdoutPath" | "stderrPath">, intent: LaunchdLogMaintenanceIntent) => Promise<void>;
|
|
87
|
+
readonly markLaunchdLogMaintenanceStopped: (paths: Pick<LaunchdPaths, "logDir" | "stdoutPath" | "stderrPath">, expected: LaunchdLogMaintenanceIntent) => Promise<LaunchdLogMaintenanceIntent>;
|
|
88
|
+
readonly markLaunchdLogMaintenanceRestoring: (paths: Pick<LaunchdPaths, "logDir" | "stdoutPath" | "stderrPath">, expected: LaunchdLogMaintenanceIntent) => Promise<LaunchdLogMaintenanceIntent>;
|
|
89
|
+
readonly markLaunchdLogMaintenanceStopping: (paths: Pick<LaunchdPaths, "logDir" | "stdoutPath" | "stderrPath">, expected: LaunchdLogMaintenanceIntent) => Promise<LaunchdLogMaintenanceIntent>;
|
|
90
|
+
readonly clearLaunchdLogMaintenanceIntent: (paths: Pick<LaunchdPaths, "logDir" | "stdoutPath" | "stderrPath">, expected?: LaunchdLogMaintenanceIntent) => Promise<void>;
|
|
91
|
+
/** Read and fingerprint the exact owner-private plist without mutating it. */
|
|
92
|
+
readonly verifyLaunchdPlist: (path: string) => Promise<string>;
|
|
79
93
|
/** True when a pid is still alive (or alive but owned by another user). */
|
|
80
94
|
readonly isAlive: (pid: number) => boolean;
|
|
81
95
|
/** Install/verify an immutable CLI outside npm/npx's disposable cache. */
|
|
@@ -83,7 +97,7 @@ export interface BackgroundDeps {
|
|
|
83
97
|
/** Resolve config-selected plugin-tier packages before the disposable source can disappear. */
|
|
84
98
|
readonly resolveManagedRuntimePackages?: (target: InstanceTarget) => Promise<readonly ManagedRuntimeAdditionalPackage[]>;
|
|
85
99
|
/** Fail closed when another lifecycle command owns this config label. */
|
|
86
|
-
readonly acquireLifecycleLock: (target:
|
|
100
|
+
readonly acquireLifecycleLock: (target: BackgroundLifecycleTarget) => Promise<(() => Promise<void>) | undefined>;
|
|
87
101
|
/** Prove a metadata-advertised TUI endpoint is actually reachable. */
|
|
88
102
|
readonly probeTui: (source: TraceSourceListItem) => Promise<boolean>;
|
|
89
103
|
readonly captureSnapshot?: (target: InstanceTarget) => Promise<BackgroundSnapshot>;
|
|
@@ -102,8 +116,6 @@ export interface ReadyPollOptions extends PollOptions {
|
|
|
102
116
|
readonly sinceMs: number;
|
|
103
117
|
readonly requireTui?: boolean;
|
|
104
118
|
}
|
|
105
|
-
export declare const LAUNCHD_LOG_MAX_BYTES: number;
|
|
106
|
-
export declare const LAUNCHD_LOG_ROTATION_COUNT = 3;
|
|
107
119
|
export type BackgroundLaunchAction = "started" | "restarted";
|
|
108
120
|
export type BackgroundLaunchResult = {
|
|
109
121
|
readonly ok: true;
|
|
@@ -124,6 +136,13 @@ export declare function restartBackground(target: InstanceTarget, deps: Backgrou
|
|
|
124
136
|
* concurrent start could previously enter while the session store was purged.
|
|
125
137
|
*/
|
|
126
138
|
export declare function forceRestartBackground(target: InstanceTarget, deps: BackgroundDeps, whileStopped: () => Promise<void>, poll?: PollOptions): Promise<number>;
|
|
139
|
+
/**
|
|
140
|
+
* Private one-shot invoked only by the scheduled maintenance LaunchAgent. It
|
|
141
|
+
* never creates or rewrites a service definition. It does not resurrect an
|
|
142
|
+
* intentionally stopped service; the sole exception is recovery authorized by
|
|
143
|
+
* its own durable lifecycle intent after a prior maintainer died post-bootout.
|
|
144
|
+
*/
|
|
145
|
+
export declare function maintainLaunchdLogs(target: BackgroundLifecycleTarget, deps: BackgroundDeps, poll?: PollOptions): Promise<number>;
|
|
127
146
|
/**
|
|
128
147
|
* Ensure the canonical per-config LaunchAgent is running and return the fresh
|
|
129
148
|
* trace source that proved it reached `startup-complete`. This is the shared
|
|
@@ -143,7 +162,10 @@ export declare function printInstanceInfo(source: TraceSourceListItem, target: I
|
|
|
143
162
|
export interface FilesystemLifecycleLockOptions {
|
|
144
163
|
readonly pid?: number;
|
|
145
164
|
readonly now?: () => number;
|
|
146
|
-
/**
|
|
165
|
+
/**
|
|
166
|
+
* Permanent pre-v0.9.0 owner-record compatibility. v0.9.0 and later write
|
|
167
|
+
* process incarnation identity into every lifecycle-lock owner record.
|
|
168
|
+
*/
|
|
147
169
|
readonly isProcessAlive?: (pid: number) => boolean;
|
|
148
170
|
readonly processIncarnation?: ProcessIncarnation;
|
|
149
171
|
readonly isSameProcessIncarnation?: SameProcessIncarnation;
|
|
@@ -152,7 +174,7 @@ export interface FilesystemLifecycleLockOptions {
|
|
|
152
174
|
/** Deterministic seam immediately after the final identity check. */
|
|
153
175
|
readonly beforeStaleLockRename?: () => Promise<void>;
|
|
154
176
|
}
|
|
155
|
-
export declare function acquireFilesystemLifecycleLock(target:
|
|
177
|
+
export declare function acquireFilesystemLifecycleLock(target: BackgroundLifecycleTarget, options?: FilesystemLifecycleLockOptions): Promise<(() => Promise<void>) | undefined>;
|
|
156
178
|
export declare function describeChannel(value: unknown): {
|
|
157
179
|
kind: string;
|
|
158
180
|
text: string;
|
package/dist/background.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"background.d.ts","sourceRoot":"","sources":["../src/background.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"background.d.ts","sourceRoot":"","sources":["../src/background.ts"],"names":[],"mappings":"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"}
|