@keystrokehq/cli 0.1.186 → 0.1.187

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/index.mjs CHANGED
@@ -40,7 +40,7 @@ process.emitWarning = ((warning, ...args) => {
40
40
  if ((type === "ExperimentalWarning" || /ExperimentalWarning/i.test(type)) && /SQLite/i.test(message)) return;
41
41
  return Reflect.apply(originalEmitWarning, process, [warning, ...args]);
42
42
  });
43
- const { runCli } = await import("./program-DJPdWAMn.mjs");
43
+ const { runCli } = await import("./program-Ds22KMCR.mjs");
44
44
  await runCli(process.argv);
45
45
  //#endregion
46
46
  export {};
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { S as resolveCliRoot, a as formatReleaseAgeBlockMessage, b as shouldUpdateCliVersion, i as readPnpmMinimumReleaseAgeMinutes, o as isReleaseAgeBlock, r as computeReleaseAgeRetryAfter, s as detectCliInstall, t as runPackageManagerUpdate, v as fetchLatestCliRelease, w as getCliConfigDir, x as readCliVersion, y as resolveCliDistTag } from "./run-package-manager-update-u6qgm6mh.mjs";
2
+ import { S as resolveCliRoot, a as formatReleaseAgeBlockMessage, b as shouldUpdateCliVersion, i as readPnpmMinimumReleaseAgeMinutes, o as isReleaseAgeBlock, r as computeReleaseAgeRetryAfter, s as detectCliInstall, t as runPackageManagerUpdate, v as fetchLatestCliRelease, w as getCliConfigDir, x as readCliVersion, y as resolveCliDistTag } from "./run-package-manager-update-1K9vGyE2.mjs";
3
3
  import { join } from "node:path";
4
4
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
5
5
  import { spawnSync } from "node:child_process";
@@ -141,4 +141,4 @@ async function maybeAutoUpdate(argv) {
141
141
  //#endregion
142
142
  export { maybeAutoUpdate };
143
143
 
144
- //# sourceMappingURL=maybe-auto-update-BWS4e3Fw.mjs.map
144
+ //# sourceMappingURL=maybe-auto-update-BgKZIuYh.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"maybe-auto-update-BWS4e3Fw.mjs","names":[],"sources":["../src/update/update-block-cache.ts","../src/update/maybe-auto-update.ts"],"sourcesContent":["import { existsSync, mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\n\nimport { getCliConfigDir } from \"../config\";\n\nexport type UpdateBlockCache = {\n registryLatest?: string;\n blockedUntil?: string;\n lastFailedAt?: string;\n};\n\nconst CACHE_FILE = \"update-check.json\";\nconst GENERIC_RETRY_MS = 24 * 60 * 60 * 1000;\n\nfunction cachePath(configDir = getCliConfigDir()): string {\n return join(configDir, CACHE_FILE);\n}\n\nexport function readUpdateBlockCache(configDir?: string): UpdateBlockCache {\n const path = cachePath(configDir);\n if (!existsSync(path)) {\n return {};\n }\n\n try {\n return JSON.parse(readFileSync(path, \"utf8\")) as UpdateBlockCache;\n } catch {\n return {};\n }\n}\n\nexport function writeUpdateBlockCache(cache: UpdateBlockCache, configDir?: string): void {\n const dir = configDir ?? getCliConfigDir();\n mkdirSync(dir, { recursive: true });\n writeFileSync(cachePath(dir), `${JSON.stringify(cache, null, 2)}\\n`, \"utf8\");\n}\n\nexport function shouldSkipCachedUpdate(\n cache: UpdateBlockCache,\n registryLatest: string,\n now = Date.now(),\n): boolean {\n if (cache.registryLatest !== registryLatest) {\n return false;\n }\n\n if (cache.blockedUntil) {\n const blockedUntilMs = Date.parse(cache.blockedUntil);\n if (Number.isFinite(blockedUntilMs) && blockedUntilMs > now) {\n return true;\n }\n }\n\n if (cache.lastFailedAt) {\n const lastFailedMs = Date.parse(cache.lastFailedAt);\n if (Number.isFinite(lastFailedMs) && now - lastFailedMs < GENERIC_RETRY_MS) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function clearUpdateBlockCache(configDir?: string): void {\n writeUpdateBlockCache({}, configDir);\n}\n\nexport function recordReleaseAgeBlock(options: {\n registryLatest: string;\n retryAfter?: Date;\n configDir?: string;\n}): void {\n writeUpdateBlockCache(\n {\n registryLatest: options.registryLatest,\n blockedUntil: options.retryAfter?.toISOString(),\n },\n options.configDir,\n );\n}\n\nexport function recordGenericUpdateFailure(registryLatest: string, configDir?: string): void {\n writeUpdateBlockCache(\n {\n registryLatest,\n lastFailedAt: new Date().toISOString(),\n },\n configDir,\n );\n}\n","import { spawnSync } from \"node:child_process\";\n\nimport { resolveCliRoot } from \"../project/resolve-cli-root\";\nimport { readCliVersion } from \"../version\";\nimport { shouldUpdateCliVersion } from \"./compare-version\";\nimport { detectCliInstall } from \"./detect-cli-install\";\nimport { formatReleaseAgeBlockMessage, isReleaseAgeBlock } from \"./detect-release-age-block\";\nimport { fetchLatestCliRelease } from \"./fetch-latest-version\";\nimport {\n computeReleaseAgeRetryAfter,\n readPnpmMinimumReleaseAgeMinutes,\n} from \"./read-pnpm-release-age-minutes\";\nimport { resolveCliDistTag } from \"./resolve-cli-dist-tag\";\nimport { runPackageManagerUpdate } from \"./run-package-manager-update\";\nimport {\n clearUpdateBlockCache,\n readUpdateBlockCache,\n recordGenericUpdateFailure,\n recordReleaseAgeBlock,\n shouldSkipCachedUpdate,\n} from \"./update-block-cache\";\n\nfunction isTopLevelUpdateCommand(args: string[]): boolean {\n const valueFlags = new Set([\"--project\", \"--organization\", \"--dir\"]);\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (arg === undefined) {\n return false;\n }\n\n if (arg === \"--\") {\n return args[i + 1] === \"update\";\n }\n\n if (arg.startsWith(\"-\")) {\n if (\n arg === \"-h\" ||\n arg === \"--help\" ||\n arg === \"-V\" ||\n arg === \"--version\" ||\n arg.startsWith(\"-V\")\n ) {\n continue;\n }\n\n if (arg.includes(\"=\")) {\n continue;\n }\n\n if (valueFlags.has(arg) || arg.startsWith(\"--\")) {\n i++;\n }\n continue;\n }\n\n return arg === \"update\";\n }\n\n return false;\n}\n\nfunction shouldSkipAutoUpdate(argv: string[]): boolean {\n if (\n process.env.KEYSTROKE_DEV ||\n process.env.KEYSTROKE_SKIP_UPDATE ||\n process.env.KEYSTROKE_UPDATING\n ) {\n return true;\n }\n\n if (process.env.CI === \"true\" || process.env.CI === \"1\") {\n return true;\n }\n\n const args = argv.slice(2);\n if (args.length === 0) {\n return false;\n }\n\n // Explicit `keystroke update` owns CLI + project package updates.\n if (isTopLevelUpdateCommand(args)) {\n return true;\n }\n\n return args.every(\n (arg) =>\n arg === \"-V\" ||\n arg === \"--version\" ||\n arg === \"-h\" ||\n arg === \"--help\" ||\n arg.startsWith(\"-V\"),\n );\n}\n\nfunction reexecCli(argv: string[]): never {\n const result = spawnSync(process.execPath, argv.slice(1), {\n stdio: \"inherit\",\n env: {\n ...process.env,\n KEYSTROKE_UPDATING: \"1\",\n },\n });\n\n process.exit(result.status ?? 1);\n}\n\nfunction releaseAgeRetryAfter(\n install: NonNullable<ReturnType<typeof detectCliInstall>>,\n publishedAt: string | undefined,\n): Date | undefined {\n if (install.packageManager !== \"pnpm\") {\n return undefined;\n }\n\n return computeReleaseAgeRetryAfter(publishedAt, readPnpmMinimumReleaseAgeMinutes());\n}\n\nexport async function maybeAutoUpdate(argv: string[]): Promise<void> {\n if (shouldSkipAutoUpdate(argv)) {\n return;\n }\n\n const install = detectCliInstall(resolveCliRoot(import.meta.url));\n if (!install || (install.kind === \"local\" && !install.projectRoot)) {\n return;\n }\n\n const currentVersion = readCliVersion();\n const distTag = resolveCliDistTag();\n const release = await fetchLatestCliRelease(distTag);\n\n if (\n !release ||\n !shouldUpdateCliVersion({\n registryVersion: release.version,\n currentVersion,\n distTag,\n })\n ) {\n clearUpdateBlockCache();\n return;\n }\n\n const cache = readUpdateBlockCache();\n if (shouldSkipCachedUpdate(cache, release.version)) {\n return;\n }\n\n process.stderr.write(\n `Updating @keystrokehq/cli ${currentVersion} -> ${release.version} (@${distTag}) via ${install.packageManager}...\\n`,\n );\n\n const result = runPackageManagerUpdate(install, distTag);\n const installedVersion = readCliVersion();\n\n if (installedVersion.trim() !== currentVersion.trim()) {\n clearUpdateBlockCache();\n process.stderr.write(`Updated @keystrokehq/cli ${currentVersion} -> ${installedVersion}.\\n`);\n reexecCli(argv);\n }\n\n if (result.ok) {\n clearUpdateBlockCache();\n return;\n }\n\n if (isReleaseAgeBlock(result.output)) {\n const retryAfter = releaseAgeRetryAfter(install, release.publishedAt);\n recordReleaseAgeBlock({\n registryLatest: release.version,\n retryAfter,\n });\n process.stderr.write(\n `${formatReleaseAgeBlockMessage({\n currentVersion,\n availableVersion: release.version,\n retryAfter,\n })}\\n`,\n );\n return;\n }\n\n recordGenericUpdateFailure(release.version);\n process.stderr.write(\"Auto-update failed; continuing with the current version.\\n\");\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"maybe-auto-update-BgKZIuYh.mjs","names":[],"sources":["../src/update/update-block-cache.ts","../src/update/maybe-auto-update.ts"],"sourcesContent":["import { existsSync, mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\n\nimport { getCliConfigDir } from \"../config\";\n\nexport type UpdateBlockCache = {\n registryLatest?: string;\n blockedUntil?: string;\n lastFailedAt?: string;\n};\n\nconst CACHE_FILE = \"update-check.json\";\nconst GENERIC_RETRY_MS = 24 * 60 * 60 * 1000;\n\nfunction cachePath(configDir = getCliConfigDir()): string {\n return join(configDir, CACHE_FILE);\n}\n\nexport function readUpdateBlockCache(configDir?: string): UpdateBlockCache {\n const path = cachePath(configDir);\n if (!existsSync(path)) {\n return {};\n }\n\n try {\n return JSON.parse(readFileSync(path, \"utf8\")) as UpdateBlockCache;\n } catch {\n return {};\n }\n}\n\nexport function writeUpdateBlockCache(cache: UpdateBlockCache, configDir?: string): void {\n const dir = configDir ?? getCliConfigDir();\n mkdirSync(dir, { recursive: true });\n writeFileSync(cachePath(dir), `${JSON.stringify(cache, null, 2)}\\n`, \"utf8\");\n}\n\nexport function shouldSkipCachedUpdate(\n cache: UpdateBlockCache,\n registryLatest: string,\n now = Date.now(),\n): boolean {\n if (cache.registryLatest !== registryLatest) {\n return false;\n }\n\n if (cache.blockedUntil) {\n const blockedUntilMs = Date.parse(cache.blockedUntil);\n if (Number.isFinite(blockedUntilMs) && blockedUntilMs > now) {\n return true;\n }\n }\n\n if (cache.lastFailedAt) {\n const lastFailedMs = Date.parse(cache.lastFailedAt);\n if (Number.isFinite(lastFailedMs) && now - lastFailedMs < GENERIC_RETRY_MS) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function clearUpdateBlockCache(configDir?: string): void {\n writeUpdateBlockCache({}, configDir);\n}\n\nexport function recordReleaseAgeBlock(options: {\n registryLatest: string;\n retryAfter?: Date;\n configDir?: string;\n}): void {\n writeUpdateBlockCache(\n {\n registryLatest: options.registryLatest,\n blockedUntil: options.retryAfter?.toISOString(),\n },\n options.configDir,\n );\n}\n\nexport function recordGenericUpdateFailure(registryLatest: string, configDir?: string): void {\n writeUpdateBlockCache(\n {\n registryLatest,\n lastFailedAt: new Date().toISOString(),\n },\n configDir,\n );\n}\n","import { spawnSync } from \"node:child_process\";\n\nimport { resolveCliRoot } from \"../project/resolve-cli-root\";\nimport { readCliVersion } from \"../version\";\nimport { shouldUpdateCliVersion } from \"./compare-version\";\nimport { detectCliInstall } from \"./detect-cli-install\";\nimport { formatReleaseAgeBlockMessage, isReleaseAgeBlock } from \"./detect-release-age-block\";\nimport { fetchLatestCliRelease } from \"./fetch-latest-version\";\nimport {\n computeReleaseAgeRetryAfter,\n readPnpmMinimumReleaseAgeMinutes,\n} from \"./read-pnpm-release-age-minutes\";\nimport { resolveCliDistTag } from \"./resolve-cli-dist-tag\";\nimport { runPackageManagerUpdate } from \"./run-package-manager-update\";\nimport {\n clearUpdateBlockCache,\n readUpdateBlockCache,\n recordGenericUpdateFailure,\n recordReleaseAgeBlock,\n shouldSkipCachedUpdate,\n} from \"./update-block-cache\";\n\nfunction isTopLevelUpdateCommand(args: string[]): boolean {\n const valueFlags = new Set([\"--project\", \"--organization\", \"--dir\"]);\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (arg === undefined) {\n return false;\n }\n\n if (arg === \"--\") {\n return args[i + 1] === \"update\";\n }\n\n if (arg.startsWith(\"-\")) {\n if (\n arg === \"-h\" ||\n arg === \"--help\" ||\n arg === \"-V\" ||\n arg === \"--version\" ||\n arg.startsWith(\"-V\")\n ) {\n continue;\n }\n\n if (arg.includes(\"=\")) {\n continue;\n }\n\n if (valueFlags.has(arg) || arg.startsWith(\"--\")) {\n i++;\n }\n continue;\n }\n\n return arg === \"update\";\n }\n\n return false;\n}\n\nfunction shouldSkipAutoUpdate(argv: string[]): boolean {\n if (\n process.env.KEYSTROKE_DEV ||\n process.env.KEYSTROKE_SKIP_UPDATE ||\n process.env.KEYSTROKE_UPDATING\n ) {\n return true;\n }\n\n if (process.env.CI === \"true\" || process.env.CI === \"1\") {\n return true;\n }\n\n const args = argv.slice(2);\n if (args.length === 0) {\n return false;\n }\n\n // Explicit `keystroke update` owns CLI + project package updates.\n if (isTopLevelUpdateCommand(args)) {\n return true;\n }\n\n return args.every(\n (arg) =>\n arg === \"-V\" ||\n arg === \"--version\" ||\n arg === \"-h\" ||\n arg === \"--help\" ||\n arg.startsWith(\"-V\"),\n );\n}\n\nfunction reexecCli(argv: string[]): never {\n const result = spawnSync(process.execPath, argv.slice(1), {\n stdio: \"inherit\",\n env: {\n ...process.env,\n KEYSTROKE_UPDATING: \"1\",\n },\n });\n\n process.exit(result.status ?? 1);\n}\n\nfunction releaseAgeRetryAfter(\n install: NonNullable<ReturnType<typeof detectCliInstall>>,\n publishedAt: string | undefined,\n): Date | undefined {\n if (install.packageManager !== \"pnpm\") {\n return undefined;\n }\n\n return computeReleaseAgeRetryAfter(publishedAt, readPnpmMinimumReleaseAgeMinutes());\n}\n\nexport async function maybeAutoUpdate(argv: string[]): Promise<void> {\n if (shouldSkipAutoUpdate(argv)) {\n return;\n }\n\n const install = detectCliInstall(resolveCliRoot(import.meta.url));\n if (!install || (install.kind === \"local\" && !install.projectRoot)) {\n return;\n }\n\n const currentVersion = readCliVersion();\n const distTag = resolveCliDistTag();\n const release = await fetchLatestCliRelease(distTag);\n\n if (\n !release ||\n !shouldUpdateCliVersion({\n registryVersion: release.version,\n currentVersion,\n distTag,\n })\n ) {\n clearUpdateBlockCache();\n return;\n }\n\n const cache = readUpdateBlockCache();\n if (shouldSkipCachedUpdate(cache, release.version)) {\n return;\n }\n\n process.stderr.write(\n `Updating @keystrokehq/cli ${currentVersion} -> ${release.version} (@${distTag}) via ${install.packageManager}...\\n`,\n );\n\n const result = runPackageManagerUpdate(install, distTag);\n const installedVersion = readCliVersion();\n\n if (installedVersion.trim() !== currentVersion.trim()) {\n clearUpdateBlockCache();\n process.stderr.write(`Updated @keystrokehq/cli ${currentVersion} -> ${installedVersion}.\\n`);\n reexecCli(argv);\n }\n\n if (result.ok) {\n clearUpdateBlockCache();\n return;\n }\n\n if (isReleaseAgeBlock(result.output)) {\n const retryAfter = releaseAgeRetryAfter(install, release.publishedAt);\n recordReleaseAgeBlock({\n registryLatest: release.version,\n retryAfter,\n });\n process.stderr.write(\n `${formatReleaseAgeBlockMessage({\n currentVersion,\n availableVersion: release.version,\n retryAfter,\n })}\\n`,\n );\n return;\n }\n\n recordGenericUpdateFailure(release.version);\n process.stderr.write(\"Auto-update failed; continuing with the current version.\\n\");\n}\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import { A as resolvePlatformUrlForWebUrl, C as createCliConfig, D as getWebUrl, E as getPlatformUrl, M as ExpectedCliError, N as isExpectedCliError, O as DEFAULT_PLATFORM_URL, S as resolveCliRoot, T as getCredentialStorage, _ as isLocalSdkSpec, a as formatReleaseAgeBlockMessage, b as shouldUpdateCliVersion, c as detectManagerFromLockfile, d as installDependencies$1, f as installPlaygroundDependencies, g as ensureSdkCurrent, i as readPnpmMinimumReleaseAgeMinutes, j as parseCredentialStorage, l as buildPlaygroundWorkspace, m as resolvePackageManager, n as ensureMinimumReleaseAgeExclude, o as isReleaseAgeBlock, p as resolveGithubPackagesToken, r as computeReleaseAgeRetryAfter, s as detectCliInstall, t as runPackageManagerUpdate, u as detectPackageManager$2, v as fetchLatestCliRelease, w as getCliConfigDir, x as readCliVersion, y as resolveCliDistTag } from "./run-package-manager-update-u6qgm6mh.mjs";
3
- import { $ as CreateOrganizationResponseSchema, $i as parseAppSlug, $n as PresignProjectSourceResponseSchema, $r as TriggerRunListResponseSchema, $t as ListBrainDocumentsResponseSchema, A as ChannelConnectionListResponseSchema, Aa as BillingSummaryResponseSchema, Ai as WorkflowRunInputsPutBodySchema, An as PROJECT_DRAFT_COMMIT_REQUEST_TIMEOUT_MS, Ar as SkillSummaryListResponseSchema, At as GetAppCatalogEntryResponseSchema, B as CreateApiKeyRequestSchema, Bi as WorkspaceTriggerRunListResponseSchema, Bn as PlatformAgentPromptInputSchema, Br as StartMcpOAuthConnectionInputSchema, Bt as HistoryRunListQuerySchema, C as CancelManagedDeployRequestSchema, Ca as PresignChatAttachmentRequestSchema, Ci as WorkflowCanvasCredentialBindingsSchema, Cn as ManagedServiceCredentialSchema, Cr as RecentResourceListResponseSchema, Ct as DuplicateCredentialsResponseSchema, D as CatalogAppDetailResponseSchema, Da as BillingActivityResponseSchema, Di as WorkflowFormUpsertBodySchema, Dn as OrganizationSidebarBrandingPatchSchema, Dr as SLACK_PERSONAL_APP_SLUG, Dt as FinalizeCustomAppLogoResponseSchema, E as CatalogActionsPageResponseSchema, Ea as AutoTopupSummarySchema, Ei as WorkflowFormResponseSchema, En as OpenApiDiscoverResponseSchema, Et as FinalizeCustomAppLogoRequestSchema, F as CompleteProjectArtifactRequestSchema, Fa as CreateCreditsCheckoutRequestSchema, Fi as WorkflowSummaryListResponseSchema, Fr as SlackAppManifestResponseSchema, Ft as HealthResponseSchema, G as CreateCredentialInstanceBodySchema, Gi as detectProjectPackageManagerFromSnapshot, Gn as PrepareBrainUploadsResponseSchema, Gr as SubmitMarketingContactRequestSchema, Gt as InviteProjectMembersResponseSchema, H as CreateBrainFilterRequestSchema, Hi as buildAgentSlackDeeplink, Hn as PlatformAgentSessionDetailResponseSchema, Hr as StartOAuthConnectionInputSchema, Ht as InviteOrganizationMembersRequestSchema, I as CompleteProjectArtifactResponseSchema, Ia as CreateSubscriptionCheckoutRequestSchema, Ii as WorkspaceTriggerDetailSchema, Ir as SlackMembershipChannelBodySchema, It as HeartbeatManagedDeployRequestSchema, J as CreateCustomAppRequestSchema, Jn as PresignCustomAppLogoRequestSchema, Jr as TriggerDetailResponseSchema, Jt as ListApiKeysResponseSchema, K as CreateCredentialsRequestSchema, Ki as gitPorcelainLineTouchesManagedDraftPublishPath, Kn as PrepareManagedDeployRequestSchema, Kr as SubmitTeamRequestRequestSchema, Kt as ListAgentMemoryFilesResponseSchema, L as ConnectAuthorizeUrlResponseSchema, La as UpdateAutoTopupRequestSchema, Li as WorkspaceTriggerFileSchema, Lr as SlugAvailabilityResponseSchema, Lt as HeartbeatManagedDeployResponseSchema, M as ChannelDirectoryListResponseSchema, Ma as ConfirmCheckoutRequestSchema, Mi as WorkflowRunListResponseSchema, Mr as SlackAppInstallStartResponseSchema, Mt as GetCustomAppResponseSchema, N as CompleteManagedDeployArtifactRequestSchema, Na as ConfirmCheckoutResponseSchema, Ni as WorkflowRunResponseSchema, Nn as PROJECT_PULL_STATE_RELATIVE_PATH, Nr as SlackAppListResponseSchema, Nt as GetTemplateResponseSchema, O as CatalogAppsPageResponseSchema, Oa as BillingInvoiceUrlResponseSchema, Oi as WorkflowRunDetailResponseSchema, On as OrganizationSidebarBrandingSchema, Ot as FormFieldConfigSchema, P as CompleteManagedDeployArtifactResponseSchema, Pa as CreateBillingPortalRequestSchema, Pi as WorkflowSummaryDetailResponseSchema, Pn as PROJECT_REACHABILITY_REQUEST_TIMEOUT_MS, Pr as SlackAppManifestRequestSchema, Pt as GraphqlDiscoverResponseSchema, Q as CreateOrganizationRequestSchema, Qn as PresignProjectSourceRequestSchema, Qr as TriggerRunDetailResponseSchema, Qt as ListBrainDocumentsQuerySchema, R as ConnectManagedServiceCredentialRequestSchema, Ri as WorkspaceTriggerListResponseSchema, Rr as StartKeystrokeConnectionInputSchema, Rt as HistoryRunCancelResponseSchema, S as BrainSlugAvailabilityResponseSchema, Sa as CLIENT_CHANNEL_HEADER, Si as UserPreferencesSchema, Sn as ManagedDeployResourceKeySchema, Sr as RebuildBrainResponseSchema, St as DuplicateCredentialRequestSchema, T as CatalogActionDetailResponseSchema, Ti as WorkflowCanvasSchema, Tn as McpDiscoverResponseSchema, Tr as RenewManagedDeployUploadResponseSchema, Tt as FinalizeBrainUploadsResponseSchema, U as CreateBrainGrantRequestSchema, Ui as buildConnectDeeplink, Un as PlatformAgentSessionListResponseSchema, Ur as StartOAuthConnectionResultSchema, Ut as InviteOrganizationMembersResponseSchema, V as CreateApiKeyResponseSchema, Vi as WorkspaceWorkflowOverviewSchema, Vn as PlatformAgentPromptResponseSchema, Vr as StartMcpOAuthConnectionResultSchema, Vt as HistoryRunListResponseSchema, W as CreateBrainRequestSchema, Wi as deriveCustomAppDisplay, Wn as PrepareBrainUploadsRequestSchema, Wr as SubmitAgentFeedbackRequestSchema, Wt as InviteProjectMembersRequestSchema, X as CreateDraftCommitRequestSchema, Xn as PresignOrgLogoRequestSchema, Xr as TriggerInvokeResponseSchema, Xt as ListBrainDocumentWritesQuerySchema, Y as CreateCustomAppResponseSchema, Yi as isIgnoredProjectSourcePath, Yn as PresignCustomAppLogoResponseSchema, Yr as TriggerInvokeInputsSchema, Yt as ListAppsResponseSchema, Z as CreateDraftDiffCommitRequestSchema, Zi as normalizeDocsSearchPaths, Zn as PresignOrgLogoResponseSchema, Zr as TriggerListResponseSchema, Zt as ListBrainDocumentWritesResponseSchema, _ as BrainFilterExpressionSchema, _i as UploadProjectSourceResponseSchema, _n as ListProjectMembersResponseSchema, _r as PublishManagedDeployCandidateResponseSchema, _t as DraftCommitResponseSchema, a as AgentEnvImageSnapshotResponseSchema, aa as resolveDocsMcpUrl, ai as UpdateChannelBindingBodySchema, an as ListCredentialsPageQuerySchema, ar as ProjectGitStatusResponseSchema, at as CreateSlackAppResponseSchema, b as BrainIndexConfigSchema, bi as UserAvatarSchema, bn as ListTemplatesResponseSchema, br as QueuedAgentPromptResponseSchema, bt as DraftRevisionResponseSchema, c as AgentSummaryDetailResponseSchema, ca as AssignCredentialBodySchema, ci as UpdateManagedServiceCredentialRequestSchema, cn as ListEmbeddingModelsResponseSchema, cr as ProjectResponseSchema, ct as CredentialInstanceListResponseSchema, d as AppSlugAvailabilityResponseSchema, da as CredentialAssignmentRecordSchema, di as UpdateOrganizationRequestSchema, dn as ListOrganizationInvitationsResponseSchema, dr as PromptInputSchema, dt as DOCS_SEARCH_TOOL, ea as parseErrorResponse, ei as UpdateBrainDocumentMetadataRequestSchema, en as ListBrainFiltersResponseSchema, er as PresignUserAvatarRequestSchema, et as CreateProjectArtifactRequestSchema, f as BindAgentSlackAppBodySchema, fa as CredentialConsumerListQuerySchema, fi as UpdateProjectMemberRequestSchema, fn as ListOrganizationMembersPageQuerySchema, fr as PromptResponseSchema, ft as DeclineOrganizationInvitationResponseSchema, gi as UploadProjectSourceManifestRequestSchema, gn as ListProjectFilesResponseSchema, gr as PublishManagedDeployCandidateRequestSchema, gt as DownloadActiveProjectSourceResponseSchema, h as BrainDocumentDetailSchema, hi as UpdateProjectSettingsRequestSchema, hn as ListProjectDeploymentsResponseSchema, hr as PublicFormSubmitResponseSchema, ht as DownloadActiveProjectArtifactResponseSchema, i as AddBrainMemberRequestSchema, ia as resolveConnectAppSlug, ii as UpdateBrainResponseSchema, in as ListChannelPlatformsResponseSchema, ir as ProjectGitRemoteResponseSchema, it as CreateSlackAppRequestSchema, j as ChannelConnectionSchema, ja as BillingUsageResponseSchema, ji as WorkflowRunInputsSchema, jn as PROJECT_DRAFT_DIFF_MAX_BYTES, jr as SlackAgentMembershipsResponseSchema, jt as GetCredentialResponseSchema, k as ChannelAccountListResponseSchema, ka as BillingRedirectResponseSchema, ki as WorkflowRunHooksResponseSchema, kn as PNPM_FROZEN_INSTALL_ARGS, kr as SkillSummaryDetailResponseSchema, kt as GatewayAttachmentRecordSchema, l as AgentSummaryListResponseSchema, la as CredentialAssignmentListQuerySchema, li as UpdateOrganizationMemberRequestSchema, ln as ListManagedServiceCredentialsResponseSchema, lr as ProjectSettingsResponseSchema, lt as CredentialInstanceRecordSchema, m as BrainDetailSchema, ma as ExecuteKeystrokeToolRequestSchema, mi as UpdateProjectRequestSchema, mn as ListOrganizationsResponseSchema, mr as PublicFormSubmitBodySchema, mt as DeleteBrainDocumentsResponseSchema, n as ActiveOrganizationResponseSchema, na as parseSlackConnectFlow, ni as UpdateBrainMemberRequestSchema, nn as ListBrainMembersResponseSchema, nt as CreateProjectRequestSchema, o as AgentSessionDetailResponseSchema, oa as slugifyAppName, oi as UpdateCredentialInstanceBodySchema, on as ListCredentialsPageResponseSchema, or as ProjectPullStateSchema, ot as CreateSlackChannelBodySchema, p as BindChannelBodySchema, pa as CredentialConsumerListResponseSchema, pi as UpdateProjectMemberResponseSchema, pn as ListOrganizationMembersPageResponseSchema, pr as PublicFormMetadataSchema, pt as DeleteBrainDocumentsRequestSchema, q as CreateCredentialsResponseSchema, qi as isAcceptableInstallExit, qn as PrepareManagedDeployResponseSchema, qr as TemplateFilesResponseSchema, qt as ListAgentWorkspaceFilesResponseSchema, r as ActiveProjectSourceRevisionSchema, ri as UpdateBrainRequestSchema, rn as ListBrainsResponseSchema, rr as ProjectGitRemoteRequestSchema, rt as CreateProjectResponseSchema, s as AgentSessionListResponseSchema, si as UpdateCredentialRequestSchema, sn as ListDraftFilesResponseSchema, sr as ProjectReachabilityResponseSchema, st as CreateSlackChannelResponseSchema, t as AcceptOrganizationInvitationResponseSchema, ti as UpdateBrainFilterRequestSchema, tn as ListBrainGrantsResponseSchema, tr as PresignUserAvatarResponseSchema, tt as CreateProjectArtifactResponseSchema, u as AgentTriggerSummaryListResponseSchema, ua as CredentialAssignmentListResponseSchema, ui as UpdateOrganizationMemberResponseSchema, un as ListMcpAppToolsResponseSchema, ur as ProjectSlugAvailabilityResponseSchema, ut as DOCS_QUERY_TOOL, v as BrainFilterSummarySchema, vi as UpsertGatewayAttachmentBodySchema, vn as ListProjectMetricsResponseSchema, vr as PublishedFormListResponseSchema, vt as DraftConflictResponseSchema, w as CancelManagedDeployResponseSchema, wa as PresignChatAttachmentResponseSchema, wi as WorkflowCanvasRunSchema, wn as ManagedServiceKindSchema, wr as RenewManagedDeployUploadRequestSchema, wt as FinalizeBrainUploadsRequestSchema, x as BrainMemberSchema, xa as ACTIVE_ORG_HEADER, xi as UserPreferencesPatchSchema, xn as MANAGED_DEPLOY_REQUEST_TIMEOUT_MS, xr as QueuedRunResponseSchema, xt as DraftUpdateEventSchema, y as BrainGrantSchema, yi as UserAvatarPatchSchema, yn as ListProjectsResponseSchema, yr as PublishedFormSchema, yt as DraftFileContentResponseSchema, z as ConnectProvidersResponseSchema, zi as WorkspaceTriggerOverviewSchema, zn as PlatformAgentCancelResponseSchema, zr as StartKeystrokeConnectionResultSchema, zt as HistoryRunDetailResponseSchema } from "./dist-BHaxjUlc.mjs";
4
- import { $ as withMcpReadClient, Ct as stopBrowserUseSession, Dt as event, Et as configureTelemetry, Ot as flushTelemetry, Q as assertPublicHttpUrl, St as runAgentBrowser, Tt as captureException, Z as PublicHttpUrlError, _t as defaultBrowserProfilesRoot, bt as resolveBrowserContext, et as artifactIndexFromModules, gt as agentBrowserProfilePath, kt as shutdownTelemetry, nt as moduleBlobRefsFromModules, rt as mapInParallelBatches, tt as collectArtifactModules, vt as deleteBrowserUseProfile, wt as alias, xt as resolveBrowserProvider, yt as openCloudBrowserLogin } from "./dist-aGL2P8SI.mjs";
5
- import { a as buildApp, c as computeSafeFilteredDeploy, r as analyzeDeployableClosures, t as ANALYZER_CONTRACT_VERSION } from "./dist-YUSum_U6.mjs";
2
+ import { A as resolvePlatformUrlForWebUrl, C as createCliConfig, D as getWebUrl, E as getPlatformUrl, M as ExpectedCliError, N as isExpectedCliError, O as DEFAULT_PLATFORM_URL, S as resolveCliRoot, T as getCredentialStorage, _ as isLocalSdkSpec, a as formatReleaseAgeBlockMessage, b as shouldUpdateCliVersion, c as detectManagerFromLockfile, d as installDependencies$1, f as installPlaygroundDependencies, g as ensureSdkCurrent, i as readPnpmMinimumReleaseAgeMinutes, j as parseCredentialStorage, l as buildPlaygroundWorkspace, m as resolvePackageManager, n as ensureMinimumReleaseAgeExclude, o as isReleaseAgeBlock, p as resolveGithubPackagesToken, r as computeReleaseAgeRetryAfter, s as detectCliInstall, t as runPackageManagerUpdate, u as detectPackageManager$2, v as fetchLatestCliRelease, w as getCliConfigDir, x as readCliVersion, y as resolveCliDistTag } from "./run-package-manager-update-1K9vGyE2.mjs";
3
+ import { $ as CreateDraftCommitRequestSchema, $n as PresignOrgLogoRequestSchema, $r as TriggerInvokeResponseSchema, $t as ListBrainDocumentWritesQuerySchema, A as CatalogAppDetailResponseSchema, Aa as BillingActivityResponseSchema, Ai as WorkflowFormUpsertBodySchema, An as OrganizationSidebarBrandingPatchSchema, Ar as SLACK_PERSONAL_APP_SLUG, At as FinalizeCustomAppLogoResponseSchema, B as ConnectAuthorizeUrlResponseSchema, Ba as UpdateAutoTopupRequestSchema, Bi as WorkspaceTriggerFileSchema, Br as SlugAvailabilityResponseSchema, Bt as HeartbeatManagedDeployResponseSchema, C as BrainIndexConfigSchema, Ci as UserAvatarSchema, Cn as ListTemplatesResponseSchema, Cr as QueuedAgentPromptResponseSchema, Ct as DraftRevisionResponseSchema, D as CancelManagedDeployResponseSchema, Da as PresignChatAttachmentResponseSchema, Di as WorkflowCanvasRunSchema, Dn as ManagedServiceKindSchema, Dr as RenewManagedDeployUploadRequestSchema, Dt as FinalizeBrainUploadsRequestSchema, E as CancelManagedDeployRequestSchema, Ea as PresignChatAttachmentRequestSchema, Ei as WorkflowCanvasCredentialBindingsSchema, En as ManagedServiceCredentialSchema, Er as RecentResourceListResponseSchema, Et as DuplicateCredentialsResponseSchema, F as ChannelDirectoryListResponseSchema, Fa as ConfirmCheckoutRequestSchema, Fi as WorkflowRunListResponseSchema, Fr as SlackAppInstallStartResponseSchema, Ft as GetCustomAppResponseSchema, G as CreateBrainFilterRequestSchema, Gi as buildAgentSlackDeeplink, Gn as PlatformAgentSessionDetailResponseSchema, Gr as StartOAuthConnectionInputSchema, Gt as InviteOrganizationMembersRequestSchema, H as ConnectProvidersResponseSchema, Hi as WorkspaceTriggerOverviewSchema, Hn as PlatformAgentCancelResponseSchema, Hr as StartKeystrokeConnectionResultSchema, Ht as HistoryRunDetailResponseSchema, I as CompleteManagedDeployArtifactRequestSchema, Ia as ConfirmCheckoutResponseSchema, Ii as WorkflowRunResponseSchema, In as PROJECT_PULL_STATE_RELATIVE_PATH, Ir as SlackAppListResponseSchema, It as GetTemplateResponseSchema, J as CreateCredentialInstanceBodySchema, Ji as detectProjectPackageManagerFromSnapshot, Jn as PrepareBrainUploadsResponseSchema, Jr as SubmitMarketingContactRequestSchema, Jt as InviteProjectMembersResponseSchema, K as CreateBrainGrantRequestSchema, Ki as buildConnectDeeplink, Kn as PlatformAgentSessionListResponseSchema, Kr as StartOAuthConnectionResultSchema, Kt as InviteOrganizationMembersResponseSchema, L as CompleteManagedDeployArtifactResponseSchema, La as CreateBillingPortalRequestSchema, Li as WorkflowSummaryDetailResponseSchema, Ln as PROJECT_REACHABILITY_REQUEST_TIMEOUT_MS, Lr as SlackAppManifestRequestSchema, Lt as GraphqlDiscoverResponseSchema, M as ChannelAccountListResponseSchema, Ma as BillingRedirectResponseSchema, Mi as WorkflowRunHooksResponseSchema, Mn as PNPM_FROZEN_INSTALL_ARGS, Mr as SkillSummaryDetailResponseSchema, Mt as GatewayAttachmentRecordSchema, N as ChannelConnectionListResponseSchema, Na as BillingSummaryResponseSchema, Ni as WorkflowRunInputsPutBodySchema, Nn as PROJECT_DRAFT_COMMIT_REQUEST_TIMEOUT_MS, Nr as SkillSummaryListResponseSchema, Nt as GetAppCatalogEntryResponseSchema, O as CatalogActionDetailResponseSchema, Oi as WorkflowCanvasSchema, On as McpDiscoverResponseSchema, Or as RenewManagedDeployUploadResponseSchema, Ot as FinalizeBrainUploadsResponseSchema, P as ChannelConnectionSchema, Pa as BillingUsageResponseSchema, Pi as WorkflowRunInputsSchema, Pn as PROJECT_DRAFT_DIFF_MAX_BYTES, Pr as SlackAgentMembershipsResponseSchema, Pt as GetCredentialResponseSchema, Q as CreateCustomAppResponseSchema, Qi as isIgnoredProjectSourcePath, Qn as PresignCustomAppLogoResponseSchema, Qr as TriggerInvokeInputsSchema, Qt as ListAppsResponseSchema, R as CompleteProjectArtifactRequestSchema, Ra as CreateCreditsCheckoutRequestSchema, Ri as WorkflowSummaryListResponseSchema, Rr as SlackAppManifestResponseSchema, Rt as HealthResponseSchema, S as BrainGrantSchema, Si as UserAvatarPatchSchema, Sn as ListProjectsResponseSchema, Sr as PublishedFormSchema, St as DraftFileContentResponseSchema, T as BrainSlugAvailabilityResponseSchema, Ta as CLIENT_CHANNEL_HEADER, Ti as UserPreferencesSchema, Tn as ManagedDeployResourceKeySchema, Tr as RebuildBrainResponseSchema, Tt as DuplicateCredentialRequestSchema, U as CreateApiKeyRequestSchema, Ui as WorkspaceTriggerRunListResponseSchema, Un as PlatformAgentPromptInputSchema, Ur as StartMcpOAuthConnectionInputSchema, Ut as HistoryRunListQuerySchema, V as ConnectManagedServiceCredentialRequestSchema, Vi as WorkspaceTriggerListResponseSchema, Vr as StartKeystrokeConnectionInputSchema, Vt as HistoryRunCancelResponseSchema, W as CreateApiKeyResponseSchema, Wi as WorkspaceWorkflowOverviewSchema, Wn as PlatformAgentPromptResponseSchema, Wr as StartMcpOAuthConnectionResultSchema, Wt as HistoryRunListResponseSchema, X as CreateCredentialsResponseSchema, Xi as isAcceptableInstallExit, Xn as PrepareManagedDeployResponseSchema, Xr as TemplateFilesResponseSchema, Xt as ListAgentWorkspaceFilesResponseSchema, Y as CreateCredentialsRequestSchema, Yi as gitPorcelainLineTouchesManagedDraftPublishPath, Yn as PrepareManagedDeployRequestSchema, Yr as SubmitTeamRequestRequestSchema, Yt as ListAgentMemoryFilesResponseSchema, Z as CreateCustomAppRequestSchema, Zn as PresignCustomAppLogoRequestSchema, Zr as TriggerDetailResponseSchema, Zt as ListApiKeysResponseSchema, _ as BrainDetailSchema, _a as ExecuteKeystrokeToolRequestSchema, _i as UpdateProjectRequestSchema, _n as ListOrganizationsResponseSchema, _r as PublicFormSubmitBodySchema, _t as DeleteBrainDocumentsResponseSchema, a as AgentEnvImageSnapshotResponseSchema, aa as parseSlackConnectFlow, ai as UpdateBrainMemberRequestSchema, an as ListBrainMembersResponseSchema, at as CreateProjectRequestSchema, b as BrainFilterExpressionSchema, bi as UploadProjectSourceResponseSchema, bn as ListProjectMembersResponseSchema, br as PublishManagedDeployCandidateResponseSchema, bt as DraftCommitResponseSchema, c as AgentSummaryDetailResponseSchema, ca as resolveDocsMcpUrl, ci as UpdateChannelBindingBodySchema, cn as ListCredentialsPageQuerySchema, cr as ProjectGitStatusResponseSchema, ct as CreateSlackAppResponseSchema, d as AgentTriggerSummarySchema, da as AssignCredentialBodySchema, di as UpdateManagedServiceCredentialRequestSchema, dn as ListEmbeddingModelsResponseSchema, dr as ProjectResponseSchema, dt as CredentialInstanceListResponseSchema, ea as normalizeDocsSearchPaths, ei as TriggerListResponseSchema, en as ListBrainDocumentWritesResponseSchema, er as PresignOrgLogoResponseSchema, et as CreateDraftDiffCommitRequestSchema, f as AgentTriggerUpdateRequestSchema, fa as CredentialAssignmentListQuerySchema, fi as UpdateOrganizationMemberRequestSchema, fn as ListManagedServiceCredentialsResponseSchema, fr as ProjectSettingsResponseSchema, ft as CredentialInstanceRecordSchema, g as BindChannelBodySchema, ga as CredentialConsumerListResponseSchema, gi as UpdateProjectMemberResponseSchema, gn as ListOrganizationMembersPageResponseSchema, gr as PublicFormMetadataSchema, gt as DeleteBrainDocumentsRequestSchema, h as BindAgentSlackAppBodySchema, ha as CredentialConsumerListQuerySchema, hi as UpdateProjectMemberRequestSchema, hn as ListOrganizationMembersPageQuerySchema, hr as PromptResponseSchema, ht as DeclineOrganizationInvitationResponseSchema, i as AddBrainMemberRequestSchema, ii as UpdateBrainFilterRequestSchema, in as ListBrainGrantsResponseSchema, ir as PresignUserAvatarResponseSchema, it as CreateProjectArtifactResponseSchema, j as CatalogAppsPageResponseSchema, ja as BillingInvoiceUrlResponseSchema, ji as WorkflowRunDetailResponseSchema, jn as OrganizationSidebarBrandingSchema, jt as FormFieldConfigSchema, k as CatalogActionsPageResponseSchema, ka as AutoTopupSummarySchema, ki as WorkflowFormResponseSchema, kn as OpenApiDiscoverResponseSchema, kt as FinalizeCustomAppLogoRequestSchema, l as AgentSummaryListResponseSchema, la as slugifyAppName, li as UpdateCredentialInstanceBodySchema, ln as ListCredentialsPageResponseSchema, lr as ProjectPullStateSchema, lt as CreateSlackChannelBodySchema, m as AppSlugAvailabilityResponseSchema, ma as CredentialAssignmentRecordSchema, mi as UpdateOrganizationRequestSchema, mn as ListOrganizationInvitationsResponseSchema, mr as PromptInputSchema, mt as DOCS_SEARCH_TOOL, n as ActiveOrganizationResponseSchema, na as parseAppSlug, ni as TriggerRunListResponseSchema, nn as ListBrainDocumentsResponseSchema, nr as PresignProjectSourceResponseSchema, nt as CreateOrganizationResponseSchema, o as AgentSessionDetailResponseSchema, oi as UpdateBrainRequestSchema, on as ListBrainsResponseSchema, or as ProjectGitRemoteRequestSchema, ot as CreateProjectResponseSchema, p as AgentWorkflowSummaryListResponseSchema, pa as CredentialAssignmentListResponseSchema, pi as UpdateOrganizationMemberResponseSchema, pn as ListMcpAppToolsResponseSchema, pr as ProjectSlugAvailabilityResponseSchema, pt as DOCS_QUERY_TOOL, q as CreateBrainRequestSchema, qi as deriveCustomAppDisplay, qn as PrepareBrainUploadsRequestSchema, qr as SubmitAgentFeedbackRequestSchema, qt as InviteProjectMembersRequestSchema, r as ActiveProjectSourceRevisionSchema, ra as parseErrorResponse, ri as UpdateBrainDocumentMetadataRequestSchema, rn as ListBrainFiltersResponseSchema, rr as PresignUserAvatarRequestSchema, rt as CreateProjectArtifactRequestSchema, s as AgentSessionListResponseSchema, sa as resolveConnectAppSlug, si as UpdateBrainResponseSchema, sn as ListChannelPlatformsResponseSchema, sr as ProjectGitRemoteResponseSchema, st as CreateSlackAppRequestSchema, t as AcceptOrganizationInvitationResponseSchema, ti as TriggerRunDetailResponseSchema, tn as ListBrainDocumentsQuerySchema, tr as PresignProjectSourceRequestSchema, tt as CreateOrganizationRequestSchema, u as AgentTriggerSummaryListResponseSchema, ui as UpdateCredentialRequestSchema, un as ListDraftFilesResponseSchema, ur as ProjectReachabilityResponseSchema, ut as CreateSlackChannelResponseSchema, v as BrainDocumentDetailSchema, vi as UpdateProjectSettingsRequestSchema, vn as ListProjectDeploymentsResponseSchema, vr as PublicFormSubmitResponseSchema, vt as DownloadActiveProjectArtifactResponseSchema, w as BrainMemberSchema, wa as ACTIVE_ORG_HEADER, wi as UserPreferencesPatchSchema, wn as MANAGED_DEPLOY_REQUEST_TIMEOUT_MS, wr as QueuedRunResponseSchema, wt as DraftUpdateEventSchema, x as BrainFilterSummarySchema, xi as UpsertGatewayAttachmentBodySchema, xn as ListProjectMetricsResponseSchema, xr as PublishedFormListResponseSchema, xt as DraftConflictResponseSchema, yi as UploadProjectSourceManifestRequestSchema, yn as ListProjectFilesResponseSchema, yr as PublishManagedDeployCandidateRequestSchema, yt as DownloadActiveProjectSourceResponseSchema, z as CompleteProjectArtifactResponseSchema, za as CreateSubscriptionCheckoutRequestSchema, zi as WorkspaceTriggerDetailSchema, zr as SlackMembershipChannelBodySchema, zt as HeartbeatManagedDeployRequestSchema } from "./dist-CyMQwFFx.mjs";
4
+ import { $ as withMcpReadClient, Ct as stopBrowserUseSession, Dt as event, Et as configureTelemetry, Ot as flushTelemetry, Q as assertPublicHttpUrl, St as runAgentBrowser, Tt as captureException, Z as PublicHttpUrlError, _t as defaultBrowserProfilesRoot, bt as resolveBrowserContext, et as artifactIndexFromModules, gt as agentBrowserProfilePath, kt as shutdownTelemetry, nt as moduleBlobRefsFromModules, rt as mapInParallelBatches, tt as collectArtifactModules, vt as deleteBrowserUseProfile, wt as alias, xt as resolveBrowserProvider, yt as openCloudBrowserLogin } from "./dist-vV8clzp6.mjs";
5
+ import { a as buildApp, c as computeSafeFilteredDeploy, r as analyzeDeployableClosures, t as ANALYZER_CONTRACT_VERSION } from "./dist-PQok0SUy.mjs";
6
6
  import { createRequire } from "node:module";
7
7
  import { Command } from "commander";
8
8
  import { homedir, platform, release, tmpdir } from "node:os";
@@ -4291,15 +4291,22 @@ function createProjectDraftResource(http, streamAuth) {
4291
4291
  }
4292
4292
  };
4293
4293
  }
4294
- /** Terminal auth failure — subscribers must not reconnect. */
4295
- var PlatformAgentStreamAuthError = class extends Error {
4294
+ /** Terminal auth failure — resumable streams must not reconnect. */
4295
+ var ResumableUiMessageStreamAuthError = class extends Error {
4296
4296
  status;
4297
4297
  constructor(status, message) {
4298
4298
  super(message);
4299
- this.name = "PlatformAgentStreamAuthError";
4299
+ this.name = "ResumableUiMessageStreamAuthError";
4300
4300
  this.status = status;
4301
4301
  }
4302
4302
  };
4303
+ /** Backward-compatible platform-specific error name for public SDK consumers. */
4304
+ var PlatformAgentStreamAuthError = class extends ResumableUiMessageStreamAuthError {
4305
+ constructor(status, message) {
4306
+ super(status, message);
4307
+ this.name = "PlatformAgentStreamAuthError";
4308
+ }
4309
+ };
4303
4310
  function normalizeBase(baseUrl) {
4304
4311
  if (!baseUrl) return "";
4305
4312
  return baseUrl.replace(/\/+$/, "");
@@ -4346,10 +4353,6 @@ async function authHeaders(accept, options) {
4346
4353
  if (orgId) headers[ACTIVE_ORG_HEADER] = orgId;
4347
4354
  return headers;
4348
4355
  }
4349
- function resolveStreamUrl(options, startIndex) {
4350
- if (options.runId) return platformAgentRunStreamUrl(options.baseUrl, options.runId, options.sessionId, startIndex);
4351
- return platformAgentSessionStreamUrl(options.baseUrl, options.sessionId, startIndex);
4352
- }
4353
4356
  /**
4354
4357
  * Read one SSE response body, enqueue UIMessage chunks, and advance `nextIndex`
4355
4358
  * for each delivered data event (so reconnects resume without duplicates).
@@ -4410,13 +4413,9 @@ async function readSseBody(options) {
4410
4413
  };
4411
4414
  }
4412
4415
  /**
4413
- * Open a resumable platform-agent UIMessage SSE stream.
4414
- *
4415
- * Reconnects after clean EOF and transient failures with bounded exponential
4416
- * backoff, resuming from the last delivered event index. Stops on `[DONE]`,
4417
- * idle `204`, abort, or terminal auth errors.
4416
+ * Open an indexed UIMessage SSE stream with transient reconnect and backpressure.
4418
4417
  */
4419
- function openPlatformAgentUiMessageStream(options) {
4418
+ function openResumableUiMessageStream(options) {
4420
4419
  const fetchImpl = options.fetch ?? globalThis.fetch;
4421
4420
  const delay = options.delay ?? defaultDelay;
4422
4421
  const initialBackoffMs = options.initialBackoffMs ?? 500;
@@ -4462,7 +4461,7 @@ function openPlatformAgentUiMessageStream(options) {
4462
4461
  (async () => {
4463
4462
  try {
4464
4463
  while (!stopped && !streamAbort.signal.aborted) {
4465
- const url = resolveStreamUrl(options, nextIndex);
4464
+ const url = options.resolveUrl(nextIndex);
4466
4465
  try {
4467
4466
  const response = await fetchImpl(url, {
4468
4467
  method: "GET",
@@ -4475,11 +4474,13 @@ function openPlatformAgentUiMessageStream(options) {
4475
4474
  controller.close();
4476
4475
  return;
4477
4476
  }
4478
- if (response.status === 401 || response.status === 403) throw new PlatformAgentStreamAuthError(response.status, await response.text() || `Platform-agent stream unauthorized (${response.status})`);
4479
- if (!response.ok) throw new Error(await response.text() || `Platform-agent stream failed (${response.status})`);
4480
- if (!response.body) throw new Error("Platform-agent stream response body is empty");
4481
- const runId = response.headers.get("x-workflow-run-id");
4482
- if (runId) options.onRunId?.(runId);
4477
+ if (response.status === 401 || response.status === 403) {
4478
+ const message = await response.text() || `UI message stream unauthorized (${response.status})`;
4479
+ throw options.createAuthError?.(response.status, message) ?? new ResumableUiMessageStreamAuthError(response.status, message);
4480
+ }
4481
+ if (!response.ok) throw new Error(await response.text() || `UI message stream failed (${response.status})`);
4482
+ if (!response.body) throw new Error("UI message stream response body is empty");
4483
+ options.onResponse?.(response);
4483
4484
  attempt = 0;
4484
4485
  const result = await readSseBody({
4485
4486
  body: response.body,
@@ -4498,7 +4499,7 @@ function openPlatformAgentUiMessageStream(options) {
4498
4499
  if (result.kind === "error") {}
4499
4500
  } catch (error) {
4500
4501
  if (stopped || streamAbort.signal.aborted || isAbortError(error)) return;
4501
- if (error instanceof PlatformAgentStreamAuthError) {
4502
+ if (error instanceof ResumableUiMessageStreamAuthError) {
4502
4503
  controller.error(error);
4503
4504
  return;
4504
4505
  }
@@ -4531,6 +4532,24 @@ function openPlatformAgentUiMessageStream(options) {
4531
4532
  });
4532
4533
  }
4533
4534
  /**
4535
+ * Open a resumable platform-agent UIMessage SSE stream.
4536
+ *
4537
+ * Reconnects after clean EOF and transient failures with bounded exponential
4538
+ * backoff, resuming from the last delivered event index. Stops on `[DONE]`,
4539
+ * idle `204`, abort, or terminal auth errors.
4540
+ */
4541
+ function openPlatformAgentUiMessageStream(options) {
4542
+ return openResumableUiMessageStream({
4543
+ ...options,
4544
+ resolveUrl: (startIndex) => options.runId ? platformAgentRunStreamUrl(options.baseUrl, options.runId, options.sessionId, startIndex) : platformAgentSessionStreamUrl(options.baseUrl, options.sessionId, startIndex),
4545
+ onResponse: (response) => {
4546
+ const runId = response.headers.get("x-workflow-run-id");
4547
+ if (runId) options.onRunId?.(runId);
4548
+ },
4549
+ createAuthError: (status, message) => new PlatformAgentStreamAuthError(status, message)
4550
+ });
4551
+ }
4552
+ /**
4534
4553
  * Callback-style subscribe over {@link openPlatformAgentUiMessageStream}.
4535
4554
  * Returns an unsubscribe / abort function.
4536
4555
  */
@@ -4818,6 +4837,31 @@ function createAgentsResource(http) {
4818
4837
  throw await toPlatformError(error);
4819
4838
  }
4820
4839
  },
4840
+ async listWorkflows(projectId, agentSlug) {
4841
+ try {
4842
+ const data = await http.get(`/api/projects/${encodeURIComponent(projectId)}/agents/${encodeURIComponent(agentSlug)}/workflows`).json();
4843
+ return AgentWorkflowSummaryListResponseSchema.parse(data);
4844
+ } catch (error) {
4845
+ throw await toPlatformError(error);
4846
+ }
4847
+ },
4848
+ async getTrigger(projectId, agentSlug, triggerId) {
4849
+ try {
4850
+ const data = await http.get(`api/projects/${encodeURIComponent(projectId)}/agents/${encodeURIComponent(agentSlug)}/triggers/${encodeURIComponent(triggerId)}`).json();
4851
+ return AgentTriggerSummarySchema.parse(data);
4852
+ } catch (error) {
4853
+ throw await toPlatformError(error);
4854
+ }
4855
+ },
4856
+ async updateTrigger(projectId, agentSlug, triggerId, input) {
4857
+ try {
4858
+ const payload = AgentTriggerUpdateRequestSchema.parse(input);
4859
+ const data = await http.patch(`api/projects/${encodeURIComponent(projectId)}/agents/${encodeURIComponent(agentSlug)}/triggers/${encodeURIComponent(triggerId)}`, { json: payload }).json();
4860
+ return AgentTriggerSummarySchema.parse(data);
4861
+ } catch (error) {
4862
+ throw await toPlatformError(error);
4863
+ }
4864
+ },
4821
4865
  async snapshotEnvImage(projectId, agentSlug) {
4822
4866
  try {
4823
4867
  const data = await (await http.post(`api/projects/${encodeURIComponent(projectId)}/agents/${encodeURIComponent(agentSlug)}/env-image`)).json();
@@ -7999,6 +8043,59 @@ Examples:
7999
8043
  }));
8000
8044
  }
8001
8045
  //#endregion
8046
+ //#region src/commands/agents/triggers.ts
8047
+ async function withAgentTriggers(errorTitle, operation) {
8048
+ await runCliCommand(errorTitle, async () => {
8049
+ const config = createCliConfig();
8050
+ await resolveActiveOrganization(config);
8051
+ const result = await operation({
8052
+ projectId: await resolveChannelProjectId(config),
8053
+ client: createCliPlatformClient(config)
8054
+ });
8055
+ if (result !== void 0) process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
8056
+ }, void 0, { orgScoped: true });
8057
+ }
8058
+ function registerToggle$1(triggers, command) {
8059
+ triggers.command(command).description(`${command === "enable" ? "Resume" : "Pause"} an agent-owned trigger`).argument("<agent>", "Agent slug").argument("<trigger>", "Trigger id returned by agents triggers list").action((agentSlug, triggerId) => withAgentTriggers(`${command} agent trigger failed`, ({ projectId, client }) => client.agents.updateTrigger(projectId, agentSlug, triggerId, { enabled: command === "enable" })));
8060
+ }
8061
+ function registerAgentTriggersCommand(agent) {
8062
+ const triggers = agent.command("triggers").description("List and manage triggers attached to an agent");
8063
+ triggers.command("list").description("List agent-created ephemeral triggers").argument("<agent>", "Agent slug").option("--all", "Include project-defined triggers").action((agentSlug, options) => withAgentTriggers("List agent triggers failed", async ({ projectId, client }) => {
8064
+ const items = await client.agents.listTriggers(projectId, agentSlug);
8065
+ return options.all ? items : items.filter((item) => item.origin === "ephemeral");
8066
+ }));
8067
+ triggers.command("get").description("Get an agent trigger").argument("<agent>", "Agent slug").argument("<trigger>", "Trigger id returned by agents triggers list").action((agentSlug, triggerId) => withAgentTriggers("Get agent trigger failed", ({ projectId, client }) => client.agents.getTrigger(projectId, agentSlug, triggerId)));
8068
+ triggers.command("update").description("Update an agent-created trigger").argument("<agent>", "Agent slug").argument("<trigger>", "Trigger id returned by agents triggers list").option("--name <name>", "Set the display name").option("--description <description>", "Set the description").option("--prompt <prompt>", "Set the prompt run when the trigger fires").option("--schedule <schedule>", "Set the cron or poll schedule").option("--timezone <timezone>", "Set the schedule IANA timezone").option("--utc", "Clear the timezone and evaluate the schedule in UTC").action((agentSlug, triggerId, options) => withAgentTriggers("Update agent trigger failed", ({ projectId, client }) => {
8069
+ if (options.timezone && options.utc) throw new Error("Pass only one of --timezone or --utc");
8070
+ const input = {
8071
+ ...options.name !== void 0 ? { name: options.name } : {},
8072
+ ...options.description !== void 0 ? { description: options.description } : {},
8073
+ ...options.prompt !== void 0 ? { prompt: options.prompt } : {},
8074
+ ...options.schedule !== void 0 ? { schedule: options.schedule } : {},
8075
+ ...options.timezone !== void 0 ? { timezone: options.timezone } : options.utc ? { timezone: null } : {}
8076
+ };
8077
+ return client.agents.updateTrigger(projectId, agentSlug, triggerId, input);
8078
+ }));
8079
+ registerToggle$1(triggers, "disable");
8080
+ registerToggle$1(triggers, "enable");
8081
+ triggers.command("delete").description("Delete an agent-created trigger").argument("<agent>", "Agent slug").argument("<trigger>", "Trigger id returned by agents triggers list").option("-y, --yes", "Confirm deletion").action((agentSlug, triggerId, options) => withAgentTriggers("Delete agent trigger failed", async ({ projectId, client }) => {
8082
+ if (!options.yes) throw new Error("Pass --yes to confirm trigger deletion");
8083
+ await client.agents.deleteTrigger(projectId, agentSlug, triggerId);
8084
+ return { deleted: triggerId };
8085
+ }));
8086
+ }
8087
+ //#endregion
8088
+ //#region src/commands/agents/workflows.ts
8089
+ function registerAgentWorkflowsCommand(agent) {
8090
+ agent.command("workflows").description("Inspect project workflows that invoke an agent").command("list").description("List project-defined workflows that invoke an agent").argument("<agent>", "Agent slug").action((agentSlug) => runCliCommand("List agent workflows failed", async () => {
8091
+ const config = createCliConfig();
8092
+ await resolveActiveOrganization(config);
8093
+ const projectId = await resolveChannelProjectId(config);
8094
+ const result = await createCliPlatformClient(config).agents.listWorkflows(projectId, agentSlug);
8095
+ process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
8096
+ }, void 0, { orgScoped: true }));
8097
+ }
8098
+ //#endregion
8002
8099
  //#region src/commands/agents/index.ts
8003
8100
  function registerAgentsCommand(program) {
8004
8101
  const agents = program.command("agents").description("Invoke and inspect agents");
@@ -8007,6 +8104,8 @@ function registerAgentsCommand(program) {
8007
8104
  registerAgentSessionsCommand(agents);
8008
8105
  registerAgentSnapshotCommand(agents);
8009
8106
  registerAgentBrowserCommand(agents);
8107
+ registerAgentTriggersCommand(agents);
8108
+ registerAgentWorkflowsCommand(agents);
8010
8109
  }
8011
8110
  //#endregion
8012
8111
  //#region src/commands/api-key/run-api-key.ts
@@ -9465,7 +9564,7 @@ function registerBuildCommand(program) {
9465
9564
  try {
9466
9565
  const root = resolveProjectRoot(options.dir);
9467
9566
  await ensureSdkCurrent(root);
9468
- const { buildApp } = await import("./dist-CHjhMHpI.mjs");
9567
+ const { buildApp } = await import("./dist-DEw9vdeV.mjs");
9469
9568
  await buildApp({ root });
9470
9569
  process.stdout.write(`Built ${root}\n`);
9471
9570
  } catch (error) {
@@ -14976,7 +15075,7 @@ function createProgram() {
14976
15075
  async function runCli(argv) {
14977
15076
  initCliTelemetry();
14978
15077
  try {
14979
- const { maybeAutoUpdate } = await import("./maybe-auto-update-BWS4e3Fw.mjs");
15078
+ const { maybeAutoUpdate } = await import("./maybe-auto-update-BgKZIuYh.mjs");
14980
15079
  await maybeAutoUpdate(argv);
14981
15080
  await createProgram().parseAsync(argv);
14982
15081
  } finally {
@@ -14986,4 +15085,4 @@ async function runCli(argv) {
14986
15085
  //#endregion
14987
15086
  export { runCli };
14988
15087
 
14989
- //# sourceMappingURL=program-DJPdWAMn.mjs.map
15088
+ //# sourceMappingURL=program-Ds22KMCR.mjs.map