cdk-local 0.117.0 → 0.118.1

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/cli.js CHANGED
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import { $t as createLocalInvokeCommand, At as createLocalInvokeAgentCoreCommand, G as createLocalStartAlbCommand, O as createLocalStartCloudFrontCommand, Z as createLocalStartServiceCommand, a as createLocalStudioCommand, et as createLocalRunTaskCommand, tn as createLocalStartApiCommand, w as createLocalListCommand } from "./local-studio-CPHc44-i.js";
2
+ import { $t as createLocalInvokeCommand, At as createLocalInvokeAgentCoreCommand, G as createLocalStartAlbCommand, O as createLocalStartCloudFrontCommand, Z as createLocalStartServiceCommand, a as createLocalStudioCommand, et as createLocalRunTaskCommand, tn as createLocalStartApiCommand, w as createLocalListCommand } from "./local-studio-Downi4pd.js";
3
3
  import { Command } from "commander";
4
4
 
5
5
  //#region src/cli/index.ts
6
6
  const program = new Command();
7
- program.name("cdkl").description("Run AWS CDK stacks locally with Docker.").version("0.117.0");
7
+ program.name("cdkl").description("Run AWS CDK stacks locally with Docker.").version("0.118.1");
8
8
  program.addCommand(createLocalInvokeCommand());
9
9
  program.addCommand(createLocalInvokeAgentCoreCommand());
10
10
  program.addCommand(createLocalStartApiCommand());
@@ -127,6 +127,10 @@ var ConsoleLogger = class {
127
127
  return `${message}${formattedArgs}`;
128
128
  }
129
129
  emit(level, formatted) {
130
+ if (process.env["CDKL_LOG_STREAM"] === "stdout") {
131
+ console.log(formatted);
132
+ return;
133
+ }
130
134
  if (level === "error") console.error(formatted);
131
135
  else if (level === "warn") console.warn(formatted);
132
136
  else if (level === "info") console.info(formatted);
@@ -438,4 +442,4 @@ function mergeEnv(overrides) {
438
442
 
439
443
  //#endregion
440
444
  export { runDockerStreaming as a, resolveConfiguredLogLevel as c, setEmbedConfig as d, runDockerForeground as i, getEmbedConfig as l, formatDockerLoginError as n, spawnStreaming as o, getDockerCmd as r, getLogger as s, docker_cmd_exports as t, resetEmbedConfig as u };
441
- //# sourceMappingURL=docker-cmd-GcI_cqY5.js.map
445
+ //# sourceMappingURL=docker-cmd-Bo60SLE3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-cmd-Bo60SLE3.js","names":["createSpinner"],"sources":["../src/local/embed-config.ts","../src/utils/logger.ts","../src/utils/docker-cmd.ts"],"sourcesContent":["/**\n * Embed-time branding configuration.\n *\n * cdk-local hardcodes its own branding (`cdkl` binary, `cdk-local`\n * product name, `cdkl-*` Docker / AWS resource names, `/cdk-local-aws`\n * credential bind-mount) into user-visible error messages and resource\n * identifiers. A host that embeds cdk-local's Commander factories (e.g.\n * cdkd, whose binary is `cdkd` and whose subcommand group is\n * `cdkd local`) passes a {@link CdkLocalEmbedConfig} so those strings\n * read in the host's own branding instead.\n *\n * The four command factories call {@link setEmbedConfig} before building\n * their Commander option tree, so both construction-time strings (option\n * descriptions / defaults) and action-time strings (errors, resource\n * names) read the resolved config via {@link getEmbedConfig}. When no\n * config is supplied every field falls back to cdk-local's own defaults,\n * leaving native `cdkl` behavior byte-identical.\n */\nexport interface CdkLocalEmbedConfig {\n /**\n * Command prefix for subcommand references in user-facing strings, e.g.\n * `${cliName} invoke` / `${cliName} start-api`. Default `'cdkl'`; cdkd\n * passes `'cdkd local'`.\n */\n cliName?: string;\n /**\n * Bare executable / process name for standalone references, e.g.\n * `${binaryName} is exiting` / `${binaryName} could not determine ...`,\n * the local request id, and the hyphen-free Cognito user-pool\n * placeholder id. Default `'cdkl'`; cdkd passes `'cdkd'`.\n */\n binaryName?: string;\n /**\n * Product name for prose references, e.g. `${productName} supports ...`.\n * Also seeds the profile-credentials tmpdir prefix. Default\n * `'cdk-local'`; cdkd passes `'cdkd'`.\n */\n productName?: string;\n /**\n * Prefix for generated Docker / AWS resource identifiers — container,\n * volume, network, image-tag, tmpdir names, STS `RoleSessionName`s, and\n * the example Cloud Map namespace. Default `'cdkl'`; cdkd passes\n * `'cdkd-local'`.\n */\n resourceNamePrefix?: string;\n /**\n * Container directory the host AWS shared-credentials file is\n * bind-mounted under. Default `'/cdk-local-aws'`; cdkd passes\n * `'/cdkd-aws'`.\n */\n awsBindMountPath?: string;\n /**\n * Prefix for the environment variables this CLI reads — `${envPrefix}_APP`\n * (the `--app` fallback) and `${envPrefix}_ROLE_ARN` (the `--role-arn`\n * fallback). Default `'CDKL'`; cdkd passes `'CDKD'`.\n */\n envPrefix?: string;\n /**\n * Whether this host fails-closed by default on unverifiable AWS_IAM SigV4\n * requests. cdk-local's default is warn-and-pass (`false`); a host like\n * cdkd that ships fail-closed-by-default passes `true`. Drives the polarity\n * of the SigV4 warn-message advice (whether the strictness flag reads as an\n * opt-IN or opt-OUT). Default `false`.\n */\n sigV4StrictByDefault?: boolean;\n /**\n * The CLI flag a user toggles to change SigV4 strictness. With\n * `sigV4StrictByDefault: false` it is an opt-IN flag (`'--strict-sigv4'`,\n * the default); with `sigV4StrictByDefault: true` it is the host's opt-OUT\n * flag (cdkd passes `'--allow-unverified-sigv4'`). Default `'--strict-sigv4'`.\n */\n sigV4OptFlag?: string;\n}\n\nexport interface ResolvedEmbedConfig {\n cliName: string;\n binaryName: string;\n productName: string;\n resourceNamePrefix: string;\n awsBindMountPath: string;\n envPrefix: string;\n sigV4StrictByDefault: boolean;\n sigV4OptFlag: string;\n}\n\nconst DEFAULTS: ResolvedEmbedConfig = {\n cliName: 'cdkl',\n binaryName: 'cdkl',\n productName: 'cdk-local',\n resourceNamePrefix: 'cdkl',\n awsBindMountPath: '/cdk-local-aws',\n envPrefix: 'CDKL',\n sigV4StrictByDefault: false,\n sigV4OptFlag: '--strict-sigv4',\n};\n\nlet current: ResolvedEmbedConfig = DEFAULTS;\n\n/**\n * Resolve and install the active embed config. Called once per command\n * factory with the host's overrides (or `undefined` for native cdkl\n * behavior). Idempotent: re-calling with the same overrides is a no-op,\n * which is why all four factories may safely set the same config.\n */\nexport function setEmbedConfig(config?: CdkLocalEmbedConfig): void {\n current = {\n cliName: config?.cliName ?? DEFAULTS.cliName,\n binaryName: config?.binaryName ?? DEFAULTS.binaryName,\n productName: config?.productName ?? DEFAULTS.productName,\n resourceNamePrefix: config?.resourceNamePrefix ?? DEFAULTS.resourceNamePrefix,\n awsBindMountPath: config?.awsBindMountPath ?? DEFAULTS.awsBindMountPath,\n envPrefix: config?.envPrefix ?? DEFAULTS.envPrefix,\n sigV4StrictByDefault: config?.sigV4StrictByDefault ?? DEFAULTS.sigV4StrictByDefault,\n sigV4OptFlag: config?.sigV4OptFlag ?? DEFAULTS.sigV4OptFlag,\n };\n}\n\n/** The active resolved embed config. */\nexport function getEmbedConfig(): ResolvedEmbedConfig {\n return current;\n}\n\n/** Restore cdk-local defaults. Primarily a test-isolation helper. */\nexport function resetEmbedConfig(): void {\n current = DEFAULTS;\n}\n","/**\n * Logger interface and console implementation for cdk-local.\n *\n * A minimal `Logger` / `LogLevel` interface with a `ConsoleLogger`\n * (`getLogger()` / `setLogger()` exports, `child(prefix)` for prefixed\n * sub-loggers). cdk-local invokes a single Lambda / API / task at a time,\n * so there is no parallel multi-stack output to interleave — a plain\n * console logger with no output buffer or live progress renderer suffices.\n */\n\nexport type LogLevel = 'debug' | 'info' | 'warn' | 'error';\n\nexport interface Logger {\n debug(message: string, ...args: unknown[]): void;\n info(message: string, ...args: unknown[]): void;\n warn(message: string, ...args: unknown[]): void;\n error(message: string, ...args: unknown[]): void;\n setLevel(level: LogLevel): void;\n getLevel(): LogLevel;\n child(prefix: string): Logger;\n}\n\n/**\n * ANSI color codes\n *\n * Kept internal — `ConsoleLogger.formatMessage` references these for the\n * verbose/compact mode level prefixes.\n */\nconst colors = {\n reset: '\\x1b[0m',\n bright: '\\x1b[1m',\n dim: '\\x1b[2m',\n red: '\\x1b[31m',\n green: '\\x1b[32m',\n yellow: '\\x1b[33m',\n blue: '\\x1b[34m',\n cyan: '\\x1b[36m',\n gray: '\\x1b[90m',\n} as const;\n\nfunction formatTimestamp(): string {\n const now = new Date();\n return now.toISOString();\n}\n\n/**\n * Console logger implementation\n *\n * Supports two output modes:\n * - verbose (debug level): timestamps, module prefixes, all details\n * - compact (info level): clean output without timestamps or prefixes\n */\nexport class ConsoleLogger implements Logger {\n private level: LogLevel;\n private useColors: boolean;\n\n constructor(level: LogLevel = 'info', useColors: boolean = true) {\n this.level = level;\n this.useColors = useColors;\n }\n\n private shouldLog(level: LogLevel): boolean {\n const levels: LogLevel[] = ['debug', 'info', 'warn', 'error'];\n const currentLevelIndex = levels.indexOf(this.level);\n const messageLevelIndex = levels.indexOf(level);\n return messageLevelIndex >= currentLevelIndex;\n }\n\n private formatMessage(level: LogLevel, message: string, ...args: unknown[]): string {\n const formattedArgs = args.length > 0 ? ' ' + args.map((a) => JSON.stringify(a)).join(' ') : '';\n\n if (this.level === 'debug') {\n const timestamp = formatTimestamp();\n const levelStr = level.toUpperCase().padEnd(5);\n\n if (this.useColors) {\n const levelColorMap: Record<LogLevel, string> = {\n debug: colors.gray,\n info: colors.blue,\n warn: colors.yellow,\n error: colors.red,\n };\n const levelColor = levelColorMap[level];\n\n return `${colors.dim}${timestamp}${colors.reset} ${levelColor}${levelStr}${colors.reset} ${message}${formattedArgs}`;\n }\n\n return `${timestamp} ${levelStr} ${message}${formattedArgs}`;\n }\n\n if (this.useColors) {\n if (level === 'error') {\n return `${colors.red}${message}${formattedArgs}${colors.reset}`;\n }\n if (level === 'warn') {\n return `${colors.yellow}${message}${formattedArgs}${colors.reset}`;\n }\n return `${message}${formattedArgs}`;\n }\n\n return `${message}${formattedArgs}`;\n }\n\n private emit(level: LogLevel, formatted: string): void {\n // `cdkl studio` sets `CDKL_LOG_STREAM=stdout` on its spawned serve children\n // (issue #403) so EVERY level routes to stdout instead of the default\n // warn/error -> stderr split. studio captures a child's stdout and stderr\n // via two separate OS pipes, and Node does NOT guarantee cross-pipe\n // delivery order — a warn written just before a stdout banner can surface\n // AFTER it in the studio LOG panel (e.g. the pinned-image WARN landing\n // below \"Press ^C to shut down.\"). Emitting one stream preserves emission\n // order for that consumer. Direct CLI use never sets the var, so the\n // warn/error -> stderr split is unchanged there.\n if (process.env['CDKL_LOG_STREAM'] === 'stdout') {\n console.log(formatted);\n return;\n }\n if (level === 'error') console.error(formatted);\n else if (level === 'warn') console.warn(formatted);\n else if (level === 'info') console.info(formatted);\n else console.debug(formatted);\n }\n\n debug(message: string, ...args: unknown[]): void {\n if (this.shouldLog('debug')) {\n this.emit('debug', this.formatMessage('debug', message, ...args));\n }\n }\n\n info(message: string, ...args: unknown[]): void {\n if (this.shouldLog('info')) {\n this.emit('info', this.formatMessage('info', message, ...args));\n }\n }\n\n warn(message: string, ...args: unknown[]): void {\n if (this.shouldLog('warn')) {\n this.emit('warn', this.formatMessage('warn', message, ...args));\n }\n }\n\n error(message: string, ...args: unknown[]): void {\n if (this.shouldLog('error')) {\n this.emit('error', this.formatMessage('error', message, ...args));\n }\n }\n\n setLevel(level: LogLevel): void {\n this.level = level;\n }\n\n getLevel(): LogLevel {\n return this.level;\n }\n\n child(prefix: string): ChildLogger {\n return new ChildLogger(prefix, this.useColors);\n }\n}\n\n/**\n * Child logger that always syncs level from global logger\n */\nclass ChildLogger extends ConsoleLogger {\n private readonly prefix: string;\n\n constructor(prefix: string, useColors: boolean) {\n super('info', useColors);\n this.prefix = prefix;\n }\n\n private syncLevel(): void {\n if (globalLogger) {\n this.setLevel(globalLogger.getLevel());\n }\n }\n\n override debug(message: string, ...args: unknown[]): void {\n this.syncLevel();\n super.debug(`[${this.prefix}] ${message}`, ...args);\n }\n\n override info(message: string, ...args: unknown[]): void {\n this.syncLevel();\n const msg = this.getLevel() === 'debug' ? `[${this.prefix}] ${message}` : message;\n super.info(msg, ...args);\n }\n\n override warn(message: string, ...args: unknown[]): void {\n this.syncLevel();\n const msg = this.getLevel() === 'debug' ? `[${this.prefix}] ${message}` : message;\n super.warn(msg, ...args);\n }\n\n override error(message: string, ...args: unknown[]): void {\n this.syncLevel();\n const msg = this.getLevel() === 'debug' ? `[${this.prefix}] ${message}` : message;\n super.error(msg, ...args);\n }\n}\n\n/**\n * Resolve the initial log level from the `CDKL_LOG_LEVEL` env var, falling\n * back to `'info'`. This is primarily an internal contract: `cdkl studio`\n * spawns its single-shot `cdkl invoke` child with `CDKL_LOG_LEVEL=warn` so\n * cdk-local's OWN synth / orchestration progress (toolkit \"Successfully\n * synthesized to ...\", asset-bundling lines, info-level status) is silenced\n * in the child — leaving the studio LOGS panel showing only the Lambda\n * container's runtime logs (which stream straight from `docker logs` and are\n * unaffected by this level) plus the response. `--verbose` still overrides to\n * `debug` at the command layer. An invalid value is ignored.\n */\nexport function resolveConfiguredLogLevel(): LogLevel {\n const env = process.env['CDKL_LOG_LEVEL'];\n if (env === 'debug' || env === 'info' || env === 'warn' || env === 'error') {\n return env;\n }\n return 'info';\n}\n\nlet globalLogger: ConsoleLogger | null = null;\n\nexport function getLogger(): ConsoleLogger {\n if (!globalLogger) {\n globalLogger = new ConsoleLogger(resolveConfiguredLogLevel());\n }\n return globalLogger;\n}\n\nexport function setLogger(logger: ConsoleLogger): void {\n globalLogger = logger;\n}\n","import { spawn } from 'node:child_process';\nimport { spinner as createSpinner } from '@clack/prompts';\nimport { getLogger } from './logger.js';\nimport { getEmbedConfig } from '../local/embed-config.js';\n\n/**\n * Shared helpers for invoking the docker-compatible CLI binary across cdk-local.\n *\n * Two parity decisions with `aws-cdk-cli`'s `cdk-assets-lib`:\n * 1. `CDK_DOCKER` env var swaps the binary so podman / finch users can\n * run cdk-local without code changes (`CDK_DOCKER=podman cdkl invoke`).\n * 2. `runDockerStreaming` uses streaming spawn rather than `execFile`'s\n * buffered `maxBuffer` ceiling. BuildKit's progress output can run to\n * tens of MB on multi-stage builds with `# syntax=docker/dockerfile:1`\n * frontend downloads + heredoc / `RUN --mount=...` features; the 50 MB\n * `execFile` ceiling cdk-local used to set silently killed those builds\n * with `ERR_CHILD_PROCESS_STDIO_MAXBUFFER`.\n *\n * Output handling: stdout/stderr are collected in memory unconditionally so\n * `runDockerStreaming` can return them to the caller for error wrapping.\n * When the logger is at debug level (i.e. the user passed `--verbose`),\n * the chunks are ALSO mirrored to `process.stdout` / `process.stderr` so\n * the user sees live build progress.\n */\n\n/**\n * Return the docker-compatible CLI binary to invoke. Matches CDK CLI:\n * `CDK_DOCKER` env var overrides the default `docker` so users on\n * podman / finch / nerdctl can swap without changing cdk-local code.\n */\nexport function getDockerCmd(): string {\n const override = process.env['CDK_DOCKER'];\n return override && override.length > 0 ? override : 'docker';\n}\n\nexport interface SpawnResult {\n stdout: string;\n stderr: string;\n}\n\nexport interface SpawnError extends Error {\n /** Captured stderr at the time of failure. */\n stderr: string;\n /** Captured stdout at the time of failure. */\n stdout: string;\n /** Process exit code (null when the process was killed by signal). */\n exitCode: number | null;\n}\n\nexport interface RunDockerOptions {\n /** Optional working directory for the subprocess. */\n cwd?: string;\n /**\n * Additional environment variables to set. Merged on top of `process.env`\n * (so the user's `DOCKER_BUILDKIT=1` and friends propagate through).\n */\n env?: Record<string, string | undefined>;\n /** When set, written to stdin (used by `docker login --password-stdin`). */\n input?: string;\n /**\n * When true, mirror stdout/stderr chunks to `process.stdout` / `process.stderr`\n * as they arrive. Useful for `docker pull` / `docker build` where live\n * progress is desirable. Defaults to \"true when the logger is at debug\n * level\" — matches the existing `--verbose` UX.\n */\n streamLive?: boolean;\n /**\n * When set, show an interactive {@link createSpinner | clack spinner}\n * with this label for the duration of the spawn — so a long-running\n * `docker build` / `docker pull` against a real-world image doesn't\n * look like cdk-local hung. The spinner only renders when:\n *\n * - `streamLive` is false (live BuildKit output already shows motion;\n * overlaying a spinner on top would visually clash and the line\n * overwriting would mangle the build log), AND\n * - `process.stdout` is a TTY (non-TTY callers such as integ-test\n * fixtures or CI runs already log linearly; a spinner there would\n * emit raw ANSI escapes into the captured log).\n *\n * In either skipped case the spawn proceeds as if `progressLabel` were\n * undefined — the caller's pre-spawn `logger.info(...)` \"Building X...\"\n * line continues to be the only progress signal, which is the\n * pre-spinner behavior and matches what scripts / CI expect.\n *\n * On exit code 0 the spinner stops with the same label and a check\n * mark; on non-zero exit it stops with an error mark before the\n * rejection propagates, so the caller's `try {} catch {}` wrap still\n * sees a clean spinner-less stderr.\n *\n * Concurrency: each `@clack/prompts` spinner instance registers its own\n * `SIGINT` / `SIGTERM` / `exit` / `uncaughtExceptionMonitor` /\n * `unhandledRejection` listeners against `process`. Callers must\n * serialize concurrent spinner-bearing `spawnStreaming` invocations on\n * the same `process.stdout` — two simultaneous spinners overwrite each\n * other's frame line AND accumulate listeners (Node trips its default\n * 10-listener warning at ~3 concurrent spinners). Every cdk-local call\n * site as of this PR is strictly sequential\n * (`runImageOverrideBuilds` for-of, `prepareImages` for-of, ECS\n * Lambda asset builds are one-per-invoke); the future parallel-build\n * path should either drop the label or memoize a single shared spinner.\n */\n progressLabel?: string;\n}\n\n/**\n * Spawn a docker-compatible CLI binary (resolved via `getDockerCmd`) with\n * streaming I/O. Collects stdout/stderr in memory and resolves with both\n * on exit code 0; rejects with a `SpawnError` carrying both streams on any\n * non-zero exit so the caller can wrap with its own error class without\n * losing the upstream output.\n *\n * No `maxBuffer` ceiling: BuildKit progress output frequently exceeds the\n * `child_process.execFile` default of 1 MB (cdk-local previously bumped to 50 MB\n * but BuildKit + frontend pulls can still exceed that on first-time builds).\n */\nexport async function runDockerStreaming(\n args: string[],\n options: RunDockerOptions = {}\n): Promise<SpawnResult> {\n return spawnStreaming(getDockerCmd(), args, options);\n}\n\n/**\n * Generic streaming spawn — used by `runDockerStreaming` AND by the\n * `executable` source mode in `docker-build.ts` (which runs an arbitrary\n * user-supplied build command, not docker).\n */\nexport async function spawnStreaming(\n cmd: string,\n args: string[],\n options: RunDockerOptions = {}\n): Promise<SpawnResult> {\n const streamLive = options.streamLive ?? getLogger().getLevel() === 'debug';\n const env = options.env ? mergeEnv(options.env) : undefined;\n const spin = startProgressSpinner(options.progressLabel, streamLive);\n\n return new Promise<SpawnResult>((resolve, reject) => {\n // Defensive: a synchronous throw from `spawn` (e.g. Node's\n // `ERR_INVALID_ARG_TYPE` on a non-string `cmd`) bypasses the close /\n // error handlers below — without this try/catch the spinner would be\n // left animating until process exit. Today unreachable\n // (`getDockerCmd()` always returns a string + all call-site `args`\n // are `string[]`), but the wrap is free defense-in-depth on a\n // process-launch helper.\n let child;\n try {\n child = spawn(cmd, args, {\n cwd: options.cwd,\n env,\n stdio: [options.input ? 'pipe' : 'ignore', 'pipe', 'pipe'],\n });\n } catch (err) {\n stopProgressSpinner(spin, options.progressLabel);\n reject(err as Error);\n return;\n }\n\n const stdoutChunks: Buffer[] = [];\n const stderrChunks: Buffer[] = [];\n\n child.stdout!.on('data', (chunk: Buffer) => {\n stdoutChunks.push(chunk);\n if (streamLive) process.stdout.write(chunk);\n });\n child.stderr!.on('data', (chunk: Buffer) => {\n stderrChunks.push(chunk);\n if (streamLive) process.stderr.write(chunk);\n });\n\n child.once('error', (err: NodeJS.ErrnoException) => {\n stopProgressSpinner(spin, options.progressLabel);\n if (err.code === 'ENOENT') {\n const usingOverride = process.env['CDK_DOCKER'] === cmd && cmd !== 'docker';\n reject(\n new Error(\n usingOverride\n ? `Failed to find and execute '${cmd}' (resolved via CDK_DOCKER). ` +\n `Install '${cmd}' or unset CDK_DOCKER to fall back to 'docker'.`\n : `Failed to find and execute '${cmd}'. Install Docker (or set the ` +\n `'CDK_DOCKER' environment variable to a compatible binary such as podman / finch).`\n )\n );\n } else {\n reject(err);\n }\n });\n\n child.once('close', (code) => {\n const stdout = Buffer.concat(stdoutChunks).toString('utf-8');\n const stderr = Buffer.concat(stderrChunks).toString('utf-8');\n if (code === 0) {\n stopProgressSpinner(spin, options.progressLabel);\n resolve({ stdout, stderr });\n } else {\n stopProgressSpinner(spin, options.progressLabel);\n const message =\n stderr.trim() || stdout.trim() || `${cmd} ${args[0] ?? ''} exited with code ${code}`;\n const err = new Error(message) as SpawnError;\n err.stderr = stderr;\n err.stdout = stdout;\n err.exitCode = code;\n reject(err);\n }\n });\n\n if (options.input !== undefined) {\n // Defensive: when spawn() fails (e.g. ENOENT race), the synchronous\n // write below could emit a stream 'error' event before the close /\n // error handlers above fire. Without a listener, Node escalates that\n // to \"Unhandled 'error' event\" on some versions. cdk-local's only `input`\n // call site is `docker login --password-stdin` with short payloads\n // that complete well within the syscall, so this is unlikely to fire\n // in practice — but the no-op listener is free.\n child.stdin!.on('error', () => {\n /* surfaced via the outer error/close handlers above */\n });\n child.stdin!.write(options.input);\n child.stdin!.end();\n }\n });\n}\n\ntype ClackSpinner = ReturnType<typeof createSpinner>;\n\n/**\n * Start an interactive clack spinner for the spawn, but only when the\n * current shell would actually render it (TTY) and the caller isn't\n * already streaming live output. Returns `undefined` when either\n * precondition fails — `stopProgressSpinner` then is a no-op.\n *\n * Test seam: the integration with `@clack/prompts` is mocked in\n * `tests/unit/utils/docker-cmd-progress-spinner.test.ts`.\n */\nfunction startProgressSpinner(\n label: string | undefined,\n streamLive: boolean\n): ClackSpinner | undefined {\n if (label === undefined || streamLive || process.stdout.isTTY !== true) return undefined;\n const spin = createSpinner();\n spin.start(label);\n return spin;\n}\n\nfunction stopProgressSpinner(spin: ClackSpinner | undefined, label: string | undefined): void {\n // `@clack/prompts`' `spinner().stop(message?)` only takes the message at\n // the TS-level signature (the runtime impl ignores the optional `code`\n // second arg, hard-coding success), so we mirror its public API. The\n // upstream caller's wrapped error / rejection still surfaces the\n // failure detail; the spinner's only job here is to stop animating\n // cleanly so the error stderr renders on its own fresh line.\n if (spin === undefined) return;\n spin.stop(label ?? '');\n}\n\n/**\n * Spawn a docker-compatible CLI binary (resolved via `getDockerCmd`) attached\n * to the parent process's stdio so the user sees live output (`docker pull`\n * layer progress, `docker login` interactive prompts that should never fire\n * with `--password-stdin` but still safe to inherit, etc.). Resolves on exit\n * code 0; rejects with a plain `Error` carrying the exit code on any non-zero\n * exit, so the caller can wrap with its own error class.\n *\n * Differs from {@link runDockerStreaming} in two ways:\n * 1. `stdio: 'inherit'` — output is NOT captured, so terminal control codes\n * (color, progress bar overwrites) flow through unchanged. This is the\n * load-bearing reason for the split: `docker pull`'s progress bars only\n * animate properly when stdout is a real TTY connected to the parent.\n * 2. No `input` / `streamLive` options — inherit-mode has nothing to\n * capture and nothing to mirror.\n *\n * Used by the `--verbose`-mode `docker pull` plumbing in `docker-runner.ts`\n * and `ecr-puller.ts` (visible layer progress). Non-verbose pulls go through\n * {@link runDockerStreaming} so stderr can be folded into the error message.\n */\nexport async function runDockerForeground(\n args: string[],\n options: ForegroundOptions = {}\n): Promise<void> {\n return spawnForeground(getDockerCmd(), args, options);\n}\n\nexport interface ForegroundOptions {\n /** Optional working directory for the subprocess. */\n cwd?: string;\n /**\n * Additional environment variables to set. Merged on top of `process.env`\n * (same semantics as {@link RunDockerOptions.env}).\n */\n env?: Record<string, string | undefined>;\n}\n\n/**\n * Foreground (stdio-inherit) spawn — the inherit-mode counterpart to\n * {@link spawnStreaming}. Used by {@link runDockerForeground} for docker-CLI\n * subprocesses.\n *\n * The ENOENT branch crafts a docker-specific install hint (\"Install Docker\n * (or set CDK_DOCKER ...)\"), so non-docker callers reusing this helper\n * would see a misleading error on missing-binary failures. Keep the binary\n * docker-shaped, or update the ENOENT message before adding a non-docker\n * call site.\n */\nexport async function spawnForeground(\n cmd: string,\n args: string[],\n options: ForegroundOptions = {}\n): Promise<void> {\n const env = options.env ? mergeEnv(options.env) : undefined;\n return new Promise<void>((resolve, reject) => {\n const child = spawn(cmd, args, {\n cwd: options.cwd,\n env,\n stdio: 'inherit',\n });\n child.once('error', (err: NodeJS.ErrnoException) => {\n if (err.code === 'ENOENT') {\n const usingOverride = process.env['CDK_DOCKER'] === cmd && cmd !== 'docker';\n reject(\n new Error(\n usingOverride\n ? `Failed to find and execute '${cmd}' (resolved via CDK_DOCKER). ` +\n `Install '${cmd}' or unset CDK_DOCKER to fall back to 'docker'.`\n : `Failed to find and execute '${cmd}'. Install Docker (or set the ` +\n `'CDK_DOCKER' environment variable to a compatible binary such as podman / finch).`\n )\n );\n } else {\n reject(new Error(`${cmd} failed: ${err.message}`));\n }\n });\n child.once('close', (code) => {\n if (code === 0) {\n resolve();\n } else {\n reject(new Error(`${cmd} exited with code ${code}`));\n }\n });\n });\n}\n\n/**\n * Format the stderr from a failed `docker login` so the surfaced cdk-local\n * error gives the user an actionable workaround when the underlying\n * failure is a credential-helper persistence bug (which has nothing to\n * do with cdk-local, AWS, or IAM perms — the docker CLI itself fails to\n * save the auth token to the platform's credential store). The most\n * common shape is `osxkeychain` on macOS rejecting an overwrite for\n * an existing entry, but `wincred` (Windows), `pass` (Linux), and\n * `secretservice` (Linux) hit the same class of `Error saving\n * credentials` failure, so the rewritten message stays platform-\n * agnostic — `docker logout <endpoint>` is the correct recovery on\n * every backend.\n *\n * Detected docker / docker-credential-* output patterns:\n * - `error storing credentials - err: exit status 1, out: \\`The\n * specified item already exists in the keychain.\\`` (osxkeychain)\n * - `Error saving credentials: ...` (any backend)\n *\n * Non-matching failures (genuine IAM / network / endpoint problems)\n * pass through with just the stderr trimmed — the original message\n * stays load-bearing for diagnosis.\n */\nexport function formatDockerLoginError(stderr: string, endpoint: string): string {\n const trimmed = stderr.trim();\n const isCredentialHelperFailure =\n trimmed.includes('already exists in the keychain') ||\n trimmed.includes('Error saving credentials');\n if (isCredentialHelperFailure) {\n return (\n `docker's credential helper (osxkeychain on macOS / wincred on Windows / pass / secretservice on Linux) ` +\n `failed to persist the ECR auth token. The \"already exists in the keychain\" / \"Error saving credentials\" ` +\n `output is a known docker-credential-helpers issue — unrelated to ${getEmbedConfig().productName}, AWS credentials, or IAM perms. ` +\n `Quick fix: run \\`docker logout ${endpoint}\\` to clear the stale entry, then retry the ${getEmbedConfig().productName} command. ` +\n `Permanent fix: edit ~/.docker/config.json and remove (or empty) the platform-specific \"credsStore\" entry ` +\n `(e.g. \"osxkeychain\" → \"\" or \"desktop\" on macOS Docker Desktop). ` +\n `Original docker stderr: ${trimmed}`\n );\n }\n return trimmed;\n}\n\nfunction mergeEnv(overrides: Record<string, string | undefined>): NodeJS.ProcessEnv {\n const merged: NodeJS.ProcessEnv = { ...process.env };\n for (const [k, v] of Object.entries(overrides)) {\n if (v === undefined) {\n delete merged[k];\n } else {\n merged[k] = v;\n }\n }\n return merged;\n}\n"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { d as setEmbedConfig, l as getEmbedConfig, u as resetEmbedConfig } from "./docker-cmd-GcI_cqY5.js";
2
- import { $t as createLocalInvokeCommand, At as createLocalInvokeAgentCoreCommand, G as createLocalStartAlbCommand, O as createLocalStartCloudFrontCommand, T as formatTargetListing, Tr as listTargets, Z as createLocalStartServiceCommand, _r as resolveCfnRegion, a as createLocalStudioCommand, br as collectSsmParameterRefs, cr as substituteAgainstState, dr as substituteEnvVarsFromStateAsync, et as createLocalRunTaskCommand, fr as LocalStateSourceError, gr as resolveCfnFallbackRegion, hr as rejectExplicitCfnStackWithMultipleStacks, lr as substituteAgainstStateAsync, mr as isCfnFlagPresent, pr as createLocalStateProvider, tn as createLocalStartApiCommand, ur as substituteEnvVarsFromState, vr as resolveCfnStackName, w as createLocalListCommand, wr as countTargets, xr as resolveSsmParameters, yr as CfnLocalStateProvider } from "./local-studio-CPHc44-i.js";
1
+ import { d as setEmbedConfig, l as getEmbedConfig, u as resetEmbedConfig } from "./docker-cmd-Bo60SLE3.js";
2
+ import { $t as createLocalInvokeCommand, At as createLocalInvokeAgentCoreCommand, G as createLocalStartAlbCommand, O as createLocalStartCloudFrontCommand, T as formatTargetListing, Tr as listTargets, Z as createLocalStartServiceCommand, _r as resolveCfnRegion, a as createLocalStudioCommand, br as collectSsmParameterRefs, cr as substituteAgainstState, dr as substituteEnvVarsFromStateAsync, et as createLocalRunTaskCommand, fr as LocalStateSourceError, gr as resolveCfnFallbackRegion, hr as rejectExplicitCfnStackWithMultipleStacks, lr as substituteAgainstStateAsync, mr as isCfnFlagPresent, pr as createLocalStateProvider, tn as createLocalStartApiCommand, ur as substituteEnvVarsFromState, vr as resolveCfnStackName, w as createLocalListCommand, wr as countTargets, xr as resolveSsmParameters, yr as CfnLocalStateProvider } from "./local-studio-Downi4pd.js";
3
3
 
4
4
  export { CfnLocalStateProvider, LocalStateSourceError, collectSsmParameterRefs, countTargets, createLocalInvokeAgentCoreCommand, createLocalInvokeCommand, createLocalListCommand, createLocalRunTaskCommand, createLocalStartAlbCommand, createLocalStartApiCommand, createLocalStartCloudFrontCommand, createLocalStartServiceCommand, createLocalStateProvider, createLocalStudioCommand, formatTargetListing, getEmbedConfig, isCfnFlagPresent, listTargets, rejectExplicitCfnStackWithMultipleStacks, resetEmbedConfig, resolveCfnFallbackRegion, resolveCfnRegion, resolveCfnStackName, resolveSsmParameters, setEmbedConfig, substituteAgainstState, substituteAgainstStateAsync, substituteEnvVarsFromState, substituteEnvVarsFromStateAsync };
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","names":[],"sources":["../src/local/intrinsic-utils.ts","../src/local/intrinsic-lambda-arn.ts","../src/local/parameter-mapping.ts","../src/local/api-gateway-response.ts","../src/local/docker-inspect.ts","../src/local/route-matcher.ts","../src/local/api-gateway-event.ts","../src/local/lambda-authorizer.ts","../src/local/stage-resolver.ts","../src/local/runtime-image.ts","../src/local/websocket-event.ts","../src/local/websocket-mgmt-api.ts","../src/local/websocket-body.ts","../src/local/docker-version.ts","../src/local/api-server-grouping.ts","../src/local/layer-arn-materializer.ts","../src/local/agentcore-code-build.ts","../src/local/agentcore-s3-bundle.ts","../src/local/agentcore-sigv4-sign.ts","../src/local/docker-image-builder.ts","../src/local/image-pin-detector.ts","../src/local/target-picker.ts","../src/local/image-override-engine.ts","../src/local/container-log-streamer.ts","../src/local/cloudfront-lambda-origin.ts","../src/local/studio-custom-resource-filter.ts","../src/local/studio-ui.ts","../src/local/studio-request-relay.ts","../src/local/studio-reinvoke.ts"],"mappings":"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"}
1
+ {"version":3,"file":"internal.d.ts","names":[],"sources":["../src/local/intrinsic-utils.ts","../src/local/intrinsic-lambda-arn.ts","../src/local/parameter-mapping.ts","../src/local/api-gateway-response.ts","../src/local/docker-inspect.ts","../src/local/route-matcher.ts","../src/local/api-gateway-event.ts","../src/local/lambda-authorizer.ts","../src/local/stage-resolver.ts","../src/local/runtime-image.ts","../src/local/websocket-event.ts","../src/local/websocket-mgmt-api.ts","../src/local/websocket-body.ts","../src/local/docker-version.ts","../src/local/api-server-grouping.ts","../src/local/layer-arn-materializer.ts","../src/local/agentcore-code-build.ts","../src/local/agentcore-s3-bundle.ts","../src/local/agentcore-sigv4-sign.ts","../src/local/docker-image-builder.ts","../src/local/image-pin-detector.ts","../src/local/target-picker.ts","../src/local/image-override-engine.ts","../src/local/container-log-streamer.ts","../src/local/cloudfront-lambda-origin.ts","../src/local/studio-custom-resource-filter.ts","../src/local/studio-ui.ts","../src/local/studio-request-relay.ts","../src/local/studio-reinvoke.ts"],"mappings":"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"}
package/dist/internal.js CHANGED
@@ -1,3 +1,3 @@
1
- import { $ as addRunTaskSpecificOptions, $n as buildConnectEvent, A as resolveCloudFrontTarget, An as attachAuthorizers, Ar as parseSelectionExpressionPath, B as compileCloudFrontFunction, Bn as buildRestV1Event, Br as AgentCoreResolutionError, Bt as AGENTCORE_SIGV4_SERVICE, C as addListSpecificOptions, Cn as verifyJwtAuthorizer, Cr as resolveSingleTarget, Ct as CloudMapRegistry, D as addStartCloudFrontSpecificOptions, Dn as evaluateCachedLambdaPolicy, Dr as discoverWebSocketApis, Dt as getContainerNetworkIp, E as LocalStartCloudFrontError, En as computeRequestIdentityHash, Er as availableWebSocketApiIdentifiers, Et as setShadowReadyTimeoutMs, F as CLOUDFRONT_DISTRIBUTION_TYPE, Fn as matchPreflight, Fr as AGENTCORE_A2A_PROTOCOL, Ft as MCP_CONTAINER_PORT, Gn as VtlEvaluationError, Gr as substituteImagePlaceholders, Gt as downloadAndExtractS3Bundle, H as runViewerResponse, Hn as pickResponseTemplate, Hr as resolveAgentCoreTarget, Ht as AGENTCORE_SESSION_ID_HEADER, I as isCloudFrontDistribution, In as matchRoute, Ir as AGENTCORE_AGUI_PROTOCOL, It as MCP_PATH, J as isApplicationLoadBalancer, Jn as bufferToBody, Jr as buildStsClientConfig, Jt as computeCodeImageTag, K as parseLbPortOverrides, Kn as HOST_GATEWAY_MIN_VERSION, Kr as tryResolveImageFnJoin, Kt as SUPPORTED_CODE_RUNTIMES, L as pickFunctionUrlLogicalIdFromOrigin, Ln as translateLambdaResponse, Lr as AGENTCORE_HTTP_PROTOCOL, Lt as MCP_PROTOCOL_VERSION, M as startCloudFrontServer, Mn as buildCorsConfigByApiId, Mr as discoverRoutes, Mt as A2A_CONTAINER_PORT, N as serveFromStaticOrigin, Nn as buildCorsConfigFromCloudFrontChain, Nr as pickRefLogicalId, Nt as A2A_PATH, On as invokeRequestAuthorizer, Or as discoverWebSocketApisOrThrow, Ot as attachContainerLogStreamer, P as serveLambdaUrlOrigin, Pn as isFunctionUrlOacFronted, Pr as resolveLambdaArnIntrinsic, Pt as a2aInvokeOnce, Q as serviceStrategy, Qn as parseConnectionsPath, Qt as addInvokeSpecificOptions, R as pickTargetFunctionLogicalId, Rn as applyAuthorizerOverlay, Rr as AGENTCORE_MCP_PROTOCOL, Rt as mcpInvokeOnce, S as StudioEventBus, Sn as verifyCognitoJwt, Sr as resolveWatchConfig, St as buildCloudMapIndex, Tn as buildMethodArn, Tt as SOFT_RELOAD_COMPLETION_LOG_SUFFIX, U as addAlbSpecificOptions, Un as selectIntegrationResponse, Ur as derivePseudoParametersFromRegion, Ut as invokeAgentCore, V as runViewerRequest, Vn as evaluateResponseParameters, Vr as pickAgentCoreCandidateStack, Vt as signAgentCoreInvocation, W as albStrategy, Wn as tryParseStatus, Wr as formatStateRemedy, Wt as waitForAgentCorePing, X as addStartServiceSpecificOptions, Xn as buildMgmtEndpointEnvUrl, Xt as toCmdArgv, Y as resolveAlbFrontDoor, Yn as ConnectionRegistry, Yr as resolveProfileCredentials, Yt as renderCodeDockerfile, Zn as handleConnectionsRequest, Zt as classifySourceChange, _ as filterStudioTargetGroups, _n as resolveServiceIntegrationParameters, _t as resolveImageOverrides, an as createFileWatcher, ar as resolveRuntimeFileExtension, at as buildEcsImageResolutionContext, b as renderStudioHtml, bn as buildJwksUrlFromIssuer, bt as isLocalCdkAssetImage, c as startStudioProxy, cn as materializeLayerFromArn, ct as parseRestartPolicy, d as createStudioDispatcher, dn as filterRoutesByApiIdentifier, dt as runEcsServiceEmulator, en as addStartApiSpecificOptions, er as buildDisconnectEvent, f as filterStudioCustomResources, fn as filterRoutesByApiIdentifiers, ft as ImageOverrideError, g as annotatePinnedEcsTargets, gn as resolveSelectionExpression, gt as parseImageOverrideFlags, h as annotateEcsTaskPinnedTargets, hn as startApiServer, ht as mergeForService, i as coerceStopRequest, in as createAuthorizerCache, ir as resolveRuntimeCodeMountPath, it as addImageOverrideOptions, j as matchBehavior, jn as applyCorsResponseHeaders, jr as webSocketApiMatchesIdentifier, jt as invokeAgentCoreWs, k as parseOriginOverrides, kn as invokeTokenAuthorizer, kr as filterWebSocketApisByIdentifiers, kt as addInvokeAgentCoreSpecificOptions, l as relayServeRequest, ln as resolveEnvVars, lt as resolveEcsAssumeRoleOption, m as annotateAlbPinnedBackingServices, mn as readMtlsMaterialsFromDisk, mt as enforceImageOverrideOrphans, n as coerceRunRequest, nn as createWatchPredicates, nr as architectureToPlatform, nt as addCommonEcsServiceOptions, o as resolveServeBaseUrl, on as attachStageContext, or as resolveRuntimeImage, ot as ecsClusterOption, p as isCustomResourceLambdaTarget, pn as groupRoutesByServer, pt as buildImageOverrideTag, q as resolveAlbTarget, qn as probeHostGatewaySupport, qr as LocalInvokeBuildError, qt as buildAgentCoreCodeImage, r as coerceServeRequest, rn as resolveApiTargetSubset, rr as buildContainerImage, rt as addEcsAssumeRoleOptions, s as createStudioServeManager, sn as buildStageMap, sr as EcsTaskResolutionError, st as parseMaxTasks, t as addStudioSpecificOptions, tr as buildMessageEvent, tt as MAX_TASKS_SUBNET_RANGE_CAP, u as reinvoke, un as availableApiIdentifiers, ut as resolveSharedSidecarCredentials, v as startStudioServer, vn as defaultCredentialsLoader, vt as runImageOverrideBuilds, wn as verifyJwtViaDiscovery, wt as DEFAULT_SHADOW_READY_TIMEOUT_MS, x as createStudioStore, xn as createJwksCache, xt as listPinnedTargets, y as toStudioTargetGroups, yn as buildCognitoJwksUrl, yt as describePinnedImageUri, z as resolveCloudFrontDistribution, zn as buildHttpApiV2Event, zr as AGENTCORE_RUNTIME_TYPE, zt as parseSseForJsonRpc } from "./local-studio-CPHc44-i.js";
1
+ import { $ as addRunTaskSpecificOptions, $n as buildConnectEvent, A as resolveCloudFrontTarget, An as attachAuthorizers, Ar as parseSelectionExpressionPath, B as compileCloudFrontFunction, Bn as buildRestV1Event, Br as AgentCoreResolutionError, Bt as AGENTCORE_SIGV4_SERVICE, C as addListSpecificOptions, Cn as verifyJwtAuthorizer, Cr as resolveSingleTarget, Ct as CloudMapRegistry, D as addStartCloudFrontSpecificOptions, Dn as evaluateCachedLambdaPolicy, Dr as discoverWebSocketApis, Dt as getContainerNetworkIp, E as LocalStartCloudFrontError, En as computeRequestIdentityHash, Er as availableWebSocketApiIdentifiers, Et as setShadowReadyTimeoutMs, F as CLOUDFRONT_DISTRIBUTION_TYPE, Fn as matchPreflight, Fr as AGENTCORE_A2A_PROTOCOL, Ft as MCP_CONTAINER_PORT, Gn as VtlEvaluationError, Gr as substituteImagePlaceholders, Gt as downloadAndExtractS3Bundle, H as runViewerResponse, Hn as pickResponseTemplate, Hr as resolveAgentCoreTarget, Ht as AGENTCORE_SESSION_ID_HEADER, I as isCloudFrontDistribution, In as matchRoute, Ir as AGENTCORE_AGUI_PROTOCOL, It as MCP_PATH, J as isApplicationLoadBalancer, Jn as bufferToBody, Jr as buildStsClientConfig, Jt as computeCodeImageTag, K as parseLbPortOverrides, Kn as HOST_GATEWAY_MIN_VERSION, Kr as tryResolveImageFnJoin, Kt as SUPPORTED_CODE_RUNTIMES, L as pickFunctionUrlLogicalIdFromOrigin, Ln as translateLambdaResponse, Lr as AGENTCORE_HTTP_PROTOCOL, Lt as MCP_PROTOCOL_VERSION, M as startCloudFrontServer, Mn as buildCorsConfigByApiId, Mr as discoverRoutes, Mt as A2A_CONTAINER_PORT, N as serveFromStaticOrigin, Nn as buildCorsConfigFromCloudFrontChain, Nr as pickRefLogicalId, Nt as A2A_PATH, On as invokeRequestAuthorizer, Or as discoverWebSocketApisOrThrow, Ot as attachContainerLogStreamer, P as serveLambdaUrlOrigin, Pn as isFunctionUrlOacFronted, Pr as resolveLambdaArnIntrinsic, Pt as a2aInvokeOnce, Q as serviceStrategy, Qn as parseConnectionsPath, Qt as addInvokeSpecificOptions, R as pickTargetFunctionLogicalId, Rn as applyAuthorizerOverlay, Rr as AGENTCORE_MCP_PROTOCOL, Rt as mcpInvokeOnce, S as StudioEventBus, Sn as verifyCognitoJwt, Sr as resolveWatchConfig, St as buildCloudMapIndex, Tn as buildMethodArn, Tt as SOFT_RELOAD_COMPLETION_LOG_SUFFIX, U as addAlbSpecificOptions, Un as selectIntegrationResponse, Ur as derivePseudoParametersFromRegion, Ut as invokeAgentCore, V as runViewerRequest, Vn as evaluateResponseParameters, Vr as pickAgentCoreCandidateStack, Vt as signAgentCoreInvocation, W as albStrategy, Wn as tryParseStatus, Wr as formatStateRemedy, Wt as waitForAgentCorePing, X as addStartServiceSpecificOptions, Xn as buildMgmtEndpointEnvUrl, Xt as toCmdArgv, Y as resolveAlbFrontDoor, Yn as ConnectionRegistry, Yr as resolveProfileCredentials, Yt as renderCodeDockerfile, Zn as handleConnectionsRequest, Zt as classifySourceChange, _ as filterStudioTargetGroups, _n as resolveServiceIntegrationParameters, _t as resolveImageOverrides, an as createFileWatcher, ar as resolveRuntimeFileExtension, at as buildEcsImageResolutionContext, b as renderStudioHtml, bn as buildJwksUrlFromIssuer, bt as isLocalCdkAssetImage, c as startStudioProxy, cn as materializeLayerFromArn, ct as parseRestartPolicy, d as createStudioDispatcher, dn as filterRoutesByApiIdentifier, dt as runEcsServiceEmulator, en as addStartApiSpecificOptions, er as buildDisconnectEvent, f as filterStudioCustomResources, fn as filterRoutesByApiIdentifiers, ft as ImageOverrideError, g as annotatePinnedEcsTargets, gn as resolveSelectionExpression, gt as parseImageOverrideFlags, h as annotateEcsTaskPinnedTargets, hn as startApiServer, ht as mergeForService, i as coerceStopRequest, in as createAuthorizerCache, ir as resolveRuntimeCodeMountPath, it as addImageOverrideOptions, j as matchBehavior, jn as applyCorsResponseHeaders, jr as webSocketApiMatchesIdentifier, jt as invokeAgentCoreWs, k as parseOriginOverrides, kn as invokeTokenAuthorizer, kr as filterWebSocketApisByIdentifiers, kt as addInvokeAgentCoreSpecificOptions, l as relayServeRequest, ln as resolveEnvVars, lt as resolveEcsAssumeRoleOption, m as annotateAlbPinnedBackingServices, mn as readMtlsMaterialsFromDisk, mt as enforceImageOverrideOrphans, n as coerceRunRequest, nn as createWatchPredicates, nr as architectureToPlatform, nt as addCommonEcsServiceOptions, o as resolveServeBaseUrl, on as attachStageContext, or as resolveRuntimeImage, ot as ecsClusterOption, p as isCustomResourceLambdaTarget, pn as groupRoutesByServer, pt as buildImageOverrideTag, q as resolveAlbTarget, qn as probeHostGatewaySupport, qr as LocalInvokeBuildError, qt as buildAgentCoreCodeImage, r as coerceServeRequest, rn as resolveApiTargetSubset, rr as buildContainerImage, rt as addEcsAssumeRoleOptions, s as createStudioServeManager, sn as buildStageMap, sr as EcsTaskResolutionError, st as parseMaxTasks, t as addStudioSpecificOptions, tr as buildMessageEvent, tt as MAX_TASKS_SUBNET_RANGE_CAP, u as reinvoke, un as availableApiIdentifiers, ut as resolveSharedSidecarCredentials, v as startStudioServer, vn as defaultCredentialsLoader, vt as runImageOverrideBuilds, wn as verifyJwtViaDiscovery, wt as DEFAULT_SHADOW_READY_TIMEOUT_MS, x as createStudioStore, xn as createJwksCache, xt as listPinnedTargets, y as toStudioTargetGroups, yn as buildCognitoJwksUrl, yt as describePinnedImageUri, z as resolveCloudFrontDistribution, zn as buildHttpApiV2Event, zr as AGENTCORE_RUNTIME_TYPE, zt as parseSseForJsonRpc } from "./local-studio-Downi4pd.js";
2
2
 
3
3
  export { A2A_CONTAINER_PORT, A2A_PATH, AGENTCORE_A2A_PROTOCOL, AGENTCORE_AGUI_PROTOCOL, AGENTCORE_HTTP_PROTOCOL, AGENTCORE_MCP_PROTOCOL, AGENTCORE_RUNTIME_TYPE, AGENTCORE_SESSION_ID_HEADER, AGENTCORE_SIGV4_SERVICE, AgentCoreResolutionError, CLOUDFRONT_DISTRIBUTION_TYPE, CloudMapRegistry, ConnectionRegistry, DEFAULT_SHADOW_READY_TIMEOUT_MS, EcsTaskResolutionError, HOST_GATEWAY_MIN_VERSION, ImageOverrideError, LocalInvokeBuildError, LocalStartCloudFrontError, MAX_TASKS_SUBNET_RANGE_CAP, MCP_CONTAINER_PORT, MCP_PATH, MCP_PROTOCOL_VERSION, SOFT_RELOAD_COMPLETION_LOG_SUFFIX, SUPPORTED_CODE_RUNTIMES, StudioEventBus, VtlEvaluationError, a2aInvokeOnce, addAlbSpecificOptions, addCommonEcsServiceOptions, addEcsAssumeRoleOptions, addImageOverrideOptions, addInvokeAgentCoreSpecificOptions, addInvokeSpecificOptions, addListSpecificOptions, addRunTaskSpecificOptions, addStartApiSpecificOptions, addStartCloudFrontSpecificOptions, addStartServiceSpecificOptions, addStudioSpecificOptions, albStrategy, annotateAlbPinnedBackingServices, annotateEcsTaskPinnedTargets, annotatePinnedEcsTargets, applyAuthorizerOverlay, applyCorsResponseHeaders, architectureToPlatform, attachAuthorizers, attachContainerLogStreamer, attachStageContext, availableApiIdentifiers, availableWebSocketApiIdentifiers, bufferToBody, buildAgentCoreCodeImage, buildCloudMapIndex, buildCognitoJwksUrl, buildConnectEvent, buildContainerImage, buildCorsConfigByApiId, buildCorsConfigFromCloudFrontChain, buildDisconnectEvent, buildEcsImageResolutionContext, buildHttpApiV2Event, buildImageOverrideTag, buildJwksUrlFromIssuer, buildMessageEvent, buildMethodArn, buildMgmtEndpointEnvUrl, buildRestV1Event, buildStageMap, buildStsClientConfig, classifySourceChange, coerceRunRequest, coerceServeRequest, coerceStopRequest, compileCloudFrontFunction, computeCodeImageTag, computeRequestIdentityHash, createAuthorizerCache, createFileWatcher, createJwksCache, createStudioDispatcher, createStudioServeManager, createStudioStore, createWatchPredicates, defaultCredentialsLoader, derivePseudoParametersFromRegion, describePinnedImageUri, discoverRoutes, discoverWebSocketApis, discoverWebSocketApisOrThrow, downloadAndExtractS3Bundle, ecsClusterOption, enforceImageOverrideOrphans, evaluateCachedLambdaPolicy, evaluateResponseParameters, filterRoutesByApiIdentifier, filterRoutesByApiIdentifiers, filterStudioCustomResources, filterStudioTargetGroups, filterWebSocketApisByIdentifiers, formatStateRemedy, getContainerNetworkIp, groupRoutesByServer, handleConnectionsRequest, invokeAgentCore, invokeAgentCoreWs, invokeRequestAuthorizer, invokeTokenAuthorizer, isApplicationLoadBalancer, isCloudFrontDistribution, isCustomResourceLambdaTarget, isFunctionUrlOacFronted, isLocalCdkAssetImage, listPinnedTargets, matchBehavior, matchPreflight, matchRoute, materializeLayerFromArn, mcpInvokeOnce, mergeForService, parseConnectionsPath, parseImageOverrideFlags, parseLbPortOverrides, parseMaxTasks, parseOriginOverrides, parseRestartPolicy, parseSelectionExpressionPath, parseSseForJsonRpc, pickAgentCoreCandidateStack, pickFunctionUrlLogicalIdFromOrigin, pickRefLogicalId, pickResponseTemplate, pickTargetFunctionLogicalId, probeHostGatewaySupport, readMtlsMaterialsFromDisk, reinvoke, relayServeRequest, renderCodeDockerfile, renderStudioHtml, resolveAgentCoreTarget, resolveAlbFrontDoor, resolveAlbTarget, resolveApiTargetSubset, resolveCloudFrontDistribution, resolveCloudFrontTarget, resolveEcsAssumeRoleOption, resolveEnvVars, resolveImageOverrides, resolveLambdaArnIntrinsic, resolveProfileCredentials, resolveRuntimeCodeMountPath, resolveRuntimeFileExtension, resolveRuntimeImage, resolveSelectionExpression, resolveServeBaseUrl, resolveServiceIntegrationParameters, resolveSharedSidecarCredentials, resolveSingleTarget, resolveWatchConfig, runEcsServiceEmulator, runImageOverrideBuilds, runViewerRequest, runViewerResponse, selectIntegrationResponse, serveFromStaticOrigin, serveLambdaUrlOrigin, serviceStrategy, setShadowReadyTimeoutMs, signAgentCoreInvocation, startApiServer, startCloudFrontServer, startStudioProxy, startStudioServer, substituteImagePlaceholders, toCmdArgv, toStudioTargetGroups, translateLambdaResponse, tryParseStatus, tryResolveImageFnJoin, verifyCognitoJwt, verifyJwtAuthorizer, verifyJwtViaDiscovery, waitForAgentCorePing, webSocketApiMatchesIdentifier };
@@ -1,4 +1,4 @@
1
- import { a as runDockerStreaming, c as resolveConfiguredLogLevel, d as setEmbedConfig, i as runDockerForeground, l as getEmbedConfig, n as formatDockerLoginError, o as spawnStreaming, r as getDockerCmd, s as getLogger } from "./docker-cmd-GcI_cqY5.js";
1
+ import { a as runDockerStreaming, c as resolveConfiguredLogLevel, d as setEmbedConfig, i as runDockerForeground, l as getEmbedConfig, n as formatDockerLoginError, o as spawnStreaming, r as getDockerCmd, s as getLogger } from "./docker-cmd-Bo60SLE3.js";
2
2
  import { cpSync, createWriteStream, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
3
3
  import { homedir, tmpdir } from "node:os";
4
4
  import * as path$1 from "node:path";
@@ -22422,7 +22422,7 @@ async function softReloadReplica(args) {
22422
22422
  const defaultDockerInspectWorkdirImpl = async (containerId) => {
22423
22423
  const { execFile } = await import("node:child_process");
22424
22424
  const { promisify } = await import("node:util");
22425
- const { getDockerCmd } = await import("./docker-cmd-GcI_cqY5.js").then((n) => n.t);
22425
+ const { getDockerCmd } = await import("./docker-cmd-Bo60SLE3.js").then((n) => n.t);
22426
22426
  const { stdout } = await promisify(execFile)(getDockerCmd(), [
22427
22427
  "inspect",
22428
22428
  "--format",
@@ -22441,7 +22441,7 @@ let dockerInspectWorkdirImpl = defaultDockerInspectWorkdirImpl;
22441
22441
  const defaultDockerCpImpl = async (src, dst) => {
22442
22442
  const { execFile } = await import("node:child_process");
22443
22443
  const { promisify } = await import("node:util");
22444
- const { getDockerCmd } = await import("./docker-cmd-GcI_cqY5.js").then((n) => n.t);
22444
+ const { getDockerCmd } = await import("./docker-cmd-Bo60SLE3.js").then((n) => n.t);
22445
22445
  await promisify(execFile)(getDockerCmd(), [
22446
22446
  "cp",
22447
22447
  src,
@@ -22456,7 +22456,7 @@ let dockerCpImpl = defaultDockerCpImpl;
22456
22456
  const defaultDockerRestartImpl = async (containerId) => {
22457
22457
  const { execFile } = await import("node:child_process");
22458
22458
  const { promisify } = await import("node:util");
22459
- const { getDockerCmd } = await import("./docker-cmd-GcI_cqY5.js").then((n) => n.t);
22459
+ const { getDockerCmd } = await import("./docker-cmd-Bo60SLE3.js").then((n) => n.t);
22460
22460
  await promisify(execFile)(getDockerCmd(), ["restart", containerId]);
22461
22461
  };
22462
22462
  let dockerRestartImpl = defaultDockerRestartImpl;
@@ -22496,7 +22496,7 @@ async function disconnectOldFromSharedNetwork(oldInstance) {
22496
22496
  const defaultDockerNetworkDisconnectImpl = async (networkName, containerId) => {
22497
22497
  const { execFile } = await import("node:child_process");
22498
22498
  const { promisify } = await import("node:util");
22499
- const { getDockerCmd } = await import("./docker-cmd-GcI_cqY5.js").then((n) => n.t);
22499
+ const { getDockerCmd } = await import("./docker-cmd-Bo60SLE3.js").then((n) => n.t);
22500
22500
  await promisify(execFile)(getDockerCmd(), [
22501
22501
  "network",
22502
22502
  "disconnect",
@@ -22673,7 +22673,7 @@ function pickEssentialContainerId(instance, service) {
22673
22673
  const defaultWaitForExitImpl = async (containerId) => {
22674
22674
  const { execFile } = await import("node:child_process");
22675
22675
  const { promisify } = await import("node:util");
22676
- const { getDockerCmd } = await import("./docker-cmd-GcI_cqY5.js").then((n) => n.t);
22676
+ const { getDockerCmd } = await import("./docker-cmd-Bo60SLE3.js").then((n) => n.t);
22677
22677
  const { stdout } = await promisify(execFile)(getDockerCmd(), ["wait", containerId], { maxBuffer: 1024 * 1024 });
22678
22678
  const code = parseInt(stdout.trim(), 10);
22679
22679
  return Number.isFinite(code) ? code : -1;
@@ -22693,7 +22693,7 @@ const EXIT_LOG_TAIL_LINES = 50;
22693
22693
  const defaultReadContainerLogsImpl = async (containerId) => {
22694
22694
  const { execFile } = await import("node:child_process");
22695
22695
  const { promisify } = await import("node:util");
22696
- const { getDockerCmd } = await import("./docker-cmd-GcI_cqY5.js").then((n) => n.t);
22696
+ const { getDockerCmd } = await import("./docker-cmd-Bo60SLE3.js").then((n) => n.t);
22697
22697
  const { stdout, stderr } = await promisify(execFile)(getDockerCmd(), [
22698
22698
  "logs",
22699
22699
  "--tail",
@@ -30266,7 +30266,10 @@ const STUDIO_SCRIPT = `
30266
30266
  // the values when the user clicks Invoke / Start.
30267
30267
  const OPTION_SPECS = window.__OPTION_SPECS__ || {};
30268
30268
 
30269
- function buildOptions(kind) {
30269
+ // prefill (issue #398): the option map a stopped serve was last Started with
30270
+ // (serveApplied.options), so the re-rendered composer comes back filled.
30271
+ // rawPrefill is the raw-extra-args string (serveApplied.rawArgs).
30272
+ function buildOptions(kind, prefill, rawPrefill) {
30270
30273
  const specs = OPTION_SPECS[kind] || [];
30271
30274
  // The composer always shows an "All options" section (raw extra args + the
30272
30275
  // auto-derived flag reference), even for kinds with no curated controls.
@@ -30280,10 +30283,12 @@ const STUDIO_SCRIPT = `
30280
30283
  const bools = {};
30281
30284
 
30282
30285
  // Shared add-row pair list (used by repeat-pair AND the env-kv KV pane).
30283
- function pairList(spec) {
30286
+ // initialRows (issue #398) pre-populates one row per { left, right } so a
30287
+ // stopped serve's composer comes back filled with what it was Started with.
30288
+ function pairList(spec, initialRows) {
30284
30289
  const list = el('div', 'pair-rows');
30285
30290
  const pairs = [];
30286
- const addRow = function () {
30291
+ const addRow = function (initial) {
30287
30292
  const r = el('div', 'pair-row');
30288
30293
  const lv = el('input');
30289
30294
  lv.placeholder = spec.leftPlaceholder;
@@ -30291,6 +30296,10 @@ const STUDIO_SCRIPT = `
30291
30296
  const rv = el('input');
30292
30297
  rv.placeholder = spec.rightPlaceholder;
30293
30298
  rv.className = 'pair-in';
30299
+ if (initial) {
30300
+ if (initial.left != null) lv.value = String(initial.left);
30301
+ if (initial.right != null) rv.value = String(initial.right);
30302
+ }
30294
30303
  const pair = { l: lv, r: rv };
30295
30304
  const x = el('button', 'pair-x', 'x');
30296
30305
  x.type = 'button';
@@ -30308,7 +30317,12 @@ const STUDIO_SCRIPT = `
30308
30317
  };
30309
30318
  const add = el('button', 'pair-add', '+ add');
30310
30319
  add.type = 'button';
30311
- add.onclick = addRow;
30320
+ // Wrap so the click event is not passed as the initial-row arg to addRow.
30321
+ add.onclick = function () { addRow(); };
30322
+ // Pre-populate from initialRows (issue #398) — one filled row each.
30323
+ if (Array.isArray(initialRows)) {
30324
+ initialRows.forEach(function (ir) { addRow(ir); });
30325
+ }
30312
30326
  const wrap = el('div', 'pair-wrap');
30313
30327
  wrap.appendChild(list);
30314
30328
  wrap.appendChild(add);
@@ -30320,11 +30334,15 @@ const STUDIO_SCRIPT = `
30320
30334
  };
30321
30335
  }
30322
30336
 
30337
+ // The recorded value for a flag (issue #398) — undefined when no prefill.
30338
+ const pre = function (flag) { return prefill ? prefill[flag] : undefined; };
30339
+
30323
30340
  specs.forEach(function (spec) {
30324
30341
  const row = el('div', 'opt-row');
30325
30342
  if (spec.kind === 'boolean') {
30326
30343
  const cb = el('input');
30327
30344
  cb.type = 'checkbox';
30345
+ if (pre(spec.flag) === true) cb.checked = true;
30328
30346
  const lab = el('label', 'opt-bool');
30329
30347
  lab.appendChild(cb);
30330
30348
  lab.appendChild(document.createTextNode(' ' + spec.label));
@@ -30336,6 +30354,8 @@ const STUDIO_SCRIPT = `
30336
30354
  const inp = el('input');
30337
30355
  inp.type = spec.inputType === 'number' ? 'number' : 'text';
30338
30356
  if (spec.placeholder) inp.placeholder = spec.placeholder;
30357
+ const pv = pre(spec.flag);
30358
+ if (pv != null && pv !== '') inp.value = String(pv);
30339
30359
  row.appendChild(inp);
30340
30360
  if (spec.showWhen) {
30341
30361
  const gate = bools[spec.showWhen];
@@ -30357,7 +30377,11 @@ const STUDIO_SCRIPT = `
30357
30377
  modes.appendChild(kvBtn);
30358
30378
  modes.appendChild(jsonBtn);
30359
30379
  row.appendChild(modes);
30360
- const pl = pairList(spec);
30380
+ // Prefill (issue #398): collect() returns an array in KV mode and a
30381
+ // string in JSON mode, so an array prefill restores KV rows and a
30382
+ // string prefill restores the JSON textarea + that mode.
30383
+ const pv = pre(spec.flag);
30384
+ const pl = pairList(spec, Array.isArray(pv) ? pv : undefined);
30361
30385
  row.appendChild(pl.node);
30362
30386
  const ta = el('textarea', 'envkv-ta');
30363
30387
  ta.placeholder = '{ "KEY": "value" }';
@@ -30379,19 +30403,24 @@ const STUDIO_SCRIPT = `
30379
30403
  ta.style.display = '';
30380
30404
  pl.node.style.display = 'none';
30381
30405
  };
30406
+ if (typeof pv === 'string') {
30407
+ ta.value = pv;
30408
+ jsonBtn.onclick();
30409
+ }
30382
30410
  getters.push(function () {
30383
30411
  return mode === 'json' ? [spec.flag, ta.value] : [spec.flag, pl.rows()];
30384
30412
  });
30385
30413
  } else {
30386
30414
  // repeat-pair: an add-row list of left<sep>right inputs.
30387
30415
  row.appendChild(el('span', 'opt-label', spec.label));
30388
- const pl = pairList(spec);
30416
+ const pvp = pre(spec.flag);
30417
+ const pl = pairList(spec, Array.isArray(pvp) ? pvp : undefined);
30389
30418
  row.appendChild(pl.node);
30390
30419
  getters.push(function () { return [spec.flag, pl.rows()]; });
30391
30420
  }
30392
30421
  sec.appendChild(row);
30393
30422
  });
30394
- const allOpts = buildAllOptions(kind);
30423
+ const allOpts = buildAllOptions(kind, rawPrefill);
30395
30424
  wrap.appendChild(allOpts.node);
30396
30425
  return {
30397
30426
  node: wrap,
@@ -30414,7 +30443,7 @@ const STUDIO_SCRIPT = `
30414
30443
  // UI is never strictly less capable than the headless CLI (issue #301).
30415
30444
  const FLAG_CATALOG = window.__FLAG_CATALOG__ || {};
30416
30445
 
30417
- function buildAllOptions(kind) {
30446
+ function buildAllOptions(kind, rawPrefill) {
30418
30447
  const cat = FLAG_CATALOG[kind] || { command: '', flags: [] };
30419
30448
  const det = el('details', 'all-options');
30420
30449
  det.appendChild(el('summary', null, 'All options'));
@@ -30423,6 +30452,11 @@ const STUDIO_SCRIPT = `
30423
30452
  rawRow.appendChild(el('span', 'opt-label', 'Raw extra args'));
30424
30453
  const rawIn = el('input', 'raw-args');
30425
30454
  rawIn.placeholder = '--flag value --other "with spaces"';
30455
+ // Prefill the raw extra args a stopped serve was Started with (issue #398).
30456
+ if (rawPrefill != null && rawPrefill !== '') {
30457
+ rawIn.value = String(rawPrefill);
30458
+ det.open = true;
30459
+ }
30426
30460
  rawRow.appendChild(rawIn);
30427
30461
  const hint = cat.command
30428
30462
  ? 'Appended verbatim to the spawned ' + cat.command + ' command. Quote values with spaces.'
@@ -30459,7 +30493,7 @@ const STUDIO_SCRIPT = `
30459
30493
  // One labeled Dockerfile <select> row (the discovered Dockerfiles + a
30460
30494
  // "(keep pinned image)" default). Shared by the ecs single picker and the
30461
30495
  // alb per-backing-service pickers.
30462
- function buildImageOverrideRow(labelText) {
30496
+ function buildImageOverrideRow(labelText, initialValue) {
30463
30497
  // Vertical layout (issue #396): the construct-path label on its own line,
30464
30498
  // the Dockerfile select directly below it (left-aligned) — a long service
30465
30499
  // path no longer pushes the select to the far right. The label uses the
@@ -30475,6 +30509,11 @@ const STUDIO_SCRIPT = `
30475
30509
  o.value = df;
30476
30510
  sel.appendChild(o);
30477
30511
  });
30512
+ // Restore the Dockerfile picked before a stop (issue #398) — only when it
30513
+ // is still one of the discovered options, else keep the default.
30514
+ if (initialValue && studioDockerfiles.indexOf(initialValue) >= 0) {
30515
+ sel.value = initialValue;
30516
+ }
30478
30517
  row.appendChild(sel);
30479
30518
  return {
30480
30519
  row: row,
@@ -30484,10 +30523,10 @@ const STUDIO_SCRIPT = `
30484
30523
  };
30485
30524
  }
30486
30525
 
30487
- function buildImageOverridePicker() {
30526
+ function buildImageOverridePicker(prefillValue) {
30488
30527
  const sec = el('div', 'section options');
30489
30528
  sec.appendChild(el('h3', null, 'Image override'));
30490
- const r = buildImageOverrideRow('Local Dockerfile');
30529
+ const r = buildImageOverrideRow('Local Dockerfile', prefillValue);
30491
30530
  sec.appendChild(r.row);
30492
30531
  const hint = studioDockerfiles.length
30493
30532
  ? 'This image is pinned to a deployed registry — local edits do not take effect. Pick a Dockerfile to rebuild it locally.'
@@ -30506,11 +30545,11 @@ const STUDIO_SCRIPT = `
30506
30545
  // one Dockerfile select per deployed-registry-pinned service the ALB fronts.
30507
30546
  // collect() returns a { [serviceId]: dockerfile } map threaded as
30508
30547
  // imageOverrides (one --image-override service=df per entry).
30509
- function buildAlbImageOverridePicker(services) {
30548
+ function buildAlbImageOverridePicker(services, prefillMap) {
30510
30549
  const sec = el('div', 'section options');
30511
30550
  sec.appendChild(el('h3', null, 'Image override (pinned backing services)'));
30512
30551
  const rows = services.map(function (svc) {
30513
- const r = buildImageOverrideRow(svc.label);
30552
+ const r = buildImageOverrideRow(svc.label, prefillMap ? prefillMap[svc.id] : undefined);
30514
30553
  sec.appendChild(r.row);
30515
30554
  return { id: svc.id, getValue: r.getValue };
30516
30555
  });
@@ -30934,6 +30973,12 @@ const STUDIO_SCRIPT = `
30934
30973
  ws.appendChild(head);
30935
30974
 
30936
30975
  if (!running && !starting && !failed) {
30976
+ // Prefill the composer with what this serve was last Started with (issue
30977
+ // #398): a Start -> Stop (or Reconfigure on a failed serve) re-renders
30978
+ // here, so thread the recorded serveApplied values back into the inputs
30979
+ // instead of dropping them to a blank composer. Undefined on the first
30980
+ // render (no prior start) => blank, as before.
30981
+ const applied = serveApplied.get(id);
30937
30982
  // A pinned ECS service / task definition (deployed-registry image) does
30938
30983
  // not pick up local source edits — offer an image-override Dockerfile
30939
30984
  // picker so it can be rebuilt locally (issue #301 for ecs, #388 for
@@ -30941,7 +30986,7 @@ const STUDIO_SCRIPT = `
30941
30986
  // the ecs-task composer threads it to run-task. Local-asset targets
30942
30987
  // rebuild locally already and get no picker.
30943
30988
  if (meta && (meta.kind === 'ecs' || meta.kind === 'ecs-task') && meta.pinned) {
30944
- const io = buildImageOverridePicker();
30989
+ const io = buildImageOverridePicker(applied && applied.imageOverride);
30945
30990
  ws.appendChild(io.node);
30946
30991
  collectImageOverride = io.collect;
30947
30992
  }
@@ -30950,11 +30995,14 @@ const STUDIO_SCRIPT = `
30950
30995
  // a per-service Dockerfile picker that threads
30951
30996
  // --image-override service=dockerfile to start-alb.
30952
30997
  if (meta && meta.kind === 'alb' && meta.backingPinnedServices && meta.backingPinnedServices.length) {
30953
- const io = buildAlbImageOverridePicker(meta.backingPinnedServices);
30998
+ const io = buildAlbImageOverridePicker(
30999
+ meta.backingPinnedServices,
31000
+ applied && applied.imageOverrides
31001
+ );
30954
31002
  ws.appendChild(io.node);
30955
31003
  collectImageOverrides = io.collect;
30956
31004
  }
30957
- const opt = buildOptions(kind);
31005
+ const opt = buildOptions(kind, applied && applied.options, applied && applied.rawArgs);
30958
31006
  if (opt.node) ws.appendChild(opt.node);
30959
31007
  collectOpts = opt.collect;
30960
31008
  collectRaw = opt.collectRaw;
@@ -33367,7 +33415,13 @@ function createStudioServeManager(config) {
33367
33415
  const envFile = envDir ? join(envDir, "env-vars.json") : void 0;
33368
33416
  let child;
33369
33417
  try {
33370
- child = spawnFn(nodeBin, [config.cliEntry, ...buildArgs(req, spec, envFile)], { cwd });
33418
+ child = spawnFn(nodeBin, [config.cliEntry, ...buildArgs(req, spec, envFile)], {
33419
+ cwd,
33420
+ env: {
33421
+ ...process.env,
33422
+ CDKL_LOG_STREAM: "stdout"
33423
+ }
33424
+ });
33371
33425
  } catch (err) {
33372
33426
  if (envDir) try {
33373
33427
  rmSync(envDir, {
@@ -34315,4 +34369,4 @@ function addStudioSpecificOptions(cmd) {
34315
34369
 
34316
34370
  //#endregion
34317
34371
  export { addRunTaskSpecificOptions as $, buildConnectEvent as $n, createLocalInvokeCommand as $t, resolveCloudFrontTarget as A, attachAuthorizers as An, parseSelectionExpressionPath as Ar, createLocalInvokeAgentCoreCommand as At, compileCloudFrontFunction as B, buildRestV1Event as Bn, AgentCoreResolutionError as Br, AGENTCORE_SIGV4_SERVICE as Bt, addListSpecificOptions as C, verifyJwtAuthorizer as Cn, resolveSingleTarget as Cr, CloudMapRegistry as Ct, addStartCloudFrontSpecificOptions as D, evaluateCachedLambdaPolicy as Dn, discoverWebSocketApis as Dr, getContainerNetworkIp as Dt, LocalStartCloudFrontError as E, computeRequestIdentityHash as En, availableWebSocketApiIdentifiers as Er, setShadowReadyTimeoutMs as Et, CLOUDFRONT_DISTRIBUTION_TYPE as F, matchPreflight as Fn, AGENTCORE_A2A_PROTOCOL as Fr, MCP_CONTAINER_PORT as Ft, createLocalStartAlbCommand as G, VtlEvaluationError as Gn, substituteImagePlaceholders as Gr, downloadAndExtractS3Bundle as Gt, runViewerResponse as H, pickResponseTemplate as Hn, resolveAgentCoreTarget as Hr, AGENTCORE_SESSION_ID_HEADER as Ht, isCloudFrontDistribution as I, matchRoute as In, AGENTCORE_AGUI_PROTOCOL as Ir, MCP_PATH as It, isApplicationLoadBalancer as J, bufferToBody as Jn, buildStsClientConfig as Jr, computeCodeImageTag as Jt, parseLbPortOverrides as K, HOST_GATEWAY_MIN_VERSION as Kn, tryResolveImageFnJoin as Kr, SUPPORTED_CODE_RUNTIMES as Kt, pickFunctionUrlLogicalIdFromOrigin as L, translateLambdaResponse as Ln, AGENTCORE_HTTP_PROTOCOL as Lr, MCP_PROTOCOL_VERSION as Lt, startCloudFrontServer as M, buildCorsConfigByApiId as Mn, discoverRoutes as Mr, A2A_CONTAINER_PORT as Mt, serveFromStaticOrigin as N, buildCorsConfigFromCloudFrontChain as Nn, pickRefLogicalId as Nr, A2A_PATH as Nt, createLocalStartCloudFrontCommand as O, invokeRequestAuthorizer as On, discoverWebSocketApisOrThrow as Or, attachContainerLogStreamer as Ot, serveLambdaUrlOrigin as P, isFunctionUrlOacFronted as Pn, resolveLambdaArnIntrinsic as Pr, a2aInvokeOnce as Pt, serviceStrategy as Q, parseConnectionsPath as Qn, addInvokeSpecificOptions as Qt, pickTargetFunctionLogicalId as R, applyAuthorizerOverlay as Rn, AGENTCORE_MCP_PROTOCOL as Rr, mcpInvokeOnce as Rt, StudioEventBus as S, verifyCognitoJwt as Sn, resolveWatchConfig as Sr, buildCloudMapIndex as St, formatTargetListing as T, buildMethodArn as Tn, listTargets as Tr, SOFT_RELOAD_COMPLETION_LOG_SUFFIX as Tt, addAlbSpecificOptions as U, selectIntegrationResponse as Un, derivePseudoParametersFromRegion as Ur, invokeAgentCore as Ut, runViewerRequest as V, evaluateResponseParameters as Vn, pickAgentCoreCandidateStack as Vr, signAgentCoreInvocation as Vt, albStrategy as W, tryParseStatus as Wn, formatStateRemedy as Wr, waitForAgentCorePing as Wt, addStartServiceSpecificOptions as X, buildMgmtEndpointEnvUrl as Xn, toCmdArgv as Xt, resolveAlbFrontDoor as Y, ConnectionRegistry as Yn, resolveProfileCredentials as Yr, renderCodeDockerfile as Yt, createLocalStartServiceCommand as Z, handleConnectionsRequest as Zn, classifySourceChange as Zt, filterStudioTargetGroups as _, resolveServiceIntegrationParameters as _n, resolveCfnRegion as _r, resolveImageOverrides as _t, createLocalStudioCommand as a, createFileWatcher as an, resolveRuntimeFileExtension as ar, buildEcsImageResolutionContext$1 as at, renderStudioHtml as b, buildJwksUrlFromIssuer as bn, collectSsmParameterRefs as br, isLocalCdkAssetImage as bt, startStudioProxy as c, materializeLayerFromArn as cn, substituteAgainstState as cr, parseRestartPolicy as ct, createStudioDispatcher as d, filterRoutesByApiIdentifier as dn, substituteEnvVarsFromStateAsync as dr, runEcsServiceEmulator as dt, addStartApiSpecificOptions as en, buildDisconnectEvent as er, createLocalRunTaskCommand as et, filterStudioCustomResources as f, filterRoutesByApiIdentifiers as fn, LocalStateSourceError as fr, ImageOverrideError as ft, annotatePinnedEcsTargets as g, resolveSelectionExpression as gn, resolveCfnFallbackRegion as gr, parseImageOverrideFlags as gt, annotateEcsTaskPinnedTargets as h, startApiServer as hn, rejectExplicitCfnStackWithMultipleStacks as hr, mergeForService as ht, coerceStopRequest as i, createAuthorizerCache as in, resolveRuntimeCodeMountPath as ir, addImageOverrideOptions as it, matchBehavior as j, applyCorsResponseHeaders as jn, webSocketApiMatchesIdentifier as jr, invokeAgentCoreWs as jt, parseOriginOverrides as k, invokeTokenAuthorizer as kn, filterWebSocketApisByIdentifiers as kr, addInvokeAgentCoreSpecificOptions as kt, relayServeRequest as l, resolveEnvVars$1 as ln, substituteAgainstStateAsync as lr, resolveEcsAssumeRoleOption as lt, annotateAlbPinnedBackingServices as m, readMtlsMaterialsFromDisk as mn, isCfnFlagPresent as mr, enforceImageOverrideOrphans as mt, coerceRunRequest as n, createWatchPredicates as nn, architectureToPlatform as nr, addCommonEcsServiceOptions as nt, resolveServeBaseUrl as o, attachStageContext as on, resolveRuntimeImage as or, ecsClusterOption as ot, isCustomResourceLambdaTarget as p, groupRoutesByServer as pn, createLocalStateProvider as pr, buildImageOverrideTag as pt, resolveAlbTarget as q, probeHostGatewaySupport as qn, LocalInvokeBuildError as qr, buildAgentCoreCodeImage as qt, coerceServeRequest as r, resolveApiTargetSubset as rn, buildContainerImage as rr, addEcsAssumeRoleOptions as rt, createStudioServeManager as s, buildStageMap as sn, EcsTaskResolutionError as sr, parseMaxTasks as st, addStudioSpecificOptions as t, createLocalStartApiCommand as tn, buildMessageEvent as tr, MAX_TASKS_SUBNET_RANGE_CAP as tt, reinvoke as u, availableApiIdentifiers as un, substituteEnvVarsFromState as ur, resolveSharedSidecarCredentials as ut, startStudioServer as v, defaultCredentialsLoader as vn, resolveCfnStackName as vr, runImageOverrideBuilds as vt, createLocalListCommand as w, verifyJwtViaDiscovery as wn, countTargets as wr, DEFAULT_SHADOW_READY_TIMEOUT_MS as wt, createStudioStore as x, createJwksCache as xn, resolveSsmParameters as xr, listPinnedTargets as xt, toStudioTargetGroups as y, buildCognitoJwksUrl as yn, CfnLocalStateProvider as yr, describePinnedImageUri as yt, resolveCloudFrontDistribution as z, buildHttpApiV2Event as zn, AGENTCORE_RUNTIME_TYPE as zr, parseSseForJsonRpc as zt };
34318
- //# sourceMappingURL=local-studio-CPHc44-i.js.map
34372
+ //# sourceMappingURL=local-studio-Downi4pd.js.map