@extension.dev/mcp 6.3.0 → 6.5.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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +105 -18
- package/README.md +15 -2
- package/bin/extension-mcp.js +1 -0
- package/dist/module.js +3942 -2053
- package/dist/src/lib/artifacts-api.d.ts +56 -0
- package/dist/src/lib/carrier.d.ts +0 -57
- package/dist/src/lib/credentials.d.ts +0 -9
- package/dist/src/lib/device-flow.d.ts +0 -6
- package/dist/src/lib/github-device.d.ts +0 -9
- package/dist/src/lib/guest-load-oracle.d.ts +0 -10
- package/dist/src/lib/login-flow.d.ts +0 -36
- package/dist/src/lib/preview-upload.d.ts +33 -0
- package/dist/src/lib/project-ignore.d.ts +10 -0
- package/dist/src/lib/publish.d.ts +0 -10
- package/dist/src/lib/registry-access.d.ts +3 -19
- package/dist/src/lib/registry.d.ts +0 -65
- package/dist/src/lib/share-record.d.ts +33 -0
- package/dist/src/lib/vendor/chrome-theme/chrome-theme-color-math.d.ts +84 -0
- package/dist/src/lib/vendor/chrome-theme/chrome-theme-reference.d.ts +270 -0
- package/dist/src/lib/vendor/chrome-theme/chrome-theme-resolve.d.ts +52 -0
- package/dist/src/tools/open.d.ts +1 -0
- package/dist/src/tools/preview-web.d.ts +76 -0
- package/dist/src/tools/shares.d.ts +51 -0
- package/dist/src/tools/stop.d.ts +0 -1
- package/dist/src/tools/store-status.d.ts +0 -9
- package/dist/src/tools/theme-verify.d.ts +22 -0
- package/extensions/live-preview/chromium/action/index.js +9 -1
- package/extensions/live-preview/chromium/background/service_worker.js +10 -2
- package/extensions/live-preview/chromium/manifest.json +1 -0
- package/package.json +2 -2
- package/server.json +3 -3
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ground truth for how CURRENT stable Chrome renders an installed extension
|
|
3
|
+
* theme, transcribed from the Chromium source tree (refs/heads/main, cached
|
|
4
|
+
* under parity/chromium-src-cache, fetched 2026-07-04).
|
|
5
|
+
*
|
|
6
|
+
* Three load-bearing facts anchor everything here:
|
|
7
|
+
*
|
|
8
|
+
* 1. browser_theme_pack.cc:237 kOverwritableColorTable is the complete list
|
|
9
|
+
* of manifest color keys modern Chrome parses. Anything else in
|
|
10
|
+
* theme.colors is silently dropped at parse time.
|
|
11
|
+
* 2. theme_service.cc:741 GetColorProviderKey sets custom_theme = nullptr
|
|
12
|
+
* for incognito profiles: incognito windows NEVER render an extension
|
|
13
|
+
* theme. Every *_incognito manifest key parses into the pack but is
|
|
14
|
+
* unreachable at render time.
|
|
15
|
+
* 3. chrome_color_provider_utils.cc ShouldApplyChromeMaterialOverrides
|
|
16
|
+
* returns !key.custom_theme: the GM3/material mixer layer is skipped
|
|
17
|
+
* entirely for themed clients, so the classic mixers + the
|
|
18
|
+
* theme_properties.cc defaults below are the exact render pipeline.
|
|
19
|
+
*/
|
|
20
|
+
/** How a manifest theme.colors key behaves in current stable Chrome. */
|
|
21
|
+
export type ChromeThemeColorKeyStatus =
|
|
22
|
+
/** Parsed and rendered (possibly only on specific surfaces). */
|
|
23
|
+
"rendered"
|
|
24
|
+
/** Parsed but never rendered (incognito windows drop themes). */
|
|
25
|
+
| "incognito-dead"
|
|
26
|
+
/** Not in kOverwritableColorTable: silently dropped at parse. */
|
|
27
|
+
| "dropped"
|
|
28
|
+
/** Legacy alias parsed into another key. */
|
|
29
|
+
| "alias";
|
|
30
|
+
export interface ChromeThemeColorKeyInfo {
|
|
31
|
+
status: ChromeThemeColorKeyStatus;
|
|
32
|
+
/** For "alias": the key that actually receives the value. */
|
|
33
|
+
aliasFor?: string;
|
|
34
|
+
note?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Per-key status table for manifest theme.colors, derived from
|
|
38
|
+
* kOverwritableColorTable (browser_theme_pack.cc:237-271) plus the
|
|
39
|
+
* incognito suppression (theme_service.cc:741) and the ntp_section legacy
|
|
40
|
+
* fallback (browser_theme_pack.cc:1451-1457).
|
|
41
|
+
*
|
|
42
|
+
* Keys of historical themes that do NOT appear in the table (tab_text_inactive,
|
|
43
|
+
* tab_text_incognito, ntp_link_underline, ntp_section_text,
|
|
44
|
+
* tab_background_separator, ...) are "dropped": ReadColorsFromJSON only
|
|
45
|
+
* accepts keys it can map (browser_theme_pack.cc:1459-1463).
|
|
46
|
+
*/
|
|
47
|
+
export declare const CHROME_THEME_COLOR_KEYS: Record<string, ChromeThemeColorKeyInfo>;
|
|
48
|
+
/** kTintTable (browser_theme_pack.cc:222-232). */
|
|
49
|
+
export declare const CHROME_THEME_TINT_KEYS: readonly ["buttons", "frame", "frame_inactive", "background_tab", "frame_incognito", "frame_incognito_inactive"];
|
|
50
|
+
/** kPersistingImages manifest keys (browser_theme_pack.cc:141-168). */
|
|
51
|
+
export declare const CHROME_THEME_IMAGE_KEYS: readonly ["theme_frame", "theme_frame_inactive", "theme_frame_incognito", "theme_frame_incognito_inactive", "theme_toolbar", "theme_tab_background", "theme_tab_background_inactive", "theme_tab_background_incognito", "theme_tab_background_incognito_inactive", "theme_ntp_background", "theme_frame_overlay", "theme_frame_overlay_inactive", "theme_button_background", "theme_ntp_attribution", "theme_window_control_background"];
|
|
52
|
+
/** kDisplayProperties (browser_theme_pack.cc:297-306). */
|
|
53
|
+
export declare const CHROME_THEME_PROPERTY_KEYS: readonly ["ntp_background_alignment", "ntp_background_repeat", "ntp_logo_alternate"];
|
|
54
|
+
/**
|
|
55
|
+
* theme_properties.cc GetLightModeColor defaults: the base colors the pack
|
|
56
|
+
* derivations and the classic mixers fall back to for themed clients
|
|
57
|
+
* (material overrides are off with a custom theme, so these ARE the
|
|
58
|
+
* baseline).
|
|
59
|
+
*/
|
|
60
|
+
export declare const CHROME_THEME_DEFAULTS: {
|
|
61
|
+
/** theme_properties.cc:39 COLOR_FRAME_ACTIVE. */
|
|
62
|
+
readonly frame: "#dee1e6";
|
|
63
|
+
/** chrome_color_mixer.cc:741 kColorToolbar (light). */
|
|
64
|
+
readonly toolbar: "#ffffff";
|
|
65
|
+
/** theme_properties.cc:54 / chrome_color_mixer.cc:799: kGoogleGrey800. */
|
|
66
|
+
readonly toolbarText: "#3c4043";
|
|
67
|
+
/** chrome_color_mixer.cc:762: HSLShift(kGoogleGrey700, TINT_BUTTONS). */
|
|
68
|
+
readonly toolbarButtonIconBase: "#5f6368";
|
|
69
|
+
/** theme_properties.cc:56 COLOR_NTP_BACKGROUND. */
|
|
70
|
+
readonly ntpBackground: "#ffffff";
|
|
71
|
+
/** theme_properties.cc:58 COLOR_NTP_TEXT. */
|
|
72
|
+
readonly ntpText: "#000000";
|
|
73
|
+
/** theme_properties.cc:60 COLOR_NTP_LINK. */
|
|
74
|
+
readonly ntpLink: "#063774";
|
|
75
|
+
/** theme_properties.cc:62 COLOR_NTP_HEADER. */
|
|
76
|
+
readonly ntpHeader: "#969696";
|
|
77
|
+
/** browser_theme_pack.cc:1680: omnibox text opaquify base, kGoogleGrey100. */
|
|
78
|
+
readonly omniboxTextOpaquifyBase: "#f1f3f4";
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* theme_properties.cc:218 GetDefaultTint (non-incognito, non-dark): the only
|
|
82
|
+
* default tint that is not a no-op is TINT_FRAME_INACTIVE, so an unspecified
|
|
83
|
+
* frame_inactive is a LIGHTENED frame, not a copy.
|
|
84
|
+
*/
|
|
85
|
+
export declare const CHROME_THEME_DEFAULT_TINTS: {
|
|
86
|
+
readonly frame: {
|
|
87
|
+
readonly h: -1;
|
|
88
|
+
readonly s: -1;
|
|
89
|
+
readonly l: -1;
|
|
90
|
+
};
|
|
91
|
+
/** theme_properties.cc:250: #DEE1E6 -> #E7EAED. */
|
|
92
|
+
readonly frame_inactive: {
|
|
93
|
+
readonly h: -1;
|
|
94
|
+
readonly s: -1;
|
|
95
|
+
readonly l: 0.642;
|
|
96
|
+
};
|
|
97
|
+
readonly buttons: {
|
|
98
|
+
readonly h: -1;
|
|
99
|
+
readonly s: -1;
|
|
100
|
+
readonly l: -1;
|
|
101
|
+
};
|
|
102
|
+
readonly background_tab: {
|
|
103
|
+
readonly h: -1;
|
|
104
|
+
readonly s: -1;
|
|
105
|
+
readonly l: -1;
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* tab_strip_color_mixer.cc:79-84 kTabFgToContrastMap: contrast each tab
|
|
110
|
+
* foreground is blended to reach against its background when the theme does
|
|
111
|
+
* not set it explicitly.
|
|
112
|
+
*/
|
|
113
|
+
export declare const CHROME_TAB_FOREGROUND_CONTRAST: {
|
|
114
|
+
readonly activeFrameActive: 10.46;
|
|
115
|
+
readonly activeFrameInactive: 5;
|
|
116
|
+
readonly inactiveFrameActive: 7.98;
|
|
117
|
+
readonly inactiveFrameInactive: 4.5;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* tab_strip_color_mixer.cc:106-111: inactive-window foregrounds start from
|
|
121
|
+
* the active-window color blended 75% toward the background before the
|
|
122
|
+
* contrast pass.
|
|
123
|
+
*/
|
|
124
|
+
export declare const CHROME_TAB_INACTIVE_WINDOW_FG_BLEND = 0.75;
|
|
125
|
+
/** tab_strip_color_mixer.cc:141-164 hover/selected surface blends. */
|
|
126
|
+
export declare const CHROME_TAB_SURFACE_BLENDS: {
|
|
127
|
+
readonly inactiveHover: 0.4;
|
|
128
|
+
readonly selected: 0.75;
|
|
129
|
+
readonly selectedHover: 0.85;
|
|
130
|
+
};
|
|
131
|
+
/** browser_theme_pack.cc:613 kMinOmniboxToolbarContrast. */
|
|
132
|
+
export declare const CHROME_OMNIBOX_TOOLBAR_MIN_CONTRAST = 1.3;
|
|
133
|
+
/**
|
|
134
|
+
* window_frame_util.cc:11: a fully opaque button_background is knocked down
|
|
135
|
+
* to 0xCC before blending over the frame.
|
|
136
|
+
*/
|
|
137
|
+
export declare const CHROME_CAPTION_BUTTON_OPAQUE_ALPHA = 204;
|
|
138
|
+
/** theme_properties.h:206 kFrameHeightAboveTabs: tab background image offset. */
|
|
139
|
+
export declare const CHROME_FRAME_HEIGHT_ABOVE_TABS = 16;
|
|
140
|
+
/**
|
|
141
|
+
* browser_theme_pack.cc:332-348 GetImagesToCrop: max useful image heights.
|
|
142
|
+
* kTallestTabHeight = 41, kTallestFrameHeight = 41 + 19 = 60.
|
|
143
|
+
*/
|
|
144
|
+
export declare const CHROME_THEME_IMAGE_CROP_HEIGHTS: {
|
|
145
|
+
readonly frame: 60;
|
|
146
|
+
readonly toolbar: 200;
|
|
147
|
+
readonly buttonBackground: 60;
|
|
148
|
+
readonly windowControlBackground: 50;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Image PAINT rules (THEME_REALISM_PLAN.md Phase 3), transcribed at
|
|
152
|
+
* refs/tags/143.0.7499.4.
|
|
153
|
+
*
|
|
154
|
+
* One anchor governs every frame/toolbar/tab image: theme image (0,0) sits
|
|
155
|
+
* at (browserViewLeft, browserViewTop - kFrameHeightAboveTabs) in window
|
|
156
|
+
* coordinates. browser_view.cc:1711 GetThemeOffsetFromBrowserView returns
|
|
157
|
+
* exactly that source offset, and every paint site routes through it:
|
|
158
|
+
* top_container_background.cc:49-75 PaintThemeAlignedImage (toolbar,
|
|
159
|
+
* bookmarks bar), tab_style_views.cc:989-998 (BOTH the active tab's toolbar
|
|
160
|
+
* image and inactive tabs' tab_background image), and
|
|
161
|
+
* browser_frame_view_mac.mm:633-647 PaintThemedFrame (frame). On macOS the
|
|
162
|
+
* BrowserView starts at the window top, so the anchor is 16 DIPs ABOVE the
|
|
163
|
+
* window: the top 16 rows of frame/toolbar images are never visible (they
|
|
164
|
+
* exist for the Windows/Linux frame band above the tabs).
|
|
165
|
+
*
|
|
166
|
+
* Tiling everywhere is SkTileMode::kRepeat horizontally and kMirror
|
|
167
|
+
* vertically (top_container_background.cc:72-74). CSS has no mirror tiling;
|
|
168
|
+
* the mock approximates y with plain repeat, which only diverges when an
|
|
169
|
+
* image is shorter than the painted band (the density guidance in the
|
|
170
|
+
* themes app warns before that happens).
|
|
171
|
+
*/
|
|
172
|
+
export declare const CHROME_THEME_IMAGE_RULES: {
|
|
173
|
+
/**
|
|
174
|
+
* Vertical anchor shared by all frame/toolbar/tab images: image (0,0) is
|
|
175
|
+
* kFrameHeightAboveTabs DIPs above the BrowserView top
|
|
176
|
+
* (browser_view.cc:1711-1721).
|
|
177
|
+
*/
|
|
178
|
+
readonly themeAnchorYAboveBrowserView: 16;
|
|
179
|
+
/**
|
|
180
|
+
* theme_frame: tiled horizontally across the window at natural height,
|
|
181
|
+
* frame color underneath (browser_frame_view_mac.mm:640-644). Painted for
|
|
182
|
+
* the whole frame band; rows 0-15 are cut on macOS (anchor above window).
|
|
183
|
+
*/
|
|
184
|
+
readonly frame: {
|
|
185
|
+
readonly repeatX: true;
|
|
186
|
+
readonly repeatY: false;
|
|
187
|
+
readonly macTopCropPx: 16;
|
|
188
|
+
};
|
|
189
|
+
/**
|
|
190
|
+
* theme_frame_overlay: drawn ONCE at the window top-left corner, natural
|
|
191
|
+
* size, no tiling, over the frame image
|
|
192
|
+
* (browser_frame_view_mac.mm:645-646).
|
|
193
|
+
*/
|
|
194
|
+
readonly frameOverlay: {
|
|
195
|
+
readonly repeatX: false;
|
|
196
|
+
readonly repeatY: false;
|
|
197
|
+
};
|
|
198
|
+
/**
|
|
199
|
+
* theme_toolbar: theme-aligned (shared anchor), so the toolbar band shows
|
|
200
|
+
* image rows starting at (16 + surface offset below BrowserView top). The
|
|
201
|
+
* ACTIVE TAB uses the same image and the same anchor
|
|
202
|
+
* (tab_style_views.cc:605-607, 989-998): the active tab looks "cut from"
|
|
203
|
+
* the toolbar, exactly like real Chrome.
|
|
204
|
+
*/
|
|
205
|
+
readonly toolbar: {
|
|
206
|
+
readonly themeAligned: true;
|
|
207
|
+
};
|
|
208
|
+
/**
|
|
209
|
+
* theme_tab_background paints INACTIVE tabs, theme-aligned. When absent
|
|
210
|
+
* but theme_frame is present, the pack GENERATES it: frame color base +
|
|
211
|
+
* frame image shifted UP by kFrameHeightAboveTabs + background_tab tint,
|
|
212
|
+
* clamped to kTallestTabHeight = 41 (browser_theme_pack.cc:2036-2057).
|
|
213
|
+
* Net effect: inactive tabs show the (tinted) frame pixels behind them.
|
|
214
|
+
*/
|
|
215
|
+
readonly tabBackground: {
|
|
216
|
+
readonly themeAligned: true;
|
|
217
|
+
readonly generatedFromFrameShiftPx: 16;
|
|
218
|
+
readonly generatedTint: "background_tab";
|
|
219
|
+
readonly generatedHeightClampPx: 41;
|
|
220
|
+
};
|
|
221
|
+
/**
|
|
222
|
+
* theme_ntp_background CSS matrix (new_tab_page_handler.cc:252-288):
|
|
223
|
+
* size "initial" (natural size, never cover), alignment bitmask maps to
|
|
224
|
+
* position with LEFT winning over RIGHT and TOP over BOTTOM, center
|
|
225
|
+
* default on each axis; tiling maps to per-axis repeat pairs. Alignment
|
|
226
|
+
* strings parse as whitespace-separated case-insensitive tokens
|
|
227
|
+
* (theme_properties.cc:148-164); tiling defaults to no-repeat
|
|
228
|
+
* (theme_properties.cc:167-178).
|
|
229
|
+
*/
|
|
230
|
+
readonly ntpBackground: {
|
|
231
|
+
readonly cssSize: "auto";
|
|
232
|
+
readonly repeatCss: {
|
|
233
|
+
readonly "no-repeat": {
|
|
234
|
+
readonly x: "no-repeat";
|
|
235
|
+
readonly y: "no-repeat";
|
|
236
|
+
};
|
|
237
|
+
readonly "repeat-x": {
|
|
238
|
+
readonly x: "repeat";
|
|
239
|
+
readonly y: "no-repeat";
|
|
240
|
+
};
|
|
241
|
+
readonly "repeat-y": {
|
|
242
|
+
readonly x: "no-repeat";
|
|
243
|
+
readonly y: "repeat";
|
|
244
|
+
};
|
|
245
|
+
readonly repeat: {
|
|
246
|
+
readonly x: "repeat";
|
|
247
|
+
readonly y: "repeat";
|
|
248
|
+
};
|
|
249
|
+
};
|
|
250
|
+
};
|
|
251
|
+
/**
|
|
252
|
+
* theme_ntp_attribution: fixed to the BOTTOM-LEFT corner (inline-start in
|
|
253
|
+
* RTL), 16px bottom and inline margins, natural image size, under a
|
|
254
|
+
* localized "Theme created by" caption in the NTP secondary text color
|
|
255
|
+
* (app.html:155-160, app.css:210-216). NOT bottom-right, NOT dimmed.
|
|
256
|
+
*/
|
|
257
|
+
readonly ntpAttribution: {
|
|
258
|
+
readonly corner: "bottom-left";
|
|
259
|
+
readonly offsetPx: 16;
|
|
260
|
+
};
|
|
261
|
+
/**
|
|
262
|
+
* theme_button_background / theme_window_control_background: the only
|
|
263
|
+
* paint site is the Windows/Linux opaque frame's caption buttons
|
|
264
|
+
* (opaque_browser_frame_view.cc:824). No macOS paint site; a mac-styled
|
|
265
|
+
* mock correctly renders nothing for them.
|
|
266
|
+
*/
|
|
267
|
+
readonly buttonBackground: {
|
|
268
|
+
readonly macPaintSite: false;
|
|
269
|
+
};
|
|
270
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export interface ChromeThemeManifestTheme {
|
|
2
|
+
colors?: Record<string, number[]>;
|
|
3
|
+
tints?: Record<string, number[]>;
|
|
4
|
+
properties?: Record<string, unknown>;
|
|
5
|
+
images?: Record<string, string>;
|
|
6
|
+
}
|
|
7
|
+
/** All hex unless noted. Slot names follow Chromium's color ids. */
|
|
8
|
+
export interface ResolvedChromeTheme {
|
|
9
|
+
frameActive: string;
|
|
10
|
+
frameInactive: string;
|
|
11
|
+
toolbar: string;
|
|
12
|
+
toolbarText: string;
|
|
13
|
+
toolbarButtonIcon: string;
|
|
14
|
+
toolbarTopSeparator: string;
|
|
15
|
+
tabBackgroundActiveFrameActive: string;
|
|
16
|
+
tabBackgroundActiveFrameInactive: string;
|
|
17
|
+
tabBackgroundInactiveFrameActive: string;
|
|
18
|
+
tabBackgroundInactiveFrameInactive: string;
|
|
19
|
+
tabForegroundActiveFrameActive: string;
|
|
20
|
+
tabForegroundActiveFrameInactive: string;
|
|
21
|
+
tabForegroundInactiveFrameActive: string;
|
|
22
|
+
tabForegroundInactiveFrameInactive: string;
|
|
23
|
+
tabBackgroundInactiveHoverFrameActive: string;
|
|
24
|
+
tabBackgroundSelectedFrameActive: string;
|
|
25
|
+
bookmarkText: string;
|
|
26
|
+
ntpBackground: string;
|
|
27
|
+
ntpText: string;
|
|
28
|
+
ntpLink: string;
|
|
29
|
+
ntpHeader: string;
|
|
30
|
+
/** rgba() string: header at 0x50 alpha (browser_theme_pack.cc:2010). */
|
|
31
|
+
ntpSectionBorder: string;
|
|
32
|
+
ntpLogoAlternate: 0 | 1;
|
|
33
|
+
omniboxFieldBackground: string;
|
|
34
|
+
omniboxFieldText: string;
|
|
35
|
+
omniboxResultsBackground: string;
|
|
36
|
+
windowControlButtonBackgroundActive: string;
|
|
37
|
+
windowControlButtonBackgroundInactive: string;
|
|
38
|
+
newTabButtonForeground: string;
|
|
39
|
+
newTabButtonBackground: string;
|
|
40
|
+
properties: {
|
|
41
|
+
ntpBackgroundAlignment: string;
|
|
42
|
+
ntpBackgroundRepeat: "no-repeat" | "repeat" | "repeat-x" | "repeat-y";
|
|
43
|
+
};
|
|
44
|
+
/** Honored manifest keys that were dropped/ignored, with reasons. */
|
|
45
|
+
ignoredKeys: {
|
|
46
|
+
key: string;
|
|
47
|
+
reason: string;
|
|
48
|
+
}[];
|
|
49
|
+
/** Fidelity caveats (e.g. image-derived colors not modeled). */
|
|
50
|
+
caveats: string[];
|
|
51
|
+
}
|
|
52
|
+
export declare function resolveChromeTheme(theme: ChromeThemeManifestTheme): ResolvedChromeTheme;
|
package/dist/src/tools/open.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ActArgs } from "../lib/act";
|
|
2
|
+
export declare function navigateToUrl(projectPath: string, browser: string, url: string, timeout?: number): Promise<string>;
|
|
2
3
|
export declare function clampPopupBounds(width: number, height: number): {
|
|
3
4
|
width: number;
|
|
4
5
|
height: number;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export declare const schema: {
|
|
2
|
+
name: string;
|
|
3
|
+
description: string;
|
|
4
|
+
inputSchema: {
|
|
5
|
+
type: "object";
|
|
6
|
+
properties: {
|
|
7
|
+
projectPath: {
|
|
8
|
+
type: string;
|
|
9
|
+
description: string;
|
|
10
|
+
};
|
|
11
|
+
browser: {
|
|
12
|
+
type: string;
|
|
13
|
+
enum: string[];
|
|
14
|
+
default: string;
|
|
15
|
+
description: string;
|
|
16
|
+
};
|
|
17
|
+
build: {
|
|
18
|
+
type: string;
|
|
19
|
+
default: boolean;
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
distPath: {
|
|
23
|
+
type: string;
|
|
24
|
+
description: string;
|
|
25
|
+
};
|
|
26
|
+
surface: {
|
|
27
|
+
type: string;
|
|
28
|
+
enum: string[];
|
|
29
|
+
default: string;
|
|
30
|
+
description: string;
|
|
31
|
+
};
|
|
32
|
+
hostUrl: {
|
|
33
|
+
type: string;
|
|
34
|
+
description: string;
|
|
35
|
+
};
|
|
36
|
+
inspectUrl: {
|
|
37
|
+
type: string;
|
|
38
|
+
description: string;
|
|
39
|
+
};
|
|
40
|
+
probe: {
|
|
41
|
+
type: string;
|
|
42
|
+
default: boolean;
|
|
43
|
+
description: string;
|
|
44
|
+
};
|
|
45
|
+
open: {
|
|
46
|
+
type: string;
|
|
47
|
+
default: boolean;
|
|
48
|
+
description: string;
|
|
49
|
+
};
|
|
50
|
+
openIn: {
|
|
51
|
+
type: string;
|
|
52
|
+
enum: string[];
|
|
53
|
+
description: string;
|
|
54
|
+
};
|
|
55
|
+
share: {
|
|
56
|
+
type: string;
|
|
57
|
+
default: boolean;
|
|
58
|
+
description: string;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
required: string[];
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
export declare function handler(args: {
|
|
65
|
+
projectPath: string;
|
|
66
|
+
browser?: string;
|
|
67
|
+
build?: boolean;
|
|
68
|
+
distPath?: string;
|
|
69
|
+
surface?: string;
|
|
70
|
+
hostUrl?: string;
|
|
71
|
+
inspectUrl?: string;
|
|
72
|
+
probe?: boolean;
|
|
73
|
+
open?: boolean;
|
|
74
|
+
openIn?: string;
|
|
75
|
+
share?: boolean;
|
|
76
|
+
}): Promise<string>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export declare const schema: {
|
|
2
|
+
name: string;
|
|
3
|
+
description: string;
|
|
4
|
+
inputSchema: {
|
|
5
|
+
type: "object";
|
|
6
|
+
properties: {
|
|
7
|
+
action: {
|
|
8
|
+
type: string;
|
|
9
|
+
enum: string[];
|
|
10
|
+
default: string;
|
|
11
|
+
description: string;
|
|
12
|
+
};
|
|
13
|
+
artifactId: {
|
|
14
|
+
type: string;
|
|
15
|
+
description: string;
|
|
16
|
+
};
|
|
17
|
+
url: {
|
|
18
|
+
type: string;
|
|
19
|
+
description: string;
|
|
20
|
+
};
|
|
21
|
+
projectPath: {
|
|
22
|
+
type: string;
|
|
23
|
+
description: string;
|
|
24
|
+
};
|
|
25
|
+
status: {
|
|
26
|
+
type: string;
|
|
27
|
+
enum: string[];
|
|
28
|
+
default: string;
|
|
29
|
+
description: string;
|
|
30
|
+
};
|
|
31
|
+
limit: {
|
|
32
|
+
type: string;
|
|
33
|
+
description: string;
|
|
34
|
+
};
|
|
35
|
+
api: {
|
|
36
|
+
type: string;
|
|
37
|
+
description: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
required: never[];
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
export declare function handler(args: {
|
|
44
|
+
action?: string;
|
|
45
|
+
artifactId?: string;
|
|
46
|
+
url?: string;
|
|
47
|
+
projectPath?: string;
|
|
48
|
+
status?: string;
|
|
49
|
+
limit?: number;
|
|
50
|
+
api?: string;
|
|
51
|
+
}): Promise<string>;
|
package/dist/src/tools/stop.d.ts
CHANGED
|
@@ -28,7 +28,6 @@ interface StopOutcome {
|
|
|
28
28
|
stopped: boolean;
|
|
29
29
|
reaped: number[];
|
|
30
30
|
detail: string;
|
|
31
|
-
/** Set when this stop took the live-preview carrier back out of the project. */
|
|
32
31
|
carrierRemoved?: string;
|
|
33
32
|
}
|
|
34
33
|
export declare function stopOne(projectPath: string, browser: string): Promise<StopOutcome>;
|
|
@@ -36,7 +36,6 @@ interface ReviewView {
|
|
|
36
36
|
buildId?: string;
|
|
37
37
|
checkedAt?: string;
|
|
38
38
|
}
|
|
39
|
-
/** Latest submissions.json record per store, newest submittedAt first. */
|
|
40
39
|
export declare function latestSubmissionsByStore(json: unknown): Record<string, SubmissionView>;
|
|
41
40
|
export interface NormalizedStoresStatus {
|
|
42
41
|
lastSubmission?: Record<string, unknown>;
|
|
@@ -44,14 +43,6 @@ export interface NormalizedStoresStatus {
|
|
|
44
43
|
reviews: Record<string, ReviewView>;
|
|
45
44
|
lastPollAt?: string;
|
|
46
45
|
}
|
|
47
|
-
/**
|
|
48
|
-
* Accept any historical shape of stores/status.json. SchemaVersion 3 carries
|
|
49
|
-
* lastSubmission / lastOverride / lastPoll / reviews as sections. Legacy v2
|
|
50
|
-
* came in two flavors that used to clobber each other: the submit-path shape
|
|
51
|
-
* (kind "stores_status", lastSubmission only) and the poller shape (kind
|
|
52
|
-
* "store_status" with perStore/updates at the top level) whose updates seed
|
|
53
|
-
* the reviews map here, mirroring the registry template's normalizer.
|
|
54
|
-
*/
|
|
55
46
|
export declare function normalizeStoresStatus(json: unknown): NormalizedStoresStatus;
|
|
56
47
|
export declare function handler(args: {
|
|
57
48
|
workspace?: string;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare const schema: {
|
|
2
|
+
name: string;
|
|
3
|
+
description: string;
|
|
4
|
+
inputSchema: {
|
|
5
|
+
type: "object";
|
|
6
|
+
properties: {
|
|
7
|
+
manifest: {
|
|
8
|
+
type: string;
|
|
9
|
+
description: string;
|
|
10
|
+
};
|
|
11
|
+
manifestPath: {
|
|
12
|
+
type: string;
|
|
13
|
+
description: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
required: never[];
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export declare function handler(args: {
|
|
20
|
+
manifest?: Record<string, unknown>;
|
|
21
|
+
manifestPath?: string;
|
|
22
|
+
}): Promise<string>;
|