@keystrokehq/cli 0.0.151 → 0.0.152

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
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { $ as PresignProjectSourceRequestSchema, A as GetCredentialResponseSchema, At as UpsertGatewayAttachmentBodySchema, B as ListOrganizationInvitationsResponseSchema, C as CreateProjectRequestSchema, Ct as UpdateCredentialRequestSchema, D as DeclineOrganizationInvitationResponseSchema, Dt as UpdateProjectRequestSchema, E as CredentialInstanceRecordSchema, Et as UpdateOrganizationRequestSchema, F as HistoryRunListResponseSchema, Ft as WorkflowRunDetailResponseSchema, G as ListProjectMetricsResponseSchema, H as ListOrganizationsResponseSchema, Ht as parseErrorResponse, I as InviteOrganizationMembersRequestSchema, It as WorkflowRunListResponseSchema, J as OrganizationSidebarBrandingSchema, K as ListProjectsResponseSchema, L as InviteOrganizationMembersResponseSchema, Lt as WorkflowSummaryDetailResponseSchema, M as HistoryRunCancelResponseSchema, Mt as UserAvatarSchema, N as HistoryRunDetailResponseSchema, Nt as UserPreferencesPatchSchema, O as ErrorResponseSchema, Ot as UploadProjectSourceManifestRequestSchema, P as HistoryRunListQuerySchema, Pt as UserPreferencesSchema, Q as PresignOrgLogoResponseSchema, R as ListAppsResponseSchema, Rt as WorkflowSummaryListResponseSchema, S as CreateProjectArtifactResponseSchema, St as UpdateCredentialInstanceBodySchema, T as CredentialInstanceListResponseSchema, Tt as UpdateOrganizationMemberResponseSchema, U as ListProjectDeploymentsResponseSchema, V as ListOrganizationMembersResponseSchema, Vt as originFromPublicUrl, W as ListProjectFilesResponseSchema, X as PollRunResponseSchema, Y as PROJECT_REACHABILITY_REQUEST_TIMEOUT_MS, Z as PresignOrgLogoRequestSchema, _ as CreateCredentialInstanceBodySchema, _t as TriggerDetailResponseSchema, a as AgentSessionListResponseSchema, at as ProjectSlugAvailabilityResponseSchema, b as CreateOrganizationRequestSchema, bt as TriggerRunListResponseSchema, c as BindChannelBodySchema, ct as QueuedAgentPromptResponseSchema, d as ChannelConnectionSchema, dt as RecentResourceListResponseSchema, et as PresignProjectSourceResponseSchema, f as ChannelDirectoryListResponseSchema, ft as SkillSummaryDetailResponseSchema, g as ConnectProvidersResponseSchema, gt as StartOAuthConnectionResultSchema, h as ConnectAuthorizeUrlResponseSchema, ht as StartOAuthConnectionInputSchema, i as AgentSessionDetailResponseSchema, it as ProjectResponseSchema, j as HealthResponseSchema, jt as UserAvatarPatchSchema, k as GatewayAttachmentRecordSchema, kt as UploadProjectSourceResponseSchema, l as ChannelAccountListResponseSchema, lt as QueuedRunResponseSchema, m as CompleteProjectArtifactResponseSchema, mt as SlugAvailabilityResponseSchema, n as AcceptOrganizationInvitationResponseSchema, nt as PresignUserAvatarResponseSchema, o as AgentSummaryDetailResponseSchema, ot as PromptInputSchema, p as ChannelPlatformSchema, pt as SkillSummaryListResponseSchema, q as OrganizationSidebarBrandingPatchSchema, r as ActiveOrganizationResponseSchema, rt as ProjectReachabilityResponseSchema, s as AgentSummaryListResponseSchema, st as PromptResponseSchema, t as ACTIVE_ORG_HEADER, tt as PresignUserAvatarRequestSchema, u as ChannelConnectionListResponseSchema, ut as ROUTE_MANIFEST_REL_PATH, v as CreateCredentialsRequestSchema, vt as TriggerListResponseSchema, w as CreateProjectResponseSchema, wt as UpdateOrganizationMemberRequestSchema, x as CreateOrganizationResponseSchema, xt as UpdateChannelBindingBodySchema, y as CreateCredentialsResponseSchema, yt as TriggerRunDetailResponseSchema, z as ListCredentialsResponseSchema, zt as listenPortFromPublicUrl } from "./dist-BfTr7Wh6.mjs";
2
+ import { $ as PollRunResponseSchema, A as GetCredentialResponseSchema, At as UpdateOrganizationRequestSchema, B as ListAppsResponseSchema, Bt as UserPreferencesPatchSchema, C as CreateProjectRequestSchema, Ct as TriggerRunDetailResponseSchema, D as DeclineOrganizationInvitationResponseSchema, Dt as UpdateCredentialRequestSchema, E as CredentialInstanceRecordSchema, Et as UpdateCredentialInstanceBodySchema, F as HistoryRunListResponseSchema, Ft as UploadProjectSourceManifestRequestSchema, G as ListProjectDeploymentsResponseSchema, Gt as WorkflowSummaryListResponseSchema, H as ListOrganizationInvitationsResponseSchema, Ht as WorkflowRunDetailResponseSchema, I as InviteOrganizationMembersRequestSchema, It as UploadProjectSourceResponseSchema, J as ListProjectMetricsResponseSchema, Jt as originFromPublicUrl, K as ListProjectFilesResponseSchema, Kt as listenPortFromPublicUrl, L as InviteOrganizationMembersResponseSchema, Lt as UpsertGatewayAttachmentBodySchema, M as HistoryRunCancelResponseSchema, Mt as UpdateProjectMemberResponseSchema, N as HistoryRunDetailResponseSchema, Nt as UpdateProjectRequestSchema, O as ErrorResponseSchema, Ot as UpdateOrganizationMemberRequestSchema, P as HistoryRunListQuerySchema, Pt as UpdateProjectSettingsRequestSchema, Q as PROJECT_REACHABILITY_REQUEST_TIMEOUT_MS, R as InviteProjectMembersRequestSchema, Rt as UserAvatarPatchSchema, S as CreateProjectArtifactResponseSchema, St as TriggerListResponseSchema, T as CredentialInstanceListResponseSchema, Tt as UpdateChannelBindingBodySchema, U as ListOrganizationMembersResponseSchema, Ut as WorkflowRunListResponseSchema, V as ListCredentialsResponseSchema, Vt as UserPreferencesSchema, W as ListOrganizationsResponseSchema, Wt as WorkflowSummaryDetailResponseSchema, X as OrganizationSidebarBrandingPatchSchema, Y as ListProjectsResponseSchema, Yt as parseErrorResponse, Z as OrganizationSidebarBrandingSchema, _ as CreateCredentialInstanceBodySchema, _t as SkillSummaryListResponseSchema, a as AgentSessionListResponseSchema, at as PresignUserAvatarResponseSchema, b as CreateOrganizationRequestSchema, bt as StartOAuthConnectionResultSchema, c as BindChannelBodySchema, ct as ProjectSettingsResponseSchema, d as ChannelConnectionSchema, dt as PromptResponseSchema, et as PresignOrgLogoRequestSchema, f as ChannelDirectoryListResponseSchema, ft as QueuedAgentPromptResponseSchema, g as ConnectProvidersResponseSchema, gt as SkillSummaryDetailResponseSchema, h as ConnectAuthorizeUrlResponseSchema, ht as RecentResourceListResponseSchema, i as AgentSessionDetailResponseSchema, it as PresignUserAvatarRequestSchema, j as HealthResponseSchema, jt as UpdateProjectMemberRequestSchema, k as GatewayAttachmentRecordSchema, kt as UpdateOrganizationMemberResponseSchema, l as ChannelAccountListResponseSchema, lt as ProjectSlugAvailabilityResponseSchema, m as CompleteProjectArtifactResponseSchema, mt as ROUTE_MANIFEST_REL_PATH, n as AcceptOrganizationInvitationResponseSchema, nt as PresignProjectSourceRequestSchema, o as AgentSummaryDetailResponseSchema, ot as ProjectReachabilityResponseSchema, p as ChannelPlatformSchema, pt as QueuedRunResponseSchema, q as ListProjectMembersResponseSchema, r as ActiveOrganizationResponseSchema, rt as PresignProjectSourceResponseSchema, s as AgentSummaryListResponseSchema, st as ProjectResponseSchema, t as ACTIVE_ORG_HEADER, tt as PresignOrgLogoResponseSchema, u as ChannelConnectionListResponseSchema, ut as PromptInputSchema, v as CreateCredentialsRequestSchema, vt as SlugAvailabilityResponseSchema, w as CreateProjectResponseSchema, wt as TriggerRunListResponseSchema, x as CreateOrganizationResponseSchema, xt as TriggerDetailResponseSchema, y as CreateCredentialsResponseSchema, yt as StartOAuthConnectionInputSchema, z as InviteProjectMembersResponseSchema, zt as UserAvatarSchema } from "./dist-CPNPA1VB.mjs";
3
3
  import { t as walkProject } from "./walk-project-171B4cvO-DJy3qZKd.mjs";
4
4
  import { a as installPlaygroundDependencies, i as installDependencies, n as buildPlaygroundWorkspace, o as resolvePackageManager, s as resolveCliRoot, t as readCliVersion } from "./version-DESgLEkE.mjs";
5
5
  import { createRequire } from "node:module";
@@ -3760,95 +3760,105 @@ function createRecentsResource(http) {
3760
3760
  }
3761
3761
  } };
3762
3762
  }
3763
- const registry = /* @__PURE__ */ new Map();
3764
- /**
3765
- * Wraps a mock implementation, registering it in the manifest. The returned
3766
- * function is the unchanged implementation — `mock()` only adds bookkeeping.
3767
- */
3768
- function mock(entry, impl) {
3769
- registry.set(`${entry.domain}.${entry.method}`, entry);
3770
- return impl;
3771
- }
3772
- const DEFAULT_PROJECT_SETTINGS = {
3773
- description: "",
3774
- defaultRole: "editor",
3775
- invitePermission: "admin"
3776
- };
3777
- const MOCK_STORAGE_KEY = "keystroke:mock-project-settings:v1";
3778
- function getBrowserLocalStorage() {
3779
- if (typeof globalThis !== "object") return null;
3780
- return globalThis.localStorage ?? null;
3781
- }
3782
- function normalizeDefaultRole(value) {
3783
- return value === "admin" ? "admin" : "editor";
3784
- }
3785
- function normalizeInvitePermission(value) {
3786
- return value === "all" ? "all" : "admin";
3787
- }
3788
- function normalizeProjectSettings(value) {
3789
- if (!value || typeof value !== "object") return DEFAULT_PROJECT_SETTINGS;
3790
- const settings = value;
3763
+ function createMembersResource(http) {
3791
3764
  return {
3792
- description: typeof settings.description === "string" ? settings.description : "",
3793
- defaultRole: normalizeDefaultRole(settings.defaultRole),
3794
- invitePermission: normalizeInvitePermission(settings.invitePermission)
3765
+ async listOrganizationMembers() {
3766
+ try {
3767
+ const data = await http.get("/api/members").json();
3768
+ return ListOrganizationMembersResponseSchema.parse(data).members;
3769
+ } catch (error) {
3770
+ throw await toPlatformError(error);
3771
+ }
3772
+ },
3773
+ async inviteOrganizationMembers(input) {
3774
+ const body = InviteOrganizationMembersRequestSchema.parse(input);
3775
+ try {
3776
+ const data = await http.post("/api/members/invitations", { json: body }).json();
3777
+ return InviteOrganizationMembersResponseSchema.parse(data);
3778
+ } catch (error) {
3779
+ throw await toPlatformError(error);
3780
+ }
3781
+ },
3782
+ async updateOrganizationMember(userId, input) {
3783
+ const body = UpdateOrganizationMemberRequestSchema.parse(input);
3784
+ try {
3785
+ const data = await http.patch(`/api/members/${encodeURIComponent(userId)}`, { json: body }).json();
3786
+ return UpdateOrganizationMemberResponseSchema.parse(data).member;
3787
+ } catch (error) {
3788
+ throw await toPlatformError(error);
3789
+ }
3790
+ },
3791
+ async removeOrganizationMember(userId) {
3792
+ try {
3793
+ await http.delete(`/api/members/${encodeURIComponent(userId)}`);
3794
+ } catch (error) {
3795
+ throw await toPlatformError(error);
3796
+ }
3797
+ },
3798
+ async listForProject(projectId) {
3799
+ try {
3800
+ const data = await http.get(`/api/projects/${encodeURIComponent(projectId)}/members`).json();
3801
+ return ListProjectMembersResponseSchema.parse(data).members;
3802
+ } catch (error) {
3803
+ throw await toPlatformError(error);
3804
+ }
3805
+ },
3806
+ async inviteToProject(input) {
3807
+ const body = InviteProjectMembersRequestSchema.parse({
3808
+ emails: input.emails,
3809
+ role: input.role
3810
+ });
3811
+ try {
3812
+ const data = await http.post(`/api/projects/${encodeURIComponent(input.projectId)}/members`, { json: body }).json();
3813
+ return InviteProjectMembersResponseSchema.parse(data);
3814
+ } catch (error) {
3815
+ throw await toPlatformError(error);
3816
+ }
3817
+ },
3818
+ async updateProjectMember(projectId, userId, input) {
3819
+ const body = UpdateProjectMemberRequestSchema.parse(input);
3820
+ try {
3821
+ const data = await http.patch(`/api/projects/${encodeURIComponent(projectId)}/members/${encodeURIComponent(userId)}`, { json: body }).json();
3822
+ return UpdateProjectMemberResponseSchema.parse(data).member;
3823
+ } catch (error) {
3824
+ throw await toPlatformError(error);
3825
+ }
3826
+ },
3827
+ async removeProjectMember(projectId, userId) {
3828
+ try {
3829
+ await http.delete(`/api/projects/${encodeURIComponent(projectId)}/members/${encodeURIComponent(userId)}`);
3830
+ } catch (error) {
3831
+ throw await toPlatformError(error);
3832
+ }
3833
+ },
3834
+ async leaveProject(projectId) {
3835
+ try {
3836
+ await http.delete(`/api/projects/${encodeURIComponent(projectId)}/members/me`);
3837
+ } catch (error) {
3838
+ throw await toPlatformError(error);
3839
+ }
3840
+ }
3795
3841
  };
3796
3842
  }
3797
- function mergeProjectSettings(current, patch) {
3798
- return normalizeProjectSettings({
3799
- ...current,
3800
- ...patch
3801
- });
3802
- }
3803
- function readSettingsStore() {
3804
- const localStorage = getBrowserLocalStorage();
3805
- if (!localStorage) return {};
3806
- try {
3807
- const raw = localStorage.getItem(MOCK_STORAGE_KEY);
3808
- if (!raw) return {};
3809
- const parsed = JSON.parse(raw);
3810
- if (!parsed || typeof parsed !== "object") return {};
3811
- return Object.fromEntries(Object.entries(parsed).map(([projectId, value]) => [projectId, normalizeProjectSettings(value)]));
3812
- } catch {
3813
- return {};
3814
- }
3815
- }
3816
- function writeSettingsStore(store) {
3817
- const localStorage = getBrowserLocalStorage();
3818
- if (!localStorage) return;
3819
- try {
3820
- localStorage.setItem(MOCK_STORAGE_KEY, JSON.stringify(store));
3821
- } catch {}
3822
- }
3823
- function requireProjectId(projectId) {
3824
- const trimmed = projectId.trim();
3825
- if (!trimmed) throw new Error("Project settings require a project id");
3826
- return trimmed;
3827
- }
3828
- function createProjectSettingsResource() {
3843
+ function createProjectSettingsResource(http) {
3829
3844
  return {
3830
- get: mock({
3831
- domain: "projectSettings",
3832
- method: "get",
3833
- plannedEndpoint: "GET /api/projects/:id/settings"
3834
- }, async (projectId) => {
3835
- const id = requireProjectId(projectId);
3836
- return readSettingsStore()[id] ?? DEFAULT_PROJECT_SETTINGS;
3837
- }),
3838
- update: mock({
3839
- domain: "projectSettings",
3840
- method: "update",
3841
- plannedEndpoint: "PATCH /api/projects/:id/settings"
3842
- }, async (projectId, patch) => {
3843
- const id = requireProjectId(projectId);
3844
- const store = readSettingsStore();
3845
- const next = mergeProjectSettings(store[id] ?? DEFAULT_PROJECT_SETTINGS, patch);
3846
- writeSettingsStore({
3847
- ...store,
3848
- [id]: next
3849
- });
3850
- return next;
3851
- })
3845
+ async get(projectId) {
3846
+ try {
3847
+ const data = await http.get(`/api/projects/${encodeURIComponent(projectId)}/settings`).json();
3848
+ return ProjectSettingsResponseSchema.parse(data).settings;
3849
+ } catch (error) {
3850
+ throw await toPlatformError(error);
3851
+ }
3852
+ },
3853
+ async update(projectId, patch) {
3854
+ const body = UpdateProjectSettingsRequestSchema.parse(patch);
3855
+ try {
3856
+ const data = await http.patch(`/api/projects/${encodeURIComponent(projectId)}/settings`, { json: body }).json();
3857
+ return ProjectSettingsResponseSchema.parse(data).settings;
3858
+ } catch (error) {
3859
+ throw await toPlatformError(error);
3860
+ }
3861
+ }
3852
3862
  };
3853
3863
  }
3854
3864
  function createInvitationsResource(http) {
@@ -3957,42 +3967,14 @@ function createAppsResource(http) {
3957
3967
  }
3958
3968
  } };
3959
3969
  }
3960
- function createMembersResource$1(http) {
3961
- return {
3962
- async listOrganizationMembers() {
3963
- try {
3964
- const data = await http.get("/api/members").json();
3965
- return ListOrganizationMembersResponseSchema.parse(data).members;
3966
- } catch (error) {
3967
- throw await toPlatformError(error);
3968
- }
3969
- },
3970
- async inviteOrganizationMembers(input) {
3971
- const body = InviteOrganizationMembersRequestSchema.parse(input);
3972
- try {
3973
- const data = await http.post("/api/members/invitations", { json: body }).json();
3974
- return InviteOrganizationMembersResponseSchema.parse(data);
3975
- } catch (error) {
3976
- throw await toPlatformError(error);
3977
- }
3978
- },
3979
- async updateOrganizationMember(userId, input) {
3980
- const body = UpdateOrganizationMemberRequestSchema.parse(input);
3981
- try {
3982
- const data = await http.patch(`/api/members/${encodeURIComponent(userId)}`, { json: body }).json();
3983
- return UpdateOrganizationMemberResponseSchema.parse(data).member;
3984
- } catch (error) {
3985
- throw await toPlatformError(error);
3986
- }
3987
- },
3988
- async removeOrganizationMember(userId) {
3989
- try {
3990
- await http.delete(`/api/members/${encodeURIComponent(userId)}`);
3991
- } catch (error) {
3992
- throw await toPlatformError(error);
3993
- }
3994
- }
3995
- };
3970
+ const registry = /* @__PURE__ */ new Map();
3971
+ /**
3972
+ * Wraps a mock implementation, registering it in the manifest. The returned
3973
+ * function is the unchanged implementation — `mock()` only adds bookkeeping.
3974
+ */
3975
+ function mock(entry, impl) {
3976
+ registry.set(`${entry.domain}.${entry.method}`, entry);
3977
+ return impl;
3996
3978
  }
3997
3979
  /** Review personas for mocked project members and API key authors (not org membership). */
3998
3980
  const mockPersonaSeed = [
@@ -4029,18 +4011,6 @@ const mockPersonaSeed = [
4029
4011
  lastActiveAt: "2026-05-20T16:00:00Z"
4030
4012
  }
4031
4013
  ];
4032
- const projectMemberSeed = mockPersonaSeed.map((member, index) => ({
4033
- id: `project-member-${member.id}`,
4034
- projectId: "project_personal_repo",
4035
- name: member.name,
4036
- email: member.email,
4037
- role: index <= 1 ? "admin" : "editor",
4038
- status: "active",
4039
- avatarUrl: member.avatarUrl,
4040
- joinedAt: member.joinedAt,
4041
- lastActiveAt: member.lastActiveAt,
4042
- isCurrentUser: member.id === "user_blake_rouse"
4043
- }));
4044
4014
  const apiKeySeed = [
4045
4015
  {
4046
4016
  id: "api-key-local-dev",
@@ -4074,59 +4044,6 @@ function createMockApiKeySecret() {
4074
4044
  keyPreview: `******${secret.slice(-4)}`
4075
4045
  };
4076
4046
  }
4077
- const projectMembersStore = /* @__PURE__ */ new Map();
4078
- function getProjectMembers(projectId) {
4079
- let members = projectMembersStore.get(projectId);
4080
- if (!members) {
4081
- members = projectMemberSeed.map((member) => ({
4082
- ...member,
4083
- projectId
4084
- }));
4085
- projectMembersStore.set(projectId, members);
4086
- }
4087
- return members;
4088
- }
4089
- /** Derive a best-effort display name from an email local part. */
4090
- function displayNameFromEmail(email) {
4091
- return (email.split("@")[0] ?? email).split(/[._-]+/).filter((part) => part.length > 0).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join(" ");
4092
- }
4093
- function createMembersResource(http) {
4094
- return {
4095
- ...createMembersResource$1(http),
4096
- listForProject: mock({
4097
- domain: "members",
4098
- method: "listForProject",
4099
- plannedEndpoint: "GET /api/projects/:id/members"
4100
- }, async (projectId) => [...getProjectMembers(projectId)]),
4101
- inviteToProject: mock({
4102
- domain: "members",
4103
- method: "inviteToProject",
4104
- plannedEndpoint: "POST /api/projects/:id/members/invitations"
4105
- }, async (input) => {
4106
- const members = getProjectMembers(input.projectId);
4107
- const pendingOrgEmails = new Set((input.pendingOrgEmails ?? []).map((email) => email.toLowerCase()));
4108
- const seen = new Set(members.map((member) => member.email.toLowerCase()));
4109
- const invited = [];
4110
- input.emails.forEach((email, index) => {
4111
- const key = email.toLowerCase();
4112
- if (seen.has(key)) return;
4113
- seen.add(key);
4114
- invited.push({
4115
- id: `project-member-invite-${Date.now().toString(36)}-${index}`,
4116
- projectId: input.projectId,
4117
- name: displayNameFromEmail(email),
4118
- email,
4119
- role: input.role,
4120
- status: pendingOrgEmails.has(key) ? "invited" : "active",
4121
- joinedAt: (/* @__PURE__ */ new Date()).toISOString(),
4122
- lastActiveAt: null
4123
- });
4124
- });
4125
- if (invited.length > 0) projectMembersStore.set(input.projectId, [...members, ...invited]);
4126
- return { invited };
4127
- })
4128
- };
4129
- }
4130
4047
  let apiKeyRecords = [...apiKeySeed];
4131
4048
  function createApiKeysResource() {
4132
4049
  return {
@@ -4460,7 +4377,7 @@ function createPlatformClient(options) {
4460
4377
  }),
4461
4378
  projects: createProjectsResource(http),
4462
4379
  artifacts: createArtifactsResource(http),
4463
- projectSettings: createProjectSettingsResource(),
4380
+ projectSettings: createProjectSettingsResource(http),
4464
4381
  agents: createAgentsResource(http),
4465
4382
  workflows: createWorkflowsResource(http),
4466
4383
  skills: createSkillsResource(http),
@@ -5620,7 +5537,7 @@ function registerBuildCommand(program) {
5620
5537
  program.command("build").description("Build the keystroke project for production").option("--dir <path>", "Project directory", process.cwd()).action(async (options) => {
5621
5538
  try {
5622
5539
  const root = resolveProjectRoot(options.dir);
5623
- const { buildApp } = await import("./dist-U4Rt-pcc.mjs");
5540
+ const { buildApp } = await import("./dist-BYMTBbTD.mjs");
5624
5541
  await buildApp({ root });
5625
5542
  process.stdout.write(`Built ${root}\n`);
5626
5543
  } catch (error) {
@@ -5717,7 +5634,7 @@ async function runDeploy(options) {
5717
5634
  const client = createCliPlatformClient(config);
5718
5635
  let source;
5719
5636
  if (!options.skipBuild) {
5720
- const { buildApp } = await import("./dist-U4Rt-pcc.mjs");
5637
+ const { buildApp } = await import("./dist-BYMTBbTD.mjs");
5721
5638
  source = { files: (await buildApp({
5722
5639
  root,
5723
5640
  collectSources: true,
@@ -5817,7 +5734,7 @@ function runtimeChildEnv(parentEnv, overrides) {
5817
5734
  //#region src/project/bootstrap-run.ts
5818
5735
  /** Node args + env for `@keystrokehq/build` bootstrap (shared by start + dev). */
5819
5736
  async function resolveBootstrapRun(options) {
5820
- const { resolveRuntimeBuildArtifact } = await import("./dist-U4Rt-pcc.mjs");
5737
+ const { resolveRuntimeBuildArtifact } = await import("./dist-BYMTBbTD.mjs");
5821
5738
  const loader = pathToFileURL(resolveRuntimeBuildArtifact(options.runtimeNodeModules, "dist/runtime-loader.mjs")).href;
5822
5739
  const bootstrap = resolveRuntimeBuildArtifact(options.runtimeNodeModules, "dist/bootstrap.mjs");
5823
5740
  const args = [`--import=${loader}`];
@@ -5967,7 +5884,7 @@ async function runDev(options) {
5967
5884
  process.on("SIGINT", shutdown);
5968
5885
  process.on("SIGTERM", shutdown);
5969
5886
  try {
5970
- const { watchApp } = await import("./dist-U4Rt-pcc.mjs");
5887
+ const { watchApp } = await import("./dist-BYMTBbTD.mjs");
5971
5888
  await watchApp({
5972
5889
  root,
5973
5890
  clean: false,
@@ -6515,7 +6432,7 @@ async function runStart(options) {
6515
6432
  const apiPort = Number(new URL(serverUrl).port || 80);
6516
6433
  const runtimeNodeModules = resolveCliRuntimeNodeModules(resolveCliRoot(import.meta.url));
6517
6434
  ensureNativeDeps(runtimeNodeModules);
6518
- const { buildApp } = await import("./dist-U4Rt-pcc.mjs");
6435
+ const { buildApp } = await import("./dist-BYMTBbTD.mjs");
6519
6436
  await buildApp({
6520
6437
  root,
6521
6438
  clean: false