openmeld 0.3.216 → 0.3.218
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 +21 -0
- package/dist/{add-me-membership-CxgkT6ht.js → add-me-membership-CY6oMdtz.js} +2 -2
- package/dist/{add-me-membership-CxgkT6ht.js.map → add-me-membership-CY6oMdtz.js.map} +1 -1
- package/dist/{agents-B_qjzGkQ.js → agents-CzSR8rmW.js} +10 -10
- package/dist/{agents-B_qjzGkQ.js.map → agents-CzSR8rmW.js.map} +1 -1
- package/dist/{api-client-foundation-XILCNkrF.js → api-client-foundation-BOBrz3Lx.js} +3 -3
- package/dist/{api-client-foundation-XILCNkrF.js.map → api-client-foundation-BOBrz3Lx.js.map} +1 -1
- package/dist/{api-client-foundation-DdtV7aF-.js → api-client-foundation-D1M0bkwm.js} +1 -1
- package/dist/{auth-session-B9Whm1hq.js → auth-session-BAq7KkIa.js} +22 -6
- package/dist/auth-session-BAq7KkIa.js.map +1 -0
- package/dist/auth-session-D-HTJNKZ.js +4 -0
- package/dist/{base-url-CiSsUvmr.js → base-url-CMBApK1J.js} +1 -1
- package/dist/{base-url-jdL78gyl.js → base-url-D7uE_xTo.js} +2 -2
- package/dist/{base-url-jdL78gyl.js.map → base-url-D7uE_xTo.js.map} +1 -1
- package/dist/{channel-CKmbucdt.js → channel-DAZr7cKE.js} +4 -4
- package/dist/{channel-CKmbucdt.js.map → channel-DAZr7cKE.js.map} +1 -1
- package/dist/{cli-space-api-DlDztj9O.js → cli-space-api-Ccr8COpr.js} +6 -6
- package/dist/{cli-space-api-DlDztj9O.js.map → cli-space-api-Ccr8COpr.js.map} +1 -1
- package/dist/{command-Cbp4ZeZs.js → command-tsXWNPpM.js} +28 -23
- package/dist/command-tsXWNPpM.js.map +1 -0
- package/dist/{computer-connection-CVE1MAqF.js → computer-connection-BK9TsQjc.js} +2 -2
- package/dist/{computer-connection-CVE1MAqF.js.map → computer-connection-BK9TsQjc.js.map} +1 -1
- package/dist/{computer-connection-review-CfFmjZLP.js → computer-connection-review-jPtrO484.js} +5 -5
- package/dist/{computer-connection-review-CfFmjZLP.js.map → computer-connection-review-jPtrO484.js.map} +1 -1
- package/dist/{computer-disconnect-B5nMRe9T.js → computer-disconnect-DzvN_Cbv.js} +7 -7
- package/dist/{computer-disconnect-B5nMRe9T.js.map → computer-disconnect-DzvN_Cbv.js.map} +1 -1
- package/dist/{computer-setup-continuation-Bd3BIgdU.js → computer-setup-continuation-bJzZPnNU.js} +3 -3
- package/dist/{computer-setup-continuation-Bd3BIgdU.js.map → computer-setup-continuation-bJzZPnNU.js.map} +1 -1
- package/dist/{context-Cz5nJnDe.js → context-DN_LvdgC.js} +5 -5
- package/dist/{context-Cz5nJnDe.js.map → context-DN_LvdgC.js.map} +1 -1
- package/dist/{control-plane-DKPz7DMv.js → control-plane-BDS63N7Y.js} +2 -2
- package/dist/{control-plane-DKPz7DMv.js.map → control-plane-BDS63N7Y.js.map} +1 -1
- package/dist/{controller-contract-pe3_Re-c.js → controller-contract-DAOCaefz.js} +9 -1
- package/dist/controller-contract-DAOCaefz.js.map +1 -0
- package/dist/{daemon-device-id-KgO7zcEr.js → daemon-device-id-bP58j3NL.js} +8 -8
- package/dist/{daemon-device-id-KgO7zcEr.js.map → daemon-device-id-bP58j3NL.js.map} +1 -1
- package/dist/{daemon-frame-transport-DUDAgNbO.js → daemon-frame-transport-DFfxVRi2.js} +36 -9
- package/dist/daemon-frame-transport-DFfxVRi2.js.map +1 -0
- package/dist/{daemon-lifecycle-journal-Bj-fw052.js → daemon-lifecycle-journal-57QR_a3_.js} +9 -9
- package/dist/{daemon-lifecycle-journal-Bj-fw052.js.map → daemon-lifecycle-journal-57QR_a3_.js.map} +1 -1
- package/dist/{daemon-service-manager-Cq3ANgn8.js → daemon-service-manager-ReGjcyjq.js} +1 -1
- package/dist/{daemon-service-manager-CZY8Bin4.js → daemon-service-manager-rNRRVrj1.js} +3 -3
- package/dist/{daemon-service-manager-CZY8Bin4.js.map → daemon-service-manager-rNRRVrj1.js.map} +1 -1
- package/dist/{daemon-service-runtime-yD-w1dQw.js → daemon-service-runtime-686fUcq9.js} +6 -6
- package/dist/{daemon-service-runtime-yD-w1dQw.js.map → daemon-service-runtime-686fUcq9.js.map} +1 -1
- package/dist/{daemon-service-update-coordinator-BATuKmZA.js → daemon-service-update-coordinator-DaoVYK6k.js} +21 -17
- package/dist/daemon-service-update-coordinator-DaoVYK6k.js.map +1 -0
- package/dist/{dist-o3UL1EGQ.js → dist-BLuEEVHh.js} +2 -2
- package/dist/dist-BLuEEVHh.js.map +1 -0
- package/dist/{dist-DZYJ8yLA.js → dist-C1fbc-VK.js} +1 -1
- package/dist/{dist-Ddy96dwl.js → dist-CBWePGgY.js} +3 -3
- package/dist/{dist-Ddy96dwl.js.map → dist-CBWePGgY.js.map} +1 -1
- package/dist/{dist-CkGG099H.js → dist-CiLvbjZA.js} +7863 -7778
- package/dist/dist-CiLvbjZA.js.map +1 -0
- package/dist/{elapsed-time-DGQ63StD.js → elapsed-time-DslUBczL.js} +6 -6
- package/dist/{elapsed-time-DGQ63StD.js.map → elapsed-time-DslUBczL.js.map} +1 -1
- package/dist/{entry-Dhify7h7.js → entry-B3x5OX3x.js} +8 -8
- package/dist/{entry-Dhify7h7.js.map → entry-B3x5OX3x.js.map} +1 -1
- package/dist/{installation-inventory-BJe8fC9k.js → installation-inventory-BZJmaCVr.js} +4 -4
- package/dist/{installation-inventory-BJe8fC9k.js.map → installation-inventory-BZJmaCVr.js.map} +1 -1
- package/dist/{installer-CWgaNzfE.js → installer-BRcaSYgu.js} +2 -2
- package/dist/{installer-CWgaNzfE.js.map → installer-BRcaSYgu.js.map} +1 -1
- package/dist/native/openmeld-keychain.node +0 -0
- package/dist/{open-code-permission-Doem1R2N.js → open-code-permission-DHFJYc_o.js} +5 -1
- package/dist/open-code-permission-DHFJYc_o.js.map +1 -0
- package/dist/{openmeld-koCpjXo7.js → openmeld-Bbffsx9Y.js} +251 -52
- package/dist/openmeld-Bbffsx9Y.js.map +1 -0
- package/dist/openmeld-dev.js +1 -1
- package/dist/{openmeld-environment-target-Dn2rJCa7.js → openmeld-environment-target-B6HqY0_a.js} +2 -2
- package/dist/{openmeld-environment-target-Dn2rJCa7.js.map → openmeld-environment-target-B6HqY0_a.js.map} +1 -1
- package/dist/{openmeld-maintenance-worker-DdsIYpG-.js → openmeld-maintenance-worker-CDd4d01O.js} +11 -11
- package/dist/{openmeld-maintenance-worker-DdsIYpG-.js.map → openmeld-maintenance-worker-CDd4d01O.js.map} +1 -1
- package/dist/{openmeld-tools-update-join-Clgm1ix5.js → openmeld-tools-update-join-htb9JVUN.js} +4 -4
- package/dist/{openmeld-tools-update-join-Clgm1ix5.js.map → openmeld-tools-update-join-htb9JVUN.js.map} +1 -1
- package/dist/{openmeld-tools-update-process-frame-0X-t0Kjv.js → openmeld-tools-update-process-frame-B-XB4dmO.js} +2 -2
- package/dist/{openmeld-tools-update-process-frame-0X-t0Kjv.js.map → openmeld-tools-update-process-frame-B-XB4dmO.js.map} +1 -1
- package/dist/{openmeld-tools-update-process-frame-DX1Dc8VI.js → openmeld-tools-update-process-frame-j-RXwFsK.js} +1 -1
- package/dist/openmeld.js +5 -5
- package/dist/{prepare-provider-runtime-CeGzeQbD.js → prepare-provider-runtime-3eIWxGgM.js} +1156 -127
- package/dist/prepare-provider-runtime-3eIWxGgM.js.map +1 -0
- package/dist/{prepare-session-executor-CsxnDFgS.js → prepare-session-executor-DO2p7uLE.js} +22 -22
- package/dist/{prepare-session-executor-CsxnDFgS.js.map → prepare-session-executor-DO2p7uLE.js.map} +1 -1
- package/dist/{process-channel-BTxB9zK-.js → process-channel-48ZNmEF6.js} +2 -2
- package/dist/{process-channel-BTxB9zK-.js.map → process-channel-48ZNmEF6.js.map} +1 -1
- package/dist/{runtime-CesmzZ2L.js → runtime-C49hR7fG.js} +145 -24
- package/dist/runtime-C49hR7fG.js.map +1 -0
- package/dist/{runtime-agent-controller-reporting-submission-B6cDV_zW.js → runtime-agent-controller-reporting-submission-BJuVnZqs.js} +59 -9
- package/dist/runtime-agent-controller-reporting-submission-BJuVnZqs.js.map +1 -0
- package/dist/{runtime-reporting-health-state-Cjavvccq.js → runtime-reporting-health-state-4Y-fo13l.js} +9 -36
- package/dist/runtime-reporting-health-state-4Y-fo13l.js.map +1 -0
- package/dist/{runtime-transport-CVtBXzIp.js → runtime-transport-KEwcSZ89.js} +125 -11
- package/dist/runtime-transport-KEwcSZ89.js.map +1 -0
- package/dist/{service-Cgat7nEE.js → service-BlcIfxYE.js} +49 -28
- package/dist/service-BlcIfxYE.js.map +1 -0
- package/dist/{service-account-authorization-Ct0OZwbr.js → service-account-authorization-A5Ly0UFD.js} +3 -3
- package/dist/{service-account-authorization-Ct0OZwbr.js.map → service-account-authorization-A5Ly0UFD.js.map} +1 -1
- package/dist/{service-account-control-DefN0EOY.js → service-account-control-DCz_pwrV.js} +10 -10
- package/dist/{service-account-control-DefN0EOY.js.map → service-account-control-DCz_pwrV.js.map} +1 -1
- package/dist/{service-control-capabilities-m7mmxVOi.js → service-control-capabilities-BPL-T8xI.js} +1 -1
- package/dist/{service-control-capabilities-BsCCHsUg.js → service-control-capabilities-plI5rUzP.js} +4 -4
- package/dist/{service-control-capabilities-BsCCHsUg.js.map → service-control-capabilities-plI5rUzP.js.map} +1 -1
- package/dist/{state-C2ztY4iq.js → state-Dj3YS3aV.js} +2 -2
- package/dist/{state-C2ztY4iq.js.map → state-Dj3YS3aV.js.map} +1 -1
- package/dist/{upgrade-O_blyOta.js → upgrade-CRKSer_1.js} +15 -8
- package/dist/upgrade-CRKSer_1.js.map +1 -0
- package/dist/upgrade-DdetA0-U.js +4 -0
- package/dist/{windows-user-task-CSJpDs-S.js → windows-user-task-D4uMvea3.js} +84 -3
- package/dist/windows-user-task-D4uMvea3.js.map +1 -0
- package/dist/{windows-user-task-CWDzkJCq.js → windows-user-task-hNE24Gqr.js} +1 -1
- package/package.json +41 -42
- package/skills/openmeld-cli/playbooks/agent-onboarding.md +15 -0
- package/dist/auth-session-B9Whm1hq.js.map +0 -1
- package/dist/auth-session-DXKHtGTr.js +0 -4
- package/dist/command-Cbp4ZeZs.js.map +0 -1
- package/dist/controller-contract-pe3_Re-c.js.map +0 -1
- package/dist/daemon-frame-transport-DUDAgNbO.js.map +0 -1
- package/dist/daemon-service-update-coordinator-BATuKmZA.js.map +0 -1
- package/dist/dist-CkGG099H.js.map +0 -1
- package/dist/dist-o3UL1EGQ.js.map +0 -1
- package/dist/open-code-permission-Doem1R2N.js.map +0 -1
- package/dist/openmeld-koCpjXo7.js.map +0 -1
- package/dist/prepare-provider-runtime-CeGzeQbD.js.map +0 -1
- package/dist/runtime-CesmzZ2L.js.map +0 -1
- package/dist/runtime-agent-controller-reporting-submission-B6cDV_zW.js.map +0 -1
- package/dist/runtime-reporting-health-state-Cjavvccq.js.map +0 -1
- package/dist/runtime-transport-CVtBXzIp.js.map +0 -1
- package/dist/service-Cgat7nEE.js.map +0 -1
- package/dist/upgrade-O_blyOta.js.map +0 -1
- package/dist/upgrade-axb9z2uy.js +0 -4
- package/dist/windows-user-task-CSJpDs-S.js.map +0 -1
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { J as normalizeOpenMeldProfileId, L as deviceOpenClawProfileBootstrapPath, P as accountProfileWorkspacePath, R as deviceOpenClawProfileDir, W as isPublishedOpenMeldHome, a as isOpenMeldOrphanedLockError, ct as resolveOpenMeldEnvPreset, d as runWithHeldLock, i as isOpenMeldLockError, j as accountProfileLocalMetaPath, lt as resolveOpenMeldRootDir, t as acquireLock, z as deviceOpenClawProfileWorkspaceDir } from "./lock-Bsl_ElWy.js";
|
|
4
|
-
import { Kt as createLocalRuntimeExpectedRoutesApi,
|
|
5
|
-
import { _ as canonicalizeAgentControllerRef, b as normalizeKnownBuiltinAgentControllerId, d as resolveBuiltinAgentControllerConversationKind, f as HOSTED_CENTER_AGENT_CONTROLLER_REF, g as buildAgentControllerRoutingKey, l as buildAgentControllerConversationRef, m as HOSTED_REMOTE_AGENT_CONTROLLER_REF, p as HOSTED_CENTER_AGENT_CONTROLLER_REF_ID, s as runtimeTransportModeSchema, v as canonicalizeBuiltinAgentControllerRef, x as parseAgentControllerRef$1 } from "./controller-contract-
|
|
6
|
-
import {
|
|
7
|
-
import { d as getAuthSessionState, q as OPENCLAW_CLI_TIMEOUT_MS$1 } from "./auth-session-
|
|
8
|
-
import { C as conversationExecutionStateSchema, D as normalizeOptionalWorkingDirectory, P as profileWorkspaceModeSchema, T as MAX_PROFILE_WORKING_DIRECTORY_LENGTH, o as openMeldDaemonControlPlaneRequestSchema, s as openMeldDaemonControlPlaneResponseSchema, x as providerDispatchRuntimeContextSchema } from "./control-plane-
|
|
4
|
+
import { Kt as createLocalRuntimeExpectedRoutesApi, Mt as createAgentProfileBindingApi, mi as modelCatalogSchema, t as OpenMeldApiClientHttpError } from "./dist-CiLvbjZA.js";
|
|
5
|
+
import { _ as canonicalizeAgentControllerRef, b as normalizeKnownBuiltinAgentControllerId, d as resolveBuiltinAgentControllerConversationKind, f as HOSTED_CENTER_AGENT_CONTROLLER_REF, g as buildAgentControllerRoutingKey, l as buildAgentControllerConversationRef, m as HOSTED_REMOTE_AGENT_CONTROLLER_REF, p as HOSTED_CENTER_AGENT_CONTROLLER_REF_ID, s as runtimeTransportModeSchema, v as canonicalizeBuiltinAgentControllerRef, x as parseAgentControllerRef$1 } from "./controller-contract-DAOCaefz.js";
|
|
6
|
+
import { Bn as formatCanonicalMentionLiteral, H as OPENMELD_ORIGINAL_ERROR_MAX_LENGTH, J as openMeldDaemonTaskResultOpenClawGatewayVisibilityStatusSchema, K as openMeldDaemonProviderAccessEvidenceSchema, U as isOriginalErrorSafeForMessageDetails, Un as normalizeMessageEnvelope, di as resolveCommandAgentWorkActivity, q as openMeldDaemonTaskResultEnvelopeWriteSchema, sr as agentInteractionResolutionSchema, t as CURRENT_DAEMON_EXECUTION_CONTRACT_EPOCH } from "./runtime-transport-KEwcSZ89.js";
|
|
7
|
+
import { d as getAuthSessionState, q as OPENCLAW_CLI_TIMEOUT_MS$1 } from "./auth-session-BAq7KkIa.js";
|
|
8
|
+
import { C as conversationExecutionStateSchema, D as normalizeOptionalWorkingDirectory, P as profileWorkspaceModeSchema, T as MAX_PROFILE_WORKING_DIRECTORY_LENGTH, o as openMeldDaemonControlPlaneRequestSchema, s as openMeldDaemonControlPlaneResponseSchema, x as providerDispatchRuntimeContextSchema } from "./control-plane-BDS63N7Y.js";
|
|
9
9
|
import { r as daemonServiceLaneSchema } from "./service-contract-CRyDcIIf.js";
|
|
10
|
-
import { n as agentControllerPermissionModeSchema, r as agentControllerCollaborationModeSchema } from "./open-code-permission-
|
|
11
|
-
import { U as listOpenMeldProfiles, X as touchDaemonCatalogSyncSignal, _ as toErrorMessage$
|
|
12
|
-
import { C as updateConfiguredDeviceRuntimeState, T as updateConfiguredSkillsConfig, a as resolveBaseUrl, d as createDefaultRuntimeAgentControllerSettings, g as getConfiguredSkillsConfig, p as getConfiguredDeviceRuntimeState, v as getRuntimeConfigReadHealth, y as resolveRuntimeSkillsCustomTargetId } from "./base-url-
|
|
10
|
+
import { n as agentControllerPermissionModeSchema, r as agentControllerCollaborationModeSchema } from "./open-code-permission-DHFJYc_o.js";
|
|
11
|
+
import { U as listOpenMeldProfiles, X as touchDaemonCatalogSyncSignal, _ as toErrorMessage$20, ct as DAEMON_ROUTE_CATALOG_CACHE_SCHEMA_NAME, d as normalizeText$11, g as parseTransportMode$1, h as parseStreamingMode$1, m as parseRuntimeTransportMode, p as parseContextIdMappingSpec, s as emitRunLine, st as resolveCurrentOpenMeldAccountContext, u as normalizeOptionalText$52, ut as daemonRouteCatalogCacheSchema } from "./daemon-device-id-bP58j3NL.js";
|
|
12
|
+
import { C as updateConfiguredDeviceRuntimeState, T as updateConfiguredSkillsConfig, a as resolveBaseUrl, d as createDefaultRuntimeAgentControllerSettings, g as getConfiguredSkillsConfig, p as getConfiguredDeviceRuntimeState, v as getRuntimeConfigReadHealth, y as resolveRuntimeSkillsCustomTargetId } from "./base-url-D7uE_xTo.js";
|
|
13
13
|
import { a as powerShellEncodedArguments, l as normalizeCommandEnvironment, o as readWindowsProcessStartFileTime, r as isProcessIdentityAlive, s as resolveWindowsPowerShellPath, t as CURRENT_PROCESS_START_IDENTITY } from "./process-identity-CNus0e6E.js";
|
|
14
14
|
import { n as writeDaemonLocalStateFile, t as readDaemonLocalStateFile } from "./daemon-local-state-file-jOXuXrky.js";
|
|
15
15
|
import { m as daemonRuntimeDataPath } from "./daemon-state-B44aq2nm.js";
|
|
16
16
|
import { i as readDaemonServiceContract } from "./daemon-service-contract-BpOBMGX0.js";
|
|
17
|
-
import { C as requestLocalSyncRouteCatalog } from "./daemon-lifecycle-journal-
|
|
18
|
-
import { d as buildOpenMeldRequestContextFromProfile, t as createCliApiClientFoundation } from "./api-client-foundation-
|
|
17
|
+
import { C as requestLocalSyncRouteCatalog } from "./daemon-lifecycle-journal-57QR_a3_.js";
|
|
18
|
+
import { d as buildOpenMeldRequestContextFromProfile, t as createCliApiClientFoundation } from "./api-client-foundation-BOBrz3Lx.js";
|
|
19
19
|
import { createRequire } from "node:module";
|
|
20
20
|
import { createHash, randomUUID } from "node:crypto";
|
|
21
21
|
import { homedir, loadavg, tmpdir } from "node:os";
|
|
@@ -37,10 +37,21 @@ const BUILTIN_AGENT_CONTROLLER_DISPLAY_ORDER = [
|
|
|
37
37
|
"claude-code",
|
|
38
38
|
"grok-build",
|
|
39
39
|
"opencode",
|
|
40
|
+
"antigravity",
|
|
40
41
|
"openclaw",
|
|
41
42
|
"cursor"
|
|
42
43
|
];
|
|
43
44
|
const BUILTIN_AGENT_CONTROLLER_BRANDS = {
|
|
45
|
+
antigravity: {
|
|
46
|
+
accentHex: "#4f7df3",
|
|
47
|
+
accentRgb: [
|
|
48
|
+
79,
|
|
49
|
+
125,
|
|
50
|
+
243
|
|
51
|
+
],
|
|
52
|
+
controllerId: "antigravity",
|
|
53
|
+
selectionMixPercent: 32
|
|
54
|
+
},
|
|
44
55
|
"claude-code": {
|
|
45
56
|
accentHex: "#d97757",
|
|
46
57
|
accentRgb: [
|
|
@@ -653,13 +664,49 @@ const GROK_BUILD_AGENT_CONTROLLER_PERMISSION_MODE_OPTIONS = [
|
|
|
653
664
|
value: "grok-build:bypassPermissions"
|
|
654
665
|
}
|
|
655
666
|
];
|
|
667
|
+
const ANTIGRAVITY_AGENT_CONTROLLER_PERMISSION_MODE_OPTIONS = [
|
|
668
|
+
{
|
|
669
|
+
description: "Use Antigravity's configured tool permissions. Actions that need approval are blocked during unattended runs.",
|
|
670
|
+
label: "Default",
|
|
671
|
+
requiresExplicitConfirmation: false,
|
|
672
|
+
technicalDetail: "agy (no OpenMeld permission overrides)",
|
|
673
|
+
tone: "neutral",
|
|
674
|
+
value: "antigravity:default"
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
description: "Automatically accept file edits. Shell commands still follow Antigravity's configured tool permissions.",
|
|
678
|
+
label: "Accept edits",
|
|
679
|
+
requiresExplicitConfirmation: false,
|
|
680
|
+
technicalDetail: "agy --mode accept-edits",
|
|
681
|
+
tone: "neutral",
|
|
682
|
+
value: "antigravity:acceptEdits"
|
|
683
|
+
},
|
|
684
|
+
{
|
|
685
|
+
description: "Ask Antigravity to investigate and propose a plan before making changes. This is not a read-only sandbox.",
|
|
686
|
+
label: "Plan",
|
|
687
|
+
requiresExplicitConfirmation: false,
|
|
688
|
+
technicalDetail: "agy --mode plan",
|
|
689
|
+
tone: "neutral",
|
|
690
|
+
value: "antigravity:plan"
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
description: "Automatically approve all tool requests, including file changes and shell commands.",
|
|
694
|
+
label: "Bypass permissions",
|
|
695
|
+
requiresExplicitConfirmation: true,
|
|
696
|
+
technicalDetail: "agy --dangerously-skip-permissions",
|
|
697
|
+
tone: "warning",
|
|
698
|
+
value: "antigravity:bypassPermissions"
|
|
699
|
+
}
|
|
700
|
+
];
|
|
656
701
|
const AGENT_CONTROLLER_PERMISSION_MODE_OPTIONS_BY_CONTROLLER_ID = {
|
|
702
|
+
antigravity: ANTIGRAVITY_AGENT_CONTROLLER_PERMISSION_MODE_OPTIONS,
|
|
657
703
|
"claude-code": CLAUDE_CODE_AGENT_CONTROLLER_PERMISSION_MODE_OPTIONS,
|
|
658
704
|
codex: CODEX_AGENT_CONTROLLER_PERMISSION_MODE_OPTIONS,
|
|
659
705
|
cursor: CURSOR_AGENT_CONTROLLER_PERMISSION_MODE_OPTIONS,
|
|
660
706
|
"grok-build": GROK_BUILD_AGENT_CONTROLLER_PERMISSION_MODE_OPTIONS
|
|
661
707
|
};
|
|
662
708
|
const AGENT_CONTROLLER_PERMISSION_MODE_FIELD_LABEL_BY_CONTROLLER_ID = {
|
|
709
|
+
antigravity: "Antigravity permissions mode",
|
|
663
710
|
"claude-code": "Claude Code permissions mode",
|
|
664
711
|
codex: "Codex permissions mode",
|
|
665
712
|
cursor: "Cursor permissions mode",
|
|
@@ -700,6 +747,7 @@ function listAgentControllerPermissionModeOptions(input) {
|
|
|
700
747
|
if (controllerOptions) return controllerOptions.map((option) => ({ ...option }));
|
|
701
748
|
if (input) return [];
|
|
702
749
|
return [
|
|
750
|
+
...ANTIGRAVITY_AGENT_CONTROLLER_PERMISSION_MODE_OPTIONS,
|
|
703
751
|
...CLAUDE_CODE_AGENT_CONTROLLER_PERMISSION_MODE_OPTIONS,
|
|
704
752
|
...CODEX_AGENT_CONTROLLER_PERMISSION_MODE_OPTIONS,
|
|
705
753
|
...CURSOR_AGENT_CONTROLLER_PERMISSION_MODE_OPTIONS,
|
|
@@ -719,6 +767,7 @@ function isAgentControllerPermissionModeControllerId(value) {
|
|
|
719
767
|
return Object.hasOwn(AGENT_CONTROLLER_PERMISSION_MODE_OPTIONS_BY_CONTROLLER_ID, value);
|
|
720
768
|
}
|
|
721
769
|
const AGENT_CONTROLLER_USAGE_LIMIT_SUPPORT_MATRIX = {
|
|
770
|
+
antigravity: "native",
|
|
722
771
|
"claude-code": "passive",
|
|
723
772
|
codex: "native",
|
|
724
773
|
cursor: "unsupported",
|
|
@@ -1953,20 +2002,50 @@ var registry_default$1 = {
|
|
|
1953
2002
|
"id": "antigravity",
|
|
1954
2003
|
"displayName": "Antigravity",
|
|
1955
2004
|
"category": "builtin",
|
|
1956
|
-
"skillsDir": ".
|
|
1957
|
-
"globalSkillsDir": "${HOME}/.gemini/antigravity/skills",
|
|
2005
|
+
"skillsDir": ".agents/skills",
|
|
2006
|
+
"globalSkillsDir": ["${HOME}/.gemini/antigravity-cli/skills", "${HOME}/.gemini/antigravity/skills"],
|
|
1958
2007
|
"detection": {
|
|
1959
2008
|
"mode": "any",
|
|
1960
|
-
"checks": [
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
2009
|
+
"checks": [
|
|
2010
|
+
{
|
|
2011
|
+
"kind": "commandExists",
|
|
2012
|
+
"value": "agy"
|
|
2013
|
+
},
|
|
2014
|
+
{
|
|
2015
|
+
"kind": "pathExists",
|
|
2016
|
+
"value": "${HOME}/.gemini/antigravity-cli"
|
|
2017
|
+
},
|
|
2018
|
+
{
|
|
2019
|
+
"kind": "pathExists",
|
|
2020
|
+
"value": "${HOME}/.gemini/antigravity"
|
|
2021
|
+
}
|
|
2022
|
+
]
|
|
1964
2023
|
},
|
|
1965
2024
|
"service": { "skillsInstallable": true },
|
|
1966
2025
|
"runtime": {
|
|
1967
|
-
"supported":
|
|
1968
|
-
"adapters": [
|
|
1969
|
-
|
|
2026
|
+
"supported": true,
|
|
2027
|
+
"adapters": [{
|
|
2028
|
+
"adapterId": "antigravity",
|
|
2029
|
+
"controllerRefMatcher": {
|
|
2030
|
+
"kind": "contains",
|
|
2031
|
+
"values": ["antigravity"]
|
|
2032
|
+
},
|
|
2033
|
+
"transportModes": ["local-cli"],
|
|
2034
|
+
"capabilityDeclaration": {
|
|
2035
|
+
"executionContextVersion": 2,
|
|
2036
|
+
"streamingCapability": "preview_capable",
|
|
2037
|
+
"imageInputCapability": "unsupported",
|
|
2038
|
+
"runtimeWorkingDirectoryMode": "spawn_cwd",
|
|
2039
|
+
"preparationRequirement": "none",
|
|
2040
|
+
"continuationCapability": "standard",
|
|
2041
|
+
"workspaceResumeBehavior": "validate_only"
|
|
2042
|
+
}
|
|
2043
|
+
}]
|
|
2044
|
+
},
|
|
2045
|
+
"lifecycle": { "status": "active" },
|
|
2046
|
+
"transportModes": ["local-cli"],
|
|
2047
|
+
"defaultTransportMode": "local-cli",
|
|
2048
|
+
"defaultStreamingMode": "stream"
|
|
1970
2049
|
},
|
|
1971
2050
|
{
|
|
1972
2051
|
"id": "augment",
|
|
@@ -2931,7 +3010,7 @@ function resolveConversationPolicyFromModelSelection(input) {
|
|
|
2931
3010
|
conversationPolicy: {}
|
|
2932
3011
|
};
|
|
2933
3012
|
if (!selection) {
|
|
2934
|
-
if (parsedRef.kind === "builtin" && parsedRef.id === "codex" && normalizeOptionalText$
|
|
3013
|
+
if (parsedRef.kind === "builtin" && parsedRef.id === "codex" && normalizeOptionalText$51(input.agentControllerConversationId)) return {
|
|
2935
3014
|
status: "accepted",
|
|
2936
3015
|
conversationPolicy: {}
|
|
2937
3016
|
};
|
|
@@ -2955,7 +3034,7 @@ function resolveConversationPolicyFromModelSelection(input) {
|
|
|
2955
3034
|
}
|
|
2956
3035
|
};
|
|
2957
3036
|
}
|
|
2958
|
-
function normalizeOptionalText$
|
|
3037
|
+
function normalizeOptionalText$51(value) {
|
|
2959
3038
|
const normalized = String(value ?? "").trim();
|
|
2960
3039
|
return normalized.length > 0 ? normalized : null;
|
|
2961
3040
|
}
|
|
@@ -3982,8 +4061,8 @@ var CliDriverError = class extends Error {
|
|
|
3982
4061
|
async function runCliDriver(input) {
|
|
3983
4062
|
const args = [...input.args];
|
|
3984
4063
|
const timeoutMs = normalizeTimeoutMs(input.timeoutMs);
|
|
3985
|
-
const binary = normalizeRequiredText(input.bin, "bin");
|
|
3986
|
-
const cwd = normalizeRequiredText(input.cwd, "cwd");
|
|
4064
|
+
const binary = normalizeRequiredText$1(input.bin, "bin");
|
|
4065
|
+
const cwd = normalizeRequiredText$1(input.cwd, "cwd");
|
|
3987
4066
|
return await new Promise((resolve, reject) => {
|
|
3988
4067
|
const runtimeProcess = spawnAgentControllerProcess({
|
|
3989
4068
|
args,
|
|
@@ -4218,7 +4297,7 @@ const resolveCliDriverCloseFailure = (input) => {
|
|
|
4218
4297
|
stdoutText: input.stdoutText
|
|
4219
4298
|
});
|
|
4220
4299
|
};
|
|
4221
|
-
const normalizeRequiredText = (value, field) => {
|
|
4300
|
+
const normalizeRequiredText$1 = (value, field) => {
|
|
4222
4301
|
const normalized = value.trim();
|
|
4223
4302
|
if (!normalized) throw new CliDriverError({
|
|
4224
4303
|
code: "input.invalid",
|
|
@@ -4274,8 +4353,8 @@ const MACOS_TEMP_FOLDER_RE = /^\/var\/folders\/[^/]+\/[^/]+\/t(?:\/|$)/u;
|
|
|
4274
4353
|
const WRAPPER_PATH_SEGMENT_RE = /(?:^|[-_.])(?:shim|shims|wrapper|wrappers)(?:$|[-_.])/u;
|
|
4275
4354
|
const MAX_LAUNCH_SCRIPT_INSPECTION_BYTES = 64 * 1024;
|
|
4276
4355
|
const DEFAULT_LOGIN_SHELL_LOOKUP_TIMEOUT_MS = 1500;
|
|
4277
|
-
const HOME_DIR = normalizeOptionalText$
|
|
4278
|
-
const TEMP_DIR = normalizeOptionalText$
|
|
4356
|
+
const HOME_DIR = normalizeOptionalText$50(homedir());
|
|
4357
|
+
const TEMP_DIR = normalizeOptionalText$50(tmpdir());
|
|
4279
4358
|
const loginShellExecutablePathsCache = /* @__PURE__ */ new Map();
|
|
4280
4359
|
function buildExecutableLaunchContract(input) {
|
|
4281
4360
|
return {
|
|
@@ -4323,7 +4402,7 @@ async function verifyLaunchContractFiles(input) {
|
|
|
4323
4402
|
};
|
|
4324
4403
|
} catch (error) {
|
|
4325
4404
|
return {
|
|
4326
|
-
errorMessage: toErrorMessage$
|
|
4405
|
+
errorMessage: toErrorMessage$19(error),
|
|
4327
4406
|
failureKind: "completed_negative",
|
|
4328
4407
|
ok: false
|
|
4329
4408
|
};
|
|
@@ -4352,7 +4431,7 @@ async function verifyCliLaunchContract(input) {
|
|
|
4352
4431
|
return fileCheck;
|
|
4353
4432
|
} catch (error) {
|
|
4354
4433
|
return {
|
|
4355
|
-
errorMessage: `${input.displayName} can't start on this device: ${toErrorMessage$
|
|
4434
|
+
errorMessage: `${input.displayName} can't start on this device: ${toErrorMessage$19(error)}`,
|
|
4356
4435
|
failureKind: classifyLaunchContractVerificationFailure(error),
|
|
4357
4436
|
ok: false
|
|
4358
4437
|
};
|
|
@@ -4468,7 +4547,7 @@ async function inspectInstalledNodeScriptLaunchCandidate(input) {
|
|
|
4468
4547
|
};
|
|
4469
4548
|
} catch (error) {
|
|
4470
4549
|
return {
|
|
4471
|
-
errorMessage: `${input.displayName} is installed, but OpenMeld could not inspect its launch files: ${toErrorMessage$
|
|
4550
|
+
errorMessage: `${input.displayName} is installed, but OpenMeld could not inspect its launch files: ${toErrorMessage$19(error)}`,
|
|
4472
4551
|
ok: false
|
|
4473
4552
|
};
|
|
4474
4553
|
}
|
|
@@ -4477,7 +4556,7 @@ function resolveInstalledCommandPath(input) {
|
|
|
4477
4556
|
return resolveInstalledCommandPaths(input)[0] ?? null;
|
|
4478
4557
|
}
|
|
4479
4558
|
function resolveInstalledCommandPaths(input) {
|
|
4480
|
-
const configuredCommand = normalizeOptionalText$
|
|
4559
|
+
const configuredCommand = normalizeOptionalText$50(input.configuredCommand);
|
|
4481
4560
|
if (configuredCommand) {
|
|
4482
4561
|
if (isAbsolute(configuredCommand)) return [configuredCommand];
|
|
4483
4562
|
if (configuredCommand.includes("/") || configuredCommand.includes("\\")) return [];
|
|
@@ -4486,9 +4565,9 @@ function resolveInstalledCommandPaths(input) {
|
|
|
4486
4565
|
return resolveExecutablePathsOnPath(input.commandName);
|
|
4487
4566
|
}
|
|
4488
4567
|
async function resolveInstalledCommandPathsForLaunch(input) {
|
|
4489
|
-
const preferredCommandPath = normalizeOptionalText$
|
|
4568
|
+
const preferredCommandPath = normalizeOptionalText$50(input.preferredCommandPath);
|
|
4490
4569
|
const preferredCommandPaths = preferredCommandPath && isAbsolute(preferredCommandPath) ? [preferredCommandPath] : [];
|
|
4491
|
-
const configuredCommand = normalizeOptionalText$
|
|
4570
|
+
const configuredCommand = normalizeOptionalText$50(input.configuredCommand);
|
|
4492
4571
|
if (configuredCommand) {
|
|
4493
4572
|
if (isAbsolute(configuredCommand)) return mergeUniquePaths(preferredCommandPaths, [configuredCommand]);
|
|
4494
4573
|
if (configuredCommand.includes("/") || configuredCommand.includes("\\")) return preferredCommandPaths;
|
|
@@ -4506,7 +4585,7 @@ function resolveExecutableOnPath(commandName) {
|
|
|
4506
4585
|
return resolveExecutablePathsOnPath(commandName)[0] ?? null;
|
|
4507
4586
|
}
|
|
4508
4587
|
function resolveExecutablePathsOnPath(commandName) {
|
|
4509
|
-
const normalizedCommandName = normalizeOptionalText$
|
|
4588
|
+
const normalizedCommandName = normalizeOptionalText$50(commandName);
|
|
4510
4589
|
if (!normalizedCommandName) return [];
|
|
4511
4590
|
const resolvedPaths = [];
|
|
4512
4591
|
for (const directory of resolvePathDirectories()) for (const candidateName of resolveCommandFileNameCandidates(normalizedCommandName)) {
|
|
@@ -4528,7 +4607,7 @@ async function resolveExecutablePathsFromSearchSurface(input) {
|
|
|
4528
4607
|
}
|
|
4529
4608
|
function resolvePathDirectories() {
|
|
4530
4609
|
const directories = [];
|
|
4531
|
-
const pathValue = normalizeOptionalText$
|
|
4610
|
+
const pathValue = normalizeOptionalText$50(process.env.PATH);
|
|
4532
4611
|
for (const pathEntry of pathValue?.split(delimiter) ?? []) addUniqueDirectory(directories, pathEntry);
|
|
4533
4612
|
return directories;
|
|
4534
4613
|
}
|
|
@@ -4539,7 +4618,7 @@ function resolveExecutablePathsFromKnownInstallDirectories(commandName) {
|
|
|
4539
4618
|
});
|
|
4540
4619
|
}
|
|
4541
4620
|
function resolveExecutablePathsFromDirectories(input) {
|
|
4542
|
-
const normalizedCommandName = normalizeOptionalText$
|
|
4621
|
+
const normalizedCommandName = normalizeOptionalText$50(input.commandName);
|
|
4543
4622
|
if (!normalizedCommandName) return [];
|
|
4544
4623
|
const resolvedPaths = [];
|
|
4545
4624
|
for (const directory of input.directories) for (const candidateName of resolveCommandFileNameCandidates(normalizedCommandName)) {
|
|
@@ -4552,12 +4631,12 @@ function resolveKnownInstallDirectories() {
|
|
|
4552
4631
|
const directories = [];
|
|
4553
4632
|
if (process.platform === "win32") return directories;
|
|
4554
4633
|
const home = resolveHomeDirectory();
|
|
4555
|
-
const nvmDir = normalizeOptionalText$
|
|
4556
|
-
const pnpmHome = normalizeOptionalText$
|
|
4557
|
-
const bunHome = normalizeOptionalText$
|
|
4558
|
-
const voltaHome = normalizeOptionalText$
|
|
4559
|
-
const asdfHome = normalizeOptionalText$
|
|
4560
|
-
const fnmHome = normalizeOptionalText$
|
|
4634
|
+
const nvmDir = normalizeOptionalText$50(process.env.NVM_DIR) ?? join(home, ".nvm");
|
|
4635
|
+
const pnpmHome = normalizeOptionalText$50(process.env.PNPM_HOME) ?? (process.platform === "darwin" ? join(home, "Library", "pnpm") : join(home, ".local", "share", "pnpm"));
|
|
4636
|
+
const bunHome = normalizeOptionalText$50(process.env.BUN_INSTALL) ?? join(home, ".bun");
|
|
4637
|
+
const voltaHome = normalizeOptionalText$50(process.env.VOLTA_HOME) ?? join(home, ".volta");
|
|
4638
|
+
const asdfHome = normalizeOptionalText$50(process.env.ASDF_DIR) ?? join(home, ".asdf");
|
|
4639
|
+
const fnmHome = normalizeOptionalText$50(process.env.FNM_DIR) ?? join(home, ".fnm");
|
|
4561
4640
|
addUniqueDirectory(directories, join(home, ".local", "bin"));
|
|
4562
4641
|
addUniqueDirectory(directories, "/usr/local/bin");
|
|
4563
4642
|
addUniqueDirectory(directories, "/opt/homebrew/bin");
|
|
@@ -4572,18 +4651,18 @@ function resolveKnownInstallDirectories() {
|
|
|
4572
4651
|
addUniqueDirectory(directories, join(home, ".local", "share", "fnm", "aliases", "default", "bin"));
|
|
4573
4652
|
addUniqueDirectory(directories, join(home, ".local", "share", "fnm", "current", "bin"));
|
|
4574
4653
|
for (const nvmBinDir of resolveNvmDefaultBinDirectories(nvmDir)) addUniqueDirectory(directories, nvmBinDir);
|
|
4575
|
-
const npmConfigPrefix = normalizeOptionalText$
|
|
4654
|
+
const npmConfigPrefix = normalizeOptionalText$50(process.env.NPM_CONFIG_PREFIX);
|
|
4576
4655
|
if (npmConfigPrefix) addUniqueDirectory(directories, join(npmConfigPrefix, "bin"));
|
|
4577
4656
|
return directories;
|
|
4578
4657
|
}
|
|
4579
4658
|
function addUniqueDirectory(directories, value) {
|
|
4580
|
-
const directory = normalizeOptionalText$
|
|
4659
|
+
const directory = normalizeOptionalText$50(value);
|
|
4581
4660
|
if (directory && !directories.includes(directory)) directories.push(directory);
|
|
4582
4661
|
}
|
|
4583
4662
|
async function resolveExecutablePathsFromLoginShell(commandName) {
|
|
4584
|
-
const normalizedCommandName = normalizeOptionalText$
|
|
4663
|
+
const normalizedCommandName = normalizeOptionalText$50(commandName);
|
|
4585
4664
|
if (!(normalizedCommandName && process.platform !== "win32")) return [];
|
|
4586
|
-
const shell = normalizeOptionalText$
|
|
4665
|
+
const shell = normalizeOptionalText$50(process.env.SHELL);
|
|
4587
4666
|
if (!(shell && isAbsolute(shell) && pathLooksExecutable(shell))) return [];
|
|
4588
4667
|
const cacheKey = [
|
|
4589
4668
|
shell,
|
|
@@ -4636,7 +4715,7 @@ async function runLoginShellExecutableLookup(input) {
|
|
|
4636
4715
|
finish([]);
|
|
4637
4716
|
return;
|
|
4638
4717
|
}
|
|
4639
|
-
finish(stdout.split(LOGIN_SHELL_OUTPUT_LINE_SPLIT_RE).map((line) => normalizeOptionalText$
|
|
4718
|
+
finish(stdout.split(LOGIN_SHELL_OUTPUT_LINE_SPLIT_RE).map((line) => normalizeOptionalText$50(line)).filter((line) => Boolean(line && isAbsolute(line) && pathLooksExecutable(line))));
|
|
4640
4719
|
});
|
|
4641
4720
|
});
|
|
4642
4721
|
}
|
|
@@ -4649,7 +4728,7 @@ function resolveNvmDefaultVersion(nvmDir) {
|
|
|
4649
4728
|
let value = readNvmAlias(nvmDir, "default");
|
|
4650
4729
|
const seenAliases = /* @__PURE__ */ new Set();
|
|
4651
4730
|
for (let depth = 0; depth < 4; depth += 1) {
|
|
4652
|
-
const normalizedValue = normalizeOptionalText$
|
|
4731
|
+
const normalizedValue = normalizeOptionalText$50(value);
|
|
4653
4732
|
if (!normalizedValue) return null;
|
|
4654
4733
|
if (isNvmVersionValue(normalizedValue)) return normalizedValue.startsWith("v") ? normalizedValue : `v${normalizedValue}`;
|
|
4655
4734
|
if (seenAliases.has(normalizedValue)) return null;
|
|
@@ -4660,7 +4739,7 @@ function resolveNvmDefaultVersion(nvmDir) {
|
|
|
4660
4739
|
}
|
|
4661
4740
|
function readNvmAlias(nvmDir, alias) {
|
|
4662
4741
|
try {
|
|
4663
|
-
return normalizeOptionalText$
|
|
4742
|
+
return normalizeOptionalText$50(readFileSync(join(nvmDir, "alias", alias), "utf8"));
|
|
4664
4743
|
} catch {
|
|
4665
4744
|
return null;
|
|
4666
4745
|
}
|
|
@@ -4669,10 +4748,10 @@ function isNvmVersionValue(value) {
|
|
|
4669
4748
|
return NVM_VERSION_VALUE_RE.test(value);
|
|
4670
4749
|
}
|
|
4671
4750
|
function resolveHomeDirectory() {
|
|
4672
|
-
return normalizeOptionalText$
|
|
4751
|
+
return normalizeOptionalText$50(process.env.HOME) ?? homedir();
|
|
4673
4752
|
}
|
|
4674
4753
|
function resolveLoginShellLookupTimeoutMs() {
|
|
4675
|
-
const raw = normalizeOptionalText$
|
|
4754
|
+
const raw = normalizeOptionalText$50(process.env.OPENMELD_EXECUTABLE_LOGIN_SHELL_TIMEOUT_MS);
|
|
4676
4755
|
if (!raw) return DEFAULT_LOGIN_SHELL_LOOKUP_TIMEOUT_MS;
|
|
4677
4756
|
const parsed = Number.parseInt(raw, 10);
|
|
4678
4757
|
return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_LOGIN_SHELL_LOOKUP_TIMEOUT_MS;
|
|
@@ -4687,7 +4766,7 @@ function quotePosixShellToken$1(value) {
|
|
|
4687
4766
|
return `'${value.replaceAll("'", "'\\''")}'`;
|
|
4688
4767
|
}
|
|
4689
4768
|
function resolveSiblingCommandPath(input) {
|
|
4690
|
-
const normalizedCommandName = normalizeOptionalText$
|
|
4769
|
+
const normalizedCommandName = normalizeOptionalText$50(input.commandName);
|
|
4691
4770
|
if (!normalizedCommandName) return null;
|
|
4692
4771
|
const siblingDirectory = dirname(input.anchorPath);
|
|
4693
4772
|
for (const candidateName of resolveCommandFileNameCandidates(normalizedCommandName)) {
|
|
@@ -4697,7 +4776,7 @@ function resolveSiblingCommandPath(input) {
|
|
|
4697
4776
|
return null;
|
|
4698
4777
|
}
|
|
4699
4778
|
async function resolvePinnedNodePath(input) {
|
|
4700
|
-
const firstLine = normalizeOptionalText$
|
|
4779
|
+
const firstLine = normalizeOptionalText$50(input.firstLine);
|
|
4701
4780
|
if (!firstLine) return null;
|
|
4702
4781
|
if (firstLine === ENV_NODE_SHEBANG) {
|
|
4703
4782
|
const nodeSiblings = [join(dirname(input.commandPath), "node"), join(dirname(input.scriptPath), "node")].filter((candidate, index, candidates) => {
|
|
@@ -4707,7 +4786,7 @@ async function resolvePinnedNodePath(input) {
|
|
|
4707
4786
|
return null;
|
|
4708
4787
|
}
|
|
4709
4788
|
if (!firstLine.startsWith("#!")) return null;
|
|
4710
|
-
const interpreter = normalizeOptionalText$
|
|
4789
|
+
const interpreter = normalizeOptionalText$50(firstLine.slice(2));
|
|
4711
4790
|
if (!(interpreter && isAbsolute(interpreter))) return null;
|
|
4712
4791
|
const normalizedInterpreter = interpreter.split(SHEBANG_ARGS_SPLIT_RE, 1)[0] ?? interpreter;
|
|
4713
4792
|
try {
|
|
@@ -4755,11 +4834,11 @@ function resolveRunnablePathAccessMode() {
|
|
|
4755
4834
|
return process.platform === "win32" ? constants.F_OK : constants.X_OK;
|
|
4756
4835
|
}
|
|
4757
4836
|
function resolveWindowsPathExtensions(value) {
|
|
4758
|
-
const normalized = normalizeOptionalText$
|
|
4837
|
+
const normalized = normalizeOptionalText$50(value);
|
|
4759
4838
|
if (!normalized) return [...WINDOWS_PATHEXT];
|
|
4760
4839
|
return normalized.split(";").map((entry) => entry.trim().toLowerCase()).filter((entry, index, values) => entry && values.indexOf(entry) === index).map((entry) => entry.startsWith(".") ? entry : `.${entry}`);
|
|
4761
4840
|
}
|
|
4762
|
-
function normalizeOptionalText$
|
|
4841
|
+
function normalizeOptionalText$50(value) {
|
|
4763
4842
|
const normalized = String(value ?? "").trim();
|
|
4764
4843
|
return normalized.length > 0 ? normalized : null;
|
|
4765
4844
|
}
|
|
@@ -4853,7 +4932,7 @@ function shortenPathForDisplay(path) {
|
|
|
4853
4932
|
return `~${path.slice(HOME_DIR.length)}`;
|
|
4854
4933
|
}
|
|
4855
4934
|
function resolveNodeVersionFromPath(path) {
|
|
4856
|
-
return normalizeOptionalText$
|
|
4935
|
+
return normalizeOptionalText$50(path.match(NODE_VERSION_PATH_RE)?.[1]);
|
|
4857
4936
|
}
|
|
4858
4937
|
async function readLaunchScriptInspection(path) {
|
|
4859
4938
|
const file = await open(path, "r");
|
|
@@ -4868,7 +4947,7 @@ async function readLaunchScriptInspection(path) {
|
|
|
4868
4947
|
const firstLine = contents.split(FIRST_LINE_SPLIT_RE, 1)[0] ?? "";
|
|
4869
4948
|
return {
|
|
4870
4949
|
contents,
|
|
4871
|
-
firstLine: normalizeOptionalText$
|
|
4950
|
+
firstLine: normalizeOptionalText$50(firstLine)
|
|
4872
4951
|
};
|
|
4873
4952
|
}
|
|
4874
4953
|
function isTransientPathWrapper(input) {
|
|
@@ -4885,7 +4964,7 @@ function hasWrapperPathSegment(path) {
|
|
|
4885
4964
|
return normalizePathForDetection(path).split("/").filter((segment) => segment.length > 0).slice(-4).some((segment) => WRAPPER_PATH_SEGMENT_RE.test(segment));
|
|
4886
4965
|
}
|
|
4887
4966
|
function shellScriptLooksLikeWrapper(input) {
|
|
4888
|
-
const firstLine = normalizeOptionalText$
|
|
4967
|
+
const firstLine = normalizeOptionalText$50(input.firstLine)?.toLowerCase() ?? "";
|
|
4889
4968
|
if (!(firstLine.includes("bash") || firstLine.includes("/sh") || firstLine.includes("zsh"))) return false;
|
|
4890
4969
|
const contents = input.contents.toLowerCase();
|
|
4891
4970
|
return contents.includes("wrapper_shim") || contents.includes("shim_root") || contents.includes("\nexec ") && (contents.includes("wrapper") || contents.includes("shim"));
|
|
@@ -4896,7 +4975,7 @@ function normalizePathForDetection(path) {
|
|
|
4896
4975
|
function pathIsEqualOrDescendant(path, parentPath) {
|
|
4897
4976
|
return path === parentPath || path.startsWith(`${parentPath}/`);
|
|
4898
4977
|
}
|
|
4899
|
-
function toErrorMessage$
|
|
4978
|
+
function toErrorMessage$19(error) {
|
|
4900
4979
|
return error instanceof Error ? error.message : String(error);
|
|
4901
4980
|
}
|
|
4902
4981
|
//#endregion
|
|
@@ -5174,7 +5253,7 @@ var AcpProcessSession = class {
|
|
|
5174
5253
|
cause: error,
|
|
5175
5254
|
code: "protocol.invalid",
|
|
5176
5255
|
errorType: "adapter",
|
|
5177
|
-
message: `protocol.invalid: ${this.#processLabel} ACP emitted non-JSON-RPC output (${toErrorMessage$
|
|
5256
|
+
message: `protocol.invalid: ${this.#processLabel} ACP emitted non-JSON-RPC output (${toErrorMessage$18(error)})`
|
|
5178
5257
|
}));
|
|
5179
5258
|
return;
|
|
5180
5259
|
}
|
|
@@ -5254,7 +5333,7 @@ var AcpProcessSession = class {
|
|
|
5254
5333
|
let code = "protocol.request_failed";
|
|
5255
5334
|
if (error.code === -32601) code = "protocol.method_not_found";
|
|
5256
5335
|
else if (error.code === -32602) code = "protocol.invalid_params";
|
|
5257
|
-
const message = normalizeOptionalText$
|
|
5336
|
+
const message = normalizeOptionalText$49(error.message) ?? "ACP request failed";
|
|
5258
5337
|
return this.#error({
|
|
5259
5338
|
code,
|
|
5260
5339
|
errorType: "adapter",
|
|
@@ -5332,11 +5411,11 @@ var AcpProcessSession = class {
|
|
|
5332
5411
|
return this.#createError(input);
|
|
5333
5412
|
}
|
|
5334
5413
|
};
|
|
5335
|
-
function normalizeOptionalText$
|
|
5414
|
+
function normalizeOptionalText$49(value) {
|
|
5336
5415
|
const normalized = String(value ?? "").trim();
|
|
5337
5416
|
return normalized.length > 0 ? normalized : null;
|
|
5338
5417
|
}
|
|
5339
|
-
function toErrorMessage$
|
|
5418
|
+
function toErrorMessage$18(error) {
|
|
5340
5419
|
return error instanceof Error ? error.message : String(error);
|
|
5341
5420
|
}
|
|
5342
5421
|
//#endregion
|
|
@@ -5452,7 +5531,7 @@ function resolveFileWorkActivity(input, operation) {
|
|
|
5452
5531
|
};
|
|
5453
5532
|
}
|
|
5454
5533
|
function readCommand(value) {
|
|
5455
|
-
const command = toRecord$
|
|
5534
|
+
const command = toRecord$16(value)?.command;
|
|
5456
5535
|
if (typeof command === "string" && command.trim().length > 0) return command;
|
|
5457
5536
|
if (Array.isArray(command)) {
|
|
5458
5537
|
const joined = command.filter((part) => typeof part === "string").join(" ").trim();
|
|
@@ -5461,14 +5540,14 @@ function readCommand(value) {
|
|
|
5461
5540
|
return null;
|
|
5462
5541
|
}
|
|
5463
5542
|
function readFilePath$1(value) {
|
|
5464
|
-
const record = toRecord$
|
|
5543
|
+
const record = toRecord$16(value);
|
|
5465
5544
|
for (const candidate of [
|
|
5466
5545
|
record?.file_path,
|
|
5467
5546
|
record?.filePath,
|
|
5468
5547
|
record?.path
|
|
5469
5548
|
]) if (typeof candidate === "string" && candidate.trim().length > 0) return candidate.trim();
|
|
5470
5549
|
if (Array.isArray(record?.changes)) for (const change of record.changes) {
|
|
5471
|
-
const path = toRecord$
|
|
5550
|
+
const path = toRecord$16(change)?.path;
|
|
5472
5551
|
if (typeof path === "string" && path.trim().length > 0) return path.trim();
|
|
5473
5552
|
}
|
|
5474
5553
|
return null;
|
|
@@ -5476,7 +5555,7 @@ function readFilePath$1(value) {
|
|
|
5476
5555
|
function normalizeProviderToolName(value) {
|
|
5477
5556
|
return typeof value === "string" ? value.trim().toLowerCase() : "";
|
|
5478
5557
|
}
|
|
5479
|
-
function toRecord$
|
|
5558
|
+
function toRecord$16(value) {
|
|
5480
5559
|
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
5481
5560
|
}
|
|
5482
5561
|
//#endregion
|
|
@@ -5520,22 +5599,22 @@ function createAcpToolActivityTracker() {
|
|
|
5520
5599
|
} };
|
|
5521
5600
|
}
|
|
5522
5601
|
function extractAcpToolActivityObservation(value) {
|
|
5523
|
-
const message = toRecord$
|
|
5602
|
+
const message = toRecord$15(value);
|
|
5524
5603
|
if (message?.method !== "session/update") return null;
|
|
5525
|
-
const params = toRecord$
|
|
5526
|
-
const update = toRecord$
|
|
5527
|
-
const updateType = normalizeOptionalText$
|
|
5604
|
+
const params = toRecord$15(message.params);
|
|
5605
|
+
const update = toRecord$15(params?.update);
|
|
5606
|
+
const updateType = normalizeOptionalText$48(update?.sessionUpdate);
|
|
5528
5607
|
if (!(update && (updateType === "tool_call" || updateType === "tool_call_update"))) return null;
|
|
5529
|
-
const toolCallId = normalizeOptionalText$
|
|
5608
|
+
const toolCallId = normalizeOptionalText$48(update.toolCallId ?? update.tool_call_id);
|
|
5530
5609
|
if (!toolCallId) return null;
|
|
5531
|
-
const sessionId = normalizeOptionalText$
|
|
5610
|
+
const sessionId = normalizeOptionalText$48(params?.sessionId);
|
|
5532
5611
|
return {
|
|
5533
5612
|
...Object.hasOwn(update, "rawInput") ? { providerInput: update.rawInput } : {},
|
|
5534
|
-
providerKind: normalizeOptionalText$
|
|
5613
|
+
providerKind: normalizeOptionalText$48(update.kind),
|
|
5535
5614
|
...Object.hasOwn(update, "locations") ? { providerLocations: update.locations } : {},
|
|
5536
|
-
providerTitle: normalizeOptionalText$
|
|
5615
|
+
providerTitle: normalizeOptionalText$48(update.title ?? update.name),
|
|
5537
5616
|
scopedToolCallId: sessionId ? `${sessionId}\0${toolCallId}` : toolCallId,
|
|
5538
|
-
status: normalizeOptionalText$
|
|
5617
|
+
status: normalizeOptionalText$48(update.status)?.toLowerCase() ?? null,
|
|
5539
5618
|
toolCallId
|
|
5540
5619
|
};
|
|
5541
5620
|
}
|
|
@@ -5563,7 +5642,7 @@ function resolveAcpToolWorkActivity(input) {
|
|
|
5563
5642
|
return resolveAdapterToolWorkActivity(input.providerToolName, input.providerInput);
|
|
5564
5643
|
}
|
|
5565
5644
|
function resolveAcpFileEvidenceInput(input) {
|
|
5566
|
-
const providerInput = toRecord$
|
|
5645
|
+
const providerInput = toRecord$15(input.providerInput);
|
|
5567
5646
|
if (providerInput && readFilePath(providerInput)) return providerInput;
|
|
5568
5647
|
const locationPath = readLocationPath(input.providerLocations);
|
|
5569
5648
|
if (!locationPath) return null;
|
|
@@ -5578,11 +5657,11 @@ function readFilePath(value) {
|
|
|
5578
5657
|
value.filePath,
|
|
5579
5658
|
value.path
|
|
5580
5659
|
]) {
|
|
5581
|
-
const path = normalizeOptionalText$
|
|
5660
|
+
const path = normalizeOptionalText$48(candidate);
|
|
5582
5661
|
if (path) return path;
|
|
5583
5662
|
}
|
|
5584
5663
|
if (Array.isArray(value.changes)) for (const change of value.changes) {
|
|
5585
|
-
const path = normalizeOptionalText$
|
|
5664
|
+
const path = normalizeOptionalText$48(toRecord$15(change)?.path);
|
|
5586
5665
|
if (path) return path;
|
|
5587
5666
|
}
|
|
5588
5667
|
return null;
|
|
@@ -5590,15 +5669,15 @@ function readFilePath(value) {
|
|
|
5590
5669
|
function readLocationPath(value) {
|
|
5591
5670
|
if (!Array.isArray(value)) return null;
|
|
5592
5671
|
for (const location of value) {
|
|
5593
|
-
const path = normalizeOptionalText$
|
|
5672
|
+
const path = normalizeOptionalText$48(toRecord$15(location)?.path);
|
|
5594
5673
|
if (path) return path;
|
|
5595
5674
|
}
|
|
5596
5675
|
return null;
|
|
5597
5676
|
}
|
|
5598
5677
|
function mergeProviderPatch(current, patch) {
|
|
5599
5678
|
if (patch === void 0 || patch === null) return current;
|
|
5600
|
-
const currentRecord = toRecord$
|
|
5601
|
-
const patchRecord = toRecord$
|
|
5679
|
+
const currentRecord = toRecord$15(current);
|
|
5680
|
+
const patchRecord = toRecord$15(patch);
|
|
5602
5681
|
if (currentRecord && patchRecord) return {
|
|
5603
5682
|
...currentRecord,
|
|
5604
5683
|
...patchRecord
|
|
@@ -5611,11 +5690,11 @@ function resolveToolActivityState$1(current, status) {
|
|
|
5611
5690
|
if (status === "completed") return "output-available";
|
|
5612
5691
|
return "input-available";
|
|
5613
5692
|
}
|
|
5614
|
-
function normalizeOptionalText$
|
|
5693
|
+
function normalizeOptionalText$48(value) {
|
|
5615
5694
|
const normalized = typeof value === "string" ? value.trim() : "";
|
|
5616
5695
|
return normalized.length > 0 ? normalized : null;
|
|
5617
5696
|
}
|
|
5618
|
-
function toRecord$
|
|
5697
|
+
function toRecord$15(value) {
|
|
5619
5698
|
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
5620
5699
|
}
|
|
5621
5700
|
//#endregion
|
|
@@ -5698,10 +5777,10 @@ const OPENMELD_CLI_COMMANDS = /* @__PURE__ */ new Set([
|
|
|
5698
5777
|
"openmeld-canary"
|
|
5699
5778
|
]);
|
|
5700
5779
|
function resolveDispatchSpaceActionMcpServer(env) {
|
|
5701
|
-
if (!normalizeOptionalText$
|
|
5702
|
-
const command = normalizeOptionalText$
|
|
5780
|
+
if (!normalizeOptionalText$47(env?.[SPACE_ACTION_CONTEXT_PATH_ENV])) return null;
|
|
5781
|
+
const command = normalizeOptionalText$47(env?.[USER_FACING_CLI_COMMAND_ENV]);
|
|
5703
5782
|
if (!(command && OPENMELD_CLI_COMMANDS.has(command))) throw new Error("OpenMeld cannot start the dispatch Space Action tool because the active CLI command is invalid.");
|
|
5704
|
-
const commandPath = normalizeOptionalText$
|
|
5783
|
+
const commandPath = normalizeOptionalText$47(env?.[SPACE_ACTION_TOOL_COMMAND_PATH_ENV]);
|
|
5705
5784
|
if (!(commandPath && isAbsolute(commandPath) && basename(commandPath) === command)) throw new Error("OpenMeld cannot start the dispatch Space Action tool because its dispatch-owned CLI path is invalid.");
|
|
5706
5785
|
return {
|
|
5707
5786
|
args: [
|
|
@@ -5712,7 +5791,7 @@ function resolveDispatchSpaceActionMcpServer(env) {
|
|
|
5712
5791
|
command,
|
|
5713
5792
|
commandPath,
|
|
5714
5793
|
env: Object.fromEntries(FORWARDED_ENV_NAMES.flatMap((name) => {
|
|
5715
|
-
const value = normalizeOptionalText$
|
|
5794
|
+
const value = normalizeOptionalText$47(env?.[name]);
|
|
5716
5795
|
return value ? [[name, value]] : [];
|
|
5717
5796
|
})),
|
|
5718
5797
|
id: OPENMELD_SPACE_ACTION_MCP_SERVER_ID,
|
|
@@ -5735,7 +5814,7 @@ function buildAcpDispatchSpaceActionMcpServers(env) {
|
|
|
5735
5814
|
name: config.id
|
|
5736
5815
|
}];
|
|
5737
5816
|
}
|
|
5738
|
-
function normalizeOptionalText$
|
|
5817
|
+
function normalizeOptionalText$47(value) {
|
|
5739
5818
|
const normalized = String(value ?? "").trim();
|
|
5740
5819
|
return normalized.length > 0 ? normalized : null;
|
|
5741
5820
|
}
|
|
@@ -5781,9 +5860,9 @@ const buildProviderExitError = (input) => {
|
|
|
5781
5860
|
};
|
|
5782
5861
|
};
|
|
5783
5862
|
const hasVisibleText = (value) => {
|
|
5784
|
-
return normalizeOptionalText$
|
|
5863
|
+
return normalizeOptionalText$46(value) !== null;
|
|
5785
5864
|
};
|
|
5786
|
-
const normalizeOptionalText$
|
|
5865
|
+
const normalizeOptionalText$46 = (value) => {
|
|
5787
5866
|
if (typeof value !== "string") return null;
|
|
5788
5867
|
const normalized = value.trim();
|
|
5789
5868
|
return normalized.length > 0 ? normalized : null;
|
|
@@ -5820,6 +5899,11 @@ function readRuntimePermissionDenialDetails(value) {
|
|
|
5820
5899
|
const normalizedMessage = normalizeRuntimePermissionMessage(value);
|
|
5821
5900
|
if (!normalizedMessage) return null;
|
|
5822
5901
|
const lowered = normalizedMessage.toLowerCase();
|
|
5902
|
+
if (isAntigravityPermissionDenial(lowered)) return {
|
|
5903
|
+
normalizedMessage,
|
|
5904
|
+
permissionKind: readAntigravityPermissionKind(lowered),
|
|
5905
|
+
source: "antigravity"
|
|
5906
|
+
};
|
|
5823
5907
|
if (isOpenCodePermissionDenial(lowered)) return {
|
|
5824
5908
|
normalizedMessage,
|
|
5825
5909
|
permissionKind: readOpenCodePermissionKind(normalizedMessage),
|
|
@@ -5842,6 +5926,14 @@ function readRuntimePermissionDenialDetails(value) {
|
|
|
5842
5926
|
};
|
|
5843
5927
|
return null;
|
|
5844
5928
|
}
|
|
5929
|
+
function isAntigravityPermissionDenial(value) {
|
|
5930
|
+
return value.includes("permission check failed") || value.includes("user denied permission to run command") || value.includes("tool required the") && value.includes("permission") && value.includes("auto-denied");
|
|
5931
|
+
}
|
|
5932
|
+
function readAntigravityPermissionKind(value) {
|
|
5933
|
+
if (value.includes("command")) return "command";
|
|
5934
|
+
if (value.includes("mcp")) return "mcp";
|
|
5935
|
+
return "tool_use";
|
|
5936
|
+
}
|
|
5845
5937
|
function normalizeRuntimePermissionMessage(value) {
|
|
5846
5938
|
const normalized = String(value ?? "").replace(ANSI_ESCAPE_RE, "").trim();
|
|
5847
5939
|
return normalized.length > 0 ? normalized : null;
|
|
@@ -5963,13 +6055,13 @@ var AdapterRepairConversationError = class extends Error {
|
|
|
5963
6055
|
};
|
|
5964
6056
|
const resolveRequiredRepairConversationId = (input) => {
|
|
5965
6057
|
if (input.policy !== "require_canonical" || input.request.executionMode !== "repair") return null;
|
|
5966
|
-
const canonicalConversationId = normalizeOptionalText$
|
|
6058
|
+
const canonicalConversationId = normalizeOptionalText$45(input.invokeRequest.agentControllerConversationId);
|
|
5967
6059
|
if (!canonicalConversationId) throw new AdapterRepairConversationMissingError();
|
|
5968
6060
|
return canonicalConversationId;
|
|
5969
6061
|
};
|
|
5970
6062
|
const requireCanonicalRepairConversation = (input) => {
|
|
5971
6063
|
if (!input.canonicalConversationId) return input.contextDelta;
|
|
5972
|
-
const observedConversationId = normalizeOptionalText$
|
|
6064
|
+
const observedConversationId = normalizeOptionalText$45(input.contextDelta?.agentControllerConversationId);
|
|
5973
6065
|
if (input.contextDelta?.refreshed === true || observedConversationId !== input.canonicalConversationId) throw new AdapterRepairConversationError();
|
|
5974
6066
|
return input.contextDelta;
|
|
5975
6067
|
};
|
|
@@ -6354,13 +6446,13 @@ const buildDefaultInvokeRequest = (input) => {
|
|
|
6354
6446
|
agentControllerConversationId: input.request.agentControllerConversationId,
|
|
6355
6447
|
bridgeSpec: input.bridgeSpec,
|
|
6356
6448
|
agentControllerConversation: input.request.agentControllerConversation
|
|
6357
|
-
}) : normalizeOptionalText$
|
|
6449
|
+
}) : normalizeOptionalText$45(input.request.agentControllerConversationId);
|
|
6358
6450
|
return {
|
|
6359
6451
|
...input.request,
|
|
6360
6452
|
agentControllerConversationId
|
|
6361
6453
|
};
|
|
6362
6454
|
};
|
|
6363
|
-
const normalizeOptionalText$
|
|
6455
|
+
const normalizeOptionalText$45 = (value) => {
|
|
6364
6456
|
if (typeof value !== "string") return null;
|
|
6365
6457
|
const normalized = value.trim();
|
|
6366
6458
|
return normalized.length > 0 ? normalized : null;
|
|
@@ -7616,7 +7708,7 @@ const removeConversationExecutionState = (input) => {
|
|
|
7616
7708
|
return nextState;
|
|
7617
7709
|
};
|
|
7618
7710
|
const seedLegacyAgentContext = (input) => {
|
|
7619
|
-
const normalizedLegacyAgentControllerConversationId = normalizeOptionalText$
|
|
7711
|
+
const normalizedLegacyAgentControllerConversationId = normalizeOptionalText$44(input.legacyAgentControllerConversationId);
|
|
7620
7712
|
if (!normalizedLegacyAgentControllerConversationId) return input.state;
|
|
7621
7713
|
if (input.state.agentContextByLookupKey[input.agentContextLookupKey]) return input.state;
|
|
7622
7714
|
return upsertAgentContext({
|
|
@@ -7636,7 +7728,7 @@ const seedLegacyAgentContext = (input) => {
|
|
|
7636
7728
|
});
|
|
7637
7729
|
};
|
|
7638
7730
|
const commitResolvedAgentContext = (input) => {
|
|
7639
|
-
const normalizedAgentControllerConversationId = normalizeOptionalText$
|
|
7731
|
+
const normalizedAgentControllerConversationId = normalizeOptionalText$44(input.agentControllerConversationId);
|
|
7640
7732
|
if (!normalizedAgentControllerConversationId) return input.state;
|
|
7641
7733
|
const existing = input.state.agentContextByLookupKey[input.agentContextLookupKey] ?? null;
|
|
7642
7734
|
return upsertAgentContext({
|
|
@@ -7674,7 +7766,7 @@ const appendAgentContextRotationRecord = (input) => {
|
|
|
7674
7766
|
nextState.updatedAtMs = Date.now();
|
|
7675
7767
|
return nextState;
|
|
7676
7768
|
};
|
|
7677
|
-
function normalizeOptionalText$
|
|
7769
|
+
function normalizeOptionalText$44(value) {
|
|
7678
7770
|
if (typeof value !== "string") return null;
|
|
7679
7771
|
const normalized = value.trim();
|
|
7680
7772
|
return normalized.length > 0 ? normalized : null;
|
|
@@ -8157,6 +8249,10 @@ const shouldCommitAgentContextLifecycle = (input) => {
|
|
|
8157
8249
|
if ("routeFailure" in input.dispatchResult) return input.dispatchResult.routeFailure === void 0;
|
|
8158
8250
|
return true;
|
|
8159
8251
|
};
|
|
8252
|
+
const shouldRetainResolvedLedgerContext = (input) => {
|
|
8253
|
+
if (isRepairExecutionMode(input.executionMode)) return false;
|
|
8254
|
+
return input.agentContextOverride === void 0 || input.agentContextOverride.agentControllerConversationId === (input.agentContextResolution?.resolvedAgentControllerConversationId ?? null);
|
|
8255
|
+
};
|
|
8160
8256
|
const resolveCommittedAgentContextResolution = (input) => {
|
|
8161
8257
|
if (!input.agentContextResolution) return null;
|
|
8162
8258
|
if (!shouldCommitAgentContextLifecycle({
|
|
@@ -8466,18 +8562,23 @@ const runRuntimeTask = async (input) => {
|
|
|
8466
8562
|
} } : {},
|
|
8467
8563
|
task: input.task
|
|
8468
8564
|
});
|
|
8469
|
-
const
|
|
8565
|
+
const retainResolvedLedgerContext = shouldRetainResolvedLedgerContext({
|
|
8566
|
+
executionMode: input.task.executionMode,
|
|
8567
|
+
agentContextOverride: input.agentContextOverride,
|
|
8568
|
+
agentContextResolution
|
|
8569
|
+
});
|
|
8570
|
+
const committedAgentContextResolution = retainResolvedLedgerContext ? resolveCommittedAgentContextResolution({
|
|
8470
8571
|
deduped,
|
|
8471
8572
|
dispatchResult,
|
|
8472
8573
|
agentContextResolution
|
|
8473
|
-
});
|
|
8474
|
-
const postDispatchAgentContext =
|
|
8574
|
+
}) : null;
|
|
8575
|
+
const postDispatchAgentContext = retainResolvedLedgerContext ? resolvePostDispatchAgentContextInput({
|
|
8475
8576
|
committedAgentContextResolution,
|
|
8476
8577
|
dispatchResult,
|
|
8477
8578
|
nowMs,
|
|
8478
8579
|
route: input.route,
|
|
8479
8580
|
task: input.task
|
|
8480
|
-
});
|
|
8581
|
+
}) : null;
|
|
8481
8582
|
const runtimeTaskOutcome = resolveRuntimeTaskOutcomeResult({
|
|
8482
8583
|
agentId: input.task.agentId,
|
|
8483
8584
|
attemptId: input.task.attemptId,
|
|
@@ -8573,6 +8674,761 @@ function emitStructuredReconcileEvidence(eventName, payload) {
|
|
|
8573
8674
|
});
|
|
8574
8675
|
}
|
|
8575
8676
|
//#endregion
|
|
8677
|
+
//#region ../../runtime/adapters/antigravity/dist/config/antigravity-runtime-config.js
|
|
8678
|
+
const DEFAULT_ANTIGRAVITY_COMMAND = "agy";
|
|
8679
|
+
async function resolveInstalledAntigravityLaunchCandidates(input) {
|
|
8680
|
+
const configuredCommand = normalizeOptionalText$43(process.env.OPENMELD_DAEMON_RUNTIME_ANTIGRAVITY_BIN);
|
|
8681
|
+
const installed = await resolveInstalledNodeScriptLaunchCandidates({
|
|
8682
|
+
additionalCommandDirectories: [join(resolveHome$1(), ".local", "bin")],
|
|
8683
|
+
commandName: DEFAULT_ANTIGRAVITY_COMMAND,
|
|
8684
|
+
configuredCommand,
|
|
8685
|
+
displayName: "Antigravity CLI",
|
|
8686
|
+
preferredLaunchContract: input?.preferredLaunchContract
|
|
8687
|
+
});
|
|
8688
|
+
if (!installed.ok) return installed;
|
|
8689
|
+
const candidates = await resolveLaunchCandidatesAfterVerification({
|
|
8690
|
+
candidates: installed.candidates,
|
|
8691
|
+
verify: async (candidate) => await verifyAntigravityLaunchContract({
|
|
8692
|
+
launchContract: candidate.launchContract,
|
|
8693
|
+
timeoutMs: input?.timeoutMs
|
|
8694
|
+
})
|
|
8695
|
+
});
|
|
8696
|
+
if (candidates.length === 0) return {
|
|
8697
|
+
errorMessage: "Antigravity CLI is installed, but OpenMeld can't start it on this device.",
|
|
8698
|
+
ok: false,
|
|
8699
|
+
reason: "not_launchable"
|
|
8700
|
+
};
|
|
8701
|
+
return {
|
|
8702
|
+
candidates,
|
|
8703
|
+
ok: true
|
|
8704
|
+
};
|
|
8705
|
+
}
|
|
8706
|
+
async function verifyAntigravityLaunchContract(input) {
|
|
8707
|
+
return await verifyCliLaunchContract({
|
|
8708
|
+
cwd: input.cwd ?? process.cwd(),
|
|
8709
|
+
displayName: "Antigravity CLI",
|
|
8710
|
+
env: {},
|
|
8711
|
+
launchContract: input.launchContract,
|
|
8712
|
+
probeArgs: ["--version"],
|
|
8713
|
+
timeoutMs: input.timeoutMs ?? 15e3
|
|
8714
|
+
});
|
|
8715
|
+
}
|
|
8716
|
+
function resolveHome$1() {
|
|
8717
|
+
return normalizeOptionalText$43(process.env.HOME) ?? homedir();
|
|
8718
|
+
}
|
|
8719
|
+
function normalizeOptionalText$43(value) {
|
|
8720
|
+
const normalized = String(value ?? "").trim();
|
|
8721
|
+
return normalized.length > 0 ? normalized : null;
|
|
8722
|
+
}
|
|
8723
|
+
//#endregion
|
|
8724
|
+
//#region ../../runtime/adapters/antigravity/dist/output/antigravity-output-parser.js
|
|
8725
|
+
function parseAntigravityOutputLine(line) {
|
|
8726
|
+
let value;
|
|
8727
|
+
try {
|
|
8728
|
+
value = JSON.parse(line);
|
|
8729
|
+
} catch {
|
|
8730
|
+
return null;
|
|
8731
|
+
}
|
|
8732
|
+
const record = toRecord$14(value);
|
|
8733
|
+
if (record?.event === "init") {
|
|
8734
|
+
const init = toRecord$14(record.init);
|
|
8735
|
+
const conversationId = readText(record.conversation_id);
|
|
8736
|
+
if (!(init && conversationId)) return null;
|
|
8737
|
+
return {
|
|
8738
|
+
event: "init",
|
|
8739
|
+
conversationId
|
|
8740
|
+
};
|
|
8741
|
+
}
|
|
8742
|
+
if (record?.event === "step_update") {
|
|
8743
|
+
const step = toRecord$14(record.step_update);
|
|
8744
|
+
const conversationId = readText(step?.conversation_id);
|
|
8745
|
+
const state = step?.state;
|
|
8746
|
+
const stepIndex = step?.step_index;
|
|
8747
|
+
const stepType = readText(step?.step_type);
|
|
8748
|
+
if (!conversationId || state !== "ACTIVE" && state !== "DONE" && state !== "ERROR" || typeof stepIndex !== "number" || !Number.isInteger(stepIndex) || !stepType) return null;
|
|
8749
|
+
const toolInfo = toRecord$14(step?.tool_info);
|
|
8750
|
+
const toolError = toRecord$14(toolInfo?.error);
|
|
8751
|
+
return {
|
|
8752
|
+
conversationId,
|
|
8753
|
+
event: "step_update",
|
|
8754
|
+
state,
|
|
8755
|
+
stepIndex,
|
|
8756
|
+
stepType,
|
|
8757
|
+
textDelta: readTextDelta(step?.text_delta),
|
|
8758
|
+
toolError: readText(toolError?.message),
|
|
8759
|
+
toolInput: toolInfo?.parameters,
|
|
8760
|
+
toolName: readText(step?.tool_name) ?? readText(toolInfo?.name)
|
|
8761
|
+
};
|
|
8762
|
+
}
|
|
8763
|
+
if (record?.event === "result") {
|
|
8764
|
+
const result = toRecord$14(record.result);
|
|
8765
|
+
const conversationId = readText(result?.conversation_id) ?? "";
|
|
8766
|
+
const status = readText(result?.status);
|
|
8767
|
+
if (!(result && status)) return null;
|
|
8768
|
+
return {
|
|
8769
|
+
conversationId,
|
|
8770
|
+
error: readText(result.error),
|
|
8771
|
+
event: "result",
|
|
8772
|
+
response: typeof result.response === "string" ? result.response : "",
|
|
8773
|
+
status,
|
|
8774
|
+
structuredOutput: result.structured_output,
|
|
8775
|
+
usage: parseTokenUsage(result.usage)
|
|
8776
|
+
};
|
|
8777
|
+
}
|
|
8778
|
+
return null;
|
|
8779
|
+
}
|
|
8780
|
+
function parseTokenUsage(value) {
|
|
8781
|
+
const usage = toRecord$14(value);
|
|
8782
|
+
if (!usage) return null;
|
|
8783
|
+
const inputTokens = readNonNegativeNumber(usage.input_tokens);
|
|
8784
|
+
const outputTokens = readNonNegativeNumber(usage.output_tokens);
|
|
8785
|
+
const thinkingTokens = readNonNegativeNumber(usage.thinking_tokens);
|
|
8786
|
+
const cacheReadTokens = readNonNegativeNumber(usage.cache_read_tokens);
|
|
8787
|
+
const totalTokens = readNonNegativeNumber(usage.total_tokens);
|
|
8788
|
+
if (inputTokens === null || outputTokens === null || thinkingTokens === null || cacheReadTokens === null || totalTokens === null) return null;
|
|
8789
|
+
return {
|
|
8790
|
+
cacheReadTokens,
|
|
8791
|
+
inputTokens,
|
|
8792
|
+
outputTokens,
|
|
8793
|
+
thinkingTokens,
|
|
8794
|
+
totalTokens
|
|
8795
|
+
};
|
|
8796
|
+
}
|
|
8797
|
+
function readNonNegativeNumber(value) {
|
|
8798
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : null;
|
|
8799
|
+
}
|
|
8800
|
+
function readText(value) {
|
|
8801
|
+
return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
|
|
8802
|
+
}
|
|
8803
|
+
function readTextDelta(value) {
|
|
8804
|
+
return typeof value === "string" && value.length > 0 ? value : null;
|
|
8805
|
+
}
|
|
8806
|
+
function toRecord$14(value) {
|
|
8807
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
8808
|
+
}
|
|
8809
|
+
//#endregion
|
|
8810
|
+
//#region ../../runtime/adapters/antigravity/dist/transport/antigravity-cli-transport.js
|
|
8811
|
+
const AUTH_FAILURE_PATTERN = /auth(?:entication)? required|not signed in|sign in/iu;
|
|
8812
|
+
const CONTEXT_FAILURE_PATTERN = /conversation[^\n]*(?:not found|missing|unknown|does not exist)/iu;
|
|
8813
|
+
var AntigravityCliTransportError = class extends Error {
|
|
8814
|
+
code;
|
|
8815
|
+
errorType;
|
|
8816
|
+
originalError;
|
|
8817
|
+
telemetry;
|
|
8818
|
+
constructor(input) {
|
|
8819
|
+
super(input.message);
|
|
8820
|
+
this.name = "AntigravityCliTransportError";
|
|
8821
|
+
this.code = input.code;
|
|
8822
|
+
this.errorType = input.errorType;
|
|
8823
|
+
this.originalError = input.originalError;
|
|
8824
|
+
this.telemetry = input.telemetry;
|
|
8825
|
+
}
|
|
8826
|
+
};
|
|
8827
|
+
async function invokeAntigravityCliTransport(input) {
|
|
8828
|
+
const prompt = normalizeOptionalText$42(input.prompt);
|
|
8829
|
+
if (!prompt) throw new AntigravityCliTransportError({
|
|
8830
|
+
code: "schema.invalid",
|
|
8831
|
+
errorType: "config",
|
|
8832
|
+
message: "schema.invalid: prompt is required"
|
|
8833
|
+
});
|
|
8834
|
+
const invocation = buildCliLaunchInvocation({
|
|
8835
|
+
args: buildAntigravityArgs({
|
|
8836
|
+
agentControllerPermissionMode: input.agentControllerPermissionMode,
|
|
8837
|
+
conversationPolicy: input.conversationPolicy,
|
|
8838
|
+
jsonSchema: input.jsonSchema,
|
|
8839
|
+
prompt,
|
|
8840
|
+
sessionId: normalizeOptionalText$42(input.sessionId)
|
|
8841
|
+
}),
|
|
8842
|
+
launchContract: input.launchContract
|
|
8843
|
+
});
|
|
8844
|
+
const invokedAtMs = Date.now();
|
|
8845
|
+
let firstOutputAtMs = null;
|
|
8846
|
+
let conversationId = normalizeOptionalText$42(input.sessionId);
|
|
8847
|
+
const terminal = { result: null };
|
|
8848
|
+
let malformedOutput = false;
|
|
8849
|
+
const providerErrorMessages = [];
|
|
8850
|
+
let previewText = "";
|
|
8851
|
+
let previewChain = Promise.resolve();
|
|
8852
|
+
const driverResult = await runCliDriver({
|
|
8853
|
+
allowNonZeroExit: true,
|
|
8854
|
+
args: invocation.args,
|
|
8855
|
+
bin: invocation.bin,
|
|
8856
|
+
cwd: input.workdir,
|
|
8857
|
+
env: input.env,
|
|
8858
|
+
onLifecycleEvent: input.onRuntimeEvent,
|
|
8859
|
+
onProcessControlEvent: input.onProcessControlEvent,
|
|
8860
|
+
onStderrLine: (lineEvent) => {
|
|
8861
|
+
const message = normalizeOptionalText$42(lineEvent.line);
|
|
8862
|
+
if (message) providerErrorMessages.push(message);
|
|
8863
|
+
},
|
|
8864
|
+
onStdoutLine: (lineEvent) => {
|
|
8865
|
+
const event = parseAntigravityOutputLine(lineEvent.line);
|
|
8866
|
+
if (!event) {
|
|
8867
|
+
malformedOutput = true;
|
|
8868
|
+
return;
|
|
8869
|
+
}
|
|
8870
|
+
conversationId = event.conversationId || conversationId;
|
|
8871
|
+
if (event.event === "step_update") {
|
|
8872
|
+
if (event.toolError) providerErrorMessages.push(event.toolError);
|
|
8873
|
+
if (event.stepType === "agent_response" && event.textDelta && !input.jsonSchema) {
|
|
8874
|
+
firstOutputAtMs ??= Date.now();
|
|
8875
|
+
previewText += event.textDelta;
|
|
8876
|
+
if (input.onPreview) {
|
|
8877
|
+
const previewSnapshot = previewText;
|
|
8878
|
+
previewChain = previewChain.then(() => Promise.resolve(input.onPreview?.({ text: previewSnapshot })).then(() => void 0));
|
|
8879
|
+
}
|
|
8880
|
+
}
|
|
8881
|
+
emitToolActivity(event, input.onRuntimeEvent);
|
|
8882
|
+
}
|
|
8883
|
+
if (event.event === "result") terminal.result = event;
|
|
8884
|
+
},
|
|
8885
|
+
timeoutMs: input.timeoutMs
|
|
8886
|
+
});
|
|
8887
|
+
await previewChain;
|
|
8888
|
+
const telemetry = buildTelemetry({
|
|
8889
|
+
driverResult,
|
|
8890
|
+
firstOutputAtMs,
|
|
8891
|
+
invokedAtMs,
|
|
8892
|
+
resumedContext: input.sessionId !== null
|
|
8893
|
+
});
|
|
8894
|
+
if (malformedOutput) throw new AntigravityCliTransportError({
|
|
8895
|
+
code: "runtime.output.invalid",
|
|
8896
|
+
errorType: "adapter",
|
|
8897
|
+
message: "runtime.output.invalid: Antigravity CLI returned an invalid event stream",
|
|
8898
|
+
telemetry
|
|
8899
|
+
});
|
|
8900
|
+
const terminalResult = terminal.result;
|
|
8901
|
+
if (!terminalResult) throw classifyAntigravityFailure({
|
|
8902
|
+
exitCode: driverResult.exitCode,
|
|
8903
|
+
signal: driverResult.signal,
|
|
8904
|
+
stderr: driverResult.stderrText,
|
|
8905
|
+
telemetry
|
|
8906
|
+
});
|
|
8907
|
+
if (terminalResult.status !== "SUCCESS" || driverResult.exitCode !== 0 || driverResult.signal !== null) throw classifyAntigravityFailure({
|
|
8908
|
+
exitCode: driverResult.exitCode,
|
|
8909
|
+
providerError: terminalResult.error,
|
|
8910
|
+
signal: driverResult.signal,
|
|
8911
|
+
stderr: driverResult.stderrText,
|
|
8912
|
+
telemetry
|
|
8913
|
+
});
|
|
8914
|
+
const output = normalizeOptionalText$42(terminalResult.response);
|
|
8915
|
+
const resolvedSessionId = normalizeOptionalText$42(terminalResult.conversationId) ?? conversationId;
|
|
8916
|
+
if (!(output && resolvedSessionId)) {
|
|
8917
|
+
const permissionFailure = classifyAntigravityPermissionFailure(providerErrorMessages);
|
|
8918
|
+
if (permissionFailure) throw new AntigravityCliTransportError({
|
|
8919
|
+
...permissionFailure,
|
|
8920
|
+
telemetry
|
|
8921
|
+
});
|
|
8922
|
+
throw new AntigravityCliTransportError({
|
|
8923
|
+
code: output ? "context.missing" : "runtime.output.empty",
|
|
8924
|
+
errorType: "adapter",
|
|
8925
|
+
message: output ? "context.missing: Antigravity CLI completed without a conversation ID" : "runtime.output.empty: Antigravity CLI completed without agent output",
|
|
8926
|
+
telemetry
|
|
8927
|
+
});
|
|
8928
|
+
}
|
|
8929
|
+
return {
|
|
8930
|
+
output,
|
|
8931
|
+
sessionId: resolvedSessionId,
|
|
8932
|
+
structuredOutput: terminalResult.structuredOutput,
|
|
8933
|
+
telemetry
|
|
8934
|
+
};
|
|
8935
|
+
}
|
|
8936
|
+
function classifyAntigravityPermissionFailure(messages) {
|
|
8937
|
+
for (const message of messages) {
|
|
8938
|
+
const classification = classifyRuntimePermissionDenialMessage({
|
|
8939
|
+
message,
|
|
8940
|
+
source: "antigravity"
|
|
8941
|
+
});
|
|
8942
|
+
if (classification) return {
|
|
8943
|
+
code: classification.code,
|
|
8944
|
+
errorType: classification.errorType,
|
|
8945
|
+
message: classification.message,
|
|
8946
|
+
originalError: classification.details.normalizedMessage
|
|
8947
|
+
};
|
|
8948
|
+
}
|
|
8949
|
+
return null;
|
|
8950
|
+
}
|
|
8951
|
+
function buildAntigravityArgs(input) {
|
|
8952
|
+
const args = [
|
|
8953
|
+
"--print",
|
|
8954
|
+
input.prompt,
|
|
8955
|
+
"--output-format",
|
|
8956
|
+
"stream-json",
|
|
8957
|
+
"--print-timeout",
|
|
8958
|
+
"0"
|
|
8959
|
+
];
|
|
8960
|
+
const jsonSchema = normalizeOptionalText$42(input.jsonSchema);
|
|
8961
|
+
if (jsonSchema) args.push("--json-schema", jsonSchema);
|
|
8962
|
+
if (input.sessionId) args.push("--conversation", input.sessionId);
|
|
8963
|
+
const model = normalizeOptionalText$42(input.conversationPolicy?.model);
|
|
8964
|
+
if (model) args.push("--model", model);
|
|
8965
|
+
const effort = normalizeOptionalText$42(input.conversationPolicy?.reasoningLevel);
|
|
8966
|
+
if (effort) {
|
|
8967
|
+
if (!ANTIGRAVITY_EFFORTS.has(effort)) throw new AntigravityCliTransportError({
|
|
8968
|
+
code: "model.reasoning_level.unsupported",
|
|
8969
|
+
errorType: "config",
|
|
8970
|
+
message: `model.reasoning_level.unsupported: Antigravity CLI does not support reasoning level '${effort}'`
|
|
8971
|
+
});
|
|
8972
|
+
args.push("--effort", effort);
|
|
8973
|
+
}
|
|
8974
|
+
const permissionMode = input.agentControllerPermissionMode;
|
|
8975
|
+
if (permissionMode === "antigravity:acceptEdits") args.push("--mode", "accept-edits");
|
|
8976
|
+
else if (permissionMode === "antigravity:plan") args.push("--mode", "plan");
|
|
8977
|
+
else if (permissionMode === "antigravity:bypassPermissions") args.push("--dangerously-skip-permissions");
|
|
8978
|
+
else if (permissionMode && permissionMode !== "antigravity:default") throw new AntigravityCliTransportError({
|
|
8979
|
+
code: "permission.mode.unsupported",
|
|
8980
|
+
errorType: "config",
|
|
8981
|
+
message: `permission.mode.unsupported: Antigravity cannot apply '${permissionMode}'`
|
|
8982
|
+
});
|
|
8983
|
+
else if (input.conversationPolicy?.collaborationMode === "plan") args.push("--mode", "plan");
|
|
8984
|
+
return args;
|
|
8985
|
+
}
|
|
8986
|
+
const ANTIGRAVITY_EFFORTS = /* @__PURE__ */ new Set([
|
|
8987
|
+
"low",
|
|
8988
|
+
"medium",
|
|
8989
|
+
"high"
|
|
8990
|
+
]);
|
|
8991
|
+
function emitToolActivity(event, callback) {
|
|
8992
|
+
if (!(callback && event.stepType === "tool" && event.toolName)) return;
|
|
8993
|
+
const work = resolveAdapterToolWorkActivity(event.toolName, event.toolInput);
|
|
8994
|
+
let state;
|
|
8995
|
+
if (event.state === "ACTIVE") state = "input-available";
|
|
8996
|
+
else if (event.toolError) state = "output-error";
|
|
8997
|
+
else state = "output-available";
|
|
8998
|
+
callback({
|
|
8999
|
+
phase: "tool_activity",
|
|
9000
|
+
state,
|
|
9001
|
+
toolCallId: `antigravity-step-${String(event.stepIndex)}`,
|
|
9002
|
+
toolName: resolveAdapterToolActivityName(event.toolName),
|
|
9003
|
+
tsMs: Date.now(),
|
|
9004
|
+
...work ? { work } : {}
|
|
9005
|
+
});
|
|
9006
|
+
}
|
|
9007
|
+
function buildTelemetry(input) {
|
|
9008
|
+
const lifecycle = input.driverResult.lifecycle;
|
|
9009
|
+
return {
|
|
9010
|
+
completedAtMs: Date.now(),
|
|
9011
|
+
...lifecycle.exitCode === null ? {} : { exitCode: lifecycle.exitCode },
|
|
9012
|
+
...lifecycle.exitObservedAtMs === null ? {} : { exitObservedAtMs: lifecycle.exitObservedAtMs },
|
|
9013
|
+
...lifecycle.exitSignal === null ? {} : { exitSignal: lifecycle.exitSignal },
|
|
9014
|
+
...input.firstOutputAtMs === null ? {} : { firstOutputAtMs: input.firstOutputAtMs },
|
|
9015
|
+
...lifecycle.firstStderrAtMs === null ? {} : { firstStderrAtMs: lifecycle.firstStderrAtMs },
|
|
9016
|
+
...lifecycle.firstStdoutAtMs === null ? {} : { firstStdoutAtMs: lifecycle.firstStdoutAtMs },
|
|
9017
|
+
invokedAtMs: input.invokedAtMs,
|
|
9018
|
+
...lifecycle.processId === null ? {} : { processId: lifecycle.processId },
|
|
9019
|
+
...lifecycle.processSpawnedAtMs === null ? {} : { processSpawnedAtMs: lifecycle.processSpawnedAtMs },
|
|
9020
|
+
resumedContext: input.resumedContext,
|
|
9021
|
+
...lifecycle.stdinClosedAtMs === null ? {} : { stdinClosedAtMs: lifecycle.stdinClosedAtMs },
|
|
9022
|
+
streamingMode: "stream"
|
|
9023
|
+
};
|
|
9024
|
+
}
|
|
9025
|
+
function classifyAntigravityFailure(input) {
|
|
9026
|
+
const providerMessage = normalizeOptionalText$42(input.providerError) ?? normalizeOptionalText$42(input.stderr) ?? (input.signal ? `Antigravity CLI was interrupted by ${input.signal}.` : `Antigravity CLI exited with code ${String(input.exitCode)}.`);
|
|
9027
|
+
const authFailure = AUTH_FAILURE_PATTERN.test(providerMessage);
|
|
9028
|
+
const contextFailure = CONTEXT_FAILURE_PATTERN.test(providerMessage);
|
|
9029
|
+
let code = "provider_exit_error";
|
|
9030
|
+
if (authFailure) code = "auth.required";
|
|
9031
|
+
else if (contextFailure) code = "context_not_found";
|
|
9032
|
+
else if (input.signal) code = "runtime.interrupted";
|
|
9033
|
+
return new AntigravityCliTransportError({
|
|
9034
|
+
code,
|
|
9035
|
+
errorType: authFailure ? "auth" : "adapter",
|
|
9036
|
+
message: `${code}: ${providerMessage}`,
|
|
9037
|
+
telemetry: input.telemetry
|
|
9038
|
+
});
|
|
9039
|
+
}
|
|
9040
|
+
function normalizeOptionalText$42(value) {
|
|
9041
|
+
const normalized = String(value ?? "").trim();
|
|
9042
|
+
return normalized.length > 0 ? normalized : null;
|
|
9043
|
+
}
|
|
9044
|
+
//#endregion
|
|
9045
|
+
//#region ../../runtime/adapters/antigravity/dist/transport/antigravity-space-action.js
|
|
9046
|
+
const FINAL_STATUSES = /* @__PURE__ */ new Set([
|
|
9047
|
+
"done",
|
|
9048
|
+
"blocked",
|
|
9049
|
+
"needs_input",
|
|
9050
|
+
"handoff"
|
|
9051
|
+
]);
|
|
9052
|
+
const ANTIGRAVITY_SPACE_ACTION_JSON_SCHEMA = JSON.stringify({
|
|
9053
|
+
additionalProperties: false,
|
|
9054
|
+
properties: {
|
|
9055
|
+
action: {
|
|
9056
|
+
enum: [
|
|
9057
|
+
"reply",
|
|
9058
|
+
"status",
|
|
9059
|
+
"silent"
|
|
9060
|
+
],
|
|
9061
|
+
type: "string"
|
|
9062
|
+
},
|
|
9063
|
+
mentionTargets: {
|
|
9064
|
+
items: { type: "string" },
|
|
9065
|
+
type: "array"
|
|
9066
|
+
},
|
|
9067
|
+
referenceTargets: {
|
|
9068
|
+
items: { type: "string" },
|
|
9069
|
+
type: "array"
|
|
9070
|
+
},
|
|
9071
|
+
status: {
|
|
9072
|
+
enum: [
|
|
9073
|
+
"none",
|
|
9074
|
+
"done",
|
|
9075
|
+
"blocked",
|
|
9076
|
+
"needs_input",
|
|
9077
|
+
"handoff"
|
|
9078
|
+
],
|
|
9079
|
+
type: "string"
|
|
9080
|
+
},
|
|
9081
|
+
text: {
|
|
9082
|
+
minLength: 1,
|
|
9083
|
+
type: "string"
|
|
9084
|
+
},
|
|
9085
|
+
wakeTargets: {
|
|
9086
|
+
items: { type: "string" },
|
|
9087
|
+
type: "array"
|
|
9088
|
+
}
|
|
9089
|
+
},
|
|
9090
|
+
required: [
|
|
9091
|
+
"action",
|
|
9092
|
+
"text",
|
|
9093
|
+
"status",
|
|
9094
|
+
"wakeTargets",
|
|
9095
|
+
"referenceTargets",
|
|
9096
|
+
"mentionTargets"
|
|
9097
|
+
],
|
|
9098
|
+
type: "object"
|
|
9099
|
+
});
|
|
9100
|
+
async function withAntigravityDispatchSpaceAction(input) {
|
|
9101
|
+
const actionServer = resolveDispatchSpaceActionMcpServer(input.env);
|
|
9102
|
+
if (!actionServer) return await input.run({
|
|
9103
|
+
prompt: input.prompt,
|
|
9104
|
+
jsonSchema: null
|
|
9105
|
+
});
|
|
9106
|
+
const result = await input.run({
|
|
9107
|
+
prompt: `${input.prompt}\n\n${buildSpaceActionInstructions(input.workdir)}`,
|
|
9108
|
+
jsonSchema: ANTIGRAVITY_SPACE_ACTION_JSON_SCHEMA
|
|
9109
|
+
});
|
|
9110
|
+
await recordStructuredSpaceAction({
|
|
9111
|
+
action: parseStructuredSpaceAction(result.structuredOutput),
|
|
9112
|
+
actionServer
|
|
9113
|
+
});
|
|
9114
|
+
return result;
|
|
9115
|
+
}
|
|
9116
|
+
function buildSpaceActionInstructions(workdir) {
|
|
9117
|
+
return [
|
|
9118
|
+
"OpenMeld Antigravity invocation contract:",
|
|
9119
|
+
`The working folder for this invocation is ${JSON.stringify(workdir)}. Resolve relative task paths there.`,
|
|
9120
|
+
"For this OpenMeld Wake, do not run a Space Action CLI command and do not inspect its environment variables.",
|
|
9121
|
+
"The structured outcome below is the complete reply/publication contract. Reading the OpenMeld CLI Skill is not required to reply; consult it only for additional OpenMeld operations requested by the user.",
|
|
9122
|
+
"If the request can be answered without tools, return the structured outcome immediately; do not inspect the workspace or run a command just to orient yourself.",
|
|
9123
|
+
"Complete the user's work under the normal Antigravity permission policy.",
|
|
9124
|
+
"At the end, return exactly one structured outcome using the required JSON schema: reply for a public message, status for a short final status, or silent when no public reply is appropriate.",
|
|
9125
|
+
"Put the public reply, status text, or silence reason in text.",
|
|
9126
|
+
"Use status=none unless action=status. Include only validated profile IDs from the provided target reference lists; otherwise leave all target arrays empty.",
|
|
9127
|
+
"OpenMeld will validate and record this outcome for the current dispatch."
|
|
9128
|
+
].join(" ");
|
|
9129
|
+
}
|
|
9130
|
+
function parseStructuredSpaceAction(value) {
|
|
9131
|
+
const record = toRecord$13(value);
|
|
9132
|
+
const action = record?.action;
|
|
9133
|
+
const status = record?.status;
|
|
9134
|
+
const text = normalizeRequiredText(record?.text);
|
|
9135
|
+
const wakeTargets = parseTargetIds(record?.wakeTargets);
|
|
9136
|
+
const referenceTargets = parseTargetIds(record?.referenceTargets);
|
|
9137
|
+
const mentionTargets = parseTargetIds(record?.mentionTargets);
|
|
9138
|
+
if (action !== "reply" && action !== "status" && action !== "silent" || status !== "none" && !FINAL_STATUSES.has(String(status)) || !text || wakeTargets === null || referenceTargets === null || mentionTargets === null) throw createSpaceActionError("Antigravity returned an invalid structured Space outcome.");
|
|
9139
|
+
if (action === "status" && !FINAL_STATUSES.has(String(status)) || action !== "status" && status !== "none" || action !== "reply" && (wakeTargets.length > 0 || referenceTargets.length > 0 || mentionTargets.length > 0)) throw createSpaceActionError("Antigravity returned an inconsistent structured Space outcome.");
|
|
9140
|
+
return {
|
|
9141
|
+
action,
|
|
9142
|
+
mentionTargets,
|
|
9143
|
+
referenceTargets,
|
|
9144
|
+
status,
|
|
9145
|
+
text,
|
|
9146
|
+
wakeTargets
|
|
9147
|
+
};
|
|
9148
|
+
}
|
|
9149
|
+
async function recordStructuredSpaceAction(input) {
|
|
9150
|
+
const baseArgs = input.actionServer.args.slice(0, -1);
|
|
9151
|
+
let args;
|
|
9152
|
+
let stdin = "";
|
|
9153
|
+
if (input.action.action === "reply") {
|
|
9154
|
+
args = [
|
|
9155
|
+
...baseArgs,
|
|
9156
|
+
"reply",
|
|
9157
|
+
"--message-file",
|
|
9158
|
+
"-"
|
|
9159
|
+
];
|
|
9160
|
+
stdin = input.action.text;
|
|
9161
|
+
appendTargetArgs(args, "--wake", input.action.wakeTargets);
|
|
9162
|
+
appendTargetArgs(args, "--reference", input.action.referenceTargets);
|
|
9163
|
+
appendTargetArgs(args, "--mention", input.action.mentionTargets);
|
|
9164
|
+
} else if (input.action.action === "status") args = [
|
|
9165
|
+
...baseArgs,
|
|
9166
|
+
"status",
|
|
9167
|
+
input.action.status,
|
|
9168
|
+
input.action.text
|
|
9169
|
+
];
|
|
9170
|
+
else args = [
|
|
9171
|
+
...baseArgs,
|
|
9172
|
+
"silent",
|
|
9173
|
+
"--reason",
|
|
9174
|
+
input.action.text
|
|
9175
|
+
];
|
|
9176
|
+
await runActionWriter({
|
|
9177
|
+
args,
|
|
9178
|
+
commandPath: input.actionServer.commandPath,
|
|
9179
|
+
env: input.actionServer.env,
|
|
9180
|
+
stdin
|
|
9181
|
+
});
|
|
9182
|
+
}
|
|
9183
|
+
function appendTargetArgs(args, option, values) {
|
|
9184
|
+
for (const value of values) args.push(option, value);
|
|
9185
|
+
}
|
|
9186
|
+
async function runActionWriter(input) {
|
|
9187
|
+
await new Promise((resolve, reject) => {
|
|
9188
|
+
const child = spawn(input.commandPath, [...input.args], {
|
|
9189
|
+
env: {
|
|
9190
|
+
...process.env,
|
|
9191
|
+
...input.env
|
|
9192
|
+
},
|
|
9193
|
+
stdio: [
|
|
9194
|
+
"pipe",
|
|
9195
|
+
"pipe",
|
|
9196
|
+
"pipe"
|
|
9197
|
+
]
|
|
9198
|
+
});
|
|
9199
|
+
let stderr = "";
|
|
9200
|
+
child.stderr.setEncoding("utf8");
|
|
9201
|
+
child.stderr.on("data", (chunk) => {
|
|
9202
|
+
stderr += chunk;
|
|
9203
|
+
});
|
|
9204
|
+
child.once("error", (error) => {
|
|
9205
|
+
reject(createSpaceActionError(error.message));
|
|
9206
|
+
});
|
|
9207
|
+
child.once("close", (code, signal) => {
|
|
9208
|
+
if (code === 0 && signal === null) {
|
|
9209
|
+
resolve();
|
|
9210
|
+
return;
|
|
9211
|
+
}
|
|
9212
|
+
reject(createSpaceActionError(normalizeRequiredText(stderr) ?? `The Space outcome writer exited with code ${String(code)}.`));
|
|
9213
|
+
});
|
|
9214
|
+
child.stdin.end(input.stdin);
|
|
9215
|
+
});
|
|
9216
|
+
}
|
|
9217
|
+
function createSpaceActionError(message) {
|
|
9218
|
+
return Object.assign(new Error(message), {
|
|
9219
|
+
code: "space.action.record_failed",
|
|
9220
|
+
errorType: "adapter"
|
|
9221
|
+
});
|
|
9222
|
+
}
|
|
9223
|
+
function parseTargetIds(value) {
|
|
9224
|
+
if (!Array.isArray(value)) return null;
|
|
9225
|
+
const values = value.map(normalizeRequiredText);
|
|
9226
|
+
if (values.some((item) => item === null)) return null;
|
|
9227
|
+
return values;
|
|
9228
|
+
}
|
|
9229
|
+
function normalizeRequiredText(value) {
|
|
9230
|
+
return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
|
|
9231
|
+
}
|
|
9232
|
+
function toRecord$13(value) {
|
|
9233
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
9234
|
+
}
|
|
9235
|
+
//#endregion
|
|
9236
|
+
//#region ../../runtime/adapters/antigravity/dist/usage/antigravity-usage-limits.js
|
|
9237
|
+
const LINE_BREAK_PATTERN = /\r?\n/u;
|
|
9238
|
+
const USAGE_LINE_PATTERN = /^([^\t]+)\tWeekly Limit Remaining\t(\d{1,3})%\t([^\t]+)$/u;
|
|
9239
|
+
function parseAntigravityUsageLimits(input) {
|
|
9240
|
+
const limits = input.output.split(LINE_BREAK_PATTERN).map((line) => parseUsageLine(line, input.observedAt)).filter((limit) => limit !== null);
|
|
9241
|
+
return limits.length > 0 ? limits : createUnavailableProviderUsageLimits(input.observedAt);
|
|
9242
|
+
}
|
|
9243
|
+
function parseUsageLine(line, observedAt) {
|
|
9244
|
+
const match = line.trim().match(USAGE_LINE_PATTERN);
|
|
9245
|
+
if (!match) return null;
|
|
9246
|
+
const [, rawLabel, rawRemainingPercent, rawResetsAt] = match;
|
|
9247
|
+
const remainingPercent = Number(rawRemainingPercent);
|
|
9248
|
+
const resetTime = Date.parse(rawResetsAt ?? "");
|
|
9249
|
+
if (!(rawLabel && Number.isFinite(remainingPercent)) || remainingPercent < 0 || remainingPercent > 100 || !Number.isFinite(resetTime)) return null;
|
|
9250
|
+
const label = rawLabel.trim();
|
|
9251
|
+
const providerId = label.toLowerCase().startsWith("gemini") ? "antigravity-gemini" : "antigravity-other";
|
|
9252
|
+
const usedPercent = 100 - remainingPercent;
|
|
9253
|
+
return {
|
|
9254
|
+
key: `${providerId}:weekly`,
|
|
9255
|
+
label: "Weekly usage",
|
|
9256
|
+
observedAt,
|
|
9257
|
+
provider: {
|
|
9258
|
+
displayName: label,
|
|
9259
|
+
id: providerId
|
|
9260
|
+
},
|
|
9261
|
+
resetsAt: new Date(resetTime).toISOString(),
|
|
9262
|
+
status: remainingPercent === 0 ? "exhausted" : "available",
|
|
9263
|
+
usedPercent
|
|
9264
|
+
};
|
|
9265
|
+
}
|
|
9266
|
+
//#endregion
|
|
9267
|
+
//#region ../../runtime/adapters/antigravity/dist/index.js
|
|
9268
|
+
const ANTIGRAVITY_CONVERSATION_BRIDGE_SPEC = resolveBuiltinAdapterConversationBridgeSpec("antigravity");
|
|
9269
|
+
function createAntigravityAdapter(options = {}) {
|
|
9270
|
+
const activeTasks = /* @__PURE__ */ new Map();
|
|
9271
|
+
const invoke = createDefaultAntigravityInvoke({
|
|
9272
|
+
activeTasks,
|
|
9273
|
+
options
|
|
9274
|
+
});
|
|
9275
|
+
const processInterruptSender = options.registerRuntimeProcess ? createProcessInterruptSender(activeTasks) : void 0;
|
|
9276
|
+
const controlShell = createSharedControlShell({
|
|
9277
|
+
gracefulTimeoutMs: options.gracefulTimeoutMs,
|
|
9278
|
+
sendCancel: options.sendCancel,
|
|
9279
|
+
sendInterrupt: options.sendInterrupt ?? processInterruptSender,
|
|
9280
|
+
waitForMs: options.waitForMs
|
|
9281
|
+
});
|
|
9282
|
+
const dispatch = createSharedDispatchShell({
|
|
9283
|
+
adapterId: "antigravity",
|
|
9284
|
+
bridgeSpec: ANTIGRAVITY_CONVERSATION_BRIDGE_SPEC,
|
|
9285
|
+
invoke: options.invoke,
|
|
9286
|
+
invokeByMode: options.invokeByMode,
|
|
9287
|
+
repairConversationPolicy: "require_canonical",
|
|
9288
|
+
resolveDefaultInvoke: () => invoke,
|
|
9289
|
+
runtimeOptions: options
|
|
9290
|
+
});
|
|
9291
|
+
return {
|
|
9292
|
+
adapterId: "antigravity",
|
|
9293
|
+
cancel: controlShell.cancel,
|
|
9294
|
+
dispatch,
|
|
9295
|
+
interrupt: controlShell.interrupt,
|
|
9296
|
+
verifyComputerFileAccessBoundary: () => Promise.resolve({
|
|
9297
|
+
reasonCode: "computer.file_access.controller_unsupported",
|
|
9298
|
+
supported: false
|
|
9299
|
+
})
|
|
9300
|
+
};
|
|
9301
|
+
}
|
|
9302
|
+
function createDefaultAntigravityInvoke(input) {
|
|
9303
|
+
return async (request) => {
|
|
9304
|
+
const task = {
|
|
9305
|
+
cancellationRequested: false,
|
|
9306
|
+
process: null
|
|
9307
|
+
};
|
|
9308
|
+
input.activeTasks.set(request.taskId, task);
|
|
9309
|
+
try {
|
|
9310
|
+
const launchContract = await resolveDispatchLaunchContract({
|
|
9311
|
+
antigravityBin: input.options.antigravityBin,
|
|
9312
|
+
inputLaunchContract: request.launchContract,
|
|
9313
|
+
optionLaunchContract: input.options.launchContract
|
|
9314
|
+
});
|
|
9315
|
+
if (task.cancellationRequested) throw new AntigravityCliTransportError({
|
|
9316
|
+
code: "runtime.cancelled_before_start",
|
|
9317
|
+
errorType: "adapter",
|
|
9318
|
+
message: "runtime.cancelled_before_start: Antigravity dispatch was canceled before launch"
|
|
9319
|
+
});
|
|
9320
|
+
const result = await invokeWithSingleContextHeal({
|
|
9321
|
+
contextId: normalizeOptionalText$41(request.agentControllerConversationId),
|
|
9322
|
+
contextLossPolicy: request.executionMode === "repair" ? "fail" : "rebuild",
|
|
9323
|
+
createRebuildFailedError: (error) => new AntigravityCliTransportError({
|
|
9324
|
+
code: "context.rebuild_failed",
|
|
9325
|
+
errorType: "adapter",
|
|
9326
|
+
message: `context.rebuild_failed: ${toErrorMessage$17(error)}`
|
|
9327
|
+
}),
|
|
9328
|
+
invokeOnce: async (sessionId) => {
|
|
9329
|
+
const transportResult = await withAntigravityDispatchSpaceAction({
|
|
9330
|
+
env: request.env,
|
|
9331
|
+
prompt: request.prompt,
|
|
9332
|
+
workdir: request.runtimeContext.providerRuntimeWorkingDirectory,
|
|
9333
|
+
run: async ({ prompt, jsonSchema }) => await invokeAntigravityCliTransport({
|
|
9334
|
+
agentControllerPermissionMode: request.agentControllerPermissionMode,
|
|
9335
|
+
conversationPolicy: request.conversationPolicy,
|
|
9336
|
+
env: request.env,
|
|
9337
|
+
jsonSchema,
|
|
9338
|
+
launchContract,
|
|
9339
|
+
onPreview: request.onPreview,
|
|
9340
|
+
onProcessControlEvent: (event) => {
|
|
9341
|
+
task.process = event.phase === "process_spawned" ? event : null;
|
|
9342
|
+
if (event.phase === "process_spawned" && task.cancellationRequested) signalProcess(event, "SIGINT");
|
|
9343
|
+
input.options.registerRuntimeProcess?.({
|
|
9344
|
+
...event,
|
|
9345
|
+
taskId: request.taskId
|
|
9346
|
+
});
|
|
9347
|
+
},
|
|
9348
|
+
onRuntimeEvent: request.onRuntimeEvent,
|
|
9349
|
+
prompt,
|
|
9350
|
+
sessionId,
|
|
9351
|
+
timeoutMs: request.timeoutMs ?? null,
|
|
9352
|
+
workdir: request.runtimeContext.providerRuntimeWorkingDirectory
|
|
9353
|
+
})
|
|
9354
|
+
});
|
|
9355
|
+
return {
|
|
9356
|
+
contextId: transportResult.sessionId,
|
|
9357
|
+
output: transportResult.output,
|
|
9358
|
+
telemetry: transportResult.telemetry
|
|
9359
|
+
};
|
|
9360
|
+
},
|
|
9361
|
+
isContextLostError: (error) => error instanceof AntigravityCliTransportError && error.code === "context_not_found"
|
|
9362
|
+
});
|
|
9363
|
+
const agentControllerConversation = ANTIGRAVITY_CONVERSATION_BRIDGE_SPEC && result.contextId ? bridgeAgentControllerConversationRef({
|
|
9364
|
+
bridgeSpec: ANTIGRAVITY_CONVERSATION_BRIDGE_SPEC,
|
|
9365
|
+
agentControllerConversationId: result.contextId
|
|
9366
|
+
}) : null;
|
|
9367
|
+
return {
|
|
9368
|
+
contextDelta: {
|
|
9369
|
+
agentControllerConversationId: result.contextId,
|
|
9370
|
+
refreshed: result.contextHealed,
|
|
9371
|
+
...agentControllerConversation ? { agentControllerConversation } : {}
|
|
9372
|
+
},
|
|
9373
|
+
output: result.output,
|
|
9374
|
+
telemetry: result.telemetry
|
|
9375
|
+
};
|
|
9376
|
+
} finally {
|
|
9377
|
+
if (input.activeTasks.get(request.taskId) === task) input.activeTasks.delete(request.taskId);
|
|
9378
|
+
}
|
|
9379
|
+
};
|
|
9380
|
+
}
|
|
9381
|
+
async function resolveDispatchLaunchContract(input) {
|
|
9382
|
+
const commandPath = normalizeOptionalText$41(input.antigravityBin);
|
|
9383
|
+
const launchContract = input.inputLaunchContract ?? input.optionLaunchContract ?? (commandPath ? buildExecutableLaunchContract({ commandPath }) : null);
|
|
9384
|
+
if (!launchContract) throw Object.assign(/* @__PURE__ */ new Error("Antigravity CLI launch contract is required for dispatch."), {
|
|
9385
|
+
code: "controller.launch.needs_repair",
|
|
9386
|
+
errorType: "config"
|
|
9387
|
+
});
|
|
9388
|
+
const verification = await verifyAntigravityLaunchContract({ launchContract });
|
|
9389
|
+
if (!verification.ok) throw Object.assign(new Error(verification.errorMessage), {
|
|
9390
|
+
code: "controller.launch.needs_repair",
|
|
9391
|
+
errorType: "config"
|
|
9392
|
+
});
|
|
9393
|
+
return launchContract;
|
|
9394
|
+
}
|
|
9395
|
+
function createProcessInterruptSender(activeTasks) {
|
|
9396
|
+
return (signal) => {
|
|
9397
|
+
const task = activeTasks.get(signal.taskId);
|
|
9398
|
+
if (!task) return Promise.reject(Object.assign(/* @__PURE__ */ new Error("Antigravity task is not running."), { code: "task.not_running" }));
|
|
9399
|
+
task.cancellationRequested = true;
|
|
9400
|
+
if (!task.process) return Promise.resolve();
|
|
9401
|
+
return signalProcess(task.process, signal.mode === "force" ? "SIGKILL" : "SIGINT") ? Promise.resolve() : Promise.reject(/* @__PURE__ */ new Error("Antigravity process signal was not sent."));
|
|
9402
|
+
};
|
|
9403
|
+
}
|
|
9404
|
+
function signalProcess(processEvent, signal) {
|
|
9405
|
+
return signalAgentControllerProcessTree({
|
|
9406
|
+
processId: processEvent.processId,
|
|
9407
|
+
signal,
|
|
9408
|
+
signalTarget: processEvent.signalTarget
|
|
9409
|
+
});
|
|
9410
|
+
}
|
|
9411
|
+
function normalizeOptionalText$41(value) {
|
|
9412
|
+
const normalized = String(value ?? "").trim();
|
|
9413
|
+
return normalized.length > 0 ? normalized : null;
|
|
9414
|
+
}
|
|
9415
|
+
function toErrorMessage$17(error) {
|
|
9416
|
+
return error instanceof Error ? error.message : String(error);
|
|
9417
|
+
}
|
|
9418
|
+
//#endregion
|
|
9419
|
+
//#region ../../runtime/local-service/src/adapters/installers/install-antigravity.ts
|
|
9420
|
+
const installAntigravityAdapter = {
|
|
9421
|
+
adapterId: "antigravity",
|
|
9422
|
+
install(input) {
|
|
9423
|
+
const antigravityAdapter = createAntigravityAdapter({ ...input.registerRuntimeProcess ? { registerRuntimeProcess: input.registerRuntimeProcess } : {} });
|
|
9424
|
+
return {
|
|
9425
|
+
adapter: antigravityAdapter,
|
|
9426
|
+
adapterId: antigravityAdapter.adapterId,
|
|
9427
|
+
transportModes: ["local-cli"]
|
|
9428
|
+
};
|
|
9429
|
+
}
|
|
9430
|
+
};
|
|
9431
|
+
//#endregion
|
|
8576
9432
|
//#region ../../runtime/adapters/claude-code/dist/config/claude-runtime-config.js
|
|
8577
9433
|
const DEFAULT_CLAUDE_CODE_COMMAND = "claude";
|
|
8578
9434
|
async function resolveInstalledClaudeCodeLaunchCandidates(input) {
|
|
@@ -11470,6 +12326,7 @@ foreach ($path in $paths) {
|
|
|
11470
12326
|
//#region ../../runtime/adapters/codex/dist/transport/codex-app-server-transport.js
|
|
11471
12327
|
const CODEX_APP_SERVER_VERSION_PATTERN = /\/([^\s]+)/u;
|
|
11472
12328
|
const EXECUTION_CONTEXT_ERROR_PATTERN = /^(execution_context\.[a-z_]+|context\.mcp_isolation_unverified)(?::|$)/u;
|
|
12329
|
+
const REQUIRED_MCP_INITIALIZATION_FAILURE_PATTERN = /required MCP servers? failed to initialize/iu;
|
|
11473
12330
|
const APP_SERVER_PROCESS_KILL_GRACE_MS = 1e3;
|
|
11474
12331
|
const DEFAULT_APP_SERVER_STARTUP_TIMEOUT_MS = 15e3;
|
|
11475
12332
|
var CodexAppServerTransportError = class extends Error {
|
|
@@ -13226,6 +14083,11 @@ function buildServerRequestDeclineResponse(method) {
|
|
|
13226
14083
|
function toJsonRpcTransportError$1(error) {
|
|
13227
14084
|
const message = normalizeOptionalText$31(error.message) ?? "codex app-server error";
|
|
13228
14085
|
const originalError = createProviderOriginalError(message) ?? void 0;
|
|
14086
|
+
const mcpInitializationFailure = classifyCodexRequiredMcpInitializationFailure({
|
|
14087
|
+
message,
|
|
14088
|
+
...typeof error.code === "number" ? { rpcErrorCode: error.code } : {}
|
|
14089
|
+
});
|
|
14090
|
+
if (mcpInitializationFailure) return mcpInitializationFailure;
|
|
13229
14091
|
const permissionDenial = classifyRuntimePermissionDenialMessage({
|
|
13230
14092
|
message,
|
|
13231
14093
|
source: "codex"
|
|
@@ -13265,6 +14127,16 @@ function toJsonRpcTransportError$1(error) {
|
|
|
13265
14127
|
...typeof error.code === "number" ? { rpcErrorCode: error.code } : {}
|
|
13266
14128
|
});
|
|
13267
14129
|
}
|
|
14130
|
+
function classifyCodexRequiredMcpInitializationFailure(input) {
|
|
14131
|
+
if (!REQUIRED_MCP_INITIALIZATION_FAILURE_PATTERN.test(input.message)) return null;
|
|
14132
|
+
return new CodexAppServerTransportError({
|
|
14133
|
+
code: "execution_context.mcp_server_initialization_failed",
|
|
14134
|
+
errorType: "config",
|
|
14135
|
+
message: "execution_context.mcp_server_initialization_failed: required tools could not start",
|
|
14136
|
+
originalError: createProviderOriginalError(input.message) ?? void 0,
|
|
14137
|
+
...typeof input.rpcErrorCode === "number" ? { rpcErrorCode: input.rpcErrorCode } : {}
|
|
14138
|
+
});
|
|
14139
|
+
}
|
|
13268
14140
|
function toCodexAppServerTransportError(error, timeoutMs) {
|
|
13269
14141
|
if (error instanceof CodexAppServerTransportError) return error;
|
|
13270
14142
|
const contextError = error instanceof Error ? EXECUTION_CONTEXT_ERROR_PATTERN.exec(error.message)?.[1] : void 0;
|
|
@@ -21066,6 +21938,7 @@ const installOpenCodeAdapter = {
|
|
|
21066
21938
|
//#region ../../runtime/local-service/src/adapters/installers/list-installers.ts
|
|
21067
21939
|
function listLocalAdapterInstallers() {
|
|
21068
21940
|
return [
|
|
21941
|
+
installAntigravityAdapter,
|
|
21069
21942
|
installClaudeCodeAdapter,
|
|
21070
21943
|
installCodexAdapter,
|
|
21071
21944
|
installCursorAdapter,
|
|
@@ -22334,7 +23207,7 @@ async function syncDaemonRouteCatalogState(input) {
|
|
|
22334
23207
|
return {
|
|
22335
23208
|
status: "failed",
|
|
22336
23209
|
reason: "load_failed",
|
|
22337
|
-
errorMessage: toErrorMessage$
|
|
23210
|
+
errorMessage: toErrorMessage$20(error)
|
|
22338
23211
|
};
|
|
22339
23212
|
}
|
|
22340
23213
|
const nextFingerprint = buildRouteCatalogFingerprint(nextCatalog);
|
|
@@ -22347,7 +23220,7 @@ async function syncDaemonRouteCatalogState(input) {
|
|
|
22347
23220
|
return {
|
|
22348
23221
|
status: "failed",
|
|
22349
23222
|
reason: "register_failed",
|
|
22350
|
-
errorMessage: toErrorMessage$
|
|
23223
|
+
errorMessage: toErrorMessage$20(error)
|
|
22351
23224
|
};
|
|
22352
23225
|
}
|
|
22353
23226
|
applyAcceptedLeases({
|
|
@@ -22388,7 +23261,7 @@ async function syncDaemonRouteCatalogState(input) {
|
|
|
22388
23261
|
return {
|
|
22389
23262
|
status: "failed",
|
|
22390
23263
|
reason: "register_failed",
|
|
22391
|
-
errorMessage: toErrorMessage$
|
|
23264
|
+
errorMessage: toErrorMessage$20(error)
|
|
22392
23265
|
};
|
|
22393
23266
|
}
|
|
22394
23267
|
const diff = buildRouteCatalogDiff({
|
|
@@ -23029,20 +23902,50 @@ var registry_default = {
|
|
|
23029
23902
|
"id": "antigravity",
|
|
23030
23903
|
"displayName": "Antigravity",
|
|
23031
23904
|
"category": "builtin",
|
|
23032
|
-
"skillsDir": ".
|
|
23033
|
-
"globalSkillsDir": "${HOME}/.gemini/antigravity/skills",
|
|
23905
|
+
"skillsDir": ".agents/skills",
|
|
23906
|
+
"globalSkillsDir": ["${HOME}/.gemini/antigravity-cli/skills", "${HOME}/.gemini/antigravity/skills"],
|
|
23034
23907
|
"detection": {
|
|
23035
23908
|
"mode": "any",
|
|
23036
|
-
"checks": [
|
|
23037
|
-
|
|
23038
|
-
|
|
23039
|
-
|
|
23909
|
+
"checks": [
|
|
23910
|
+
{
|
|
23911
|
+
"kind": "commandExists",
|
|
23912
|
+
"value": "agy"
|
|
23913
|
+
},
|
|
23914
|
+
{
|
|
23915
|
+
"kind": "pathExists",
|
|
23916
|
+
"value": "${HOME}/.gemini/antigravity-cli"
|
|
23917
|
+
},
|
|
23918
|
+
{
|
|
23919
|
+
"kind": "pathExists",
|
|
23920
|
+
"value": "${HOME}/.gemini/antigravity"
|
|
23921
|
+
}
|
|
23922
|
+
]
|
|
23040
23923
|
},
|
|
23041
23924
|
"service": { "skillsInstallable": true },
|
|
23042
23925
|
"runtime": {
|
|
23043
|
-
"supported":
|
|
23044
|
-
"adapters": [
|
|
23045
|
-
|
|
23926
|
+
"supported": true,
|
|
23927
|
+
"adapters": [{
|
|
23928
|
+
"adapterId": "antigravity",
|
|
23929
|
+
"controllerRefMatcher": {
|
|
23930
|
+
"kind": "contains",
|
|
23931
|
+
"values": ["antigravity"]
|
|
23932
|
+
},
|
|
23933
|
+
"transportModes": ["local-cli"],
|
|
23934
|
+
"capabilityDeclaration": {
|
|
23935
|
+
"executionContextVersion": 2,
|
|
23936
|
+
"streamingCapability": "preview_capable",
|
|
23937
|
+
"imageInputCapability": "unsupported",
|
|
23938
|
+
"runtimeWorkingDirectoryMode": "spawn_cwd",
|
|
23939
|
+
"preparationRequirement": "none",
|
|
23940
|
+
"continuationCapability": "standard",
|
|
23941
|
+
"workspaceResumeBehavior": "validate_only"
|
|
23942
|
+
}
|
|
23943
|
+
}]
|
|
23944
|
+
},
|
|
23945
|
+
"lifecycle": { "status": "active" },
|
|
23946
|
+
"transportModes": ["local-cli"],
|
|
23947
|
+
"defaultTransportMode": "local-cli",
|
|
23948
|
+
"defaultStreamingMode": "stream"
|
|
23046
23949
|
},
|
|
23047
23950
|
{
|
|
23048
23951
|
"id": "augment",
|
|
@@ -23947,8 +24850,111 @@ var registry_default = {
|
|
|
23947
24850
|
//#region src/model-catalog/offline-catalog.json
|
|
23948
24851
|
var offline_catalog_default = {
|
|
23949
24852
|
schemaVersion: 1,
|
|
23950
|
-
updatedAt: "2026-09-
|
|
24853
|
+
updatedAt: "2026-09-21T00:00:00.000Z",
|
|
23951
24854
|
agentControllers: {
|
|
24855
|
+
"antigravity": {
|
|
24856
|
+
"defaultModelId": "gemini-3.8-flash-high",
|
|
24857
|
+
"models": [
|
|
24858
|
+
{
|
|
24859
|
+
"id": "gemini-3.8-flash-high",
|
|
24860
|
+
"displayName": "Gemini 3.8 Flash (High)",
|
|
24861
|
+
"unavailable": false,
|
|
24862
|
+
"supportedReasoningLevels": [],
|
|
24863
|
+
"minCliVersion": "1.2.7"
|
|
24864
|
+
},
|
|
24865
|
+
{
|
|
24866
|
+
"id": "gemini-3.8-flash-medium",
|
|
24867
|
+
"displayName": "Gemini 3.8 Flash (Medium)",
|
|
24868
|
+
"unavailable": false,
|
|
24869
|
+
"supportedReasoningLevels": [],
|
|
24870
|
+
"minCliVersion": "1.2.7"
|
|
24871
|
+
},
|
|
24872
|
+
{
|
|
24873
|
+
"id": "gemini-3.8-flash-low",
|
|
24874
|
+
"displayName": "Gemini 3.8 Flash (Low)",
|
|
24875
|
+
"unavailable": false,
|
|
24876
|
+
"supportedReasoningLevels": [],
|
|
24877
|
+
"minCliVersion": "1.2.7"
|
|
24878
|
+
},
|
|
24879
|
+
{
|
|
24880
|
+
"id": "gemini-3.7-flash-high",
|
|
24881
|
+
"displayName": "Gemini 3.7 Flash (High)",
|
|
24882
|
+
"unavailable": false,
|
|
24883
|
+
"supportedReasoningLevels": [],
|
|
24884
|
+
"minCliVersion": "1.2.7"
|
|
24885
|
+
},
|
|
24886
|
+
{
|
|
24887
|
+
"id": "gemini-3.7-flash-medium",
|
|
24888
|
+
"displayName": "Gemini 3.7 Flash (Medium)",
|
|
24889
|
+
"unavailable": false,
|
|
24890
|
+
"supportedReasoningLevels": [],
|
|
24891
|
+
"minCliVersion": "1.2.7"
|
|
24892
|
+
},
|
|
24893
|
+
{
|
|
24894
|
+
"id": "gemini-3.7-flash-low",
|
|
24895
|
+
"displayName": "Gemini 3.7 Flash (Low)",
|
|
24896
|
+
"unavailable": false,
|
|
24897
|
+
"supportedReasoningLevels": [],
|
|
24898
|
+
"minCliVersion": "1.2.7"
|
|
24899
|
+
},
|
|
24900
|
+
{
|
|
24901
|
+
"id": "gemini-3.6-flash-high",
|
|
24902
|
+
"displayName": "Gemini 3.6 Flash (High)",
|
|
24903
|
+
"unavailable": false,
|
|
24904
|
+
"supportedReasoningLevels": [],
|
|
24905
|
+
"minCliVersion": "1.2.7"
|
|
24906
|
+
},
|
|
24907
|
+
{
|
|
24908
|
+
"id": "gemini-3.6-flash-medium",
|
|
24909
|
+
"displayName": "Gemini 3.6 Flash (Medium)",
|
|
24910
|
+
"unavailable": false,
|
|
24911
|
+
"supportedReasoningLevels": [],
|
|
24912
|
+
"minCliVersion": "1.2.7"
|
|
24913
|
+
},
|
|
24914
|
+
{
|
|
24915
|
+
"id": "gemini-3.6-flash-low",
|
|
24916
|
+
"displayName": "Gemini 3.6 Flash (Low)",
|
|
24917
|
+
"unavailable": false,
|
|
24918
|
+
"supportedReasoningLevels": [],
|
|
24919
|
+
"minCliVersion": "1.2.7"
|
|
24920
|
+
},
|
|
24921
|
+
{
|
|
24922
|
+
"id": "gemini-3.1-pro-high",
|
|
24923
|
+
"displayName": "Gemini 3.1 Pro (High)",
|
|
24924
|
+
"unavailable": false,
|
|
24925
|
+
"supportedReasoningLevels": [],
|
|
24926
|
+
"minCliVersion": "1.2.7"
|
|
24927
|
+
},
|
|
24928
|
+
{
|
|
24929
|
+
"id": "gemini-3.1-pro-low",
|
|
24930
|
+
"displayName": "Gemini 3.1 Pro (Low)",
|
|
24931
|
+
"unavailable": false,
|
|
24932
|
+
"supportedReasoningLevels": [],
|
|
24933
|
+
"minCliVersion": "1.2.7"
|
|
24934
|
+
},
|
|
24935
|
+
{
|
|
24936
|
+
"id": "claude-sonnet-4-6",
|
|
24937
|
+
"displayName": "Claude Sonnet 4.6 (Thinking)",
|
|
24938
|
+
"unavailable": false,
|
|
24939
|
+
"supportedReasoningLevels": [],
|
|
24940
|
+
"minCliVersion": "1.2.7"
|
|
24941
|
+
},
|
|
24942
|
+
{
|
|
24943
|
+
"id": "claude-opus-4-6-thinking",
|
|
24944
|
+
"displayName": "Claude Opus 4.6 (Thinking)",
|
|
24945
|
+
"unavailable": false,
|
|
24946
|
+
"supportedReasoningLevels": [],
|
|
24947
|
+
"minCliVersion": "1.2.7"
|
|
24948
|
+
},
|
|
24949
|
+
{
|
|
24950
|
+
"id": "gpt-oss-120b-medium",
|
|
24951
|
+
"displayName": "GPT-OSS 120B (Medium)",
|
|
24952
|
+
"unavailable": false,
|
|
24953
|
+
"supportedReasoningLevels": [],
|
|
24954
|
+
"minCliVersion": "1.2.7"
|
|
24955
|
+
}
|
|
24956
|
+
]
|
|
24957
|
+
},
|
|
23952
24958
|
"codex": {
|
|
23953
24959
|
"defaultModelId": "gpt-5.6-sol",
|
|
23954
24960
|
"models": [
|
|
@@ -26081,6 +27087,29 @@ const EMPTY_AGENT_CONTROLLER_INTERFACE_CAPABILITIES = {
|
|
|
26081
27087
|
structuredUserInput: false
|
|
26082
27088
|
};
|
|
26083
27089
|
const BUILTIN_AGENT_CONTROLLER_DEFINITIONS = [
|
|
27090
|
+
{
|
|
27091
|
+
adapterId: "antigravity",
|
|
27092
|
+
agentId: "antigravity",
|
|
27093
|
+
capabilities: {
|
|
27094
|
+
approvals: false,
|
|
27095
|
+
cancel: true,
|
|
27096
|
+
interrupt: true,
|
|
27097
|
+
modelSelection: true,
|
|
27098
|
+
nativeEventStream: true,
|
|
27099
|
+
permissionModes: true,
|
|
27100
|
+
structuredUserInput: false
|
|
27101
|
+
},
|
|
27102
|
+
conversationOccupancy: {
|
|
27103
|
+
contractVersion: 1,
|
|
27104
|
+
mode: "unsupported"
|
|
27105
|
+
},
|
|
27106
|
+
installResolver: {
|
|
27107
|
+
resolveInstalledLaunchCandidates: resolveInstalledAntigravityLaunchCandidates,
|
|
27108
|
+
verifyLaunchContract: verifyAntigravityLaunchContract
|
|
27109
|
+
},
|
|
27110
|
+
nativeInterface: "local-cli",
|
|
27111
|
+
usageLimitSupport: resolveAgentControllerUsageLimitSupport("builtin:antigravity")
|
|
27112
|
+
},
|
|
26084
27113
|
{
|
|
26085
27114
|
adapterId: "claude-code",
|
|
26086
27115
|
agentId: "claude-code",
|
|
@@ -28123,9 +29152,9 @@ function createModelCatalogReadSession(input) {
|
|
|
28123
29152
|
async function readModelCatalogOnce(baseUrl) {
|
|
28124
29153
|
try {
|
|
28125
29154
|
const [apiClient, baseUrlModule, clientFoundationModule] = await Promise.all([
|
|
28126
|
-
import("./dist-
|
|
28127
|
-
import("./base-url-
|
|
28128
|
-
import("./api-client-foundation-
|
|
29155
|
+
import("./dist-C1fbc-VK.js"),
|
|
29156
|
+
import("./base-url-CMBApK1J.js"),
|
|
29157
|
+
import("./api-client-foundation-D1M0bkwm.js")
|
|
28129
29158
|
]);
|
|
28130
29159
|
if (typeof apiClient.createConfigApi !== "function") throw new Error("config api client is unavailable");
|
|
28131
29160
|
const resolvedBaseUrl = baseUrl ?? await baseUrlModule.resolveBaseUrl();
|
|
@@ -28419,9 +29448,9 @@ function resolveBoundProfileLocalRouteCandidate(input) {
|
|
|
28419
29448
|
const agentControllerCollaborationMode = resolveNativeAgentControllerCollaborationModeForController(binding.agentControllerCollaborationMode, { agentControllerRef: agentControllerRef.ref });
|
|
28420
29449
|
return {
|
|
28421
29450
|
agentControllerRef: agentControllerRef.ref,
|
|
28422
|
-
agentControllerConversationId: normalizeOptionalText$
|
|
29451
|
+
agentControllerConversationId: normalizeOptionalText$52(executionTarget.agentControllerConversationId),
|
|
28423
29452
|
openMeldServiceRuntimeId: executionTarget.openMeldServiceRuntimeId.value,
|
|
28424
|
-
bindingId: normalizeOptionalText$
|
|
29453
|
+
bindingId: normalizeOptionalText$52(binding.bindingId),
|
|
28425
29454
|
...agentControllerCollaborationMode ? { agentControllerCollaborationMode } : {},
|
|
28426
29455
|
...agentControllerPermissionMode ? { agentControllerPermissionMode } : {},
|
|
28427
29456
|
...binding.modelSelection ? { modelSelection: binding.modelSelection } : {},
|
|
@@ -28764,7 +29793,7 @@ async function repairLocalReplyStateOrThrow(input) {
|
|
|
28764
29793
|
mode: "repair"
|
|
28765
29794
|
});
|
|
28766
29795
|
} catch (error) {
|
|
28767
|
-
const errorMessage = toErrorMessage$
|
|
29796
|
+
const errorMessage = toErrorMessage$20(error);
|
|
28768
29797
|
emitRunLine({
|
|
28769
29798
|
presenter: input.presenter,
|
|
28770
29799
|
code: "daemon.run.projection_sync_failed",
|
|
@@ -28781,7 +29810,7 @@ async function repairLocalReplyStateOrThrow(input) {
|
|
|
28781
29810
|
try {
|
|
28782
29811
|
await syncProfileWorkspaceState({ mode: "repair" });
|
|
28783
29812
|
} catch (error) {
|
|
28784
|
-
const errorMessage = toErrorMessage$
|
|
29813
|
+
const errorMessage = toErrorMessage$20(error);
|
|
28785
29814
|
emitRunLine({
|
|
28786
29815
|
presenter: input.presenter,
|
|
28787
29816
|
code: "daemon.run.profile_workspace_sync_failed",
|
|
@@ -29882,7 +30911,7 @@ const DEFAULT_OPENCLAW_RUNTIME_PREPARATION_DEPS = {
|
|
|
29882
30911
|
fetchGatewayHealth: fetchOpenClawGatewayHealth
|
|
29883
30912
|
};
|
|
29884
30913
|
async function prepareOpenClawRuntime(input, deps = DEFAULT_OPENCLAW_RUNTIME_PREPARATION_DEPS) {
|
|
29885
|
-
const profileName = normalizeOptionalText$
|
|
30914
|
+
const profileName = normalizeOptionalText$52(input.profileName);
|
|
29886
30915
|
if (!profileName) throw new DaemonServiceRunError({
|
|
29887
30916
|
code: "controller.bootstrap.failed",
|
|
29888
30917
|
message: "controller.bootstrap.failed: OpenClaw bootstrap requires an OpenMeld profile name"
|
|
@@ -29945,12 +30974,12 @@ function buildOpenClawGatewayVisibilityFailure(error) {
|
|
|
29945
30974
|
}
|
|
29946
30975
|
function extractErrorCode(error) {
|
|
29947
30976
|
if (!(error && typeof error === "object" && "code" in error)) return;
|
|
29948
|
-
return normalizeOptionalText$
|
|
30977
|
+
return normalizeOptionalText$52(error.code) ?? void 0;
|
|
29949
30978
|
}
|
|
29950
30979
|
function resolveOpenClawGatewayVisibilityDiagnostics(error) {
|
|
29951
30980
|
if (!(error instanceof Error)) return;
|
|
29952
30981
|
const diagnostics = error.diagnostics;
|
|
29953
|
-
if (!diagnostics || typeof diagnostics !== "object" || !normalizeOptionalText$
|
|
30982
|
+
if (!diagnostics || typeof diagnostics !== "object" || !normalizeOptionalText$52(diagnostics.agentId)) return;
|
|
29954
30983
|
const parsedGatewayVisibility = openMeldDaemonTaskResultOpenClawGatewayVisibilityStatusSchema.safeParse(diagnostics.gatewayVisibility);
|
|
29955
30984
|
if (!parsedGatewayVisibility.success) return;
|
|
29956
30985
|
return {
|
|
@@ -29977,6 +31006,6 @@ async function prepareProviderRuntime(input, options = {}) {
|
|
|
29977
31006
|
return await preparer(input);
|
|
29978
31007
|
}
|
|
29979
31008
|
//#endregion
|
|
29980
|
-
export { canManageRegistryAgentSkillTargets as $,
|
|
31009
|
+
export { canManageRegistryAgentSkillTargets as $, areAgentControllerInterfaceAccountsSame as $n, mergeOpenClawGatewayVisibility as $t, createExpectedRoutesReadSession as A, runRuntimeTask as An, compareAgentControllerRefsForDisplay as Ar, ensureOpenMeldManagedProfileWorkspace as At, reconcileNewRunnableBuiltinAgentsForSetup as B, upsertConversationExecutionState as Bn, createMutableRouteCatalogState as Bt, createModelCatalogReadSession as C, verifyCodexAppServerThread as Cn, MAX_HEARTBEAT_INTERVAL_MS as Cr, resolveLocalProjectConnectionForPath as Ct, NO_LOCAL_AGENTS_NEED_OPENMELD_SERVICE_REASON as D, emitReconcileCompletedEvidence as Dn, pruneStaleLeases as Dr, resolveRegistryOriginLaunchCommand as Dt, resolveProfileWorkspaceRuntime as E, emitDriftDetectedEvidence as En, applyIntervalJitterMs as Er, listBuiltinAgentsRegistryEntries as Et, listAgentRegistrations as F, loadLedgerState as Fn, resolveConfiguredProfileWorkspacePathForAccount as Ft, updateAgentRegistrations as G, createUnavailableProviderUsageLimits as Gn, syncRuntimeEventToInflightTaskControlRegistry as Gt, resolveAgentTargetState as H, buildAuthenticatedControlPlaneResponse as Hn, summarizeSkippedDaemonProfiles as Ht, listAgentTargetStates as I, removeConversationExecutionState as In, setCustomProfileWorkspace as It, normalizeAgentIds as J, buildCliLaunchInvocation as Jn, isDaemonReconcileInProgressError as Jt, notifyDaemonRouteCatalogChanged as K, createUnsupportedProviderUsageLimits as Kn, SPACE_ACTION_CONTEXT_GUIDANCE_LINES as Kt, manageAgentRegistrationInstallation as L, resolveConversationExecutionStateByLookupKey as Ln, setOpenMeldManagedProfileWorkspace as Lt, addAgentCustomTarget as M, buildTaskResultEnvelope as Mn, readProfileWorkspaceConfig as Mt, createRegistrationFromCatalogTarget as N, appendLedgerHistoryEntry as Nn, readProfileWorkspaceConfigForAccount as Nt, syncDeviceRuntimeStateProjection as O, emitReconcileStartedEvidence as On, resolveAdaptiveHeartbeatIntervalMs as Or, resolveRegistryRuntimeAdapterCapabilitySnapshot as Ot, listAgentCustomTargets as P, commitResolvedAgentContext as Pn, resolveConfiguredProfileWorkspacePath as Pt, resolveLocalRegistryAgentIdFromAgentControllerRef as Q, DEFAULT_TASK_LIFECYCLE_HEARTBEAT_INTERVAL_MS as Qn, createPendingAgentInteractionRegistry as Qt, readAgentRuntimeConfigHealth as R, seedLegacyAgentContext as Rn, validateCustomProfileWorkspacePath as Rt, syncProfileWorkspaceState as S, resolveCodexAppServerCompletedTurn as Sn, ADAPTIVE_HEARTBEAT_JITTER_RATIO as Sr, canonicalizeLocalProjectPath as St, resolveEffectiveProfileWorkingFolderRuntime as T, parseAntigravityUsageLimits as Tn, applyAcceptedLeases as Tr, withAgentActivityLocalStateLock as Tt, setAgentRegistrationEnabled as U, assertLegacyAgentContextAssociation as Un, syncDaemonRouteCatalogState as Ut, removeAgentCustomTarget as V, withLedgerStateTransaction as Vn, createRouteCatalogFromMutableState as Vt, updateAgentCustomTarget as W, buildAgentContextLookupKey as Wn, normalizeDispatchThreadAction as Wt, sortAgentRegistrations as X, listAgentControllerSupervisedProcessIds as Xn, buildDispatchReplyContextSummary as Xt, parseAgentEnabledOption as Y, materializeCliLaunchCommand as Yn, createSerialAgentInteractionCallback as Yt, repairBuiltinControllerInstall as Z, createProviderOriginalError as Zn, normalizeDispatchPostMessageAction as Zt, loadDaemonRouteCatalog as _, resolveInstalledGrokBuildLaunchCandidates as _n, resolveAgentProfileEditCapabilities as _r, removeProjectConnection as _t, buildOpenClawSpaceSessionKey as a, resolveDispatchContinuityObservation as an, createAuthorityOpenMeldServiceRuntimeId as ar, isHomebrewCommandPath as at, resolveLocalController as b, resolveInstalledCodexLaunchCandidates as bn, resolveSelectableCandidates as br, setDefaultProjectConnection as bt, findOpenClawAgentById as c, resolveLatestScopedConversationExecutionState as cn, isAgentExecutionReadyOrConnecting as cr, ProjectBindingOperationError as ct, resolveOpenClawAuthStatus as d, createLocalAdapterEntries as dn, peopleComputerContainsDevice as dr, isProjectBound as dt, createLocalTaskInterruptSender as en, buildAgentControllerRef as er, detectInstalledSkillsAgents as et, resolveOpenClawProviderRuntimeWorkingDirectory as f, parseOpenCodeGoUsageResponse as fn, projectPeopleComputersToLegacyLocalRuntimes as fr, listProjectBindings as ft, writeDaemonRouteCatalogCache as g, probeGrokBuildAcpInterface as gn, resolveAgentExecutionStatus as gr, removeMissingProjectConnections as gt, readDaemonRouteCatalogCache as h, GrokBuildAcpTransportError as hn, resolveAgentControllerPermissionModeForController as hr, removeAgentActivityBindingsWhileDeliveryLocked as ht, listOpenClawGatewayAgents as i, resolveDispatchQueueLogMeta as in, createAgentExecutionStatusDisplayRows as ir, isBunGlobalCommandPath as it, resolveAgentProfilePrimaryAgentControllerReport as j, buildRuntimeWorkspaceFingerprint as jn, resolveBuiltinAgentControllerBrand as jr, normalizeCustomProfileWorkspacePath as jt, createPrimaryBindingReadSession as k, DaemonServiceRunError as kn, resolveCatalogSyncIntervalMs as kr, resolveRegistryRuntimeAdapterContractByAgentControllerRef as kt, findOpenClawAgentsByWorkspace as l, resolveCatalogSyncSkippedProfilesLogState as ln, listAgentControllerPermissionModeOptions as lr, ProjectBindingStoreUpdateRequiredError as lt, resolveOpenClawLocalBootstrapPaths as m, resolveInstalledOpenCodeLaunchCandidates as mn, renderWorkingLanguagePrompt as mr, migrateProjectBindingStore as mt, fetchOpenClawGatewayHealth as n, createLocalExecutionSlots as nn, buildWorkingLanguagePromptPlan as nr, EMPTY_AGENT_CONTROLLER_INTERFACE_CAPABILITIES as nt, normalizeOpenClawSpaceIdPrefix as o, resolveCompatibleAgentContextMatch as on, getAgentControllerPermissionModeDisplayMetadata as or, isNpmGlobalCommandPath as ot, readOpenClawLocalBootstrapState as p, forkOpenCodeServerSession as pn, renderInformationProtectionPrompt as pr, listProjectConnectionsWithStatus as pt, normalizeAgentId as q, resolveDispatchSpaceActionMcpServer as qn, SPACE_ACTION_TARGET_GUIDANCE_LINES as qt, listOpenClawAgents as r, createInflightTaskControlRegistry as rn, createAgentControllerInterfaceDisplayRows as rr, resolveBuiltinAgentControllerDefinition as rt, slugifyOpenClawNamePart as s, resolveCompatibleConversationExecutionState as sn, getAgentControllerPermissionModeFieldLabel as sr, isPnpmGlobalCommandPath as st, prepareProviderRuntime as t, buildLocalServiceDiagnosticsPayload as tn, buildInformationProtectionPromptPlan as tr, resolveSkillsAgentRegistry as tt, matchesExpectedWorkspace as u, createLocalAdapterContainer as un, parseAgentControllerRef as ur, bindProject as ut, buildRuntimeRouteTargets as v, projectCodexUsageLimits as vn, resolveEvidenceSyncHealth as vr, resolveProjectBindingForPath as vt, resolveCurrentEffectiveProfileWorkingFolderRuntime as w, resolveInstalledClaudeCodeLaunchCandidates as wn, MIN_HEARTBEAT_INTERVAL_MS as wr, withAgentActivityDeliveryLock as wt, resolveLocalRuntimeControllerSupport as x, forkCodexAppServerThread as xn, resolveRouteRegistrationReconcileDecision as xr, unbindProject as xt, readLocalEnabledControllers as y, resolveCodexTimeoutMs as yn, resolveNativeAgentControllerPermissionModeForController as yr, runIfAgentActivityBindingGenerationIsCurrent as yt, reconcileNewRunnableBuiltinAgentRegistrations as z, settleInflightTask as zn, describeProfileWorkspacePathValidationFailure as zt };
|
|
29981
31010
|
|
|
29982
|
-
//# sourceMappingURL=prepare-provider-runtime-
|
|
31011
|
+
//# sourceMappingURL=prepare-provider-runtime-3eIWxGgM.js.map
|