@repo-prism/dispatch-hub 1.8.1 → 1.9.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/dashboard/app.css +1 -1
- package/dist/dashboard/app.js +165 -151
- package/dist/dashboard/app.js.map +19 -15
- package/dist/dashboard/hub.css +216 -112
- package/dist/dashboard/index.html +2 -2
- package/dist/ensure.d.ts +11 -0
- package/dist/ensure.d.ts.map +1 -1
- package/dist/ensure.js +61 -0
- package/dist/ensure.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/playground.d.ts +41 -0
- package/dist/playground.d.ts.map +1 -0
- package/dist/playground.js +170 -0
- package/dist/playground.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +169 -7
- package/dist/server.js.map +1 -1
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/snapshot.js +4 -0
- package/dist/snapshot.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<title>Prism Dispatch</title>
|
|
7
7
|
<link rel="icon" href="/assets/prism-mark.png" />
|
|
8
|
-
<link rel="stylesheet" href="/assets/hub.css?v=
|
|
8
|
+
<link rel="stylesheet" href="/assets/hub.css?v=mtsoxuzk" />
|
|
9
9
|
</head>
|
|
10
10
|
<body class="prism-theme">
|
|
11
11
|
<div id="root"></div>
|
|
12
|
-
<script type="module" src="/assets/app.js?v=
|
|
12
|
+
<script type="module" src="/assets/app.js?v=mtsoxuzk"></script>
|
|
13
13
|
</body>
|
|
14
14
|
</html>
|
package/dist/ensure.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { hubPort, type HubEnv } from "./paths.js";
|
|
2
|
+
import { type PlaygroundHandle } from "./playground.js";
|
|
2
3
|
export type HubHandle = {
|
|
3
4
|
readonly enabled: boolean;
|
|
4
5
|
readonly detail: string;
|
|
@@ -23,5 +24,15 @@ export type EnsureHubInput = {
|
|
|
23
24
|
*/
|
|
24
25
|
export declare function ensureHub(input: EnsureHubInput): Promise<HubHandle>;
|
|
25
26
|
export declare function peekHub(env?: HubEnv, fetchImpl?: typeof fetch): Promise<HubHandle>;
|
|
27
|
+
export declare function ensurePlayground(input: {
|
|
28
|
+
readonly workspaceRoot: string;
|
|
29
|
+
readonly env?: HubEnv;
|
|
30
|
+
readonly fetchImpl?: typeof fetch;
|
|
31
|
+
}): Promise<PlaygroundHandle>;
|
|
32
|
+
export declare function parkPlayground(input: {
|
|
33
|
+
readonly workspaceRoot: string;
|
|
34
|
+
readonly env?: HubEnv;
|
|
35
|
+
readonly fetchImpl?: typeof fetch;
|
|
36
|
+
}): Promise<PlaygroundHandle>;
|
|
26
37
|
export { hubPort };
|
|
27
38
|
//# sourceMappingURL=ensure.d.ts.map
|
package/dist/ensure.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure.d.ts","sourceRoot":"","sources":["../src/ensure.ts"],"names":[],"mappings":"AAGA,OAAO,EAA4B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ensure.d.ts","sourceRoot":"","sources":["../src/ensure.ts"],"names":[],"mappings":"AAGA,OAAO,EAA4B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAG5E,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAKF,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AA2CD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CA8CzE;AAED,wBAAsB,OAAO,CAC3B,GAAG,GAAE,MAAoB,EACzB,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,SAAS,CAAC,CAYpB;AAyED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE;IAC5C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CACnC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE5B;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CACnC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE5B;AAkBD,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/ensure.js
CHANGED
|
@@ -3,6 +3,7 @@ import { dirname, join } from "node:path";
|
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { dashboardUrl, hubEnabled, hubPort } from "./paths.js";
|
|
5
5
|
import { isHubRecordLive, readHubRecord } from "./hub-record.js";
|
|
6
|
+
import { PLAYGROUND_PORT, playgroundUrl, } from "./playground.js";
|
|
6
7
|
const WAIT_MS = 3_000;
|
|
7
8
|
const STEP_MS = 100;
|
|
8
9
|
export function resolveHubBin() {
|
|
@@ -99,6 +100,66 @@ export async function peekHub(env = process.env, fetchImpl = fetch) {
|
|
|
99
100
|
}
|
|
100
101
|
return handleFrom(record, "Jobs board is up.");
|
|
101
102
|
}
|
|
103
|
+
async function postPlayground(input, action) {
|
|
104
|
+
const env = input.env ?? process.env;
|
|
105
|
+
const fetchImpl = input.fetchImpl ?? fetch;
|
|
106
|
+
const fallbackUrl = playgroundUrl(PLAYGROUND_PORT);
|
|
107
|
+
const record = await readHubRecord(env);
|
|
108
|
+
if (!record) {
|
|
109
|
+
return {
|
|
110
|
+
enabled: false,
|
|
111
|
+
detail: "Jobs board is not running.",
|
|
112
|
+
url: fallbackUrl,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
try {
|
|
116
|
+
const response = await fetchImpl(`http://127.0.0.1:${record.port}/api/playground`, {
|
|
117
|
+
method: "POST",
|
|
118
|
+
headers: {
|
|
119
|
+
Authorization: `Bearer ${record.token}`,
|
|
120
|
+
"Content-Type": "application/json",
|
|
121
|
+
},
|
|
122
|
+
body: JSON.stringify({
|
|
123
|
+
action,
|
|
124
|
+
workspace: input.workspaceRoot,
|
|
125
|
+
}),
|
|
126
|
+
signal: AbortSignal.timeout(action === "wake" ? 25_000 : 5_000),
|
|
127
|
+
});
|
|
128
|
+
const body = (await response.json());
|
|
129
|
+
const url = typeof body.url === "string"
|
|
130
|
+
? body.url
|
|
131
|
+
: typeof body.port === "number"
|
|
132
|
+
? playgroundUrl(body.port)
|
|
133
|
+
: fallbackUrl;
|
|
134
|
+
if (response.ok && body.ok !== false) {
|
|
135
|
+
return {
|
|
136
|
+
enabled: true,
|
|
137
|
+
detail: body.detail ??
|
|
138
|
+
(action === "wake" ? "Playground is up." : "Playground is down."),
|
|
139
|
+
url,
|
|
140
|
+
port: typeof body.port === "number" ? body.port : PLAYGROUND_PORT,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
return {
|
|
144
|
+
enabled: false,
|
|
145
|
+
detail: body.detail ?? "Playground did not start.",
|
|
146
|
+
url,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return {
|
|
151
|
+
enabled: false,
|
|
152
|
+
detail: "Playground did not start.",
|
|
153
|
+
url: fallbackUrl,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
export async function ensurePlayground(input) {
|
|
158
|
+
return postPlayground(input, "wake");
|
|
159
|
+
}
|
|
160
|
+
export async function parkPlayground(input) {
|
|
161
|
+
return postPlayground(input, "sleep");
|
|
162
|
+
}
|
|
102
163
|
function spawnDetached(bin, env) {
|
|
103
164
|
const child = spawn(process.execPath, [bin], {
|
|
104
165
|
detached: true,
|
package/dist/ensure.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure.js","sourceRoot":"","sources":["../src/ensure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAe,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"ensure.js","sourceRoot":"","sources":["../src/ensure.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const PACKAGE_NAME: "@repo-prism/dispatch-hub";
|
|
2
2
|
export { CONSOLE_ALIAS_HOST, CONSOLE_HOST, HUB_PORT, dashboardUrl, hubEnabled, hubHome, hubPort, } from "./paths.js";
|
|
3
|
-
export { ensureHub, peekHub, resolveHubBin, type HubHandle } from "./ensure.js";
|
|
3
|
+
export { ensureHub, peekHub, resolveHubBin, ensurePlayground, parkPlayground, type HubHandle, } from "./ensure.js";
|
|
4
|
+
export { PLAYGROUND_PORT, playgroundUrl, type PlaygroundHandle, } from "./playground.js";
|
|
4
5
|
export { startHub, type HubOptions, type StartedHub } from "./server.js";
|
|
5
6
|
export { formatJobFinishedNotice, type JobNoticeCopy } from "./notice.js";
|
|
6
7
|
export { originAllowed, tokenFromRequest, tokensMatch } from "./auth.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,EAAG,0BAAmC,CAAC;AAEhE,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,EAAG,0BAAmC,CAAC;AAEhE,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,SAAS,EACT,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,aAAa,EACb,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,YAAY,GACb,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,cAAc,GACf,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export const PACKAGE_NAME = "@repo-prism/dispatch-hub";
|
|
2
2
|
export { CONSOLE_ALIAS_HOST, CONSOLE_HOST, HUB_PORT, dashboardUrl, hubEnabled, hubHome, hubPort, } from "./paths.js";
|
|
3
|
-
export { ensureHub, peekHub, resolveHubBin } from "./ensure.js";
|
|
3
|
+
export { ensureHub, peekHub, resolveHubBin, ensurePlayground, parkPlayground, } from "./ensure.js";
|
|
4
|
+
export { PLAYGROUND_PORT, playgroundUrl, } from "./playground.js";
|
|
4
5
|
export { startHub } from "./server.js";
|
|
5
6
|
export { formatJobFinishedNotice } from "./notice.js";
|
|
6
7
|
export { originAllowed, tokenFromRequest, tokensMatch } from "./auth.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,0BAAmC,CAAC;AAEhE,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,0BAAmC,CAAC;AAEhE,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,SAAS,EACT,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,cAAc,GAEf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,aAAa,GAEd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAoC,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAsB,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,0EAA0E;AAC1E,iEAAiE;AACjE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Playground Vite on :5173, parked with the same down page as the Console.
|
|
3
|
+
*
|
|
4
|
+
* Sleep frees the port (kills whatever is listening) and the hub serves
|
|
5
|
+
* “Prism is down”. Wake starts `apps/playground` again when this repo has one.
|
|
6
|
+
*/
|
|
7
|
+
import { type HubEnv } from "./paths.js";
|
|
8
|
+
export declare const PLAYGROUND_PORT = 5173;
|
|
9
|
+
export type PlaygroundMode = "vite" | "asleep";
|
|
10
|
+
export type PlaygroundRecord = {
|
|
11
|
+
readonly port: number;
|
|
12
|
+
readonly mode: PlaygroundMode;
|
|
13
|
+
readonly pid?: number;
|
|
14
|
+
};
|
|
15
|
+
export type PlaygroundHandle = {
|
|
16
|
+
readonly enabled: boolean;
|
|
17
|
+
readonly detail: string;
|
|
18
|
+
readonly url?: string;
|
|
19
|
+
readonly port?: number;
|
|
20
|
+
};
|
|
21
|
+
export declare function playgroundPort(env?: HubEnv): number;
|
|
22
|
+
/** Tests must not steal the user's :5173. */
|
|
23
|
+
export declare function effectivePlaygroundPort(env?: HubEnv): number;
|
|
24
|
+
export declare function playgroundViteEnabled(env?: HubEnv): boolean;
|
|
25
|
+
export declare function playgroundRecordPath(env?: HubEnv): string;
|
|
26
|
+
export declare function playgroundUrl(port: number): string;
|
|
27
|
+
export declare function findPlaygroundApp(workspaceRoot: string): Promise<string | undefined>;
|
|
28
|
+
export declare function readPlaygroundRecord(env?: HubEnv): Promise<PlaygroundRecord | undefined>;
|
|
29
|
+
export declare function writePlaygroundRecord(env: HubEnv, record: PlaygroundRecord): Promise<void>;
|
|
30
|
+
export declare function pidsOnPort(port: number): Promise<number[]>;
|
|
31
|
+
export declare function stopPlaygroundListeners(port: number, extraPid?: number): Promise<void>;
|
|
32
|
+
export declare function spawnPlaygroundVite(input: {
|
|
33
|
+
readonly workspaceRoot: string;
|
|
34
|
+
readonly env?: HubEnv;
|
|
35
|
+
}): Promise<{
|
|
36
|
+
pid: number;
|
|
37
|
+
} | undefined>;
|
|
38
|
+
export declare function playgroundIsLive(port: number, fetchImpl?: typeof fetch): Promise<boolean>;
|
|
39
|
+
export declare function playgroundIsDownPage(port: number, fetchImpl?: typeof fetch): Promise<boolean>;
|
|
40
|
+
export declare function waitForPlaygroundLive(port: number, fetchImpl?: typeof fetch, waitMs?: number): Promise<boolean>;
|
|
41
|
+
//# sourceMappingURL=playground.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../src/playground.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAKlD,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAoB,GAAG,MAAM,CAKhE;AAED,6CAA6C;AAC7C,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAoB,GAAG,MAAM,CAIzE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAoB,GAAG,OAAO,CASxE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAoB,GAAG,MAAM,CAEtE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7B;AAED,wBAAsB,oBAAoB,CACxC,GAAG,GAAE,MAAoB,GACxB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAYvC;AAED,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAehE;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAIf;AAgBD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAiBvC;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,OAAO,CAAC,CAYlB;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,OAAO,CAAC,CAYlB;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,OAAO,KAAa,EAC/B,MAAM,SAAS,GACd,OAAO,CAAC,OAAO,CAAC,CASlB"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Playground Vite on :5173, parked with the same down page as the Console.
|
|
3
|
+
*
|
|
4
|
+
* Sleep frees the port (kills whatever is listening) and the hub serves
|
|
5
|
+
* “Prism is down”. Wake starts `apps/playground` again when this repo has one.
|
|
6
|
+
*/
|
|
7
|
+
import { execFile, spawn } from "node:child_process";
|
|
8
|
+
import { promisify } from "node:util";
|
|
9
|
+
import { access } from "node:fs/promises";
|
|
10
|
+
import { join } from "node:path";
|
|
11
|
+
import { hubHome } from "./paths.js";
|
|
12
|
+
import { readJsonFile, writeJsonFile } from "./json-file.js";
|
|
13
|
+
const execFileAsync = promisify(execFile);
|
|
14
|
+
export const PLAYGROUND_PORT = 5173;
|
|
15
|
+
export function playgroundPort(env = process.env) {
|
|
16
|
+
const raw = env.PRISM_PLAYGROUND_PORT?.trim();
|
|
17
|
+
if (raw === "0")
|
|
18
|
+
return 0;
|
|
19
|
+
const parsed = raw ? Number.parseInt(raw, 10) : PLAYGROUND_PORT;
|
|
20
|
+
return Number.isInteger(parsed) && parsed >= 0 ? parsed : PLAYGROUND_PORT;
|
|
21
|
+
}
|
|
22
|
+
/** Tests must not steal the user's :5173. */
|
|
23
|
+
export function effectivePlaygroundPort(env = process.env) {
|
|
24
|
+
if (env.PRISM_PLAYGROUND_PORT?.trim())
|
|
25
|
+
return playgroundPort(env);
|
|
26
|
+
if (process.env.VITEST === "true")
|
|
27
|
+
return 0;
|
|
28
|
+
return PLAYGROUND_PORT;
|
|
29
|
+
}
|
|
30
|
+
export function playgroundViteEnabled(env = process.env) {
|
|
31
|
+
if (env.PRISM_PLAYGROUND === "0")
|
|
32
|
+
return false;
|
|
33
|
+
if ((env.VITEST === "true" || process.env.VITEST === "true") &&
|
|
34
|
+
env.PRISM_PLAYGROUND !== "1") {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
export function playgroundRecordPath(env = process.env) {
|
|
40
|
+
return join(hubHome(env), "playground.json");
|
|
41
|
+
}
|
|
42
|
+
export function playgroundUrl(port) {
|
|
43
|
+
return `http://127.0.0.1:${port}/`;
|
|
44
|
+
}
|
|
45
|
+
export async function findPlaygroundApp(workspaceRoot) {
|
|
46
|
+
const candidate = join(workspaceRoot, "apps", "playground");
|
|
47
|
+
try {
|
|
48
|
+
await access(join(candidate, "package.json"));
|
|
49
|
+
return candidate;
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export async function readPlaygroundRecord(env = process.env) {
|
|
56
|
+
const file = await readJsonFile(playgroundRecordPath(env), null);
|
|
57
|
+
if (!file || typeof file.port !== "number")
|
|
58
|
+
return undefined;
|
|
59
|
+
if (file.mode !== "vite" && file.mode !== "asleep")
|
|
60
|
+
return undefined;
|
|
61
|
+
return {
|
|
62
|
+
port: file.port,
|
|
63
|
+
mode: file.mode,
|
|
64
|
+
...(typeof file.pid === "number" ? { pid: file.pid } : {}),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export async function writePlaygroundRecord(env, record) {
|
|
68
|
+
await writeJsonFile(playgroundRecordPath(env), record);
|
|
69
|
+
}
|
|
70
|
+
export async function pidsOnPort(port) {
|
|
71
|
+
if (port <= 0)
|
|
72
|
+
return [];
|
|
73
|
+
try {
|
|
74
|
+
const { stdout } = await execFileAsync("lsof", ["-nP", `-iTCP:${port}`, "-sTCP:LISTEN", "-t"], { timeout: 1500 });
|
|
75
|
+
return stdout
|
|
76
|
+
.split(/\s+/)
|
|
77
|
+
.map((row) => Number.parseInt(row, 10))
|
|
78
|
+
.filter((pid) => Number.isInteger(pid) && pid > 0 && pid !== process.pid);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return [];
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export async function stopPlaygroundListeners(port, extraPid) {
|
|
85
|
+
const pids = new Set(await pidsOnPort(port));
|
|
86
|
+
if (typeof extraPid === "number")
|
|
87
|
+
pids.add(extraPid);
|
|
88
|
+
for (const pid of pids)
|
|
89
|
+
stopPid(pid);
|
|
90
|
+
}
|
|
91
|
+
function stopPid(pid) {
|
|
92
|
+
if (!Number.isInteger(pid) || pid <= 0 || pid === process.pid)
|
|
93
|
+
return;
|
|
94
|
+
try {
|
|
95
|
+
process.kill(-pid, "SIGTERM");
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
/* not a group leader */
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
process.kill(pid, "SIGTERM");
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
/* already gone */
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
export async function spawnPlaygroundVite(input) {
|
|
108
|
+
const app = await findPlaygroundApp(input.workspaceRoot);
|
|
109
|
+
if (!app)
|
|
110
|
+
return undefined;
|
|
111
|
+
const child = spawn("bun", ["run", "dev"], {
|
|
112
|
+
cwd: app,
|
|
113
|
+
detached: true,
|
|
114
|
+
stdio: "ignore",
|
|
115
|
+
env: {
|
|
116
|
+
...process.env,
|
|
117
|
+
...input.env,
|
|
118
|
+
PRISM_PLAYGROUND_ROOT: input.workspaceRoot,
|
|
119
|
+
},
|
|
120
|
+
windowsHide: true,
|
|
121
|
+
});
|
|
122
|
+
child.unref();
|
|
123
|
+
if (typeof child.pid !== "number")
|
|
124
|
+
return undefined;
|
|
125
|
+
return { pid: child.pid };
|
|
126
|
+
}
|
|
127
|
+
export async function playgroundIsLive(port, fetchImpl = fetch) {
|
|
128
|
+
if (port <= 0)
|
|
129
|
+
return false;
|
|
130
|
+
try {
|
|
131
|
+
const response = await fetchImpl(playgroundUrl(port), {
|
|
132
|
+
signal: AbortSignal.timeout(800),
|
|
133
|
+
});
|
|
134
|
+
if (!response.ok)
|
|
135
|
+
return false;
|
|
136
|
+
const text = await response.text();
|
|
137
|
+
return !/Prism is down/i.test(text);
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
export async function playgroundIsDownPage(port, fetchImpl = fetch) {
|
|
144
|
+
if (port <= 0)
|
|
145
|
+
return false;
|
|
146
|
+
try {
|
|
147
|
+
const response = await fetchImpl(playgroundUrl(port), {
|
|
148
|
+
signal: AbortSignal.timeout(800),
|
|
149
|
+
});
|
|
150
|
+
if (!response.ok)
|
|
151
|
+
return false;
|
|
152
|
+
const text = await response.text();
|
|
153
|
+
return /Prism is down/i.test(text);
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
export async function waitForPlaygroundLive(port, fetchImpl = fetch, waitMs = 20_000) {
|
|
160
|
+
const deadline = Date.now() + waitMs;
|
|
161
|
+
while (Date.now() < deadline) {
|
|
162
|
+
if (await playgroundIsLive(port, fetchImpl))
|
|
163
|
+
return true;
|
|
164
|
+
await new Promise((resolve) => {
|
|
165
|
+
setTimeout(resolve, 200).unref?.();
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=playground.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playground.js","sourceRoot":"","sources":["../src/playground.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -27,6 +27,10 @@ export type HubOptions = {
|
|
|
27
27
|
readonly listWorkerModels?: (input: {
|
|
28
28
|
readonly backend: WorkerBackend;
|
|
29
29
|
}) => Promise<readonly WorkerModelOption[]>;
|
|
30
|
+
/** Injected in tests. Production starts `apps/playground` with bun. */
|
|
31
|
+
readonly spawnPlayground?: (workspaceRoot: string) => Promise<{
|
|
32
|
+
pid: number;
|
|
33
|
+
} | undefined>;
|
|
30
34
|
};
|
|
31
35
|
export type StartedHub = {
|
|
32
36
|
readonly record: HubRecord;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAUA,OAAO,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAUA,OAAO,EAoBL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAS3B,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAyB,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAqBhE,OAAO,KAAK,EAEV,SAAS,EAIV,MAAM,YAAY,CAAC;AAiBpB,MAAM,MAAM,YAAY,GAAG,CACzB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAC1D,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,MAAM,UAAU,GAAG,CACvB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,oEAAoE;IACpE,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAC1C,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxD,gFAAgF;IAChF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE;QAClC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;KACjC,KAAK,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAAC;IAC5C,uEAAuE;IACvE,QAAQ,CAAC,eAAe,CAAC,EAAE,CACzB,aAAa,EAAE,MAAM,KAClB,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC,CAAC;AAsEF,wBAAsB,QAAQ,CAC5B,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,UAAU,GAAG;IAAE,cAAc,EAAE,IAAI,CAAA;CAAE,CAAC,CAg0BhD"}
|