cdk-local 0.94.0 → 0.95.0
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 +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/internal.d.ts +1 -1
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +1 -1
- package/dist/{local-studio-CRz5S9Iu.d.ts → local-studio-D4xCanIE.d.ts} +3 -1
- package/dist/{local-studio-CRz5S9Iu.d.ts.map → local-studio-D4xCanIE.d.ts.map} +1 -1
- package/dist/{local-studio-MTJUk4NF.js → local-studio-Dd271q0Z.js} +249 -11
- package/dist/local-studio-Dd271q0Z.js.map +1 -0
- package/package.json +1 -1
- package/dist/local-studio-MTJUk4NF.js.map +0 -1
|
@@ -28024,6 +28024,160 @@ function createStudioStore(bus, options = {}) {
|
|
|
28024
28024
|
};
|
|
28025
28025
|
}
|
|
28026
28026
|
|
|
28027
|
+
//#endregion
|
|
28028
|
+
//#region src/local/studio-option-catalog.ts
|
|
28029
|
+
/**
|
|
28030
|
+
* Auto-derived full-flag catalog for `cdkl studio` (issue #301).
|
|
28031
|
+
*
|
|
28032
|
+
* The per-target {@link OPTION_SPECS} in `studio-option-specs.ts` is a
|
|
28033
|
+
* CURATED subset — the handful of flags worth a rich control (a checkbox, a
|
|
28034
|
+
* KV editor, an add-row list). But a command like `cdkl start-api` accepts
|
|
28035
|
+
* many more flags than studio renders a control for, and hiding them makes
|
|
28036
|
+
* the UI strictly less capable than the headless CLI.
|
|
28037
|
+
*
|
|
28038
|
+
* This module closes that gap by INTROSPECTING each runnable kind's Commander
|
|
28039
|
+
* command factory and emitting the complete flag list (name + description).
|
|
28040
|
+
* The studio UI serializes it into the page and renders, inside a collapsed
|
|
28041
|
+
* "All options" section, (a) the full catalog as a read-only reference and
|
|
28042
|
+
* (b) a raw extra-args input (see {@link tokenizeRawArgs}) so any flag the
|
|
28043
|
+
* curated controls don't expose can still be passed verbatim. Auto-derivation
|
|
28044
|
+
* means the catalog can never drift from the command's real option set.
|
|
28045
|
+
*
|
|
28046
|
+
* Session-global flags (handled by the studio Session bar / `studio-child-args`)
|
|
28047
|
+
* and the auto-added `--help` / `--version` are excluded — passing them per-run
|
|
28048
|
+
* would conflict with the session-wide wiring.
|
|
28049
|
+
*/
|
|
28050
|
+
/**
|
|
28051
|
+
* Long flag names handled by the session bar / `studio-child-args` (forwarded
|
|
28052
|
+
* to every spawned child once, session-wide). Excluded from the per-target
|
|
28053
|
+
* catalog so a user does not re-specify them per-run and collide with the
|
|
28054
|
+
* session-wide value. Plus the Commander-managed `--help` / `--version`.
|
|
28055
|
+
*/
|
|
28056
|
+
const CATALOG_EXCLUDED_FLAGS = new Set([
|
|
28057
|
+
"--app",
|
|
28058
|
+
"--profile",
|
|
28059
|
+
"--region",
|
|
28060
|
+
"--context",
|
|
28061
|
+
"--from-cfn-stack",
|
|
28062
|
+
"--assume-role",
|
|
28063
|
+
"--help",
|
|
28064
|
+
"--version"
|
|
28065
|
+
]);
|
|
28066
|
+
const KIND_FACTORIES = {
|
|
28067
|
+
lambda: {
|
|
28068
|
+
command: "invoke",
|
|
28069
|
+
factory: createLocalInvokeCommand
|
|
28070
|
+
},
|
|
28071
|
+
agentcore: {
|
|
28072
|
+
command: "invoke-agentcore",
|
|
28073
|
+
factory: createLocalInvokeAgentCoreCommand
|
|
28074
|
+
},
|
|
28075
|
+
api: {
|
|
28076
|
+
command: "start-api",
|
|
28077
|
+
factory: createLocalStartApiCommand
|
|
28078
|
+
},
|
|
28079
|
+
alb: {
|
|
28080
|
+
command: "start-alb",
|
|
28081
|
+
factory: createLocalStartAlbCommand
|
|
28082
|
+
},
|
|
28083
|
+
ecs: {
|
|
28084
|
+
command: "start-service",
|
|
28085
|
+
factory: createLocalStartServiceCommand
|
|
28086
|
+
}
|
|
28087
|
+
};
|
|
28088
|
+
let cached;
|
|
28089
|
+
/**
|
|
28090
|
+
* Build (and memoize) the full per-kind flag catalog by introspecting each
|
|
28091
|
+
* runnable kind's Commander command factory.
|
|
28092
|
+
*
|
|
28093
|
+
* Each factory calls `setEmbedConfig(opts.embedConfig)` at construction — with
|
|
28094
|
+
* no opts that resets the active embed config to cdk-local defaults, which
|
|
28095
|
+
* would wipe a host CLI's branding. So the active config is snapshotted and
|
|
28096
|
+
* each factory is re-handed it: branding is preserved AND the derived flag
|
|
28097
|
+
* descriptions reflect the host's active branding. The `finally` restore is a
|
|
28098
|
+
* belt-and-suspenders against a factory that ignores the passed config.
|
|
28099
|
+
* Memoized: the factories are instantiated exactly once per process, not per
|
|
28100
|
+
* page render.
|
|
28101
|
+
*/
|
|
28102
|
+
function buildFlagCatalog() {
|
|
28103
|
+
if (cached) return cached;
|
|
28104
|
+
const savedEmbedConfig = getEmbedConfig();
|
|
28105
|
+
try {
|
|
28106
|
+
const out = {};
|
|
28107
|
+
for (const kind of Object.keys(KIND_FACTORIES)) {
|
|
28108
|
+
const { command, factory } = KIND_FACTORIES[kind];
|
|
28109
|
+
const cmd = factory({ embedConfig: savedEmbedConfig });
|
|
28110
|
+
const flags = [];
|
|
28111
|
+
for (const opt of cmd.options) {
|
|
28112
|
+
if (opt.hidden) continue;
|
|
28113
|
+
if (opt.long && CATALOG_EXCLUDED_FLAGS.has(opt.long)) continue;
|
|
28114
|
+
flags.push({
|
|
28115
|
+
flags: opt.flags,
|
|
28116
|
+
description: opt.description ?? ""
|
|
28117
|
+
});
|
|
28118
|
+
}
|
|
28119
|
+
out[kind] = {
|
|
28120
|
+
command,
|
|
28121
|
+
flags
|
|
28122
|
+
};
|
|
28123
|
+
}
|
|
28124
|
+
cached = out;
|
|
28125
|
+
return out;
|
|
28126
|
+
} finally {
|
|
28127
|
+
setEmbedConfig(savedEmbedConfig);
|
|
28128
|
+
}
|
|
28129
|
+
}
|
|
28130
|
+
/**
|
|
28131
|
+
* Tokenize a raw extra-args string into discrete argv elements, honoring
|
|
28132
|
+
* single / double quotes and backslash escaping so values with spaces survive
|
|
28133
|
+
* (`--name "two words"` -> `['--name', 'two words']`). studio spawns children
|
|
28134
|
+
* WITHOUT a shell (argv array), so the tokens are appended verbatim — there is
|
|
28135
|
+
* no shell-injection surface; the child command still validates each arg.
|
|
28136
|
+
*
|
|
28137
|
+
* Returns `[]` for an empty / whitespace-only input. Throws on an unterminated
|
|
28138
|
+
* quote so a malformed raw-args string fails as a clean boundary error rather
|
|
28139
|
+
* than spawning a child with a mis-split argv.
|
|
28140
|
+
*/
|
|
28141
|
+
function tokenizeRawArgs(raw) {
|
|
28142
|
+
if (raw === void 0) return [];
|
|
28143
|
+
const tokens = [];
|
|
28144
|
+
let current = "";
|
|
28145
|
+
let inToken = false;
|
|
28146
|
+
let quote = null;
|
|
28147
|
+
for (let i = 0; i < raw.length; i++) {
|
|
28148
|
+
const ch = raw[i];
|
|
28149
|
+
if (quote) {
|
|
28150
|
+
if (ch === "\\" && quote === "\"" && i + 1 < raw.length) current += raw[++i];
|
|
28151
|
+
else if (ch === quote) quote = null;
|
|
28152
|
+
else current += ch;
|
|
28153
|
+
continue;
|
|
28154
|
+
}
|
|
28155
|
+
if (ch === "\"" || ch === "'") {
|
|
28156
|
+
quote = ch;
|
|
28157
|
+
inToken = true;
|
|
28158
|
+
continue;
|
|
28159
|
+
}
|
|
28160
|
+
if (ch === "\\" && i + 1 < raw.length) {
|
|
28161
|
+
current += raw[++i];
|
|
28162
|
+
inToken = true;
|
|
28163
|
+
continue;
|
|
28164
|
+
}
|
|
28165
|
+
if (ch === " " || ch === " " || ch === "\n" || ch === "\r") {
|
|
28166
|
+
if (inToken) {
|
|
28167
|
+
tokens.push(current);
|
|
28168
|
+
current = "";
|
|
28169
|
+
inToken = false;
|
|
28170
|
+
}
|
|
28171
|
+
continue;
|
|
28172
|
+
}
|
|
28173
|
+
current += ch;
|
|
28174
|
+
inToken = true;
|
|
28175
|
+
}
|
|
28176
|
+
if (quote) throw new Error(`Raw extra args have an unterminated ${quote} quote.`);
|
|
28177
|
+
if (inToken) tokens.push(current);
|
|
28178
|
+
return tokens;
|
|
28179
|
+
}
|
|
28180
|
+
|
|
28027
28181
|
//#endregion
|
|
28028
28182
|
//#region src/local/studio-option-specs.ts
|
|
28029
28183
|
/**
|
|
@@ -28407,6 +28561,20 @@ const STUDIO_CSS = `
|
|
|
28407
28561
|
.pair-add { align-self: flex-start; background: #1d1d1d; color: #7bd88f; border: 1px solid #2f4030;
|
|
28408
28562
|
border-radius: 3px; cursor: pointer; padding: 3px 9px; font: 12px ui-monospace, monospace; }
|
|
28409
28563
|
.pair-add:hover { background: #243024; }
|
|
28564
|
+
details.all-options { margin: 8px 0; border-top: 1px solid #2a2a2a; padding-top: 6px; }
|
|
28565
|
+
details.all-options > summary { color: #8a8a8a; font-size: 12px; cursor: pointer; user-select: none; }
|
|
28566
|
+
details.all-options > summary:hover { color: #bbb; }
|
|
28567
|
+
.all-options .opt-row { display: flex; flex-direction: column; align-items: stretch; gap: 4px; margin: 6px 0; }
|
|
28568
|
+
.all-options input.raw-args {
|
|
28569
|
+
width: 100%; box-sizing: border-box; background: #111; color: #ddd; border: 1px solid #333;
|
|
28570
|
+
border-radius: 3px; padding: 4px 6px; font: 12px ui-monospace, Menlo, monospace;
|
|
28571
|
+
}
|
|
28572
|
+
.all-options input.raw-args:focus { outline: none; border-color: #4ec97a; }
|
|
28573
|
+
.opt-hint { color: #777; font-size: 11px; }
|
|
28574
|
+
.flag-catalog { margin-top: 8px; display: flex; flex-direction: column; gap: 2px; }
|
|
28575
|
+
.flag-row { display: flex; gap: 8px; align-items: baseline; font-size: 11px; }
|
|
28576
|
+
.flag-name { color: #7bd88f; font-family: ui-monospace, Menlo, monospace; white-space: nowrap; }
|
|
28577
|
+
.flag-desc { color: #999; }
|
|
28410
28578
|
.envkv-modes { display: flex; gap: 0; }
|
|
28411
28579
|
.envkv-mode { background: #1a1a1a; color: #999; border: 1px solid #333; cursor: pointer;
|
|
28412
28580
|
padding: 3px 12px; font: 11px ui-monospace, monospace; }
|
|
@@ -28447,9 +28615,14 @@ const STUDIO_SCRIPT = `
|
|
|
28447
28615
|
|
|
28448
28616
|
function buildOptions(kind) {
|
|
28449
28617
|
const specs = OPTION_SPECS[kind] || [];
|
|
28450
|
-
|
|
28618
|
+
// The composer always shows an "All options" section (raw extra args + the
|
|
28619
|
+
// auto-derived flag reference), even for kinds with no curated controls.
|
|
28620
|
+
const wrap = el('div', 'options-wrap');
|
|
28451
28621
|
const sec = el('div', 'section options');
|
|
28452
|
-
|
|
28622
|
+
if (specs.length) {
|
|
28623
|
+
sec.appendChild(el('h3', null, 'Options'));
|
|
28624
|
+
wrap.appendChild(sec);
|
|
28625
|
+
}
|
|
28453
28626
|
const getters = [];
|
|
28454
28627
|
const bools = {};
|
|
28455
28628
|
|
|
@@ -28565,12 +28738,62 @@ const STUDIO_SCRIPT = `
|
|
|
28565
28738
|
}
|
|
28566
28739
|
sec.appendChild(row);
|
|
28567
28740
|
});
|
|
28741
|
+
const allOpts = buildAllOptions(kind);
|
|
28742
|
+
wrap.appendChild(allOpts.node);
|
|
28568
28743
|
return {
|
|
28569
|
-
node:
|
|
28744
|
+
node: wrap,
|
|
28570
28745
|
collect: function () {
|
|
28571
28746
|
const out = {};
|
|
28572
28747
|
getters.forEach(function (g) { const kv = g(); out[kv[0]] = kv[1]; });
|
|
28573
|
-
|
|
28748
|
+
// Omit-when-empty: a kind with no curated controls (e.g. api) collects
|
|
28749
|
+
// nothing, so return undefined rather than {} to keep the run/serve
|
|
28750
|
+
// body identical to before this section existed.
|
|
28751
|
+
return Object.keys(out).length ? out : undefined;
|
|
28752
|
+
},
|
|
28753
|
+
collectRaw: allOpts.collectRaw,
|
|
28754
|
+
};
|
|
28755
|
+
}
|
|
28756
|
+
|
|
28757
|
+
// The collapsed "All options" section: a raw extra-args input (appended
|
|
28758
|
+
// verbatim to the spawned child) + the auto-derived, read-only catalog of
|
|
28759
|
+
// every flag the underlying command accepts. The curated controls above
|
|
28760
|
+
// cover the common flags with rich UI; this exposes the rest so the studio
|
|
28761
|
+
// UI is never strictly less capable than the headless CLI (issue #301).
|
|
28762
|
+
const FLAG_CATALOG = window.__FLAG_CATALOG__ || {};
|
|
28763
|
+
|
|
28764
|
+
function buildAllOptions(kind) {
|
|
28765
|
+
const cat = FLAG_CATALOG[kind] || { command: '', flags: [] };
|
|
28766
|
+
const det = el('details', 'all-options');
|
|
28767
|
+
det.appendChild(el('summary', null, 'All options'));
|
|
28768
|
+
|
|
28769
|
+
const rawRow = el('div', 'opt-row opt-col');
|
|
28770
|
+
rawRow.appendChild(el('span', 'opt-label', 'Raw extra args'));
|
|
28771
|
+
const rawIn = el('input', 'raw-args');
|
|
28772
|
+
rawIn.placeholder = '--flag value --other "with spaces"';
|
|
28773
|
+
rawRow.appendChild(rawIn);
|
|
28774
|
+
const hint = cat.command
|
|
28775
|
+
? 'Appended verbatim to the spawned ' + cat.command + ' command. Quote values with spaces.'
|
|
28776
|
+
: 'Appended verbatim to the spawned command. Quote values with spaces.';
|
|
28777
|
+
rawRow.appendChild(el('div', 'opt-hint', hint));
|
|
28778
|
+
det.appendChild(rawRow);
|
|
28779
|
+
|
|
28780
|
+
if (cat.flags.length) {
|
|
28781
|
+
const ref = el('div', 'flag-catalog');
|
|
28782
|
+
ref.appendChild(el('div', 'opt-label', 'Available flags'));
|
|
28783
|
+
cat.flags.forEach(function (f) {
|
|
28784
|
+
const row = el('div', 'flag-row');
|
|
28785
|
+
row.appendChild(el('code', 'flag-name', f.flags));
|
|
28786
|
+
if (f.description) row.appendChild(el('span', 'flag-desc', f.description));
|
|
28787
|
+
ref.appendChild(row);
|
|
28788
|
+
});
|
|
28789
|
+
det.appendChild(ref);
|
|
28790
|
+
}
|
|
28791
|
+
|
|
28792
|
+
return {
|
|
28793
|
+
node: det,
|
|
28794
|
+
collectRaw: function () {
|
|
28795
|
+
const v = rawIn.value.trim();
|
|
28796
|
+
return v === '' ? undefined : v;
|
|
28574
28797
|
},
|
|
28575
28798
|
};
|
|
28576
28799
|
}
|
|
@@ -28696,7 +28919,7 @@ const STUDIO_SCRIPT = `
|
|
|
28696
28919
|
}
|
|
28697
28920
|
}
|
|
28698
28921
|
|
|
28699
|
-
async function startServe(id, options) {
|
|
28922
|
+
async function startServe(id, options, rawArgs) {
|
|
28700
28923
|
// The serve kind (api / alb / ecs) drives which headless command the
|
|
28701
28924
|
// server spawns; it is recorded on the row when the target list loads.
|
|
28702
28925
|
const meta = serveMeta.get(id);
|
|
@@ -28706,6 +28929,7 @@ const STUDIO_SCRIPT = `
|
|
|
28706
28929
|
try {
|
|
28707
28930
|
const body = { targetId: id, kind };
|
|
28708
28931
|
if (options) body.options = options;
|
|
28932
|
+
if (rawArgs) body.rawArgs = rawArgs;
|
|
28709
28933
|
const res = await fetch('/api/run', {
|
|
28710
28934
|
method: 'POST',
|
|
28711
28935
|
headers: { 'content-type': 'application/json' },
|
|
@@ -28762,7 +28986,8 @@ const STUDIO_SCRIPT = `
|
|
|
28762
28986
|
: el('button', null, starting ? 'Starting…' : 'Start');
|
|
28763
28987
|
// Per-run options are only set before a start; collected on the Start click.
|
|
28764
28988
|
let collectOpts = function () { return undefined; };
|
|
28765
|
-
|
|
28989
|
+
let collectRaw = function () { return undefined; };
|
|
28990
|
+
btn.onclick = () => { if (running || starting) stopServe(id); else startServe(id, collectOpts(), collectRaw()); };
|
|
28766
28991
|
head.appendChild(btn);
|
|
28767
28992
|
if (errMsg) {
|
|
28768
28993
|
const m = el('div', 'err', errMsg);
|
|
@@ -28774,6 +28999,7 @@ const STUDIO_SCRIPT = `
|
|
|
28774
28999
|
const opt = buildOptions(kind);
|
|
28775
29000
|
if (opt.node) ws.appendChild(opt.node);
|
|
28776
29001
|
collectOpts = opt.collect;
|
|
29002
|
+
collectRaw = opt.collectRaw;
|
|
28777
29003
|
}
|
|
28778
29004
|
|
|
28779
29005
|
const isEcs = meta && meta.kind === 'ecs';
|
|
@@ -28973,7 +29199,7 @@ const STUDIO_SCRIPT = `
|
|
|
28973
29199
|
ws.appendChild(composer);
|
|
28974
29200
|
ws.appendChild(result);
|
|
28975
29201
|
|
|
28976
|
-
active = { id, kind, ta, btn, msg, result, collectOpts: opt.collect };
|
|
29202
|
+
active = { id, kind, ta, btn, msg, result, collectOpts: opt.collect, collectRaw: opt.collectRaw };
|
|
28977
29203
|
btn.onclick = () => runInvoke();
|
|
28978
29204
|
shownInvId = null;
|
|
28979
29205
|
shownDetailId = null;
|
|
@@ -28998,6 +29224,8 @@ const STUDIO_SCRIPT = `
|
|
|
28998
29224
|
const body = { targetId: id, kind, event };
|
|
28999
29225
|
const options = active.collectOpts ? active.collectOpts() : undefined;
|
|
29000
29226
|
if (options) body.options = options;
|
|
29227
|
+
const rawArgs = active.collectRaw ? active.collectRaw() : undefined;
|
|
29228
|
+
if (rawArgs) body.rawArgs = rawArgs;
|
|
29001
29229
|
const res = await fetch('/api/run', {
|
|
29002
29230
|
method: 'POST',
|
|
29003
29231
|
headers: { 'content-type': 'application/json' },
|
|
@@ -29396,6 +29624,7 @@ function renderStudioHtml(appLabel, cliName) {
|
|
|
29396
29624
|
</section>
|
|
29397
29625
|
</main>
|
|
29398
29626
|
<script>window.__OPTION_SPECS__ = ${JSON.stringify(OPTION_SPECS).replace(/</g, "\\u003c")};<\/script>
|
|
29627
|
+
<script>window.__FLAG_CATALOG__ = ${JSON.stringify(buildFlagCatalog()).replace(/</g, "\\u003c")};<\/script>
|
|
29399
29628
|
<script>${STUDIO_SCRIPT}<\/script>
|
|
29400
29629
|
</body>
|
|
29401
29630
|
</html>`;
|
|
@@ -29815,6 +30044,7 @@ function createStudioDispatcher(config) {
|
|
|
29815
30044
|
writeFileSync(envFile, JSON.stringify(envVars));
|
|
29816
30045
|
args.push("--env-vars", envFile);
|
|
29817
30046
|
}
|
|
30047
|
+
args.push(...tokenizeRawArgs(req.rawArgs));
|
|
29818
30048
|
const { code, stdout, stderr } = await runChild(spawnFn, nodeBin, [config.cliEntry, ...args], config.cwd ?? process.cwd(), invocationId, req.targetId, config.bus, clock);
|
|
29819
30049
|
const durationMs = clock() - startedAt;
|
|
29820
30050
|
const ok = code === 0;
|
|
@@ -30300,7 +30530,8 @@ function createStudioServeManager(config) {
|
|
|
30300
30530
|
...spec.portArgs,
|
|
30301
30531
|
...buildSharedChildArgs(config),
|
|
30302
30532
|
...buildPerRunArgs(req.kind, req.options),
|
|
30303
|
-
...config.watch === true ? ["--watch"] : []
|
|
30533
|
+
...config.watch === true ? ["--watch"] : [],
|
|
30534
|
+
...tokenizeRawArgs(req.rawArgs)
|
|
30304
30535
|
];
|
|
30305
30536
|
}
|
|
30306
30537
|
async function start(req) {
|
|
@@ -30521,7 +30752,7 @@ const STUDIO_TARGET_KINDS = [
|
|
|
30521
30752
|
*/
|
|
30522
30753
|
function coerceRunRequest(body) {
|
|
30523
30754
|
if (typeof body !== "object" || body === null) throw new Error("Request body must be a JSON object.");
|
|
30524
|
-
const { targetId, kind, event, options } = body;
|
|
30755
|
+
const { targetId, kind, event, options, rawArgs } = body;
|
|
30525
30756
|
if (typeof targetId !== "string" || targetId.trim() === "") throw new Error("Request body must include a non-empty \"targetId\" string.");
|
|
30526
30757
|
if (typeof kind !== "string" || !STUDIO_TARGET_KINDS.includes(kind)) throw new Error(`Request body "kind" must be one of: ${STUDIO_TARGET_KINDS.join(", ")}.`);
|
|
30527
30758
|
let runOptions;
|
|
@@ -30531,11 +30762,18 @@ function coerceRunRequest(body) {
|
|
|
30531
30762
|
buildPerRunArgs(kind, runOptions);
|
|
30532
30763
|
resolveEnvVars(kind, runOptions);
|
|
30533
30764
|
}
|
|
30765
|
+
let runRawArgs;
|
|
30766
|
+
if (rawArgs !== void 0) {
|
|
30767
|
+
if (typeof rawArgs !== "string") throw new Error("Request body \"rawArgs\" must be a string.");
|
|
30768
|
+
tokenizeRawArgs(rawArgs);
|
|
30769
|
+
runRawArgs = rawArgs;
|
|
30770
|
+
}
|
|
30534
30771
|
return {
|
|
30535
30772
|
targetId,
|
|
30536
30773
|
kind,
|
|
30537
30774
|
event,
|
|
30538
|
-
...runOptions !== void 0 ? { options: runOptions } : {}
|
|
30775
|
+
...runOptions !== void 0 ? { options: runOptions } : {},
|
|
30776
|
+
...runRawArgs !== void 0 ? { rawArgs: runRawArgs } : {}
|
|
30539
30777
|
};
|
|
30540
30778
|
}
|
|
30541
30779
|
/**
|
|
@@ -30747,4 +30985,4 @@ function addStudioSpecificOptions(cmd) {
|
|
|
30747
30985
|
|
|
30748
30986
|
//#endregion
|
|
30749
30987
|
export { SOFT_RELOAD_COMPLETION_LOG_SUFFIX as $, listTargets as $n, buildMethodArn as $t, addCommonEcsServiceOptions as A, architectureToPlatform as An, createWatchPredicates as At, ImageOverrideError as B, LocalStateSourceError as Bn, filterRoutesByApiIdentifiers as Bt, resolveAlbFrontDoor as C, ConnectionRegistry as Cn, resolveProfileCredentials as Cr, renderCodeDockerfile as Ct, addRunTaskSpecificOptions as D, buildConnectEvent as Dn, createLocalInvokeCommand as Dt, serviceStrategy as E, parseConnectionsPath as En, addInvokeSpecificOptions as Et, parseMaxTasks as F, EcsTaskResolutionError as Fn, buildStageMap as Ft, resolveImageOverrides as G, resolveCfnRegion as Gn, resolveServiceIntegrationParameters as Gt, enforceImageOverrideOrphans as H, isCfnFlagPresent as Hn, readMtlsMaterialsFromDisk as Ht, parseRestartPolicy as I, substituteAgainstState as In, materializeLayerFromArn as It, isLocalCdkAssetImage as J, collectSsmParameterRefs as Jn, buildJwksUrlFromIssuer as Jt, runImageOverrideBuilds as K, resolveCfnStackName as Kn, defaultCredentialsLoader as Kt, resolveEcsAssumeRoleOption as L, substituteAgainstStateAsync as Ln, resolveEnvVars$1 as Lt, addImageOverrideOptions as M, resolveRuntimeCodeMountPath as Mn, createAuthorizerCache as Mt, buildEcsImageResolutionContext$1 as N, resolveRuntimeFileExtension as Nn, createFileWatcher as Nt, createLocalRunTaskCommand as O, buildDisconnectEvent as On, addStartApiSpecificOptions as Ot, ecsClusterOption as P, resolveRuntimeImage as Pn, attachStageContext as Pt, DEFAULT_SHADOW_READY_TIMEOUT_MS as Q, countTargets as Qn, verifyJwtViaDiscovery as Qt, resolveSharedSidecarCredentials as R, substituteEnvVarsFromState as Rn, availableApiIdentifiers as Rt, isApplicationLoadBalancer as S, bufferToBody as Sn, buildStsClientConfig as Sr, computeCodeImageTag as St, createLocalStartServiceCommand as T, handleConnectionsRequest as Tn, classifySourceChange as Tt, mergeForService as U, rejectExplicitCfnStackWithMultipleStacks as Un, startApiServer as Ut, buildImageOverrideTag as V, createLocalStateProvider as Vn, groupRoutesByServer as Vt, parseImageOverrideFlags as W, resolveCfnFallbackRegion as Wn, resolveSelectionExpression as Wt, buildCloudMapIndex as X, resolveWatchConfig as Xn, verifyCognitoJwt as Xt, listPinnedTargets as Y, resolveSsmParameters as Yn, createJwksCache as Yt, CloudMapRegistry as Z, resolveSingleTarget as Zn, verifyJwtAuthorizer as Zt, addAlbSpecificOptions as _, selectIntegrationResponse as _n, derivePseudoParametersFromRegion as _r, invokeAgentCore as _t, createStudioServeManager as a, applyCorsResponseHeaders as an, webSocketApiMatchesIdentifier as ar, invokeAgentCoreWs as at, parseLbPortOverrides as b, HOST_GATEWAY_MIN_VERSION as bn, tryResolveImageFnJoin as br, SUPPORTED_CODE_RUNTIMES as bt, filterStudioTargetGroups as c, isFunctionUrlOacFronted as cn, resolveLambdaArnIntrinsic as cr, a2aInvokeOnce as ct, renderStudioHtml as d, translateLambdaResponse as dn, AGENTCORE_HTTP_PROTOCOL as dr, MCP_PROTOCOL_VERSION as dt, computeRequestIdentityHash as en, availableWebSocketApiIdentifiers as er, setShadowReadyTimeoutMs as et, createStudioStore as f, applyAuthorizerOverlay as fn, AGENTCORE_MCP_PROTOCOL as fr, mcpInvokeOnce as ft, formatTargetListing as g, pickResponseTemplate as gn, resolveAgentCoreTarget as gr, AGENTCORE_SESSION_ID_HEADER as gt, createLocalListCommand as h, evaluateResponseParameters as hn, pickAgentCoreCandidateStack as hr, signAgentCoreInvocation as ht, createLocalStudioCommand as i, attachAuthorizers as in, parseSelectionExpressionPath as ir, createLocalInvokeAgentCoreCommand as it, addEcsAssumeRoleOptions as j, buildContainerImage as jn, resolveApiTargetSubset as jt, MAX_TASKS_SUBNET_RANGE_CAP as k, buildMessageEvent as kn, createLocalStartApiCommand as kt, startStudioServer as l, matchPreflight as ln, AGENTCORE_A2A_PROTOCOL as lr, MCP_CONTAINER_PORT as lt, addListSpecificOptions as m, buildRestV1Event as mn, AgentCoreResolutionError as mr, AGENTCORE_SIGV4_SERVICE as mt, coerceRunRequest as n, invokeRequestAuthorizer as nn, discoverWebSocketApisOrThrow as nr, attachContainerLogStreamer as nt, startStudioProxy as o, buildCorsConfigByApiId as on, discoverRoutes as or, A2A_CONTAINER_PORT as ot, StudioEventBus as p, buildHttpApiV2Event as pn, AGENTCORE_RUNTIME_TYPE as pr, parseSseForJsonRpc as pt, describePinnedImageUri as q, CfnLocalStateProvider as qn, buildCognitoJwksUrl as qt, coerceStopRequest as r, invokeTokenAuthorizer as rn, filterWebSocketApisByIdentifiers as rr, addInvokeAgentCoreSpecificOptions as rt, createStudioDispatcher as s, buildCorsConfigFromCloudFrontChain as sn, pickRefLogicalId as sr, A2A_PATH as st, addStudioSpecificOptions as t, evaluateCachedLambdaPolicy as tn, discoverWebSocketApis as tr, getContainerNetworkIp as tt, toStudioTargetGroups as u, matchRoute as un, AGENTCORE_AGUI_PROTOCOL as ur, MCP_PATH as ut, albStrategy as v, tryParseStatus as vn, formatStateRemedy as vr, waitForAgentCorePing as vt, addStartServiceSpecificOptions as w, buildMgmtEndpointEnvUrl as wn, toCmdArgv as wt, resolveAlbTarget as x, probeHostGatewaySupport as xn, LocalInvokeBuildError as xr, buildAgentCoreCodeImage as xt, createLocalStartAlbCommand as y, VtlEvaluationError as yn, substituteImagePlaceholders as yr, downloadAndExtractS3Bundle as yt, runEcsServiceEmulator as z, substituteEnvVarsFromStateAsync as zn, filterRoutesByApiIdentifier as zt };
|
|
30750
|
-
//# sourceMappingURL=local-studio-
|
|
30988
|
+
//# sourceMappingURL=local-studio-Dd271q0Z.js.map
|