@bitkyc08/opencodex 2.84.0 → 2.86.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 +0 -4
- package/bin/ocx.mjs +61 -3
- package/gui/dist/assets/App-BjlttVLy.js +58 -0
- package/gui/dist/assets/{Tray-C9TGtwad.js → Tray-DyR9yBee.js} +1 -1
- package/gui/dist/assets/index-BMssP4k3.js +94 -0
- package/gui/dist/assets/quota-summary-D8M1bc_R.js +1 -0
- package/gui/dist/index.html +1 -1
- package/package.json +1 -2
- package/src/adapters/anthropic/beta-allowlist.ts +87 -8
- package/src/adapters/anthropic/client-identity.ts +1 -1
- package/src/adapters/anthropic/passthrough.ts +33 -4
- package/src/adapters/azure.ts +19 -1
- package/src/adapters/client-fingerprint.ts +24 -0
- package/src/adapters/coding-agent/turn.ts +22 -9
- package/src/adapters/cursor/arg-codec.ts +17 -5
- package/src/adapters/cursor/catalog.ts +8 -0
- package/src/adapters/cursor/effort-map.ts +3 -0
- package/src/adapters/cursor/freeform-args.ts +75 -0
- package/src/adapters/cursor/protobuf-events.ts +36 -23
- package/src/adapters/google-antigravity-wire.ts +22 -1
- package/src/adapters/google.ts +2 -2
- package/src/adapters/openai-chat/response-events.ts +59 -1
- package/src/adapters/openai-chat.ts +8 -5
- package/src/adapters/qoder/adapter.ts +40 -1
- package/src/advisor/consult.ts +220 -0
- package/src/advisor/context.ts +226 -0
- package/src/advisor/disclosure.ts +20 -0
- package/src/advisor/runtime.ts +305 -0
- package/src/advisor/settings.ts +135 -0
- package/src/advisor/state.ts +369 -0
- package/src/advisor/synthetic-tool.ts +33 -0
- package/src/bridge/errors.ts +5 -0
- package/src/chat/inbound.ts +30 -6
- package/src/chat/outbound.ts +5 -0
- package/src/claude/desktop-3p-library.ts +43 -3
- package/src/claude/desktop-3p.ts +22 -8
- package/src/claude/desktop-picker-profile.ts +11 -4
- package/src/claude/desktop-profile.ts +10 -1
- package/src/claude/desktop-remote-store-io.ts +5 -3
- package/src/claude/inbound.ts +121 -50
- package/src/claude/intercept/local-ca.ts +8 -1
- package/src/claude/model-default-settings.ts +154 -0
- package/src/claude/model-info.ts +7 -7
- package/src/claude/outbound.ts +13 -6
- package/src/cli/advisor.ts +151 -0
- package/src/cli/auxiliary-listener-preflight.ts +37 -0
- package/src/cli/capabilities-agents-routing.ts +18 -0
- package/src/cli/capabilities-base.ts +1 -1
- package/src/cli/chatgpt-command.ts +35 -14
- package/src/cli/claude.ts +46 -6
- package/src/cli/dispatch.ts +5 -1
- package/src/cli/doctor.ts +9 -0
- package/src/cli/ensure-desktop-cold-start.ts +329 -0
- package/src/cli/export-command.ts +1 -1
- package/src/cli/help.ts +2 -1
- package/src/cli/index.ts +13 -4
- package/src/cli/integration-plan-dto.ts +2 -0
- package/src/cli/registry.ts +15 -3
- package/src/cli/restart-scope.ts +3 -1
- package/src/clients/config-export/contracts.ts +1 -0
- package/src/clients/config-export/model-metadata.ts +3 -2
- package/src/clients/config-export/qoder.ts +93 -0
- package/src/clients/config-export.ts +17 -4
- package/src/codex/auth-api/pool-mode-gate.ts +5 -2
- package/src/codex/auth-context.ts +79 -5
- package/src/codex/autostart-health.ts +4 -0
- package/src/codex/catalog/build-entries.ts +11 -2
- package/src/codex/catalog/configured-tiers.ts +50 -0
- package/src/codex/catalog/effort.ts +4 -1
- package/src/codex/catalog/model-hints.ts +21 -3
- package/src/codex/catalog/native-ultrafast.ts +106 -0
- package/src/codex/catalog/parsing.ts +5 -0
- package/src/codex/catalog/provider-models.ts +4 -0
- package/src/codex/catalog/retained-sync.ts +2 -0
- package/src/codex/catalog/routed-gather.ts +22 -4
- package/src/codex/catalog/vendor-context.ts +82 -0
- package/src/codex/config-write-lock.ts +40 -2
- package/src/codex/convergence.ts +2 -0
- package/src/codex/desktop-app/types.ts +2 -0
- package/src/codex/desktop-app/windows.ts +29 -16
- package/src/codex/desktop-app-restart.ts +4 -2
- package/src/codex/desktop-compatibility/certificate-service.ts +99 -0
- package/src/codex/desktop-compatibility/certificate-store.ts +193 -0
- package/src/codex/desktop-compatibility/connection-store.ts +87 -0
- package/src/codex/desktop-compatibility/installed-build.ts +55 -0
- package/src/codex/desktop-compatibility/json-body.ts +29 -0
- package/src/codex/desktop-compatibility/native-identity.ts +62 -0
- package/src/codex/desktop-compatibility/relay-listener.ts +93 -0
- package/src/codex/desktop-compatibility/routing-binding.ts +10 -0
- package/src/codex/desktop-compatibility/routing-preflight.ts +69 -0
- package/src/codex/desktop-compatibility/runtime-ownership.ts +28 -0
- package/src/codex/desktop-compatibility/runtime.ts +173 -0
- package/src/codex/desktop-compatibility/service.ts +30 -0
- package/src/codex/desktop-compatibility/startup-settings.ts +50 -0
- package/src/codex/desktop-compatibility/usage-activation.ts +86 -0
- package/src/codex/desktop-compatibility/usage-controlled-fetch.ts +59 -0
- package/src/codex/desktop-compatibility/usage-controller.ts +107 -0
- package/src/codex/desktop-compatibility/usage-policy.ts +59 -0
- package/src/codex/desktop-compatibility/usage-refresh.ts +33 -0
- package/src/codex/desktop-compatibility/usage-sse-controller.ts +86 -0
- package/src/codex/desktop-compatibility/windows-activation-source.ts +44 -0
- package/src/codex/desktop-compatibility/windows-certificate-trust.ts +81 -0
- package/src/codex/desktop-compatibility/windows-key-protection.ts +59 -0
- package/src/codex/desktop-compatibility/windows-package-command.ts +86 -0
- package/src/codex/desktop-compatibility/windows-package-launch.ts +28 -0
- package/src/codex/history-provider.ts +1 -1
- package/src/codex/inject/config-write-section.ts +4 -1
- package/src/codex/inject/remove.ts +18 -6
- package/src/codex/journal.ts +16 -1
- package/src/codex/main-account.ts +99 -15
- package/src/codex/native-main-refresh-mode.ts +217 -0
- package/src/codex/routing/health-store.ts +1 -1
- package/src/codex/routing/pool-recovery.ts +79 -0
- package/src/codex/shim-diagnostics.ts +6 -0
- package/src/codex/shim-overlay.ts +7 -2
- package/src/config/diagnostics.ts +2 -1
- package/src/config/live-reconcile.ts +13 -0
- package/src/config/load-degrade.ts +6 -1
- package/src/config/paths.ts +10 -3
- package/src/config/schema/config-schema.ts +17 -0
- package/src/config/schema/desktop-compatibility.ts +9 -0
- package/src/config/schema/leaf-validators.ts +1 -0
- package/src/generated/compatibility-version.json +451 -163
- package/src/generated/model-metadata.ts +1 -1
- package/src/integrations/catalog-refresh.ts +1 -1
- package/src/integrations/config-io.ts +20 -2
- package/src/integrations/journal.ts +15 -1
- package/src/integrations/mutation-plan.ts +1 -0
- package/src/integrations/registry.ts +7 -0
- package/src/integrations/store.ts +3 -0
- package/src/integrations/writer.ts +10 -1
- package/src/lib/advisor-activation.ts +16 -0
- package/src/lib/background-work.ts +65 -0
- package/src/lib/bounded-file-read.ts +58 -0
- package/src/lib/bun-path-runtime.d.mts +10 -1
- package/src/lib/bun-path-runtime.mjs +62 -3
- package/src/lib/desktop-proxy-route.ts +30 -0
- package/src/lib/desktop-upstream-tunnel.ts +107 -0
- package/src/lib/errors.ts +7 -0
- package/src/lib/local-internal-call-capability.ts +55 -0
- package/src/lib/package-tree-integrity.ts +2 -2
- package/src/lib/socks5-fetch.ts +48 -71
- package/src/lib/socks5-handshake.ts +112 -0
- package/src/lib/translator-budget.ts +7 -1
- package/src/oauth/generic-account-failover.ts +29 -5
- package/src/oauth/index.ts +4 -2
- package/src/oauth/kiro-device-login.ts +2 -1
- package/src/oauth/kiro.ts +7 -1
- package/src/protocols/codecs/chat-ir.ts +467 -0
- package/src/protocols/codecs/chat.ts +10 -1
- package/src/protocols/codecs/messages-ir.ts +500 -0
- package/src/protocols/features.ts +10 -2
- package/src/protocols/path.ts +11 -1
- package/src/protocols/plan-snapshot.ts +39 -16
- package/src/protocols/plan.ts +9 -1
- package/src/protocols/settings.ts +8 -0
- package/src/providers/antigravity-account-roster.ts +102 -0
- package/src/providers/antigravity-models.ts +85 -7
- package/src/providers/model-rename-fields.ts +2 -0
- package/src/providers/model-rename-migration.ts +5 -3
- package/src/providers/registry/entries-core.ts +7 -6
- package/src/providers/registry/entries-extended.ts +19 -0
- package/src/responses/parser.ts +30 -19
- package/src/responses/state.ts +32 -29
- package/src/routing/history/build-file.ts +92 -0
- package/src/routing/history/indexer.ts +248 -216
- package/src/routing/history/ingest.ts +238 -0
- package/src/routing/history/rebuild-job.ts +111 -0
- package/src/routing/history/rebuild-protocol.ts +15 -0
- package/src/routing/history/rebuild-worker.ts +34 -0
- package/src/server/admission-model-scope.ts +4 -1
- package/src/server/antigravity-direct-eligibility.ts +208 -0
- package/src/server/auth-cors.ts +4 -0
- package/src/server/chat-completions.ts +75 -9
- package/src/server/claude-messages.ts +110 -20
- package/src/server/index/desktop-compatibility-startup.ts +56 -0
- package/src/server/index/serve-options.ts +2 -2
- package/src/server/index/startup-warnings.ts +9 -0
- package/src/server/index/websocket-handler.ts +9 -0
- package/src/server/index.ts +13 -10
- package/src/server/inference/client-encoder-delivery.ts +6 -5
- package/src/server/login-shell-path.ts +146 -0
- package/src/server/management/advisor-routes.ts +191 -0
- package/src/server/management/agent-settings-routes.ts +22 -4
- package/src/server/management/companion-routes.ts +4 -0
- package/src/server/management/config-routes.ts +2 -2
- package/src/server/management/context.ts +4 -0
- package/src/server/management/desktop-compatibility-routes.ts +46 -0
- package/src/server/management/desktop-compatibility-runtime-routes.ts +46 -0
- package/src/server/management/desktop-compatibility-settings-routes.ts +27 -0
- package/src/server/management/model-routes.ts +2 -2
- package/src/server/management/protocol-settings-patch.ts +1 -0
- package/src/server/management/route-registry.ts +11 -0
- package/src/server/management/sibling-guard.ts +1 -0
- package/src/server/management-api.ts +6 -0
- package/src/server/messages-antigravity-direct.ts +195 -0
- package/src/server/messages-native.ts +5 -1
- package/src/server/request-log.ts +7 -0
- package/src/server/responses/adapter-continuation.ts +35 -18
- package/src/server/responses/adapter-delivery.ts +24 -2
- package/src/server/responses/adapter-dispatch.ts +29 -2
- package/src/server/responses/advisor-plan-slot.ts +27 -0
- package/src/server/responses/advisor-slot.ts +336 -0
- package/src/server/responses/code-mode-collab-surface.ts +116 -8
- package/src/server/responses/core-combo-failure.ts +10 -1
- package/src/server/responses/core-combo.ts +21 -0
- package/src/server/responses/core-lifetime.ts +2 -0
- package/src/server/responses/core-normalize.ts +11 -0
- package/src/server/responses/core-options.ts +46 -0
- package/src/server/responses/core-replay.ts +7 -4
- package/src/server/responses/core.ts +1 -1
- package/src/server/responses/passthrough-delivery.ts +16 -10
- package/src/server/responses/passthrough-dispatch.ts +14 -3
- package/src/server/responses/request-prepare.ts +68 -5
- package/src/server/responses/request-transport.ts +16 -0
- package/src/server/responses/run-turn-execution.ts +70 -8
- package/src/server/responses/sidecar-execution.ts +78 -3
- package/src/server/responses/terminal-guard.ts +2 -1
- package/src/server/responses-undeclared-tool-guard.ts +30 -9
- package/src/server/startup-action-control.ts +16 -2
- package/src/server/startup-health-cache.ts +1 -0
- package/src/service/desktop-startup.ts +14 -0
- package/src/service/health-sentinel-main.ts +23 -4
- package/src/service/health-sentinel-probe.ts +24 -7
- package/src/service/logging.ts +72 -0
- package/src/tray/windows-tray.ps1 +43 -24
- package/src/types/config.ts +63 -6
- package/src/types/provider.ts +7 -0
- package/src/types/request.ts +15 -0
- package/src/types/tools.ts +2 -0
- package/src/update/async-check.ts +1 -1
- package/src/update/badge.ts +2 -2
- package/src/update/index.ts +88 -15
- package/src/update/job-supervised-restart.ts +107 -0
- package/src/update/job.ts +32 -32
- package/src/update/notify.ts +1 -1
- package/src/update/refresh-scheduler.ts +2 -2
- package/src/update/supervised-recovery.d.mts +27 -0
- package/src/update/supervised-recovery.mjs +157 -0
- package/src/usage/cache-diagnostic.ts +2 -0
- package/src/usage/expected-prices.ts +12 -0
- package/src/web-search/gemini-executor.ts +2 -2
- package/assets/sponsors/packycode.png +0 -0
- package/gui/dist/assets/App-CZtqiGcw.js +0 -56
- package/gui/dist/assets/index-CTm4l-HQ.js +0 -94
- package/gui/dist/assets/quota-summary-BbEeRfPY.js +0 -1
package/README.md
CHANGED
|
@@ -154,10 +154,6 @@ See [SPONSORS.md](./SPONSORS.md).
|
|
|
154
154
|
<td>Thanks to <a href="https://www.orcarouter.ai/?utm_source=opencodex&utm_medium=readme">OrcaRouter</a> for sponsoring this project! OrcaRouter is one OpenAI-compatible AI gateway for production AI: adaptive routing that grades every prompt and sends it to the model that clears your bar, automatic failover, routing rules as code, zero-markup provider pricing with prompt caching, and guardrails, an agent firewall, and request logs on every call across 200+ models. Pick <code>OrcaRouter</code> in the Add provider picker or run <code>ocx provider add orcarouter</code>; <code>orcarouter/auto</code> is the adaptive router.</td>
|
|
155
155
|
</tr>
|
|
156
156
|
<tr>
|
|
157
|
-
<td width="180"><a href="https://www.packyapi.com/register?aff=k5KT"><img src="assets/sponsors/packycode.png" alt="PackyCode" width="150"></a></td>
|
|
158
|
-
<td>Thanks to <a href="https://www.packyapi.com/register?aff=k5KT">PackyCode</a> for sponsoring this project! PackyCode is a stable, high-performance API relay provider, offering relay services for Claude Code, Codex, Gemini, and more. With automatic failover, smart routing, and unlimited concurrency, it turns AI into a real productivity tool. <a href="https://www.packyapi.com/register?aff=k5KT">Register via this link</a> and get started! Pick <code>PackyCode</code> in the Add provider picker or run <code>ocx provider add packycode</code>.<br><sub>PackyCode 是一家稳定、高效的 API 中转服务商,提供 Claude Code、Codex、Gemini 等多种中转服务。具备自动故障转移、智能路由和无限并发等多种功能,让 AI 编程成为真正的生产力工具。<a href="https://www.packyapi.com/register?aff=k5KT">点此链接注册</a>,立即开始使用!</sub></td>
|
|
159
|
-
</tr>
|
|
160
|
-
<tr>
|
|
161
157
|
<td width="180"><a href="https://tokenlab.sh/r/OPENCODEX"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/sponsors/tokenlab-dark.png"><img src="assets/sponsors/tokenlab-light.png" alt="TokenLab" width="150"></picture></a></td>
|
|
162
158
|
<td>Thanks to <a href="https://tokenlab.sh/r/OPENCODEX">TokenLab</a> for sponsoring this project! TokenLab gives coding agents one API key for leading models, supporting OpenAI Responses and Chat Completions, Anthropic Messages, and Gemini's native API formats, with streaming and tool calling. It also provides an MCP server and agent Skills for easy integration. Choose your delivery mode and pay as you go. Pick <code>TokenLab</code> in the Add provider picker or run <code>ocx provider add tokenlab</code>.<br><sub>TokenLab 为编程智能体提供统一的多模型 API,一枚 API Key 即可接入主流模型,支持 OpenAI Responses、Chat Completions、Anthropic Messages 和 Gemini 原生 API 格式,以及流式输出和工具调用。同时提供 MCP 服务器和 Agent Skills,方便接入现有工作流;交付模式可选,按量付费。</sub></td>
|
|
163
159
|
</tr>
|
package/bin/ocx.mjs
CHANGED
|
@@ -61,6 +61,10 @@ import {
|
|
|
61
61
|
CODEX_CLI_VERSION_MANAGER_ROOT_ENV_SLOTS,
|
|
62
62
|
isCodexCliUpdateInspectionArgv,
|
|
63
63
|
} from "../src/update/codex-cli-update-launch-policy.mjs";
|
|
64
|
+
import {
|
|
65
|
+
freshServingPid, hasRestartableServiceManager, readParentPid, readServiceManagerPid, restartServiceManagerJob,
|
|
66
|
+
supervisionVerdict, unsettledManagerWarning, unsupervisedRuntimeWarning,
|
|
67
|
+
} from "../src/update/supervised-recovery.mjs";
|
|
64
68
|
|
|
65
69
|
const PKG = "@bitkyc08/opencodex";
|
|
66
70
|
const UPDATE_RECOVERY_READY_MS = 30_000;
|
|
@@ -470,6 +474,7 @@ function runPackageManagerSelfUpdate(manager) {
|
|
|
470
474
|
? ownershipMutationLeaseChildEnvironment(process.env, delegatedOwnershipMutationToken)
|
|
471
475
|
: unprivilegedOwnershipMutationEnvironment(process.env);
|
|
472
476
|
|
|
477
|
+
/** Returns true, false, or "vetoed" when another owner holds the runtime (not a failure). */
|
|
473
478
|
function startProxyDirectly() {
|
|
474
479
|
const supervision = observeSupervision();
|
|
475
480
|
const plan = planUpdateRuntimeHandling({ ...readOwnership(), serviceInstalled: false, supervision });
|
|
@@ -477,7 +482,7 @@ function runPackageManagerSelfUpdate(manager) {
|
|
|
477
482
|
console.warn(supervision
|
|
478
483
|
? "OpenCodex Desktop supervises the proxy; no CLI runtime was restored."
|
|
479
484
|
: plan.notice);
|
|
480
|
-
return
|
|
485
|
+
return "vetoed";
|
|
481
486
|
}
|
|
482
487
|
if (!postUpdateLauncherUsable || !existsSync(postUpdateLauncher)) {
|
|
483
488
|
console.error("opencodex: cannot restart the proxy because the launcher is missing; reinstall opencodex manually.");
|
|
@@ -510,6 +515,50 @@ function runPackageManagerSelfUpdate(manager) {
|
|
|
510
515
|
return false;
|
|
511
516
|
}
|
|
512
517
|
|
|
518
|
+
// #7043: before any detached start, ask launchd/systemd to restart the job it already holds,
|
|
519
|
+
// and count it only when the serving proxy is that job (or its launcher's child). Returns
|
|
520
|
+
// "supervised", "failed", or "unsettled" when the manager may still finish the restart.
|
|
521
|
+
function restartThroughServiceManager() {
|
|
522
|
+
if (!hasRestartableServiceManager()) return "failed";
|
|
523
|
+
console.log("opencodex: asking the service manager to restart the background service.");
|
|
524
|
+
const before = readCurrentRuntimeTarget();
|
|
525
|
+
const staleRecordPid = before.kind === "target" ? before.target.pid : null;
|
|
526
|
+
const restarted = restartServiceManagerJob();
|
|
527
|
+
const unsettled = !restarted.ok && restarted.unsettled === true;
|
|
528
|
+
let verdict;
|
|
529
|
+
if (!restarted.ok && !unsettled) {
|
|
530
|
+
verdict = { kind: "failed", reason: restarted.reason };
|
|
531
|
+
} else {
|
|
532
|
+
let servingPid = null;
|
|
533
|
+
const deadline = Date.now() + UPDATE_RECOVERY_READY_MS;
|
|
534
|
+
while (servingPid === null && Date.now() < deadline) {
|
|
535
|
+
const current = readCurrentRuntimeTarget();
|
|
536
|
+
if (current.kind === "target" && current.target.port === bakePort
|
|
537
|
+
&& freshServingPid(current.target.pid, staleRecordPid) !== null
|
|
538
|
+
&& probeProxyLiveness(current.target.port, current.target.hostname ?? bakeHostname) === "live") {
|
|
539
|
+
servingPid = current.target.pid;
|
|
540
|
+
} else {
|
|
541
|
+
Atomics.wait(UPDATE_RECOVERY_SLEEP, 0, 0, UPDATE_RECOVERY_POLL_MS);
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
verdict = supervisionVerdict({ servingPid, managerPid: readServiceManagerPid(), parentPid: pid => readParentPid(pid) });
|
|
545
|
+
}
|
|
546
|
+
if (verdict.kind === "supervised") {
|
|
547
|
+
console.log(`opencodex: the proxy is healthy on port ${bakePort} under the service manager (pid ${verdict.managerPid}).`);
|
|
548
|
+
return "supervised";
|
|
549
|
+
}
|
|
550
|
+
if (unsettled) {
|
|
551
|
+
console.warn(unsettledManagerWarning(bakePort));
|
|
552
|
+
return "unsettled";
|
|
553
|
+
}
|
|
554
|
+
console.warn(`opencodex: the service manager did not recover a supervised proxy: ${verdict.reason}.`);
|
|
555
|
+
return "failed";
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
/**
|
|
559
|
+
* Returns "unsupervised" when only a detached fallback was attempted, or "unsettled" when the
|
|
560
|
+
* manager may still finish its restart; callers exit non-zero for both.
|
|
561
|
+
*/
|
|
513
562
|
function refreshBackgroundServiceOrStartDirect() {
|
|
514
563
|
const mayRefresh = () => {
|
|
515
564
|
const supervision = observeSupervision();
|
|
@@ -576,6 +625,10 @@ function runPackageManagerSelfUpdate(manager) {
|
|
|
576
625
|
: nowOwned.notice ?? "opencodex: the background runtime is owned elsewhere; not starting a second proxy.");
|
|
577
626
|
return;
|
|
578
627
|
}
|
|
628
|
+
// #7043: the manager first. Only a proxy it owns counts as recovered.
|
|
629
|
+
const managed = restartThroughServiceManager();
|
|
630
|
+
if (managed === "supervised") return;
|
|
631
|
+
if (managed === "unsettled") return "unsettled";
|
|
579
632
|
// Repair normally avoids elevation for a healthy registration, but a stale Windows
|
|
580
633
|
// scheduler definition can require it. It can also fail — or exit 0 while leaving
|
|
581
634
|
// a non-viable manager. Fall back to a direct detached proxy start so the
|
|
@@ -586,7 +639,11 @@ function runPackageManagerSelfUpdate(manager) {
|
|
|
586
639
|
: "opencodex: service refresh failed — starting the proxy directly instead.",
|
|
587
640
|
);
|
|
588
641
|
console.warn(" Run 'ocx service repair' to see why the background service could not restart.");
|
|
589
|
-
startProxyDirectly();
|
|
642
|
+
const started = startProxyDirectly();
|
|
643
|
+
// An ownership veto is the correct outcome, not a degraded one.
|
|
644
|
+
if (started === "vetoed") return;
|
|
645
|
+
if (started) console.warn(unsupervisedRuntimeWarning(bakePort));
|
|
646
|
+
return "unsupervised";
|
|
590
647
|
}
|
|
591
648
|
} finally {
|
|
592
649
|
if (prevBake === undefined) delete process.env.OCX_BAKE_PORT;
|
|
@@ -895,7 +952,8 @@ function runPackageManagerSelfUpdate(manager) {
|
|
|
895
952
|
// launcher so the new files write the baked paths and the service restarts.
|
|
896
953
|
if (postInstallPlan.mayRestoreService) {
|
|
897
954
|
console.log("Refreshing the background service with the updated files...");
|
|
898
|
-
refreshBackgroundServiceOrStartDirect();
|
|
955
|
+
const refreshed = refreshBackgroundServiceOrStartDirect();
|
|
956
|
+
if (refreshed === "unsupervised" || refreshed === "unsettled") process.exit(1);
|
|
899
957
|
} else if (postInstallPlan.mayStopRuntime) {
|
|
900
958
|
console.log(`Restart the proxy: ${launcherStartHint(postUpdateLauncher, bakePort)}`);
|
|
901
959
|
}
|