openmeld 0.3.212 → 0.3.214
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{add-me-membership-BwPpVKtA.js → add-me-membership-BaqG9F5c.js} +2 -2
- package/dist/{add-me-membership-BwPpVKtA.js.map → add-me-membership-BaqG9F5c.js.map} +1 -1
- package/dist/{agents-Y-UJ74By.js → agents-y9C8FCyv.js} +8 -8
- package/dist/{agents-Y-UJ74By.js.map → agents-y9C8FCyv.js.map} +1 -1
- package/dist/{api-client-foundation-CrQN8_-N.js → api-client-foundation-BYnU1pbS.js} +1 -1
- package/dist/{api-client-foundation-DjbtuE52.js → api-client-foundation-CKRP7Ymg.js} +3 -3
- package/dist/{api-client-foundation-DjbtuE52.js.map → api-client-foundation-CKRP7Ymg.js.map} +1 -1
- package/dist/auth-session-BWKfXWxl.js +4 -0
- package/dist/{auth-session-Dqz9X4F0.js → auth-session-gaLjWIKR.js} +67 -8
- package/dist/auth-session-gaLjWIKR.js.map +1 -0
- package/dist/{base-url-C6sHRNGu.js → base-url-BczddvzH.js} +2 -2
- package/dist/{base-url-C6sHRNGu.js.map → base-url-BczddvzH.js.map} +1 -1
- package/dist/{base-url-BE3pFiOZ.js → base-url-CfyKRz89.js} +1 -1
- package/dist/{command-jgHbP21v.js → command-C72QNhjP.js} +13 -13
- package/dist/{command-jgHbP21v.js.map → command-C72QNhjP.js.map} +1 -1
- package/dist/computer-connection-Dv9kex7h.js +120 -0
- package/dist/computer-connection-Dv9kex7h.js.map +1 -0
- package/dist/{computer-connection-review-CzSpaHE0.js → computer-connection-review-_ZLPsdE_.js} +6 -6
- package/dist/{computer-connection-review-CzSpaHE0.js.map → computer-connection-review-_ZLPsdE_.js.map} +1 -1
- package/dist/{computer-disconnect-DNM7jvda.js → computer-disconnect-BJ-Tl-7q.js} +9 -9
- package/dist/{computer-disconnect-DNM7jvda.js.map → computer-disconnect-BJ-Tl-7q.js.map} +1 -1
- package/dist/{computer-setup-continuation-BqdhIAjT.js → computer-setup-continuation-CN383Vvy.js} +4 -4
- package/dist/{computer-setup-continuation-BqdhIAjT.js.map → computer-setup-continuation-CN383Vvy.js.map} +1 -1
- package/dist/{control-plane-PxntAyDq.js → control-plane-Bpu7g9Av.js} +2 -2
- package/dist/{control-plane-PxntAyDq.js.map → control-plane-Bpu7g9Av.js.map} +1 -1
- package/dist/{daemon-runtime-lease-Dd4hdHNo.js → daemon-runtime-lease-CIzOT1zx.js} +2 -2
- package/dist/{daemon-runtime-lease-Dd4hdHNo.js.map → daemon-runtime-lease-CIzOT1zx.js.map} +1 -1
- package/dist/{daemon-runtime-lease-y3n1K0-C.js → daemon-runtime-lease-_M6hW8Mg.js} +1 -1
- package/dist/{daemon-service-manager-GiMCiTmu.js → daemon-service-manager-DxS5eH_N.js} +4 -4
- package/dist/{daemon-service-manager-GiMCiTmu.js.map → daemon-service-manager-DxS5eH_N.js.map} +1 -1
- package/dist/{daemon-service-manager-Bh0LoLed.js → daemon-service-manager-fPpyIyrU.js} +1 -1
- package/dist/{daemon-service-runtime-CWTlAhZY.js → daemon-service-runtime-CGT3yVOs.js} +113 -26
- package/dist/daemon-service-runtime-CGT3yVOs.js.map +1 -0
- package/dist/{daemon-service-update-coordinator-DcjOzGu1.js → daemon-service-update-coordinator--xLHNqDT.js} +966 -210
- package/dist/daemon-service-update-coordinator--xLHNqDT.js.map +1 -0
- package/dist/{daemon-state-C37ZtIZK.js → daemon-state-CoAZLwpi.js} +3 -3
- package/dist/{daemon-state-C37ZtIZK.js.map → daemon-state-CoAZLwpi.js.map} +1 -1
- package/dist/dist-CABuqfdH.js +4 -0
- package/dist/{dist-jsWwS864.js → dist-Dj3TOx03.js} +548 -223
- package/dist/dist-Dj3TOx03.js.map +1 -0
- package/dist/distribution-BDQT2ilb.js +20 -0
- package/dist/distribution-BDQT2ilb.js.map +1 -0
- package/dist/{elapsed-time-iFOSSUJo.js → elapsed-time-CCFWbCC8.js} +9 -7
- package/dist/{elapsed-time-iFOSSUJo.js.map → elapsed-time-CCFWbCC8.js.map} +1 -1
- package/dist/{installation-inventory-B0cbVLun.js → installation-inventory-C4WKcVEj.js} +6 -6
- package/dist/{installation-inventory-B0cbVLun.js.map → installation-inventory-C4WKcVEj.js.map} +1 -1
- package/dist/{local-components-H3SkJMC1.js → local-components-B6SCXZf9.js} +10 -2
- package/dist/local-components-B6SCXZf9.js.map +1 -0
- package/dist/{lock-Dxp6o_t_.js → lock-CAt9uTnZ.js} +5 -48
- package/dist/lock-CAt9uTnZ.js.map +1 -0
- package/dist/{openmeld-B4gQCCex.js → openmeld-DpV9lAF-.js} +325 -190
- package/dist/openmeld-DpV9lAF-.js.map +1 -0
- package/dist/openmeld-dev.js +1 -1
- package/dist/{openmeld-environment-target-NtJYJe1D.js → openmeld-environment-target-BWI2adGw.js} +3 -3
- package/dist/{openmeld-environment-target-NtJYJe1D.js.map → openmeld-environment-target-BWI2adGw.js.map} +1 -1
- package/dist/{openmeld-maintenance-worker-DtY_H7Bv.js → openmeld-maintenance-worker-Blfu_oOo.js} +9 -9
- package/dist/{openmeld-maintenance-worker-DtY_H7Bv.js.map → openmeld-maintenance-worker-Blfu_oOo.js.map} +1 -1
- package/dist/{openmeld-tools-update-join-DS_EIL5q.js → openmeld-tools-update-join-BpLwmowQ.js} +6 -4
- package/dist/{openmeld-tools-update-join-DS_EIL5q.js.map → openmeld-tools-update-join-BpLwmowQ.js.map} +1 -1
- package/dist/{openmeld-tools-update-process-frame-CbZPpc7D.js → openmeld-tools-update-process-frame-0X-t0Kjv.js} +2 -2
- package/dist/{openmeld-tools-update-process-frame-CbZPpc7D.js.map → openmeld-tools-update-process-frame-0X-t0Kjv.js.map} +1 -1
- package/dist/{openmeld-tools-update-process-frame-CcPLrSsw.js → openmeld-tools-update-process-frame-DX1Dc8VI.js} +1 -1
- package/dist/openmeld.js +4 -4
- package/dist/{prepare-session-executor-CWKqfuse.js → prepare-session-executor-Cfm3EvXl.js} +176 -23
- package/dist/prepare-session-executor-Cfm3EvXl.js.map +1 -0
- package/dist/process-identity-Clby123a.js +145 -0
- package/dist/process-identity-Clby123a.js.map +1 -0
- package/dist/{runtime-transport-BQAmcHwF.js → runtime-transport-D8G8sANa.js} +113 -10
- package/dist/runtime-transport-D8G8sANa.js.map +1 -0
- package/dist/{service-CTG3_X0o.js → service-Cl_Ge6oJ.js} +949 -75
- package/dist/service-Cl_Ge6oJ.js.map +1 -0
- package/dist/{distribution-DY2fBeSW.js → service-account-admission-Dy2W3n3_.js} +9 -19
- package/dist/service-account-admission-Dy2W3n3_.js.map +1 -0
- package/dist/{service-account-authorization-Dq4LcAVa.js → service-account-authorization-4oZuo8sT.js} +6 -6
- package/dist/{service-account-authorization-Dq4LcAVa.js.map → service-account-authorization-4oZuo8sT.js.map} +1 -1
- package/dist/{service-account-control-BTR_X7QM.js → service-account-control-CTXv3924.js} +11 -12
- package/dist/service-account-control-CTXv3924.js.map +1 -0
- package/dist/{service-control-capabilities-ChRe8hkw.js → service-control-capabilities-B-vCQoBV.js} +1 -1
- package/dist/service-control-capabilities-ptf0u8n5.js +70 -0
- package/dist/service-control-capabilities-ptf0u8n5.js.map +1 -0
- package/dist/service-control-carrier-capability-hvpD7hGf.js +24 -0
- package/dist/service-control-carrier-capability-hvpD7hGf.js.map +1 -0
- package/dist/upgrade-EWdIdoHm.js +4 -0
- package/dist/{upgrade-DAVEeo8B.js → upgrade-vuPM1iX3.js} +12 -9
- package/dist/{upgrade-DAVEeo8B.js.map → upgrade-vuPM1iX3.js.map} +1 -1
- package/dist/{windows-user-task-DxPN7TzK.js → windows-user-task-FdycoSb4.js} +1 -1
- package/dist/{windows-user-task-DqJWtlAm.js → windows-user-task-i0oHCBc0.js} +49 -19
- package/dist/windows-user-task-i0oHCBc0.js.map +1 -0
- package/package.json +2 -2
- package/dist/auth-session-Dqz9X4F0.js.map +0 -1
- package/dist/auth-session-bRzDGlXy.js +0 -4
- package/dist/computer-connection-DvqsgYls.js +0 -81
- package/dist/computer-connection-DvqsgYls.js.map +0 -1
- package/dist/daemon-service-runtime-CWTlAhZY.js.map +0 -1
- package/dist/daemon-service-update-coordinator-DcjOzGu1.js.map +0 -1
- package/dist/dist--pb6JxqG.js +0 -4
- package/dist/dist-jsWwS864.js.map +0 -1
- package/dist/distribution-DY2fBeSW.js.map +0 -1
- package/dist/local-components-H3SkJMC1.js.map +0 -1
- package/dist/lock-Dxp6o_t_.js.map +0 -1
- package/dist/openmeld-B4gQCCex.js.map +0 -1
- package/dist/prepare-session-executor-CWKqfuse.js.map +0 -1
- package/dist/runtime-transport-BQAmcHwF.js.map +0 -1
- package/dist/service-CTG3_X0o.js.map +0 -1
- package/dist/service-account-control-BTR_X7QM.js.map +0 -1
- package/dist/service-control-capabilities-C5SxnBg2.js +0 -54
- package/dist/service-control-capabilities-C5SxnBg2.js.map +0 -1
- package/dist/upgrade-DKXu-1wO.js +0 -4
- package/dist/windows-user-task-DqJWtlAm.js.map +0 -1
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { c as toSpaceDispatchLookupUrl, h as toSpaceResultUrl, i as toSpaceContractUrl, l as toSpaceDispatchTraceUrl, r as toSpaceBoardUrl, t as normalizeBaseUrl } from "./urls-CY2uzH2-.js";
|
|
4
|
-
import {
|
|
5
|
-
import { $
|
|
4
|
+
import { D as isLocalMachineFailureError, F as accountsDir, M as accountProfileSpaceCacheDir, N as accountProfileViewPath, O as toRecognizedLocalMachineFailureError, Q as openMeldManagedVersionBinaryPath, S as LocalMachineFailureError, T as createOrphanedSetupConcurrencyIssue, Y as openMeldBackupsDir, Z as openMeldManagedBinaryPath, _ as resolveCliContext, a as isOpenMeldOrphanedLockError, b as formatLaneScopeSentence, c as releaseLockSync, ct as resolveOpenMeldEnvPreset, d as runWithHeldLock, et as openMeldRootDir, gt as systemDir, ht as spacesDir, i as isOpenMeldLockError, it as profileViewPath, k as formatLocalMachineIssueMessage, l as repairOrphanedLegacyLocks, lt as resolveOpenMeldRootDir, m as OPENMELD_CLI_CONTEXT_ENV_KEY, mt as skillsDir, p as LEGACY_OPENMELD_AGENT_SESSION_ENV_KEY, q as normalizeAccountKey, r as buildOpenMeldOrphanedLockAction, rt as profileDir, st as resolveOpenMeldCliEntryNameFromArgv, t as acquireLock, u as resolveOpenMeldOrphanedLockIssue, w as createActiveSetupConcurrencyIssue, x as resolveOpenMeldLaneDescriptor } from "./lock-CAt9uTnZ.js";
|
|
5
|
+
import { $t as createPrepareReadinessApi, Ar as createAgentProfileCreationRequestBodySchema, Cn as postSpaceWorkHandoff, Ft as createCenterAgentApi, Gr as submitFeedbackIssueRequestSchema, Jt as createOrganizationApi, Lt as createComputerFileAccessApi, Mt as createAgentProfileBindingApi, Nn as toStructuredApiClientFailure, Nt as createAgentProfileExecutionModeApi, Oi as signalTextEnvelopeSchema, Or as DEFAULT_AGENT_PROFILE_CREATION_CONFIGURATION, Qt as createPluginsApi, Vt as createFeedbackApi, Xn as OPENMELD_HEADER_SPACE_ADDRESSING_VERSION, Xt as createOrganizationSkillsApi, _i as agentActivityInventorySessionStatusSchema, ai as agentActivitySnapshotQuerySchema, ar as spaceEntryTargetSchema, bi as localAgentSessionProviderSchema, br as summarizeComputerFileAccessPolicy, cr as SPACE_DISPATCH_TRACE_RESPONSE_CONTRACT_VERSION_HEADER, dr as resolveSpaceDispatchTraceRootCause, er as createSpaceTaskBodySchema, fr as spaceDispatchTraceAttemptStatusSchema, gi as agentActivityInventorySessionOriginSchema, gr as projectObservabilityWakeCorrelation, hr as observabilityWakeTraceSelectorSchema, ii as agentActivitySessionStatusSchema, in as createRoutinesApi, ir as spaceTaskMutationReceiptSchema, jt as createAgentActivityApi, kr as agentProfileCreationConfigurationSchema, lr as projectSpaceDispatchTraceFinalVisibleOutcome, mr as spaceDispatchTraceResponseSchema, nn as createProjectsApi, nr as mutateSpaceTaskBodySchema, or as pluginActionRequestSchema, pr as spaceDispatchTraceDispatchStatusSchema, qn as OPENMELD_HEADER_PROFILE_ID, ri as agentActivityProviderSchema, rr as spaceTaskIdSchema, sn as createSpaceApi, tr as listSpaceTasksResponseSchema, ui as resolvedSpaceMemberProfileSchema, ur as resolveRuntimeCoordinatorHeadStatusRootCause, vi as agentActivitySessionInventoryQuerySchema, vr as ownerComputerDiagnosticsSchema, yr as projectOwnerComputerLocalRuntimes, zt as createCurrentDeviceApi } from "./dist-Dj3TOx03.js";
|
|
6
6
|
import { c as agentControllerConversationRefSchema } from "./controller-contract-pe3_Re-c.js";
|
|
7
|
-
import { $
|
|
8
|
-
import { Ft as spaceStatusSchema, It as centerAgentInteractionSourceSchema,
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { t as computerConnectionIntentSchema } from "./computer-connection-
|
|
12
|
-
import { _ as readSelectedSkillDocument, f as ensureLocalSkills, n as collectSkillsReadinessSnapshot } from "./installation-inventory-
|
|
13
|
-
import { $ as
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import { A as getDaemonStatus } from "./daemon-state-
|
|
20
|
-
import { a as formatOpenMeldCliCommand, c as formatOpenMeldCliTextBlock, d as resolveSetupFollowUpCliEntryCommand, f as resolveUserFacingCliEntryCommand, i as formatInlineOpenMeldCliCommands, o as formatOpenMeldCliCommands, r as resolveAuthBaseUrl, s as formatOpenMeldCliLine, t as resolveOpenMeldEnvironmentTarget, u as formatProfileAwareOpenMeldCliCommands } from "./openmeld-environment-target-
|
|
21
|
-
import { r as runServiceAccountCarrier } from "./service-account-authorization-
|
|
22
|
-
import { c as buildRequestAuthHeaders, d as buildOpenMeldRequestContextFromProfile, n as fetchSpaceRequestWithTimeout, p as deriveAuthBaseUrlFromGatewayUrl, s as buildOpenMeldRequestContextHeadersWithAuth, t as createCliApiClientFoundation } from "./api-client-foundation-
|
|
23
|
-
import { t as runServiceAccountControl } from "./service-account-control-
|
|
24
|
-
import { C as buildNoLocalAgentsNoticeLines, D as recoverInterruptedComputerAuthHandoff, E as formatComputerAuthCleanupFailureSuffix, O as exchangeComputerAuthorizationGrant, S as buildLocalAgentsGuideUrl, T as emitUnusedSetupSessionCleanupWarning, _ as runStartLocalAgentsEnable, a as assertSetupServiceUpdateComplete, b as submitSelectedAgentControllerReports, c as collectObservedDeviceMetadata, d as collectStartLocalReadiness, f as runSkillsCheck$1, g as runSkillsUpdate, h as runSkillsUninstall, i as runPrepareSessionExecutor, j as writePrepareSessionSetupBootstrapResult, k as revokePreparedAuthSession, l as createSetupProgressReporter, m as runSkillsInstall, n as reportPrepareHandoffStopped, o as shouldForceSetupServiceRefresh, p as runSkillsEnsure, r as resolvePrepareSessionForHandoff, s as syncLocalSetupCurrentDeviceTargetFromServiceContract, t as connectPrepareSessionStream, u as resolveControllingTerminalSession, v as isCliOutputHandledError, w as confirmContinueWithoutLocalAgents, x as appendLocalAgentsGuideUrl, y as assertSelectedAgentControllerReportSubmissionsAccepted } from "./prepare-session-executor-
|
|
25
|
-
import { C as resolveGatewayWebOrigin, T as runDaemonServiceParticipationGate, _ as promptSearchSelect, a as runAgentsCustomRemove, c as runAgentsDisable, d as runAgentsManage, f as runAgentsRepair, h as promptSearchMultiselect, i as runAgentsCustomList, l as runAgentsEnable, m as formatTransportModeDisplay, n as runAgentsConfig, o as runAgentsCustomUpdate, p as runAgentsShow, r as runAgentsCustomAdd, s as runAgentsDetect, t as runAgents, u as runAgentsList, w as resolveSpaceWebGatewayOrigin } from "./agents-
|
|
26
|
-
import { a as runUpgrade, c as OPENMELD_UPGRADE_FAILURE_HINTS, l as OPENMELD_UPGRADE_METADATA_RECOVERY_HINTS, n as isUpgradeOutputHandledError, o as emitTopLevelAgentOverview, s as emitTopLevelCliAgentOverview, t as UPGRADE_INTERNAL_ALIGN_SERVICE_FLAG$1 } from "./upgrade-
|
|
7
|
+
import { $t as resolveCurrentDaemonExpectedVersion, A as formatDeviceReplyReadinessLabel, B as resolveGatewayChainReadiness, Ba as resolveViewProfileKey, Ci as resolveAgentExecutionStatus, Cn as listAgentTargetStates, Ei as resolveNativeAgentControllerPermissionModeForController, Ga as createOpenMeldHumanProfile, Ha as requireOpenMeldProfile, J as getSetupFlowCopy, Ja as listOpenMeldProfiles, K as buildDaemonRouteObservationPresentation$1, Ka as deleteOpenMeldProfile, Ki as resolveDispatchSpaceActionMcpServer, N as mapAgentReplyReadinessToLegacyAutoReply, O as resolveCurrentReplyReadinessSnapshot, Qi as assessServerRequiredVersion, Qt as classifyDaemonServiceWakeability, Ra as parseCliViewMode, Si as resolveAgentControllerPermissionModeForController, T as resolveDaemonServiceFreshnessWarning, Ti as resolveEvidenceSyncHealth, U as resolveOpenClawLocalDiagnosticsValue, Ua as resolveOpenMeldProfileOrNull, Va as isSelectedOpenMeldProfileRequiredError, Vn as listBuiltinAgentsRegistryEntries, Wa as createOpenMeldAgentProfile, Xa as resolveOpenMeldProfile, Ya as primeOpenMeldProfilesSessionCache, Za as updateOpenMeldProfile, Zn as notifyDaemonRouteCatalogChanged, Zt as classifyDaemonServiceRunStartability, _ as resolveServiceReadinessFromServiceStatus, _a as isCliUpdateCheckApplicable, _i as parseAgentControllerRef, _n as validateCustomProfileWorkspacePath, _t as syncDeviceRuntimeStateProjection, ao as buildAgentAuthenticationGuide, bt as resolveLocalRegistryAgentIdFromAgentControllerRef, cn as resolveProfileWorkspaceRuntime, co as buildHumanAuthenticationCard, di as createAgentExecutionStatusDisplayRows, dn as readProfileWorkspaceConfig, do as resolveAuthenticationGuidance, dr as unbindProject, eo as alignSelectedOpenMeldProfileStorage, er as bindProject, fo as resolveAuthenticationGuidanceFromError, fr as canonicalizeLocalProjectPath, ga as assessCliUpdate, gi as listAgentControllerPermissionModeOptions, gn as setOpenMeldManagedProfileWorkspace, go as setProfileDefaultView, hn as setCustomProfileWorkspace, ho as getProfileDefaultView, io as setSelectedOpenMeldProfileId, ir as migrateProjectBindingStore, j as formatHumanReplyReadinessReason$1, jt as inspectDaemonServiceInventory, k as formatAgentReplyReadinessLabel, ln as ensureOpenMeldManagedProfileWorkspace, lo as createAuthenticationError, lr as runIfAgentActivityBindingGenerationIsCurrent, mi as getAgentControllerPermissionModeFieldLabel, mt as createModelCatalogReadSession, no as clearSelectedOpenMeldProfileId, nr as listProjectBindings, pi as getAgentControllerPermissionModeDisplayMetadata, pn as resolveConfiguredProfileWorkspacePath, po as resolveAuthenticationGuidanceFromMessage, pt as syncProfileWorkspaceState, q as buildOnboardingPlan, ro as getSelectedOpenMeldProfileId, rr as listProjectConnectionsWithStatus, sr as removeProjectConnection, t as runPendingDaemonServiceUpdate, ta as readCurrentLocalDeviceId, un as normalizeCustomProfileWorkspacePath, ur as setDefaultProjectConnection, vi as peopleComputerContainsDevice, vn as describeProfileWorkspacePathValidationFailure, vo as compareAgentControllerRefsForDisplay, vt as createPrimaryBindingReadSession, wi as resolveAgentProfileEditCapabilities, yi as projectPeopleComputersToLegacyLocalRuntimes, yt as resolveAgentProfilePrimaryAgentControllerReport, za as resolveRuntimeContext } from "./daemon-service-update-coordinator--xLHNqDT.js";
|
|
8
|
+
import { $t as readSpaceFileTextResponseSchema, Cn as spaceContractSchema, Ft as spaceStatusSchema, Ht as spaceWorkingCopyResultSchema, In as messageEnvelopeSchema, It as centerAgentInteractionSourceSchema, Rr as START_BOUNDED_ID_SCHEMA, Sn as spaceContractFieldsSchema, Vr as START_TRIMMED_NON_EMPTY_STRING_SCHEMA, Vt as spaceWorkSelectionSchema, Yt as isSpaceFileTextEditable, ar as clientMessageIdSchema, cn as spaceFileEntryIdSchema, dn as spaceFileRevisionNumberSchema, en as resolveSpaceFileMimeType, fn as spaceMessageFileReferenceSchema, ni as openMeldProfileIdSchema, ri as openMeldRequestContextSchema, vn as spaceThreadContextSchema, zt as spaceWorkHandoffSchema } from "./runtime-transport-D8G8sANa.js";
|
|
9
|
+
import { C as updateAuthSessionActiveOrganization, T as runMacOsNativeKeychainHelperIfRequested, a as beginAuthSessionTransition, d as getAuthSessionState, f as getCurrentAuthOwnerUserId, g as normalizeStoredActiveOrganization, n as AuthSessionRecoveryInProgressError, o as buildStoredAuthSessionIdentity, s as clearAuthSession, t as AuthSessionChangedBeforeTransitionError, u as getAuthSessionMetadata } from "./auth-session-gaLjWIKR.js";
|
|
10
|
+
import { F as trimmedStringFromUnknown, N as nonEmptyTrimmedStringFromUnknown, b as dispatchExecutionSchema, w as openMeldRuntimeProfileIdSchema } from "./control-plane-Bpu7g9Av.js";
|
|
11
|
+
import { t as computerConnectionIntentSchema } from "./computer-connection-Dv9kex7h.js";
|
|
12
|
+
import { _ as readSelectedSkillDocument, f as ensureLocalSkills, n as collectSkillsReadinessSnapshot } from "./installation-inventory-C4WKcVEj.js";
|
|
13
|
+
import { $ as toStructuredGatewayFailure, An as registerAgentActivityRoute, B as resolveDaemonServiceParticipationStatus, Bn as ensureCommandAuthenticationOrCancel, Bt as buildSignalMessageReadProjection, C as buildProfileWorkspaceRows, Cn as enqueueAgentActivityHookEvent, Cr as revokeOrganizationJoinLinkResponseSchema, Dn as enqueueControllerTaskLifecycleEventWhileLocked, E as emitDaemonAgentOverview, En as removeProjectOutbox, F as emitCliJsonEnvelope, Fn as installAgentActivityIntegrations, G as materializeOrganizationSkillRelease, Gn as runAuthStatus, H as createCliSpaceApi, Hn as runAuthLogin, I as runDaemonStartupPreflight, In as readAgentActivityIntegrationStatus, It as buildDispatchResultMessageReadProjection, Jn as buildAuthStatusSnapshot, K as fetchSpaceMeta, Kn as exchangeOneTimeTokenAuthSession, Kt as buildSpaceRoundReadProjection, Ln as resolveAgentActivityDispatcherCommand, Lt as buildDispatchResultReplyWorkflowProjection, M as buildHumanErrorCopy, Mn as unregisterAgentActivityRoute, Mt as upsertSpaceConfig, N as renderHumanErrorCard, O as shouldEmitAgentOverview, On as readControllerTaskLifecycleOutboxHealth, P as renderHumanTextErrorCard, Pn as defaultManagedIntegrationPaths, Q as readGatewayTextResponse, Qn as renderTextInfoCard, R as resolveLocalComponentsStatus, Rn as uninstallAgentActivityIntegrations, Rt as buildPublicSpaceEntryUrl, S as buildProfileWorkspacePresentation, Sn as removeAgentActivityContextCache, Sr as organizationJoinLinkManagementQuerySchema, Tn as readAgentActivityOutboxHealth, U as createSpaceWorkingCopies, Un as runAuthLogout, V as fetchSpaceUpdates, Vn as evaluateCommandAuthentication, W as downloadWorkingCopyFile, Wn as runAuthMenu, Xt as createSpaceMemberIdentityIndex, Yn as formatActiveOrganizationLabel, Z as readGatewayJsonResponse, Zn as renderInfoCard, _n as buildAgentActivityEvent, _r as cliJsonSkillsLoadEnvelopeSchema, a as runDaemonBackgroundStartForDecision, ar as isCurrentCommandCheckScopeActive, at as readDispatchSpaceActionContextForReceiptFromEnv, bn as readCodexSessionTitles, br as getOrganizationJoinLinkResponseSchema, c as runDaemonInterrupt, ct as LocalProjectConnectionError, dt as submitProfileRuntimeAgentControllerReport, en as formatRemovedCcRelationMessage, er as promptTextEntry, et as parseJsonResponse, f as runDaemonSnapshot, ft as submitRuntimeAgentControllerReport, g as runDaemonUninstall, gn as syncLocalAgentActivity, gr as cliJsonSkillsListEnvelopeSchema, h as runDaemonTeardownStrict, hr as cliJsonOutputEnvelopeSchema, i as runDaemonAutostart, ir as getCurrentCommandCheckState, j as runDaemonStartDecisionPrompt, jn as resolveAgentActivityRouteForPath, kn as isAgentActivityRouteRegistered, l as runDaemonReinstall, lt as validateLocalProjectConnectionPath, m as runDaemonStop, mn as readRecentDaemonDispatchJournalEvents, mr as cliJsonErrorEnvelopeSchema, n as isManagedSystemServiceBootstrapRun, nr as runInteractivePrompt, nt as readDispatchOwnedRuntimeGuard, o as runDaemonCancel, or as resetCurrentCommandCheckState, ot as readDispatchSpaceActionContextFromEnv, p as runDaemonStatusFlow, q as updateSpaceMeta, qn as buildAuthStatusRows, qt as buildUpdatesReplyWorkflowProjection, r as runDaemon, rr as finishCurrentCommandCheckScope, rt as DispatchSpaceActionClosedError, s as runDaemonInstall, sr as startCurrentCommandCheckScope, st as writeDispatchSpaceActionRecord, t as bestEffortStopCurrentLaneDaemonService, tr as isReturnKeypress, tt as assertDispatchOwnedRuntimePublicWriteAllowed, u as runDaemonRunAfterEntryChecks, ut as readRuntimeReportingHealthState, vn as resolveObservedAgentActivityBinding, vr as cliJsonSkillsShowEnvelopeSchema, w as reconcileCliVersionView, wn as removeProjectInbox, x as resolveServiceParticipationReadiness, xn as readAgentActivityContextForPath, xr as organizationJoinLinkErrorResponseSchema, xt as inspectSpaceCacheFile, y as formatServiceParticipationReadinessLabel, yn as normalizeSharedSessionTitle, yr as acceptOrganizationJoinLinkBodySchema, z as writeInstalledLocalComponentsSnapshot, zn as buildCommandAuthenticationPromptMessage, zt as buildSignalIndex } from "./service-Cl_Ge6oJ.js";
|
|
14
|
+
import { Mt as LocalDaemonControlPlaneClientError, Nt as requestLocalAgentActivitySync, Vt as readDaemonServiceContract, X as buildInstallSelfJsonPayload, Z as performManagedInstall, lt as compareSemver, nt as OPENMELD_VERSION, r as readCurrentDaemonRuntimeContext, ut as ensureVersionStateReady } from "./daemon-service-runtime-CGT3yVOs.js";
|
|
15
|
+
import { $ as resolveCreateProfileKind, A as parseEnvelope, B as resolveHumanControllerDisplayName, C as toSpaceMetaUpsertInput, D as formatHumanReadTargetList, E as buildHumanReplyContextSummary, F as resolveOpenMeldProfileForSpaceCommand, G as printOpenMeldBanner, H as resolveAgentProfileSetup, I as emitSpaceAgentOverview, J as renderOpenMeldLogo, K as renderOpenMeldBrandBlockLines, L as emitSpaceCliAgentOverview, M as assertFullSignalIdArgument, N as assertValidSpaceIdTarget, O as resolveLinkAccessLabel, P as prepareAuthenticatedSpaceCommandContext, Q as createProfileByKind, R as prepareLocalAgentReadiness, S as loadSpaceSignalIndexOrNull, T as buildFormalSignalReadPayload, U as colorizeAgentLabel, V as persistAgentTransportSelection, W as colorizeDisplayProfileLabel, X as resolveSpaceSendText, Y as renderOpenMeldTagline, Z as resolveSpaceTaskSelection, _ as runSpaceWriteWithPasswordRetry, a as runSpaceDelete, b as buildIdentityOnlyMembersSnapshotForReadProjection, c as runSpaceLeave, d as runSpaceRemoveMembers, et as resolveCreateProfileName, f as runSpaceSend, g as runSpaceReadWithPasswordRetry, h as uploadPreparedSpaceFiles, i as runSpaceCreate, j as isSpaceCommandOutputHandledError, k as resolveOrganizationVisibilityLabel, l as runSpaceList, m as prepareRequestedSpaceSendFiles, n as promptAndConfirmSpacePassword, nt as assessActionParticipationCandidate, o as runSpaceHistory, p as runSpaceWatch, q as renderOpenMeldHeader, r as runSpaceAddMembers, s as runSpaceJoin, t as buildCreateSpacePasswordPromptConfig, tt as ensureAgentProfileRuntimeBinding, u as runSpacePassword, v as buildHumanReadSignalsTranscriptItems, w as buildFormalDispatchResultReadPayload, x as loadSpaceIdentityDirectoryOrNull, y as emitHumanReadSignalsTextProjection, z as buildReplyReadinessGuidance } from "./command-C72QNhjP.js";
|
|
16
|
+
import { At as getCliVersionInfo, D as createSpaceContractSetGuideError, Dt as registerSkillsTargetSelectionOptions, E as createSpaceAliasTargetGuideError, Gt as createPresenter, Ht as formatDualViewGuideForDisplay, J as createStartAuthenticationGuideError, Jt as errLine, K as createSpaceUpdatesGuideError, Kt as sanitizeTerminalDisplayText, L as createSpaceRemoveMembersGuideError, M as createSpaceMenuGuideError, Nt as registerAuthLoginRequestOptions, P as createSpacePublicationSetGuideError, Q as SPACE_CONTRACT_ALLOWED_ACTION_ORDER, R as createSpaceResultGuideError, Rt as registerBuiltinAgentSelectionOptions, S as createResetConfirmationGuideError, St as SPACE_ADD_MEMBERS_PROGRESS_HEARTBEAT_MS, T as createSpaceAddMembersGuideError, U as createSpaceSubcommandTargetGuideError, Ut as buildDualViewGuideMessage, Vt as DualViewGuideError, W as createSpaceTargetGuideError, Wt as formatAgentOverviewPayload, X as OPENMELD_AGENT_MENTAL_MODEL_LINES, Xt as outLine, Yt as outJsonLine, b as createProfileCreateGuideError, ct as canonicalizeAllowedActions, et as areAllowedActionsEquivalent, g as canUseInteractivePrompts, gt as getCommandHintsFromContract, j as createSpaceLeaveGuideError, jt as registerDaemonControlTargetOptions, nt as buildAgentFacingPublicationModeGuideLines, q as createStartAgentIdentityGuideError, qt as formatMessage, v as createDoctorFailedGuideError, x as createProfileMenuGuideError, y as createProfileActionGuideError, yt as registerSpaceMemberSelectionOptions } from "./elapsed-time-CCFWbCC8.js";
|
|
17
|
+
import { E as updateConfiguredStartV1OnboardingState, S as setConfiguredSkillsConfig, a as resolveBaseUrl, b as setConfiguredBaseUrl, c as resolveExplicitGatewayUrlOrThrow, g as getConfiguredSkillsConfig, m as getConfiguredOnboardingDisclaimerAcceptedAt, o as resolveBaseUrlOrNull, u as alignRuntimeConfigStorage, w as updateConfiguredOnboardingConfig } from "./base-url-BczddvzH.js";
|
|
18
|
+
import { n as resolveOpenMeldDistribution, t as isBinaryDistribution } from "./distribution-BDQT2ilb.js";
|
|
19
|
+
import { A as getDaemonStatus } from "./daemon-state-CoAZLwpi.js";
|
|
20
|
+
import { a as formatOpenMeldCliCommand, c as formatOpenMeldCliTextBlock, d as resolveSetupFollowUpCliEntryCommand, f as resolveUserFacingCliEntryCommand, i as formatInlineOpenMeldCliCommands, o as formatOpenMeldCliCommands, r as resolveAuthBaseUrl, s as formatOpenMeldCliLine, t as resolveOpenMeldEnvironmentTarget, u as formatProfileAwareOpenMeldCliCommands } from "./openmeld-environment-target-BWI2adGw.js";
|
|
21
|
+
import { r as runServiceAccountCarrier } from "./service-account-authorization-4oZuo8sT.js";
|
|
22
|
+
import { c as buildRequestAuthHeaders, d as buildOpenMeldRequestContextFromProfile, n as fetchSpaceRequestWithTimeout, p as deriveAuthBaseUrlFromGatewayUrl, s as buildOpenMeldRequestContextHeadersWithAuth, t as createCliApiClientFoundation } from "./api-client-foundation-CKRP7Ymg.js";
|
|
23
|
+
import { t as runServiceAccountControl } from "./service-account-control-CTXv3924.js";
|
|
24
|
+
import { C as buildNoLocalAgentsNoticeLines, D as recoverInterruptedComputerAuthHandoff, E as formatComputerAuthCleanupFailureSuffix, O as exchangeComputerAuthorizationGrant, S as buildLocalAgentsGuideUrl, T as emitUnusedSetupSessionCleanupWarning, _ as runStartLocalAgentsEnable, a as assertSetupServiceUpdateComplete, b as submitSelectedAgentControllerReports, c as collectObservedDeviceMetadata, d as collectStartLocalReadiness, f as runSkillsCheck$1, g as runSkillsUpdate, h as runSkillsUninstall, i as runPrepareSessionExecutor, j as writePrepareSessionSetupBootstrapResult, k as revokePreparedAuthSession, l as createSetupProgressReporter, m as runSkillsInstall, n as reportPrepareHandoffStopped, o as shouldForceSetupServiceRefresh, p as runSkillsEnsure, r as resolvePrepareSessionForHandoff, s as syncLocalSetupCurrentDeviceTargetFromServiceContract, t as connectPrepareSessionStream, u as resolveControllingTerminalSession, v as isCliOutputHandledError, w as confirmContinueWithoutLocalAgents, x as appendLocalAgentsGuideUrl, y as assertSelectedAgentControllerReportSubmissionsAccepted } from "./prepare-session-executor-Cfm3EvXl.js";
|
|
25
|
+
import { C as resolveGatewayWebOrigin, T as runDaemonServiceParticipationGate, _ as promptSearchSelect, a as runAgentsCustomRemove, c as runAgentsDisable, d as runAgentsManage, f as runAgentsRepair, h as promptSearchMultiselect, i as runAgentsCustomList, l as runAgentsEnable, m as formatTransportModeDisplay, n as runAgentsConfig, o as runAgentsCustomUpdate, p as runAgentsShow, r as runAgentsCustomAdd, s as runAgentsDetect, t as runAgents, u as runAgentsList, w as resolveSpaceWebGatewayOrigin } from "./agents-y9C8FCyv.js";
|
|
26
|
+
import { a as runUpgrade, c as OPENMELD_UPGRADE_FAILURE_HINTS, l as OPENMELD_UPGRADE_METADATA_RECOVERY_HINTS, n as isUpgradeOutputHandledError, o as emitTopLevelAgentOverview, s as emitTopLevelCliAgentOverview, t as UPGRADE_INTERNAL_ALIGN_SERVICE_FLAG$1 } from "./upgrade-vuPM1iX3.js";
|
|
27
27
|
import { createHash, randomUUID } from "node:crypto";
|
|
28
28
|
import { homedir, tmpdir } from "node:os";
|
|
29
29
|
import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
|
|
30
|
-
import { access, appendFile,
|
|
30
|
+
import { access, appendFile, mkdir, open, readFile, readdir, realpath, rename, rm, stat, writeFile } from "node:fs/promises";
|
|
31
31
|
import * as z$1 from "zod/v4";
|
|
32
32
|
import { z } from "zod/v4";
|
|
33
33
|
import { constants, openAsBlob, readFileSync, realpathSync } from "node:fs";
|
|
@@ -1954,6 +1954,8 @@ const COMMAND_CHECK_REQUIREMENTS = Object.freeze({
|
|
|
1954
1954
|
"space.add-members": buildCommandChecks(REQUIRED_DISCLAIMER, OPTIONAL_CLI_UPDATE, REQUIRED_SIGN_IN, CONFIRM_SELECTED_PROFILE),
|
|
1955
1955
|
"space.remove-members": buildCommandChecks(REQUIRED_DISCLAIMER, OPTIONAL_CLI_UPDATE, AUTO_FIX_LOCAL_RUNTIME, REQUIRED_SIGN_IN, CONFIRM_SELECTED_PROFILE),
|
|
1956
1956
|
"space.leave": buildCommandChecks(REQUIRED_DISCLAIMER, OPTIONAL_CLI_UPDATE, AUTO_FIX_LOCAL_RUNTIME, REQUIRED_SIGN_IN, CONFIRM_SELECTED_PROFILE),
|
|
1957
|
+
"space.files.handoff": buildCommandChecks(REQUIRED_DISCLAIMER, OPTIONAL_CLI_UPDATE, REQUIRED_SIGN_IN, CONFIRM_SELECTED_PROFILE),
|
|
1958
|
+
"space.files.working-copy": buildCommandChecks(REQUIRED_DISCLAIMER, OPTIONAL_CLI_UPDATE, REQUIRED_SIGN_IN, CONFIRM_SELECTED_PROFILE),
|
|
1957
1959
|
"space.files.list": buildCommandChecks(REQUIRED_DISCLAIMER, OPTIONAL_CLI_UPDATE, REQUIRED_SIGN_IN, CONFIRM_SELECTED_PROFILE),
|
|
1958
1960
|
"space.files.read": buildCommandChecks(REQUIRED_DISCLAIMER, OPTIONAL_CLI_UPDATE, REQUIRED_SIGN_IN, CONFIRM_SELECTED_PROFILE),
|
|
1959
1961
|
"space.files.upload": buildCommandChecks(REQUIRED_DISCLAIMER, OPTIONAL_CLI_UPDATE, REQUIRED_SIGN_IN, CONFIRM_SELECTED_PROFILE),
|
|
@@ -2153,6 +2155,10 @@ const COMMAND_ENTRY_NAME_BY_ROUTE = {
|
|
|
2153
2155
|
"spaces remove-members": "space.remove-members",
|
|
2154
2156
|
"space leave": "space.leave",
|
|
2155
2157
|
"spaces leave": "space.leave",
|
|
2158
|
+
"space files handoff": "space.files.handoff",
|
|
2159
|
+
"spaces files handoff": "space.files.handoff",
|
|
2160
|
+
"space files working-copy": "space.files.working-copy",
|
|
2161
|
+
"spaces files working-copy": "space.files.working-copy",
|
|
2156
2162
|
"space files list": "space.files.list",
|
|
2157
2163
|
"spaces files list": "space.files.list",
|
|
2158
2164
|
"space files read": "space.files.read",
|
|
@@ -2889,6 +2895,18 @@ const COMMAND_ENTRY_COPY_BY_NAME = Object.freeze({
|
|
|
2889
2895
|
cliUpdateAction: "leaving a space",
|
|
2890
2896
|
serviceAction: null
|
|
2891
2897
|
},
|
|
2898
|
+
"space.files.handoff": {
|
|
2899
|
+
signInAction: "handing off Space files",
|
|
2900
|
+
profileAction: "handing off Space files",
|
|
2901
|
+
cliUpdateAction: "handing off Space files",
|
|
2902
|
+
serviceAction: null
|
|
2903
|
+
},
|
|
2904
|
+
"space.files.working-copy": {
|
|
2905
|
+
signInAction: "working on Space files locally",
|
|
2906
|
+
profileAction: "working on Space files locally",
|
|
2907
|
+
cliUpdateAction: "working on Space files locally",
|
|
2908
|
+
serviceAction: null
|
|
2909
|
+
},
|
|
2892
2910
|
"space.files.list": {
|
|
2893
2911
|
signInAction: "listing Space files",
|
|
2894
2912
|
profileAction: "listing Space files",
|
|
@@ -3876,8 +3894,8 @@ async function moveDirectoryFilesIfMissing(input) {
|
|
|
3876
3894
|
};
|
|
3877
3895
|
}
|
|
3878
3896
|
async function moveFileIfMissing(input) {
|
|
3879
|
-
if (!await pathExists
|
|
3880
|
-
if (await pathExists
|
|
3897
|
+
if (!await pathExists(input.sourcePath)) return false;
|
|
3898
|
+
if (await pathExists(input.targetPath)) return false;
|
|
3881
3899
|
await mkdir(dirname(input.targetPath), { recursive: true });
|
|
3882
3900
|
await rename(input.sourcePath, input.targetPath);
|
|
3883
3901
|
return true;
|
|
@@ -3907,7 +3925,7 @@ async function removeDirectoryIfEmpty(path) {
|
|
|
3907
3925
|
});
|
|
3908
3926
|
return true;
|
|
3909
3927
|
}
|
|
3910
|
-
async function pathExists
|
|
3928
|
+
async function pathExists(path) {
|
|
3911
3929
|
return await stat(path).then(() => true).catch(() => false);
|
|
3912
3930
|
}
|
|
3913
3931
|
async function readDirectoryEntriesIfExists(path) {
|
|
@@ -6178,6 +6196,13 @@ async function createCenterAgentApiClient(input) {
|
|
|
6178
6196
|
//#region src/space/local-agent-environment.ts
|
|
6179
6197
|
const CODEX_THREAD_ID_ENV = "CODEX_THREAD_ID";
|
|
6180
6198
|
const CLAUDE_CODE_SESSION_ID_ENV = "CLAUDE_CODE_SESSION_ID";
|
|
6199
|
+
const CODEX_LIKE_ENV_VARS = [
|
|
6200
|
+
"CODEX_SHELL",
|
|
6201
|
+
"CODEX_CI",
|
|
6202
|
+
"CODEX_SESSION_ID",
|
|
6203
|
+
"CODEX_INTERNAL_ORIGINATOR_OVERRIDE"
|
|
6204
|
+
];
|
|
6205
|
+
[...CODEX_LIKE_ENV_VARS];
|
|
6181
6206
|
function detectLocalAgentEnvironment(env) {
|
|
6182
6207
|
const claudeSessionId = normalizeOptionalString$14(env[CLAUDE_CODE_SESSION_ID_ENV]);
|
|
6183
6208
|
if (claudeSessionId) return {
|
|
@@ -6199,7 +6224,7 @@ function detectLocalAgentEnvironment(env) {
|
|
|
6199
6224
|
return { kind: "human" };
|
|
6200
6225
|
}
|
|
6201
6226
|
function isCodexLikeEnvironment(env) {
|
|
6202
|
-
return
|
|
6227
|
+
return CODEX_LIKE_ENV_VARS.some((name) => Boolean(normalizeOptionalString$14(env[name])));
|
|
6203
6228
|
}
|
|
6204
6229
|
function normalizeOptionalString$14(value) {
|
|
6205
6230
|
if (typeof value !== "string") return null;
|
|
@@ -14208,6 +14233,7 @@ async function runPreparedComputerAuthHandoff(input) {
|
|
|
14208
14233
|
let failureReported = false;
|
|
14209
14234
|
try {
|
|
14210
14235
|
if (await recoverInterruptedComputerAuthHandoff({
|
|
14236
|
+
onProgress: (progress) => stream.writeConnectionProgress?.(progress),
|
|
14211
14237
|
presenter: input.presenter,
|
|
14212
14238
|
runtime: input.runtime,
|
|
14213
14239
|
view: input.view
|
|
@@ -14285,6 +14311,7 @@ async function runPreparedComputerAuthHandoff(input) {
|
|
|
14285
14311
|
presenter: input.presenter,
|
|
14286
14312
|
runtime: input.runtime,
|
|
14287
14313
|
transition,
|
|
14314
|
+
stream,
|
|
14288
14315
|
view: input.view
|
|
14289
14316
|
});
|
|
14290
14317
|
return sessionResult;
|
|
@@ -14299,6 +14326,7 @@ async function runPreparedComputerAuthHandoff(input) {
|
|
|
14299
14326
|
presenter: input.presenter,
|
|
14300
14327
|
runtime: input.runtime,
|
|
14301
14328
|
transition,
|
|
14329
|
+
stream,
|
|
14302
14330
|
view: input.view
|
|
14303
14331
|
});
|
|
14304
14332
|
} catch (recoveryError) {
|
|
@@ -14412,6 +14440,7 @@ async function confirmComputerAccountSwitch(input) {
|
|
|
14412
14440
|
async function restorePreviousComputerAfterFailedHandoff(input) {
|
|
14413
14441
|
await input.transition.rollback();
|
|
14414
14442
|
if (await recoverInterruptedComputerAuthHandoff({
|
|
14443
|
+
onProgress: (progress) => input.stream.writeConnectionProgress?.(progress),
|
|
14415
14444
|
presenter: input.presenter,
|
|
14416
14445
|
runtime: input.runtime,
|
|
14417
14446
|
view: input.view
|
|
@@ -20026,151 +20055,6 @@ async function runOrganizationInvitationRequests(input) {
|
|
|
20026
20055
|
}
|
|
20027
20056
|
}
|
|
20028
20057
|
//#endregion
|
|
20029
|
-
//#region src/organization-skills/cache.ts
|
|
20030
|
-
const CACHE_MARKER_FILENAME = ".openmeld-organization-skill.json";
|
|
20031
|
-
const DIRECTORY_READ_ONLY_MODE = 365;
|
|
20032
|
-
const FILE_READ_ONLY_MODE = 292;
|
|
20033
|
-
const PRIVATE_DIRECTORY_MODE = 448;
|
|
20034
|
-
const PRIVATE_FILE_MODE = 384;
|
|
20035
|
-
async function materializeOrganizationSkillRelease(input) {
|
|
20036
|
-
const bundle = organizationSkillBundleSchema.parse(input.bundle);
|
|
20037
|
-
if (sha256(stringifyOrganizationSkillBundleCanonicalJson(bundle)) !== input.digest) throw new Error("The Organization Skill release digest does not match its downloaded bundle.");
|
|
20038
|
-
const releaseDir = organizationSkillReleaseDir(input.organizationId, input.skillId, input.releaseId);
|
|
20039
|
-
const skillMarkdown = serializePortableSkillMarkdown(bundle);
|
|
20040
|
-
const expectedFiles = buildExpectedCacheFiles({
|
|
20041
|
-
bundle,
|
|
20042
|
-
marker: {
|
|
20043
|
-
digest: input.digest,
|
|
20044
|
-
organizationId: input.organizationId,
|
|
20045
|
-
releaseId: input.releaseId,
|
|
20046
|
-
schemaVersion: 1,
|
|
20047
|
-
skillId: input.skillId
|
|
20048
|
-
},
|
|
20049
|
-
skillMarkdown
|
|
20050
|
-
});
|
|
20051
|
-
if (await cacheMatches(releaseDir, expectedFiles)) return buildResult({
|
|
20052
|
-
bundle,
|
|
20053
|
-
releaseDir,
|
|
20054
|
-
reused: true
|
|
20055
|
-
});
|
|
20056
|
-
const skillDir = dirname(releaseDir);
|
|
20057
|
-
await mkdir(skillDir, {
|
|
20058
|
-
mode: PRIVATE_DIRECTORY_MODE,
|
|
20059
|
-
recursive: true
|
|
20060
|
-
});
|
|
20061
|
-
await chmod(skillDir, PRIVATE_DIRECTORY_MODE);
|
|
20062
|
-
const temporaryDir = await mkdtemp(join(skillDir, `.load-${randomUUID()}-`));
|
|
20063
|
-
try {
|
|
20064
|
-
await writeCacheFiles(temporaryDir, expectedFiles);
|
|
20065
|
-
await makeCacheReadOnly(temporaryDir, bundle);
|
|
20066
|
-
if (await pathExists(releaseDir)) throw new Error(`The existing Organization Skill cache is not valid. Remove "${releaseDir}" and run the load command again.`);
|
|
20067
|
-
await rename(temporaryDir, releaseDir);
|
|
20068
|
-
} catch (error) {
|
|
20069
|
-
await rm(temporaryDir, {
|
|
20070
|
-
force: true,
|
|
20071
|
-
recursive: true
|
|
20072
|
-
}).catch(() => {});
|
|
20073
|
-
throw error;
|
|
20074
|
-
}
|
|
20075
|
-
return buildResult({
|
|
20076
|
-
bundle,
|
|
20077
|
-
releaseDir,
|
|
20078
|
-
reused: false
|
|
20079
|
-
});
|
|
20080
|
-
}
|
|
20081
|
-
function serializePortableSkillMarkdown(bundle) {
|
|
20082
|
-
const portable = bundle.portable;
|
|
20083
|
-
return `${[
|
|
20084
|
-
"---",
|
|
20085
|
-
`name: ${toYamlString(portable.name)}`,
|
|
20086
|
-
`description: ${toYamlString(portable.description)}`,
|
|
20087
|
-
...portable.license === null ? [] : [`license: ${toYamlString(portable.license)}`],
|
|
20088
|
-
...portable.compatibility === null ? [] : [`compatibility: ${toYamlString(portable.compatibility)}`],
|
|
20089
|
-
...portable.allowedTools === null ? [] : [`allowed-tools: ${toYamlString(portable.allowedTools)}`],
|
|
20090
|
-
...serializeMetadata(portable.metadata),
|
|
20091
|
-
"---",
|
|
20092
|
-
""
|
|
20093
|
-
].join("\n")}${bundle.instructions}${bundle.instructions.endsWith("\n") ? "" : "\n"}`;
|
|
20094
|
-
}
|
|
20095
|
-
function buildExpectedCacheFiles(input) {
|
|
20096
|
-
const files = /* @__PURE__ */ new Map();
|
|
20097
|
-
files.set("SKILL.md", Buffer.from(input.skillMarkdown, "utf8"));
|
|
20098
|
-
for (const file of input.bundle.files) files.set(file.path, decodeSkillFile(file));
|
|
20099
|
-
files.set(CACHE_MARKER_FILENAME, Buffer.from(`${JSON.stringify(input.marker, null, 2)}\n`, "utf8"));
|
|
20100
|
-
return files;
|
|
20101
|
-
}
|
|
20102
|
-
async function writeCacheFiles(rootDir, files) {
|
|
20103
|
-
for (const [relativePath, bytes] of files) {
|
|
20104
|
-
const absolutePath = join(rootDir, relativePath);
|
|
20105
|
-
await mkdir(dirname(absolutePath), {
|
|
20106
|
-
mode: PRIVATE_DIRECTORY_MODE,
|
|
20107
|
-
recursive: true
|
|
20108
|
-
});
|
|
20109
|
-
await writeFile(absolutePath, bytes, { mode: PRIVATE_FILE_MODE });
|
|
20110
|
-
}
|
|
20111
|
-
}
|
|
20112
|
-
async function cacheMatches(rootDir, expectedFiles) {
|
|
20113
|
-
if (!await pathExists(rootDir)) return false;
|
|
20114
|
-
try {
|
|
20115
|
-
for (const [relativePath, expected] of expectedFiles) if (!(await readFile(join(rootDir, relativePath))).equals(expected)) return false;
|
|
20116
|
-
return true;
|
|
20117
|
-
} catch {
|
|
20118
|
-
return false;
|
|
20119
|
-
}
|
|
20120
|
-
}
|
|
20121
|
-
async function makeCacheReadOnly(rootDir, bundle) {
|
|
20122
|
-
const directories = /* @__PURE__ */ new Set([rootDir]);
|
|
20123
|
-
for (const relativePath of [
|
|
20124
|
-
"SKILL.md",
|
|
20125
|
-
CACHE_MARKER_FILENAME,
|
|
20126
|
-
...bundle.files.map((file) => file.path)
|
|
20127
|
-
]) {
|
|
20128
|
-
const absolutePath = join(rootDir, relativePath);
|
|
20129
|
-
await chmod(absolutePath, FILE_READ_ONLY_MODE);
|
|
20130
|
-
let current = dirname(absolutePath);
|
|
20131
|
-
while (current !== rootDir && current.startsWith(`${rootDir}/`)) {
|
|
20132
|
-
directories.add(current);
|
|
20133
|
-
current = dirname(current);
|
|
20134
|
-
}
|
|
20135
|
-
}
|
|
20136
|
-
const deepestFirst = [...directories].sort((left, right) => right.length - left.length);
|
|
20137
|
-
for (const directory of deepestFirst) await chmod(directory, DIRECTORY_READ_ONLY_MODE);
|
|
20138
|
-
}
|
|
20139
|
-
function buildResult(input) {
|
|
20140
|
-
return {
|
|
20141
|
-
cachePath: input.releaseDir,
|
|
20142
|
-
resourcePaths: input.bundle.files.map((file) => join(input.releaseDir, file.path)),
|
|
20143
|
-
reused: input.reused,
|
|
20144
|
-
skillMarkdownPath: join(input.releaseDir, "SKILL.md")
|
|
20145
|
-
};
|
|
20146
|
-
}
|
|
20147
|
-
function decodeSkillFile(file) {
|
|
20148
|
-
return Buffer.from(file.content, file.encoding === "base64" ? "base64" : "utf8");
|
|
20149
|
-
}
|
|
20150
|
-
function serializeMetadata(metadata) {
|
|
20151
|
-
const entries = Object.entries(metadata).sort(([left], [right]) => {
|
|
20152
|
-
if (left < right) return -1;
|
|
20153
|
-
if (left > right) return 1;
|
|
20154
|
-
return 0;
|
|
20155
|
-
});
|
|
20156
|
-
if (entries.length === 0) return [];
|
|
20157
|
-
return ["metadata:", ...entries.map(([key, value]) => ` ${toYamlString(key)}: ${toYamlString(value)}`)];
|
|
20158
|
-
}
|
|
20159
|
-
function toYamlString(value) {
|
|
20160
|
-
return JSON.stringify(value);
|
|
20161
|
-
}
|
|
20162
|
-
function sha256(value) {
|
|
20163
|
-
return createHash("sha256").update(value).digest("hex");
|
|
20164
|
-
}
|
|
20165
|
-
async function pathExists(path) {
|
|
20166
|
-
try {
|
|
20167
|
-
await stat(path);
|
|
20168
|
-
return true;
|
|
20169
|
-
} catch {
|
|
20170
|
-
return false;
|
|
20171
|
-
}
|
|
20172
|
-
}
|
|
20173
|
-
//#endregion
|
|
20174
20058
|
//#region src/organization-skills/command.ts
|
|
20175
20059
|
const defaultDependencies = {
|
|
20176
20060
|
getAuthState: getAuthSessionState,
|
|
@@ -20225,13 +20109,20 @@ async function runOrganizationSkillsLoad(input, dependencyOverrides = {}) {
|
|
|
20225
20109
|
await runOrganizationSkillsCommand(input, dependencyOverrides, async (context, dependencies) => {
|
|
20226
20110
|
const skill = await getSkillByNameOrId(context, input.skill);
|
|
20227
20111
|
if (!skill.enabled) throw new Error(`Organization Skill "${skill.name}" is disabled. Ask an Organization owner or admin to enable it before loading.`);
|
|
20228
|
-
const
|
|
20112
|
+
const selected = input.releaseId === void 0 ? {
|
|
20229
20113
|
bundle: skill.bundle,
|
|
20230
20114
|
digest: skill.activeRelease.digest,
|
|
20231
|
-
organizationId: context.organization.id,
|
|
20232
20115
|
releaseId: skill.activeRelease.id,
|
|
20233
20116
|
skillId: skill.id
|
|
20234
|
-
})
|
|
20117
|
+
} : await readSelectedRelease(context, skill.id, input.releaseId);
|
|
20118
|
+
if (!selected || selected.skillId !== skill.id || input.releaseId !== void 0 && selected.releaseId !== input.releaseId) throw new Error("The requested Skill release was not returned. Update the server before loading an exact release.");
|
|
20119
|
+
const payload = buildLoadPayload(context, skill, await dependencies.materialize({
|
|
20120
|
+
bundle: selected.bundle,
|
|
20121
|
+
digest: selected.digest,
|
|
20122
|
+
organizationId: context.organization.id,
|
|
20123
|
+
releaseId: selected.releaseId,
|
|
20124
|
+
skillId: skill.id
|
|
20125
|
+
}), selected);
|
|
20235
20126
|
if (context.json) {
|
|
20236
20127
|
emitCliJsonEnvelope(cliJsonSkillsLoadEnvelopeSchema.parse({
|
|
20237
20128
|
schemaVersion: 1,
|
|
@@ -20250,6 +20141,16 @@ async function runOrganizationSkillsLoad(input, dependencyOverrides = {}) {
|
|
|
20250
20141
|
renderLoadedSkill(context, payload);
|
|
20251
20142
|
});
|
|
20252
20143
|
}
|
|
20144
|
+
async function readSelectedRelease(context, skillId, releaseId) {
|
|
20145
|
+
const response = await context.api.get({
|
|
20146
|
+
requestContext: context.requestContext,
|
|
20147
|
+
skillId,
|
|
20148
|
+
releaseId
|
|
20149
|
+
});
|
|
20150
|
+
requireOrganizationIdentity(context, response.skill.organizationId);
|
|
20151
|
+
if (!response.skill.enabled) throw new Error("This Organization Skill is disabled.");
|
|
20152
|
+
return response.selectedRelease;
|
|
20153
|
+
}
|
|
20253
20154
|
async function runOrganizationSkillsCommand(input, dependencyOverrides, run) {
|
|
20254
20155
|
const dependencies = {
|
|
20255
20156
|
...defaultDependencies,
|
|
@@ -20417,12 +20318,12 @@ function renderSkill(context, skill) {
|
|
|
20417
20318
|
});
|
|
20418
20319
|
}
|
|
20419
20320
|
}
|
|
20420
|
-
function buildLoadPayload(context, skill, materialized) {
|
|
20321
|
+
function buildLoadPayload(context, skill, materialized, selected) {
|
|
20421
20322
|
return {
|
|
20422
20323
|
cachePath: materialized.cachePath,
|
|
20423
|
-
digest:
|
|
20324
|
+
digest: selected.digest,
|
|
20424
20325
|
organizationId: context.organization.id,
|
|
20425
|
-
releaseId:
|
|
20326
|
+
releaseId: selected.releaseId,
|
|
20426
20327
|
resourcePaths: materialized.resourcePaths,
|
|
20427
20328
|
reused: materialized.reused,
|
|
20428
20329
|
skillId: skill.id,
|
|
@@ -23234,6 +23135,7 @@ function recordDispatchSpaceReply(input) {
|
|
|
23234
23135
|
wakeTargetCount: input.wakeTargets?.length ?? 0
|
|
23235
23136
|
});
|
|
23236
23137
|
const filePaths = input.filePaths ?? [];
|
|
23138
|
+
if (filePaths.length && input.files?.length) throw new Error("Choose uploaded paths or saved file revisions for this reply.");
|
|
23237
23139
|
const context = filePaths.length > 0 ? readDispatchSpaceActionContextFromEnv() : readDispatchSpaceActionContextForReceiptFromEnv();
|
|
23238
23140
|
timing.emit("context_ready", context);
|
|
23239
23141
|
assertAllowedAction(context, "post_message");
|
|
@@ -23252,7 +23154,7 @@ function recordDispatchSpaceReply(input) {
|
|
|
23252
23154
|
});
|
|
23253
23155
|
if (filePaths.length === 0) return writeSpaceActionReplyRecord({
|
|
23254
23156
|
context,
|
|
23255
|
-
files: [],
|
|
23157
|
+
files: input.files ? [...input.files] : [],
|
|
23256
23158
|
targetIds,
|
|
23257
23159
|
text,
|
|
23258
23160
|
timing
|
|
@@ -23679,6 +23581,49 @@ async function withDispatchTaskContext(operation) {
|
|
|
23679
23581
|
return result;
|
|
23680
23582
|
}
|
|
23681
23583
|
//#endregion
|
|
23584
|
+
//#region src/space/dispatch-working-copy.ts
|
|
23585
|
+
const run = promisify(execFile);
|
|
23586
|
+
async function runDispatchWorkingCopy(action, resolution) {
|
|
23587
|
+
const context = readDispatchSpaceActionContextFromEnv();
|
|
23588
|
+
const command = resolveDispatchSpaceActionMcpServer(process.env);
|
|
23589
|
+
if (!(command && context.workingCopyId)) throw new Error("This Wake has no prepared working copy.");
|
|
23590
|
+
const { stdout } = await run(command.commandPath, [
|
|
23591
|
+
"space",
|
|
23592
|
+
"files",
|
|
23593
|
+
"working-copy",
|
|
23594
|
+
action,
|
|
23595
|
+
"--profile",
|
|
23596
|
+
context.targetProfileId,
|
|
23597
|
+
"--json",
|
|
23598
|
+
"--view",
|
|
23599
|
+
"agent",
|
|
23600
|
+
...action === "resolve" ? [
|
|
23601
|
+
"--file-id",
|
|
23602
|
+
resolution?.fileId ?? "",
|
|
23603
|
+
"--revision",
|
|
23604
|
+
String(resolution?.revision ?? 0)
|
|
23605
|
+
] : [],
|
|
23606
|
+
"--",
|
|
23607
|
+
context.spaceId,
|
|
23608
|
+
context.workingCopyId
|
|
23609
|
+
], {
|
|
23610
|
+
encoding: "utf8",
|
|
23611
|
+
maxBuffer: 1024 * 1024,
|
|
23612
|
+
timeout: 12e4
|
|
23613
|
+
}).catch((error) => {
|
|
23614
|
+
if (error && typeof error === "object" && "stdout" in error && typeof error.stdout === "string") {
|
|
23615
|
+
let value;
|
|
23616
|
+
try {
|
|
23617
|
+
value = JSON.parse(error.stdout);
|
|
23618
|
+
} catch {}
|
|
23619
|
+
const parsed = cliJsonErrorEnvelopeSchema.safeParse(value);
|
|
23620
|
+
if (parsed.success) throw new Error(JSON.stringify(parsed.data), { cause: error });
|
|
23621
|
+
}
|
|
23622
|
+
throw error;
|
|
23623
|
+
});
|
|
23624
|
+
return spaceWorkingCopyResultSchema.parse(JSON.parse(stdout));
|
|
23625
|
+
}
|
|
23626
|
+
//#endregion
|
|
23682
23627
|
//#region src/space/action-mcp-server.ts
|
|
23683
23628
|
const FINAL_STATUS_SCHEMA = z.enum([
|
|
23684
23629
|
"done",
|
|
@@ -23691,6 +23636,39 @@ function createSpaceActionMcpServer() {
|
|
|
23691
23636
|
name: "openmeld-dispatch-space-action",
|
|
23692
23637
|
version: "1.0.0"
|
|
23693
23638
|
}, { instructions: "Use read_history for the bounded text history around the current Wake, and read_file for shared text files in the current Space. Use Space Task tools only when a clear deliverable needs durable ownership, progress, review, or later closure; questions and tiny same-turn actions stay in Messages. Task operations are non-final. Then choose exactly one final OpenMeld Space Action: reply for the exact public message, status for a final visible status, or stay_silent when no public message is needed. Private assistant output is not posted to the Space." });
|
|
23639
|
+
server.registerTool("working_copy", {
|
|
23640
|
+
title: "Save or inspect this handoff's files",
|
|
23641
|
+
description: "Inspect or commit this handoff's files; reconcile retries an unknown save. On conflict, refresh downloads the shared version, then status shows its path and revision. Merge it into the original working file, then resolve with fileId and incoming revision before committing again. No automatic merge or overwrite. Does not deliver or close the Wake. No Space, profile or path overrides.",
|
|
23642
|
+
inputSchema: {
|
|
23643
|
+
action: z.enum([
|
|
23644
|
+
"status",
|
|
23645
|
+
"commit",
|
|
23646
|
+
"reconcile",
|
|
23647
|
+
"refresh",
|
|
23648
|
+
"resolve"
|
|
23649
|
+
]),
|
|
23650
|
+
fileId: z.string().optional(),
|
|
23651
|
+
revision: z.number().int().positive().optional()
|
|
23652
|
+
}
|
|
23653
|
+
}, async ({ action, fileId, revision }) => {
|
|
23654
|
+
try {
|
|
23655
|
+
return { content: [{
|
|
23656
|
+
type: "text",
|
|
23657
|
+
text: JSON.stringify(await runDispatchWorkingCopy(action, {
|
|
23658
|
+
fileId,
|
|
23659
|
+
revision
|
|
23660
|
+
}))
|
|
23661
|
+
}] };
|
|
23662
|
+
} catch (error) {
|
|
23663
|
+
return {
|
|
23664
|
+
isError: true,
|
|
23665
|
+
content: [{
|
|
23666
|
+
type: "text",
|
|
23667
|
+
text: error instanceof Error ? error.message : String(error)
|
|
23668
|
+
}]
|
|
23669
|
+
};
|
|
23670
|
+
}
|
|
23671
|
+
});
|
|
23694
23672
|
server.registerTool("read_history", {
|
|
23695
23673
|
title: "Read the current Wake's Space history",
|
|
23696
23674
|
description: "Read up to 20 text messages before the current Wake, plus its source message. Space, Agent identity and source are fixed by the active dispatch. Use this instead of terminal CLI history. This read does not submit a reply or close the Wake.",
|
|
@@ -23885,6 +23863,7 @@ function createSpaceActionMcpServer() {
|
|
|
23885
23863
|
description: "Record the exact final public reply for the active OpenMeld Wake. Use real newline characters for paragraph breaks. Optionally wake or reference an Agent, or mention a person, by mention label or profile ID.",
|
|
23886
23864
|
inputSchema: {
|
|
23887
23865
|
message: z.string().min(1),
|
|
23866
|
+
files: z.array(spaceMessageFileReferenceSchema).max(10).optional(),
|
|
23888
23867
|
mentionTargets: z.array(z.string().min(1)).optional(),
|
|
23889
23868
|
referenceTargets: z.array(z.string().min(1)).optional(),
|
|
23890
23869
|
wakeTargets: z.array(z.string().min(1)).optional()
|
|
@@ -23896,7 +23875,8 @@ function createSpaceActionMcpServer() {
|
|
|
23896
23875
|
openWorldHint: false,
|
|
23897
23876
|
readOnlyHint: false
|
|
23898
23877
|
}
|
|
23899
|
-
}, async ({ mentionTargets, message, referenceTargets, wakeTargets }) => executeSpaceAction(() => recordDispatchSpaceReply({
|
|
23878
|
+
}, async ({ files, mentionTargets, message, referenceTargets, wakeTargets }) => executeSpaceAction(() => recordDispatchSpaceReply({
|
|
23879
|
+
files,
|
|
23900
23880
|
mentionTargets,
|
|
23901
23881
|
referenceTargets,
|
|
23902
23882
|
text: message,
|
|
@@ -24632,7 +24612,7 @@ function normalizeOptionalString(value) {
|
|
|
24632
24612
|
return normalized.length > 0 ? normalized : null;
|
|
24633
24613
|
}
|
|
24634
24614
|
async function runDefaultSpaceAddMeMembership(input) {
|
|
24635
|
-
const { runSpaceAddMeMembership } = await import("./add-me-membership-
|
|
24615
|
+
const { runSpaceAddMeMembership } = await import("./add-me-membership-BaqG9F5c.js");
|
|
24636
24616
|
return await runSpaceAddMeMembership(input);
|
|
24637
24617
|
}
|
|
24638
24618
|
//#endregion
|
|
@@ -25664,9 +25644,165 @@ function isInteractiveHumanOutput(context, json) {
|
|
|
25664
25644
|
return context.interactive && context.runtime.resolvedView === "human" && !json;
|
|
25665
25645
|
}
|
|
25666
25646
|
//#endregion
|
|
25647
|
+
//#region src/space/work-handoff-command.ts
|
|
25648
|
+
async function runSpaceWorkHandoff(input) {
|
|
25649
|
+
const context = await prepareSpaceFilesContext(input, "handing off selected work");
|
|
25650
|
+
if (!context) return;
|
|
25651
|
+
if ((await stat(input.manifest)).size > 128 * 1024) throw new Error("The handoff manifest is too large.");
|
|
25652
|
+
const handoff = spaceWorkHandoffSchema.parse(JSON.parse(await readFile(input.manifest, "utf8")));
|
|
25653
|
+
const result = await postSpaceWorkHandoff(context.spaceApi, {
|
|
25654
|
+
spaceId: input.space,
|
|
25655
|
+
requestContext: context.requestContext,
|
|
25656
|
+
spacePassword: input.password,
|
|
25657
|
+
handoff,
|
|
25658
|
+
targetProfileId: input.target,
|
|
25659
|
+
clientMessageId: input.clientMessageId,
|
|
25660
|
+
threadId: input.thread
|
|
25661
|
+
});
|
|
25662
|
+
emitMutationOutput({
|
|
25663
|
+
presenter: context.presenter,
|
|
25664
|
+
json: input.json,
|
|
25665
|
+
code: "space.files.handoff",
|
|
25666
|
+
text: "Handoff posted. Check the message for the Agent's actual Wake status.",
|
|
25667
|
+
payload: result
|
|
25668
|
+
});
|
|
25669
|
+
}
|
|
25670
|
+
//#endregion
|
|
25671
|
+
//#region src/space/working-copy-command.ts
|
|
25672
|
+
async function runSpaceWorkingCopy(input) {
|
|
25673
|
+
const context = await prepareSpaceFilesContext(input, "working with selected Space files");
|
|
25674
|
+
if (!context) return;
|
|
25675
|
+
const initial = await getAuthSessionState({ validateRemote: false });
|
|
25676
|
+
const accountId = initial.session?.user?.id;
|
|
25677
|
+
const organizationId = initial.session?.activeOrganization?.id;
|
|
25678
|
+
const profileId = context.requestContext.actorContext?.openMeldProfileId;
|
|
25679
|
+
if (!(accountId && organizationId && profileId)) throw new Error("Sign in and select an Organization before preparing a working copy.");
|
|
25680
|
+
const api = createSpaceApi(createCliApiClientFoundation(context.baseUrl, {
|
|
25681
|
+
expectedOwnerUserId: accountId,
|
|
25682
|
+
organizationId
|
|
25683
|
+
}));
|
|
25684
|
+
const common = {
|
|
25685
|
+
spaceId: input.space,
|
|
25686
|
+
requestContext: context.requestContext,
|
|
25687
|
+
...input.password === void 0 ? {} : { spacePassword: input.password }
|
|
25688
|
+
};
|
|
25689
|
+
const copies = createSpaceWorkingCopies({
|
|
25690
|
+
laneRoot: resolveOpenMeldRootDir(),
|
|
25691
|
+
scope: {
|
|
25692
|
+
accountId,
|
|
25693
|
+
organizationId,
|
|
25694
|
+
profileId,
|
|
25695
|
+
spaceId: input.space,
|
|
25696
|
+
baseUrl: context.baseUrl
|
|
25697
|
+
},
|
|
25698
|
+
assertCurrentIdentity: async () => {
|
|
25699
|
+
if (process.env["OPENMELD_DISPATCH_RUNTIME_MODE"] === "dispatch-owned-runtime") {
|
|
25700
|
+
const dispatch = readDispatchSpaceActionContextFromEnv();
|
|
25701
|
+
if (dispatch.workingCopyId !== input.copyId || dispatch.spaceId !== input.space || dispatch.targetProfileId !== profileId) throw new Error("The working copy does not belong to this active Wake.");
|
|
25702
|
+
}
|
|
25703
|
+
const current = await getAuthSessionState({ validateRemote: false });
|
|
25704
|
+
if (current.session?.user?.id !== accountId || current.session?.activeOrganization?.id !== organizationId) throw new Error("Your account or Organization changed. Return to the original account to submit these changes.");
|
|
25705
|
+
},
|
|
25706
|
+
transport: {
|
|
25707
|
+
read: (fileId, revision) => downloadWorkingCopyFile(api, {
|
|
25708
|
+
...common,
|
|
25709
|
+
fileId,
|
|
25710
|
+
revision
|
|
25711
|
+
}),
|
|
25712
|
+
get: async (fileId) => (await api.getFile({
|
|
25713
|
+
...common,
|
|
25714
|
+
fileId
|
|
25715
|
+
})).file,
|
|
25716
|
+
write: async (write) => await api.updateFileContent({
|
|
25717
|
+
...common,
|
|
25718
|
+
...write
|
|
25719
|
+
})
|
|
25720
|
+
}
|
|
25721
|
+
});
|
|
25722
|
+
let result;
|
|
25723
|
+
if (input.action === "prepare") {
|
|
25724
|
+
const selection = input.selection ?? "";
|
|
25725
|
+
const info = await stat(selection);
|
|
25726
|
+
if (!info.isFile() || info.size > 128 * 1024) throw new Error("The selection must be a JSON file no larger than 128 KB.");
|
|
25727
|
+
result = await copies.prepare(spaceWorkSelectionSchema.parse(JSON.parse(await readFile(selection, "utf8"))), input.directory ?? "");
|
|
25728
|
+
} else if (input.action === "resolve") result = await copies.resolve(input.copyId ?? "", input.fileId ?? "", input.revision ?? 0);
|
|
25729
|
+
else if (input.action === "incoming") result = await copies.incoming(input.copyId ?? "", input.directory ?? "");
|
|
25730
|
+
else result = await copies[input.action](input.copyId ?? "");
|
|
25731
|
+
emitMutationOutput({
|
|
25732
|
+
presenter: context.presenter,
|
|
25733
|
+
json: input.json,
|
|
25734
|
+
code: `space.files.working_copy.${input.action}`,
|
|
25735
|
+
text: JSON.stringify(result, null, 2),
|
|
25736
|
+
payload: spaceWorkingCopyResultSchema.parse(result)
|
|
25737
|
+
});
|
|
25738
|
+
}
|
|
25739
|
+
//#endregion
|
|
25667
25740
|
//#region src/space/files-registration.ts
|
|
25668
25741
|
function registerSpaceFilesCommands(spaceCommand) {
|
|
25669
25742
|
const filesCommand = spaceCommand.command("files").description("Share and collaborate on files in a Space.");
|
|
25743
|
+
withSpaceProfileOption(withCommonOptions(filesCommand.command("handoff").argument("<space>", "Space ID").requiredOption("--manifest <path>", "Selected file and Skill revisions, progress, and next steps").requiredOption("--target <profile-id>", "Agent Profile to Wake").requiredOption("--client-message-id <id>", "Stable identity; reuse for an unchanged retry").option("--thread <id>", "Continue in the originating thread"))).action(async (space, opts, command) => {
|
|
25744
|
+
await runFilesCommand(command, opts, "handoff", async (common) => {
|
|
25745
|
+
await runSpaceWorkHandoff({
|
|
25746
|
+
...common,
|
|
25747
|
+
space: String(space),
|
|
25748
|
+
manifest: opts.manifest,
|
|
25749
|
+
target: opts.target,
|
|
25750
|
+
clientMessageId: opts.clientMessageId,
|
|
25751
|
+
thread: opts.thread
|
|
25752
|
+
});
|
|
25753
|
+
});
|
|
25754
|
+
});
|
|
25755
|
+
const workingCopy = filesCommand.command("working-copy").description("Prepare and submit selected local working files.");
|
|
25756
|
+
withSpaceProfileOption(withCommonOptions(workingCopy.command("prepare").argument("<space>", "Space ID").requiredOption("--selection <path>", "JSON file containing exact file revisions and relative paths").requiredOption("--directory <path>", "New empty working directory"))).action(async (space, opts, command) => {
|
|
25757
|
+
await runFilesCommand(command, opts, "working-copy", async (common) => {
|
|
25758
|
+
await runSpaceWorkingCopy({
|
|
25759
|
+
...common,
|
|
25760
|
+
action: "prepare",
|
|
25761
|
+
space: String(space),
|
|
25762
|
+
selection: opts.selection,
|
|
25763
|
+
directory: opts.directory
|
|
25764
|
+
});
|
|
25765
|
+
});
|
|
25766
|
+
});
|
|
25767
|
+
for (const action of [
|
|
25768
|
+
"resume",
|
|
25769
|
+
"status",
|
|
25770
|
+
"commit",
|
|
25771
|
+
"reconcile",
|
|
25772
|
+
"refresh"
|
|
25773
|
+
]) withSpaceProfileOption(withCommonOptions(workingCopy.command(action).argument("<space>", "Space ID").argument("<copy-id>", "Working copy ID returned by prepare"))).action(async (space, copyId, opts, command) => {
|
|
25774
|
+
await runFilesCommand(command, opts, "working-copy", async (common) => {
|
|
25775
|
+
await runSpaceWorkingCopy({
|
|
25776
|
+
...common,
|
|
25777
|
+
action,
|
|
25778
|
+
space: String(space),
|
|
25779
|
+
copyId: String(copyId)
|
|
25780
|
+
});
|
|
25781
|
+
});
|
|
25782
|
+
});
|
|
25783
|
+
withSpaceProfileOption(withCommonOptions(workingCopy.command("resolve").argument("<space>", "Space ID").argument("<copy-id>", "Working copy ID").requiredOption("--file-id <id>", "Conflicted file to resolve after merging").requiredOption("--revision <number>", "Incoming revision used for the merge"))).action(async (space, copyId, opts, command) => {
|
|
25784
|
+
await runFilesCommand(command, opts, "working-copy", async (common) => {
|
|
25785
|
+
await runSpaceWorkingCopy({
|
|
25786
|
+
...common,
|
|
25787
|
+
action: "resolve",
|
|
25788
|
+
space: String(space),
|
|
25789
|
+
copyId: String(copyId),
|
|
25790
|
+
fileId: opts.fileId,
|
|
25791
|
+
revision: Number(opts.revision)
|
|
25792
|
+
});
|
|
25793
|
+
});
|
|
25794
|
+
});
|
|
25795
|
+
withSpaceProfileOption(withCommonOptions(workingCopy.command("incoming").argument("<space>", "Space ID").argument("<copy-id>", "Original working copy to preserve").requiredOption("--directory <path>", "New directory for current shared versions"))).action(async (space, copyId, opts, command) => {
|
|
25796
|
+
await runFilesCommand(command, opts, "working-copy", async (common) => {
|
|
25797
|
+
await runSpaceWorkingCopy({
|
|
25798
|
+
...common,
|
|
25799
|
+
space: String(space),
|
|
25800
|
+
copyId: String(copyId),
|
|
25801
|
+
action: "incoming",
|
|
25802
|
+
directory: opts.directory
|
|
25803
|
+
});
|
|
25804
|
+
});
|
|
25805
|
+
});
|
|
25670
25806
|
withSpaceProfileOption(withCommonOptions(filesCommand.command("list").description("List files and folders in a Space.").argument("<space>", "Space ID (64-character hex)").option("--folder <folder-id>", "Folder ID, or root", "root").option("--trash", "List items in Trash", false))).action(async (space, opts, command) => {
|
|
25671
25807
|
await runFilesCommand(command, opts, "list", async (common) => {
|
|
25672
25808
|
await runSpaceFilesList({
|
|
@@ -29341,7 +29477,7 @@ computerCmd.command("disconnect").description("Disconnect this computer from its
|
|
|
29341
29477
|
routeTokens: ["computer", "disconnect"],
|
|
29342
29478
|
view,
|
|
29343
29479
|
run: async () => {
|
|
29344
|
-
const { runComputerDisconnect } = await import("./computer-disconnect-
|
|
29480
|
+
const { runComputerDisconnect } = await import("./computer-disconnect-BJ-Tl-7q.js");
|
|
29345
29481
|
await runComputerDisconnect(computerConnectionIntentSchema.parse(JSON.parse(opts.connectionIntent)), view);
|
|
29346
29482
|
}
|
|
29347
29483
|
});
|
|
@@ -29497,7 +29633,7 @@ skillsCmd.command("show").description("Show one Skill in the active Organization
|
|
|
29497
29633
|
}
|
|
29498
29634
|
});
|
|
29499
29635
|
});
|
|
29500
|
-
skillsCmd.command("load").description("Load one enabled Skill into the private OpenMeld cache.").argument("<skill>", "Organization Skill name or id").option("--json", "Print one machine-readable JSON envelope.", false).action(async (skill, opts) => {
|
|
29636
|
+
skillsCmd.command("load").description("Load one enabled Skill into the private OpenMeld cache.").argument("<skill>", "Organization Skill name or id").option("--release <release-id>", "Load this exact release instead of the active release").option("--json", "Print one machine-readable JSON envelope.", false).action(async (skill, opts) => {
|
|
29501
29637
|
const view = getGlobalViewOption();
|
|
29502
29638
|
await runCommandWithEntryChecks({
|
|
29503
29639
|
routeTokens: ["skills", "load"],
|
|
@@ -29505,6 +29641,7 @@ skillsCmd.command("load").description("Load one enabled Skill into the private O
|
|
|
29505
29641
|
run: async () => {
|
|
29506
29642
|
await runOrganizationSkillsLoad({
|
|
29507
29643
|
json: opts.json === true,
|
|
29644
|
+
releaseId: opts.release,
|
|
29508
29645
|
skill,
|
|
29509
29646
|
view
|
|
29510
29647
|
});
|
|
@@ -31534,20 +31671,18 @@ async function main() {
|
|
|
31534
31671
|
if (await runMacOsNativeKeychainHelperIfRequested()) return;
|
|
31535
31672
|
const argv = process.argv.map((arg) => arg === "--h" ? "--help" : arg);
|
|
31536
31673
|
if (argv.length === 5 && argv[2] === "computer" && argv[3] === "connection-review" && argv[4] === "--json") {
|
|
31537
|
-
const { readComputerConnectionReview } = await import("./computer-connection-review-
|
|
31674
|
+
const { readComputerConnectionReview } = await import("./computer-connection-review-_ZLPsdE_.js");
|
|
31538
31675
|
outLine(JSON.stringify(await readComputerConnectionReview()));
|
|
31539
31676
|
return;
|
|
31540
31677
|
}
|
|
31541
31678
|
if (argv.length === 5 && argv[2] === "service" && argv[4] === "--json") {
|
|
31542
31679
|
if (argv[3] === "control-carrier-capability") {
|
|
31543
|
-
|
|
31544
|
-
|
|
31545
|
-
executable: process.execPath
|
|
31546
|
-
}));
|
|
31680
|
+
const { readServiceControlCarrierCapability } = await import("./service-control-carrier-capability-hvpD7hGf.js");
|
|
31681
|
+
outLine(JSON.stringify(readServiceControlCarrierCapability()));
|
|
31547
31682
|
return;
|
|
31548
31683
|
}
|
|
31549
31684
|
if (argv[3] === "control-capabilities") {
|
|
31550
|
-
const { readServiceControlCapabilities } = await import("./service-control-capabilities-
|
|
31685
|
+
const { readServiceControlCapabilities } = await import("./service-control-capabilities-B-vCQoBV.js");
|
|
31551
31686
|
emitCliJsonEnvelope({
|
|
31552
31687
|
schemaVersion: 1,
|
|
31553
31688
|
type: "service.control_capabilities",
|
|
@@ -31730,4 +31865,4 @@ main().catch((error) => {
|
|
|
31730
31865
|
//#endregion
|
|
31731
31866
|
export {};
|
|
31732
31867
|
|
|
31733
|
-
//# sourceMappingURL=openmeld-
|
|
31868
|
+
//# sourceMappingURL=openmeld-DpV9lAF-.js.map
|