@repo-prism/dispatch-hub 1.9.0 → 1.11.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 +179 -152
- package/dist/dashboard/app.js.map +90 -42
- package/dist/dashboard/hub.css +1660 -172
- package/dist/dashboard/index.html +2 -2
- package/dist/ensure.js +3 -3
- package/dist/ensure.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/paths.d.ts +9 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +16 -0
- package/dist/paths.js.map +1 -1
- package/dist/playground.d.ts +28 -5
- package/dist/playground.d.ts.map +1 -1
- package/dist/playground.js +114 -15
- package/dist/playground.js.map +1 -1
- package/dist/registry.d.ts +6 -2
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +60 -7
- package/dist/registry.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +219 -22
- package/dist/server.js.map +1 -1
- package/dist/trees.d.ts +56 -0
- package/dist/trees.d.ts.map +1 -0
- package/dist/trees.js +170 -0
- package/dist/trees.js.map +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/update.d.ts +37 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +146 -0
- package/dist/update.js.map +1 -0
- package/dist/watch.d.ts +2 -1
- package/dist/watch.d.ts.map +1 -1
- package/dist/watch.js +59 -23
- package/dist/watch.js.map +1 -1
- package/package.json +4 -4
|
@@ -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=mtwjvp4p" />
|
|
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=mtwjvp4p"></script>
|
|
13
13
|
</body>
|
|
14
14
|
</html>
|
package/dist/ensure.js
CHANGED
|
@@ -135,21 +135,21 @@ async function postPlayground(input, action) {
|
|
|
135
135
|
return {
|
|
136
136
|
enabled: true,
|
|
137
137
|
detail: body.detail ??
|
|
138
|
-
(action === "wake" ? "
|
|
138
|
+
(action === "wake" ? "Spectrum is up." : "Spectrum is down."),
|
|
139
139
|
url,
|
|
140
140
|
port: typeof body.port === "number" ? body.port : PLAYGROUND_PORT,
|
|
141
141
|
};
|
|
142
142
|
}
|
|
143
143
|
return {
|
|
144
144
|
enabled: false,
|
|
145
|
-
detail: body.detail ?? "
|
|
145
|
+
detail: body.detail ?? "Spectrum did not start.",
|
|
146
146
|
url,
|
|
147
147
|
};
|
|
148
148
|
}
|
|
149
149
|
catch {
|
|
150
150
|
return {
|
|
151
151
|
enabled: false,
|
|
152
|
-
detail: "
|
|
152
|
+
detail: "Spectrum did not start.",
|
|
153
153
|
url: fallbackUrl,
|
|
154
154
|
};
|
|
155
155
|
}
|
package/dist/ensure.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure.js","sourceRoot":"","sources":["../src/ensure.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ensure.js","sourceRoot":"","sources":["../src/ensure.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { formatJobFinishedNotice, type JobNoticeCopy } from "./notice.js";
|
|
|
7
7
|
export { originAllowed, tokenFromRequest, tokensMatch } from "./auth.js";
|
|
8
8
|
export { diffJobs, collectJobs, isInFlight, isTerminal } from "./watch.js";
|
|
9
9
|
export { toSnapshot } from "./snapshot.js";
|
|
10
|
-
export { registerWorkspace, unregisterWorkspace, workspaceLabel, loadRegistry, } from "./registry.js";
|
|
10
|
+
export { registerWorkspace, unregisterWorkspace, workspaceLabel, loadRegistry, selectedWorkspace, setSelectedWorkspace, mergeWorkspaceEntries, } from "./registry.js";
|
|
11
11
|
export { readHubRecord, newHubToken } from "./hub-record.js";
|
|
12
12
|
export type { HubEvent, HubRecord, JobSnapshot, WorkspaceEntry, } from "./types.js";
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
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,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,
|
|
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,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,GACtB,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
|
@@ -7,7 +7,7 @@ export { formatJobFinishedNotice } from "./notice.js";
|
|
|
7
7
|
export { originAllowed, tokenFromRequest, tokensMatch } from "./auth.js";
|
|
8
8
|
export { diffJobs, collectJobs, isInFlight, isTerminal } from "./watch.js";
|
|
9
9
|
export { toSnapshot } from "./snapshot.js";
|
|
10
|
-
export { registerWorkspace, unregisterWorkspace, workspaceLabel, loadRegistry, } from "./registry.js";
|
|
10
|
+
export { registerWorkspace, unregisterWorkspace, workspaceLabel, loadRegistry, selectedWorkspace, setSelectedWorkspace, mergeWorkspaceEntries, } from "./registry.js";
|
|
11
11
|
// Statusline is the `prism-hub statusline` CLI only. Re-exporting it here
|
|
12
12
|
// pulled `formatDuration` into every MCP import of this package.
|
|
13
13
|
export { readHubRecord, newHubToken } from "./hub-record.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,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,
|
|
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,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,0EAA0E;AAC1E,iEAAiE;AACjE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/paths.d.ts
CHANGED
|
@@ -12,6 +12,15 @@ export type HubEnv = {
|
|
|
12
12
|
readonly VITEST?: string;
|
|
13
13
|
readonly [key: string]: string | undefined;
|
|
14
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* Overlay hub overrides on `process.env`.
|
|
17
|
+
*
|
|
18
|
+
* Tests pass a sparse object (`PRISM_HUB_HOME`, `PRISM_HUB_PORT`). If that
|
|
19
|
+
* replaced the process env, `VITEST` vanished and the job store treated the
|
|
20
|
+
* developer's real `~/.prism` as live (ADR-0054). A shell `PRISM_HOME` is
|
|
21
|
+
* blanked in Vitest unless the overlay set one, so fixtures stay local.
|
|
22
|
+
*/
|
|
23
|
+
export declare function mergeHubEnv(env?: HubEnv): NodeJS.ProcessEnv;
|
|
15
24
|
export declare function hubHome(env?: HubEnv): string;
|
|
16
25
|
export declare function hubRecordPath(home?: string): string;
|
|
17
26
|
export declare function hubRegistryPath(home?: string): string;
|
package/dist/paths.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAGA,4DAA4D;AAC5D,eAAO,MAAM,QAAQ,QAAQ,CAAC;AAE9B,eAAO,MAAM,YAAY,eAAe,CAAC;AAEzC,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,oEAAoE;IACpE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,0EAA0E;IAC1E,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF,wBAAgB,OAAO,CAAC,GAAG,GAAE,MAAoB,GAAG,MAAM,CAIzD;AAED,wBAAgB,aAAa,CAAC,IAAI,SAAY,GAAG,MAAM,CAEtD;AAED,wBAAgB,eAAe,CAAC,IAAI,SAAY,GAAG,MAAM,CAExD;AAED,wBAAgB,OAAO,CAAC,GAAG,GAAE,MAAoB,GAAG,MAAM,CAKzD;AAED,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAoB,GAAG,OAAO,CAM7D;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAEhD,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AAErD,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAoB,GAAG,MAAM,CAI7D;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,GAAE,MAAoB,GACxB,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C"}
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAGA,4DAA4D;AAC5D,eAAO,MAAM,QAAQ,QAAQ,CAAC;AAE9B,eAAO,MAAM,YAAY,eAAe,CAAC;AAEzC,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,oEAAoE;IACpE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,0EAA0E;IAC1E,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,CAO3D;AAED,wBAAgB,OAAO,CAAC,GAAG,GAAE,MAAoB,GAAG,MAAM,CAIzD;AAED,wBAAgB,aAAa,CAAC,IAAI,SAAY,GAAG,MAAM,CAEtD;AAED,wBAAgB,eAAe,CAAC,IAAI,SAAY,GAAG,MAAM,CAExD;AAED,wBAAgB,OAAO,CAAC,GAAG,GAAE,MAAoB,GAAG,MAAM,CAKzD;AAED,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAoB,GAAG,OAAO,CAM7D;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAEhD,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AAErD,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAoB,GAAG,MAAM,CAI7D;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,GAAE,MAAoB,GACxB,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C"}
|
package/dist/paths.js
CHANGED
|
@@ -3,6 +3,22 @@ import { join } from "node:path";
|
|
|
3
3
|
/** Loopback-only port for the jobs dashboard (ADR-0043). */
|
|
4
4
|
export const HUB_PORT = 17330;
|
|
5
5
|
export const HUB_DIR_NAME = ".prism/hub";
|
|
6
|
+
/**
|
|
7
|
+
* Overlay hub overrides on `process.env`.
|
|
8
|
+
*
|
|
9
|
+
* Tests pass a sparse object (`PRISM_HUB_HOME`, `PRISM_HUB_PORT`). If that
|
|
10
|
+
* replaced the process env, `VITEST` vanished and the job store treated the
|
|
11
|
+
* developer's real `~/.prism` as live (ADR-0054). A shell `PRISM_HOME` is
|
|
12
|
+
* blanked in Vitest unless the overlay set one, so fixtures stay local.
|
|
13
|
+
*/
|
|
14
|
+
export function mergeHubEnv(env) {
|
|
15
|
+
const merged = { ...process.env, ...env };
|
|
16
|
+
if (process.env.VITEST === "true" && !env?.PRISM_HOME?.trim()) {
|
|
17
|
+
merged.VITEST = "true";
|
|
18
|
+
merged.PRISM_HOME = "";
|
|
19
|
+
}
|
|
20
|
+
return merged;
|
|
21
|
+
}
|
|
6
22
|
export function hubHome(env = process.env) {
|
|
7
23
|
const override = env.PRISM_HUB_HOME?.trim();
|
|
8
24
|
if (override)
|
package/dist/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,4DAA4D;AAC5D,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC;AAE9B,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC;AAczC,MAAM,UAAU,OAAO,CAAC,MAAc,OAAO,CAAC,GAAG;IAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAI,GAAG,OAAO,EAAE;IAC5C,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAI,GAAG,OAAO,EAAE;IAC9C,OAAO,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,MAAc,OAAO,CAAC,GAAG;IAC/C,MAAM,GAAG,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;IACvC,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACzD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAc,OAAO,CAAC,GAAG;IAClD,IAAI,GAAG,CAAC,SAAS,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IACxC,2EAA2E;IAC3E,0CAA0C;IAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,SAAS,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IACjE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAEhD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAErD,MAAM,UAAU,WAAW,CAAC,MAAc,OAAO,CAAC,GAAG;IACnD,IAAI,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;IACzE,IAAI,GAAG,CAAC,mBAAmB,KAAK,GAAG;QAAE,OAAO,kBAAkB,CAAC;IAC/D,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,KAAc,EACd,MAAc,OAAO,CAAC,GAAG;IAEzB,MAAM,IAAI,GAAG,UAAU,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;IACnD,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACrE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,oBAAoB,IAAI,EAAE,CAAC;AACpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
|
package/dist/playground.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Playground Vite on :
|
|
2
|
+
* Playground Vite on :17331 (next to the Console on :17330), parked with the
|
|
3
|
+
* same down page as the Console. 5173 is Vite’s default and collides with
|
|
4
|
+
* other local apps; override with `PRISM_PLAYGROUND_PORT` when needed.
|
|
3
5
|
*
|
|
4
6
|
* Sleep frees the port (kills whatever is listening) and the hub serves
|
|
5
7
|
* “Prism is down”. Wake starts `apps/playground` again when this repo has one.
|
|
6
8
|
*/
|
|
7
9
|
import { type HubEnv } from "./paths.js";
|
|
8
|
-
export declare const PLAYGROUND_PORT =
|
|
10
|
+
export declare const PLAYGROUND_PORT = 17331;
|
|
9
11
|
export type PlaygroundMode = "vite" | "asleep";
|
|
10
12
|
export type PlaygroundRecord = {
|
|
11
13
|
readonly port: number;
|
|
@@ -19,19 +21,40 @@ export type PlaygroundHandle = {
|
|
|
19
21
|
readonly port?: number;
|
|
20
22
|
};
|
|
21
23
|
export declare function playgroundPort(env?: HubEnv): number;
|
|
22
|
-
/** Tests must not steal the user's
|
|
24
|
+
/** Tests must not steal the user's playground port. */
|
|
23
25
|
export declare function effectivePlaygroundPort(env?: HubEnv): number;
|
|
24
26
|
export declare function playgroundViteEnabled(env?: HubEnv): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Node that can dlopen `better-sqlite3` (ABI must match the compiled addon).
|
|
29
|
+
* PATH `node` is often Cursor's helper (different ABI), so we prefer nvm/proto
|
|
30
|
+
* matching `.nvmrc` / `engines.node`.
|
|
31
|
+
*/
|
|
32
|
+
export declare function resolvePlaygroundNode(input?: {
|
|
33
|
+
readonly workspaceRoot?: string;
|
|
34
|
+
readonly playgroundApp?: string;
|
|
35
|
+
readonly env?: HubEnv;
|
|
36
|
+
}): string;
|
|
37
|
+
export declare function playgroundViteEntry(app: string): string;
|
|
25
38
|
export declare function playgroundRecordPath(env?: HubEnv): string;
|
|
26
|
-
export declare function playgroundUrl(port: number): string;
|
|
27
|
-
|
|
39
|
+
export declare function playgroundUrl(port: number, env?: HubEnv): string;
|
|
40
|
+
/** Bind/health checks stay on loopback — the daemon listens on 127.0.0.1. */
|
|
41
|
+
export declare function playgroundBindUrl(port: number): string;
|
|
42
|
+
export declare function findPlaygroundApp(workspaceRoot: string, extraRoots?: readonly string[]): Promise<string | undefined>;
|
|
43
|
+
/**
|
|
44
|
+
* Where Vite actually lives: the requested repo, other registered
|
|
45
|
+
* workspaces, `PRISM_PLAYGROUND_ROOT`, then this Prism checkout. Tests stay
|
|
46
|
+
* isolated — they only see the workspace unless they opt in.
|
|
47
|
+
*/
|
|
48
|
+
export declare function resolvePlaygroundApp(workspaceRoot: string, extraRoots?: readonly string[], env?: HubEnv): Promise<string | undefined>;
|
|
28
49
|
export declare function readPlaygroundRecord(env?: HubEnv): Promise<PlaygroundRecord | undefined>;
|
|
29
50
|
export declare function writePlaygroundRecord(env: HubEnv, record: PlaygroundRecord): Promise<void>;
|
|
30
51
|
export declare function pidsOnPort(port: number): Promise<number[]>;
|
|
31
52
|
export declare function stopPlaygroundListeners(port: number, extraPid?: number): Promise<void>;
|
|
32
53
|
export declare function spawnPlaygroundVite(input: {
|
|
33
54
|
readonly workspaceRoot: string;
|
|
55
|
+
readonly extraRoots?: readonly string[];
|
|
34
56
|
readonly env?: HubEnv;
|
|
57
|
+
readonly port?: number;
|
|
35
58
|
}): Promise<{
|
|
36
59
|
pid: number;
|
|
37
60
|
} | undefined>;
|
package/dist/playground.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../src/playground.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../src/playground.ts"],"names":[],"mappings":"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"}
|
package/dist/playground.js
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Playground Vite on :
|
|
2
|
+
* Playground Vite on :17331 (next to the Console on :17330), parked with the
|
|
3
|
+
* same down page as the Console. 5173 is Vite’s default and collides with
|
|
4
|
+
* other local apps; override with `PRISM_PLAYGROUND_PORT` when needed.
|
|
3
5
|
*
|
|
4
6
|
* Sleep frees the port (kills whatever is listening) and the hub serves
|
|
5
7
|
* “Prism is down”. Wake starts `apps/playground` again when this repo has one.
|
|
6
8
|
*/
|
|
7
9
|
import { execFile, spawn } from "node:child_process";
|
|
8
|
-
import {
|
|
10
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
9
11
|
import { access } from "node:fs/promises";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
+
import { homedir } from "node:os";
|
|
13
|
+
import { delimiter, dirname, join } from "node:path";
|
|
14
|
+
import { fileURLToPath } from "node:url";
|
|
15
|
+
import { promisify } from "node:util";
|
|
16
|
+
import { consoleHost, hubHome } from "./paths.js";
|
|
12
17
|
import { readJsonFile, writeJsonFile } from "./json-file.js";
|
|
13
18
|
const execFileAsync = promisify(execFile);
|
|
14
|
-
export const PLAYGROUND_PORT =
|
|
19
|
+
export const PLAYGROUND_PORT = 17331;
|
|
15
20
|
export function playgroundPort(env = process.env) {
|
|
16
21
|
const raw = env.PRISM_PLAYGROUND_PORT?.trim();
|
|
17
22
|
if (raw === "0")
|
|
@@ -19,7 +24,7 @@ export function playgroundPort(env = process.env) {
|
|
|
19
24
|
const parsed = raw ? Number.parseInt(raw, 10) : PLAYGROUND_PORT;
|
|
20
25
|
return Number.isInteger(parsed) && parsed >= 0 ? parsed : PLAYGROUND_PORT;
|
|
21
26
|
}
|
|
22
|
-
/** Tests must not steal the user's
|
|
27
|
+
/** Tests must not steal the user's playground port. */
|
|
23
28
|
export function effectivePlaygroundPort(env = process.env) {
|
|
24
29
|
if (env.PRISM_PLAYGROUND_PORT?.trim())
|
|
25
30
|
return playgroundPort(env);
|
|
@@ -36,22 +41,104 @@ export function playgroundViteEnabled(env = process.env) {
|
|
|
36
41
|
}
|
|
37
42
|
return true;
|
|
38
43
|
}
|
|
44
|
+
const DEFAULT_NODE_VERSION = "26.5.0";
|
|
45
|
+
function readNvmrcVersion(dir) {
|
|
46
|
+
if (!dir)
|
|
47
|
+
return undefined;
|
|
48
|
+
try {
|
|
49
|
+
const raw = readFileSync(join(dir, ".nvmrc"), "utf8").trim();
|
|
50
|
+
return raw.replace(/^v/, "") || undefined;
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function nodeBinaryName() {
|
|
57
|
+
return process.platform === "win32" ? "node.exe" : "node";
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Node that can dlopen `better-sqlite3` (ABI must match the compiled addon).
|
|
61
|
+
* PATH `node` is often Cursor's helper (different ABI), so we prefer nvm/proto
|
|
62
|
+
* matching `.nvmrc` / `engines.node`.
|
|
63
|
+
*/
|
|
64
|
+
export function resolvePlaygroundNode(input = {}) {
|
|
65
|
+
const env = input.env ?? process.env;
|
|
66
|
+
const override = env.PRISM_NODE?.trim();
|
|
67
|
+
if (override && existsSync(override))
|
|
68
|
+
return override;
|
|
69
|
+
const version = env.PRISM_NODE_VERSION?.trim() ||
|
|
70
|
+
readNvmrcVersion(input.workspaceRoot) ||
|
|
71
|
+
readNvmrcVersion(input.playgroundApp ? join(input.playgroundApp, "..", "..") : undefined) ||
|
|
72
|
+
DEFAULT_NODE_VERSION;
|
|
73
|
+
const exe = nodeBinaryName();
|
|
74
|
+
const nvmDir = env.NVM_DIR?.trim() || join(homedir(), ".nvm");
|
|
75
|
+
const candidates = [
|
|
76
|
+
join(nvmDir, "versions", "node", `v${version}`, "bin", exe),
|
|
77
|
+
join(homedir(), ".proto", "tools", "node", version, "bin", exe),
|
|
78
|
+
];
|
|
79
|
+
for (const candidate of candidates) {
|
|
80
|
+
if (existsSync(candidate))
|
|
81
|
+
return candidate;
|
|
82
|
+
}
|
|
83
|
+
return exe;
|
|
84
|
+
}
|
|
85
|
+
export function playgroundViteEntry(app) {
|
|
86
|
+
return join(app, "node_modules", "vite", "bin", "vite.js");
|
|
87
|
+
}
|
|
39
88
|
export function playgroundRecordPath(env = process.env) {
|
|
40
89
|
return join(hubHome(env), "playground.json");
|
|
41
90
|
}
|
|
42
|
-
export function playgroundUrl(port) {
|
|
91
|
+
export function playgroundUrl(port, env = process.env) {
|
|
92
|
+
return `http://${consoleHost(env)}:${port}/`;
|
|
93
|
+
}
|
|
94
|
+
/** Bind/health checks stay on loopback — the daemon listens on 127.0.0.1. */
|
|
95
|
+
export function playgroundBindUrl(port) {
|
|
43
96
|
return `http://127.0.0.1:${port}/`;
|
|
44
97
|
}
|
|
45
|
-
|
|
46
|
-
const candidate = join(workspaceRoot, "apps", "playground");
|
|
98
|
+
async function playgroundPackageAt(dir) {
|
|
47
99
|
try {
|
|
48
|
-
await access(join(
|
|
49
|
-
return
|
|
100
|
+
await access(join(dir, "package.json"));
|
|
101
|
+
return dir;
|
|
50
102
|
}
|
|
51
103
|
catch {
|
|
52
104
|
return undefined;
|
|
53
105
|
}
|
|
54
106
|
}
|
|
107
|
+
export async function findPlaygroundApp(workspaceRoot, extraRoots = []) {
|
|
108
|
+
const roots = [workspaceRoot, ...extraRoots].filter((root) => root.trim());
|
|
109
|
+
const seen = new Set();
|
|
110
|
+
for (const root of roots) {
|
|
111
|
+
const candidate = join(root, "apps", "playground");
|
|
112
|
+
if (seen.has(candidate))
|
|
113
|
+
continue;
|
|
114
|
+
seen.add(candidate);
|
|
115
|
+
const found = await playgroundPackageAt(candidate);
|
|
116
|
+
if (found)
|
|
117
|
+
return found;
|
|
118
|
+
}
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Where Vite actually lives: the requested repo, other registered
|
|
123
|
+
* workspaces, `PRISM_PLAYGROUND_ROOT`, then this Prism checkout. Tests stay
|
|
124
|
+
* isolated — they only see the workspace unless they opt in.
|
|
125
|
+
*/
|
|
126
|
+
export async function resolvePlaygroundApp(workspaceRoot, extraRoots = [], env = process.env) {
|
|
127
|
+
const found = await findPlaygroundApp(workspaceRoot, extraRoots);
|
|
128
|
+
if (found)
|
|
129
|
+
return found;
|
|
130
|
+
const override = env.PRISM_PLAYGROUND_ROOT?.trim();
|
|
131
|
+
if (override) {
|
|
132
|
+
const fromOverride = (await playgroundPackageAt(override)) ??
|
|
133
|
+
(await findPlaygroundApp(override));
|
|
134
|
+
if (fromOverride)
|
|
135
|
+
return fromOverride;
|
|
136
|
+
}
|
|
137
|
+
if (env.VITEST === "true" || process.env.VITEST === "true")
|
|
138
|
+
return undefined;
|
|
139
|
+
const hubRepo = fileURLToPath(new URL("../../..", import.meta.url));
|
|
140
|
+
return findPlaygroundApp(hubRepo);
|
|
141
|
+
}
|
|
55
142
|
export async function readPlaygroundRecord(env = process.env) {
|
|
56
143
|
const file = await readJsonFile(playgroundRecordPath(env), null);
|
|
57
144
|
if (!file || typeof file.port !== "number")
|
|
@@ -105,17 +192,29 @@ function stopPid(pid) {
|
|
|
105
192
|
}
|
|
106
193
|
}
|
|
107
194
|
export async function spawnPlaygroundVite(input) {
|
|
108
|
-
const
|
|
195
|
+
const env = input.env ?? process.env;
|
|
196
|
+
const port = input.port ?? playgroundPort(env);
|
|
197
|
+
if (port <= 0)
|
|
198
|
+
return undefined;
|
|
199
|
+
const app = await resolvePlaygroundApp(input.workspaceRoot, input.extraRoots ?? [], env);
|
|
109
200
|
if (!app)
|
|
110
201
|
return undefined;
|
|
111
|
-
const
|
|
202
|
+
const nodeBin = resolvePlaygroundNode({
|
|
203
|
+
workspaceRoot: input.workspaceRoot,
|
|
204
|
+
playgroundApp: app,
|
|
205
|
+
env,
|
|
206
|
+
});
|
|
207
|
+
const vite = playgroundViteEntry(app);
|
|
208
|
+
const child = spawn(nodeBin, [vite, "--port", String(port), "--strictPort", "--host", "127.0.0.1"], {
|
|
112
209
|
cwd: app,
|
|
113
210
|
detached: true,
|
|
114
211
|
stdio: "ignore",
|
|
115
212
|
env: {
|
|
116
213
|
...process.env,
|
|
117
214
|
...input.env,
|
|
215
|
+
PATH: `${dirname(nodeBin)}${delimiter}${process.env.PATH ?? ""}`,
|
|
118
216
|
PRISM_PLAYGROUND_ROOT: input.workspaceRoot,
|
|
217
|
+
PRISM_PLAYGROUND_PORT: String(port),
|
|
119
218
|
},
|
|
120
219
|
windowsHide: true,
|
|
121
220
|
});
|
|
@@ -128,7 +227,7 @@ export async function playgroundIsLive(port, fetchImpl = fetch) {
|
|
|
128
227
|
if (port <= 0)
|
|
129
228
|
return false;
|
|
130
229
|
try {
|
|
131
|
-
const response = await fetchImpl(
|
|
230
|
+
const response = await fetchImpl(playgroundBindUrl(port), {
|
|
132
231
|
signal: AbortSignal.timeout(800),
|
|
133
232
|
});
|
|
134
233
|
if (!response.ok)
|
|
@@ -144,7 +243,7 @@ export async function playgroundIsDownPage(port, fetchImpl = fetch) {
|
|
|
144
243
|
if (port <= 0)
|
|
145
244
|
return false;
|
|
146
245
|
try {
|
|
147
|
-
const response = await fetchImpl(
|
|
246
|
+
const response = await fetchImpl(playgroundBindUrl(port), {
|
|
148
247
|
signal: AbortSignal.timeout(800),
|
|
149
248
|
});
|
|
150
249
|
if (!response.ok)
|
package/dist/playground.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playground.js","sourceRoot":"","sources":["../src/playground.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"playground.js","sourceRoot":"","sources":["../src/playground.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { type HubEnv } from "./paths.js";
|
|
2
|
-
import type { WorkspaceEntry } from "./types.js";
|
|
2
|
+
import type { WorkspaceEntry, WorkspaceRegistry } from "./types.js";
|
|
3
3
|
export declare function workspaceLabel(path: string): string;
|
|
4
4
|
/** Test fixtures under packages/.../fixtures — not user checkouts. */
|
|
5
5
|
export declare function isFixtureWorkspacePath(path: string): boolean;
|
|
6
6
|
export declare function isNestedWorkspace(path: string, parent: string): boolean;
|
|
7
7
|
/** Keep top-level checkouts. Drop nested folders and intelligence fixtures. */
|
|
8
8
|
export declare function pruneHubWorkspaces(workspaces: readonly WorkspaceEntry[]): WorkspaceEntry[];
|
|
9
|
+
export declare function mergeWorkspaceEntries(primary: readonly WorkspaceEntry[], extraPaths: readonly string[], now?: string): WorkspaceEntry[];
|
|
10
|
+
export declare function loadRegistryFile(env?: HubEnv): Promise<WorkspaceRegistry>;
|
|
9
11
|
export declare function loadRegistry(env?: HubEnv): Promise<WorkspaceEntry[]>;
|
|
10
|
-
export declare function
|
|
12
|
+
export declare function selectedWorkspace(env?: HubEnv): Promise<string | undefined>;
|
|
13
|
+
export declare function saveRegistry(workspaces: readonly WorkspaceEntry[], env?: HubEnv, selectedPath?: string): Promise<void>;
|
|
14
|
+
export declare function setSelectedWorkspace(path: string, env?: HubEnv): Promise<WorkspaceEntry[]>;
|
|
11
15
|
export declare function registerWorkspace(path: string, env?: HubEnv, now?: () => string): Promise<WorkspaceEntry[]>;
|
|
12
16
|
/** Drop a checkout from the Console. Does not delete the tree or its jobs. */
|
|
13
17
|
export declare function unregisterWorkspace(path: string, env?: HubEnv): Promise<WorkspaceEntry[]>;
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAMD,sEAAsE;AACtE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAI5D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAMvE;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,SAAS,cAAc,EAAE,GACpC,cAAc,EAAE,CAUlB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,GAAG,GAAE,MAAiC,GACrC,cAAc,EAAE,CAclB;AAED,wBAAsB,gBAAgB,CACpC,GAAG,GAAE,MAAoB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAW5B;AAED,wBAAsB,YAAY,CAChC,GAAG,GAAE,MAAoB,GACxB,OAAO,CAAC,cAAc,EAAE,CAAC,CAE3B;AAED,wBAAsB,iBAAiB,CACrC,GAAG,GAAE,MAAoB,GACxB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAU7B;AAED,wBAAsB,YAAY,CAChC,UAAU,EAAE,SAAS,cAAc,EAAE,EACrC,GAAG,GAAE,MAAoB,EACzB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,MAAoB,GACxB,OAAO,CAAC,cAAc,EAAE,CAAC,CAS3B;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,MAAoB,EACzB,GAAG,GAAE,MAAM,MAAuC,GACjD,OAAO,CAAC,cAAc,EAAE,CAAC,CAmB3B;AAED,8EAA8E;AAC9E,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,MAAoB,GACxB,OAAO,CAAC,cAAc,EAAE,CAAC,CAO3B;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAC1C,GAAG,GAAE,MAAoB,GACxB,OAAO,CAAC,cAAc,EAAE,CAAC,CAc3B"}
|
package/dist/registry.js
CHANGED
|
@@ -24,15 +24,68 @@ export function pruneHubWorkspaces(workspaces) {
|
|
|
24
24
|
const withoutFixtures = workspaces.filter((entry) => !isFixtureWorkspacePath(entry.path));
|
|
25
25
|
return withoutFixtures.filter((entry) => !withoutFixtures.some((other) => isNestedWorkspace(entry.path, other.path)));
|
|
26
26
|
}
|
|
27
|
-
export
|
|
27
|
+
export function mergeWorkspaceEntries(primary, extraPaths, now = new Date().toISOString()) {
|
|
28
|
+
const seen = new Set(primary.map((entry) => resolvedPath(entry.path)));
|
|
29
|
+
const rows = [...primary];
|
|
30
|
+
for (const path of extraPaths) {
|
|
31
|
+
const root = resolvedPath(path.trim());
|
|
32
|
+
if (!root || seen.has(root))
|
|
33
|
+
continue;
|
|
34
|
+
seen.add(root);
|
|
35
|
+
rows.push({
|
|
36
|
+
path: root,
|
|
37
|
+
label: workspaceLabel(root),
|
|
38
|
+
lastSeenAt: now,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return rows;
|
|
42
|
+
}
|
|
43
|
+
export async function loadRegistryFile(env = process.env) {
|
|
28
44
|
const file = await readJsonFile(hubRegistryPath(hubHome(env)), { workspaces: [] });
|
|
29
|
-
return
|
|
45
|
+
return {
|
|
46
|
+
workspaces: [...(file.workspaces ?? [])],
|
|
47
|
+
...(file.selectedPath?.trim()
|
|
48
|
+
? { selectedPath: resolvedPath(file.selectedPath) }
|
|
49
|
+
: {}),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export async function loadRegistry(env = process.env) {
|
|
53
|
+
return [...(await loadRegistryFile(env)).workspaces];
|
|
30
54
|
}
|
|
31
|
-
export async function
|
|
32
|
-
await
|
|
55
|
+
export async function selectedWorkspace(env = process.env) {
|
|
56
|
+
const file = await loadRegistryFile(env);
|
|
57
|
+
const selected = file.selectedPath?.trim();
|
|
58
|
+
if (selected &&
|
|
59
|
+
file.workspaces.some((row) => resolvedPath(row.path) === selected)) {
|
|
60
|
+
return selected;
|
|
61
|
+
}
|
|
62
|
+
return file.workspaces[0]?.path;
|
|
63
|
+
}
|
|
64
|
+
export async function saveRegistry(workspaces, env = process.env, selectedPath) {
|
|
65
|
+
const current = await loadRegistryFile(env);
|
|
66
|
+
const selected = selectedPath?.trim() ||
|
|
67
|
+
(current.selectedPath &&
|
|
68
|
+
workspaces.some((row) => resolvedPath(row.path) === resolvedPath(current.selectedPath))
|
|
69
|
+
? current.selectedPath
|
|
70
|
+
: workspaces[0]?.path);
|
|
71
|
+
await writeJsonFile(hubRegistryPath(hubHome(env)), {
|
|
72
|
+
workspaces,
|
|
73
|
+
...(selected ? { selectedPath: resolvedPath(selected) } : {}),
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
export async function setSelectedWorkspace(path, env = process.env) {
|
|
77
|
+
const current = await loadRegistry(env);
|
|
78
|
+
const root = resolvedPath(path.trim());
|
|
79
|
+
if (!root)
|
|
80
|
+
return current;
|
|
81
|
+
if (!current.some((entry) => resolvedPath(entry.path) === root)) {
|
|
82
|
+
return current;
|
|
83
|
+
}
|
|
84
|
+
await saveRegistry(current, env, root);
|
|
85
|
+
return current;
|
|
33
86
|
}
|
|
34
87
|
export async function registerWorkspace(path, env = process.env, now = () => new Date().toISOString()) {
|
|
35
|
-
const root = path.trim();
|
|
88
|
+
const root = resolvedPath(path.trim());
|
|
36
89
|
if (!root)
|
|
37
90
|
return loadRegistry(env);
|
|
38
91
|
const current = await loadRegistry(env);
|
|
@@ -43,14 +96,14 @@ export async function registerWorkspace(path, env = process.env, now = () => new
|
|
|
43
96
|
return kept;
|
|
44
97
|
}
|
|
45
98
|
const next = pruneHubWorkspaces([
|
|
46
|
-
...current.filter((entry) => entry.path !== root),
|
|
99
|
+
...current.filter((entry) => resolvedPath(entry.path) !== root),
|
|
47
100
|
{
|
|
48
101
|
path: root,
|
|
49
102
|
label: workspaceLabel(root),
|
|
50
103
|
lastSeenAt: now(),
|
|
51
104
|
},
|
|
52
105
|
]);
|
|
53
|
-
await saveRegistry(next, env);
|
|
106
|
+
await saveRegistry(next, env, root);
|
|
54
107
|
return next;
|
|
55
108
|
}
|
|
56
109
|
/** Drop a checkout from the Console. Does not delete the tree or its jobs. */
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAe,MAAM,YAAY,CAAC;AAGnE,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AACvD,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,4DAA4D,CAAC,IAAI,CACtE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,MAAc;IAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;IACtD,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAChC,UAAqC;IAErC,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CACvC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAC/C,CAAC;IACF,OAAO,eAAe,CAAC,MAAM,CAC3B,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC9B,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAC1C,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|