openmeld 0.3.240 → 0.3.242
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-7tGVrYxL.js → add-me-membership-JGpmeWkk.js} +2 -2
- package/dist/{add-me-membership-7tGVrYxL.js.map → add-me-membership-JGpmeWkk.js.map} +1 -1
- package/dist/{agents-DBYRT3tv.js → agents-4ldZFtzT.js} +9 -9
- package/dist/{agents-DBYRT3tv.js.map → agents-4ldZFtzT.js.map} +1 -1
- package/dist/{api-client-foundation-BawOr_Me.js → api-client-foundation-Dbc5MXyW.js} +3 -3
- package/dist/{api-client-foundation-BawOr_Me.js.map → api-client-foundation-Dbc5MXyW.js.map} +1 -1
- package/dist/{api-client-foundation-D4d0zKkj.js → api-client-foundation-uYxH6diU.js} +1 -1
- package/dist/{auth-session-BTRu2Kc5.js → auth-session-Injt39gv.js} +2 -2
- package/dist/{auth-session-BTRu2Kc5.js.map → auth-session-Injt39gv.js.map} +1 -1
- package/dist/auth-session-j1EhJkpg2.js +4 -0
- package/dist/{channel-BxlX3o3i.js → channel-CxgYezuw.js} +3 -3
- package/dist/{channel-BxlX3o3i.js.map → channel-CxgYezuw.js.map} +1 -1
- package/dist/{command-De0etxkZ.js → command-D1poZMYq.js} +15 -15
- package/dist/{command-De0etxkZ.js.map → command-D1poZMYq.js.map} +1 -1
- package/dist/{computer-connection-Sntn_-XO.js → computer-connection-CSa8O0op.js} +2 -2
- package/dist/{computer-connection-Sntn_-XO.js.map → computer-connection-CSa8O0op.js.map} +1 -1
- package/dist/{computer-connection-review-7dITXNrp.js → computer-connection-review-DlPe08AU.js} +5 -5
- package/dist/{computer-connection-review-7dITXNrp.js.map → computer-connection-review-DlPe08AU.js.map} +1 -1
- package/dist/{computer-disconnect-D4KjKURR.js → computer-disconnect-C6xJfCMA.js} +7 -7
- package/dist/{computer-disconnect-D4KjKURR.js.map → computer-disconnect-C6xJfCMA.js.map} +1 -1
- package/dist/{computer-setup-continuation-Wrw13eZn.js → computer-setup-continuation-fbbvdA8o.js} +3 -3
- package/dist/{computer-setup-continuation-Wrw13eZn.js.map → computer-setup-continuation-fbbvdA8o.js.map} +1 -1
- package/dist/{daemon-device-id-D7lbw6c4.js → daemon-device-id-CAKHWLK9.js} +4 -4
- package/dist/{daemon-device-id-D7lbw6c4.js.map → daemon-device-id-CAKHWLK9.js.map} +1 -1
- package/dist/{daemon-lifecycle-journal-DGJEfJJV.js → daemon-lifecycle-journal-eiHCp4B7.js} +6 -6
- package/dist/{daemon-lifecycle-journal-DGJEfJJV.js.map → daemon-lifecycle-journal-eiHCp4B7.js.map} +1 -1
- package/dist/{daemon-service-runtime-C1JWxsWw.js → daemon-service-runtime-zCpuDvfl.js} +2 -2
- package/dist/{daemon-service-runtime-C1JWxsWw.js.map → daemon-service-runtime-zCpuDvfl.js.map} +1 -1
- package/dist/{daemon-service-update-coordinator-BTLSv327.js → daemon-service-update-coordinator-Q5ihbImP.js} +9 -9
- package/dist/{daemon-service-update-coordinator-BTLSv327.js.map → daemon-service-update-coordinator-Q5ihbImP.js.map} +1 -1
- package/dist/{dispatch-owned-runtime-BAvm8fPb.js → dispatch-owned-runtime-B6HXvHVa.js} +10 -6
- package/dist/dispatch-owned-runtime-B6HXvHVa.js.map +1 -0
- package/dist/{dist-BytcJRwx.js → dist-BE0dKSoc.js} +1225 -802
- package/dist/dist-BE0dKSoc.js.map +1 -0
- package/dist/{dist-GOicky_R.js → dist-D4nEGVsQ.js} +1 -1
- package/dist/{dual-view-guide-catalog-Cpu4NNXt.js → dual-view-guide-catalog-Cf9dxh8-.js} +3 -3
- package/dist/{dual-view-guide-catalog-Cpu4NNXt.js.map → dual-view-guide-catalog-Cf9dxh8-.js.map} +1 -1
- package/dist/{elapsed-time-Db-ZMRoB.js → elapsed-time-ZiuFKVLD.js} +3 -3
- package/dist/{elapsed-time-Db-ZMRoB.js.map → elapsed-time-ZiuFKVLD.js.map} +1 -1
- package/dist/{entry-DBhL4ZRa.js → entry-B3OCEi01.js} +6 -6
- package/dist/{entry-DBhL4ZRa.js.map → entry-B3OCEi01.js.map} +1 -1
- package/dist/{installation-inventory-zfLJh479.js → installation-inventory-CRS2_ZJi.js} +3 -3
- package/dist/{installation-inventory-zfLJh479.js.map → installation-inventory-CRS2_ZJi.js.map} +1 -1
- package/dist/{installer-7vF9Vexz.js → installer-9RCKL6Dh.js} +2 -2
- package/dist/{installer-7vF9Vexz.js.map → installer-9RCKL6Dh.js.map} +1 -1
- package/dist/{meta-api-BADovRJo.js → meta-api-BBfF-3ln.js} +5 -5
- package/dist/{meta-api-BADovRJo.js.map → meta-api-BBfF-3ln.js.map} +1 -1
- package/dist/{openmeld-BxJZzTQQ.js → openmeld-CAlNOxmA.js} +101 -35
- package/dist/openmeld-CAlNOxmA.js.map +1 -0
- package/dist/{openmeld-maintenance-worker-Bk8iJrZe.js → openmeld-maintenance-worker-DR32kAsg.js} +9 -9
- package/dist/{openmeld-maintenance-worker-Bk8iJrZe.js.map → openmeld-maintenance-worker-DR32kAsg.js.map} +1 -1
- package/dist/{openmeld-tools-update-join-QLXJ0nhz.js → openmeld-tools-update-join-DWRJ6WpO.js} +4 -4
- package/dist/{openmeld-tools-update-join-QLXJ0nhz.js.map → openmeld-tools-update-join-DWRJ6WpO.js.map} +1 -1
- package/dist/openmeld.js +4 -4
- package/dist/{prepare-provider-runtime-BMV0ay2U.js → prepare-provider-runtime-CpG_NTZF.js} +23 -15
- package/dist/prepare-provider-runtime-CpG_NTZF.js.map +1 -0
- package/dist/{prepare-session-executor-DqKiH0W-.js → prepare-session-executor-ByEiJyxT.js} +18 -18
- package/dist/{prepare-session-executor-DqKiH0W-.js.map → prepare-session-executor-ByEiJyxT.js.map} +1 -1
- package/dist/{process-channel-QRugdtrY.js → process-channel-Ceb-ha2V.js} +2 -2
- package/dist/{process-channel-QRugdtrY.js.map → process-channel-Ceb-ha2V.js.map} +1 -1
- package/dist/{runtime-krIc08XW.js → runtime-DMHRemwP.js} +49 -66
- package/dist/runtime-DMHRemwP.js.map +1 -0
- package/dist/{runtime-agent-controller-reporting-submission-B5oPP2LR.js → runtime-agent-controller-reporting-submission-D51t3Q8e.js} +8 -8
- package/dist/{runtime-agent-controller-reporting-submission-B5oPP2LR.js.map → runtime-agent-controller-reporting-submission-D51t3Q8e.js.map} +1 -1
- package/dist/{runtime-transport-BVCHi4qM.js → runtime-transport-BPK70mkB.js} +65 -7
- package/dist/runtime-transport-BPK70mkB.js.map +1 -0
- package/dist/{service-D-9aXzla.js → service-BhwxCPsM.js} +19 -18
- package/dist/service-BhwxCPsM.js.map +1 -0
- package/dist/{service-account-authorization-C1CdX1P3.js → service-account-authorization-C6wZHidB.js} +2 -2
- package/dist/{service-account-authorization-C1CdX1P3.js.map → service-account-authorization-C6wZHidB.js.map} +1 -1
- package/dist/{service-account-control-DcTdeEqI.js → service-account-control-D_hTHF4w.js} +8 -8
- package/dist/{service-account-control-DcTdeEqI.js.map → service-account-control-D_hTHF4w.js.map} +1 -1
- package/dist/{service-control-capabilities-DxF7oTYb.js → service-control-capabilities-CfKNg0x2.js} +1 -1
- package/dist/{service-control-capabilities-B-VAPKAy.js → service-control-capabilities-VYS3-qJC.js} +3 -3
- package/dist/{service-control-capabilities-B-VAPKAy.js.map → service-control-capabilities-VYS3-qJC.js.map} +1 -1
- package/dist/{state-DddjOWBm.js → state-Bef17OTn.js} +2 -2
- package/dist/{state-DddjOWBm.js.map → state-Bef17OTn.js.map} +1 -1
- package/dist/{updates-api-TVlrczrO.js → updates-api-Cot1YmlU.js} +205 -49
- package/dist/updates-api-Cot1YmlU.js.map +1 -0
- package/dist/{upgrade-Bb8Mv01-.js → upgrade-9xk3iYag.js} +8 -8
- package/dist/{upgrade-Bb8Mv01-.js.map → upgrade-9xk3iYag.js.map} +1 -1
- package/dist/upgrade-CGcMw4vC.js +4 -0
- package/dist/windows/openmeld-windows-process.exe +0 -0
- package/package.json +14 -14
- package/skills/openmeld-cli/playbooks/plugins.md +11 -3
- package/dist/auth-session-D2f7Lud02.js +0 -4
- package/dist/dispatch-owned-runtime-BAvm8fPb.js.map +0 -1
- package/dist/dist-BytcJRwx.js.map +0 -1
- package/dist/openmeld-BxJZzTQQ.js.map +0 -1
- package/dist/prepare-provider-runtime-BMV0ay2U.js.map +0 -1
- package/dist/runtime-krIc08XW.js.map +0 -1
- package/dist/runtime-transport-BVCHi4qM.js.map +0 -1
- package/dist/service-D-9aXzla.js.map +0 -1
- package/dist/updates-api-TVlrczrO.js.map +0 -1
- package/dist/upgrade-n4gQvHoE.js +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-api-BADovRJo.js","names":["record"],"sources":["../../../packages/schemas/dist/schemas/cli/space-send.js","../src/space/cli-space-api.ts","../src/space/send-files.ts","../src/space/send-input.ts","../src/space/api-json.ts","../src/space/gateway-response.ts","../src/space/space-meta-response.ts","../src/space/meta-api.ts"],"sourcesContent":["import { clientMessageIdSchema } from \"../protocol/client-message-id.js\";\nimport * as z$1 from \"zod/v4\";\n//#region src/schemas/cli/space-send.ts\nconst selectorSchema = z$1.string().trim().min(1);\n/** The Agent View `space.send.request` data, emitted before publication. */\nconst spaceSendRequestReceiptSchema = z$1.strictObject({\n\tspaceId: selectorSchema,\n\tclientMessageId: clientMessageIdSchema,\n\ttargetProfileIds: z$1.array(selectorSchema),\n\tprofileId: selectorSchema.optional()\n});\n//#endregion\nexport { spaceSendRequestReceiptSchema };\n\n//# sourceMappingURL=space-send.js.map","import { createSpaceApi, type SpaceApi } from \"@openmeld/api-client\";\nimport { createCliApiClientFoundation } from \"./api-client-foundation\";\n\nexport type {\n SpaceApi,\n SpaceSignalsReadQuery,\n} from \"@openmeld/api-client\";\n\nexport function createCliSpaceApi(\n baseUrl: string,\n options: Parameters<typeof createCliApiClientFoundation>[1] = {}\n): SpaceApi {\n return createSpaceApi(createCliApiClientFoundation(baseUrl, options));\n}\n","import { openAsBlob } from \"node:fs\";\nimport { access } from \"node:fs/promises\";\nimport { basename } from \"node:path\";\nimport {\n type StructuredApiClientFailure,\n toStructuredApiClientFailure,\n} from \"@openmeld/api-client\";\nimport {\n resolveSpaceFileMimeType,\n SPACE_FILE_MAX_SIZE_BYTES,\n SPACE_MESSAGE_FILE_MAX_COUNT,\n spaceFileNameSchema,\n} from \"@openmeld/schemas\";\nimport type {\n OpenMeldRequestContext,\n SpaceMessageFileReference,\n} from \"@openmeld/schemas/types\";\nimport type { SpaceApi } from \"./cli-space-api\";\n\ntype PreparedSpaceFile = {\n bytes: Blob;\n name: string;\n mimeType: string;\n};\n\ntype SpaceFileCleanupFailure = {\n failure: StructuredApiClientFailure;\n fileId: string;\n};\n\nexport class SpaceSendFileError extends Error {\n readonly code: string;\n readonly requestId?: string;\n readonly status?: number;\n readonly upstreamCode?: string;\n\n constructor(input: {\n code: string;\n message: string;\n cause?: unknown;\n requestId?: string | null;\n status?: number | null;\n upstreamCode?: string | null;\n }) {\n super(input.message, { cause: input.cause });\n this.name = \"SpaceSendFileError\";\n this.code = input.code;\n if (input.requestId) {\n this.requestId = input.requestId;\n }\n if (input.status !== null && input.status !== undefined) {\n this.status = input.status;\n }\n if (input.upstreamCode) {\n this.upstreamCode = input.upstreamCode;\n }\n }\n}\n\nexport async function prepareRequestedSpaceSendFiles(input: {\n filePaths: readonly string[];\n}): Promise<readonly PreparedSpaceFile[]> {\n if (input.filePaths.length > SPACE_MESSAGE_FILE_MAX_COUNT) {\n throw new SpaceSendFileError({\n code: \"space.file.too_many\",\n message: `A Space message can include at most ${SPACE_MESSAGE_FILE_MAX_COUNT} files. The message was not sent.`,\n });\n }\n\n const prepared: PreparedSpaceFile[] = [];\n for (const rawPath of input.filePaths) {\n if (!rawPath.trim()) {\n throw new SpaceSendFileError({\n code: \"space.file.invalid_path\",\n message: \"File paths cannot be empty. The message was not sent.\",\n });\n }\n prepared.push(await prepareSpaceSendFile(rawPath));\n }\n return prepared;\n}\n\nexport async function uploadPreparedSpaceFiles(input: {\n files: readonly PreparedSpaceFile[];\n password?: string;\n requestContext: OpenMeldRequestContext;\n spaceApi: SpaceApi;\n spaceId: string;\n}): Promise<readonly SpaceMessageFileReference[]> {\n const uploaded: SpaceMessageFileReference[] = [];\n for (const file of input.files) {\n try {\n const descriptor = await input.spaceApi.uploadFile({\n bytes: file.bytes,\n clientMutationId: crypto.randomUUID(),\n mimeType: file.mimeType,\n name: file.name,\n origin: \"chat_upload\",\n parentId: null,\n requestContext: input.requestContext,\n spaceId: input.spaceId,\n ...(input.password === undefined\n ? {}\n : { spacePassword: input.password }),\n });\n uploaded.push({\n fileId: descriptor.id,\n revision: descriptor.latestRevision.revision,\n name: descriptor.name,\n mimeType: descriptor.latestRevision.mimeType,\n sizeBytes: descriptor.latestRevision.sizeBytes,\n });\n } catch (error) {\n const failure = toStructuredApiClientFailure(error);\n const cleanupFailures = await moveUploadedFilesToTrash({\n files: uploaded,\n password: input.password,\n requestContext: input.requestContext,\n spaceApi: input.spaceApi,\n spaceId: input.spaceId,\n });\n let cleanupMessage = \"\";\n if (uploaded.length > 0) {\n cleanupMessage =\n cleanupFailures.length === 0\n ? \" Files added earlier in this send were moved to Trash.\"\n : ` ${formatCleanupFailures({\n failures: cleanupFailures,\n passwordProtected: input.password !== undefined,\n profileId: input.requestContext.actorContext.openMeldProfileId,\n spaceId: input.spaceId,\n })}`;\n }\n throw new SpaceSendFileError({\n code: failure.code ?? \"space.file.upload_failed\",\n message: `Could not add file \"${file.name}\" to this Space. The message was not sent. ${failure.message}${cleanupMessage}`,\n cause: error,\n requestId: failure.requestId,\n status: failure.status,\n upstreamCode: failure.upstreamCode,\n });\n }\n }\n return uploaded;\n}\n\nasync function moveUploadedFilesToTrash(input: {\n files: readonly SpaceMessageFileReference[];\n password?: string;\n requestContext: OpenMeldRequestContext;\n spaceApi: SpaceApi;\n spaceId: string;\n}): Promise<readonly SpaceFileCleanupFailure[]> {\n const failures: SpaceFileCleanupFailure[] = [];\n for (const file of input.files) {\n try {\n await input.spaceApi.trashFileEntry({\n clientMutationId: crypto.randomUUID(),\n entryId: file.fileId,\n requestContext: input.requestContext,\n spaceId: input.spaceId,\n ...(input.password === undefined\n ? {}\n : { spacePassword: input.password }),\n });\n } catch (error) {\n failures.push({\n failure: toStructuredApiClientFailure(error),\n fileId: file.fileId,\n });\n }\n }\n return failures;\n}\n\nfunction formatCleanupFailures(input: {\n failures: readonly SpaceFileCleanupFailure[];\n passwordProtected: boolean;\n profileId: string;\n spaceId: string;\n}): string {\n const failureMessages = input.failures\n .map(({ failure, fileId }) => {\n const evidence = [\n failure.code ? `code ${failure.code}` : null,\n failure.requestId ? `request ${failure.requestId}` : null,\n ]\n .filter((value): value is string => value !== null)\n .join(\", \");\n const evidenceText = evidence ? ` (${evidence})` : \"\";\n return `Could not move file ${fileId} to Trash${evidenceText}: ${failure.message} Run \\`openmeld space files trash ${input.spaceId} ${fileId} --profile ${input.profileId}\\` to finish cleanup.`;\n })\n .join(\" \");\n const passwordGuidance = input.passwordProtected\n ? \" This Space is password protected. Add `--password` with the same Space password you used for this send; OpenMeld does not include the password in this message.\"\n : \"\";\n return `${failureMessages}${passwordGuidance}`;\n}\n\nasync function prepareSpaceSendFile(\n sourcePath: string\n): Promise<PreparedSpaceFile> {\n let bytes: Blob;\n try {\n // openAsBlob collapses missing paths into ERR_INVALID_ARG_VALUE on Node 24.\n // Preserve the filesystem error code for the user-facing failure category.\n await access(sourcePath);\n bytes = await openAsBlob(sourcePath);\n } catch (error) {\n const code = readNodeErrorCode(error);\n if (code === \"ENOENT\") {\n throw new SpaceSendFileError({\n code: \"space.file.file_not_found\",\n message: `File not found: ${sourcePath}. The message was not sent.`,\n cause: error,\n });\n }\n throw new SpaceSendFileError({\n code: \"space.file.file_unreadable\",\n message: `Could not read file: ${sourcePath}. The message was not sent.`,\n cause: error,\n });\n }\n\n if (bytes.size > SPACE_FILE_MAX_SIZE_BYTES) {\n throw new SpaceSendFileError({\n code: \"space.file.too_large\",\n message: `File exceeds the ${formatFileSizeLimit()} limit: ${sourcePath}. The message was not sent.`,\n });\n }\n\n const parsedName = spaceFileNameSchema.safeParse(basename(sourcePath));\n if (!parsedName.success) {\n throw new SpaceSendFileError({\n code: \"space.file.invalid_file_name\",\n message: `File name is invalid: ${sourcePath}. The message was not sent.`,\n });\n }\n\n return {\n bytes,\n name: parsedName.data,\n mimeType: resolveSpaceFileMimeType({ fileName: parsedName.data }),\n };\n}\n\nfunction readNodeErrorCode(error: unknown): string | null {\n if (!(error && typeof error === \"object\" && \"code\" in error)) {\n return null;\n }\n return typeof error.code === \"string\" ? error.code : null;\n}\n\nfunction formatFileSizeLimit(): string {\n return `${SPACE_FILE_MAX_SIZE_BYTES / (1024 * 1024)} MiB`;\n}\n","import { readFile } from \"node:fs/promises\";\nimport {\n buildTargetWakeLifecycleId,\n executionContextSelectionSchema,\n} from \"@openmeld/schemas\";\nimport type { ExecutionContextSelection } from \"@openmeld/schemas/types\";\nimport {\n createSpaceSendInputConflictGuideError,\n createSpaceSendInputEmptyGuideError,\n createSpaceSendInputFileReadFailedGuideError,\n createSpaceSendInputRequiredGuideError,\n} from \"../runtime/dual-view-guide-catalog\";\n\ntype ResolveSpaceSendTextInput = {\n allowEmpty?: boolean;\n text?: string;\n stdin?: boolean;\n file?: string;\n readFromStdin?: () => Promise<string>;\n readFromFile?: (path: string) => Promise<string>;\n};\n\nexport function resolveSpaceTaskSelection(input: {\n space: string;\n wakeTargets?: readonly string[];\n newTask?: boolean;\n forkFrom?: string;\n continueFrom?: string;\n taskAccess?: string;\n taskWorkspace?: string;\n}): ExecutionContextSelection | undefined {\n const modes =\n Number(input.newTask === true) +\n Number(Boolean(input.forkFrom)) +\n Number(Boolean(input.continueFrom));\n if (modes === 0 && !input.taskAccess && !input.taskWorkspace) {\n return undefined;\n }\n if (modes > 1) {\n throw new Error(\n \"Choose only one of --new-task, --fork-from, or --continue-from.\"\n );\n }\n const targetProfileId = input.wakeTargets?.[0];\n if (!targetProfileId || input.wakeTargets?.length !== 1) {\n throw new Error(\"Task selection requires exactly one --wake <profile-id>.\");\n }\n if (input.continueFrom && (input.taskAccess || input.taskWorkspace)) {\n throw new Error(\n \"A continued task keeps its original file access and workspace. Start a new task to change them.\"\n );\n }\n const sourceSignalId = input.forkFrom ?? input.continueFrom;\n const sourceWakeId = sourceSignalId\n ? buildTargetWakeLifecycleId({\n spaceId: input.space,\n sourceSignalId,\n targetProfileId,\n })\n : undefined;\n const preferences = {\n access: input.taskAccess,\n workspace: input.taskWorkspace,\n };\n let value: unknown;\n if (input.continueFrom) {\n value = { mode: \"resume\", sourceWakeId };\n } else if (input.forkFrom) {\n value = { mode: \"fork\", sourceWakeId, ...preferences };\n } else {\n value = { mode: input.newTask ? \"new\" : \"auto\", ...preferences };\n }\n const parsed = executionContextSelectionSchema.safeParse(value);\n if (!parsed.success) {\n throw new Error(\n parsed.error.issues[0]?.message ?? \"Invalid task selection.\"\n );\n }\n return parsed.data;\n}\n\nexport async function resolveSpaceSendText(\n input: ResolveSpaceSendTextInput\n): Promise<string> {\n const textValue = String(input.text ?? \"\");\n const stdinEnabled = input.stdin === true;\n const filePath = String(input.file ?? \"\").trim();\n\n const hasTextSource = textValue.length > 0;\n const hasFileSource = filePath.length > 0;\n const sourceCount =\n Number(hasTextSource) + Number(stdinEnabled) + Number(hasFileSource);\n\n if (sourceCount === 0) {\n if (input.allowEmpty) {\n return \"\";\n }\n throw createSpaceSendInputRequiredGuideError();\n }\n if (sourceCount > 1) {\n throw createSpaceSendInputConflictGuideError();\n }\n\n let resolvedText = textValue;\n if (hasFileSource) {\n const readFromFile = input.readFromFile ?? readSpaceSendFile;\n try {\n resolvedText = await readFromFile(filePath);\n } catch (error) {\n throw createSpaceSendInputFileReadFailedGuideError(\n filePath,\n toErrorMessage(error)\n );\n }\n }\n if (stdinEnabled) {\n const readFromStdin = input.readFromStdin ?? readSpaceSendStdin;\n resolvedText = await readFromStdin();\n }\n\n if (resolvedText.trim().length === 0 && !input.allowEmpty) {\n throw createSpaceSendInputEmptyGuideError();\n }\n\n return resolvedText;\n}\n\nfunction readSpaceSendFile(path: string): Promise<string> {\n return readFile(path, \"utf8\");\n}\n\nfunction readSpaceSendStdin(): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n const chunks: string[] = [];\n\n const cleanup = () => {\n process.stdin.off(\"data\", onData);\n process.stdin.off(\"end\", onEnd);\n process.stdin.off(\"error\", onError);\n };\n\n const onData = (chunk: string | Buffer) => {\n if (typeof chunk === \"string\") {\n chunks.push(chunk);\n return;\n }\n chunks.push(chunk.toString(\"utf8\"));\n };\n\n const onEnd = () => {\n cleanup();\n resolve(chunks.join(\"\"));\n };\n\n const onError = (error: Error) => {\n cleanup();\n reject(error);\n };\n\n process.stdin.setEncoding(\"utf8\");\n process.stdin.on(\"data\", onData);\n process.stdin.on(\"end\", onEnd);\n process.stdin.on(\"error\", onError);\n process.stdin.resume();\n });\n}\n\nfunction toErrorMessage(error: unknown): string {\n if (error instanceof Error && error.message.trim().length > 0) {\n return error.message;\n }\n return String(error ?? \"unknown error\");\n}\n","export function parseJsonResponse(raw: string): unknown {\n if (!raw.trim()) {\n return null;\n }\n try {\n return JSON.parse(raw);\n } catch {\n return null;\n }\n}\n","import { OpenMeldApiClientHttpError } from \"@openmeld/api-client\";\nimport { OPENMELD_HEADER_REQUEST_ID } from \"@openmeld/gateway-contract\";\nimport { gatewayErrorEnvelopeSchema } from \"@openmeld/schemas\";\nimport type { GatewayErrorCode } from \"@openmeld/schemas/types\";\nimport { parseJsonResponse } from \"./api-json\";\n\nconst FALLBACK_GATEWAY_HTTP_ERROR_CODE = \"gateway.http_error\" as const;\nconst GENERIC_NETWORK_ERROR_CODES = [\n \"network.timeout\",\n \"network.request_failed\",\n] as const;\n\ntype SafeParseResult<T> = { success: true; data: T } | { success: false };\n\ntype GatewayResponseSchema<T> = {\n safeParse: (value: unknown) => SafeParseResult<T>;\n};\n\nexport type GatewayResponseErrorCode =\n | GatewayErrorCode\n | typeof FALLBACK_GATEWAY_HTTP_ERROR_CODE\n | (typeof GENERIC_NETWORK_ERROR_CODES)[number]\n | string;\n\nexport type StructuredGatewayFailure = {\n code: GatewayResponseErrorCode | null;\n message: string;\n requestId: string | null;\n status: number | null;\n upstreamCode: string | null;\n};\n\nexport class GatewayHttpError extends Error {\n readonly code: GatewayResponseErrorCode;\n readonly requestId: string | null;\n readonly status: number;\n readonly rawBody: string;\n readonly upstreamCode: string | null;\n\n constructor(input: {\n code: GatewayResponseErrorCode;\n message: string;\n requestId?: string | null;\n status: number;\n rawBody: string;\n upstreamCode?: string | null;\n }) {\n super(input.message);\n this.name = \"GatewayHttpError\";\n this.code = input.code;\n this.requestId = normalizeOptionalText(input.requestId);\n this.status = input.status;\n this.rawBody = input.rawBody;\n this.upstreamCode = normalizeOptionalText(input.upstreamCode);\n }\n}\n\nexport async function readGatewayJsonResponse<T>(input: {\n response: Response;\n schema: GatewayResponseSchema<T>;\n invalidMessage: string;\n}): Promise<T> {\n const raw = await input.response.text();\n assertGatewayResponseOk({\n response: input.response,\n raw,\n });\n\n const parsed = input.schema.safeParse(parseJsonResponse(raw));\n if (!parsed.success) {\n throw new Error(input.invalidMessage);\n }\n return parsed.data;\n}\n\nexport async function readGatewayTextResponse(input: {\n response: Response;\n}): Promise<string> {\n const raw = await input.response.text();\n assertGatewayResponseOk({\n response: input.response,\n raw,\n });\n return raw;\n}\n\nexport function assertGatewayResponseOk(input: {\n response: Response;\n raw: string;\n}): void {\n if (input.response.ok) {\n return;\n }\n throw parseGatewayErrorResponse(input);\n}\n\nexport function parseGatewayErrorResponse(input: {\n response: Pick<Response, \"headers\" | \"status\">;\n raw: string;\n}): GatewayHttpError {\n const payload = parseJsonResponse(input.raw);\n const parsed = gatewayErrorEnvelopeSchema.safeParse(payload);\n const headerRequestId = normalizeOptionalText(\n input.response.headers.get(OPENMELD_HEADER_REQUEST_ID)\n );\n\n if (parsed.success) {\n return new GatewayHttpError({\n code: parsed.data.error.code,\n message: parsed.data.error.message,\n requestId: parsed.data.error.requestId || headerRequestId,\n status: input.response.status,\n rawBody: input.raw,\n upstreamCode: parsed.data.error.upstreamCode ?? null,\n });\n }\n\n const looseEnvelope = readLooseGatewayErrorEnvelope(payload);\n if (looseEnvelope) {\n return new GatewayHttpError({\n code: looseEnvelope.code ?? FALLBACK_GATEWAY_HTTP_ERROR_CODE,\n message:\n looseEnvelope.message ??\n `Gateway request failed with HTTP ${input.response.status}.`,\n requestId: looseEnvelope.requestId ?? headerRequestId,\n status: input.response.status,\n rawBody: input.raw,\n upstreamCode: looseEnvelope.upstreamCode,\n });\n }\n\n return new GatewayHttpError({\n code: FALLBACK_GATEWAY_HTTP_ERROR_CODE,\n message:\n normalizeOptionalText(input.raw) ??\n `Gateway request failed with HTTP ${input.response.status}.`,\n requestId: headerRequestId,\n status: input.response.status,\n rawBody: input.raw,\n upstreamCode: null,\n });\n}\n\nexport function toStructuredGatewayFailure(\n error: unknown\n): StructuredGatewayFailure {\n if (error instanceof OpenMeldApiClientHttpError) {\n return {\n code: error.code,\n message: normalizeFailureMessage(error.message),\n requestId: error.requestId,\n status: error.status,\n upstreamCode: error.upstreamCode,\n };\n }\n\n if (error instanceof GatewayHttpError) {\n return {\n code: error.code,\n message: normalizeFailureMessage(error.message),\n requestId: error.requestId,\n status: error.status,\n upstreamCode: error.upstreamCode,\n };\n }\n\n const genericErrorCode = readGenericErrorCode(error);\n if (genericErrorCode) {\n return {\n code: genericErrorCode,\n message: normalizeFailureMessage(\n error instanceof Error ? error.message : String(error)\n ),\n requestId: null,\n status: null,\n upstreamCode: null,\n };\n }\n\n return {\n code: null,\n message: normalizeFailureMessage(\n error instanceof Error ? error.message : String(error)\n ),\n requestId: null,\n status: null,\n upstreamCode: null,\n };\n}\n\nfunction normalizeOptionalText(value: unknown): string | null {\n const normalized = String(value ?? \"\").trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nfunction normalizeFailureMessage(value: unknown): string {\n return normalizeOptionalText(value) ?? \"Unknown error.\";\n}\n\nfunction readGenericErrorCode(value: unknown): GatewayResponseErrorCode | null {\n if (!value || typeof value !== \"object\" || !(\"code\" in value)) {\n return null;\n }\n\n const normalized = normalizeOptionalText(\n (value as { code?: unknown }).code ?? null\n );\n return normalized as GatewayResponseErrorCode | null;\n}\n\nfunction readLooseGatewayErrorEnvelope(value: unknown): {\n code: string | null;\n message: string | null;\n requestId: string | null;\n upstreamCode: string | null;\n} | null {\n if (!value || typeof value !== \"object\") {\n return null;\n }\n\n const record = value as {\n error?: {\n code?: unknown;\n message?: unknown;\n requestId?: unknown;\n upstreamCode?: unknown;\n } | null;\n };\n const error = record.error;\n if (!error || typeof error !== \"object\") {\n return null;\n }\n\n const code = normalizeOptionalText(error.code);\n const message = normalizeOptionalText(error.message);\n const requestId = normalizeOptionalText(error.requestId);\n const upstreamCode = normalizeOptionalText(error.upstreamCode);\n if (!(code || message || requestId || upstreamCode)) {\n return null;\n }\n\n return {\n code,\n message,\n requestId,\n upstreamCode,\n };\n}\n","import type { SpaceMeta } from \"@openmeld/protocol\";\nimport { spaceMetaSchema } from \"@openmeld/schemas\";\n\ntype SpaceMetaParseOperation =\n | \"createSpaceMeta\"\n | \"fetchSpaceMeta\"\n | \"updateSpaceMeta\";\n\nexport function parseSpaceMetaPayload(input: {\n data: unknown;\n endpoint: string;\n operation: SpaceMetaParseOperation;\n}): SpaceMeta {\n try {\n const validation = spaceMetaSchema.safeParse(input.data);\n if (!validation.success) {\n const reason =\n validation.error.issues[0]?.message ??\n \"space meta payload does not match schema\";\n throw new Error(reason);\n }\n return validation.data;\n } catch (error) {\n const reason = error instanceof Error ? error.message : String(error);\n throw new Error(\n `${input.operation} received invalid response payload from ${input.endpoint}: ${reason}; raw=${JSON.stringify(input.data)}`\n );\n }\n}\n\nexport function parseSpaceMetaResponse(input: {\n raw: string;\n endpoint: string;\n operation: Extract<\n SpaceMetaParseOperation,\n \"fetchSpaceMeta\" | \"updateSpaceMeta\"\n >;\n}): SpaceMeta {\n try {\n return parseSpaceMetaPayload({\n data: JSON.parse(input.raw) as unknown,\n endpoint: input.endpoint,\n operation: input.operation,\n });\n } catch (error) {\n const reason = error instanceof Error ? error.message : String(error);\n throw new Error(\n `${input.operation} received invalid response payload from ${input.endpoint}: ${reason}; raw=${input.raw}`\n );\n }\n}\n","import type { SpaceMeta } from \"@openmeld/protocol\";\nimport type { OpenMeldRequestContext } from \"@openmeld/schemas/types\";\nimport { buildOpenMeldRequestContextHeadersWithAuth } from \"../config/request-headers\";\nimport { toSpaceMetaUrl } from \"../protocol/urls\";\nimport { fetchSpaceRequestWithTimeout } from \"./fetch-with-timeout\";\nimport { readGatewayTextResponse } from \"./gateway-response\";\nimport { parseSpaceMetaResponse } from \"./space-meta-response\";\n\ntype SpaceMetaApiInput = {\n requestContext: OpenMeldRequestContext;\n baseUrl: string;\n space: string;\n password?: string;\n};\n\nexport async function fetchSpaceMeta(\n input: SpaceMetaApiInput\n): Promise<SpaceMeta> {\n const endpoint = toSpaceMetaUrl(input.baseUrl, input.space);\n const response = await fetchSpaceRequestWithTimeout({\n url: endpoint,\n operation: \"space.fetch_meta\",\n init: {\n method: \"GET\",\n headers: await buildOpenMeldRequestContextHeadersWithAuth({\n requestUrl: endpoint,\n requestContext: input.requestContext,\n spacePassword: input.password,\n }),\n },\n });\n const raw = await readGatewayTextResponse({ response });\n\n return parseSpaceMetaResponse({\n raw,\n endpoint,\n operation: \"fetchSpaceMeta\",\n });\n}\n\nexport async function updateSpaceMeta(\n input: SpaceMetaApiInput & {\n purpose?: string;\n guide?: string;\n }\n): Promise<SpaceMeta> {\n const endpoint = toSpaceMetaUrl(input.baseUrl, input.space);\n const headers = await buildOpenMeldRequestContextHeadersWithAuth({\n requestUrl: endpoint,\n requestContext: input.requestContext,\n spacePassword: input.password,\n });\n headers[\"content-type\"] = \"application/json\";\n\n const response = await fetchSpaceRequestWithTimeout({\n url: endpoint,\n operation: \"space.update_meta\",\n init: {\n method: \"PATCH\",\n headers,\n body: JSON.stringify({\n ...(input.purpose === undefined ? {} : { purpose: input.purpose }),\n ...(input.guide === undefined ? {} : { guide: input.guide }),\n }),\n },\n });\n const raw = await readGatewayTextResponse({ response });\n\n return parseSpaceMetaResponse({\n raw,\n endpoint,\n operation: \"updateSpaceMeta\",\n });\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"meta-api-BBfF-3ln.js","names":["record"],"sources":["../../../packages/schemas/dist/schemas/cli/space-send.js","../src/space/cli-space-api.ts","../src/space/send-files.ts","../src/space/send-input.ts","../src/space/api-json.ts","../src/space/gateway-response.ts","../src/space/space-meta-response.ts","../src/space/meta-api.ts"],"sourcesContent":["import { clientMessageIdSchema } from \"../protocol/client-message-id.js\";\nimport * as z$1 from \"zod/v4\";\n//#region src/schemas/cli/space-send.ts\nconst selectorSchema = z$1.string().trim().min(1);\n/** The Agent View `space.send.request` data, emitted before publication. */\nconst spaceSendRequestReceiptSchema = z$1.strictObject({\n\tspaceId: selectorSchema,\n\tclientMessageId: clientMessageIdSchema,\n\ttargetProfileIds: z$1.array(selectorSchema),\n\tprofileId: selectorSchema.optional()\n});\n//#endregion\nexport { spaceSendRequestReceiptSchema };\n\n//# sourceMappingURL=space-send.js.map","import { createSpaceApi, type SpaceApi } from \"@openmeld/api-client\";\nimport { createCliApiClientFoundation } from \"./api-client-foundation\";\n\nexport type {\n SpaceApi,\n SpaceSignalsReadQuery,\n} from \"@openmeld/api-client\";\n\nexport function createCliSpaceApi(\n baseUrl: string,\n options: Parameters<typeof createCliApiClientFoundation>[1] = {}\n): SpaceApi {\n return createSpaceApi(createCliApiClientFoundation(baseUrl, options));\n}\n","import { openAsBlob } from \"node:fs\";\nimport { access } from \"node:fs/promises\";\nimport { basename } from \"node:path\";\nimport {\n type StructuredApiClientFailure,\n toStructuredApiClientFailure,\n} from \"@openmeld/api-client\";\nimport {\n resolveSpaceFileMimeType,\n SPACE_FILE_MAX_SIZE_BYTES,\n SPACE_MESSAGE_FILE_MAX_COUNT,\n spaceFileNameSchema,\n} from \"@openmeld/schemas\";\nimport type {\n OpenMeldRequestContext,\n SpaceMessageFileReference,\n} from \"@openmeld/schemas/types\";\nimport type { SpaceApi } from \"./cli-space-api\";\n\ntype PreparedSpaceFile = {\n bytes: Blob;\n name: string;\n mimeType: string;\n};\n\ntype SpaceFileCleanupFailure = {\n failure: StructuredApiClientFailure;\n fileId: string;\n};\n\nexport class SpaceSendFileError extends Error {\n readonly code: string;\n readonly requestId?: string;\n readonly status?: number;\n readonly upstreamCode?: string;\n\n constructor(input: {\n code: string;\n message: string;\n cause?: unknown;\n requestId?: string | null;\n status?: number | null;\n upstreamCode?: string | null;\n }) {\n super(input.message, { cause: input.cause });\n this.name = \"SpaceSendFileError\";\n this.code = input.code;\n if (input.requestId) {\n this.requestId = input.requestId;\n }\n if (input.status !== null && input.status !== undefined) {\n this.status = input.status;\n }\n if (input.upstreamCode) {\n this.upstreamCode = input.upstreamCode;\n }\n }\n}\n\nexport async function prepareRequestedSpaceSendFiles(input: {\n filePaths: readonly string[];\n}): Promise<readonly PreparedSpaceFile[]> {\n if (input.filePaths.length > SPACE_MESSAGE_FILE_MAX_COUNT) {\n throw new SpaceSendFileError({\n code: \"space.file.too_many\",\n message: `A Space message can include at most ${SPACE_MESSAGE_FILE_MAX_COUNT} files. The message was not sent.`,\n });\n }\n\n const prepared: PreparedSpaceFile[] = [];\n for (const rawPath of input.filePaths) {\n if (!rawPath.trim()) {\n throw new SpaceSendFileError({\n code: \"space.file.invalid_path\",\n message: \"File paths cannot be empty. The message was not sent.\",\n });\n }\n prepared.push(await prepareSpaceSendFile(rawPath));\n }\n return prepared;\n}\n\nexport async function uploadPreparedSpaceFiles(input: {\n files: readonly PreparedSpaceFile[];\n password?: string;\n requestContext: OpenMeldRequestContext;\n spaceApi: SpaceApi;\n spaceId: string;\n}): Promise<readonly SpaceMessageFileReference[]> {\n const uploaded: SpaceMessageFileReference[] = [];\n for (const file of input.files) {\n try {\n const descriptor = await input.spaceApi.uploadFile({\n bytes: file.bytes,\n clientMutationId: crypto.randomUUID(),\n mimeType: file.mimeType,\n name: file.name,\n origin: \"chat_upload\",\n parentId: null,\n requestContext: input.requestContext,\n spaceId: input.spaceId,\n ...(input.password === undefined\n ? {}\n : { spacePassword: input.password }),\n });\n uploaded.push({\n fileId: descriptor.id,\n revision: descriptor.latestRevision.revision,\n name: descriptor.name,\n mimeType: descriptor.latestRevision.mimeType,\n sizeBytes: descriptor.latestRevision.sizeBytes,\n });\n } catch (error) {\n const failure = toStructuredApiClientFailure(error);\n const cleanupFailures = await moveUploadedFilesToTrash({\n files: uploaded,\n password: input.password,\n requestContext: input.requestContext,\n spaceApi: input.spaceApi,\n spaceId: input.spaceId,\n });\n let cleanupMessage = \"\";\n if (uploaded.length > 0) {\n cleanupMessage =\n cleanupFailures.length === 0\n ? \" Files added earlier in this send were moved to Trash.\"\n : ` ${formatCleanupFailures({\n failures: cleanupFailures,\n passwordProtected: input.password !== undefined,\n profileId: input.requestContext.actorContext.openMeldProfileId,\n spaceId: input.spaceId,\n })}`;\n }\n throw new SpaceSendFileError({\n code: failure.code ?? \"space.file.upload_failed\",\n message: `Could not add file \"${file.name}\" to this Space. The message was not sent. ${failure.message}${cleanupMessage}`,\n cause: error,\n requestId: failure.requestId,\n status: failure.status,\n upstreamCode: failure.upstreamCode,\n });\n }\n }\n return uploaded;\n}\n\nasync function moveUploadedFilesToTrash(input: {\n files: readonly SpaceMessageFileReference[];\n password?: string;\n requestContext: OpenMeldRequestContext;\n spaceApi: SpaceApi;\n spaceId: string;\n}): Promise<readonly SpaceFileCleanupFailure[]> {\n const failures: SpaceFileCleanupFailure[] = [];\n for (const file of input.files) {\n try {\n await input.spaceApi.trashFileEntry({\n clientMutationId: crypto.randomUUID(),\n entryId: file.fileId,\n requestContext: input.requestContext,\n spaceId: input.spaceId,\n ...(input.password === undefined\n ? {}\n : { spacePassword: input.password }),\n });\n } catch (error) {\n failures.push({\n failure: toStructuredApiClientFailure(error),\n fileId: file.fileId,\n });\n }\n }\n return failures;\n}\n\nfunction formatCleanupFailures(input: {\n failures: readonly SpaceFileCleanupFailure[];\n passwordProtected: boolean;\n profileId: string;\n spaceId: string;\n}): string {\n const failureMessages = input.failures\n .map(({ failure, fileId }) => {\n const evidence = [\n failure.code ? `code ${failure.code}` : null,\n failure.requestId ? `request ${failure.requestId}` : null,\n ]\n .filter((value): value is string => value !== null)\n .join(\", \");\n const evidenceText = evidence ? ` (${evidence})` : \"\";\n return `Could not move file ${fileId} to Trash${evidenceText}: ${failure.message} Run \\`openmeld space files trash ${input.spaceId} ${fileId} --profile ${input.profileId}\\` to finish cleanup.`;\n })\n .join(\" \");\n const passwordGuidance = input.passwordProtected\n ? \" This Space is password protected. Add `--password` with the same Space password you used for this send; OpenMeld does not include the password in this message.\"\n : \"\";\n return `${failureMessages}${passwordGuidance}`;\n}\n\nasync function prepareSpaceSendFile(\n sourcePath: string\n): Promise<PreparedSpaceFile> {\n let bytes: Blob;\n try {\n // openAsBlob collapses missing paths into ERR_INVALID_ARG_VALUE on Node 24.\n // Preserve the filesystem error code for the user-facing failure category.\n await access(sourcePath);\n bytes = await openAsBlob(sourcePath);\n } catch (error) {\n const code = readNodeErrorCode(error);\n if (code === \"ENOENT\") {\n throw new SpaceSendFileError({\n code: \"space.file.file_not_found\",\n message: `File not found: ${sourcePath}. The message was not sent.`,\n cause: error,\n });\n }\n throw new SpaceSendFileError({\n code: \"space.file.file_unreadable\",\n message: `Could not read file: ${sourcePath}. The message was not sent.`,\n cause: error,\n });\n }\n\n if (bytes.size > SPACE_FILE_MAX_SIZE_BYTES) {\n throw new SpaceSendFileError({\n code: \"space.file.too_large\",\n message: `File exceeds the ${formatFileSizeLimit()} limit: ${sourcePath}. The message was not sent.`,\n });\n }\n\n const parsedName = spaceFileNameSchema.safeParse(basename(sourcePath));\n if (!parsedName.success) {\n throw new SpaceSendFileError({\n code: \"space.file.invalid_file_name\",\n message: `File name is invalid: ${sourcePath}. The message was not sent.`,\n });\n }\n\n return {\n bytes,\n name: parsedName.data,\n mimeType: resolveSpaceFileMimeType({ fileName: parsedName.data }),\n };\n}\n\nfunction readNodeErrorCode(error: unknown): string | null {\n if (!(error && typeof error === \"object\" && \"code\" in error)) {\n return null;\n }\n return typeof error.code === \"string\" ? error.code : null;\n}\n\nfunction formatFileSizeLimit(): string {\n return `${SPACE_FILE_MAX_SIZE_BYTES / (1024 * 1024)} MiB`;\n}\n","import { readFile } from \"node:fs/promises\";\nimport {\n buildTargetWakeLifecycleId,\n executionContextSelectionSchema,\n} from \"@openmeld/schemas\";\nimport type { ExecutionContextSelection } from \"@openmeld/schemas/types\";\nimport {\n createSpaceSendInputConflictGuideError,\n createSpaceSendInputEmptyGuideError,\n createSpaceSendInputFileReadFailedGuideError,\n createSpaceSendInputRequiredGuideError,\n} from \"../runtime/dual-view-guide-catalog\";\n\ntype ResolveSpaceSendTextInput = {\n allowEmpty?: boolean;\n text?: string;\n stdin?: boolean;\n file?: string;\n readFromStdin?: () => Promise<string>;\n readFromFile?: (path: string) => Promise<string>;\n};\n\nexport function resolveSpaceTaskSelection(input: {\n space: string;\n wakeTargets?: readonly string[];\n newTask?: boolean;\n forkFrom?: string;\n continueFrom?: string;\n taskAccess?: string;\n taskWorkspace?: string;\n}): ExecutionContextSelection | undefined {\n const modes =\n Number(input.newTask === true) +\n Number(Boolean(input.forkFrom)) +\n Number(Boolean(input.continueFrom));\n if (modes === 0 && !input.taskAccess && !input.taskWorkspace) {\n return undefined;\n }\n if (modes > 1) {\n throw new Error(\n \"Choose only one of --new-task, --fork-from, or --continue-from.\"\n );\n }\n const targetProfileId = input.wakeTargets?.[0];\n if (!targetProfileId || input.wakeTargets?.length !== 1) {\n throw new Error(\"Task selection requires exactly one --wake <profile-id>.\");\n }\n if (input.continueFrom && (input.taskAccess || input.taskWorkspace)) {\n throw new Error(\n \"A continued task keeps its original file access and workspace. Start a new task to change them.\"\n );\n }\n const sourceSignalId = input.forkFrom ?? input.continueFrom;\n const sourceWakeId = sourceSignalId\n ? buildTargetWakeLifecycleId({\n spaceId: input.space,\n sourceSignalId,\n targetProfileId,\n })\n : undefined;\n const preferences = {\n access: input.taskAccess,\n workspace: input.taskWorkspace,\n };\n let value: unknown;\n if (input.continueFrom) {\n value = { mode: \"resume\", sourceWakeId };\n } else if (input.forkFrom) {\n value = { mode: \"fork\", sourceWakeId, ...preferences };\n } else {\n value = { mode: input.newTask ? \"new\" : \"auto\", ...preferences };\n }\n const parsed = executionContextSelectionSchema.safeParse(value);\n if (!parsed.success) {\n throw new Error(\n parsed.error.issues[0]?.message ?? \"Invalid task selection.\"\n );\n }\n return parsed.data;\n}\n\nexport async function resolveSpaceSendText(\n input: ResolveSpaceSendTextInput\n): Promise<string> {\n const textValue = String(input.text ?? \"\");\n const stdinEnabled = input.stdin === true;\n const filePath = String(input.file ?? \"\").trim();\n\n const hasTextSource = textValue.length > 0;\n const hasFileSource = filePath.length > 0;\n const sourceCount =\n Number(hasTextSource) + Number(stdinEnabled) + Number(hasFileSource);\n\n if (sourceCount === 0) {\n if (input.allowEmpty) {\n return \"\";\n }\n throw createSpaceSendInputRequiredGuideError();\n }\n if (sourceCount > 1) {\n throw createSpaceSendInputConflictGuideError();\n }\n\n let resolvedText = textValue;\n if (hasFileSource) {\n const readFromFile = input.readFromFile ?? readSpaceSendFile;\n try {\n resolvedText = await readFromFile(filePath);\n } catch (error) {\n throw createSpaceSendInputFileReadFailedGuideError(\n filePath,\n toErrorMessage(error)\n );\n }\n }\n if (stdinEnabled) {\n const readFromStdin = input.readFromStdin ?? readSpaceSendStdin;\n resolvedText = await readFromStdin();\n }\n\n if (resolvedText.trim().length === 0 && !input.allowEmpty) {\n throw createSpaceSendInputEmptyGuideError();\n }\n\n return resolvedText;\n}\n\nfunction readSpaceSendFile(path: string): Promise<string> {\n return readFile(path, \"utf8\");\n}\n\nfunction readSpaceSendStdin(): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n const chunks: string[] = [];\n\n const cleanup = () => {\n process.stdin.off(\"data\", onData);\n process.stdin.off(\"end\", onEnd);\n process.stdin.off(\"error\", onError);\n };\n\n const onData = (chunk: string | Buffer) => {\n if (typeof chunk === \"string\") {\n chunks.push(chunk);\n return;\n }\n chunks.push(chunk.toString(\"utf8\"));\n };\n\n const onEnd = () => {\n cleanup();\n resolve(chunks.join(\"\"));\n };\n\n const onError = (error: Error) => {\n cleanup();\n reject(error);\n };\n\n process.stdin.setEncoding(\"utf8\");\n process.stdin.on(\"data\", onData);\n process.stdin.on(\"end\", onEnd);\n process.stdin.on(\"error\", onError);\n process.stdin.resume();\n });\n}\n\nfunction toErrorMessage(error: unknown): string {\n if (error instanceof Error && error.message.trim().length > 0) {\n return error.message;\n }\n return String(error ?? \"unknown error\");\n}\n","export function parseJsonResponse(raw: string): unknown {\n if (!raw.trim()) {\n return null;\n }\n try {\n return JSON.parse(raw);\n } catch {\n return null;\n }\n}\n","import { OpenMeldApiClientHttpError } from \"@openmeld/api-client\";\nimport { OPENMELD_HEADER_REQUEST_ID } from \"@openmeld/gateway-contract\";\nimport { gatewayErrorEnvelopeSchema } from \"@openmeld/schemas\";\nimport type { GatewayErrorCode } from \"@openmeld/schemas/types\";\nimport { parseJsonResponse } from \"./api-json\";\n\nconst FALLBACK_GATEWAY_HTTP_ERROR_CODE = \"gateway.http_error\" as const;\nconst GENERIC_NETWORK_ERROR_CODES = [\n \"network.timeout\",\n \"network.request_failed\",\n] as const;\n\ntype SafeParseResult<T> = { success: true; data: T } | { success: false };\n\ntype GatewayResponseSchema<T> = {\n safeParse: (value: unknown) => SafeParseResult<T>;\n};\n\nexport type GatewayResponseErrorCode =\n | GatewayErrorCode\n | typeof FALLBACK_GATEWAY_HTTP_ERROR_CODE\n | (typeof GENERIC_NETWORK_ERROR_CODES)[number]\n | string;\n\nexport type StructuredGatewayFailure = {\n code: GatewayResponseErrorCode | null;\n message: string;\n requestId: string | null;\n status: number | null;\n upstreamCode: string | null;\n};\n\nexport class GatewayHttpError extends Error {\n readonly code: GatewayResponseErrorCode;\n readonly requestId: string | null;\n readonly status: number;\n readonly rawBody: string;\n readonly upstreamCode: string | null;\n\n constructor(input: {\n code: GatewayResponseErrorCode;\n message: string;\n requestId?: string | null;\n status: number;\n rawBody: string;\n upstreamCode?: string | null;\n }) {\n super(input.message);\n this.name = \"GatewayHttpError\";\n this.code = input.code;\n this.requestId = normalizeOptionalText(input.requestId);\n this.status = input.status;\n this.rawBody = input.rawBody;\n this.upstreamCode = normalizeOptionalText(input.upstreamCode);\n }\n}\n\nexport async function readGatewayJsonResponse<T>(input: {\n response: Response;\n schema: GatewayResponseSchema<T>;\n invalidMessage: string;\n}): Promise<T> {\n const raw = await input.response.text();\n assertGatewayResponseOk({\n response: input.response,\n raw,\n });\n\n const parsed = input.schema.safeParse(parseJsonResponse(raw));\n if (!parsed.success) {\n throw new Error(input.invalidMessage);\n }\n return parsed.data;\n}\n\nexport async function readGatewayTextResponse(input: {\n response: Response;\n}): Promise<string> {\n const raw = await input.response.text();\n assertGatewayResponseOk({\n response: input.response,\n raw,\n });\n return raw;\n}\n\nexport function assertGatewayResponseOk(input: {\n response: Response;\n raw: string;\n}): void {\n if (input.response.ok) {\n return;\n }\n throw parseGatewayErrorResponse(input);\n}\n\nexport function parseGatewayErrorResponse(input: {\n response: Pick<Response, \"headers\" | \"status\">;\n raw: string;\n}): GatewayHttpError {\n const payload = parseJsonResponse(input.raw);\n const parsed = gatewayErrorEnvelopeSchema.safeParse(payload);\n const headerRequestId = normalizeOptionalText(\n input.response.headers.get(OPENMELD_HEADER_REQUEST_ID)\n );\n\n if (parsed.success) {\n return new GatewayHttpError({\n code: parsed.data.error.code,\n message: parsed.data.error.message,\n requestId: parsed.data.error.requestId || headerRequestId,\n status: input.response.status,\n rawBody: input.raw,\n upstreamCode: parsed.data.error.upstreamCode ?? null,\n });\n }\n\n const looseEnvelope = readLooseGatewayErrorEnvelope(payload);\n if (looseEnvelope) {\n return new GatewayHttpError({\n code: looseEnvelope.code ?? FALLBACK_GATEWAY_HTTP_ERROR_CODE,\n message:\n looseEnvelope.message ??\n `Gateway request failed with HTTP ${input.response.status}.`,\n requestId: looseEnvelope.requestId ?? headerRequestId,\n status: input.response.status,\n rawBody: input.raw,\n upstreamCode: looseEnvelope.upstreamCode,\n });\n }\n\n return new GatewayHttpError({\n code: FALLBACK_GATEWAY_HTTP_ERROR_CODE,\n message:\n normalizeOptionalText(input.raw) ??\n `Gateway request failed with HTTP ${input.response.status}.`,\n requestId: headerRequestId,\n status: input.response.status,\n rawBody: input.raw,\n upstreamCode: null,\n });\n}\n\nexport function toStructuredGatewayFailure(\n error: unknown\n): StructuredGatewayFailure {\n if (error instanceof OpenMeldApiClientHttpError) {\n return {\n code: error.code,\n message: normalizeFailureMessage(error.message),\n requestId: error.requestId,\n status: error.status,\n upstreamCode: error.upstreamCode,\n };\n }\n\n if (error instanceof GatewayHttpError) {\n return {\n code: error.code,\n message: normalizeFailureMessage(error.message),\n requestId: error.requestId,\n status: error.status,\n upstreamCode: error.upstreamCode,\n };\n }\n\n const genericErrorCode = readGenericErrorCode(error);\n if (genericErrorCode) {\n return {\n code: genericErrorCode,\n message: normalizeFailureMessage(\n error instanceof Error ? error.message : String(error)\n ),\n requestId: null,\n status: null,\n upstreamCode: null,\n };\n }\n\n return {\n code: null,\n message: normalizeFailureMessage(\n error instanceof Error ? error.message : String(error)\n ),\n requestId: null,\n status: null,\n upstreamCode: null,\n };\n}\n\nfunction normalizeOptionalText(value: unknown): string | null {\n const normalized = String(value ?? \"\").trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nfunction normalizeFailureMessage(value: unknown): string {\n return normalizeOptionalText(value) ?? \"Unknown error.\";\n}\n\nfunction readGenericErrorCode(value: unknown): GatewayResponseErrorCode | null {\n if (!value || typeof value !== \"object\" || !(\"code\" in value)) {\n return null;\n }\n\n const normalized = normalizeOptionalText(\n (value as { code?: unknown }).code ?? null\n );\n return normalized as GatewayResponseErrorCode | null;\n}\n\nfunction readLooseGatewayErrorEnvelope(value: unknown): {\n code: string | null;\n message: string | null;\n requestId: string | null;\n upstreamCode: string | null;\n} | null {\n if (!value || typeof value !== \"object\") {\n return null;\n }\n\n const record = value as {\n error?: {\n code?: unknown;\n message?: unknown;\n requestId?: unknown;\n upstreamCode?: unknown;\n } | null;\n };\n const error = record.error;\n if (!error || typeof error !== \"object\") {\n return null;\n }\n\n const code = normalizeOptionalText(error.code);\n const message = normalizeOptionalText(error.message);\n const requestId = normalizeOptionalText(error.requestId);\n const upstreamCode = normalizeOptionalText(error.upstreamCode);\n if (!(code || message || requestId || upstreamCode)) {\n return null;\n }\n\n return {\n code,\n message,\n requestId,\n upstreamCode,\n };\n}\n","import type { SpaceMeta } from \"@openmeld/protocol\";\nimport { spaceMetaSchema } from \"@openmeld/schemas\";\n\ntype SpaceMetaParseOperation =\n | \"createSpaceMeta\"\n | \"fetchSpaceMeta\"\n | \"updateSpaceMeta\";\n\nexport function parseSpaceMetaPayload(input: {\n data: unknown;\n endpoint: string;\n operation: SpaceMetaParseOperation;\n}): SpaceMeta {\n try {\n const validation = spaceMetaSchema.safeParse(input.data);\n if (!validation.success) {\n const reason =\n validation.error.issues[0]?.message ??\n \"space meta payload does not match schema\";\n throw new Error(reason);\n }\n return validation.data;\n } catch (error) {\n const reason = error instanceof Error ? error.message : String(error);\n throw new Error(\n `${input.operation} received invalid response payload from ${input.endpoint}: ${reason}; raw=${JSON.stringify(input.data)}`\n );\n }\n}\n\nexport function parseSpaceMetaResponse(input: {\n raw: string;\n endpoint: string;\n operation: Extract<\n SpaceMetaParseOperation,\n \"fetchSpaceMeta\" | \"updateSpaceMeta\"\n >;\n}): SpaceMeta {\n try {\n return parseSpaceMetaPayload({\n data: JSON.parse(input.raw) as unknown,\n endpoint: input.endpoint,\n operation: input.operation,\n });\n } catch (error) {\n const reason = error instanceof Error ? error.message : String(error);\n throw new Error(\n `${input.operation} received invalid response payload from ${input.endpoint}: ${reason}; raw=${input.raw}`\n );\n }\n}\n","import type { SpaceMeta } from \"@openmeld/protocol\";\nimport type { OpenMeldRequestContext } from \"@openmeld/schemas/types\";\nimport { buildOpenMeldRequestContextHeadersWithAuth } from \"../config/request-headers\";\nimport { toSpaceMetaUrl } from \"../protocol/urls\";\nimport { fetchSpaceRequestWithTimeout } from \"./fetch-with-timeout\";\nimport { readGatewayTextResponse } from \"./gateway-response\";\nimport { parseSpaceMetaResponse } from \"./space-meta-response\";\n\ntype SpaceMetaApiInput = {\n requestContext: OpenMeldRequestContext;\n baseUrl: string;\n space: string;\n password?: string;\n};\n\nexport async function fetchSpaceMeta(\n input: SpaceMetaApiInput\n): Promise<SpaceMeta> {\n const endpoint = toSpaceMetaUrl(input.baseUrl, input.space);\n const response = await fetchSpaceRequestWithTimeout({\n url: endpoint,\n operation: \"space.fetch_meta\",\n init: {\n method: \"GET\",\n headers: await buildOpenMeldRequestContextHeadersWithAuth({\n requestUrl: endpoint,\n requestContext: input.requestContext,\n spacePassword: input.password,\n }),\n },\n });\n const raw = await readGatewayTextResponse({ response });\n\n return parseSpaceMetaResponse({\n raw,\n endpoint,\n operation: \"fetchSpaceMeta\",\n });\n}\n\nexport async function updateSpaceMeta(\n input: SpaceMetaApiInput & {\n purpose?: string;\n guide?: string;\n }\n): Promise<SpaceMeta> {\n const endpoint = toSpaceMetaUrl(input.baseUrl, input.space);\n const headers = await buildOpenMeldRequestContextHeadersWithAuth({\n requestUrl: endpoint,\n requestContext: input.requestContext,\n spacePassword: input.password,\n });\n headers[\"content-type\"] = \"application/json\";\n\n const response = await fetchSpaceRequestWithTimeout({\n url: endpoint,\n operation: \"space.update_meta\",\n init: {\n method: \"PATCH\",\n headers,\n body: JSON.stringify({\n ...(input.purpose === undefined ? {} : { purpose: input.purpose }),\n ...(input.guide === undefined ? {} : { guide: input.guide }),\n }),\n },\n });\n const raw = await readGatewayTextResponse({ response });\n\n return parseSpaceMetaResponse({\n raw,\n endpoint,\n operation: \"updateSpaceMeta\",\n });\n}\n"],"mappings":"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"}
|
|
@@ -1,44 +1,44 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import { Ar as resolveNativeAgentControllerPermissionModeForController, At as ensureOpenMeldManagedProfileWorkspace, C as createModelCatalogReadSession, Dr as resolveAgentExecutionStatus, E as resolveProfileWorkspaceRuntime, Er as resolveAgentControllerPermissionModeForController, Et as listBuiltinAgentsRegistryEntries, I as listAgentTargetStates, It as setCustomProfileWorkspace, K as notifyDaemonRouteCatalogChanged, Lt as setOpenMeldManagedProfileWorkspace, Mt as readProfileWorkspaceConfig, O as syncDeviceRuntimeStateProjection, Or as resolveAgentProfileEditCapabilities, Pt as resolveConfiguredProfileWorkspacePath, Q as resolveLocalRegistryAgentIdFromAgentControllerRef, Rt as validateCustomProfileWorkspacePath, S as syncProfileWorkspaceState, Sr as projectPeopleComputersToLegacyLocalRuntimes, St as canonicalizeLocalProjectPath, Vr as compareAgentControllerRefsForDisplay, _t as removeProjectConnection, br as parseAgentControllerRef, bt as setDefaultProjectConnection, fr as createAgentExecutionStatusDisplayRows, ft as listProjectBindings, hr as getAgentControllerPermissionModeFieldLabel, j as resolveAgentProfilePrimaryAgentControllerReport, jt as normalizeCustomProfileWorkspacePath, k as createPrimaryBindingReadSession, kr as resolveEvidenceSyncHealth, mr as getAgentControllerPermissionModeDisplayMetadata, mt as migrateProjectBindingStore, pt as listProjectConnectionsWithStatus, ut as bindProject, xr as peopleComputerContainsDevice, xt as unbindProject, yr as listAgentControllerPermissionModeOptions, yt as runIfAgentActivityBindingGenerationIsCurrent, zt as describeProfileWorkspacePathValidationFailure } from "./prepare-provider-runtime-
|
|
3
|
+
import { Ar as resolveNativeAgentControllerPermissionModeForController, At as ensureOpenMeldManagedProfileWorkspace, C as createModelCatalogReadSession, Dr as resolveAgentExecutionStatus, E as resolveProfileWorkspaceRuntime, Er as resolveAgentControllerPermissionModeForController, Et as listBuiltinAgentsRegistryEntries, I as listAgentTargetStates, It as setCustomProfileWorkspace, K as notifyDaemonRouteCatalogChanged, Lt as setOpenMeldManagedProfileWorkspace, Mt as readProfileWorkspaceConfig, O as syncDeviceRuntimeStateProjection, Or as resolveAgentProfileEditCapabilities, Pt as resolveConfiguredProfileWorkspacePath, Q as resolveLocalRegistryAgentIdFromAgentControllerRef, Rt as validateCustomProfileWorkspacePath, S as syncProfileWorkspaceState, Sr as projectPeopleComputersToLegacyLocalRuntimes, St as canonicalizeLocalProjectPath, Vr as compareAgentControllerRefsForDisplay, _t as removeProjectConnection, br as parseAgentControllerRef, bt as setDefaultProjectConnection, fr as createAgentExecutionStatusDisplayRows, ft as listProjectBindings, hr as getAgentControllerPermissionModeFieldLabel, j as resolveAgentProfilePrimaryAgentControllerReport, jt as normalizeCustomProfileWorkspacePath, k as createPrimaryBindingReadSession, kr as resolveEvidenceSyncHealth, mr as getAgentControllerPermissionModeDisplayMetadata, mt as migrateProjectBindingStore, pt as listProjectConnectionsWithStatus, ut as bindProject, xr as peopleComputerContainsDevice, xt as unbindProject, yr as listAgentControllerPermissionModeOptions, yt as runIfAgentActivityBindingGenerationIsCurrent, zt as describeProfileWorkspacePathValidationFailure } from "./prepare-provider-runtime-CpG_NTZF.js";
|
|
4
4
|
import { c as toSpaceDispatchLookupUrl, h as toSpaceResultUrl, i as toSpaceContractUrl, l as toSpaceDispatchTraceUrl, r as toSpaceBoardUrl, t as normalizeBaseUrl } from "./urls-CY2uzH2-.js";
|
|
5
5
|
import { A as profileDir, D as openMeldRootDir, F as resolveOpenMeldRootDir, H as spacesDir, N as resolveOpenMeldCliEntryNameFromArgv, P as resolveOpenMeldEnvPreset, S as openMeldBinDir, U as systemDir, V as skillsDir, i as accountProfileViewPath, j as profileViewPath, o as accountsDir, r as accountProfileSpaceCacheDir, x as openMeldBackupsDir, y as normalizeAccountKey } from "./paths-De9xdA2h.js";
|
|
6
6
|
import { r as resolveAuthBaseUrl } from "./auth-url-6Bb6YdNm.js";
|
|
7
|
-
import { An as postSpaceWorkHandoff,
|
|
8
|
-
import {
|
|
7
|
+
import { An as postSpaceWorkHandoff, Ar as submitFeedbackIssueRequestSchema, Br as spaceDispatchTraceResponseSchema, Fi as agentActivitySessionStatusSchema, Fr as projectSpaceDispatchTraceFinalVisibleOutcome, Gt as createCurrentDeviceApi, Hr as projectObservabilityWakeCorrelation, Ii as agentActivitySnapshotQuerySchema, Ir as resolveRuntimeCoordinatorHeadStatusRootCause, Jr as organizationSkillFileSchema, Lr as resolveSpaceDispatchTraceRootCause, Lt as createAgentActivityApi, Pi as agentActivityProviderSchema, Pr as SPACE_DISPATCH_TRACE_RESPONSE_CONTRACT_VERSION_HEADER, Rr as spaceDispatchTraceAttemptStatusSchema, Rt as createAgentProfileBindingApi, Sr as createAgentProfileCreationRequestBodySchema, Ur as ORGANIZATION_SKILL_BUNDLE_MAX_BYTES, Ut as createComputerFileAccessApi, Vn as toStructuredApiClientFailure, Vr as observabilityWakeTraceSelectorSchema, Vt as createCenterAgentApi, Wr as ORGANIZATION_SKILL_FILE_MAX_BYTES, Yt as createFileRootApi, an as createPluginsApi, br as DEFAULT_AGENT_PROFILE_CREATION_CONFIGURATION, di as projectOwnerComputerLocalRuntimes, dn as createRoutinesApi, fi as summarizeComputerFileAccessPolicy, fr as pluginActionRequestSchema, gi as agentActivitySessionInventoryQuerySchema, hi as agentActivityInventorySessionStatusSchema, ln as createProjectsApi, mi as agentActivityInventorySessionOriginSchema, on as createPrepareReadinessApi, or as OPENMELD_HEADER_SPACE_ADDRESSING_VERSION, qt as createFeedbackApi, ri as resolvedSpaceMemberProfileSchema, rn as createOrganizationSkillsApi, rr as OPENMELD_HEADER_PROFILE_ID, tn as createOrganizationApi, ui as ownerComputerDiagnosticsSchema, ur as spaceEntryTargetSchema, vi as localAgentSessionProviderSchema, xr as agentProfileCreationConfigurationSchema, zr as spaceDispatchTraceDispatchStatusSchema, zt as createAgentProfileExecutionModeApi } from "./dist-BE0dKSoc.js";
|
|
8
|
+
import { Hi as openMeldProfileIdSchema, Kr as runtimeTransportAdmissionEvidenceSchema, Rr as agentInteractionResponseSchema, Si as START_BOUNDED_ID_SCHEMA, Ti as START_TRIMMED_NON_EMPTY_STRING_SCHEMA, Ui as openMeldRequestContextSchema, Vr as clientMessageIdSchema, Zn as spaceThreadContextSchema, cn as spaceWorkSelectionSchema, dn as SPACE_FILE_MAX_SIZE_BYTES, fn as SPACE_FILE_RAW_UPLOAD_MAX_BYTES, gn as isSpaceFileTextEditable, hr as messageEnvelopeSchema, ln as spaceWorkingCopyResultSchema, nn as spaceStatusSchema, nr as spaceContractSchema, on as spaceWorkHandoffSchema, rn as centerAgentInteractionSourceSchema, tr as spaceContractFieldsSchema, xn as resolveSpaceFileMimeType } from "./runtime-transport-BPK70mkB.js";
|
|
9
9
|
import { L as nonEmptyTrimmedStringFromUnknown, O as openMeldRuntimeProfileIdSchema, w as dispatchExecutionSchema, z as trimmedStringFromUnknown } from "./control-plane-QqGL-jtT.js";
|
|
10
10
|
import { c as agentControllerConversationRefSchema } from "./controller-contract-DAOCaefz.js";
|
|
11
|
-
import { C as updateAuthSessionActiveOrganization, E 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-
|
|
12
|
-
import { t as computerConnectionIntentSchema } from "./computer-connection-
|
|
13
|
-
import { B as resolveRuntimeContext, G as createOpenMeldAgentProfile, H as isSelectedOpenMeldProfileRequiredError, K as createOpenMeldHumanProfile, Q as updateOpenMeldProfile, U as requireOpenMeldProfile, V as resolveViewProfileKey, W as resolveOpenMeldProfileOrNull, X as primeOpenMeldProfilesSessionCache, Y as listOpenMeldProfiles, Z as resolveOpenMeldProfile, _t as getProfileDefaultView, at as getSelectedOpenMeldProfileId, dt as createAuthenticationError, ht as resolveAuthenticationGuidanceFromMessage, it as clearSelectedOpenMeldProfileId, mt as resolveAuthenticationGuidanceFromError, nt as alignSelectedOpenMeldProfileStorage, ot as setSelectedOpenMeldProfileId, pt as resolveAuthenticationGuidance, q as deleteOpenMeldProfile, st as buildAgentAuthenticationGuide, ut as buildHumanAuthenticationCard, vt as setProfileDefaultView, z as parseCliViewMode } from "./daemon-device-id-
|
|
14
|
-
import { d as readSelectedSkillDocument, r as ensureLocalSkills } from "./state-
|
|
15
|
-
import { $ as buildAuthStatusSnapshot, B as resolveDaemonServiceParticipationStatus, C as buildProfileWorkspaceRows, E as emitDaemonAgentOverview, F as emitCliJsonEnvelope, G as ensureCommandAuthenticationOrCancel, H as validateLocalProjectConnectionPath, I as runDaemonStartupPreflight, J as runAuthLogout, K as evaluateCommandAuthentication, M as buildHumanErrorCopy, N as renderHumanErrorCard, O as shouldEmitAgentOverview, P as renderHumanTextErrorCard, Q as buildAuthStatusRows, R as resolveLocalComponentsStatus, S as buildProfileWorkspacePresentation, V as LocalProjectConnectionError, W as buildCommandAuthenticationPromptMessage, X as runAuthStatus, Y as runAuthMenu, Z as exchangeOneTimeTokenAuthSession, a as runDaemonBackgroundStartForDecision, at as promptTextEntry, c as runDaemonInterrupt, ct as finishCurrentCommandCheckScope, dt as resetCurrentCommandCheckState, et as formatActiveOrganizationLabel, f as runDaemonSnapshot, ft as startCurrentCommandCheckScope, g as runDaemonUninstall, h as runDaemonTeardownStrict, i as runDaemonAutostart, j as runDaemonStartDecisionPrompt, l as runDaemonReinstall, lt as getCurrentCommandCheckState, m as runDaemonStop, n as isManagedSystemServiceBootstrapRun, nt as renderInfoCard, o as runDaemonCancel, ot as isReturnKeypress, p as runDaemonStatusFlow, q as runAuthLogin, r as runDaemon, rt as renderTextInfoCard, s as runDaemonInstall, st as runInteractivePrompt, t as bestEffortStopCurrentLaneDaemonService, u as runDaemonRunAfterEntryChecks, ut as isCurrentCommandCheckScopeActive, w as reconcileCliVersionView, x as resolveServiceParticipationReadiness, y as formatServiceParticipationReadinessLabel, z as writeInstalledLocalComponentsSnapshot } from "./service-
|
|
16
|
-
import { C as buildAgentActivityEvent, Cn as acceptOrganizationJoinLinkBodySchema, Dn as revokeOrganizationJoinLinkResponseSchema, E as readCodexSessionTitles, En as organizationJoinLinkManagementQuerySchema, F as removeProjectOutbox, Gt as createSpaceMemberIdentityIndex, Mt as buildSignalIndex, N as readAgentActivityOutboxHealth, Nt as buildSignalMessageReadProjection, O as enqueueAgentActivityHookEvent, Ot as buildDispatchResultMessageReadProjection, Sn as cliJsonSkillsShowEnvelopeSchema, T as normalizeSharedSessionTitle, Tn as organizationJoinLinkErrorResponseSchema, Vt as buildUpdatesReplyWorkflowProjection, Yt as formatRemovedCcRelationMessage, Z as readRecentDaemonDispatchJournalEvents, _n as cliJsonSkillsAddEnvelopeSchema, bn as cliJsonSkillsLoadEnvelopeSchema, gn as cliJsonSkillsAddAllEnvelopeSchema, hn as cliJsonOutputEnvelopeSchema, i as readDispatchOwnedRuntimeGuard, jt as buildPublicSpaceEntryUrl, k as removeProjectInbox, kt as buildDispatchResultReplyWorkflowProjection, pt as inspectSpaceCacheFile, t as assertDispatchOwnedRuntimePublicWriteAllowed, u as readDispatchSpaceActionContextFromEnv, vn as cliJsonSkillsAddPreviewEnvelopeSchema, w as resolveObservedAgentActivityBinding, wn as getOrganizationJoinLinkResponseSchema, wt as upsertSpaceConfig, xn as cliJsonSkillsScanEnvelopeSchema, yn as cliJsonSkillsListEnvelopeSchema, zt as buildSpaceRoundReadProjection } from "./dispatch-owned-runtime-
|
|
17
|
-
import { c as toStructuredGatewayFailure, d as resolveSpaceTaskSelection, l as parseJsonResponse, m as createCliSpaceApi, n as updateSpaceMeta, o as readGatewayJsonResponse, s as readGatewayTextResponse, t as fetchSpaceMeta, u as resolveSpaceSendText } from "./meta-api-
|
|
18
|
-
import {
|
|
19
|
-
import { G as readManagedCliInstallation, H as buildInstallSelfJsonPayload, U as performManagedInstall, r as readCurrentDaemonRuntimeContext } from "./daemon-service-runtime-
|
|
11
|
+
import { C as updateAuthSessionActiveOrganization, E 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-Injt39gv.js";
|
|
12
|
+
import { t as computerConnectionIntentSchema } from "./computer-connection-CSa8O0op.js";
|
|
13
|
+
import { B as resolveRuntimeContext, G as createOpenMeldAgentProfile, H as isSelectedOpenMeldProfileRequiredError, K as createOpenMeldHumanProfile, Q as updateOpenMeldProfile, U as requireOpenMeldProfile, V as resolveViewProfileKey, W as resolveOpenMeldProfileOrNull, X as primeOpenMeldProfilesSessionCache, Y as listOpenMeldProfiles, Z as resolveOpenMeldProfile, _t as getProfileDefaultView, at as getSelectedOpenMeldProfileId, dt as createAuthenticationError, ht as resolveAuthenticationGuidanceFromMessage, it as clearSelectedOpenMeldProfileId, mt as resolveAuthenticationGuidanceFromError, nt as alignSelectedOpenMeldProfileStorage, ot as setSelectedOpenMeldProfileId, pt as resolveAuthenticationGuidance, q as deleteOpenMeldProfile, st as buildAgentAuthenticationGuide, ut as buildHumanAuthenticationCard, vt as setProfileDefaultView, z as parseCliViewMode } from "./daemon-device-id-CAKHWLK9.js";
|
|
14
|
+
import { d as readSelectedSkillDocument, r as ensureLocalSkills } from "./state-Bef17OTn.js";
|
|
15
|
+
import { $ as buildAuthStatusSnapshot, B as resolveDaemonServiceParticipationStatus, C as buildProfileWorkspaceRows, E as emitDaemonAgentOverview, F as emitCliJsonEnvelope, G as ensureCommandAuthenticationOrCancel, H as validateLocalProjectConnectionPath, I as runDaemonStartupPreflight, J as runAuthLogout, K as evaluateCommandAuthentication, M as buildHumanErrorCopy, N as renderHumanErrorCard, O as shouldEmitAgentOverview, P as renderHumanTextErrorCard, Q as buildAuthStatusRows, R as resolveLocalComponentsStatus, S as buildProfileWorkspacePresentation, V as LocalProjectConnectionError, W as buildCommandAuthenticationPromptMessage, X as runAuthStatus, Y as runAuthMenu, Z as exchangeOneTimeTokenAuthSession, a as runDaemonBackgroundStartForDecision, at as promptTextEntry, c as runDaemonInterrupt, ct as finishCurrentCommandCheckScope, dt as resetCurrentCommandCheckState, et as formatActiveOrganizationLabel, f as runDaemonSnapshot, ft as startCurrentCommandCheckScope, g as runDaemonUninstall, h as runDaemonTeardownStrict, i as runDaemonAutostart, j as runDaemonStartDecisionPrompt, l as runDaemonReinstall, lt as getCurrentCommandCheckState, m as runDaemonStop, n as isManagedSystemServiceBootstrapRun, nt as renderInfoCard, o as runDaemonCancel, ot as isReturnKeypress, p as runDaemonStatusFlow, q as runAuthLogin, r as runDaemon, rt as renderTextInfoCard, s as runDaemonInstall, st as runInteractivePrompt, t as bestEffortStopCurrentLaneDaemonService, u as runDaemonRunAfterEntryChecks, ut as isCurrentCommandCheckScopeActive, w as reconcileCliVersionView, x as resolveServiceParticipationReadiness, y as formatServiceParticipationReadinessLabel, z as writeInstalledLocalComponentsSnapshot } from "./service-BhwxCPsM.js";
|
|
16
|
+
import { C as buildAgentActivityEvent, Cn as acceptOrganizationJoinLinkBodySchema, Dn as revokeOrganizationJoinLinkResponseSchema, E as readCodexSessionTitles, En as organizationJoinLinkManagementQuerySchema, F as removeProjectOutbox, Gt as createSpaceMemberIdentityIndex, Mt as buildSignalIndex, N as readAgentActivityOutboxHealth, Nt as buildSignalMessageReadProjection, O as enqueueAgentActivityHookEvent, Ot as buildDispatchResultMessageReadProjection, Sn as cliJsonSkillsShowEnvelopeSchema, T as normalizeSharedSessionTitle, Tn as organizationJoinLinkErrorResponseSchema, Vt as buildUpdatesReplyWorkflowProjection, Yt as formatRemovedCcRelationMessage, Z as readRecentDaemonDispatchJournalEvents, _n as cliJsonSkillsAddEnvelopeSchema, bn as cliJsonSkillsLoadEnvelopeSchema, gn as cliJsonSkillsAddAllEnvelopeSchema, hn as cliJsonOutputEnvelopeSchema, i as readDispatchOwnedRuntimeGuard, jt as buildPublicSpaceEntryUrl, k as removeProjectInbox, kt as buildDispatchResultReplyWorkflowProjection, pt as inspectSpaceCacheFile, t as assertDispatchOwnedRuntimePublicWriteAllowed, u as readDispatchSpaceActionContextFromEnv, vn as cliJsonSkillsAddPreviewEnvelopeSchema, w as resolveObservedAgentActivityBinding, wn as getOrganizationJoinLinkResponseSchema, wt as upsertSpaceConfig, xn as cliJsonSkillsScanEnvelopeSchema, yn as cliJsonSkillsListEnvelopeSchema, zt as buildSpaceRoundReadProjection } from "./dispatch-owned-runtime-B6HXvHVa.js";
|
|
17
|
+
import { c as toStructuredGatewayFailure, d as resolveSpaceTaskSelection, l as parseJsonResponse, m as createCliSpaceApi, n as updateSpaceMeta, o as readGatewayJsonResponse, s as readGatewayTextResponse, t as fetchSpaceMeta, u as resolveSpaceSendText } from "./meta-api-BBfF-3ln.js";
|
|
18
|
+
import { A as readAgentActivityContextForPath, B as installAgentActivityIntegrations, D as syncLocalAgentActivity, F as registerAgentActivityRoute, H as resolveAgentActivityDispatcherCommand, I as resolveAgentActivityRouteForPath, L as unregisterAgentActivityRoute, M as enqueueControllerTaskLifecycleEventWhileLocked, N as readControllerTaskLifecycleOutboxHealth, P as isAgentActivityRouteRegistered, U as uninstallAgentActivityIntegrations, V as readAgentActivityIntegrationStatus, c as runDirectMessage, d as runSpaceActionSilent, f as runSpaceActionStatus, i as materializeOrganizationSkillRelease, j as removeAgentActivityContextCache, l as runSpaceActionHelp, m as runSpaceActionWake, n as createSpaceWorkingCopies, o as runSpaceActionMcpServer, p as runSpaceActionTargets, r as downloadWorkingCopyFile, t as fetchSpaceUpdates, u as runSpaceActionReply, x as readRuntimeReportingHealthState, z as defaultManagedIntegrationPaths } from "./updates-api-Cot1YmlU.js";
|
|
19
|
+
import { G as readManagedCliInstallation, H as buildInstallSelfJsonPayload, U as performManagedInstall, r as readCurrentDaemonRuntimeContext } from "./daemon-service-runtime-zCpuDvfl.js";
|
|
20
20
|
import { a as activateWindowsManagedCommand } from "./process-identity-BRbhGGTM.js";
|
|
21
|
-
import { A as formatDeviceReplyReadinessLabel, B as resolveGatewayChainReadiness, Bt as readCurrentLocalDeviceId, Ft as resolveCurrentDaemonExpectedVersion, Ht as isCliUpdateCheckApplicable, J as getSetupFlowCopy, K as buildDaemonRouteObservationPresentation$1, Lt as assessServerRequiredVersion, N as mapAgentReplyReadinessToLegacyAutoReply, Nt as classifyDaemonServiceRunStartability, O as resolveCurrentReplyReadinessSnapshot, Pt as classifyDaemonServiceWakeability, T as resolveDaemonServiceFreshnessWarning, U as resolveOpenClawLocalDiagnosticsValue, Vt as assessCliUpdate, _ as resolveServiceReadinessFromServiceStatus, j as formatHumanReplyReadinessReason$1, k as formatAgentReplyReadinessLabel, pt as inspectDaemonServiceInventory, q as buildOnboardingPlan, t as runPendingDaemonServiceUpdate } from "./daemon-service-update-coordinator-
|
|
22
|
-
import { A as assertFullSignalIdArgument, B as resolveAgentProfileSetup, C as buildFormalSignalReadPayload, D as resolveOrganizationVisibilityLabel, E as resolveLinkAccessLabel, F as emitSpaceCliAgentOverview, G as renderOpenMeldHeader, H as colorizeDisplayProfileLabel, I as prepareLocalAgentReadiness, J as createProfileByKind, K as renderOpenMeldLogo, L as buildReplyReadinessGuidance, M as prepareAuthenticatedSpaceCommandContext, N as resolveOpenMeldProfileForSpaceCommand, O as parseEnvelope, P as emitSpaceAgentOverview, Q as assessActionParticipationCandidate, R as resolveHumanControllerDisplayName, S as buildFormalDispatchResultReadPayload, T as formatHumanReadTargetList, U as printOpenMeldBanner, V as colorizeAgentLabel, W as renderOpenMeldBrandBlockLines, X as resolveCreateProfileName, Y as resolveCreateProfileKind, Z as ensureAgentProfileRuntimeBinding, _ as emitHumanReadSignalsTextProjection, a as runSpaceDelete, b as loadSpaceSignalIndexOrNull, c as runSpaceLeave, d as runSpaceRemoveMembers, f as runSpaceSend, g as buildHumanReadSignalsTranscriptItems, h as runSpaceWriteWithPasswordRetry, i as runSpaceCreate, j as assertValidSpaceIdTarget, k as isSpaceCommandOutputHandledError, l as runSpaceList, m as runSpaceReadWithPasswordRetry, n as promptAndConfirmSpacePassword, o as runSpaceHistory, p as runSpaceWatch, q as renderOpenMeldTagline, r as runSpaceAddMembers, s as runSpaceJoin, t as buildCreateSpacePasswordPromptConfig, u as runSpacePassword, v as buildIdentityOnlyMembersSnapshotForReadProjection, w as buildHumanReplyContextSummary, x as toSpaceMetaUpsertInput, y as loadSpaceIdentityDirectoryOrNull, z as persistAgentTransportSelection } from "./command-
|
|
21
|
+
import { A as formatDeviceReplyReadinessLabel, B as resolveGatewayChainReadiness, Bt as readCurrentLocalDeviceId, Ft as resolveCurrentDaemonExpectedVersion, Ht as isCliUpdateCheckApplicable, J as getSetupFlowCopy, K as buildDaemonRouteObservationPresentation$1, Lt as assessServerRequiredVersion, N as mapAgentReplyReadinessToLegacyAutoReply, Nt as classifyDaemonServiceRunStartability, O as resolveCurrentReplyReadinessSnapshot, Pt as classifyDaemonServiceWakeability, T as resolveDaemonServiceFreshnessWarning, U as resolveOpenClawLocalDiagnosticsValue, Vt as assessCliUpdate, _ as resolveServiceReadinessFromServiceStatus, j as formatHumanReplyReadinessReason$1, k as formatAgentReplyReadinessLabel, pt as inspectDaemonServiceInventory, q as buildOnboardingPlan, t as runPendingDaemonServiceUpdate } from "./daemon-service-update-coordinator-Q5ihbImP.js";
|
|
22
|
+
import { A as assertFullSignalIdArgument, B as resolveAgentProfileSetup, C as buildFormalSignalReadPayload, D as resolveOrganizationVisibilityLabel, E as resolveLinkAccessLabel, F as emitSpaceCliAgentOverview, G as renderOpenMeldHeader, H as colorizeDisplayProfileLabel, I as prepareLocalAgentReadiness, J as createProfileByKind, K as renderOpenMeldLogo, L as buildReplyReadinessGuidance, M as prepareAuthenticatedSpaceCommandContext, N as resolveOpenMeldProfileForSpaceCommand, O as parseEnvelope, P as emitSpaceAgentOverview, Q as assessActionParticipationCandidate, R as resolveHumanControllerDisplayName, S as buildFormalDispatchResultReadPayload, T as formatHumanReadTargetList, U as printOpenMeldBanner, V as colorizeAgentLabel, W as renderOpenMeldBrandBlockLines, X as resolveCreateProfileName, Y as resolveCreateProfileKind, Z as ensureAgentProfileRuntimeBinding, _ as emitHumanReadSignalsTextProjection, a as runSpaceDelete, b as loadSpaceSignalIndexOrNull, c as runSpaceLeave, d as runSpaceRemoveMembers, f as runSpaceSend, g as buildHumanReadSignalsTranscriptItems, h as runSpaceWriteWithPasswordRetry, i as runSpaceCreate, j as assertValidSpaceIdTarget, k as isSpaceCommandOutputHandledError, l as runSpaceList, m as runSpaceReadWithPasswordRetry, n as promptAndConfirmSpacePassword, o as runSpaceHistory, p as runSpaceWatch, q as renderOpenMeldTagline, r as runSpaceAddMembers, s as runSpaceJoin, t as buildCreateSpacePasswordPromptConfig, u as runSpacePassword, v as buildIdentityOnlyMembersSnapshotForReadProjection, w as buildHumanReplyContextSummary, x as toSpaceMetaUpsertInput, y as loadSpaceIdentityDirectoryOrNull, z as persistAgentTransportSelection } from "./command-D1poZMYq.js";
|
|
23
23
|
import { D as isLocalMachineFailureError, O as toRecognizedLocalMachineFailureError, S as LocalMachineFailureError, T as createOrphanedSetupConcurrencyIssue, _ as resolveCliContext, a as isOpenMeldOrphanedLockError, b as formatLaneScopeSentence, c as releaseLockSync, d as runWithHeldLock, i as isOpenMeldLockError, k as formatLocalMachineIssueMessage, l as repairOrphanedLegacyLocks, m as OPENMELD_CLI_CONTEXT_ENV_KEY, p as LEGACY_OPENMELD_AGENT_SESSION_ENV_KEY, r as buildOpenMeldOrphanedLockAction, t as acquireLock, u as resolveOpenMeldOrphanedLockIssue, w as createActiveSetupConcurrencyIssue, x as resolveOpenMeldLaneDescriptor } from "./lock-BMI00i2F.js";
|
|
24
|
-
import { $ as getCommandHintsFromContract, A as createSpaceUpdatesGuideError, D as createSpaceSubcommandTargetGuideError, Dt as formatAgentOverviewPayload, Et as buildDualViewGuideMessage, G as canonicalizeAllowedActions, L as areAllowedActionsEquivalent, M as createStartAuthenticationGuideError, O as createSpaceTargetGuideError, P as OPENMELD_AGENT_MENTAL_MODEL_LINES, S as createSpaceResultGuideError, Tt as formatDualViewGuideForDisplay, a as createProfileMenuGuideError, at as SPACE_ADD_MEMBERS_PROGRESS_HEARTBEAT_MS, d as createSpaceContractSetGuideError, g as createSpaceMenuGuideError, gt as registerAuthLoginRequestOptions, h as createSpaceLeaveGuideError, i as createProfileCreateGuideError, j as createStartAgentIdentityGuideError, l as createSpaceAddMembersGuideError, mt as registerDaemonControlTargetOptions, n as createDoctorFailedGuideError, nt as registerSpaceMemberSelectionOptions, o as createResetConfirmationGuideError, pt as getCliVersionInfo, r as createProfileActionGuideError, u as createSpaceAliasTargetGuideError, ut as registerSkillsTargetSelectionOptions, v as createSpacePublicationSetGuideError, wt as DualViewGuideError, x as createSpaceRemoveMembersGuideError, xt as registerBuiltinAgentSelectionOptions, z as buildAgentFacingPublicationModeGuideLines } from "./dual-view-guide-catalog-
|
|
24
|
+
import { $ as getCommandHintsFromContract, A as createSpaceUpdatesGuideError, D as createSpaceSubcommandTargetGuideError, Dt as formatAgentOverviewPayload, Et as buildDualViewGuideMessage, G as canonicalizeAllowedActions, L as areAllowedActionsEquivalent, M as createStartAuthenticationGuideError, O as createSpaceTargetGuideError, P as OPENMELD_AGENT_MENTAL_MODEL_LINES, S as createSpaceResultGuideError, Tt as formatDualViewGuideForDisplay, a as createProfileMenuGuideError, at as SPACE_ADD_MEMBERS_PROGRESS_HEARTBEAT_MS, d as createSpaceContractSetGuideError, g as createSpaceMenuGuideError, gt as registerAuthLoginRequestOptions, h as createSpaceLeaveGuideError, i as createProfileCreateGuideError, j as createStartAgentIdentityGuideError, l as createSpaceAddMembersGuideError, mt as registerDaemonControlTargetOptions, n as createDoctorFailedGuideError, nt as registerSpaceMemberSelectionOptions, o as createResetConfirmationGuideError, pt as getCliVersionInfo, r as createProfileActionGuideError, u as createSpaceAliasTargetGuideError, ut as registerSkillsTargetSelectionOptions, v as createSpacePublicationSetGuideError, wt as DualViewGuideError, x as createSpaceRemoveMembersGuideError, xt as registerBuiltinAgentSelectionOptions, z as buildAgentFacingPublicationModeGuideLines } from "./dual-view-guide-catalog-Cf9dxh8-.js";
|
|
25
25
|
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-0AoeTi3w.js";
|
|
26
26
|
import { n as resolveOpenMeldDistribution, t as isBinaryDistribution } from "./distribution-BDQT2ilb.js";
|
|
27
27
|
import { A as getDaemonStatus } from "./daemon-state-Dte9re5V.js";
|
|
28
28
|
import { i as readDaemonServiceContract } from "./daemon-service-contract-COPKbCy_.js";
|
|
29
29
|
import { a as formatOpenMeldCliTextBlock, c as resolveSetupFollowUpCliEntryCommand, i as formatOpenMeldCliLine, l as resolveUserFacingCliEntryCommand, n as formatOpenMeldCliCommand, r as formatOpenMeldCliCommands, s as formatProfileAwareOpenMeldCliCommands, t as formatInlineOpenMeldCliCommands } from "./cli-entry-command-CR_9QU1i.js";
|
|
30
30
|
import { t as resolveOpenMeldEnvironmentTarget } from "./openmeld-environment-target-BgYR6ozy.js";
|
|
31
|
-
import { r as runServiceAccountCarrier } from "./service-account-authorization-
|
|
32
|
-
import { b as requestLocalAgentActivitySync, d as compareSemver, f as ensureVersionStateReady, l as OPENMELD_VERSION, y as LocalDaemonControlPlaneClientError } from "./daemon-lifecycle-journal-
|
|
31
|
+
import { r as runServiceAccountCarrier } from "./service-account-authorization-C6wZHidB.js";
|
|
32
|
+
import { b as requestLocalAgentActivitySync, d as compareSemver, f as ensureVersionStateReady, l as OPENMELD_VERSION, y as LocalDaemonControlPlaneClientError } from "./daemon-lifecycle-journal-eiHCp4B7.js";
|
|
33
33
|
import { a as outJsonLine, i as errLine, n as sanitizeTerminalDisplayText, o as outLine, r as formatMessage, t as createPresenter } from "./presenter-BcxiQyJg.js";
|
|
34
|
-
import { c as buildRequestAuthHeaders, d as buildOpenMeldRequestContextFromProfile, n as fetchSpaceRequestWithTimeout, p as deriveAuthBaseUrlFromGatewayUrl, s as buildOpenMeldRequestContextHeadersWithAuth, t as createCliApiClientFoundation } from "./api-client-foundation-
|
|
35
|
-
import { g as canUseInteractivePrompts } from "./elapsed-time-
|
|
36
|
-
import { n as collectSkillsReadinessSnapshot } from "./installation-inventory-
|
|
37
|
-
import { t as runServiceAccountControl } from "./service-account-control-
|
|
38
|
-
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-
|
|
39
|
-
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-
|
|
40
|
-
import { n as submitProfileRuntimeAgentControllerReport, r as submitRuntimeAgentControllerReport } from "./runtime-agent-controller-reporting-submission-
|
|
41
|
-
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-
|
|
34
|
+
import { c as buildRequestAuthHeaders, d as buildOpenMeldRequestContextFromProfile, n as fetchSpaceRequestWithTimeout, p as deriveAuthBaseUrlFromGatewayUrl, s as buildOpenMeldRequestContextHeadersWithAuth, t as createCliApiClientFoundation } from "./api-client-foundation-Dbc5MXyW.js";
|
|
35
|
+
import { g as canUseInteractivePrompts } from "./elapsed-time-ZiuFKVLD.js";
|
|
36
|
+
import { n as collectSkillsReadinessSnapshot } from "./installation-inventory-CRS2_ZJi.js";
|
|
37
|
+
import { t as runServiceAccountControl } from "./service-account-control-D_hTHF4w.js";
|
|
38
|
+
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-ByEiJyxT.js";
|
|
39
|
+
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-4ldZFtzT.js";
|
|
40
|
+
import { n as submitProfileRuntimeAgentControllerReport, r as submitRuntimeAgentControllerReport } from "./runtime-agent-controller-reporting-submission-D51t3Q8e.js";
|
|
41
|
+
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-9xk3iYag.js";
|
|
42
42
|
import { createHash, randomUUID } from "node:crypto";
|
|
43
43
|
import { homedir, tmpdir } from "node:os";
|
|
44
44
|
import { basename, dirname, extname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
@@ -1821,6 +1821,7 @@ function buildCommandChecks(...parts) {
|
|
|
1821
1821
|
const COMMAND_CHECK_REQUIREMENTS = Object.freeze({
|
|
1822
1822
|
root: buildCommandChecks(OPTIONAL_CLI_UPDATE),
|
|
1823
1823
|
"plugins.list": buildCommandChecks(OPTIONAL_CLI_UPDATE, REQUIRED_SIGN_IN),
|
|
1824
|
+
"plugins.connect": buildCommandChecks(OPTIONAL_CLI_UPDATE, REQUIRED_SIGN_IN),
|
|
1824
1825
|
"plugins.actions": buildCommandChecks(OPTIONAL_CLI_UPDATE, REQUIRED_SIGN_IN),
|
|
1825
1826
|
"plugins.call": buildCommandChecks(OPTIONAL_CLI_UPDATE, REQUIRED_SIGN_IN),
|
|
1826
1827
|
view: buildCommandChecks(OPTIONAL_CLI_UPDATE),
|
|
@@ -2054,6 +2055,7 @@ const COMMAND_ENTRY_NAME_BY_ROUTE = {
|
|
|
2054
2055
|
"files write": "files.write",
|
|
2055
2056
|
"files download": "files.download",
|
|
2056
2057
|
"plugins list": "plugins.list",
|
|
2058
|
+
"plugins connect": "plugins.connect",
|
|
2057
2059
|
"plugins actions": "plugins.actions",
|
|
2058
2060
|
"plugins call": "plugins.call",
|
|
2059
2061
|
"skills ensure": "skills.ensure",
|
|
@@ -2691,6 +2693,11 @@ const COMMAND_ENTRY_COPY_BY_NAME = Object.freeze({
|
|
|
2691
2693
|
signInAction: "listing available plugin accounts",
|
|
2692
2694
|
profileAction: null
|
|
2693
2695
|
},
|
|
2696
|
+
"plugins.connect": {
|
|
2697
|
+
...DEFAULT_COPY,
|
|
2698
|
+
signInAction: "connecting a plugin account",
|
|
2699
|
+
profileAction: null
|
|
2700
|
+
},
|
|
2694
2701
|
"plugins.actions": {
|
|
2695
2702
|
...DEFAULT_COPY,
|
|
2696
2703
|
signInAction: "discovering plugin actions",
|
|
@@ -17797,6 +17804,41 @@ function showList(input) {
|
|
|
17797
17804
|
}
|
|
17798
17805
|
function registerFilesCommands(program, runChecked) {
|
|
17799
17806
|
const files = program.command("files").description("Work with Team files or your private files.");
|
|
17807
|
+
files.command("copy-excerpt").description("Share a selected excerpt of your own message with a named Space audience.").requiredOption("--source-space <id>", "Source Space ID").requiredOption("--signal <id>", "Exact source message ID").requiredOption("--version <sha256>", "Exact message version from its evidence reference").requiredOption("--author <profile-id>", "Your Human Profile ID").requiredOption("--start <number>", "First selected Unicode character, starting at zero").requiredOption("--end <number>", "First character after the selection").requiredOption("--space <id>", "Private, members-only destination Space").requiredOption("--audience <profile-ids>", "All destination member Profile IDs, comma-separated").requiredOption("--name <name>", "Name for the excerpt file").requiredOption("--request-id <id>", "Stable request ID; reuse it to reconcile this copy").option("--folder <id>", "Destination folder ID, or root", "root").option("--json", "Print canonical JSON", false).action(async (opts, command) => {
|
|
17808
|
+
await runChecked(["files", "copy-excerpt"], async () => {
|
|
17809
|
+
await withFiles({
|
|
17810
|
+
command,
|
|
17811
|
+
json: opts.json === true,
|
|
17812
|
+
location: "my",
|
|
17813
|
+
run: async ({ api, output, presenter }) => {
|
|
17814
|
+
const file = await api.copyOwnMessageExcerpt({
|
|
17815
|
+
spaceId: opts.space,
|
|
17816
|
+
body: {
|
|
17817
|
+
source: {
|
|
17818
|
+
spaceId: opts.sourceSpace,
|
|
17819
|
+
sourceSignalId: opts.signal,
|
|
17820
|
+
version: opts.version,
|
|
17821
|
+
authorProfileId: opts.author,
|
|
17822
|
+
start: Number(opts.start),
|
|
17823
|
+
end: Number(opts.end)
|
|
17824
|
+
},
|
|
17825
|
+
audienceProfileIds: opts.audience.split(",").map((id) => id.trim()),
|
|
17826
|
+
name: opts.name,
|
|
17827
|
+
parentId: folder(opts.folder),
|
|
17828
|
+
clientMutationId: opts.requestId
|
|
17829
|
+
}
|
|
17830
|
+
});
|
|
17831
|
+
output("files.excerpt_copied", {
|
|
17832
|
+
file,
|
|
17833
|
+
spaceId: opts.space
|
|
17834
|
+
}, () => presenter.line({
|
|
17835
|
+
code: "files.excerpt_copied",
|
|
17836
|
+
text: `Shared the selected excerpt as ${file.path}.`
|
|
17837
|
+
}));
|
|
17838
|
+
}
|
|
17839
|
+
});
|
|
17840
|
+
});
|
|
17841
|
+
});
|
|
17800
17842
|
files.command("list").description("List a Files location or folder.").requiredOption("--location <team|my>", "Team files or My files").option("--folder <id>", "Folder ID, or root", "root").option("--trash", "List Trash", false).option("--json", "Print canonical JSON", false).action(async (opts, command) => {
|
|
17801
17843
|
await runChecked(["files", "list"], async () => {
|
|
17802
17844
|
await withFiles({
|
|
@@ -24551,7 +24593,7 @@ function normalizeOptionalString(value) {
|
|
|
24551
24593
|
return normalized.length > 0 ? normalized : null;
|
|
24552
24594
|
}
|
|
24553
24595
|
async function runDefaultSpaceAddMeMembership(input) {
|
|
24554
|
-
const { runSpaceAddMeMembership } = await import("./add-me-membership-
|
|
24596
|
+
const { runSpaceAddMeMembership } = await import("./add-me-membership-JGpmeWkk.js");
|
|
24555
24597
|
return await runSpaceAddMeMembership(input);
|
|
24556
24598
|
}
|
|
24557
24599
|
//#endregion
|
|
@@ -28685,7 +28727,14 @@ async function runPluginCommand(input) {
|
|
|
28685
28727
|
});
|
|
28686
28728
|
const request = pluginActionRequestSchema.parse({
|
|
28687
28729
|
action: input.action,
|
|
28688
|
-
...
|
|
28730
|
+
...input.action.operation === "execute" ? {
|
|
28731
|
+
includeRecoveryReceipt: true,
|
|
28732
|
+
includeRequestAuthorization: true
|
|
28733
|
+
} : {},
|
|
28734
|
+
...dispatch ? {
|
|
28735
|
+
dispatchId: dispatch.dispatchId,
|
|
28736
|
+
executionTokenEcho: dispatch.executionTokenEcho
|
|
28737
|
+
} : {}
|
|
28689
28738
|
});
|
|
28690
28739
|
const response = await createPluginsApi(createCliApiClientFoundation(await resolveBaseUrl())).action({
|
|
28691
28740
|
organizationId: organization.id,
|
|
@@ -28698,9 +28747,18 @@ async function runPluginCommand(input) {
|
|
|
28698
28747
|
payload: response
|
|
28699
28748
|
});
|
|
28700
28749
|
else renderPluginResponse(response);
|
|
28701
|
-
if (response.kind === "execution" && (response.status === "failed" || response.status === "outcome_unknown")) process.exitCode = 1;
|
|
28750
|
+
if (response.kind === "authorization_required" || response.kind === "execution" && (response.status === "failed" || response.status === "outcome_unknown")) process.exitCode = 1;
|
|
28751
|
+
}
|
|
28752
|
+
function renderRequestAuthorization(response) {
|
|
28753
|
+
outLine(`Plugin request: ${response.request.state}`);
|
|
28754
|
+
if (response.request.state === "pending") outLine("Open your Inbox in OpenMeld and review “Confirm a Plugin action.” After approval, repeat this command with the same operation ID. No new operation has run.");
|
|
28755
|
+
else outLine("This request cannot authorize an operation. Open your Inbox to see its status. Only start a new request if the owner asks you to proceed.");
|
|
28702
28756
|
}
|
|
28703
28757
|
function renderPluginResponse(response) {
|
|
28758
|
+
if (response.kind === "authorization_required") {
|
|
28759
|
+
renderRequestAuthorization(response);
|
|
28760
|
+
return;
|
|
28761
|
+
}
|
|
28704
28762
|
if (response.kind === "connection_guidance") {
|
|
28705
28763
|
outLine(response.replyText);
|
|
28706
28764
|
outLine(response.message);
|
|
@@ -28724,9 +28782,12 @@ function renderPluginResponse(response) {
|
|
|
28724
28782
|
renderPluginExecution(response);
|
|
28725
28783
|
}
|
|
28726
28784
|
function renderPluginExecution(response) {
|
|
28727
|
-
outLine(`${response.status}${response.replayed ? " (
|
|
28785
|
+
outLine(`${response.status}${response.replayed ? " (original operation)" : ""} · ${response.operationId}`);
|
|
28728
28786
|
if (response.error) outLine(response.error);
|
|
28787
|
+
if (response.verificationOf) outLine(`Read evidence for ${response.verificationOf.operationId}; its recorded outcome remains ${response.verificationOf.status}. Compare the exact target and original input. Missing results, timeouts, or one page without a match do not prove failure.`);
|
|
28729
28788
|
if (response.data !== void 0) outLine(JSON.stringify(response.data, null, 2));
|
|
28789
|
+
if (response.replay?.allowed) outLine("One replay is permitted within the original 24-hour window. Keep this operation ID, account, and input, and add --replay. Then check the exact target with a read action.");
|
|
28790
|
+
else if (response.status === "outcome_unknown" || response.status === "pending") outLine("No write replay is permitted. Check the original target with a read action; a missing result does not prove the write failed.");
|
|
28730
28791
|
}
|
|
28731
28792
|
//#endregion
|
|
28732
28793
|
//#region src/plugins/registration.ts
|
|
@@ -28768,7 +28829,7 @@ function registerPluginCommands(program, options) {
|
|
|
28768
28829
|
view: options.view()
|
|
28769
28830
|
}));
|
|
28770
28831
|
});
|
|
28771
|
-
common(plugins.command("call <service> <action-id>").description("Run an action; reuse the operation ID only for the exact same request.")).addOption(new Option("--account <scope>", "Account identity to use.").choices(["personal", "shared"]).makeOptionMandatory()).requiredOption("--operation <id>", "Unique operation ID for this exact action.").option("--input <json>", "Action input as a JSON object.", "{}").option("--confirm <token>", "Confirmation returned for this exact action.").action(async (service, actionId, flags) => {
|
|
28832
|
+
common(plugins.command("call <service> <action-id>").description("Run an action; reuse the operation ID only for the exact same request.")).addOption(new Option("--account <scope>", "Account identity to use.").choices(["personal", "shared"]).makeOptionMandatory()).requiredOption("--operation <id>", "Unique operation ID for this exact action.").option("--input <json>", "Action input as a JSON object.", "{}").option("--confirm <token>", "Confirmation returned for this exact action.").option("--verify-operation <id>", "Link this read to an original operation without changing its outcome.").option("--verify-action <id>", "Original action ID for --verify-operation.").option("--replay", "Use the original operation's explicitly permitted, single replay.").action(async (service, actionId, flags) => {
|
|
28772
28833
|
const request = pluginActionRequestSchema.parse({ action: {
|
|
28773
28834
|
operation: "execute",
|
|
28774
28835
|
service,
|
|
@@ -28776,7 +28837,12 @@ function registerPluginCommands(program, options) {
|
|
|
28776
28837
|
account: flags.account,
|
|
28777
28838
|
operationId: flags.operation,
|
|
28778
28839
|
input: JSON.parse(flags.input),
|
|
28779
|
-
confirmationToken: flags.confirm
|
|
28840
|
+
confirmationToken: flags.confirm,
|
|
28841
|
+
replay: flags.replay,
|
|
28842
|
+
...flags.verifyOperation || flags.verifyAction ? { verificationOf: {
|
|
28843
|
+
operationId: flags.verifyOperation,
|
|
28844
|
+
actionId: flags.verifyAction
|
|
28845
|
+
} } : {}
|
|
28780
28846
|
} });
|
|
28781
28847
|
await options.run(["plugins", "call"], () => runPluginCommand({
|
|
28782
28848
|
action: request.action,
|
|
@@ -29535,7 +29601,7 @@ computerCmd.command("disconnect").description("Disconnect this computer from its
|
|
|
29535
29601
|
routeTokens: ["computer", "disconnect"],
|
|
29536
29602
|
view,
|
|
29537
29603
|
run: async () => {
|
|
29538
|
-
const { runComputerDisconnect } = await import("./computer-disconnect-
|
|
29604
|
+
const { runComputerDisconnect } = await import("./computer-disconnect-C6xJfCMA.js");
|
|
29539
29605
|
await runComputerDisconnect(computerConnectionIntentSchema.parse(JSON.parse(opts.connectionIntent)), view);
|
|
29540
29606
|
}
|
|
29541
29607
|
});
|
|
@@ -31813,7 +31879,7 @@ async function main() {
|
|
|
31813
31879
|
if (await runMacOsNativeKeychainHelperIfRequested()) return;
|
|
31814
31880
|
const argv = process.argv.map((arg) => arg === "--h" ? "--help" : arg);
|
|
31815
31881
|
if (argv.length === 5 && argv[2] === "computer" && argv[3] === "connection-review" && argv[4] === "--json") {
|
|
31816
|
-
const { readComputerConnectionReview } = await import("./computer-connection-review-
|
|
31882
|
+
const { readComputerConnectionReview } = await import("./computer-connection-review-DlPe08AU.js");
|
|
31817
31883
|
outLine(JSON.stringify(await readComputerConnectionReview()));
|
|
31818
31884
|
return;
|
|
31819
31885
|
}
|
|
@@ -31824,7 +31890,7 @@ async function main() {
|
|
|
31824
31890
|
return;
|
|
31825
31891
|
}
|
|
31826
31892
|
if (argv[3] === "control-capabilities") {
|
|
31827
|
-
const { readServiceControlCapabilities } = await import("./service-control-capabilities-
|
|
31893
|
+
const { readServiceControlCapabilities } = await import("./service-control-capabilities-CfKNg0x2.js");
|
|
31828
31894
|
emitCliJsonEnvelope({
|
|
31829
31895
|
schemaVersion: 1,
|
|
31830
31896
|
type: "service.control_capabilities",
|
|
@@ -32007,4 +32073,4 @@ main().catch((error) => {
|
|
|
32007
32073
|
//#endregion
|
|
32008
32074
|
export {};
|
|
32009
32075
|
|
|
32010
|
-
//# sourceMappingURL=openmeld-
|
|
32076
|
+
//# sourceMappingURL=openmeld-CAlNOxmA.js.map
|