@pinepaper.studio/mcp-server 1.6.31 → 1.6.32
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 +79 -1
- package/SECURITY.md +1 -1
- package/dist/agent/types.d.ts +10 -10
- package/dist/browser/puppeteer-controller.d.ts.map +1 -1
- package/dist/browser/puppeteer-controller.js +42 -17
- package/dist/browser/puppeteer-controller.js.map +1 -1
- package/dist/build-info.json +2 -2
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +12 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +32 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/stdio.d.ts +4 -0
- package/dist/mcp/stdio.d.ts.map +1 -1
- package/dist/mcp/stdio.js +22 -0
- package/dist/mcp/stdio.js.map +1 -1
- package/dist/ontology/upstream-vocabulary.d.ts +2 -2
- package/dist/ontology/upstream-vocabulary.js +2 -2
- package/dist/ontology/vocabulary.d.ts.map +1 -1
- package/dist/ontology/vocabulary.js +18 -0
- package/dist/ontology/vocabulary.js.map +1 -1
- package/dist/tools/batch-op-names.d.ts +6 -0
- package/dist/tools/batch-op-names.d.ts.map +1 -1
- package/dist/tools/batch-op-names.js +40 -2
- package/dist/tools/batch-op-names.js.map +1 -1
- package/dist/tools/choreograph.d.ts +8 -0
- package/dist/tools/choreograph.d.ts.map +1 -1
- package/dist/tools/choreograph.js +9 -7
- package/dist/tools/choreograph.js.map +1 -1
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +108 -45
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/effect-class.d.ts.map +1 -1
- package/dist/tools/effect-class.js +7 -0
- package/dist/tools/effect-class.js.map +1 -1
- package/dist/tools/engine-lists.d.ts +5 -5
- package/dist/tools/engine-lists.js +5 -5
- package/dist/tools/engine-methods.d.ts.map +1 -1
- package/dist/tools/engine-methods.js +3 -0
- package/dist/tools/engine-methods.js.map +1 -1
- package/dist/tools/engine-surface.d.ts +1 -1
- package/dist/tools/engine-surface.d.ts.map +1 -1
- package/dist/tools/engine-surface.js +20 -4
- package/dist/tools/engine-surface.js.map +1 -1
- package/dist/tools/handlers/generate.d.ts +2 -2
- package/dist/tools/handlers.d.ts.map +1 -1
- package/dist/tools/handlers.js +38 -7
- package/dist/tools/handlers.js.map +1 -1
- package/dist/tools/lane.d.ts +1 -1
- package/dist/tools/lane.d.ts.map +1 -1
- package/dist/tools/lane.js +1 -1
- package/dist/tools/lane.js.map +1 -1
- package/dist/tools/minimal-descriptions.js +1 -1
- package/dist/tools/minimal-descriptions.js.map +1 -1
- package/dist/tools/shape-params.d.ts +2 -2
- package/dist/tools/shape-params.d.ts.map +1 -1
- package/dist/tools/shape-params.js +8 -2
- package/dist/tools/shape-params.js.map +1 -1
- package/dist/tools/stick-vocabulary.d.ts +4 -4
- package/dist/tools/stick-vocabulary.d.ts.map +1 -1
- package/dist/tools/stick-vocabulary.js +15 -4
- package/dist/tools/stick-vocabulary.js.map +1 -1
- package/dist/types/code-generator.d.ts +8 -0
- package/dist/types/code-generator.d.ts.map +1 -1
- package/dist/types/code-generator.js +241 -45
- package/dist/types/code-generator.js.map +1 -1
- package/dist/types/schemas.d.ts +246 -105
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/schemas.js +69 -5
- package/dist/types/schemas.js.map +1 -1
- package/dist/utils/env.d.ts +13 -41
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/env.js +25 -43
- package/dist/utils/env.js.map +1 -1
- package/dist/utils/exit-when-client-gone.d.ts +10 -0
- package/dist/utils/exit-when-client-gone.d.ts.map +1 -0
- package/dist/utils/exit-when-client-gone.js +21 -0
- package/dist/utils/exit-when-client-gone.js.map +1 -0
- package/dist/vendor/design/design-style.d.ts +2 -2
- package/dist/vendor/design/design-style.d.ts.map +1 -1
- package/dist/vendor/design/design-style.js +5 -2
- package/dist/vendor/design/design-style.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +1 -1
package/dist/utils/env.d.ts
CHANGED
|
@@ -1,50 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The one place this server reads its environment, and the complete list of what it reads.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* what each one does.
|
|
4
|
+
* ENV_VARS below is the whole list: `env()` accepts only a name from it (a type error otherwise, and `undefined` for
|
|
5
|
+
* anything else at run time), and the environment is read in one place, only for a listed name. Values are read at
|
|
6
|
+
* call time, never cached, so a value set after start-up is seen. Nothing here is sent anywhere; each value
|
|
7
|
+
* configures this process only. The README documents what each one does.
|
|
9
8
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* WHY ONE READ, NOT ONE PER NAME. 1.6.31 read each variable by its own literal property access, so a scanner would
|
|
10
|
+
* see a fixed list. Socket counts every such read as its own "environment variable access" finding: 31 of them,
|
|
11
|
+
* against 1 for the single read here, and the package's supply-chain score fell from 83 to 81. The list is just as
|
|
12
|
+
* fixed as a table of names, and a reviewer reads it in the same place.
|
|
13
|
+
*
|
|
14
|
+
* safe-fetch.ts reads PINEPAPER_ALLOW_PRIVATE_NETWORK itself: it is bundled on its own and takes no relative imports.
|
|
12
15
|
*/
|
|
13
|
-
declare const
|
|
14
|
-
readonly PINEPAPER_STUDIO_URL: () => string | undefined;
|
|
15
|
-
readonly PINEPAPER_HEADLESS: () => string | undefined;
|
|
16
|
-
readonly PINEPAPER_WAIT_UNTIL: () => string | undefined;
|
|
17
|
-
readonly PINEPAPER_TIMEOUT: () => string | undefined;
|
|
18
|
-
readonly PINEPAPER_PROXY: () => string | undefined;
|
|
19
|
-
readonly PINEPAPER_GOVERNOR: () => string | undefined;
|
|
20
|
-
readonly PINEPAPER_CHROME_PATH: () => string | undefined;
|
|
21
|
-
readonly PINEPAPER_PUPPETEER_FROM: () => string | undefined;
|
|
22
|
-
readonly PINEPAPER_SCREENSHOT_MODE: () => string | undefined;
|
|
23
|
-
readonly PINEPAPER_IDLE_PAUSE_SECONDS: () => string | undefined;
|
|
24
|
-
readonly PINEPAPER_ALLOW_CODE: () => string | undefined;
|
|
25
|
-
readonly PINEPAPER_ALLOW_LOCAL_FILES: () => string | undefined;
|
|
26
|
-
readonly PINEPAPER_ALLOW_PRIVATE_NETWORK: () => string | undefined;
|
|
27
|
-
readonly PINEPAPER_EXECUTION_MODE: () => string | undefined;
|
|
28
|
-
readonly PINEPAPER_TOOLKIT: () => string | undefined;
|
|
29
|
-
readonly PINEPAPER_VERBOSITY: () => string | undefined;
|
|
30
|
-
readonly PINEPAPER_TOOL_VERBOSITY: () => string | undefined;
|
|
31
|
-
readonly PINEPAPER_ECHO_CODE: () => string | undefined;
|
|
32
|
-
readonly PINEPAPER_METRICS_ENABLED: () => string | undefined;
|
|
33
|
-
readonly PINEPAPER_METRICS_RETENTION: () => string | undefined;
|
|
34
|
-
readonly PINEPAPER_EXPORT_DIR: () => string | undefined;
|
|
35
|
-
readonly PINEPAPER_EXPORT_TIMEOUT: () => string | undefined;
|
|
36
|
-
readonly PINEPAPER_ASSET_DIRS: () => string | undefined;
|
|
37
|
-
readonly PINEPAPER_FFPROBE: () => string | undefined;
|
|
38
|
-
readonly PINEPAPER_API_KEY: () => string | undefined;
|
|
39
|
-
readonly PINEPAPER_CLOUD_URL: () => string | undefined;
|
|
40
|
-
readonly PINEPAPER_LOCALE: () => string | undefined;
|
|
41
|
-
readonly LC_ALL: () => string | undefined;
|
|
42
|
-
readonly LC_MESSAGES: () => string | undefined;
|
|
43
|
-
readonly LANG: () => string | undefined;
|
|
44
|
-
};
|
|
16
|
+
declare const NAMES: readonly ["PINEPAPER_STUDIO_URL", "PINEPAPER_HEADLESS", "PINEPAPER_WAIT_UNTIL", "PINEPAPER_TIMEOUT", "PINEPAPER_PROXY", "PINEPAPER_GOVERNOR", "PINEPAPER_CHROME_PATH", "PINEPAPER_PUPPETEER_FROM", "PINEPAPER_SCREENSHOT_MODE", "PINEPAPER_IDLE_PAUSE_SECONDS", "PINEPAPER_ALLOW_CODE", "PINEPAPER_ALLOW_LOCAL_FILES", "PINEPAPER_ALLOW_PRIVATE_NETWORK", "PINEPAPER_EXECUTION_MODE", "PINEPAPER_TOOLKIT", "PINEPAPER_VERBOSITY", "PINEPAPER_TOOL_VERBOSITY", "PINEPAPER_ECHO_CODE", "PINEPAPER_METRICS_ENABLED", "PINEPAPER_METRICS_RETENTION", "PINEPAPER_EXPORT_DIR", "PINEPAPER_EXPORT_TIMEOUT", "PINEPAPER_ASSET_DIRS", "PINEPAPER_FFPROBE", "PINEPAPER_API_KEY", "PINEPAPER_CLOUD_URL", "PINEPAPER_LOCALE", "LC_ALL", "LC_MESSAGES", "LANG"];
|
|
45
17
|
/** Every environment variable the package reads (safe-fetch.ts also reads PINEPAPER_ALLOW_PRIVATE_NETWORK itself). */
|
|
46
|
-
export type EnvVar =
|
|
47
|
-
export declare const ENV_VARS: readonly
|
|
18
|
+
export type EnvVar = (typeof NAMES)[number];
|
|
19
|
+
export declare const ENV_VARS: readonly EnvVar[];
|
|
48
20
|
export declare function env(name: EnvVar): string | undefined;
|
|
49
21
|
export {};
|
|
50
22
|
//# sourceMappingURL=env.d.ts.map
|
package/dist/utils/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,KAAK,otBAgBD,CAAC;AAEX,sHAAsH;AACtH,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5C,eAAO,MAAM,QAAQ,EAAE,SAAS,MAAM,EAA8B,CAAC;AAGrE,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIpD"}
|
package/dist/utils/env.js
CHANGED
|
@@ -1,58 +1,40 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The one place this server reads its environment, and the complete list of what it reads.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* what each one does.
|
|
4
|
+
* ENV_VARS below is the whole list: `env()` accepts only a name from it (a type error otherwise, and `undefined` for
|
|
5
|
+
* anything else at run time), and the environment is read in one place, only for a listed name. Values are read at
|
|
6
|
+
* call time, never cached, so a value set after start-up is seen. Nothing here is sent anywhere; each value
|
|
7
|
+
* configures this process only. The README documents what each one does.
|
|
9
8
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* WHY ONE READ, NOT ONE PER NAME. 1.6.31 read each variable by its own literal property access, so a scanner would
|
|
10
|
+
* see a fixed list. Socket counts every such read as its own "environment variable access" finding: 31 of them,
|
|
11
|
+
* against 1 for the single read here, and the package's supply-chain score fell from 83 to 81. The list is just as
|
|
12
|
+
* fixed as a table of names, and a reviewer reads it in the same place.
|
|
13
|
+
*
|
|
14
|
+
* safe-fetch.ts reads PINEPAPER_ALLOW_PRIVATE_NETWORK itself: it is bundled on its own and takes no relative imports.
|
|
12
15
|
*/
|
|
13
|
-
const
|
|
16
|
+
const NAMES = [
|
|
14
17
|
// Browser (puppeteer) mode
|
|
15
|
-
PINEPAPER_STUDIO_URL
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
PINEPAPER_TIMEOUT: () => process.env.PINEPAPER_TIMEOUT,
|
|
19
|
-
PINEPAPER_PROXY: () => process.env.PINEPAPER_PROXY,
|
|
20
|
-
PINEPAPER_GOVERNOR: () => process.env.PINEPAPER_GOVERNOR,
|
|
21
|
-
PINEPAPER_CHROME_PATH: () => process.env.PINEPAPER_CHROME_PATH,
|
|
22
|
-
PINEPAPER_PUPPETEER_FROM: () => process.env.PINEPAPER_PUPPETEER_FROM,
|
|
23
|
-
PINEPAPER_SCREENSHOT_MODE: () => process.env.PINEPAPER_SCREENSHOT_MODE,
|
|
24
|
-
PINEPAPER_IDLE_PAUSE_SECONDS: () => process.env.PINEPAPER_IDLE_PAUSE_SECONDS,
|
|
18
|
+
'PINEPAPER_STUDIO_URL', 'PINEPAPER_HEADLESS', 'PINEPAPER_WAIT_UNTIL', 'PINEPAPER_TIMEOUT', 'PINEPAPER_PROXY',
|
|
19
|
+
'PINEPAPER_GOVERNOR', 'PINEPAPER_CHROME_PATH', 'PINEPAPER_PUPPETEER_FROM', 'PINEPAPER_SCREENSHOT_MODE',
|
|
20
|
+
'PINEPAPER_IDLE_PAUSE_SECONDS',
|
|
25
21
|
// Security switches, off by default (utils/capabilities.ts)
|
|
26
|
-
PINEPAPER_ALLOW_CODE
|
|
27
|
-
PINEPAPER_ALLOW_LOCAL_FILES: () => process.env.PINEPAPER_ALLOW_LOCAL_FILES,
|
|
28
|
-
PINEPAPER_ALLOW_PRIVATE_NETWORK: () => process.env.PINEPAPER_ALLOW_PRIVATE_NETWORK,
|
|
22
|
+
'PINEPAPER_ALLOW_CODE', 'PINEPAPER_ALLOW_LOCAL_FILES', 'PINEPAPER_ALLOW_PRIVATE_NETWORK',
|
|
29
23
|
// Tool surface and output
|
|
30
|
-
PINEPAPER_EXECUTION_MODE
|
|
31
|
-
|
|
32
|
-
PINEPAPER_VERBOSITY: () => process.env.PINEPAPER_VERBOSITY,
|
|
33
|
-
PINEPAPER_TOOL_VERBOSITY: () => process.env.PINEPAPER_TOOL_VERBOSITY,
|
|
34
|
-
PINEPAPER_ECHO_CODE: () => process.env.PINEPAPER_ECHO_CODE,
|
|
35
|
-
PINEPAPER_METRICS_ENABLED: () => process.env.PINEPAPER_METRICS_ENABLED,
|
|
36
|
-
PINEPAPER_METRICS_RETENTION: () => process.env.PINEPAPER_METRICS_RETENTION,
|
|
24
|
+
'PINEPAPER_EXECUTION_MODE', 'PINEPAPER_TOOLKIT', 'PINEPAPER_VERBOSITY', 'PINEPAPER_TOOL_VERBOSITY',
|
|
25
|
+
'PINEPAPER_ECHO_CODE', 'PINEPAPER_METRICS_ENABLED', 'PINEPAPER_METRICS_RETENTION',
|
|
37
26
|
// Files
|
|
38
|
-
PINEPAPER_EXPORT_DIR
|
|
39
|
-
PINEPAPER_EXPORT_TIMEOUT: () => process.env.PINEPAPER_EXPORT_TIMEOUT,
|
|
40
|
-
PINEPAPER_ASSET_DIRS: () => process.env.PINEPAPER_ASSET_DIRS,
|
|
41
|
-
PINEPAPER_FFPROBE: () => process.env.PINEPAPER_FFPROBE,
|
|
27
|
+
'PINEPAPER_EXPORT_DIR', 'PINEPAPER_EXPORT_TIMEOUT', 'PINEPAPER_ASSET_DIRS', 'PINEPAPER_FFPROBE',
|
|
42
28
|
// PinePaper Cloud generation (opt-in; the key is sent only to the cloud URL, see tools/handlers/generate.ts)
|
|
43
|
-
PINEPAPER_API_KEY
|
|
44
|
-
PINEPAPER_CLOUD_URL: () => process.env.PINEPAPER_CLOUD_URL,
|
|
29
|
+
'PINEPAPER_API_KEY', 'PINEPAPER_CLOUD_URL',
|
|
45
30
|
// Language of tool descriptions and messages
|
|
46
|
-
PINEPAPER_LOCALE
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
};
|
|
51
|
-
export const ENV_VARS = Object.freeze(Object.keys(READERS));
|
|
31
|
+
'PINEPAPER_LOCALE', 'LC_ALL', 'LC_MESSAGES', 'LANG',
|
|
32
|
+
];
|
|
33
|
+
export const ENV_VARS = Object.freeze([...NAMES]);
|
|
34
|
+
const LISTED = new Set(NAMES);
|
|
52
35
|
export function env(name) {
|
|
53
36
|
// A Worker build (mcp-cloud) may have no process at all.
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return Object.prototype.hasOwnProperty.call(READERS, name) ? READERS[name]() : undefined;
|
|
37
|
+
const vars = typeof process === 'undefined' ? undefined : process.env;
|
|
38
|
+
return vars && LISTED.has(name) ? vars[name] : undefined;
|
|
57
39
|
}
|
|
58
40
|
//# sourceMappingURL=env.js.map
|
package/dist/utils/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,KAAK,GAAG;IACZ,2BAA2B;IAC3B,sBAAsB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,iBAAiB;IAC5G,oBAAoB,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,2BAA2B;IACtG,8BAA8B;IAC9B,4DAA4D;IAC5D,sBAAsB,EAAE,6BAA6B,EAAE,iCAAiC;IACxF,0BAA0B;IAC1B,0BAA0B,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,0BAA0B;IAClG,qBAAqB,EAAE,2BAA2B,EAAE,6BAA6B;IACjF,QAAQ;IACR,sBAAsB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,mBAAmB;IAC/F,6GAA6G;IAC7G,mBAAmB,EAAE,qBAAqB;IAC1C,6CAA6C;IAC7C,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM;CAC3C,CAAC;AAIX,MAAM,CAAC,MAAM,QAAQ,GAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AACrE,MAAM,MAAM,GAAwB,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;AAEnD,MAAM,UAAU,GAAG,CAAC,IAAY;IAC9B,yDAAyD;IACzD,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACtE,OAAO,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface Options {
|
|
2
|
+
closeBrowser?: () => Promise<unknown>;
|
|
3
|
+
exit?: (code: number) => void;
|
|
4
|
+
timeoutMs?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function exitWhenClientGone(server: {
|
|
7
|
+
onclose?: () => void;
|
|
8
|
+
}, options?: Options): void;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=exit-when-client-gone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit-when-client-gone.d.ts","sourceRoot":"","sources":["../../src/utils/exit-when-client-gone.ts"],"names":[],"mappings":"AASA,UAAU,OAAO;IACf,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,EAAE,OAAO,GAAE,OAAY,GAAG,IAAI,CAUhG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The process ends when its session does. The browser is what would keep it alive, and what would be left running.
|
|
3
|
+
*
|
|
4
|
+
* Bounded, because a page frozen for idleness or a browser that has stopped answering must not hold the process. If the
|
|
5
|
+
* limit is hit, Puppeteer's own exit handler still kills the Chrome it launched.
|
|
6
|
+
*/
|
|
7
|
+
import process from 'node:process';
|
|
8
|
+
import { resetBrowserController } from '../browser/puppeteer-controller.js';
|
|
9
|
+
export function exitWhenClientGone(server, options = {}) {
|
|
10
|
+
const { closeBrowser = resetBrowserController, exit = process.exit, timeoutMs = 5_000 } = options;
|
|
11
|
+
let leaving = false;
|
|
12
|
+
server.onclose = () => {
|
|
13
|
+
if (leaving)
|
|
14
|
+
return;
|
|
15
|
+
leaving = true;
|
|
16
|
+
console.error('[PinePaper] The client has gone: closing the browser and exiting.');
|
|
17
|
+
const limit = new Promise((resolve) => setTimeout(resolve, timeoutMs));
|
|
18
|
+
void Promise.race([Promise.resolve().then(closeBrowser).catch(() => undefined), limit]).then(() => exit(0));
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=exit-when-client-gone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit-when-client-gone.js","sourceRoot":"","sources":["../../src/utils/exit-when-client-gone.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAQ5E,MAAM,UAAU,kBAAkB,CAAC,MAAgC,EAAE,UAAmB,EAAE;IACxF,MAAM,EAAE,YAAY,GAAG,sBAAsB,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAClG,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;QACpB,IAAI,OAAO;YAAE,OAAO;QACpB,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACnF,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QACvE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9G,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Every aesthetic style the generators speak. Sliced from the upstream union. */
|
|
2
|
-
export type DesignStyle = "minimal" | "editorial" | "playful" | "cinematic" | "energetic" | "scrapbook" | "swiss_typographic" | "neumorphic_glass" | "risograph_print" | "cyberpunk_neon" | "bauhaus_geometric" | "art_deco_geometric" | "memphis_group" | "brutalist_raw" | "de_stijl_neoplasticism" | "pop_art_expression" | "vaporwave_retro" | "corporate_memphis" | "y2k_frutiger_aero" | "mid_century_upa" | "comic_benday" | "pixel_art_8bit" | "isometric_lowpoly" | "hand_drawn_sketch" | "claymorphism" | "constructivism_suprematism" | "art_nouveau" | "op_art_psychedelic" | "print_monochrome_crisp" | "print_early_learner" | "print_stem_technical" | "embroidery_tapestry" | "woven_textile" | "explainer_ink" | "synthwave_outrun" | "sumi_e_ink" | "flat_design" | "blueprint_schematic";
|
|
3
|
-
/** The same
|
|
2
|
+
export type DesignStyle = "minimal" | "editorial" | "playful" | "cinematic" | "energetic" | "scrapbook" | "swiss_typographic" | "neumorphic_glass" | "risograph_print" | "cyberpunk_neon" | "bauhaus_geometric" | "art_deco_geometric" | "memphis_group" | "brutalist_raw" | "de_stijl_neoplasticism" | "pop_art_expression" | "vaporwave_retro" | "corporate_memphis" | "y2k_frutiger_aero" | "mid_century_upa" | "comic_benday" | "pixel_art_8bit" | "isometric_lowpoly" | "hand_drawn_sketch" | "claymorphism" | "constructivism_suprematism" | "art_nouveau" | "op_art_psychedelic" | "print_monochrome_crisp" | "print_early_learner" | "print_stem_technical" | "embroidery_tapestry" | "woven_textile" | "explainer_ink" | "synthwave_outrun" | "sumi_e_ink" | "flat_design" | "blueprint_schematic" | "stick_figure" | "omni_flash_realism" | "hybrid_mixed_media";
|
|
3
|
+
/** The same 41 styles as DATA, so a runtime list cannot drift from the type. */
|
|
4
4
|
export declare const DESIGN_STYLES: readonly DesignStyle[];
|
|
5
5
|
//# sourceMappingURL=design-style.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-style.d.ts","sourceRoot":"","sources":["../../../src/vendor/design/design-style.ts"],"names":[],"mappings":"AAWA,kFAAkF;AAClF,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,WAAW,GACX,SAAS,GACT,WAAW,GACX,WAAW,GACX,WAAW,GACX,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,mBAAmB,GACnB,oBAAoB,GACpB,eAAe,GACf,eAAe,GACf,wBAAwB,GACxB,oBAAoB,GACpB,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,iBAAiB,GACjB,cAAc,GACd,gBAAgB,GAChB,mBAAmB,GACnB,mBAAmB,GACnB,cAAc,GACd,4BAA4B,GAC5B,aAAa,GACb,oBAAoB,GACpB,wBAAwB,GACxB,qBAAqB,GACrB,sBAAsB,GACtB,qBAAqB,GACrB,eAAe,GAEf,eAAe,GACf,kBAAkB,GAClB,YAAY,GACZ,aAAa,GACb,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"design-style.d.ts","sourceRoot":"","sources":["../../../src/vendor/design/design-style.ts"],"names":[],"mappings":"AAWA,kFAAkF;AAClF,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,WAAW,GACX,SAAS,GACT,WAAW,GACX,WAAW,GACX,WAAW,GACX,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,mBAAmB,GACnB,oBAAoB,GACpB,eAAe,GACf,eAAe,GACf,wBAAwB,GACxB,oBAAoB,GACpB,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,iBAAiB,GACjB,cAAc,GACd,gBAAgB,GAChB,mBAAmB,GACnB,mBAAmB,GACnB,cAAc,GACd,4BAA4B,GAC5B,aAAa,GACb,oBAAoB,GACpB,wBAAwB,GACxB,qBAAqB,GACrB,sBAAsB,GACtB,qBAAqB,GACrB,eAAe,GAEf,eAAe,GACf,kBAAkB,GAClB,YAAY,GACZ,aAAa,GACb,qBAAqB,GACrB,cAAc,GACd,oBAAoB,GACpB,oBAAoB,CAAC;AAGzB,gFAAgF;AAChF,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EA0C9C,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/* GENERATED — DO NOT EDIT.
|
|
2
2
|
*
|
|
3
3
|
* Source: mcp-cloud/src/services/content-recipes.ts (DesignStyle union only)
|
|
4
|
-
* sha256:
|
|
4
|
+
* sha256: de3358e9cc23a62d8ace2dcaebbd90a985d49ae1a3e7e5fa1d88321bf5fbac1d
|
|
5
5
|
* Generator: scripts/sync-design-systems.mjs
|
|
6
6
|
*
|
|
7
7
|
* Edit the TypeScript upstream and re-run the generator. A hand edit here is
|
|
8
8
|
* the second copy of the same design vocabulary that the generator exists to
|
|
9
9
|
* prevent, and the provenance test will fail on it.
|
|
10
10
|
*/
|
|
11
|
-
/** The same
|
|
11
|
+
/** The same 41 styles as DATA, so a runtime list cannot drift from the type. */
|
|
12
12
|
export const DESIGN_STYLES = Object.freeze([
|
|
13
13
|
'minimal',
|
|
14
14
|
'editorial',
|
|
@@ -48,5 +48,8 @@ export const DESIGN_STYLES = Object.freeze([
|
|
|
48
48
|
'sumi_e_ink',
|
|
49
49
|
'flat_design',
|
|
50
50
|
'blueprint_schematic',
|
|
51
|
+
'stick_figure',
|
|
52
|
+
'omni_flash_realism',
|
|
53
|
+
'hybrid_mixed_media',
|
|
51
54
|
]);
|
|
52
55
|
//# sourceMappingURL=design-style.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-style.js","sourceRoot":"","sources":["../../../src/vendor/design/design-style.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"design-style.js","sourceRoot":"","sources":["../../../src/vendor/design/design-style.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgDH,gFAAgF;AAChF,MAAM,CAAC,MAAM,aAAa,GAA2B,MAAM,CAAC,MAAM,CAAC;IACjE,SAAS;IACT,WAAW;IACX,SAAS;IACT,WAAW;IACX,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,kBAAkB;IAClB,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,oBAAoB;IACpB,eAAe;IACf,eAAe;IACf,wBAAwB;IACxB,oBAAoB;IACpB,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;IACnB,iBAAiB;IACjB,cAAc;IACd,gBAAgB;IAChB,mBAAmB;IACnB,mBAAmB;IACnB,cAAc;IACd,4BAA4B;IAC5B,aAAa;IACb,oBAAoB;IACpB,wBAAwB;IACxB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,cAAc;IACd,oBAAoB;IACpB,oBAAoB;CACrB,CAAC,CAAC"}
|
package/manifest.json
CHANGED
package/package.json
CHANGED