cdk-local 0.143.1 → 0.143.3
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/README.md +17 -0
- package/dist/cli.js +2 -2
- package/dist/index.js +1 -1
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +1 -1
- package/dist/local-studio-C1YGBilh.d.ts.map +1 -1
- package/dist/{local-studio-B16O8QaL.js → local-studio-hmQ2mqsf.js} +77 -34
- package/dist/{local-studio-B16O8QaL.js.map → local-studio-hmQ2mqsf.js.map} +1 -1
- package/package.json +1 -1
|
@@ -32604,7 +32604,7 @@ const STUDIO_CSS = `
|
|
|
32604
32604
|
display: flex; align-items: center; gap: 10px;
|
|
32605
32605
|
}
|
|
32606
32606
|
header .brand { font-weight: 700; color: #fff; }
|
|
32607
|
-
header .meta { color: #
|
|
32607
|
+
header .meta { color: #bdbdbd; font-size: 12px; }
|
|
32608
32608
|
#session-bar {
|
|
32609
32609
|
display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
|
|
32610
32610
|
padding: 5px 14px; background: #141414; border-bottom: 1px solid #2a2a2a;
|
|
@@ -32622,7 +32622,7 @@ const STUDIO_CSS = `
|
|
|
32622
32622
|
}
|
|
32623
32623
|
#session-bar button:hover { background: #314b34; }
|
|
32624
32624
|
#session-bar #sess-msg { color: #7bd88f; min-width: 40px; }
|
|
32625
|
-
#session-bar .sess-synth { color: #
|
|
32625
|
+
#session-bar .sess-synth { color: #bdbdbd; margin-left: auto; }
|
|
32626
32626
|
main {
|
|
32627
32627
|
display: grid; grid-template-columns: 280px 5px 1fr 5px 320px;
|
|
32628
32628
|
/* Body is a flex column (header + session-bar + main); main fills the
|
|
@@ -32634,7 +32634,7 @@ const STUDIO_CSS = `
|
|
|
32634
32634
|
.splitter:hover, .splitter.dragging { background: #4ec97a; }
|
|
32635
32635
|
.pane h2 {
|
|
32636
32636
|
margin: 0; padding: 8px 12px; font-size: 11px; text-transform: uppercase;
|
|
32637
|
-
letter-spacing: 0.5px; color: #
|
|
32637
|
+
letter-spacing: 0.5px; color: #cfcfcf; background: #151515;
|
|
32638
32638
|
position: sticky; top: 0; border-bottom: 1px solid #2a2a2a; z-index: 1;
|
|
32639
32639
|
}
|
|
32640
32640
|
.pane-head {
|
|
@@ -32664,7 +32664,7 @@ const STUDIO_CSS = `
|
|
|
32664
32664
|
border-bottom: 1px solid rgba(227, 194, 114, 0.3);
|
|
32665
32665
|
}
|
|
32666
32666
|
.group-title:hover { background: rgba(227, 194, 114, 0.18); }
|
|
32667
|
-
.group-title .caret { color: #
|
|
32667
|
+
.group-title .caret { color: #bdbdbd; font-size: 9px; width: 9px; display: inline-block; transition: transform .1s; }
|
|
32668
32668
|
.group-title.open .caret { transform: rotate(90deg); }
|
|
32669
32669
|
/* A long group label (e.g. "Application Load Balancers") would wrap onto a
|
|
32670
32670
|
second line in the 280px pane and shove the count off to the right; keep
|
|
@@ -32674,7 +32674,7 @@ const STUDIO_CSS = `
|
|
|
32674
32674
|
flex: 0 1 auto; min-width: 0;
|
|
32675
32675
|
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
|
32676
32676
|
}
|
|
32677
|
-
.group-title .count { color: #
|
|
32677
|
+
.group-title .count { color: #bdbdbd; flex: none; }
|
|
32678
32678
|
.group-body.collapsed { display: none; }
|
|
32679
32679
|
.target {
|
|
32680
32680
|
padding: 6px 12px; display: flex; align-items: center; gap: 8px;
|
|
@@ -32718,7 +32718,7 @@ const STUDIO_CSS = `
|
|
|
32718
32718
|
background: #18223a; border-bottom: 1px solid #2b3c5e;
|
|
32719
32719
|
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
|
32720
32720
|
}
|
|
32721
|
-
.target .kind { color: #
|
|
32721
|
+
.target .kind { color: #bdbdbd; font-size: 11px; }
|
|
32722
32722
|
.target .invoke-btn {
|
|
32723
32723
|
padding: 2px 10px; font: 11px ui-monospace, Menlo, monospace; font-weight: 700;
|
|
32724
32724
|
color: #0d1f12; background: #4ec97a; border: 0; border-radius: 3px; cursor: pointer;
|
|
@@ -32739,7 +32739,7 @@ const STUDIO_CSS = `
|
|
|
32739
32739
|
}
|
|
32740
32740
|
.row:hover { background: #222; }
|
|
32741
32741
|
.row.sel { background: #2a3550; }
|
|
32742
|
-
.row .ts { color: #
|
|
32742
|
+
.row .ts { color: #bdbdbd; }
|
|
32743
32743
|
.row .label { color: #ddd; flex: 1; overflow: hidden; text-overflow: ellipsis; }
|
|
32744
32744
|
.row.reinvoke .label::before { content: '\\21A9 '; color: #6aa0ff; margin-right: 2px; }
|
|
32745
32745
|
.row .status { color: #7bd88f; }
|
|
@@ -32785,7 +32785,7 @@ const STUDIO_CSS = `
|
|
|
32785
32785
|
text-transform: uppercase; letter-spacing: 0.7px; color: #6cb6ff;
|
|
32786
32786
|
}
|
|
32787
32787
|
.req-composer .req-result .req-line { color: #cdd6e0; font-weight: 600; }
|
|
32788
|
-
.req-composer .req-result .req-resp-headers { color: #
|
|
32788
|
+
.req-composer .req-result .req-resp-headers { color: #c2c2c2; }
|
|
32789
32789
|
.req-composer .req-result .req-resp-body { color: #d6d6d6; }
|
|
32790
32790
|
/* Make the major output-section headings (the result REQUEST / RESPONSE pair
|
|
32791
32791
|
+ the serve LOGS) prominent (vs the muted 11px grey .section h3): larger,
|
|
@@ -32795,13 +32795,15 @@ const STUDIO_CSS = `
|
|
|
32795
32795
|
order (.section h3 is declared later in this stylesheet). */
|
|
32796
32796
|
.req-composer .req-result .req-req h3,
|
|
32797
32797
|
.req-composer .req-result .req-resp h3,
|
|
32798
|
-
.section.serve-logs h3
|
|
32798
|
+
.section.serve-logs h3,
|
|
32799
|
+
.section.detail-out h3 {
|
|
32799
32800
|
font-size: 13px; font-weight: 700; letter-spacing: 0.4px;
|
|
32800
32801
|
padding-bottom: 4px; margin-bottom: 8px; border-bottom: 1px solid #2c2c2c;
|
|
32801
32802
|
}
|
|
32802
32803
|
.req-composer .req-result .req-req h3,
|
|
32803
32804
|
.req-composer .req-result .req-resp h3,
|
|
32804
|
-
.section.serve-logs h3
|
|
32805
|
+
.section.serve-logs h3,
|
|
32806
|
+
.section.detail-out h3 { color: #e3d18a; }
|
|
32805
32807
|
/* The serve workspace's structural labels (Started with / Endpoints, and the
|
|
32806
32808
|
request-composer form's Request / Headers / Body) are blue — matching the
|
|
32807
32809
|
result's blue Headers / Body sub-labels, distinct from the yellow output
|
|
@@ -32810,7 +32812,17 @@ const STUDIO_CSS = `
|
|
|
32810
32812
|
.section.started-with h3,
|
|
32811
32813
|
.section.endpoints h3,
|
|
32812
32814
|
.section.req-composer > h3,
|
|
32815
|
+
.section.options h3,
|
|
32813
32816
|
.req-composer > .opt-label { color: #6cb6ff; }
|
|
32817
|
+
/* Image override is the single most consequential ECS knob — a pinned image
|
|
32818
|
+
silently ignores local source edits — so its block gets a boxed amber
|
|
32819
|
+
accent to stand out from the ordinary blue option headings (the same amber
|
|
32820
|
+
as its "local edits do not take effect" io-hint caveat). Declared AFTER the
|
|
32821
|
+
blue .section.options h3 (equal specificity) so amber wins by source order. */
|
|
32822
|
+
.section.image-override { background: #211d12; border-left: 3px solid #e3b34a; }
|
|
32823
|
+
.section.image-override h3 {
|
|
32824
|
+
color: #e3b34a; font-size: 13px; font-weight: 700; letter-spacing: 0.4px;
|
|
32825
|
+
}
|
|
32814
32826
|
.composer button:disabled { background: #333; color: #888; cursor: default; }
|
|
32815
32827
|
.composer .reinvoke-btn { margin-top: 6px; padding: 4px 14px; }
|
|
32816
32828
|
.log-clear {
|
|
@@ -32824,7 +32836,11 @@ const STUDIO_CSS = `
|
|
|
32824
32836
|
.clear-row { display: flex; justify-content: flex-end; margin: 4px 0; }
|
|
32825
32837
|
.composer .err { color: #e0707a; margin-top: 6px; min-height: 18px; }
|
|
32826
32838
|
.section { padding: 8px 12px; border-bottom: 1px solid #222; }
|
|
32827
|
-
|
|
32839
|
+
/* Default block-section heading is blue (the WebSocket console heading + any
|
|
32840
|
+
section without a more specific colour) — the yellow output headings
|
|
32841
|
+
(.serve-logs / .detail-out / result req-req/req-resp) and amber
|
|
32842
|
+
image-override override it; the muted grey it used to be is gone. */
|
|
32843
|
+
.section h3 { margin: 0 0 6px; font-size: 11px; color: #6cb6ff; text-transform: uppercase; }
|
|
32828
32844
|
.section h3 .ok { color: #7bd88f; }
|
|
32829
32845
|
.section h3 .bad { color: #e0707a; }
|
|
32830
32846
|
.section pre { margin: 0; white-space: pre-wrap; word-break: break-word; color: #cfcfcf; }
|
|
@@ -32852,9 +32868,9 @@ const STUDIO_CSS = `
|
|
|
32852
32868
|
#log-results.active { display: block; }
|
|
32853
32869
|
.log-hit { padding: 4px 12px; border-bottom: 1px solid #222; white-space: pre-wrap;
|
|
32854
32870
|
word-break: break-word; }
|
|
32855
|
-
.log-hit .lt { color: #
|
|
32871
|
+
.log-hit .lt { color: #bdbdbd; }
|
|
32856
32872
|
.log-hit .lg { color: #6aa9ff; }
|
|
32857
|
-
.log-hits-meta { padding: 6px 12px; color: #
|
|
32873
|
+
.log-hits-meta { padding: 6px 12px; color: #bdbdbd; font-size: 11px; }
|
|
32858
32874
|
/* Per-line log severity colour (parsed from the WARN: / ERROR: prefix the
|
|
32859
32875
|
compact logger emits) so warn / error stand out in the LOGS panel + search
|
|
32860
32876
|
even with no ANSI colour over the child pipe. */
|
|
@@ -32866,7 +32882,12 @@ const STUDIO_CSS = `
|
|
|
32866
32882
|
#conn.down { color: #e0707a; }
|
|
32867
32883
|
.options .opt-row { display: flex; align-items: center; gap: 8px; margin: 6px 0; }
|
|
32868
32884
|
.options .opt-row.opt-col { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
|
|
32869
|
-
|
|
32885
|
+
/* Curated-composer block labels (Listener port remap / Bearer token / Env
|
|
32886
|
+
vars / scalar labels) are blue — matching the serve-workspace structural
|
|
32887
|
+
labels + the .section.options headings — so they read on the dark pane
|
|
32888
|
+
instead of vanishing as faint grey. The all-options + io-label overrides
|
|
32889
|
+
below keep their own (white / light) colours. */
|
|
32890
|
+
.opt-label { color: #6cb6ff; font-size: 12px; min-width: 120px; }
|
|
32870
32891
|
.opt-bool { color: #ddd; font-size: 12px; display: inline-flex; align-items: center; gap: 4px; cursor: pointer; }
|
|
32871
32892
|
.options input[type=text], .options input[type=number] {
|
|
32872
32893
|
flex: 1; background: #111; color: #ddd; border: 1px solid #333; border-radius: 3px;
|
|
@@ -32877,7 +32898,7 @@ const STUDIO_CSS = `
|
|
|
32877
32898
|
.pair-row { display: flex; align-items: center; gap: 6px; }
|
|
32878
32899
|
.pair-in { width: 1px; flex: 1; background: #111; color: #ddd; border: 1px solid #333;
|
|
32879
32900
|
border-radius: 3px; padding: 4px 6px; font: 12px ui-monospace, Menlo, monospace; min-width: 0; }
|
|
32880
|
-
.pair-sep { color: #
|
|
32901
|
+
.pair-sep { color: #bdbdbd; }
|
|
32881
32902
|
.pair-x { background: #2a2a2a; color: #bbb; border: none; border-radius: 3px; cursor: pointer;
|
|
32882
32903
|
padding: 2px 7px; font: 12px ui-monospace, monospace; }
|
|
32883
32904
|
.pair-x:hover { background: #3a2a2a; color: #e0707a; }
|
|
@@ -32888,15 +32909,19 @@ const STUDIO_CSS = `
|
|
|
32888
32909
|
padding: 4px 6px; font: 12px ui-monospace, Menlo, monospace; min-width: 0; }
|
|
32889
32910
|
.options select:focus { outline: none; border-color: #4ec97a; }
|
|
32890
32911
|
details.all-options { margin: 8px 0; border-top: 1px solid #2a2a2a; padding-top: 6px; }
|
|
32891
|
-
details.all-options > summary { color: #
|
|
32892
|
-
details.all-options > summary:hover { color: #
|
|
32912
|
+
details.all-options > summary { color: #6cb6ff; font-size: 12px; cursor: pointer; user-select: none; }
|
|
32913
|
+
details.all-options > summary:hover { color: #8ec7ff; }
|
|
32893
32914
|
.all-options .opt-row { display: flex; flex-direction: column; align-items: stretch; gap: 4px; margin: 6px 0; }
|
|
32894
32915
|
.all-options input.raw-args {
|
|
32895
32916
|
width: 100%; box-sizing: border-box; background: #111; color: #ddd; border: 1px solid #333;
|
|
32896
32917
|
border-radius: 3px; padding: 4px 6px; font: 12px ui-monospace, Menlo, monospace;
|
|
32897
32918
|
}
|
|
32898
32919
|
.all-options input.raw-args:focus { outline: none; border-color: #4ec97a; }
|
|
32899
|
-
|
|
32920
|
+
/* Secondary prose (flag descriptions, the raw-args hint, "(defaults...)"
|
|
32921
|
+
notes) is a readable light grey, not the near-invisible #777 it used to be
|
|
32922
|
+
on the dark pane — still dimmer than primary content, but legible. The
|
|
32923
|
+
amber io-hint caveat keeps its own colour via the two-class override. */
|
|
32924
|
+
.opt-hint { color: #c2c2c2; font-size: 11px; }
|
|
32900
32925
|
/* Image-override picker legibility (issue #396): the construct-path label is
|
|
32901
32926
|
a readable light color (long paths wrap cleanly), and the caveat hint is an
|
|
32902
32927
|
attention amber so the "local edits do not take effect" note is actually
|
|
@@ -32914,7 +32939,10 @@ const STUDIO_CSS = `
|
|
|
32914
32939
|
.all-options input.flag-control:focus, .all-options select.flag-control:focus {
|
|
32915
32940
|
outline: none; border-color: #4ec97a;
|
|
32916
32941
|
}
|
|
32917
|
-
|
|
32942
|
+
/* All-options flag labels are white, matching the checkbox (.opt-bool) flag
|
|
32943
|
+
labels in the same section — so a value-input flag name and a boolean flag
|
|
32944
|
+
name read uniformly instead of one being faint grey, the other white. */
|
|
32945
|
+
.all-options .opt-label { color: #ddd; }
|
|
32918
32946
|
.started-list { display: flex; flex-direction: column; gap: 3px; margin-top: 4px; }
|
|
32919
32947
|
.started-flag { color: #7bd88f; font-family: ui-monospace, Menlo, monospace; font-size: 11px; white-space: pre-wrap; word-break: break-all; }
|
|
32920
32948
|
.envkv-modes { display: flex; gap: 0; }
|
|
@@ -33377,7 +33405,7 @@ const STUDIO_SCRIPT = `
|
|
|
33377
33405
|
}
|
|
33378
33406
|
|
|
33379
33407
|
function buildImageOverridePicker(prefillValue) {
|
|
33380
|
-
const sec = el('div', 'section options');
|
|
33408
|
+
const sec = el('div', 'section options image-override');
|
|
33381
33409
|
sec.appendChild(el('h3', null, 'Image override'));
|
|
33382
33410
|
const r = buildImageOverrideRow('Local Dockerfile', prefillValue);
|
|
33383
33411
|
sec.appendChild(r.row);
|
|
@@ -33399,7 +33427,7 @@ const STUDIO_SCRIPT = `
|
|
|
33399
33427
|
// collect() returns a { [serviceId]: dockerfile } map threaded as
|
|
33400
33428
|
// imageOverrides (one --image-override service=df per entry).
|
|
33401
33429
|
function buildAlbImageOverridePicker(services, prefillMap) {
|
|
33402
|
-
const sec = el('div', 'section options');
|
|
33430
|
+
const sec = el('div', 'section options image-override');
|
|
33403
33431
|
sec.appendChild(el('h3', null, 'Image override (pinned backing services)'));
|
|
33404
33432
|
const rows = services.map(function (svc) {
|
|
33405
33433
|
const r = buildImageOverrideRow(svc.label, prefillMap ? prefillMap[svc.id] : undefined);
|
|
@@ -34709,12 +34737,12 @@ const STUDIO_SCRIPT = `
|
|
|
34709
34737
|
const ev = invById.get(invId);
|
|
34710
34738
|
if (!ev) return;
|
|
34711
34739
|
|
|
34712
|
-
const reqSec = el('div', 'section');
|
|
34740
|
+
const reqSec = el('div', 'section detail-out');
|
|
34713
34741
|
reqSec.appendChild(el('h3', null, 'Request'));
|
|
34714
34742
|
reqSec.appendChild(el('pre', null, ev.request != null ? fmt(ev.request) : '(none)'));
|
|
34715
34743
|
result.appendChild(reqSec);
|
|
34716
34744
|
|
|
34717
|
-
const respSec = el('div', 'section');
|
|
34745
|
+
const respSec = el('div', 'section detail-out');
|
|
34718
34746
|
const h = el('h3', null, 'Response');
|
|
34719
34747
|
if (ev.status != null) {
|
|
34720
34748
|
const cls = ev.status >= 200 && ev.status < 300 ? 'ok' : 'bad';
|
|
@@ -34726,7 +34754,7 @@ const STUDIO_SCRIPT = `
|
|
|
34726
34754
|
result.appendChild(respSec);
|
|
34727
34755
|
|
|
34728
34756
|
const logs = logsById.get(invId) || [];
|
|
34729
|
-
const logSec = el('div', 'section');
|
|
34757
|
+
const logSec = el('div', 'section detail-out');
|
|
34730
34758
|
logSec.appendChild(el('h3', null, 'Logs'));
|
|
34731
34759
|
const invLogPre = el('pre', null);
|
|
34732
34760
|
fillLogPre(invLogPre, logs);
|
|
@@ -34849,12 +34877,12 @@ const STUDIO_SCRIPT = `
|
|
|
34849
34877
|
head.appendChild(newReqBtn);
|
|
34850
34878
|
ws.appendChild(head);
|
|
34851
34879
|
|
|
34852
|
-
const reqSec = el('div', 'section');
|
|
34880
|
+
const reqSec = el('div', 'section detail-out');
|
|
34853
34881
|
reqSec.appendChild(el('h3', null, 'Request'));
|
|
34854
34882
|
reqSec.appendChild(el('pre', null, ev.request != null ? fmt(ev.request) : '(none)'));
|
|
34855
34883
|
ws.appendChild(reqSec);
|
|
34856
34884
|
|
|
34857
|
-
const respSec = el('div', 'section');
|
|
34885
|
+
const respSec = el('div', 'section detail-out');
|
|
34858
34886
|
const h = el('h3', null, 'Response');
|
|
34859
34887
|
if (ev.status != null) {
|
|
34860
34888
|
const cls = ev.status >= 200 && ev.status < 300 ? 'ok' : 'bad';
|
|
@@ -34866,7 +34894,7 @@ const STUDIO_SCRIPT = `
|
|
|
34866
34894
|
|
|
34867
34895
|
// Logs bound to THIS request at CloudWatch granularity (D5), fetched
|
|
34868
34896
|
// from the server store.
|
|
34869
|
-
const logSec = el('div', 'section');
|
|
34897
|
+
const logSec = el('div', 'section detail-out');
|
|
34870
34898
|
logSec.appendChild(el('h3', null, 'Logs'));
|
|
34871
34899
|
const logPre = el('pre', null, '(loading…)');
|
|
34872
34900
|
logSec.appendChild(logPre);
|
|
@@ -37233,18 +37261,30 @@ async function prepareEcsImageContexts(args) {
|
|
|
37233
37261
|
* Returns a `(id) => boolean` callback (true = pinned). Exported for testing.
|
|
37234
37262
|
*/
|
|
37235
37263
|
function makePinClassifier(args) {
|
|
37236
|
-
const { stacks, contextByStack, logger } = args;
|
|
37264
|
+
const { stacks, contextByStack, logger, stateBound } = args;
|
|
37237
37265
|
return (id) => {
|
|
37238
37266
|
try {
|
|
37239
37267
|
const stack = resolveEcsServiceStack(id, stacks);
|
|
37240
37268
|
return !isLocalCdkAssetImage(resolveEcsServiceTarget(id, stacks, stack ? contextByStack.get(stack.stackName) : void 0));
|
|
37241
37269
|
} catch (err) {
|
|
37242
|
-
logger.warn(`studio: could not classify image-pin status for ECS service '${id}'; leaving it unmarked (the image-override picker will not be offered)
|
|
37270
|
+
logger.warn(`studio: could not classify image-pin status for ECS service '${id}'; leaving it unmarked (the image-override picker will not be offered).${pinClassifyStateHint(stateBound)} ${err instanceof Error ? err.message : String(err)}`);
|
|
37243
37271
|
return false;
|
|
37244
37272
|
}
|
|
37245
37273
|
};
|
|
37246
37274
|
}
|
|
37247
37275
|
/**
|
|
37276
|
+
* The Session-bar `--from-cfn-stack` remedy appended to a pin-classify WARN
|
|
37277
|
+
* when the binding is NOT set (the common reason an INTRINSIC-ECR service
|
|
37278
|
+
* cannot be classified, so the override picker is silently absent). Returns an
|
|
37279
|
+
* empty string when the binding IS set — the resolver's own appended error
|
|
37280
|
+
* already names the real failure, and re-suggesting a flag the user already
|
|
37281
|
+
* passed is misleading. Shared by the service + task-def classifiers.
|
|
37282
|
+
*/
|
|
37283
|
+
function pinClassifyStateHint(stateBound) {
|
|
37284
|
+
if (stateBound !== false) return "";
|
|
37285
|
+
return " If this image is pinned to a deployed registry (e.g. ContainerImage.fromEcrRepository), set --from-cfn-stack in the Session bar so studio can resolve it and offer the image-override picker.";
|
|
37286
|
+
}
|
|
37287
|
+
/**
|
|
37248
37288
|
* Build the boot-time pin classifier {@link annotateEcsTaskPinnedTargets} calls
|
|
37249
37289
|
* per `ecs-task` task definition (issue #388) — the counterpart of
|
|
37250
37290
|
* {@link makePinClassifier} for task defs. Resolves the task via
|
|
@@ -37258,7 +37298,7 @@ function makePinClassifier(args) {
|
|
|
37258
37298
|
* Returns a `(id) => boolean` callback (true = pinned). Exported for testing.
|
|
37259
37299
|
*/
|
|
37260
37300
|
function makeTaskPinClassifier(args) {
|
|
37261
|
-
const { stacks, contextByStack, logger } = args;
|
|
37301
|
+
const { stacks, contextByStack, logger, stateBound } = args;
|
|
37262
37302
|
return (id) => {
|
|
37263
37303
|
try {
|
|
37264
37304
|
const stack = resolveEcsServiceStack(id, stacks);
|
|
@@ -37266,7 +37306,7 @@ function makeTaskPinClassifier(args) {
|
|
|
37266
37306
|
const representative = task.containers.find((c) => c.essential) ?? task.containers[0];
|
|
37267
37307
|
return representative !== void 0 && representative.image.kind !== "cdk-asset";
|
|
37268
37308
|
} catch (err) {
|
|
37269
|
-
logger.warn(`studio: could not classify image-pin status for ECS task definition '${id}'; leaving it unmarked (the image-override picker will not be offered)
|
|
37309
|
+
logger.warn(`studio: could not classify image-pin status for ECS task definition '${id}'; leaving it unmarked (the image-override picker will not be offered).${pinClassifyStateHint(stateBound)} ${err instanceof Error ? err.message : String(err)}`);
|
|
37270
37310
|
return false;
|
|
37271
37311
|
}
|
|
37272
37312
|
};
|
|
@@ -37344,15 +37384,18 @@ async function classifyStudioTargets(args) {
|
|
|
37344
37384
|
options: classifyOptions,
|
|
37345
37385
|
logger
|
|
37346
37386
|
});
|
|
37387
|
+
const stateBound = isCfnFlagPresent(classifyOptions);
|
|
37347
37388
|
const anyPinned = annotatePinnedEcsTargets(groups, makePinClassifier({
|
|
37348
37389
|
stacks,
|
|
37349
37390
|
contextByStack,
|
|
37350
|
-
logger
|
|
37391
|
+
logger,
|
|
37392
|
+
stateBound
|
|
37351
37393
|
}));
|
|
37352
37394
|
const anyTaskPinned = annotateEcsTaskPinnedTargets(groups, makeTaskPinClassifier({
|
|
37353
37395
|
stacks,
|
|
37354
37396
|
contextByStack,
|
|
37355
|
-
logger
|
|
37397
|
+
logger,
|
|
37398
|
+
stateBound
|
|
37356
37399
|
}));
|
|
37357
37400
|
const pinnedEcsByQualifiedId = /* @__PURE__ */ new Map();
|
|
37358
37401
|
for (const g of groups) {
|
|
@@ -37652,4 +37695,4 @@ function addStudioSpecificOptions(cmd) {
|
|
|
37652
37695
|
|
|
37653
37696
|
//#endregion
|
|
37654
37697
|
export { applyEdgeResponseResult as $, buildJwksUrlFromIssuer as $n, collectSsmParameterRefs as $r, buildCloudMapIndex as $t, startAgentCoreHttpServer as A, classifySourceChange as An, handleConnectionsRequest as Ar, addRunTaskSpecificOptions as At, idFromArn as B, buildStageMap as Bn, EcsTaskResolutionError as Br, resolveEcsAssumeRoleOption as Bt, addListSpecificOptions as C, formatStateRemedy as Ci, waitForAgentCorePing as Cn, tryParseStatus as Cr, parseLbPortOverrides as Ct, createLocalStartAgentCoreCommand as D, buildStsClientConfig as Di, computeCodeImageTag as Dn, bufferToBody as Dr, addStartServiceSpecificOptions as Dt, addStartAgentCoreSpecificOptions as E, LocalInvokeBuildError as Ei, buildAgentCoreCodeImage as En, probeHostGatewaySupport as Er, resolveAlbFrontDoor as Et, createLocalStartCloudFrontCommand as F, createWatchPredicates as Fn, architectureToPlatform as Fr, addImageOverrideOptions as Ft, classifyS3Error as G, filterRoutesByApiIdentifiers as Gn, LocalStateSourceError as Gr, enforceImageOverrideOrphans as Gt, createDeployedKvsDataSource as H, resolveEnvVars$1 as Hn, substituteAgainstStateAsync as Hr, runEcsServiceEmulator as Ht, normalizeKvsFileKeys as I, resolveApiTargetSubset as In, buildContainerImage as Ir, buildEcsImageResolutionContext$1 as It, startCloudFrontServer as J, startApiServer as Jn, rejectExplicitCfnStackWithMultipleStacks as Jr, resolveImageOverrides as Jt, createS3OriginReader as K, groupRoutesByServer as Kn, createLocalStateProvider as Kr, mergeForService as Kt, parseKvsFileOverrides as L, createAuthorizerCache as Ln, resolveRuntimeCodeMountPath as Lr, ecsClusterOption as Lt, startAgentCoreWsBridge as M, createLocalInvokeCommand as Mn, buildConnectEvent as Mr, MAX_TASKS_SUBNET_RANGE_CAP as Mt, LocalStartCloudFrontError as N, addStartApiSpecificOptions as Nn, buildDisconnectEvent as Nr, addCommonEcsServiceOptions as Nt, buildAgentCoreServeAuthCheck as O, resolveProfileCredentials as Oi, renderCodeDockerfile as On, ConnectionRegistry as Or, createLocalStartServiceCommand as Ot, addStartCloudFrontSpecificOptions as P, createLocalStartApiCommand as Pn, buildMessageEvent as Pr, addEcsAssumeRoleOptions as Pt, applyEdgeRequestResult as Q, buildCognitoJwksUrl as Qn, CfnLocalStateProvider as Qr, listPinnedTargets as Qt, parseOriginOverrides as R, createFileWatcher as Rn, resolveRuntimeFileExtension as Rr, parseMaxTasks as Rt, StudioEventBus as S, derivePseudoParametersFromRegion as Si, waitForAgentCoreHttpReady as Sn, selectIntegrationResponse as Sr, createLocalStartAlbCommand as St, formatTargetListing as T, tryResolveImageFnJoin as Ti, SUPPORTED_CODE_RUNTIMES as Tn, HOST_GATEWAY_MIN_VERSION as Tr, isApplicationLoadBalancer as Tt, resolveDeployedKvsArnByName as U, availableApiIdentifiers as Un, substituteEnvVarsFromState as Ur, ImageOverrideError as Ut, resolveKvsModulesForDistribution as V, materializeLayerFromArn as Vn, substituteAgainstState as Vr, resolveSharedSidecarCredentials as Vt, resolveDeployedOriginBucket as W, filterRoutesByApiIdentifier as Wn, substituteEnvVarsFromStateAsync as Wr, buildImageOverrideTag as Wt, serveFromStaticOrigin as X, resolveServiceIntegrationParameters as Xn, resolveCfnRegion as Xr, describePinnedImageUri as Xt, resolveErrorResponseCandidates as Y, resolveSelectionExpression as Yn, resolveCfnFallbackRegion as Yr, runImageOverrideBuilds as Yt, serveLambdaUrlOrigin as Z, defaultCredentialsLoader as Zn, resolveCfnStackName as Zr, isLocalCdkAssetImage as Zt, filterStudioTargetGroups as _, AGENTCORE_MCP_PROTOCOL as _i, parseSseForJsonRpc as _n, applyAuthorizerOverlay as _r, createCloudFrontModule as _t, createLocalStudioCommand as a, availableWebSocketApiIdentifiers as ai, attachContainerLogStreamer as an, computeRequestIdentityHash as ar, describeS3OriginDomain as at, renderStudioHtml as b, pickAgentCoreCandidateStack as bi, AGENTCORE_SESSION_ID_HEADER as bn, evaluateResponseParameters as br, addAlbSpecificOptions as bt, startStudioProxy as c, filterWebSocketApisByIdentifiers as ci, bridgeAgentCoreWs as cn, invokeTokenAuthorizer as cr, pickFunctionUrlLogicalIdFromOrigin as ct, createStudioDispatcher as d, discoverRoutes as di, A2A_PATH as dn, buildCorsConfigByApiId as dr, pickTargetFunctionLogicalId as dt, resolveSsmParameters as ei, CloudMapRegistry as en, createJwksCache as er, buildEdgeRequestEvent as et, filterStudioCustomResources as f, pickRefLogicalId as fi, a2aInvokeOnce as fn, buildCorsConfigFromCloudFrontChain as fr, resolveCloudFrontDistribution as ft, annotatePinnedEcsTargets as g, AGENTCORE_HTTP_PROTOCOL as gi, mcpInvokeOnce as gn, translateLambdaResponse as gr, stripCloudFrontImport as gt, annotateEcsTaskPinnedTargets as h, AGENTCORE_AGUI_PROTOCOL as hi, MCP_PROTOCOL_VERSION as hn, matchRoute as hr, runViewerResponse as ht, coerceStopRequest as i, listTargets as ii, getContainerNetworkIp as in, buildMethodArn as ir, CLOUDFRONT_DISTRIBUTION_TYPE as it, attachAgentCoreWsBridge as j, addInvokeSpecificOptions as jn, parseConnectionsPath as jr, createLocalRunTaskCommand as jt, selectServeInboundAuth as k, toCmdArgv as kn, buildMgmtEndpointEnvUrl as kr, serviceStrategy as kt, relayServeRequest as l, parseSelectionExpressionPath as li, invokeAgentCoreWs as ln, attachAuthorizers as lr, pickKvsLogicalIdFromArn as lt, annotateAlbPinnedBackingServices as m, AGENTCORE_A2A_PROTOCOL as mi, MCP_PATH as mn, matchPreflight as mr, runViewerRequest as mt, coerceRunRequest as n, resolveSingleTarget as ni, SOFT_RELOAD_COMPLETION_LOG_SUFFIX as nn, verifyJwtAuthorizer as nr, edgeHeadersToHttp as nt, resolveServeBaseUrl as o, discoverWebSocketApis as oi, addInvokeAgentCoreSpecificOptions as on, evaluateCachedLambdaPolicy as or, extractKvsAssociations as ot, isCustomResourceLambdaTarget as p, resolveLambdaArnIntrinsic as pi, MCP_CONTAINER_PORT as pn, isFunctionUrlOacFronted as pr, compileCloudFrontFunction as pt, matchBehavior as q, readMtlsMaterialsFromDisk as qn, isCfnFlagPresent as qr, parseImageOverrideFlags as qt, coerceServeRequest as r, countTargets as ri, setShadowReadyTimeoutMs as rn, verifyJwtViaDiscovery as rr, httpHeadersToEdge as rt, createStudioServeManager as s, discoverWebSocketApisOrThrow as si, createLocalInvokeAgentCoreCommand as sn, invokeRequestAuthorizer as sr, isCloudFrontDistribution as st, addStudioSpecificOptions as t, resolveWatchConfig as ti, DEFAULT_SHADOW_READY_TIMEOUT_MS as tn, verifyCognitoJwt as tr, buildEdgeResponseEvent as tt, reinvoke as u, webSocketApiMatchesIdentifier as ui, A2A_CONTAINER_PORT as un, applyCorsResponseHeaders as ur, pickLambdaEdgeFunctionLogicalId as ut, startStudioServer as v, AGENTCORE_RUNTIME_TYPE as vi, AGENTCORE_SIGV4_SERVICE as vn, buildHttpApiV2Event as vr, createLocalFileKvsDataSource as vt, createLocalListCommand as w, substituteImagePlaceholders as wi, downloadAndExtractS3Bundle as wn, VtlEvaluationError as wr, resolveAlbTarget as wt, createStudioStore as x, resolveAgentCoreTarget as xi, invokeAgentCore as xn, pickResponseTemplate as xr, albStrategy as xt, toStudioTargetGroups as y, AgentCoreResolutionError as yi, signAgentCoreInvocation as yn, buildRestV1Event as yr, createUnboundCloudFrontModule as yt, resolveCloudFrontTarget as z, attachStageContext as zn, resolveRuntimeImage as zr, parseRestartPolicy as zt };
|
|
37655
|
-
//# sourceMappingURL=local-studio-
|
|
37698
|
+
//# sourceMappingURL=local-studio-hmQ2mqsf.js.map
|