openmeld 0.3.215 → 0.3.217

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.
Files changed (135) hide show
  1. package/dist/{add-me-membership-DIICpPeD.js → add-me-membership-C2Ys6Gq2.js} +2 -2
  2. package/dist/{add-me-membership-DIICpPeD.js.map → add-me-membership-C2Ys6Gq2.js.map} +1 -1
  3. package/dist/{agents-DkDhCPDQ.js → agents-ClqMS9aO.js} +11 -11
  4. package/dist/{agents-DkDhCPDQ.js.map → agents-ClqMS9aO.js.map} +1 -1
  5. package/dist/{api-client-foundation-DwFyNNaC.js → api-client-foundation-CMVD057A.js} +1 -1
  6. package/dist/{api-client-foundation-y_0cvP4z.js → api-client-foundation-Cib1elkI.js} +3 -3
  7. package/dist/{api-client-foundation-y_0cvP4z.js.map → api-client-foundation-Cib1elkI.js.map} +1 -1
  8. package/dist/auth-session-D7oAIuHk.js +4 -0
  9. package/dist/{auth-session-CunWE9Up.js → auth-session-DOjVKRI_.js} +4 -4
  10. package/dist/{auth-session-CunWE9Up.js.map → auth-session-DOjVKRI_.js.map} +1 -1
  11. package/dist/{base-url-CfyKRz89.js → base-url-CMBApK1J.js} +1 -1
  12. package/dist/{base-url-BczddvzH.js → base-url-D7uE_xTo.js} +3 -3
  13. package/dist/{base-url-BczddvzH.js.map → base-url-D7uE_xTo.js.map} +1 -1
  14. package/dist/{channel-D7RQQwTe.js → channel-BfTy6fDo.js} +4 -4
  15. package/dist/{channel-D7RQQwTe.js.map → channel-BfTy6fDo.js.map} +1 -1
  16. package/dist/{cli-space-api-BSpnKocX.js → cli-space-api-BT_Pu9Yg.js} +8 -8
  17. package/dist/{cli-space-api-BSpnKocX.js.map → cli-space-api-BT_Pu9Yg.js.map} +1 -1
  18. package/dist/{command-DJDcTWMC.js → command-C1w0UpIu.js} +29 -24
  19. package/dist/command-C1w0UpIu.js.map +1 -0
  20. package/dist/{computer-connection-jb6uriyR.js → computer-connection-DsjsjmPp.js} +2 -2
  21. package/dist/{computer-connection-jb6uriyR.js.map → computer-connection-DsjsjmPp.js.map} +1 -1
  22. package/dist/{computer-connection-review-BKbEyl1P.js → computer-connection-review-RXJyryCh.js} +6 -6
  23. package/dist/{computer-connection-review-BKbEyl1P.js.map → computer-connection-review-RXJyryCh.js.map} +1 -1
  24. package/dist/{computer-disconnect-CI-FglTs.js → computer-disconnect-B_LZM2QE.js} +9 -9
  25. package/dist/{computer-disconnect-CI-FglTs.js.map → computer-disconnect-B_LZM2QE.js.map} +1 -1
  26. package/dist/{computer-setup-continuation-F8hRRORE.js → computer-setup-continuation-BVI7SD0M.js} +3 -3
  27. package/dist/{computer-setup-continuation-F8hRRORE.js.map → computer-setup-continuation-BVI7SD0M.js.map} +1 -1
  28. package/dist/{context-BfxDJBzm.js → context-Di5R4iik.js} +6 -6
  29. package/dist/{context-BfxDJBzm.js.map → context-Di5R4iik.js.map} +1 -1
  30. package/dist/{control-plane-DKPz7DMv.js → control-plane-BDS63N7Y.js} +2 -2
  31. package/dist/{control-plane-DKPz7DMv.js.map → control-plane-BDS63N7Y.js.map} +1 -1
  32. package/dist/{controller-contract-pe3_Re-c.js → controller-contract-DAOCaefz.js} +9 -1
  33. package/dist/controller-contract-DAOCaefz.js.map +1 -0
  34. package/dist/{daemon-device-id-DCsEEIDx.js → daemon-device-id-bfkbZj9G.js} +9 -9
  35. package/dist/{daemon-device-id-DCsEEIDx.js.map → daemon-device-id-bfkbZj9G.js.map} +1 -1
  36. package/dist/{daemon-frame-transport-BI53VLpj.js → daemon-frame-transport-saNQVOyi.js} +10 -10
  37. package/dist/daemon-frame-transport-saNQVOyi.js.map +1 -0
  38. package/dist/{daemon-lifecycle-journal-CoWJG0xk.js → daemon-lifecycle-journal-DP01txRB.js} +9 -8
  39. package/dist/{daemon-lifecycle-journal-CoWJG0xk.js.map → daemon-lifecycle-journal-DP01txRB.js.map} +1 -1
  40. package/dist/{daemon-runtime-lease-CIzOT1zx.js → daemon-runtime-lease-BUr4qsLo.js} +2 -2
  41. package/dist/{daemon-runtime-lease-CIzOT1zx.js.map → daemon-runtime-lease-BUr4qsLo.js.map} +1 -1
  42. package/dist/{daemon-runtime-lease-_M6hW8Mg.js → daemon-runtime-lease-C9X8xV_F.js} +1 -1
  43. package/dist/{daemon-service-contract-XfV9t96H.js → daemon-service-contract-BpOBMGX0.js} +4 -4
  44. package/dist/{daemon-service-contract-XfV9t96H.js.map → daemon-service-contract-BpOBMGX0.js.map} +1 -1
  45. package/dist/{daemon-service-manager-BdYZkRIa.js → daemon-service-manager-CRHq3YSj.js} +1 -1
  46. package/dist/{daemon-service-manager-CyEK02Yv.js → daemon-service-manager-CXbN836B.js} +6 -6
  47. package/dist/{daemon-service-manager-CyEK02Yv.js.map → daemon-service-manager-CXbN836B.js.map} +1 -1
  48. package/dist/{daemon-service-runtime-DNBMVcCI.js → daemon-service-runtime-DpiD8oap.js} +12 -12
  49. package/dist/{daemon-service-runtime-DNBMVcCI.js.map → daemon-service-runtime-DpiD8oap.js.map} +1 -1
  50. package/dist/{daemon-service-update-coordinator-BXLsu_wO.js → daemon-service-update-coordinator-BuCEBJoe.js} +23 -23
  51. package/dist/{daemon-service-update-coordinator-BXLsu_wO.js.map → daemon-service-update-coordinator-BuCEBJoe.js.map} +1 -1
  52. package/dist/{daemon-state-CoAZLwpi.js → daemon-state-B44aq2nm.js} +3 -3
  53. package/dist/{daemon-state-CoAZLwpi.js.map → daemon-state-B44aq2nm.js.map} +1 -1
  54. package/dist/{dist-o3UL1EGQ.js → dist-BLuEEVHh.js} +2 -2
  55. package/dist/dist-BLuEEVHh.js.map +1 -0
  56. package/dist/{dist-Ddy96dwl.js → dist-BdibASYs.js} +3 -3
  57. package/dist/{dist-Ddy96dwl.js.map → dist-BdibASYs.js.map} +1 -1
  58. package/dist/{dist-CkGG099H.js → dist-DkRliHib.js} +9292 -9207
  59. package/dist/dist-DkRliHib.js.map +1 -0
  60. package/dist/{dist-DZYJ8yLA.js → dist-RR7jryeV.js} +1 -1
  61. package/dist/{elapsed-time-CtNv_azD.js → elapsed-time-CR9OIZSD.js} +6 -6
  62. package/dist/{elapsed-time-CtNv_azD.js.map → elapsed-time-CR9OIZSD.js.map} +1 -1
  63. package/dist/{entry-D8cla8ZV.js → entry-CSoHtCQ9.js} +11 -11
  64. package/dist/{entry-D8cla8ZV.js.map → entry-CSoHtCQ9.js.map} +1 -1
  65. package/dist/{installation-inventory-DDLKowYl.js → installation-inventory-CscX0nmD.js} +5 -5
  66. package/dist/{installation-inventory-DDLKowYl.js.map → installation-inventory-CscX0nmD.js.map} +1 -1
  67. package/dist/{installer-DWcT57F5.js → installer-CkF3gSdD.js} +2 -2
  68. package/dist/{installer-DWcT57F5.js.map → installer-CkF3gSdD.js.map} +1 -1
  69. package/dist/{lock-CAt9uTnZ.js → lock-Bsl_ElWy.js} +2 -2
  70. package/dist/{lock-CAt9uTnZ.js.map → lock-Bsl_ElWy.js.map} +1 -1
  71. package/dist/{openmeld-B3fWugAi.js → openmeld-BcyBlby4.js} +48 -44
  72. package/dist/openmeld-BcyBlby4.js.map +1 -0
  73. package/dist/openmeld-dev.js +1 -1
  74. package/dist/{openmeld-environment-target-dXGKoZuo.js → openmeld-environment-target-B6HqY0_a.js} +3 -3
  75. package/dist/{openmeld-environment-target-dXGKoZuo.js.map → openmeld-environment-target-B6HqY0_a.js.map} +1 -1
  76. package/dist/{openmeld-maintenance-worker-DWaFW0td.js → openmeld-maintenance-worker-Brsfy22C.js} +14 -14
  77. package/dist/{openmeld-maintenance-worker-DWaFW0td.js.map → openmeld-maintenance-worker-Brsfy22C.js.map} +1 -1
  78. package/dist/{openmeld-tools-update-join-C5OotAUF.js → openmeld-tools-update-join-CUh0JERe.js} +4 -4
  79. package/dist/{openmeld-tools-update-join-C5OotAUF.js.map → openmeld-tools-update-join-CUh0JERe.js.map} +1 -1
  80. package/dist/{openmeld-tools-update-process-frame-0X-t0Kjv.js → openmeld-tools-update-process-frame-B-XB4dmO.js} +2 -2
  81. package/dist/{openmeld-tools-update-process-frame-0X-t0Kjv.js.map → openmeld-tools-update-process-frame-B-XB4dmO.js.map} +1 -1
  82. package/dist/{openmeld-tools-update-process-frame-DX1Dc8VI.js → openmeld-tools-update-process-frame-j-RXwFsK.js} +1 -1
  83. package/dist/openmeld.js +5 -5
  84. package/dist/{prepare-provider-runtime-CMX59Gmv.js → prepare-provider-runtime-DxaGSe3R.js} +1260 -200
  85. package/dist/prepare-provider-runtime-DxaGSe3R.js.map +1 -0
  86. package/dist/{prepare-session-executor-BfYmxM6n.js → prepare-session-executor-CyouBl49.js} +25 -25
  87. package/dist/{prepare-session-executor-BfYmxM6n.js.map → prepare-session-executor-CyouBl49.js.map} +1 -1
  88. package/dist/{process-channel-8KzXhiJa.js → process-channel-Cocpv3Br.js} +2 -2
  89. package/dist/{process-channel-8KzXhiJa.js.map → process-channel-Cocpv3Br.js.map} +1 -1
  90. package/dist/{process-identity-Clby123a.js → process-identity-CNus0e6E.js} +3 -2
  91. package/dist/process-identity-CNus0e6E.js.map +1 -0
  92. package/dist/{published-production-safety-C4uPjpYe.js → published-production-safety-dp-fOmmB.js} +2 -2
  93. package/dist/{published-production-safety-C4uPjpYe.js.map → published-production-safety-dp-fOmmB.js.map} +1 -1
  94. package/dist/{runtime-CbAkLHoN.js → runtime-DGT66AR-.js} +20 -20
  95. package/dist/{runtime-CbAkLHoN.js.map → runtime-DGT66AR-.js.map} +1 -1
  96. package/dist/{runtime-agent-controller-reporting-submission-C0ZsJp2Y.js → runtime-agent-controller-reporting-submission-C1Vc_JWm.js} +60 -10
  97. package/dist/runtime-agent-controller-reporting-submission-C1Vc_JWm.js.map +1 -0
  98. package/dist/{runtime-reporting-health-state-za-84KvT.js → runtime-reporting-health-state-CPWlQ5IX.js} +12 -12
  99. package/dist/{runtime-reporting-health-state-za-84KvT.js.map → runtime-reporting-health-state-CPWlQ5IX.js.map} +1 -1
  100. package/dist/{runtime-transport-CVtBXzIp.js → runtime-transport-BLtOFrtv.js} +64 -11
  101. package/dist/runtime-transport-BLtOFrtv.js.map +1 -0
  102. package/dist/{service-DDYwhWFs.js → service-ClETdJbz.js} +54 -33
  103. package/dist/service-ClETdJbz.js.map +1 -0
  104. package/dist/{service-account-authorization-CI_QP6KS.js → service-account-authorization-kciEaW5t.js} +6 -6
  105. package/dist/{service-account-authorization-CI_QP6KS.js.map → service-account-authorization-kciEaW5t.js.map} +1 -1
  106. package/dist/{service-account-control-BAfBFVMv.js → service-account-control-3n_YwNsF.js} +14 -14
  107. package/dist/{service-account-control-BAfBFVMv.js.map → service-account-control-3n_YwNsF.js.map} +1 -1
  108. package/dist/{service-control-capabilities-BpjxqSzo.js → service-control-capabilities-C2tMMuFl.js} +5 -5
  109. package/dist/{service-control-capabilities-BpjxqSzo.js.map → service-control-capabilities-C2tMMuFl.js.map} +1 -1
  110. package/dist/{service-control-capabilities-CAvcBYz7.js → service-control-capabilities-DoW5MW7A.js} +1 -1
  111. package/dist/{service-control-carrier-capability-hvpD7hGf.js → service-control-carrier-capability-DDNyE5cB.js} +2 -2
  112. package/dist/{service-control-carrier-capability-hvpD7hGf.js.map → service-control-carrier-capability-DDNyE5cB.js.map} +1 -1
  113. package/dist/{state-1l1SJPpK.js → state-CMs4p0wo.js} +3 -3
  114. package/dist/{state-1l1SJPpK.js.map → state-CMs4p0wo.js.map} +1 -1
  115. package/dist/{upgrade-Bz8rRQiA.js → upgrade-2epQATRq.js} +8 -8
  116. package/dist/{upgrade-Bz8rRQiA.js.map → upgrade-2epQATRq.js.map} +1 -1
  117. package/dist/upgrade-BVIot_cP.js +4 -0
  118. package/dist/{windows-user-task-i0oHCBc0.js → windows-user-task-CSJpDs-S.js} +4 -4
  119. package/dist/{windows-user-task-i0oHCBc0.js.map → windows-user-task-CSJpDs-S.js.map} +1 -1
  120. package/dist/{windows-user-task-FdycoSb4.js → windows-user-task-CWDzkJCq.js} +1 -1
  121. package/package.json +4 -3
  122. package/skills/openmeld-cli/playbooks/agent-onboarding.md +15 -0
  123. package/dist/auth-session-DxQxcD2e.js +0 -4
  124. package/dist/command-DJDcTWMC.js.map +0 -1
  125. package/dist/controller-contract-pe3_Re-c.js.map +0 -1
  126. package/dist/daemon-frame-transport-BI53VLpj.js.map +0 -1
  127. package/dist/dist-CkGG099H.js.map +0 -1
  128. package/dist/dist-o3UL1EGQ.js.map +0 -1
  129. package/dist/openmeld-B3fWugAi.js.map +0 -1
  130. package/dist/prepare-provider-runtime-CMX59Gmv.js.map +0 -1
  131. package/dist/process-identity-Clby123a.js.map +0 -1
  132. package/dist/runtime-agent-controller-reporting-submission-C0ZsJp2Y.js.map +0 -1
  133. package/dist/runtime-transport-CVtBXzIp.js.map +0 -1
  134. package/dist/service-DDYwhWFs.js.map +0 -1
  135. package/dist/upgrade-DhFOD8dL.js +0 -4
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
 
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-CAt9uTnZ.js";
4
- import { Kt as createLocalRuntimeExpectedRoutesApi, Mr as modelCatalogSchema, Mt as createAgentProfileBindingApi, t as OpenMeldApiClientHttpError } from "./dist-CkGG099H.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-pe3_Re-c.js";
6
- import { H as OPENMELD_ORIGINAL_ERROR_MAX_LENGTH, Hn as normalizeMessageEnvelope, J as openMeldDaemonTaskResultOpenClawGatewayVisibilityStatusSchema, K as openMeldDaemonProviderAccessEvidenceSchema, U as isOriginalErrorSafeForMessageDetails, or as agentInteractionResolutionSchema, q as openMeldDaemonTaskResultEnvelopeWriteSchema, t as CURRENT_DAEMON_EXECUTION_CONTRACT_EPOCH, ui as resolveCommandAgentWorkActivity, zn as formatCanonicalMentionLiteral } from "./runtime-transport-CVtBXzIp.js";
7
- import { d as getAuthSessionState, q as OPENCLAW_CLI_TIMEOUT_MS$1 } from "./auth-session-CunWE9Up.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-DKPz7DMv.js";
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, Mt as createAgentProfileBindingApi, mi as modelCatalogSchema, t as OpenMeldApiClientHttpError } from "./dist-DkRliHib.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-BLtOFrtv.js";
7
+ import { d as getAuthSessionState, q as OPENCLAW_CLI_TIMEOUT_MS$1 } from "./auth-session-DOjVKRI_.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
10
  import { n as agentControllerPermissionModeSchema, r as agentControllerCollaborationModeSchema } from "./open-code-permission-Doem1R2N.js";
11
- import { U as listOpenMeldProfiles, X as touchDaemonCatalogSyncSignal, _ as toErrorMessage$19, 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$49, ut as daemonRouteCatalogCacheSchema } from "./daemon-device-id-DCsEEIDx.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-BczddvzH.js";
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-Clby123a.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-bfkbZj9G.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
+ 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
- import { m as daemonRuntimeDataPath } from "./daemon-state-CoAZLwpi.js";
16
- import { i as readDaemonServiceContract } from "./daemon-service-contract-XfV9t96H.js";
17
- import { C as requestLocalSyncRouteCatalog } from "./daemon-lifecycle-journal-CoWJG0xk.js";
18
- import { d as buildOpenMeldRequestContextFromProfile, t as createCliApiClientFoundation } from "./api-client-foundation-y_0cvP4z.js";
15
+ import { m as daemonRuntimeDataPath } from "./daemon-state-B44aq2nm.js";
16
+ import { i as readDaemonServiceContract } from "./daemon-service-contract-BpOBMGX0.js";
17
+ import { C as requestLocalSyncRouteCatalog } from "./daemon-lifecycle-journal-DP01txRB.js";
18
+ import { d as buildOpenMeldRequestContextFromProfile, t as createCliApiClientFoundation } from "./api-client-foundation-Cib1elkI.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: [
@@ -719,6 +730,7 @@ function isAgentControllerPermissionModeControllerId(value) {
719
730
  return Object.hasOwn(AGENT_CONTROLLER_PERMISSION_MODE_OPTIONS_BY_CONTROLLER_ID, value);
720
731
  }
721
732
  const AGENT_CONTROLLER_USAGE_LIMIT_SUPPORT_MATRIX = {
733
+ antigravity: "native",
722
734
  "claude-code": "passive",
723
735
  codex: "native",
724
736
  cursor: "unsupported",
@@ -1953,20 +1965,50 @@ var registry_default$1 = {
1953
1965
  "id": "antigravity",
1954
1966
  "displayName": "Antigravity",
1955
1967
  "category": "builtin",
1956
- "skillsDir": ".agent/skills",
1957
- "globalSkillsDir": "${HOME}/.gemini/antigravity/skills",
1968
+ "skillsDir": ".agents/skills",
1969
+ "globalSkillsDir": ["${HOME}/.gemini/antigravity-cli/skills", "${HOME}/.gemini/antigravity/skills"],
1958
1970
  "detection": {
1959
1971
  "mode": "any",
1960
- "checks": [{
1961
- "kind": "pathExists",
1962
- "value": "${HOME}/.gemini/antigravity"
1963
- }]
1972
+ "checks": [
1973
+ {
1974
+ "kind": "commandExists",
1975
+ "value": "agy"
1976
+ },
1977
+ {
1978
+ "kind": "pathExists",
1979
+ "value": "${HOME}/.gemini/antigravity-cli"
1980
+ },
1981
+ {
1982
+ "kind": "pathExists",
1983
+ "value": "${HOME}/.gemini/antigravity"
1984
+ }
1985
+ ]
1964
1986
  },
1965
1987
  "service": { "skillsInstallable": true },
1966
1988
  "runtime": {
1967
- "supported": false,
1968
- "adapters": []
1969
- }
1989
+ "supported": true,
1990
+ "adapters": [{
1991
+ "adapterId": "antigravity",
1992
+ "controllerRefMatcher": {
1993
+ "kind": "contains",
1994
+ "values": ["antigravity"]
1995
+ },
1996
+ "transportModes": ["local-cli"],
1997
+ "capabilityDeclaration": {
1998
+ "executionContextVersion": 2,
1999
+ "streamingCapability": "preview_capable",
2000
+ "imageInputCapability": "unsupported",
2001
+ "runtimeWorkingDirectoryMode": "spawn_cwd",
2002
+ "preparationRequirement": "none",
2003
+ "continuationCapability": "standard",
2004
+ "workspaceResumeBehavior": "validate_only"
2005
+ }
2006
+ }]
2007
+ },
2008
+ "lifecycle": { "status": "active" },
2009
+ "transportModes": ["local-cli"],
2010
+ "defaultTransportMode": "local-cli",
2011
+ "defaultStreamingMode": "stream"
1970
2012
  },
1971
2013
  {
1972
2014
  "id": "augment",
@@ -2931,7 +2973,7 @@ function resolveConversationPolicyFromModelSelection(input) {
2931
2973
  conversationPolicy: {}
2932
2974
  };
2933
2975
  if (!selection) {
2934
- if (parsedRef.kind === "builtin" && parsedRef.id === "codex" && normalizeOptionalText$48(input.agentControllerConversationId)) return {
2976
+ if (parsedRef.kind === "builtin" && parsedRef.id === "codex" && normalizeOptionalText$51(input.agentControllerConversationId)) return {
2935
2977
  status: "accepted",
2936
2978
  conversationPolicy: {}
2937
2979
  };
@@ -2955,7 +2997,7 @@ function resolveConversationPolicyFromModelSelection(input) {
2955
2997
  }
2956
2998
  };
2957
2999
  }
2958
- function normalizeOptionalText$48(value) {
3000
+ function normalizeOptionalText$51(value) {
2959
3001
  const normalized = String(value ?? "").trim();
2960
3002
  return normalized.length > 0 ? normalized : null;
2961
3003
  }
@@ -3982,8 +4024,8 @@ var CliDriverError = class extends Error {
3982
4024
  async function runCliDriver(input) {
3983
4025
  const args = [...input.args];
3984
4026
  const timeoutMs = normalizeTimeoutMs(input.timeoutMs);
3985
- const binary = normalizeRequiredText(input.bin, "bin");
3986
- const cwd = normalizeRequiredText(input.cwd, "cwd");
4027
+ const binary = normalizeRequiredText$1(input.bin, "bin");
4028
+ const cwd = normalizeRequiredText$1(input.cwd, "cwd");
3987
4029
  return await new Promise((resolve, reject) => {
3988
4030
  const runtimeProcess = spawnAgentControllerProcess({
3989
4031
  args,
@@ -4218,7 +4260,7 @@ const resolveCliDriverCloseFailure = (input) => {
4218
4260
  stdoutText: input.stdoutText
4219
4261
  });
4220
4262
  };
4221
- const normalizeRequiredText = (value, field) => {
4263
+ const normalizeRequiredText$1 = (value, field) => {
4222
4264
  const normalized = value.trim();
4223
4265
  if (!normalized) throw new CliDriverError({
4224
4266
  code: "input.invalid",
@@ -4274,8 +4316,8 @@ const MACOS_TEMP_FOLDER_RE = /^\/var\/folders\/[^/]+\/[^/]+\/t(?:\/|$)/u;
4274
4316
  const WRAPPER_PATH_SEGMENT_RE = /(?:^|[-_.])(?:shim|shims|wrapper|wrappers)(?:$|[-_.])/u;
4275
4317
  const MAX_LAUNCH_SCRIPT_INSPECTION_BYTES = 64 * 1024;
4276
4318
  const DEFAULT_LOGIN_SHELL_LOOKUP_TIMEOUT_MS = 1500;
4277
- const HOME_DIR = normalizeOptionalText$47(homedir());
4278
- const TEMP_DIR = normalizeOptionalText$47(tmpdir());
4319
+ const HOME_DIR = normalizeOptionalText$50(homedir());
4320
+ const TEMP_DIR = normalizeOptionalText$50(tmpdir());
4279
4321
  const loginShellExecutablePathsCache = /* @__PURE__ */ new Map();
4280
4322
  function buildExecutableLaunchContract(input) {
4281
4323
  return {
@@ -4323,7 +4365,7 @@ async function verifyLaunchContractFiles(input) {
4323
4365
  };
4324
4366
  } catch (error) {
4325
4367
  return {
4326
- errorMessage: toErrorMessage$18(error),
4368
+ errorMessage: toErrorMessage$19(error),
4327
4369
  failureKind: "completed_negative",
4328
4370
  ok: false
4329
4371
  };
@@ -4352,7 +4394,7 @@ async function verifyCliLaunchContract(input) {
4352
4394
  return fileCheck;
4353
4395
  } catch (error) {
4354
4396
  return {
4355
- errorMessage: `${input.displayName} can't start on this device: ${toErrorMessage$18(error)}`,
4397
+ errorMessage: `${input.displayName} can't start on this device: ${toErrorMessage$19(error)}`,
4356
4398
  failureKind: classifyLaunchContractVerificationFailure(error),
4357
4399
  ok: false
4358
4400
  };
@@ -4468,7 +4510,7 @@ async function inspectInstalledNodeScriptLaunchCandidate(input) {
4468
4510
  };
4469
4511
  } catch (error) {
4470
4512
  return {
4471
- errorMessage: `${input.displayName} is installed, but OpenMeld could not inspect its launch files: ${toErrorMessage$18(error)}`,
4513
+ errorMessage: `${input.displayName} is installed, but OpenMeld could not inspect its launch files: ${toErrorMessage$19(error)}`,
4472
4514
  ok: false
4473
4515
  };
4474
4516
  }
@@ -4477,7 +4519,7 @@ function resolveInstalledCommandPath(input) {
4477
4519
  return resolveInstalledCommandPaths(input)[0] ?? null;
4478
4520
  }
4479
4521
  function resolveInstalledCommandPaths(input) {
4480
- const configuredCommand = normalizeOptionalText$47(input.configuredCommand);
4522
+ const configuredCommand = normalizeOptionalText$50(input.configuredCommand);
4481
4523
  if (configuredCommand) {
4482
4524
  if (isAbsolute(configuredCommand)) return [configuredCommand];
4483
4525
  if (configuredCommand.includes("/") || configuredCommand.includes("\\")) return [];
@@ -4486,9 +4528,9 @@ function resolveInstalledCommandPaths(input) {
4486
4528
  return resolveExecutablePathsOnPath(input.commandName);
4487
4529
  }
4488
4530
  async function resolveInstalledCommandPathsForLaunch(input) {
4489
- const preferredCommandPath = normalizeOptionalText$47(input.preferredCommandPath);
4531
+ const preferredCommandPath = normalizeOptionalText$50(input.preferredCommandPath);
4490
4532
  const preferredCommandPaths = preferredCommandPath && isAbsolute(preferredCommandPath) ? [preferredCommandPath] : [];
4491
- const configuredCommand = normalizeOptionalText$47(input.configuredCommand);
4533
+ const configuredCommand = normalizeOptionalText$50(input.configuredCommand);
4492
4534
  if (configuredCommand) {
4493
4535
  if (isAbsolute(configuredCommand)) return mergeUniquePaths(preferredCommandPaths, [configuredCommand]);
4494
4536
  if (configuredCommand.includes("/") || configuredCommand.includes("\\")) return preferredCommandPaths;
@@ -4506,7 +4548,7 @@ function resolveExecutableOnPath(commandName) {
4506
4548
  return resolveExecutablePathsOnPath(commandName)[0] ?? null;
4507
4549
  }
4508
4550
  function resolveExecutablePathsOnPath(commandName) {
4509
- const normalizedCommandName = normalizeOptionalText$47(commandName);
4551
+ const normalizedCommandName = normalizeOptionalText$50(commandName);
4510
4552
  if (!normalizedCommandName) return [];
4511
4553
  const resolvedPaths = [];
4512
4554
  for (const directory of resolvePathDirectories()) for (const candidateName of resolveCommandFileNameCandidates(normalizedCommandName)) {
@@ -4528,7 +4570,7 @@ async function resolveExecutablePathsFromSearchSurface(input) {
4528
4570
  }
4529
4571
  function resolvePathDirectories() {
4530
4572
  const directories = [];
4531
- const pathValue = normalizeOptionalText$47(process.env.PATH);
4573
+ const pathValue = normalizeOptionalText$50(process.env.PATH);
4532
4574
  for (const pathEntry of pathValue?.split(delimiter) ?? []) addUniqueDirectory(directories, pathEntry);
4533
4575
  return directories;
4534
4576
  }
@@ -4539,7 +4581,7 @@ function resolveExecutablePathsFromKnownInstallDirectories(commandName) {
4539
4581
  });
4540
4582
  }
4541
4583
  function resolveExecutablePathsFromDirectories(input) {
4542
- const normalizedCommandName = normalizeOptionalText$47(input.commandName);
4584
+ const normalizedCommandName = normalizeOptionalText$50(input.commandName);
4543
4585
  if (!normalizedCommandName) return [];
4544
4586
  const resolvedPaths = [];
4545
4587
  for (const directory of input.directories) for (const candidateName of resolveCommandFileNameCandidates(normalizedCommandName)) {
@@ -4552,12 +4594,12 @@ function resolveKnownInstallDirectories() {
4552
4594
  const directories = [];
4553
4595
  if (process.platform === "win32") return directories;
4554
4596
  const home = resolveHomeDirectory();
4555
- const nvmDir = normalizeOptionalText$47(process.env.NVM_DIR) ?? join(home, ".nvm");
4556
- const pnpmHome = normalizeOptionalText$47(process.env.PNPM_HOME) ?? (process.platform === "darwin" ? join(home, "Library", "pnpm") : join(home, ".local", "share", "pnpm"));
4557
- const bunHome = normalizeOptionalText$47(process.env.BUN_INSTALL) ?? join(home, ".bun");
4558
- const voltaHome = normalizeOptionalText$47(process.env.VOLTA_HOME) ?? join(home, ".volta");
4559
- const asdfHome = normalizeOptionalText$47(process.env.ASDF_DIR) ?? join(home, ".asdf");
4560
- const fnmHome = normalizeOptionalText$47(process.env.FNM_DIR) ?? join(home, ".fnm");
4597
+ const nvmDir = normalizeOptionalText$50(process.env.NVM_DIR) ?? join(home, ".nvm");
4598
+ const pnpmHome = normalizeOptionalText$50(process.env.PNPM_HOME) ?? (process.platform === "darwin" ? join(home, "Library", "pnpm") : join(home, ".local", "share", "pnpm"));
4599
+ const bunHome = normalizeOptionalText$50(process.env.BUN_INSTALL) ?? join(home, ".bun");
4600
+ const voltaHome = normalizeOptionalText$50(process.env.VOLTA_HOME) ?? join(home, ".volta");
4601
+ const asdfHome = normalizeOptionalText$50(process.env.ASDF_DIR) ?? join(home, ".asdf");
4602
+ const fnmHome = normalizeOptionalText$50(process.env.FNM_DIR) ?? join(home, ".fnm");
4561
4603
  addUniqueDirectory(directories, join(home, ".local", "bin"));
4562
4604
  addUniqueDirectory(directories, "/usr/local/bin");
4563
4605
  addUniqueDirectory(directories, "/opt/homebrew/bin");
@@ -4572,18 +4614,18 @@ function resolveKnownInstallDirectories() {
4572
4614
  addUniqueDirectory(directories, join(home, ".local", "share", "fnm", "aliases", "default", "bin"));
4573
4615
  addUniqueDirectory(directories, join(home, ".local", "share", "fnm", "current", "bin"));
4574
4616
  for (const nvmBinDir of resolveNvmDefaultBinDirectories(nvmDir)) addUniqueDirectory(directories, nvmBinDir);
4575
- const npmConfigPrefix = normalizeOptionalText$47(process.env.NPM_CONFIG_PREFIX);
4617
+ const npmConfigPrefix = normalizeOptionalText$50(process.env.NPM_CONFIG_PREFIX);
4576
4618
  if (npmConfigPrefix) addUniqueDirectory(directories, join(npmConfigPrefix, "bin"));
4577
4619
  return directories;
4578
4620
  }
4579
4621
  function addUniqueDirectory(directories, value) {
4580
- const directory = normalizeOptionalText$47(value);
4622
+ const directory = normalizeOptionalText$50(value);
4581
4623
  if (directory && !directories.includes(directory)) directories.push(directory);
4582
4624
  }
4583
4625
  async function resolveExecutablePathsFromLoginShell(commandName) {
4584
- const normalizedCommandName = normalizeOptionalText$47(commandName);
4626
+ const normalizedCommandName = normalizeOptionalText$50(commandName);
4585
4627
  if (!(normalizedCommandName && process.platform !== "win32")) return [];
4586
- const shell = normalizeOptionalText$47(process.env.SHELL);
4628
+ const shell = normalizeOptionalText$50(process.env.SHELL);
4587
4629
  if (!(shell && isAbsolute(shell) && pathLooksExecutable(shell))) return [];
4588
4630
  const cacheKey = [
4589
4631
  shell,
@@ -4636,7 +4678,7 @@ async function runLoginShellExecutableLookup(input) {
4636
4678
  finish([]);
4637
4679
  return;
4638
4680
  }
4639
- finish(stdout.split(LOGIN_SHELL_OUTPUT_LINE_SPLIT_RE).map((line) => normalizeOptionalText$47(line)).filter((line) => Boolean(line && isAbsolute(line) && pathLooksExecutable(line))));
4681
+ finish(stdout.split(LOGIN_SHELL_OUTPUT_LINE_SPLIT_RE).map((line) => normalizeOptionalText$50(line)).filter((line) => Boolean(line && isAbsolute(line) && pathLooksExecutable(line))));
4640
4682
  });
4641
4683
  });
4642
4684
  }
@@ -4649,7 +4691,7 @@ function resolveNvmDefaultVersion(nvmDir) {
4649
4691
  let value = readNvmAlias(nvmDir, "default");
4650
4692
  const seenAliases = /* @__PURE__ */ new Set();
4651
4693
  for (let depth = 0; depth < 4; depth += 1) {
4652
- const normalizedValue = normalizeOptionalText$47(value);
4694
+ const normalizedValue = normalizeOptionalText$50(value);
4653
4695
  if (!normalizedValue) return null;
4654
4696
  if (isNvmVersionValue(normalizedValue)) return normalizedValue.startsWith("v") ? normalizedValue : `v${normalizedValue}`;
4655
4697
  if (seenAliases.has(normalizedValue)) return null;
@@ -4660,7 +4702,7 @@ function resolveNvmDefaultVersion(nvmDir) {
4660
4702
  }
4661
4703
  function readNvmAlias(nvmDir, alias) {
4662
4704
  try {
4663
- return normalizeOptionalText$47(readFileSync(join(nvmDir, "alias", alias), "utf8"));
4705
+ return normalizeOptionalText$50(readFileSync(join(nvmDir, "alias", alias), "utf8"));
4664
4706
  } catch {
4665
4707
  return null;
4666
4708
  }
@@ -4669,10 +4711,10 @@ function isNvmVersionValue(value) {
4669
4711
  return NVM_VERSION_VALUE_RE.test(value);
4670
4712
  }
4671
4713
  function resolveHomeDirectory() {
4672
- return normalizeOptionalText$47(process.env.HOME) ?? homedir();
4714
+ return normalizeOptionalText$50(process.env.HOME) ?? homedir();
4673
4715
  }
4674
4716
  function resolveLoginShellLookupTimeoutMs() {
4675
- const raw = normalizeOptionalText$47(process.env.OPENMELD_EXECUTABLE_LOGIN_SHELL_TIMEOUT_MS);
4717
+ const raw = normalizeOptionalText$50(process.env.OPENMELD_EXECUTABLE_LOGIN_SHELL_TIMEOUT_MS);
4676
4718
  if (!raw) return DEFAULT_LOGIN_SHELL_LOOKUP_TIMEOUT_MS;
4677
4719
  const parsed = Number.parseInt(raw, 10);
4678
4720
  return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_LOGIN_SHELL_LOOKUP_TIMEOUT_MS;
@@ -4687,7 +4729,7 @@ function quotePosixShellToken$1(value) {
4687
4729
  return `'${value.replaceAll("'", "'\\''")}'`;
4688
4730
  }
4689
4731
  function resolveSiblingCommandPath(input) {
4690
- const normalizedCommandName = normalizeOptionalText$47(input.commandName);
4732
+ const normalizedCommandName = normalizeOptionalText$50(input.commandName);
4691
4733
  if (!normalizedCommandName) return null;
4692
4734
  const siblingDirectory = dirname(input.anchorPath);
4693
4735
  for (const candidateName of resolveCommandFileNameCandidates(normalizedCommandName)) {
@@ -4697,7 +4739,7 @@ function resolveSiblingCommandPath(input) {
4697
4739
  return null;
4698
4740
  }
4699
4741
  async function resolvePinnedNodePath(input) {
4700
- const firstLine = normalizeOptionalText$47(input.firstLine);
4742
+ const firstLine = normalizeOptionalText$50(input.firstLine);
4701
4743
  if (!firstLine) return null;
4702
4744
  if (firstLine === ENV_NODE_SHEBANG) {
4703
4745
  const nodeSiblings = [join(dirname(input.commandPath), "node"), join(dirname(input.scriptPath), "node")].filter((candidate, index, candidates) => {
@@ -4707,7 +4749,7 @@ async function resolvePinnedNodePath(input) {
4707
4749
  return null;
4708
4750
  }
4709
4751
  if (!firstLine.startsWith("#!")) return null;
4710
- const interpreter = normalizeOptionalText$47(firstLine.slice(2));
4752
+ const interpreter = normalizeOptionalText$50(firstLine.slice(2));
4711
4753
  if (!(interpreter && isAbsolute(interpreter))) return null;
4712
4754
  const normalizedInterpreter = interpreter.split(SHEBANG_ARGS_SPLIT_RE, 1)[0] ?? interpreter;
4713
4755
  try {
@@ -4755,11 +4797,11 @@ function resolveRunnablePathAccessMode() {
4755
4797
  return process.platform === "win32" ? constants.F_OK : constants.X_OK;
4756
4798
  }
4757
4799
  function resolveWindowsPathExtensions(value) {
4758
- const normalized = normalizeOptionalText$47(value);
4800
+ const normalized = normalizeOptionalText$50(value);
4759
4801
  if (!normalized) return [...WINDOWS_PATHEXT];
4760
4802
  return normalized.split(";").map((entry) => entry.trim().toLowerCase()).filter((entry, index, values) => entry && values.indexOf(entry) === index).map((entry) => entry.startsWith(".") ? entry : `.${entry}`);
4761
4803
  }
4762
- function normalizeOptionalText$47(value) {
4804
+ function normalizeOptionalText$50(value) {
4763
4805
  const normalized = String(value ?? "").trim();
4764
4806
  return normalized.length > 0 ? normalized : null;
4765
4807
  }
@@ -4853,7 +4895,7 @@ function shortenPathForDisplay(path) {
4853
4895
  return `~${path.slice(HOME_DIR.length)}`;
4854
4896
  }
4855
4897
  function resolveNodeVersionFromPath(path) {
4856
- return normalizeOptionalText$47(path.match(NODE_VERSION_PATH_RE)?.[1]);
4898
+ return normalizeOptionalText$50(path.match(NODE_VERSION_PATH_RE)?.[1]);
4857
4899
  }
4858
4900
  async function readLaunchScriptInspection(path) {
4859
4901
  const file = await open(path, "r");
@@ -4868,7 +4910,7 @@ async function readLaunchScriptInspection(path) {
4868
4910
  const firstLine = contents.split(FIRST_LINE_SPLIT_RE, 1)[0] ?? "";
4869
4911
  return {
4870
4912
  contents,
4871
- firstLine: normalizeOptionalText$47(firstLine)
4913
+ firstLine: normalizeOptionalText$50(firstLine)
4872
4914
  };
4873
4915
  }
4874
4916
  function isTransientPathWrapper(input) {
@@ -4885,7 +4927,7 @@ function hasWrapperPathSegment(path) {
4885
4927
  return normalizePathForDetection(path).split("/").filter((segment) => segment.length > 0).slice(-4).some((segment) => WRAPPER_PATH_SEGMENT_RE.test(segment));
4886
4928
  }
4887
4929
  function shellScriptLooksLikeWrapper(input) {
4888
- const firstLine = normalizeOptionalText$47(input.firstLine)?.toLowerCase() ?? "";
4930
+ const firstLine = normalizeOptionalText$50(input.firstLine)?.toLowerCase() ?? "";
4889
4931
  if (!(firstLine.includes("bash") || firstLine.includes("/sh") || firstLine.includes("zsh"))) return false;
4890
4932
  const contents = input.contents.toLowerCase();
4891
4933
  return contents.includes("wrapper_shim") || contents.includes("shim_root") || contents.includes("\nexec ") && (contents.includes("wrapper") || contents.includes("shim"));
@@ -4896,7 +4938,7 @@ function normalizePathForDetection(path) {
4896
4938
  function pathIsEqualOrDescendant(path, parentPath) {
4897
4939
  return path === parentPath || path.startsWith(`${parentPath}/`);
4898
4940
  }
4899
- function toErrorMessage$18(error) {
4941
+ function toErrorMessage$19(error) {
4900
4942
  return error instanceof Error ? error.message : String(error);
4901
4943
  }
4902
4944
  //#endregion
@@ -5174,7 +5216,7 @@ var AcpProcessSession = class {
5174
5216
  cause: error,
5175
5217
  code: "protocol.invalid",
5176
5218
  errorType: "adapter",
5177
- message: `protocol.invalid: ${this.#processLabel} ACP emitted non-JSON-RPC output (${toErrorMessage$17(error)})`
5219
+ message: `protocol.invalid: ${this.#processLabel} ACP emitted non-JSON-RPC output (${toErrorMessage$18(error)})`
5178
5220
  }));
5179
5221
  return;
5180
5222
  }
@@ -5254,7 +5296,7 @@ var AcpProcessSession = class {
5254
5296
  let code = "protocol.request_failed";
5255
5297
  if (error.code === -32601) code = "protocol.method_not_found";
5256
5298
  else if (error.code === -32602) code = "protocol.invalid_params";
5257
- const message = normalizeOptionalText$46(error.message) ?? "ACP request failed";
5299
+ const message = normalizeOptionalText$49(error.message) ?? "ACP request failed";
5258
5300
  return this.#error({
5259
5301
  code,
5260
5302
  errorType: "adapter",
@@ -5332,11 +5374,11 @@ var AcpProcessSession = class {
5332
5374
  return this.#createError(input);
5333
5375
  }
5334
5376
  };
5335
- function normalizeOptionalText$46(value) {
5377
+ function normalizeOptionalText$49(value) {
5336
5378
  const normalized = String(value ?? "").trim();
5337
5379
  return normalized.length > 0 ? normalized : null;
5338
5380
  }
5339
- function toErrorMessage$17(error) {
5381
+ function toErrorMessage$18(error) {
5340
5382
  return error instanceof Error ? error.message : String(error);
5341
5383
  }
5342
5384
  //#endregion
@@ -5452,7 +5494,7 @@ function resolveFileWorkActivity(input, operation) {
5452
5494
  };
5453
5495
  }
5454
5496
  function readCommand(value) {
5455
- const command = toRecord$14(value)?.command;
5497
+ const command = toRecord$16(value)?.command;
5456
5498
  if (typeof command === "string" && command.trim().length > 0) return command;
5457
5499
  if (Array.isArray(command)) {
5458
5500
  const joined = command.filter((part) => typeof part === "string").join(" ").trim();
@@ -5461,14 +5503,14 @@ function readCommand(value) {
5461
5503
  return null;
5462
5504
  }
5463
5505
  function readFilePath$1(value) {
5464
- const record = toRecord$14(value);
5506
+ const record = toRecord$16(value);
5465
5507
  for (const candidate of [
5466
5508
  record?.file_path,
5467
5509
  record?.filePath,
5468
5510
  record?.path
5469
5511
  ]) if (typeof candidate === "string" && candidate.trim().length > 0) return candidate.trim();
5470
5512
  if (Array.isArray(record?.changes)) for (const change of record.changes) {
5471
- const path = toRecord$14(change)?.path;
5513
+ const path = toRecord$16(change)?.path;
5472
5514
  if (typeof path === "string" && path.trim().length > 0) return path.trim();
5473
5515
  }
5474
5516
  return null;
@@ -5476,7 +5518,7 @@ function readFilePath$1(value) {
5476
5518
  function normalizeProviderToolName(value) {
5477
5519
  return typeof value === "string" ? value.trim().toLowerCase() : "";
5478
5520
  }
5479
- function toRecord$14(value) {
5521
+ function toRecord$16(value) {
5480
5522
  return value && typeof value === "object" && !Array.isArray(value) ? value : null;
5481
5523
  }
5482
5524
  //#endregion
@@ -5520,22 +5562,22 @@ function createAcpToolActivityTracker() {
5520
5562
  } };
5521
5563
  }
5522
5564
  function extractAcpToolActivityObservation(value) {
5523
- const message = toRecord$13(value);
5565
+ const message = toRecord$15(value);
5524
5566
  if (message?.method !== "session/update") return null;
5525
- const params = toRecord$13(message.params);
5526
- const update = toRecord$13(params?.update);
5527
- const updateType = normalizeOptionalText$45(update?.sessionUpdate);
5567
+ const params = toRecord$15(message.params);
5568
+ const update = toRecord$15(params?.update);
5569
+ const updateType = normalizeOptionalText$48(update?.sessionUpdate);
5528
5570
  if (!(update && (updateType === "tool_call" || updateType === "tool_call_update"))) return null;
5529
- const toolCallId = normalizeOptionalText$45(update.toolCallId ?? update.tool_call_id);
5571
+ const toolCallId = normalizeOptionalText$48(update.toolCallId ?? update.tool_call_id);
5530
5572
  if (!toolCallId) return null;
5531
- const sessionId = normalizeOptionalText$45(params?.sessionId);
5573
+ const sessionId = normalizeOptionalText$48(params?.sessionId);
5532
5574
  return {
5533
5575
  ...Object.hasOwn(update, "rawInput") ? { providerInput: update.rawInput } : {},
5534
- providerKind: normalizeOptionalText$45(update.kind),
5576
+ providerKind: normalizeOptionalText$48(update.kind),
5535
5577
  ...Object.hasOwn(update, "locations") ? { providerLocations: update.locations } : {},
5536
- providerTitle: normalizeOptionalText$45(update.title ?? update.name),
5578
+ providerTitle: normalizeOptionalText$48(update.title ?? update.name),
5537
5579
  scopedToolCallId: sessionId ? `${sessionId}\0${toolCallId}` : toolCallId,
5538
- status: normalizeOptionalText$45(update.status)?.toLowerCase() ?? null,
5580
+ status: normalizeOptionalText$48(update.status)?.toLowerCase() ?? null,
5539
5581
  toolCallId
5540
5582
  };
5541
5583
  }
@@ -5563,7 +5605,7 @@ function resolveAcpToolWorkActivity(input) {
5563
5605
  return resolveAdapterToolWorkActivity(input.providerToolName, input.providerInput);
5564
5606
  }
5565
5607
  function resolveAcpFileEvidenceInput(input) {
5566
- const providerInput = toRecord$13(input.providerInput);
5608
+ const providerInput = toRecord$15(input.providerInput);
5567
5609
  if (providerInput && readFilePath(providerInput)) return providerInput;
5568
5610
  const locationPath = readLocationPath(input.providerLocations);
5569
5611
  if (!locationPath) return null;
@@ -5578,11 +5620,11 @@ function readFilePath(value) {
5578
5620
  value.filePath,
5579
5621
  value.path
5580
5622
  ]) {
5581
- const path = normalizeOptionalText$45(candidate);
5623
+ const path = normalizeOptionalText$48(candidate);
5582
5624
  if (path) return path;
5583
5625
  }
5584
5626
  if (Array.isArray(value.changes)) for (const change of value.changes) {
5585
- const path = normalizeOptionalText$45(toRecord$13(change)?.path);
5627
+ const path = normalizeOptionalText$48(toRecord$15(change)?.path);
5586
5628
  if (path) return path;
5587
5629
  }
5588
5630
  return null;
@@ -5590,15 +5632,15 @@ function readFilePath(value) {
5590
5632
  function readLocationPath(value) {
5591
5633
  if (!Array.isArray(value)) return null;
5592
5634
  for (const location of value) {
5593
- const path = normalizeOptionalText$45(toRecord$13(location)?.path);
5635
+ const path = normalizeOptionalText$48(toRecord$15(location)?.path);
5594
5636
  if (path) return path;
5595
5637
  }
5596
5638
  return null;
5597
5639
  }
5598
5640
  function mergeProviderPatch(current, patch) {
5599
5641
  if (patch === void 0 || patch === null) return current;
5600
- const currentRecord = toRecord$13(current);
5601
- const patchRecord = toRecord$13(patch);
5642
+ const currentRecord = toRecord$15(current);
5643
+ const patchRecord = toRecord$15(patch);
5602
5644
  if (currentRecord && patchRecord) return {
5603
5645
  ...currentRecord,
5604
5646
  ...patchRecord
@@ -5611,11 +5653,11 @@ function resolveToolActivityState$1(current, status) {
5611
5653
  if (status === "completed") return "output-available";
5612
5654
  return "input-available";
5613
5655
  }
5614
- function normalizeOptionalText$45(value) {
5656
+ function normalizeOptionalText$48(value) {
5615
5657
  const normalized = typeof value === "string" ? value.trim() : "";
5616
5658
  return normalized.length > 0 ? normalized : null;
5617
5659
  }
5618
- function toRecord$13(value) {
5660
+ function toRecord$15(value) {
5619
5661
  return value && typeof value === "object" && !Array.isArray(value) ? value : null;
5620
5662
  }
5621
5663
  //#endregion
@@ -5698,10 +5740,10 @@ const OPENMELD_CLI_COMMANDS = /* @__PURE__ */ new Set([
5698
5740
  "openmeld-canary"
5699
5741
  ]);
5700
5742
  function resolveDispatchSpaceActionMcpServer(env) {
5701
- if (!normalizeOptionalText$44(env?.[SPACE_ACTION_CONTEXT_PATH_ENV])) return null;
5702
- const command = normalizeOptionalText$44(env?.[USER_FACING_CLI_COMMAND_ENV]);
5743
+ if (!normalizeOptionalText$47(env?.[SPACE_ACTION_CONTEXT_PATH_ENV])) return null;
5744
+ const command = normalizeOptionalText$47(env?.[USER_FACING_CLI_COMMAND_ENV]);
5703
5745
  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$44(env?.[SPACE_ACTION_TOOL_COMMAND_PATH_ENV]);
5746
+ const commandPath = normalizeOptionalText$47(env?.[SPACE_ACTION_TOOL_COMMAND_PATH_ENV]);
5705
5747
  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
5748
  return {
5707
5749
  args: [
@@ -5712,7 +5754,7 @@ function resolveDispatchSpaceActionMcpServer(env) {
5712
5754
  command,
5713
5755
  commandPath,
5714
5756
  env: Object.fromEntries(FORWARDED_ENV_NAMES.flatMap((name) => {
5715
- const value = normalizeOptionalText$44(env?.[name]);
5757
+ const value = normalizeOptionalText$47(env?.[name]);
5716
5758
  return value ? [[name, value]] : [];
5717
5759
  })),
5718
5760
  id: OPENMELD_SPACE_ACTION_MCP_SERVER_ID,
@@ -5735,7 +5777,7 @@ function buildAcpDispatchSpaceActionMcpServers(env) {
5735
5777
  name: config.id
5736
5778
  }];
5737
5779
  }
5738
- function normalizeOptionalText$44(value) {
5780
+ function normalizeOptionalText$47(value) {
5739
5781
  const normalized = String(value ?? "").trim();
5740
5782
  return normalized.length > 0 ? normalized : null;
5741
5783
  }
@@ -5781,9 +5823,9 @@ const buildProviderExitError = (input) => {
5781
5823
  };
5782
5824
  };
5783
5825
  const hasVisibleText = (value) => {
5784
- return normalizeOptionalText$43(value) !== null;
5826
+ return normalizeOptionalText$46(value) !== null;
5785
5827
  };
5786
- const normalizeOptionalText$43 = (value) => {
5828
+ const normalizeOptionalText$46 = (value) => {
5787
5829
  if (typeof value !== "string") return null;
5788
5830
  const normalized = value.trim();
5789
5831
  return normalized.length > 0 ? normalized : null;
@@ -5820,6 +5862,11 @@ function readRuntimePermissionDenialDetails(value) {
5820
5862
  const normalizedMessage = normalizeRuntimePermissionMessage(value);
5821
5863
  if (!normalizedMessage) return null;
5822
5864
  const lowered = normalizedMessage.toLowerCase();
5865
+ if (isAntigravityPermissionDenial(lowered)) return {
5866
+ normalizedMessage,
5867
+ permissionKind: readAntigravityPermissionKind(lowered),
5868
+ source: "antigravity"
5869
+ };
5823
5870
  if (isOpenCodePermissionDenial(lowered)) return {
5824
5871
  normalizedMessage,
5825
5872
  permissionKind: readOpenCodePermissionKind(normalizedMessage),
@@ -5842,6 +5889,14 @@ function readRuntimePermissionDenialDetails(value) {
5842
5889
  };
5843
5890
  return null;
5844
5891
  }
5892
+ function isAntigravityPermissionDenial(value) {
5893
+ 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");
5894
+ }
5895
+ function readAntigravityPermissionKind(value) {
5896
+ if (value.includes("command")) return "command";
5897
+ if (value.includes("mcp")) return "mcp";
5898
+ return "tool_use";
5899
+ }
5845
5900
  function normalizeRuntimePermissionMessage(value) {
5846
5901
  const normalized = String(value ?? "").replace(ANSI_ESCAPE_RE, "").trim();
5847
5902
  return normalized.length > 0 ? normalized : null;
@@ -5963,13 +6018,13 @@ var AdapterRepairConversationError = class extends Error {
5963
6018
  };
5964
6019
  const resolveRequiredRepairConversationId = (input) => {
5965
6020
  if (input.policy !== "require_canonical" || input.request.executionMode !== "repair") return null;
5966
- const canonicalConversationId = normalizeOptionalText$42(input.invokeRequest.agentControllerConversationId);
6021
+ const canonicalConversationId = normalizeOptionalText$45(input.invokeRequest.agentControllerConversationId);
5967
6022
  if (!canonicalConversationId) throw new AdapterRepairConversationMissingError();
5968
6023
  return canonicalConversationId;
5969
6024
  };
5970
6025
  const requireCanonicalRepairConversation = (input) => {
5971
6026
  if (!input.canonicalConversationId) return input.contextDelta;
5972
- const observedConversationId = normalizeOptionalText$42(input.contextDelta?.agentControllerConversationId);
6027
+ const observedConversationId = normalizeOptionalText$45(input.contextDelta?.agentControllerConversationId);
5973
6028
  if (input.contextDelta?.refreshed === true || observedConversationId !== input.canonicalConversationId) throw new AdapterRepairConversationError();
5974
6029
  return input.contextDelta;
5975
6030
  };
@@ -6354,13 +6409,13 @@ const buildDefaultInvokeRequest = (input) => {
6354
6409
  agentControllerConversationId: input.request.agentControllerConversationId,
6355
6410
  bridgeSpec: input.bridgeSpec,
6356
6411
  agentControllerConversation: input.request.agentControllerConversation
6357
- }) : normalizeOptionalText$42(input.request.agentControllerConversationId);
6412
+ }) : normalizeOptionalText$45(input.request.agentControllerConversationId);
6358
6413
  return {
6359
6414
  ...input.request,
6360
6415
  agentControllerConversationId
6361
6416
  };
6362
6417
  };
6363
- const normalizeOptionalText$42 = (value) => {
6418
+ const normalizeOptionalText$45 = (value) => {
6364
6419
  if (typeof value !== "string") return null;
6365
6420
  const normalized = value.trim();
6366
6421
  return normalized.length > 0 ? normalized : null;
@@ -7616,7 +7671,7 @@ const removeConversationExecutionState = (input) => {
7616
7671
  return nextState;
7617
7672
  };
7618
7673
  const seedLegacyAgentContext = (input) => {
7619
- const normalizedLegacyAgentControllerConversationId = normalizeOptionalText$41(input.legacyAgentControllerConversationId);
7674
+ const normalizedLegacyAgentControllerConversationId = normalizeOptionalText$44(input.legacyAgentControllerConversationId);
7620
7675
  if (!normalizedLegacyAgentControllerConversationId) return input.state;
7621
7676
  if (input.state.agentContextByLookupKey[input.agentContextLookupKey]) return input.state;
7622
7677
  return upsertAgentContext({
@@ -7636,7 +7691,7 @@ const seedLegacyAgentContext = (input) => {
7636
7691
  });
7637
7692
  };
7638
7693
  const commitResolvedAgentContext = (input) => {
7639
- const normalizedAgentControllerConversationId = normalizeOptionalText$41(input.agentControllerConversationId);
7694
+ const normalizedAgentControllerConversationId = normalizeOptionalText$44(input.agentControllerConversationId);
7640
7695
  if (!normalizedAgentControllerConversationId) return input.state;
7641
7696
  const existing = input.state.agentContextByLookupKey[input.agentContextLookupKey] ?? null;
7642
7697
  return upsertAgentContext({
@@ -7674,7 +7729,7 @@ const appendAgentContextRotationRecord = (input) => {
7674
7729
  nextState.updatedAtMs = Date.now();
7675
7730
  return nextState;
7676
7731
  };
7677
- function normalizeOptionalText$41(value) {
7732
+ function normalizeOptionalText$44(value) {
7678
7733
  if (typeof value !== "string") return null;
7679
7734
  const normalized = value.trim();
7680
7735
  return normalized.length > 0 ? normalized : null;
@@ -8526,53 +8581,833 @@ const runRuntimeTask = async (input) => {
8526
8581
  agentContextLifecycleCounters: state.agentContextLifecycleCounters,
8527
8582
  state
8528
8583
  };
8529
- };
8530
- //#endregion
8531
- //#region src/local-service/core/types.ts
8532
- var DaemonServiceRunError = class extends Error {
8533
- code;
8534
- openClawGatewayVisibility;
8535
- projectFailureContext;
8536
- providerErrorCode;
8537
- constructor(input) {
8538
- super(input.message);
8539
- this.code = input.code;
8540
- this.name = "DaemonServiceRunError";
8541
- this.openClawGatewayVisibility = input.openClawGatewayVisibility;
8542
- this.projectFailureContext = input.projectFailureContext;
8543
- this.providerErrorCode = input.providerErrorCode;
8544
- }
8545
- };
8546
- //#endregion
8547
- //#region src/local-service/diagnostics/service-evidence-trace.ts
8548
- const SERVICE_EVIDENCE_TRACE_ENV = "OPENMELD_TRACE_DIAGNOSTICS";
8549
- const shouldEmitServiceEvidenceTrace = () => process.env[SERVICE_EVIDENCE_TRACE_ENV] === "1";
8550
- const emitServiceEvidenceTrace = (category, action, payload) => {
8551
- if (!shouldEmitServiceEvidenceTrace()) return;
8552
- console.info(`[openmeld.evidence.${category}.${action}]`, payload);
8553
- };
8554
- function emitDriftDetectedEvidence(payload) {
8555
- emitStructuredReconcileEvidence("drift.detected", payload);
8584
+ };
8585
+ //#endregion
8586
+ //#region src/local-service/core/types.ts
8587
+ var DaemonServiceRunError = class extends Error {
8588
+ code;
8589
+ openClawGatewayVisibility;
8590
+ projectFailureContext;
8591
+ providerErrorCode;
8592
+ constructor(input) {
8593
+ super(input.message);
8594
+ this.code = input.code;
8595
+ this.name = "DaemonServiceRunError";
8596
+ this.openClawGatewayVisibility = input.openClawGatewayVisibility;
8597
+ this.projectFailureContext = input.projectFailureContext;
8598
+ this.providerErrorCode = input.providerErrorCode;
8599
+ }
8600
+ };
8601
+ //#endregion
8602
+ //#region src/local-service/diagnostics/service-evidence-trace.ts
8603
+ const SERVICE_EVIDENCE_TRACE_ENV = "OPENMELD_TRACE_DIAGNOSTICS";
8604
+ const shouldEmitServiceEvidenceTrace = () => process.env[SERVICE_EVIDENCE_TRACE_ENV] === "1";
8605
+ const emitServiceEvidenceTrace = (category, action, payload) => {
8606
+ if (!shouldEmitServiceEvidenceTrace()) return;
8607
+ console.info(`[openmeld.evidence.${category}.${action}]`, payload);
8608
+ };
8609
+ function emitDriftDetectedEvidence(payload) {
8610
+ emitStructuredReconcileEvidence("drift.detected", payload);
8611
+ }
8612
+ function emitReconcileStartedEvidence(payload) {
8613
+ emitStructuredReconcileEvidence("reconcile.started", payload);
8614
+ }
8615
+ function emitReconcileSkippedEvidence(payload) {
8616
+ emitStructuredReconcileEvidence("reconcile.skipped", payload);
8617
+ }
8618
+ function emitReconcileCompletedEvidence(payload) {
8619
+ emitStructuredReconcileEvidence("reconcile.completed", payload);
8620
+ }
8621
+ function emitReconcileFailedEvidence(payload) {
8622
+ emitStructuredReconcileEvidence("reconcile.failed", payload);
8623
+ }
8624
+ function emitStructuredReconcileEvidence(eventName, payload) {
8625
+ emitServiceEvidenceTrace("reconcile", eventName, {
8626
+ lane: resolveOpenMeldEnvPreset(),
8627
+ ...payload
8628
+ });
8629
+ }
8630
+ //#endregion
8631
+ //#region ../../runtime/adapters/antigravity/dist/config/antigravity-runtime-config.js
8632
+ const DEFAULT_ANTIGRAVITY_COMMAND = "agy";
8633
+ async function resolveInstalledAntigravityLaunchCandidates(input) {
8634
+ const configuredCommand = normalizeOptionalText$43(process.env.OPENMELD_DAEMON_RUNTIME_ANTIGRAVITY_BIN);
8635
+ const installed = await resolveInstalledNodeScriptLaunchCandidates({
8636
+ additionalCommandDirectories: [join(resolveHome$1(), ".local", "bin")],
8637
+ commandName: DEFAULT_ANTIGRAVITY_COMMAND,
8638
+ configuredCommand,
8639
+ displayName: "Antigravity CLI",
8640
+ preferredLaunchContract: input?.preferredLaunchContract
8641
+ });
8642
+ if (!installed.ok) return installed;
8643
+ const candidates = await resolveLaunchCandidatesAfterVerification({
8644
+ candidates: installed.candidates,
8645
+ verify: async (candidate) => await verifyAntigravityLaunchContract({
8646
+ launchContract: candidate.launchContract,
8647
+ timeoutMs: input?.timeoutMs
8648
+ })
8649
+ });
8650
+ if (candidates.length === 0) return {
8651
+ errorMessage: "Antigravity CLI is installed, but OpenMeld can't start it on this device.",
8652
+ ok: false,
8653
+ reason: "not_launchable"
8654
+ };
8655
+ return {
8656
+ candidates,
8657
+ ok: true
8658
+ };
8659
+ }
8660
+ async function verifyAntigravityLaunchContract(input) {
8661
+ return await verifyCliLaunchContract({
8662
+ cwd: input.cwd ?? process.cwd(),
8663
+ displayName: "Antigravity CLI",
8664
+ env: {},
8665
+ launchContract: input.launchContract,
8666
+ probeArgs: ["--version"],
8667
+ timeoutMs: input.timeoutMs ?? 15e3
8668
+ });
8669
+ }
8670
+ function resolveHome$1() {
8671
+ return normalizeOptionalText$43(process.env.HOME) ?? homedir();
8672
+ }
8673
+ function normalizeOptionalText$43(value) {
8674
+ const normalized = String(value ?? "").trim();
8675
+ return normalized.length > 0 ? normalized : null;
8676
+ }
8677
+ //#endregion
8678
+ //#region ../../runtime/adapters/antigravity/dist/output/antigravity-output-parser.js
8679
+ function parseAntigravityOutputLine(line) {
8680
+ let value;
8681
+ try {
8682
+ value = JSON.parse(line);
8683
+ } catch {
8684
+ return null;
8685
+ }
8686
+ const record = toRecord$14(value);
8687
+ if (record?.event === "init") {
8688
+ const init = toRecord$14(record.init);
8689
+ const conversationId = readText(record.conversation_id);
8690
+ if (!(init && conversationId)) return null;
8691
+ return {
8692
+ event: "init",
8693
+ conversationId
8694
+ };
8695
+ }
8696
+ if (record?.event === "step_update") {
8697
+ const step = toRecord$14(record.step_update);
8698
+ const conversationId = readText(step?.conversation_id);
8699
+ const state = step?.state;
8700
+ const stepIndex = step?.step_index;
8701
+ const stepType = readText(step?.step_type);
8702
+ if (!conversationId || state !== "ACTIVE" && state !== "DONE" && state !== "ERROR" || typeof stepIndex !== "number" || !Number.isInteger(stepIndex) || !stepType) return null;
8703
+ const toolInfo = toRecord$14(step?.tool_info);
8704
+ const toolError = toRecord$14(toolInfo?.error);
8705
+ return {
8706
+ conversationId,
8707
+ event: "step_update",
8708
+ state,
8709
+ stepIndex,
8710
+ stepType,
8711
+ textDelta: readTextDelta(step?.text_delta),
8712
+ toolError: readText(toolError?.message),
8713
+ toolInput: toolInfo?.parameters,
8714
+ toolName: readText(step?.tool_name) ?? readText(toolInfo?.name)
8715
+ };
8716
+ }
8717
+ if (record?.event === "result") {
8718
+ const result = toRecord$14(record.result);
8719
+ const conversationId = readText(result?.conversation_id) ?? "";
8720
+ const status = readText(result?.status);
8721
+ if (!(result && status)) return null;
8722
+ return {
8723
+ conversationId,
8724
+ error: readText(result.error),
8725
+ event: "result",
8726
+ response: typeof result.response === "string" ? result.response : "",
8727
+ status,
8728
+ structuredOutput: result.structured_output,
8729
+ usage: parseTokenUsage(result.usage)
8730
+ };
8731
+ }
8732
+ return null;
8733
+ }
8734
+ function parseTokenUsage(value) {
8735
+ const usage = toRecord$14(value);
8736
+ if (!usage) return null;
8737
+ const inputTokens = readNonNegativeNumber(usage.input_tokens);
8738
+ const outputTokens = readNonNegativeNumber(usage.output_tokens);
8739
+ const thinkingTokens = readNonNegativeNumber(usage.thinking_tokens);
8740
+ const cacheReadTokens = readNonNegativeNumber(usage.cache_read_tokens);
8741
+ const totalTokens = readNonNegativeNumber(usage.total_tokens);
8742
+ if (inputTokens === null || outputTokens === null || thinkingTokens === null || cacheReadTokens === null || totalTokens === null) return null;
8743
+ return {
8744
+ cacheReadTokens,
8745
+ inputTokens,
8746
+ outputTokens,
8747
+ thinkingTokens,
8748
+ totalTokens
8749
+ };
8750
+ }
8751
+ function readNonNegativeNumber(value) {
8752
+ return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : null;
8753
+ }
8754
+ function readText(value) {
8755
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
8756
+ }
8757
+ function readTextDelta(value) {
8758
+ return typeof value === "string" && value.length > 0 ? value : null;
8759
+ }
8760
+ function toRecord$14(value) {
8761
+ return value && typeof value === "object" && !Array.isArray(value) ? value : null;
8762
+ }
8763
+ //#endregion
8764
+ //#region ../../runtime/adapters/antigravity/dist/transport/antigravity-cli-transport.js
8765
+ const AUTH_FAILURE_PATTERN = /auth(?:entication)? required|not signed in|sign in/iu;
8766
+ const CONTEXT_FAILURE_PATTERN = /conversation[^\n]*(?:not found|missing|unknown|does not exist)/iu;
8767
+ var AntigravityCliTransportError = class extends Error {
8768
+ code;
8769
+ errorType;
8770
+ originalError;
8771
+ telemetry;
8772
+ constructor(input) {
8773
+ super(input.message);
8774
+ this.name = "AntigravityCliTransportError";
8775
+ this.code = input.code;
8776
+ this.errorType = input.errorType;
8777
+ this.originalError = input.originalError;
8778
+ this.telemetry = input.telemetry;
8779
+ }
8780
+ };
8781
+ async function invokeAntigravityCliTransport(input) {
8782
+ const prompt = normalizeOptionalText$42(input.prompt);
8783
+ if (!prompt) throw new AntigravityCliTransportError({
8784
+ code: "schema.invalid",
8785
+ errorType: "config",
8786
+ message: "schema.invalid: prompt is required"
8787
+ });
8788
+ const invocation = buildCliLaunchInvocation({
8789
+ args: buildAntigravityArgs({
8790
+ addDir: input.addDir,
8791
+ conversationPolicy: input.conversationPolicy,
8792
+ jsonSchema: input.jsonSchema,
8793
+ prompt,
8794
+ sessionId: normalizeOptionalText$42(input.sessionId)
8795
+ }),
8796
+ launchContract: input.launchContract
8797
+ });
8798
+ const invokedAtMs = Date.now();
8799
+ let firstOutputAtMs = null;
8800
+ let conversationId = normalizeOptionalText$42(input.sessionId);
8801
+ const terminal = { result: null };
8802
+ let malformedOutput = false;
8803
+ const providerErrorMessages = [];
8804
+ let previewText = "";
8805
+ let previewChain = Promise.resolve();
8806
+ const driverResult = await runCliDriver({
8807
+ allowNonZeroExit: true,
8808
+ args: invocation.args,
8809
+ bin: invocation.bin,
8810
+ cwd: input.workdir,
8811
+ env: input.env,
8812
+ onLifecycleEvent: input.onRuntimeEvent,
8813
+ onProcessControlEvent: input.onProcessControlEvent,
8814
+ onStderrLine: (lineEvent) => {
8815
+ const message = normalizeOptionalText$42(lineEvent.line);
8816
+ if (message) providerErrorMessages.push(message);
8817
+ },
8818
+ onStdoutLine: (lineEvent) => {
8819
+ const event = parseAntigravityOutputLine(lineEvent.line);
8820
+ if (!event) {
8821
+ malformedOutput = true;
8822
+ return;
8823
+ }
8824
+ conversationId = event.conversationId || conversationId;
8825
+ if (event.event === "step_update") {
8826
+ if (event.toolError) providerErrorMessages.push(event.toolError);
8827
+ if (event.stepType === "agent_response" && event.textDelta && !input.jsonSchema) {
8828
+ firstOutputAtMs ??= Date.now();
8829
+ previewText += event.textDelta;
8830
+ if (input.onPreview) {
8831
+ const previewSnapshot = previewText;
8832
+ previewChain = previewChain.then(() => Promise.resolve(input.onPreview?.({ text: previewSnapshot })).then(() => void 0));
8833
+ }
8834
+ }
8835
+ emitToolActivity(event, input.onRuntimeEvent);
8836
+ }
8837
+ if (event.event === "result") terminal.result = event;
8838
+ },
8839
+ timeoutMs: input.timeoutMs
8840
+ });
8841
+ await previewChain;
8842
+ const telemetry = buildTelemetry({
8843
+ driverResult,
8844
+ firstOutputAtMs,
8845
+ invokedAtMs,
8846
+ resumedContext: input.sessionId !== null
8847
+ });
8848
+ if (malformedOutput) throw new AntigravityCliTransportError({
8849
+ code: "runtime.output.invalid",
8850
+ errorType: "adapter",
8851
+ message: "runtime.output.invalid: Antigravity CLI returned an invalid event stream",
8852
+ telemetry
8853
+ });
8854
+ const terminalResult = terminal.result;
8855
+ if (!terminalResult) throw classifyAntigravityFailure({
8856
+ exitCode: driverResult.exitCode,
8857
+ signal: driverResult.signal,
8858
+ stderr: driverResult.stderrText,
8859
+ telemetry
8860
+ });
8861
+ if (terminalResult.status !== "SUCCESS" || driverResult.exitCode !== 0 || driverResult.signal !== null) throw classifyAntigravityFailure({
8862
+ exitCode: driverResult.exitCode,
8863
+ providerError: terminalResult.error,
8864
+ signal: driverResult.signal,
8865
+ stderr: driverResult.stderrText,
8866
+ telemetry
8867
+ });
8868
+ const output = normalizeOptionalText$42(terminalResult.response);
8869
+ const resolvedSessionId = normalizeOptionalText$42(terminalResult.conversationId) ?? conversationId;
8870
+ if (!(output && resolvedSessionId)) {
8871
+ const permissionFailure = classifyAntigravityPermissionFailure(providerErrorMessages);
8872
+ if (permissionFailure) throw new AntigravityCliTransportError({
8873
+ ...permissionFailure,
8874
+ telemetry
8875
+ });
8876
+ throw new AntigravityCliTransportError({
8877
+ code: output ? "context.missing" : "runtime.output.empty",
8878
+ errorType: "adapter",
8879
+ message: output ? "context.missing: Antigravity CLI completed without a conversation ID" : "runtime.output.empty: Antigravity CLI completed without agent output",
8880
+ telemetry
8881
+ });
8882
+ }
8883
+ return {
8884
+ output,
8885
+ sessionId: resolvedSessionId,
8886
+ structuredOutput: terminalResult.structuredOutput,
8887
+ telemetry
8888
+ };
8889
+ }
8890
+ function classifyAntigravityPermissionFailure(messages) {
8891
+ for (const message of messages) {
8892
+ const classification = classifyRuntimePermissionDenialMessage({
8893
+ message,
8894
+ source: "antigravity"
8895
+ });
8896
+ if (classification) return {
8897
+ code: classification.code,
8898
+ errorType: classification.errorType,
8899
+ message: classification.message,
8900
+ originalError: classification.details.normalizedMessage
8901
+ };
8902
+ }
8903
+ return null;
8904
+ }
8905
+ function buildAntigravityArgs(input) {
8906
+ const args = [
8907
+ "--print",
8908
+ input.prompt,
8909
+ "--output-format",
8910
+ "stream-json",
8911
+ "--print-timeout",
8912
+ "0"
8913
+ ];
8914
+ const addDir = normalizeOptionalText$42(input.addDir);
8915
+ if (addDir) args.push("--add-dir", addDir);
8916
+ const jsonSchema = normalizeOptionalText$42(input.jsonSchema);
8917
+ if (jsonSchema) args.push("--json-schema", jsonSchema);
8918
+ if (input.sessionId) args.push("--conversation", input.sessionId);
8919
+ const model = normalizeOptionalText$42(input.conversationPolicy?.model);
8920
+ if (model) args.push("--model", model);
8921
+ const effort = normalizeOptionalText$42(input.conversationPolicy?.reasoningLevel);
8922
+ if (effort) {
8923
+ if (!ANTIGRAVITY_EFFORTS.has(effort)) throw new AntigravityCliTransportError({
8924
+ code: "model.reasoning_level.unsupported",
8925
+ errorType: "config",
8926
+ message: `model.reasoning_level.unsupported: Antigravity CLI does not support reasoning level '${effort}'`
8927
+ });
8928
+ args.push("--effort", effort);
8929
+ }
8930
+ if (input.conversationPolicy?.collaborationMode === "plan") args.push("--mode", "plan");
8931
+ return args;
8932
+ }
8933
+ const ANTIGRAVITY_EFFORTS = /* @__PURE__ */ new Set([
8934
+ "low",
8935
+ "medium",
8936
+ "high"
8937
+ ]);
8938
+ function emitToolActivity(event, callback) {
8939
+ if (!(callback && event.stepType === "tool" && event.toolName)) return;
8940
+ const work = resolveAdapterToolWorkActivity(event.toolName, event.toolInput);
8941
+ let state;
8942
+ if (event.state === "ACTIVE") state = "input-available";
8943
+ else if (event.toolError) state = "output-error";
8944
+ else state = "output-available";
8945
+ callback({
8946
+ phase: "tool_activity",
8947
+ state,
8948
+ toolCallId: `antigravity-step-${String(event.stepIndex)}`,
8949
+ toolName: resolveAdapterToolActivityName(event.toolName),
8950
+ tsMs: Date.now(),
8951
+ ...work ? { work } : {}
8952
+ });
8953
+ }
8954
+ function buildTelemetry(input) {
8955
+ const lifecycle = input.driverResult.lifecycle;
8956
+ return {
8957
+ completedAtMs: Date.now(),
8958
+ ...lifecycle.exitCode === null ? {} : { exitCode: lifecycle.exitCode },
8959
+ ...lifecycle.exitObservedAtMs === null ? {} : { exitObservedAtMs: lifecycle.exitObservedAtMs },
8960
+ ...lifecycle.exitSignal === null ? {} : { exitSignal: lifecycle.exitSignal },
8961
+ ...input.firstOutputAtMs === null ? {} : { firstOutputAtMs: input.firstOutputAtMs },
8962
+ ...lifecycle.firstStderrAtMs === null ? {} : { firstStderrAtMs: lifecycle.firstStderrAtMs },
8963
+ ...lifecycle.firstStdoutAtMs === null ? {} : { firstStdoutAtMs: lifecycle.firstStdoutAtMs },
8964
+ invokedAtMs: input.invokedAtMs,
8965
+ ...lifecycle.processId === null ? {} : { processId: lifecycle.processId },
8966
+ ...lifecycle.processSpawnedAtMs === null ? {} : { processSpawnedAtMs: lifecycle.processSpawnedAtMs },
8967
+ resumedContext: input.resumedContext,
8968
+ ...lifecycle.stdinClosedAtMs === null ? {} : { stdinClosedAtMs: lifecycle.stdinClosedAtMs },
8969
+ streamingMode: "stream"
8970
+ };
8971
+ }
8972
+ function classifyAntigravityFailure(input) {
8973
+ 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)}.`);
8974
+ const authFailure = AUTH_FAILURE_PATTERN.test(providerMessage);
8975
+ const contextFailure = CONTEXT_FAILURE_PATTERN.test(providerMessage);
8976
+ let code = "provider_exit_error";
8977
+ if (authFailure) code = "auth.required";
8978
+ else if (contextFailure) code = "context_not_found";
8979
+ else if (input.signal) code = "runtime.interrupted";
8980
+ return new AntigravityCliTransportError({
8981
+ code,
8982
+ errorType: authFailure ? "auth" : "adapter",
8983
+ message: `${code}: ${providerMessage}`,
8984
+ telemetry: input.telemetry
8985
+ });
8986
+ }
8987
+ function normalizeOptionalText$42(value) {
8988
+ const normalized = String(value ?? "").trim();
8989
+ return normalized.length > 0 ? normalized : null;
8990
+ }
8991
+ //#endregion
8992
+ //#region ../../runtime/adapters/antigravity/dist/transport/antigravity-space-action-plugin.js
8993
+ const PLUGIN_DIRECTORY_PREFIX = "openmeld_dispatch_";
8994
+ const FINAL_STATUSES = /* @__PURE__ */ new Set([
8995
+ "done",
8996
+ "blocked",
8997
+ "needs_input",
8998
+ "handoff"
8999
+ ]);
9000
+ const ANTIGRAVITY_SPACE_ACTION_JSON_SCHEMA = JSON.stringify({
9001
+ additionalProperties: false,
9002
+ properties: {
9003
+ action: {
9004
+ enum: [
9005
+ "reply",
9006
+ "status",
9007
+ "silent"
9008
+ ],
9009
+ type: "string"
9010
+ },
9011
+ mentionTargets: {
9012
+ items: { type: "string" },
9013
+ type: "array"
9014
+ },
9015
+ referenceTargets: {
9016
+ items: { type: "string" },
9017
+ type: "array"
9018
+ },
9019
+ status: {
9020
+ enum: [
9021
+ "none",
9022
+ "done",
9023
+ "blocked",
9024
+ "needs_input",
9025
+ "handoff"
9026
+ ],
9027
+ type: "string"
9028
+ },
9029
+ text: {
9030
+ minLength: 1,
9031
+ type: "string"
9032
+ },
9033
+ wakeTargets: {
9034
+ items: { type: "string" },
9035
+ type: "array"
9036
+ }
9037
+ },
9038
+ required: [
9039
+ "action",
9040
+ "text",
9041
+ "status",
9042
+ "wakeTargets",
9043
+ "referenceTargets",
9044
+ "mentionTargets"
9045
+ ],
9046
+ type: "object"
9047
+ });
9048
+ async function withAntigravityDispatchSpaceAction(input) {
9049
+ const actionServer = resolveDispatchSpaceActionMcpServer(input.env);
9050
+ if (!actionServer) return await input.run({
9051
+ addDir: null,
9052
+ jsonSchema: null
9053
+ });
9054
+ const pluginId = `${PLUGIN_DIRECTORY_PREFIX}${randomUUID().replaceAll("-", "")}`;
9055
+ const root = join(tmpdir(), pluginId);
9056
+ const pluginDir = join(root, ".agents", "plugins", pluginId);
9057
+ try {
9058
+ await mkdir(pluginDir, {
9059
+ recursive: true,
9060
+ mode: 448
9061
+ });
9062
+ await Promise.all([
9063
+ writeJson(join(pluginDir, "plugin.json"), {
9064
+ description: "Records one structured Space outcome for the active OpenMeld Wake.",
9065
+ name: pluginId
9066
+ }),
9067
+ writeJson(join(pluginDir, "hooks.json"), { "openmeld-space-action": { PreInvocation: [{
9068
+ command: "node ./inject-space-action.mjs",
9069
+ timeout: 5,
9070
+ type: "command"
9071
+ }] } }),
9072
+ writeFile(join(pluginDir, "inject-space-action.mjs"), buildInstructionHookSource(), {
9073
+ encoding: "utf8",
9074
+ mode: 384
9075
+ })
9076
+ ]);
9077
+ const result = await input.run({
9078
+ addDir: root,
9079
+ jsonSchema: ANTIGRAVITY_SPACE_ACTION_JSON_SCHEMA
9080
+ });
9081
+ await recordStructuredSpaceAction({
9082
+ action: parseStructuredSpaceAction(result.structuredOutput),
9083
+ actionServer
9084
+ });
9085
+ return result;
9086
+ } finally {
9087
+ await rm(root, {
9088
+ force: true,
9089
+ recursive: true
9090
+ }).catch(() => void 0);
9091
+ }
9092
+ }
9093
+ function writeJson(path, value) {
9094
+ return writeFile(path, `${JSON.stringify(value, null, 2)}\n`, {
9095
+ encoding: "utf8",
9096
+ mode: 384
9097
+ });
9098
+ }
9099
+ function buildInstructionHookSource() {
9100
+ const instruction = [
9101
+ "For this OpenMeld Wake, do not run a Space Action CLI command and do not inspect its environment variables.",
9102
+ "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.",
9103
+ "Complete the user's work under the normal Antigravity permission policy.",
9104
+ "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.",
9105
+ "Put the public reply, status text, or silence reason in text.",
9106
+ "Use status=none unless action=status. Include only validated profile IDs from the provided target reference lists; otherwise leave all target arrays empty.",
9107
+ "OpenMeld will validate and record this outcome for the current dispatch."
9108
+ ].join(" ");
9109
+ return `process.stdout.write(JSON.stringify({ injectSteps: [{ ephemeralMessage: ${JSON.stringify(instruction)} }] }));\n`;
9110
+ }
9111
+ function parseStructuredSpaceAction(value) {
9112
+ const record = toRecord$13(value);
9113
+ const action = record?.action;
9114
+ const status = record?.status;
9115
+ const text = normalizeRequiredText(record?.text);
9116
+ const wakeTargets = parseTargetIds(record?.wakeTargets);
9117
+ const referenceTargets = parseTargetIds(record?.referenceTargets);
9118
+ const mentionTargets = parseTargetIds(record?.mentionTargets);
9119
+ 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.");
9120
+ 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.");
9121
+ return {
9122
+ action,
9123
+ mentionTargets,
9124
+ referenceTargets,
9125
+ status,
9126
+ text,
9127
+ wakeTargets
9128
+ };
9129
+ }
9130
+ async function recordStructuredSpaceAction(input) {
9131
+ const baseArgs = input.actionServer.args.slice(0, -1);
9132
+ let args;
9133
+ let stdin = "";
9134
+ if (input.action.action === "reply") {
9135
+ args = [
9136
+ ...baseArgs,
9137
+ "reply",
9138
+ "--message-file",
9139
+ "-"
9140
+ ];
9141
+ stdin = input.action.text;
9142
+ appendTargetArgs(args, "--wake", input.action.wakeTargets);
9143
+ appendTargetArgs(args, "--reference", input.action.referenceTargets);
9144
+ appendTargetArgs(args, "--mention", input.action.mentionTargets);
9145
+ } else if (input.action.action === "status") args = [
9146
+ ...baseArgs,
9147
+ "status",
9148
+ input.action.status,
9149
+ input.action.text
9150
+ ];
9151
+ else args = [
9152
+ ...baseArgs,
9153
+ "silent",
9154
+ "--reason",
9155
+ input.action.text
9156
+ ];
9157
+ await runActionWriter({
9158
+ args,
9159
+ commandPath: input.actionServer.commandPath,
9160
+ env: input.actionServer.env,
9161
+ stdin
9162
+ });
9163
+ }
9164
+ function appendTargetArgs(args, option, values) {
9165
+ for (const value of values) args.push(option, value);
9166
+ }
9167
+ async function runActionWriter(input) {
9168
+ await new Promise((resolve, reject) => {
9169
+ const child = spawn(input.commandPath, [...input.args], {
9170
+ env: {
9171
+ ...process.env,
9172
+ ...input.env
9173
+ },
9174
+ stdio: [
9175
+ "pipe",
9176
+ "pipe",
9177
+ "pipe"
9178
+ ]
9179
+ });
9180
+ let stderr = "";
9181
+ child.stderr.setEncoding("utf8");
9182
+ child.stderr.on("data", (chunk) => {
9183
+ stderr += chunk;
9184
+ });
9185
+ child.once("error", (error) => {
9186
+ reject(createSpaceActionError(error.message));
9187
+ });
9188
+ child.once("close", (code, signal) => {
9189
+ if (code === 0 && signal === null) {
9190
+ resolve();
9191
+ return;
9192
+ }
9193
+ reject(createSpaceActionError(normalizeRequiredText(stderr) ?? `The Space outcome writer exited with code ${String(code)}.`));
9194
+ });
9195
+ child.stdin.end(input.stdin);
9196
+ });
9197
+ }
9198
+ function createSpaceActionError(message) {
9199
+ return Object.assign(new Error(message), {
9200
+ code: "space.action.record_failed",
9201
+ errorType: "adapter"
9202
+ });
9203
+ }
9204
+ function parseTargetIds(value) {
9205
+ if (!Array.isArray(value)) return null;
9206
+ const values = value.map(normalizeRequiredText);
9207
+ if (values.some((item) => item === null)) return null;
9208
+ return values;
9209
+ }
9210
+ function normalizeRequiredText(value) {
9211
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
9212
+ }
9213
+ function toRecord$13(value) {
9214
+ return value && typeof value === "object" && !Array.isArray(value) ? value : null;
9215
+ }
9216
+ //#endregion
9217
+ //#region ../../runtime/adapters/antigravity/dist/usage/antigravity-usage-limits.js
9218
+ const LINE_BREAK_PATTERN = /\r?\n/u;
9219
+ const USAGE_LINE_PATTERN = /^([^\t]+)\tWeekly Limit Remaining\t(\d{1,3})%\t([^\t]+)$/u;
9220
+ function parseAntigravityUsageLimits(input) {
9221
+ const limits = input.output.split(LINE_BREAK_PATTERN).map((line) => parseUsageLine(line, input.observedAt)).filter((limit) => limit !== null);
9222
+ return limits.length > 0 ? limits : createUnavailableProviderUsageLimits(input.observedAt);
9223
+ }
9224
+ function parseUsageLine(line, observedAt) {
9225
+ const match = line.trim().match(USAGE_LINE_PATTERN);
9226
+ if (!match) return null;
9227
+ const [, rawLabel, rawRemainingPercent, rawResetsAt] = match;
9228
+ const remainingPercent = Number(rawRemainingPercent);
9229
+ const resetTime = Date.parse(rawResetsAt ?? "");
9230
+ if (!(rawLabel && Number.isFinite(remainingPercent)) || remainingPercent < 0 || remainingPercent > 100 || !Number.isFinite(resetTime)) return null;
9231
+ const label = rawLabel.trim();
9232
+ const providerId = label.toLowerCase().startsWith("gemini") ? "antigravity-gemini" : "antigravity-other";
9233
+ const usedPercent = 100 - remainingPercent;
9234
+ return {
9235
+ key: `${providerId}:weekly`,
9236
+ label: "Weekly usage",
9237
+ observedAt,
9238
+ provider: {
9239
+ displayName: label,
9240
+ id: providerId
9241
+ },
9242
+ resetsAt: new Date(resetTime).toISOString(),
9243
+ status: remainingPercent === 0 ? "exhausted" : "available",
9244
+ usedPercent
9245
+ };
9246
+ }
9247
+ //#endregion
9248
+ //#region ../../runtime/adapters/antigravity/dist/index.js
9249
+ const ANTIGRAVITY_CONVERSATION_BRIDGE_SPEC = resolveBuiltinAdapterConversationBridgeSpec("antigravity");
9250
+ function createAntigravityAdapter(options = {}) {
9251
+ const activeTasks = /* @__PURE__ */ new Map();
9252
+ const invoke = createDefaultAntigravityInvoke({
9253
+ activeTasks,
9254
+ options
9255
+ });
9256
+ const processInterruptSender = options.registerRuntimeProcess ? createProcessInterruptSender(activeTasks) : void 0;
9257
+ const controlShell = createSharedControlShell({
9258
+ gracefulTimeoutMs: options.gracefulTimeoutMs,
9259
+ sendCancel: options.sendCancel,
9260
+ sendInterrupt: options.sendInterrupt ?? processInterruptSender,
9261
+ waitForMs: options.waitForMs
9262
+ });
9263
+ const dispatch = createSharedDispatchShell({
9264
+ adapterId: "antigravity",
9265
+ bridgeSpec: ANTIGRAVITY_CONVERSATION_BRIDGE_SPEC,
9266
+ invoke: options.invoke,
9267
+ invokeByMode: options.invokeByMode,
9268
+ repairConversationPolicy: "require_canonical",
9269
+ resolveDefaultInvoke: () => invoke,
9270
+ runtimeOptions: options
9271
+ });
9272
+ return {
9273
+ adapterId: "antigravity",
9274
+ cancel: controlShell.cancel,
9275
+ dispatch,
9276
+ interrupt: controlShell.interrupt,
9277
+ verifyComputerFileAccessBoundary: () => Promise.resolve({
9278
+ reasonCode: "computer.file_access.controller_unsupported",
9279
+ supported: false
9280
+ })
9281
+ };
9282
+ }
9283
+ function createDefaultAntigravityInvoke(input) {
9284
+ return async (request) => {
9285
+ const task = {
9286
+ cancellationRequested: false,
9287
+ process: null
9288
+ };
9289
+ input.activeTasks.set(request.taskId, task);
9290
+ try {
9291
+ const launchContract = await resolveDispatchLaunchContract({
9292
+ antigravityBin: input.options.antigravityBin,
9293
+ inputLaunchContract: request.launchContract,
9294
+ optionLaunchContract: input.options.launchContract
9295
+ });
9296
+ if (task.cancellationRequested) throw new AntigravityCliTransportError({
9297
+ code: "runtime.cancelled_before_start",
9298
+ errorType: "adapter",
9299
+ message: "runtime.cancelled_before_start: Antigravity dispatch was canceled before launch"
9300
+ });
9301
+ const result = await invokeWithSingleContextHeal({
9302
+ contextId: normalizeOptionalText$41(request.agentControllerConversationId),
9303
+ contextLossPolicy: request.executionMode === "repair" ? "fail" : "rebuild",
9304
+ createRebuildFailedError: (error) => new AntigravityCliTransportError({
9305
+ code: "context.rebuild_failed",
9306
+ errorType: "adapter",
9307
+ message: `context.rebuild_failed: ${toErrorMessage$17(error)}`
9308
+ }),
9309
+ invokeOnce: async (sessionId) => {
9310
+ const transportResult = await withAntigravityDispatchSpaceAction({
9311
+ env: request.env,
9312
+ run: async ({ addDir, jsonSchema }) => await invokeAntigravityCliTransport({
9313
+ addDir,
9314
+ conversationPolicy: request.conversationPolicy,
9315
+ env: request.env,
9316
+ jsonSchema,
9317
+ launchContract,
9318
+ onPreview: request.onPreview,
9319
+ onProcessControlEvent: (event) => {
9320
+ task.process = event.phase === "process_spawned" ? event : null;
9321
+ if (event.phase === "process_spawned" && task.cancellationRequested) signalProcess(event, "SIGINT");
9322
+ input.options.registerRuntimeProcess?.({
9323
+ ...event,
9324
+ taskId: request.taskId
9325
+ });
9326
+ },
9327
+ onRuntimeEvent: request.onRuntimeEvent,
9328
+ prompt: request.prompt,
9329
+ sessionId,
9330
+ timeoutMs: request.timeoutMs ?? null,
9331
+ workdir: request.runtimeContext.providerRuntimeWorkingDirectory
9332
+ })
9333
+ });
9334
+ return {
9335
+ contextId: transportResult.sessionId,
9336
+ output: transportResult.output,
9337
+ telemetry: transportResult.telemetry
9338
+ };
9339
+ },
9340
+ isContextLostError: (error) => error instanceof AntigravityCliTransportError && error.code === "context_not_found"
9341
+ });
9342
+ const agentControllerConversation = ANTIGRAVITY_CONVERSATION_BRIDGE_SPEC && result.contextId ? bridgeAgentControllerConversationRef({
9343
+ bridgeSpec: ANTIGRAVITY_CONVERSATION_BRIDGE_SPEC,
9344
+ agentControllerConversationId: result.contextId
9345
+ }) : null;
9346
+ return {
9347
+ contextDelta: {
9348
+ agentControllerConversationId: result.contextId,
9349
+ refreshed: result.contextHealed,
9350
+ ...agentControllerConversation ? { agentControllerConversation } : {}
9351
+ },
9352
+ output: result.output,
9353
+ telemetry: result.telemetry
9354
+ };
9355
+ } finally {
9356
+ if (input.activeTasks.get(request.taskId) === task) input.activeTasks.delete(request.taskId);
9357
+ }
9358
+ };
8556
9359
  }
8557
- function emitReconcileStartedEvidence(payload) {
8558
- emitStructuredReconcileEvidence("reconcile.started", payload);
9360
+ async function resolveDispatchLaunchContract(input) {
9361
+ const commandPath = normalizeOptionalText$41(input.antigravityBin);
9362
+ const launchContract = input.inputLaunchContract ?? input.optionLaunchContract ?? (commandPath ? buildExecutableLaunchContract({ commandPath }) : null);
9363
+ if (!launchContract) throw Object.assign(/* @__PURE__ */ new Error("Antigravity CLI launch contract is required for dispatch."), {
9364
+ code: "controller.launch.needs_repair",
9365
+ errorType: "config"
9366
+ });
9367
+ const verification = await verifyAntigravityLaunchContract({ launchContract });
9368
+ if (!verification.ok) throw Object.assign(new Error(verification.errorMessage), {
9369
+ code: "controller.launch.needs_repair",
9370
+ errorType: "config"
9371
+ });
9372
+ return launchContract;
8559
9373
  }
8560
- function emitReconcileSkippedEvidence(payload) {
8561
- emitStructuredReconcileEvidence("reconcile.skipped", payload);
9374
+ function createProcessInterruptSender(activeTasks) {
9375
+ return (signal) => {
9376
+ const task = activeTasks.get(signal.taskId);
9377
+ if (!task) return Promise.reject(Object.assign(/* @__PURE__ */ new Error("Antigravity task is not running."), { code: "task.not_running" }));
9378
+ task.cancellationRequested = true;
9379
+ if (!task.process) return Promise.resolve();
9380
+ return signalProcess(task.process, signal.mode === "force" ? "SIGKILL" : "SIGINT") ? Promise.resolve() : Promise.reject(/* @__PURE__ */ new Error("Antigravity process signal was not sent."));
9381
+ };
8562
9382
  }
8563
- function emitReconcileCompletedEvidence(payload) {
8564
- emitStructuredReconcileEvidence("reconcile.completed", payload);
9383
+ function signalProcess(processEvent, signal) {
9384
+ return signalAgentControllerProcessTree({
9385
+ processId: processEvent.processId,
9386
+ signal,
9387
+ signalTarget: processEvent.signalTarget
9388
+ });
8565
9389
  }
8566
- function emitReconcileFailedEvidence(payload) {
8567
- emitStructuredReconcileEvidence("reconcile.failed", payload);
9390
+ function normalizeOptionalText$41(value) {
9391
+ const normalized = String(value ?? "").trim();
9392
+ return normalized.length > 0 ? normalized : null;
8568
9393
  }
8569
- function emitStructuredReconcileEvidence(eventName, payload) {
8570
- emitServiceEvidenceTrace("reconcile", eventName, {
8571
- lane: resolveOpenMeldEnvPreset(),
8572
- ...payload
8573
- });
9394
+ function toErrorMessage$17(error) {
9395
+ return error instanceof Error ? error.message : String(error);
8574
9396
  }
8575
9397
  //#endregion
9398
+ //#region ../../runtime/local-service/src/adapters/installers/install-antigravity.ts
9399
+ const installAntigravityAdapter = {
9400
+ adapterId: "antigravity",
9401
+ install(input) {
9402
+ const antigravityAdapter = createAntigravityAdapter({ ...input.registerRuntimeProcess ? { registerRuntimeProcess: input.registerRuntimeProcess } : {} });
9403
+ return {
9404
+ adapter: antigravityAdapter,
9405
+ adapterId: antigravityAdapter.adapterId,
9406
+ transportModes: ["local-cli"]
9407
+ };
9408
+ }
9409
+ };
9410
+ //#endregion
8576
9411
  //#region ../../runtime/adapters/claude-code/dist/config/claude-runtime-config.js
8577
9412
  const DEFAULT_CLAUDE_CODE_COMMAND = "claude";
8578
9413
  async function resolveInstalledClaudeCodeLaunchCandidates(input) {
@@ -11470,6 +12305,7 @@ foreach ($path in $paths) {
11470
12305
  //#region ../../runtime/adapters/codex/dist/transport/codex-app-server-transport.js
11471
12306
  const CODEX_APP_SERVER_VERSION_PATTERN = /\/([^\s]+)/u;
11472
12307
  const EXECUTION_CONTEXT_ERROR_PATTERN = /^(execution_context\.[a-z_]+|context\.mcp_isolation_unverified)(?::|$)/u;
12308
+ const REQUIRED_MCP_INITIALIZATION_FAILURE_PATTERN = /required MCP servers? failed to initialize/iu;
11473
12309
  const APP_SERVER_PROCESS_KILL_GRACE_MS = 1e3;
11474
12310
  const DEFAULT_APP_SERVER_STARTUP_TIMEOUT_MS = 15e3;
11475
12311
  var CodexAppServerTransportError = class extends Error {
@@ -13226,6 +14062,11 @@ function buildServerRequestDeclineResponse(method) {
13226
14062
  function toJsonRpcTransportError$1(error) {
13227
14063
  const message = normalizeOptionalText$31(error.message) ?? "codex app-server error";
13228
14064
  const originalError = createProviderOriginalError(message) ?? void 0;
14065
+ const mcpInitializationFailure = classifyCodexRequiredMcpInitializationFailure({
14066
+ message,
14067
+ ...typeof error.code === "number" ? { rpcErrorCode: error.code } : {}
14068
+ });
14069
+ if (mcpInitializationFailure) return mcpInitializationFailure;
13229
14070
  const permissionDenial = classifyRuntimePermissionDenialMessage({
13230
14071
  message,
13231
14072
  source: "codex"
@@ -13265,6 +14106,16 @@ function toJsonRpcTransportError$1(error) {
13265
14106
  ...typeof error.code === "number" ? { rpcErrorCode: error.code } : {}
13266
14107
  });
13267
14108
  }
14109
+ function classifyCodexRequiredMcpInitializationFailure(input) {
14110
+ if (!REQUIRED_MCP_INITIALIZATION_FAILURE_PATTERN.test(input.message)) return null;
14111
+ return new CodexAppServerTransportError({
14112
+ code: "execution_context.mcp_server_initialization_failed",
14113
+ errorType: "config",
14114
+ message: "execution_context.mcp_server_initialization_failed: required tools could not start",
14115
+ originalError: createProviderOriginalError(input.message) ?? void 0,
14116
+ ...typeof input.rpcErrorCode === "number" ? { rpcErrorCode: input.rpcErrorCode } : {}
14117
+ });
14118
+ }
13268
14119
  function toCodexAppServerTransportError(error, timeoutMs) {
13269
14120
  if (error instanceof CodexAppServerTransportError) return error;
13270
14121
  const contextError = error instanceof Error ? EXECUTION_CONTEXT_ERROR_PATTERN.exec(error.message)?.[1] : void 0;
@@ -19149,18 +20000,22 @@ async function invokeOpenCodeCliTransport(input) {
19149
20000
  errorType: "config",
19150
20001
  message: "schema.invalid: prompt is required"
19151
20002
  });
20003
+ if (normalizeOptionalText$10(input.sessionId)) throw new OpenCodeCliTransportError({
20004
+ code: "context.resume_requires_server",
20005
+ errorType: "adapter",
20006
+ message: "An existing OpenCode conversation requires the server connection to verify its working folder."
20007
+ });
19152
20008
  const invocation = buildCliLaunchInvocation({
19153
20009
  args: buildOpenCodeArgs({
19154
20010
  conversationPolicy: input.conversationPolicy,
19155
20011
  prompt,
19156
- sessionId: normalizeOptionalText$10(input.sessionId),
19157
20012
  workdir: input.openCodeWorkdir
19158
20013
  }),
19159
20014
  launchContract: input.launchContract
19160
20015
  });
19161
20016
  let latestOutput = "";
19162
20017
  let latestResultIsError = false;
19163
- let resolvedSessionId = normalizeOptionalText$10(input.sessionId);
20018
+ let resolvedSessionId = null;
19164
20019
  const providerErrorMessages = [];
19165
20020
  const invokedAtMs = Date.now();
19166
20021
  let firstStdoutAtMs = null;
@@ -19295,7 +20150,7 @@ async function invokeOpenCodeCliTransport(input) {
19295
20150
  firstStderrAtMs,
19296
20151
  firstStdoutAtMs,
19297
20152
  invokedAtMs,
19298
- resumedContext: normalizeOptionalText$10(input.sessionId) !== null
20153
+ resumedContext: false
19299
20154
  })
19300
20155
  };
19301
20156
  }
@@ -19308,7 +20163,6 @@ const buildOpenCodeArgs = (input) => {
19308
20163
  "--dir",
19309
20164
  input.workdir
19310
20165
  ];
19311
- if (input.sessionId) args.push("--session", input.sessionId);
19312
20166
  const model = normalizeOptionalText$10(input.conversationPolicy?.model);
19313
20167
  if (model) args.push("--model", model);
19314
20168
  const reasoningLevel = normalizeOptionalText$10(input.conversationPolicy?.reasoningLevel);
@@ -19732,13 +20586,26 @@ async function forkOpenCodeServerSession(input) {
19732
20586
  }
19733
20587
  }
19734
20588
  async function forkOpenCodeSessionWithClient(input) {
19735
- return readOpenCodeSessionId(await input.client.session.fork({
19736
- directory: input.openCodeWorkdir,
19737
- sessionID: input.sourceSessionId
19738
- }, {
19739
- responseStyle: "data",
19740
- throwOnError: true
19741
- }));
20589
+ const { directory } = await readOpenCodeSessionForWorkingDirectory({
20590
+ session: await input.client.session.get({
20591
+ directory: input.openCodeWorkdir,
20592
+ sessionID: input.sourceSessionId
20593
+ }, {
20594
+ responseStyle: "data",
20595
+ throwOnError: true
20596
+ }),
20597
+ workingDirectory: input.openCodeWorkdir
20598
+ });
20599
+ return (await readOpenCodeSessionForWorkingDirectory({
20600
+ session: await input.client.session.fork({
20601
+ directory,
20602
+ sessionID: input.sourceSessionId
20603
+ }, {
20604
+ responseStyle: "data",
20605
+ throwOnError: true
20606
+ }),
20607
+ workingDirectory: input.openCodeWorkdir
20608
+ })).sessionId;
19742
20609
  }
19743
20610
  async function startHealthyOpenCodeServer(input) {
19744
20611
  let lastError = null;
@@ -19873,11 +20740,11 @@ function readRemainingTimeoutMs(deadlineMs) {
19873
20740
  return deadlineMs === null ? null : Math.max(0, deadlineMs - Date.now());
19874
20741
  }
19875
20742
  async function runOpenCodeServerTurn(input) {
19876
- const sessionId = await resolveOpenCodeSessionId(input);
20743
+ const { directory, sessionId } = await resolveOpenCodeSession(input);
19877
20744
  input.server.emitProviderConversationObserved(normalizeOptionalText$9(input.observedSessionId) ?? sessionId);
19878
20745
  const interactionHandler = new OpenCodeInteractionHandler({
19879
20746
  client: input.client,
19880
- directory: input.openCodeWorkdir,
20747
+ directory,
19881
20748
  onInteractionRequest: input.onInteractionRequest
19882
20749
  });
19883
20750
  const eventAbortController = new AbortController();
@@ -19897,7 +20764,7 @@ async function runOpenCodeServerTurn(input) {
19897
20764
  };
19898
20765
  const textByPartId = /* @__PURE__ */ new Map();
19899
20766
  let previewEmitted = false;
19900
- const subscription = await input.client.event.subscribe({ directory: input.openCodeWorkdir }, { signal: eventAbortController.signal });
20767
+ const subscription = await input.client.event.subscribe({ directory }, { signal: eventAbortController.signal });
19901
20768
  const eventLoop = consumeOpenCodeEvents({
19902
20769
  onRuntimeEvent: input.onRuntimeEvent,
19903
20770
  reasoningPartIds: /* @__PURE__ */ new Set(),
@@ -19927,7 +20794,7 @@ async function runOpenCodeServerTurn(input) {
19927
20794
  turnState.promptDispatchStarted = true;
19928
20795
  await Promise.race([
19929
20796
  input.client.session.promptAsync({
19930
- directory: input.openCodeWorkdir,
20797
+ directory,
19931
20798
  ...model ? { model } : {},
19932
20799
  parts: [{
19933
20800
  text: input.instructionPrompt?.userPrompt ?? input.prompt,
@@ -19951,7 +20818,7 @@ async function runOpenCodeServerTurn(input) {
19951
20818
  ]);
19952
20819
  } catch (error) {
19953
20820
  await input.client.session.abort({
19954
- directory: input.openCodeWorkdir,
20821
+ directory,
19955
20822
  sessionID: sessionId
19956
20823
  }, {
19957
20824
  responseStyle: "data",
@@ -19969,7 +20836,7 @@ async function runOpenCodeServerTurn(input) {
19969
20836
  });
19970
20837
  const output = await readOpenCodeTurnOutput({
19971
20838
  client: input.client,
19972
- directory: input.openCodeWorkdir,
20839
+ directory,
19973
20840
  promptMessageId,
19974
20841
  sessionId
19975
20842
  });
@@ -19998,23 +20865,59 @@ async function waitForOpenCodeEventLoopCleanup(eventLoop) {
19998
20865
  setTimeout(resolve, 250).unref?.();
19999
20866
  })]);
20000
20867
  }
20001
- async function resolveOpenCodeSessionId(input) {
20002
- if (input.sessionId) return readOpenCodeSessionId(await input.client.session.get({
20003
- directory: input.openCodeWorkdir,
20004
- sessionID: input.sessionId
20005
- }, {
20006
- responseStyle: "data",
20007
- throwOnError: true
20008
- }));
20868
+ async function resolveOpenCodeSession(input) {
20869
+ if (input.sessionId) return readOpenCodeSessionForWorkingDirectory({
20870
+ session: await input.client.session.get({
20871
+ directory: input.openCodeWorkdir,
20872
+ sessionID: input.sessionId
20873
+ }, {
20874
+ responseStyle: "data",
20875
+ throwOnError: true
20876
+ }),
20877
+ workingDirectory: input.openCodeWorkdir
20878
+ });
20009
20879
  const parsedModel = parseOpenCodeSessionModel(input.conversationPolicy);
20010
- return readOpenCodeSessionId(await input.client.session.create({
20011
- directory: input.openCodeWorkdir,
20012
- ...parsedModel ? { model: parsedModel } : {},
20013
- title: "OpenMeld"
20014
- }, {
20015
- responseStyle: "data",
20016
- throwOnError: true
20017
- }));
20880
+ return readOpenCodeSessionForWorkingDirectory({
20881
+ session: await input.client.session.create({
20882
+ directory: input.openCodeWorkdir,
20883
+ ...parsedModel ? { model: parsedModel } : {},
20884
+ title: "OpenMeld"
20885
+ }, {
20886
+ responseStyle: "data",
20887
+ throwOnError: true
20888
+ }),
20889
+ workingDirectory: input.openCodeWorkdir
20890
+ });
20891
+ }
20892
+ async function readOpenCodeSessionForWorkingDirectory(input) {
20893
+ const session = toRecord$1(unwrapSdkData(input.session));
20894
+ const sessionId = readOpenCodeSessionId(input.session);
20895
+ const directory = normalizeOptionalText$9(session?.directory);
20896
+ if (!directory) throw new OpenCodeServerTransportError({
20897
+ code: "protocol.invalid",
20898
+ errorType: "adapter",
20899
+ message: "OpenCode did not return the conversation's working folder."
20900
+ });
20901
+ let sameDirectory;
20902
+ try {
20903
+ const [sessionPath, workingPath] = await Promise.all([realpath(directory), realpath(input.workingDirectory)]);
20904
+ sameDirectory = sessionPath === workingPath;
20905
+ } catch {
20906
+ throw new OpenCodeServerTransportError({
20907
+ code: "context.workspace_unavailable",
20908
+ errorType: "adapter",
20909
+ message: "This OpenCode session's working folder is unavailable. Restore that folder, or create a new Agent with a new session here."
20910
+ });
20911
+ }
20912
+ if (!sameDirectory) throw new OpenCodeServerTransportError({
20913
+ code: "context.workspace_mismatch",
20914
+ errorType: "adapter",
20915
+ message: "This OpenCode session uses another working folder. Restore that folder for this Agent, or create a new Agent with a new session here."
20916
+ });
20917
+ return {
20918
+ directory,
20919
+ sessionId
20920
+ };
20018
20921
  }
20019
20922
  async function consumeOpenCodeEvents(input) {
20020
20923
  let ready = false;
@@ -20760,7 +21663,7 @@ async function invokeOpenCodeWithSingleContextHeal(input) {
20760
21663
  }
20761
21664
  async function invokeOpenCodeOnce(input) {
20762
21665
  try {
20763
- if (input.onInteractionRequest || input.executionMode === "repair" && input.sessionId) return await invokeOpenCodeServerTransport({
21666
+ if (input.onInteractionRequest || input.sessionId) return await invokeOpenCodeServerTransport({
20764
21667
  launchContract: input.launchContract,
20765
21668
  openCodeTimeoutMs: input.openCodeTimeoutMs,
20766
21669
  openCodeWorkdir: input.openCodeWorkdir,
@@ -21014,6 +21917,7 @@ const installOpenCodeAdapter = {
21014
21917
  //#region ../../runtime/local-service/src/adapters/installers/list-installers.ts
21015
21918
  function listLocalAdapterInstallers() {
21016
21919
  return [
21920
+ installAntigravityAdapter,
21017
21921
  installClaudeCodeAdapter,
21018
21922
  installCodexAdapter,
21019
21923
  installCursorAdapter,
@@ -22282,7 +23186,7 @@ async function syncDaemonRouteCatalogState(input) {
22282
23186
  return {
22283
23187
  status: "failed",
22284
23188
  reason: "load_failed",
22285
- errorMessage: toErrorMessage$19(error)
23189
+ errorMessage: toErrorMessage$20(error)
22286
23190
  };
22287
23191
  }
22288
23192
  const nextFingerprint = buildRouteCatalogFingerprint(nextCatalog);
@@ -22295,7 +23199,7 @@ async function syncDaemonRouteCatalogState(input) {
22295
23199
  return {
22296
23200
  status: "failed",
22297
23201
  reason: "register_failed",
22298
- errorMessage: toErrorMessage$19(error)
23202
+ errorMessage: toErrorMessage$20(error)
22299
23203
  };
22300
23204
  }
22301
23205
  applyAcceptedLeases({
@@ -22336,7 +23240,7 @@ async function syncDaemonRouteCatalogState(input) {
22336
23240
  return {
22337
23241
  status: "failed",
22338
23242
  reason: "register_failed",
22339
- errorMessage: toErrorMessage$19(error)
23243
+ errorMessage: toErrorMessage$20(error)
22340
23244
  };
22341
23245
  }
22342
23246
  const diff = buildRouteCatalogDiff({
@@ -22977,20 +23881,50 @@ var registry_default = {
22977
23881
  "id": "antigravity",
22978
23882
  "displayName": "Antigravity",
22979
23883
  "category": "builtin",
22980
- "skillsDir": ".agent/skills",
22981
- "globalSkillsDir": "${HOME}/.gemini/antigravity/skills",
23884
+ "skillsDir": ".agents/skills",
23885
+ "globalSkillsDir": ["${HOME}/.gemini/antigravity-cli/skills", "${HOME}/.gemini/antigravity/skills"],
22982
23886
  "detection": {
22983
23887
  "mode": "any",
22984
- "checks": [{
22985
- "kind": "pathExists",
22986
- "value": "${HOME}/.gemini/antigravity"
22987
- }]
23888
+ "checks": [
23889
+ {
23890
+ "kind": "commandExists",
23891
+ "value": "agy"
23892
+ },
23893
+ {
23894
+ "kind": "pathExists",
23895
+ "value": "${HOME}/.gemini/antigravity-cli"
23896
+ },
23897
+ {
23898
+ "kind": "pathExists",
23899
+ "value": "${HOME}/.gemini/antigravity"
23900
+ }
23901
+ ]
22988
23902
  },
22989
23903
  "service": { "skillsInstallable": true },
22990
23904
  "runtime": {
22991
- "supported": false,
22992
- "adapters": []
22993
- }
23905
+ "supported": true,
23906
+ "adapters": [{
23907
+ "adapterId": "antigravity",
23908
+ "controllerRefMatcher": {
23909
+ "kind": "contains",
23910
+ "values": ["antigravity"]
23911
+ },
23912
+ "transportModes": ["local-cli"],
23913
+ "capabilityDeclaration": {
23914
+ "executionContextVersion": 2,
23915
+ "streamingCapability": "preview_capable",
23916
+ "imageInputCapability": "unsupported",
23917
+ "runtimeWorkingDirectoryMode": "spawn_cwd",
23918
+ "preparationRequirement": "none",
23919
+ "continuationCapability": "standard",
23920
+ "workspaceResumeBehavior": "validate_only"
23921
+ }
23922
+ }]
23923
+ },
23924
+ "lifecycle": { "status": "active" },
23925
+ "transportModes": ["local-cli"],
23926
+ "defaultTransportMode": "local-cli",
23927
+ "defaultStreamingMode": "stream"
22994
23928
  },
22995
23929
  {
22996
23930
  "id": "augment",
@@ -23895,8 +24829,111 @@ var registry_default = {
23895
24829
  //#region src/model-catalog/offline-catalog.json
23896
24830
  var offline_catalog_default = {
23897
24831
  schemaVersion: 1,
23898
- updatedAt: "2026-09-01T00:00:00.000Z",
24832
+ updatedAt: "2026-09-21T00:00:00.000Z",
23899
24833
  agentControllers: {
24834
+ "antigravity": {
24835
+ "defaultModelId": "gemini-3.8-flash-high",
24836
+ "models": [
24837
+ {
24838
+ "id": "gemini-3.8-flash-high",
24839
+ "displayName": "Gemini 3.8 Flash (High)",
24840
+ "unavailable": false,
24841
+ "supportedReasoningLevels": [],
24842
+ "minCliVersion": "1.2.7"
24843
+ },
24844
+ {
24845
+ "id": "gemini-3.8-flash-medium",
24846
+ "displayName": "Gemini 3.8 Flash (Medium)",
24847
+ "unavailable": false,
24848
+ "supportedReasoningLevels": [],
24849
+ "minCliVersion": "1.2.7"
24850
+ },
24851
+ {
24852
+ "id": "gemini-3.8-flash-low",
24853
+ "displayName": "Gemini 3.8 Flash (Low)",
24854
+ "unavailable": false,
24855
+ "supportedReasoningLevels": [],
24856
+ "minCliVersion": "1.2.7"
24857
+ },
24858
+ {
24859
+ "id": "gemini-3.7-flash-high",
24860
+ "displayName": "Gemini 3.7 Flash (High)",
24861
+ "unavailable": false,
24862
+ "supportedReasoningLevels": [],
24863
+ "minCliVersion": "1.2.7"
24864
+ },
24865
+ {
24866
+ "id": "gemini-3.7-flash-medium",
24867
+ "displayName": "Gemini 3.7 Flash (Medium)",
24868
+ "unavailable": false,
24869
+ "supportedReasoningLevels": [],
24870
+ "minCliVersion": "1.2.7"
24871
+ },
24872
+ {
24873
+ "id": "gemini-3.7-flash-low",
24874
+ "displayName": "Gemini 3.7 Flash (Low)",
24875
+ "unavailable": false,
24876
+ "supportedReasoningLevels": [],
24877
+ "minCliVersion": "1.2.7"
24878
+ },
24879
+ {
24880
+ "id": "gemini-3.6-flash-high",
24881
+ "displayName": "Gemini 3.6 Flash (High)",
24882
+ "unavailable": false,
24883
+ "supportedReasoningLevels": [],
24884
+ "minCliVersion": "1.2.7"
24885
+ },
24886
+ {
24887
+ "id": "gemini-3.6-flash-medium",
24888
+ "displayName": "Gemini 3.6 Flash (Medium)",
24889
+ "unavailable": false,
24890
+ "supportedReasoningLevels": [],
24891
+ "minCliVersion": "1.2.7"
24892
+ },
24893
+ {
24894
+ "id": "gemini-3.6-flash-low",
24895
+ "displayName": "Gemini 3.6 Flash (Low)",
24896
+ "unavailable": false,
24897
+ "supportedReasoningLevels": [],
24898
+ "minCliVersion": "1.2.7"
24899
+ },
24900
+ {
24901
+ "id": "gemini-3.1-pro-high",
24902
+ "displayName": "Gemini 3.1 Pro (High)",
24903
+ "unavailable": false,
24904
+ "supportedReasoningLevels": [],
24905
+ "minCliVersion": "1.2.7"
24906
+ },
24907
+ {
24908
+ "id": "gemini-3.1-pro-low",
24909
+ "displayName": "Gemini 3.1 Pro (Low)",
24910
+ "unavailable": false,
24911
+ "supportedReasoningLevels": [],
24912
+ "minCliVersion": "1.2.7"
24913
+ },
24914
+ {
24915
+ "id": "claude-sonnet-4-6",
24916
+ "displayName": "Claude Sonnet 4.6 (Thinking)",
24917
+ "unavailable": false,
24918
+ "supportedReasoningLevels": [],
24919
+ "minCliVersion": "1.2.7"
24920
+ },
24921
+ {
24922
+ "id": "claude-opus-4-6-thinking",
24923
+ "displayName": "Claude Opus 4.6 Thinking",
24924
+ "unavailable": false,
24925
+ "supportedReasoningLevels": [],
24926
+ "minCliVersion": "1.2.7"
24927
+ },
24928
+ {
24929
+ "id": "gpt-oss-120b-medium",
24930
+ "displayName": "GPT-OSS 120B (Medium)",
24931
+ "unavailable": false,
24932
+ "supportedReasoningLevels": [],
24933
+ "minCliVersion": "1.2.7"
24934
+ }
24935
+ ]
24936
+ },
23900
24937
  "codex": {
23901
24938
  "defaultModelId": "gpt-5.6-sol",
23902
24939
  "models": [
@@ -26029,6 +27066,29 @@ const EMPTY_AGENT_CONTROLLER_INTERFACE_CAPABILITIES = {
26029
27066
  structuredUserInput: false
26030
27067
  };
26031
27068
  const BUILTIN_AGENT_CONTROLLER_DEFINITIONS = [
27069
+ {
27070
+ adapterId: "antigravity",
27071
+ agentId: "antigravity",
27072
+ capabilities: {
27073
+ approvals: false,
27074
+ cancel: true,
27075
+ interrupt: true,
27076
+ modelSelection: true,
27077
+ nativeEventStream: true,
27078
+ permissionModes: false,
27079
+ structuredUserInput: false
27080
+ },
27081
+ conversationOccupancy: {
27082
+ contractVersion: 1,
27083
+ mode: "unsupported"
27084
+ },
27085
+ installResolver: {
27086
+ resolveInstalledLaunchCandidates: resolveInstalledAntigravityLaunchCandidates,
27087
+ verifyLaunchContract: verifyAntigravityLaunchContract
27088
+ },
27089
+ nativeInterface: "local-cli",
27090
+ usageLimitSupport: resolveAgentControllerUsageLimitSupport("builtin:antigravity")
27091
+ },
26032
27092
  {
26033
27093
  adapterId: "claude-code",
26034
27094
  agentId: "claude-code",
@@ -28071,9 +29131,9 @@ function createModelCatalogReadSession(input) {
28071
29131
  async function readModelCatalogOnce(baseUrl) {
28072
29132
  try {
28073
29133
  const [apiClient, baseUrlModule, clientFoundationModule] = await Promise.all([
28074
- import("./dist-DZYJ8yLA.js"),
28075
- import("./base-url-CfyKRz89.js"),
28076
- import("./api-client-foundation-DwFyNNaC.js")
29134
+ import("./dist-RR7jryeV.js"),
29135
+ import("./base-url-CMBApK1J.js"),
29136
+ import("./api-client-foundation-CMVD057A.js")
28077
29137
  ]);
28078
29138
  if (typeof apiClient.createConfigApi !== "function") throw new Error("config api client is unavailable");
28079
29139
  const resolvedBaseUrl = baseUrl ?? await baseUrlModule.resolveBaseUrl();
@@ -28367,9 +29427,9 @@ function resolveBoundProfileLocalRouteCandidate(input) {
28367
29427
  const agentControllerCollaborationMode = resolveNativeAgentControllerCollaborationModeForController(binding.agentControllerCollaborationMode, { agentControllerRef: agentControllerRef.ref });
28368
29428
  return {
28369
29429
  agentControllerRef: agentControllerRef.ref,
28370
- agentControllerConversationId: normalizeOptionalText$49(executionTarget.agentControllerConversationId),
29430
+ agentControllerConversationId: normalizeOptionalText$52(executionTarget.agentControllerConversationId),
28371
29431
  openMeldServiceRuntimeId: executionTarget.openMeldServiceRuntimeId.value,
28372
- bindingId: normalizeOptionalText$49(binding.bindingId),
29432
+ bindingId: normalizeOptionalText$52(binding.bindingId),
28373
29433
  ...agentControllerCollaborationMode ? { agentControllerCollaborationMode } : {},
28374
29434
  ...agentControllerPermissionMode ? { agentControllerPermissionMode } : {},
28375
29435
  ...binding.modelSelection ? { modelSelection: binding.modelSelection } : {},
@@ -28712,7 +29772,7 @@ async function repairLocalReplyStateOrThrow(input) {
28712
29772
  mode: "repair"
28713
29773
  });
28714
29774
  } catch (error) {
28715
- const errorMessage = toErrorMessage$19(error);
29775
+ const errorMessage = toErrorMessage$20(error);
28716
29776
  emitRunLine({
28717
29777
  presenter: input.presenter,
28718
29778
  code: "daemon.run.projection_sync_failed",
@@ -28729,7 +29789,7 @@ async function repairLocalReplyStateOrThrow(input) {
28729
29789
  try {
28730
29790
  await syncProfileWorkspaceState({ mode: "repair" });
28731
29791
  } catch (error) {
28732
- const errorMessage = toErrorMessage$19(error);
29792
+ const errorMessage = toErrorMessage$20(error);
28733
29793
  emitRunLine({
28734
29794
  presenter: input.presenter,
28735
29795
  code: "daemon.run.profile_workspace_sync_failed",
@@ -29830,7 +30890,7 @@ const DEFAULT_OPENCLAW_RUNTIME_PREPARATION_DEPS = {
29830
30890
  fetchGatewayHealth: fetchOpenClawGatewayHealth
29831
30891
  };
29832
30892
  async function prepareOpenClawRuntime(input, deps = DEFAULT_OPENCLAW_RUNTIME_PREPARATION_DEPS) {
29833
- const profileName = normalizeOptionalText$49(input.profileName);
30893
+ const profileName = normalizeOptionalText$52(input.profileName);
29834
30894
  if (!profileName) throw new DaemonServiceRunError({
29835
30895
  code: "controller.bootstrap.failed",
29836
30896
  message: "controller.bootstrap.failed: OpenClaw bootstrap requires an OpenMeld profile name"
@@ -29893,12 +30953,12 @@ function buildOpenClawGatewayVisibilityFailure(error) {
29893
30953
  }
29894
30954
  function extractErrorCode(error) {
29895
30955
  if (!(error && typeof error === "object" && "code" in error)) return;
29896
- return normalizeOptionalText$49(error.code) ?? void 0;
30956
+ return normalizeOptionalText$52(error.code) ?? void 0;
29897
30957
  }
29898
30958
  function resolveOpenClawGatewayVisibilityDiagnostics(error) {
29899
30959
  if (!(error instanceof Error)) return;
29900
30960
  const diagnostics = error.diagnostics;
29901
- if (!diagnostics || typeof diagnostics !== "object" || !normalizeOptionalText$49(diagnostics.agentId)) return;
30961
+ if (!diagnostics || typeof diagnostics !== "object" || !normalizeOptionalText$52(diagnostics.agentId)) return;
29902
30962
  const parsedGatewayVisibility = openMeldDaemonTaskResultOpenClawGatewayVisibilityStatusSchema.safeParse(diagnostics.gatewayVisibility);
29903
30963
  if (!parsedGatewayVisibility.success) return;
29904
30964
  return {
@@ -29925,6 +30985,6 @@ async function prepareProviderRuntime(input, options = {}) {
29925
30985
  return await preparer(input);
29926
30986
  }
29927
30987
  //#endregion
29928
- export { canManageRegistryAgentSkillTargets as $, buildAgentControllerRef as $n, mergeOpenClawGatewayVisibility as $t, createExpectedRoutesReadSession as A, buildRuntimeWorkspaceFingerprint as An, resolveBuiltinAgentControllerBrand as Ar, ensureOpenMeldManagedProfileWorkspace as At, reconcileNewRunnableBuiltinAgentsForSetup as B, withLedgerStateTransaction as Bn, createMutableRouteCatalogState as Bt, createModelCatalogReadSession as C, verifyCodexAppServerThread as Cn, MIN_HEARTBEAT_INTERVAL_MS as Cr, resolveLocalProjectConnectionForPath as Ct, NO_LOCAL_AGENTS_NEED_OPENMELD_SERVICE_REASON as D, emitReconcileStartedEvidence as Dn, resolveAdaptiveHeartbeatIntervalMs as Dr, resolveRegistryOriginLaunchCommand as Dt, resolveProfileWorkspaceRuntime as E, emitReconcileCompletedEvidence as En, pruneStaleLeases as Er, listBuiltinAgentsRegistryEntries as Et, listAgentRegistrations as F, removeConversationExecutionState as Fn, resolveConfiguredProfileWorkspacePathForAccount as Ft, updateAgentRegistrations as G, createUnsupportedProviderUsageLimits as Gn, syncRuntimeEventToInflightTaskControlRegistry as Gt, resolveAgentTargetState as H, assertLegacyAgentContextAssociation as Hn, summarizeSkippedDaemonProfiles as Ht, listAgentTargetStates as I, resolveConversationExecutionStateByLookupKey as In, setCustomProfileWorkspace as It, normalizeAgentIds as J, materializeCliLaunchCommand as Jn, isDaemonReconcileInProgressError as Jt, notifyDaemonRouteCatalogChanged as K, resolveDispatchSpaceActionMcpServer as Kn, SPACE_ACTION_CONTEXT_GUIDANCE_LINES as Kt, manageAgentRegistrationInstallation as L, seedLegacyAgentContext as Ln, setOpenMeldManagedProfileWorkspace as Lt, addAgentCustomTarget as M, appendLedgerHistoryEntry as Mn, readProfileWorkspaceConfig as Mt, createRegistrationFromCatalogTarget as N, commitResolvedAgentContext as Nn, readProfileWorkspaceConfigForAccount as Nt, syncDeviceRuntimeStateProjection as O, DaemonServiceRunError as On, resolveCatalogSyncIntervalMs as Or, resolveRegistryRuntimeAdapterCapabilitySnapshot as Ot, listAgentCustomTargets as P, loadLedgerState as Pn, resolveConfiguredProfileWorkspacePath as Pt, resolveLocalRegistryAgentIdFromAgentControllerRef as Q, areAgentControllerInterfaceAccountsSame as Qn, createPendingAgentInteractionRegistry as Qt, readAgentRuntimeConfigHealth as R, settleInflightTask as Rn, validateCustomProfileWorkspacePath as Rt, syncProfileWorkspaceState as S, resolveCodexAppServerCompletedTurn as Sn, MAX_HEARTBEAT_INTERVAL_MS as Sr, canonicalizeLocalProjectPath as St, resolveEffectiveProfileWorkingFolderRuntime as T, emitDriftDetectedEvidence as Tn, applyIntervalJitterMs as Tr, withAgentActivityLocalStateLock as Tt, setAgentRegistrationEnabled as U, buildAgentContextLookupKey as Un, syncDaemonRouteCatalogState as Ut, removeAgentCustomTarget as V, buildAuthenticatedControlPlaneResponse as Vn, createRouteCatalogFromMutableState as Vt, updateAgentCustomTarget as W, createUnavailableProviderUsageLimits as Wn, normalizeDispatchThreadAction as Wt, sortAgentRegistrations as X, createProviderOriginalError as Xn, buildDispatchReplyContextSummary as Xt, parseAgentEnabledOption as Y, listAgentControllerSupervisedProcessIds as Yn, createSerialAgentInteractionCallback as Yt, repairBuiltinControllerInstall as Z, DEFAULT_TASK_LIFECYCLE_HEARTBEAT_INTERVAL_MS as Zn, normalizeDispatchPostMessageAction as Zt, loadDaemonRouteCatalog as _, resolveInstalledGrokBuildLaunchCandidates as _n, resolveEvidenceSyncHealth as _r, removeProjectConnection as _t, buildOpenClawSpaceSessionKey as a, resolveDispatchContinuityObservation as an, getAgentControllerPermissionModeDisplayMetadata as ar, isHomebrewCommandPath as at, resolveLocalController as b, resolveInstalledCodexLaunchCandidates as bn, resolveRouteRegistrationReconcileDecision as br, setDefaultProjectConnection as bt, findOpenClawAgentById as c, resolveLatestScopedConversationExecutionState as cn, listAgentControllerPermissionModeOptions as cr, ProjectBindingOperationError as ct, resolveOpenClawAuthStatus as d, createLocalAdapterEntries as dn, projectPeopleComputersToLegacyLocalRuntimes as dr, isProjectBound as dt, createLocalTaskInterruptSender as en, buildInformationProtectionPromptPlan as er, detectInstalledSkillsAgents as et, resolveOpenClawProviderRuntimeWorkingDirectory as f, parseOpenCodeGoUsageResponse as fn, renderInformationProtectionPrompt as fr, listProjectBindings as ft, writeDaemonRouteCatalogCache as g, probeGrokBuildAcpInterface as gn, resolveAgentProfileEditCapabilities as gr, removeMissingProjectConnections as gt, readDaemonRouteCatalogCache as h, GrokBuildAcpTransportError as hn, resolveAgentExecutionStatus as hr, removeAgentActivityBindingsWhileDeliveryLocked as ht, listOpenClawGatewayAgents as i, resolveDispatchQueueLogMeta as in, createAuthorityOpenMeldServiceRuntimeId as ir, isBunGlobalCommandPath as it, resolveAgentProfilePrimaryAgentControllerReport as j, buildTaskResultEnvelope as jn, normalizeCustomProfileWorkspacePath as jt, createPrimaryBindingReadSession as k, runRuntimeTask as kn, compareAgentControllerRefsForDisplay as kr, resolveRegistryRuntimeAdapterContractByAgentControllerRef as kt, findOpenClawAgentsByWorkspace as l, resolveCatalogSyncSkippedProfilesLogState as ln, parseAgentControllerRef as lr, ProjectBindingStoreUpdateRequiredError as lt, resolveOpenClawLocalBootstrapPaths as m, resolveInstalledOpenCodeLaunchCandidates as mn, resolveAgentControllerPermissionModeForController as mr, migrateProjectBindingStore as mt, fetchOpenClawGatewayHealth as n, createLocalExecutionSlots as nn, createAgentControllerInterfaceDisplayRows as nr, EMPTY_AGENT_CONTROLLER_INTERFACE_CAPABILITIES as nt, normalizeOpenClawSpaceIdPrefix as o, resolveCompatibleAgentContextMatch as on, getAgentControllerPermissionModeFieldLabel as or, isNpmGlobalCommandPath as ot, readOpenClawLocalBootstrapState as p, forkOpenCodeServerSession as pn, renderWorkingLanguagePrompt as pr, listProjectConnectionsWithStatus as pt, normalizeAgentId as q, buildCliLaunchInvocation as qn, SPACE_ACTION_TARGET_GUIDANCE_LINES as qt, listOpenClawAgents as r, createInflightTaskControlRegistry as rn, createAgentExecutionStatusDisplayRows as rr, resolveBuiltinAgentControllerDefinition as rt, slugifyOpenClawNamePart as s, resolveCompatibleConversationExecutionState as sn, isAgentExecutionReadyOrConnecting as sr, isPnpmGlobalCommandPath as st, prepareProviderRuntime as t, buildLocalServiceDiagnosticsPayload as tn, buildWorkingLanguagePromptPlan as tr, resolveSkillsAgentRegistry as tt, matchesExpectedWorkspace as u, createLocalAdapterContainer as un, peopleComputerContainsDevice as ur, bindProject as ut, buildRuntimeRouteTargets as v, projectCodexUsageLimits as vn, resolveNativeAgentControllerPermissionModeForController as vr, resolveProjectBindingForPath as vt, resolveCurrentEffectiveProfileWorkingFolderRuntime as w, resolveInstalledClaudeCodeLaunchCandidates as wn, applyAcceptedLeases as wr, withAgentActivityDeliveryLock as wt, resolveLocalRuntimeControllerSupport as x, forkCodexAppServerThread as xn, ADAPTIVE_HEARTBEAT_JITTER_RATIO as xr, unbindProject as xt, readLocalEnabledControllers as y, resolveCodexTimeoutMs as yn, resolveSelectableCandidates as yr, runIfAgentActivityBindingGenerationIsCurrent as yt, reconcileNewRunnableBuiltinAgentRegistrations as z, upsertConversationExecutionState as zn, describeProfileWorkspacePathValidationFailure as zt };
30988
+ 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 };
29929
30989
 
29930
- //# sourceMappingURL=prepare-provider-runtime-CMX59Gmv.js.map
30990
+ //# sourceMappingURL=prepare-provider-runtime-DxaGSe3R.js.map