@yugoo-design/dsh-design-studio 0.2.11 → 0.3.1
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 +14 -0
- package/lib/index.d.ts +3 -2
- package/lib/index.js +3 -19
- package/lib/{instance-changes-CFLBPBdi.d.ts → instance-changes-BIFP123O.d.ts} +2 -71
- package/lib/{instance-changes-RvOGeBaE.js → instance-changes-CAX1OjCg.js} +11 -34
- package/lib/node.d.ts +4 -2
- package/lib/node.js +18 -13
- package/lib/types-B2R_HUZy.d.ts +76 -0
- package/lib/types.d.ts +2 -0
- package/lib/types.js +22 -0
- package/licenses/dsh-distribution.json +101 -83
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -60,6 +60,20 @@ Mount cards read titles and descriptions from the selected saved sources, includ
|
|
|
60
60
|
imported trees without a separate library entry. Display metadata does not create
|
|
61
61
|
library records or change mount bindings.
|
|
62
62
|
|
|
63
|
+
Catalog discovery and import name collision checks use the owning catalog's
|
|
64
|
+
already loaded Bundle metadata. The trusted `listBundles` port supplies exact
|
|
65
|
+
pins, titles, runtime names and optional picker descriptions; it does not capture
|
|
66
|
+
or compile source trees. Selecting a Bundle captures and validates that source,
|
|
67
|
+
so an unrelated unavailable source cannot block an import.
|
|
68
|
+
|
|
69
|
+
Complete source capture and retention support up to 32 MiB per tree, matching
|
|
70
|
+
Core's Bundle resource budget. A portable archive supports 32 MiB of total source
|
|
71
|
+
bytes; its JSON allows 64 MiB for base64 and the envelope. Existing file, path,
|
|
72
|
+
composition and revision limits still apply.
|
|
73
|
+
Opaque resources retain their byte lengths during compilation, without text
|
|
74
|
+
conversion. The 1 MiB text editing limit is separate. Browser transports read
|
|
75
|
+
these limits from the pure `dsh-design-studio/types` entry.
|
|
76
|
+
|
|
63
77
|
`exportArchive({id, expectedRevision})` exports the current complete saved source
|
|
64
78
|
and mounted Bundle resources through the existing source-archive format. It supports
|
|
65
79
|
unfinished definitions, checks the source revision, and does not replace edits with
|
package/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a as StudioBinaryContentError, c as StudioValidationReport, i as STUDIO_SOURCE_MAX_BYTES, n as DesignKitVersionPin, o as StudioDiagnostic, r as STUDIO_ARCHIVE_MAX_JSON_BYTES, s as StudioReadFs, t as DesignBundleVersionPin } from "./types-B2R_HUZy.js";
|
|
2
|
+
import { C as StudioPanelPreviewRequest, E as loadStudioKit, S as StudioPanelPreview, T as prepareStudioPanelPreview, _ as StudioArchiveSource, a as StudioInstanceFileChange, b as exportStudioSourceArchive, c as normalizeStudioInstanceChanges, d as StudioPanelDraftRecord, f as StudioPanelDraftRepository, g as StudioArchivePin, h as StudioArchiveFile, i as StudioInstanceChangeRequest, l as StudioDraftSources, m as StudioSourceSnapshot, n as StudioInstanceCandidate, o as StudioInstanceFileDiff, p as StudioPanelDraftSummary, r as StudioInstanceChangeReceipt, s as StudioInstanceSaveChanges, t as STUDIO_INSTANCE_CHANGE_LIMITS, u as StudioPanelDraftContent, v as StudioContentArchive, w as StudioPanelPreviewResult, x as readStudioContentArchive, y as exportStudioContentArchive } from "./instance-changes-BIFP123O.js";
|
|
2
3
|
import { DesignKit, DesignSkill } from "@yugoo-design/dsh-design-core";
|
|
3
4
|
//#region src/snapshot.d.ts
|
|
4
5
|
/** One Bundle addressed by its declared version. */
|
|
@@ -391,4 +392,4 @@ declare class StudioBundleSourceService {
|
|
|
391
392
|
}): Promise<StudioBundleFileResult>;
|
|
392
393
|
}
|
|
393
394
|
//#endregion
|
|
394
|
-
export { type DesignBundleSnapshot, type DesignBundleVersionPin, type DesignCatalogSnapshot, type DesignKitSnapshot, type DesignKitVersionPin, STUDIO_INSTANCE_CHANGE_LIMITS, type StudioArchiveFile, type StudioArchivePin, type StudioArchiveSource, StudioBinaryContentError, type StudioBundleFileRefView, type StudioBundleFileResult, type StudioBundleFileView, type StudioBundleMountView, type StudioBundlePanelView, type StudioBundleSourcePort, StudioBundleSourceService, type StudioBundleValidationSummary, type StudioBundleVersionEntry, type StudioBundleView, type StudioBundleWorkspaceResult, type StudioBundleWorkspaceView, type StudioCatalogSnapshotPort, type StudioCompositionCatalog, type StudioContentArchive, type StudioDiagnostic, type StudioDraftSources, type StudioInstanceCandidate, type StudioInstanceChangeReceipt, type StudioInstanceChangeRequest, type StudioInstanceFileChange, type StudioInstanceFileDiff, type StudioInstanceSaveChanges, type StudioKitView, type StudioKitWorkspaceResult, type StudioKitWorkspaceView, type StudioManagementFailure, StudioManagementService, type StudioPanelDraftContent, type StudioPanelDraftRecord, type StudioPanelDraftRepository, type StudioPanelDraftSummary, type StudioPanelPreview, type StudioPanelPreviewRequest, type StudioPanelPreviewResult, type StudioReadFs, type StudioRelationView, type StudioRelationVocabularyView, type StudioResourceRefView, type StudioSourceSnapshot, type StudioValidationReport, type StudioWorkspaceView, buildStudioCompositionCatalog, exportStudioContentArchive, exportStudioSourceArchive, loadStudioKit, normalizeStudioInstanceChanges, prepareStudioPanelPreview, readStudioContentArchive, searchStudioBundles, snapshotKit, validateBundle, validateKit };
|
|
395
|
+
export { type DesignBundleSnapshot, type DesignBundleVersionPin, type DesignCatalogSnapshot, type DesignKitSnapshot, type DesignKitVersionPin, STUDIO_ARCHIVE_MAX_JSON_BYTES, STUDIO_INSTANCE_CHANGE_LIMITS, STUDIO_SOURCE_MAX_BYTES, type StudioArchiveFile, type StudioArchivePin, type StudioArchiveSource, StudioBinaryContentError, type StudioBundleFileRefView, type StudioBundleFileResult, type StudioBundleFileView, type StudioBundleMountView, type StudioBundlePanelView, type StudioBundleSourcePort, StudioBundleSourceService, type StudioBundleValidationSummary, type StudioBundleVersionEntry, type StudioBundleView, type StudioBundleWorkspaceResult, type StudioBundleWorkspaceView, type StudioCatalogSnapshotPort, type StudioCompositionCatalog, type StudioContentArchive, type StudioDiagnostic, type StudioDraftSources, type StudioInstanceCandidate, type StudioInstanceChangeReceipt, type StudioInstanceChangeRequest, type StudioInstanceFileChange, type StudioInstanceFileDiff, type StudioInstanceSaveChanges, type StudioKitView, type StudioKitWorkspaceResult, type StudioKitWorkspaceView, type StudioManagementFailure, StudioManagementService, type StudioPanelDraftContent, type StudioPanelDraftRecord, type StudioPanelDraftRepository, type StudioPanelDraftSummary, type StudioPanelPreview, type StudioPanelPreviewRequest, type StudioPanelPreviewResult, type StudioReadFs, type StudioRelationView, type StudioRelationVocabularyView, type StudioResourceRefView, type StudioSourceSnapshot, type StudioValidationReport, type StudioWorkspaceView, buildStudioCompositionCatalog, exportStudioContentArchive, exportStudioSourceArchive, loadStudioKit, normalizeStudioInstanceChanges, prepareStudioPanelPreview, readStudioContentArchive, searchStudioBundles, snapshotKit, validateBundle, validateKit };
|
package/lib/index.js
CHANGED
|
@@ -1,23 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { STUDIO_ARCHIVE_MAX_JSON_BYTES, STUDIO_SOURCE_MAX_BYTES, StudioBinaryContentError } from "./types.js";
|
|
2
|
+
import { c as prepareStudioPanelPreview, i as exportStudioSourceArchive, l as loadStudioKit, n as normalizeStudioInstanceChanges, o as readStudioContentArchive, r as exportStudioContentArchive, t as STUDIO_INSTANCE_CHANGE_LIMITS } from "./instance-changes-CAX1OjCg.js";
|
|
2
3
|
import { basename, join, resolve } from "node:path";
|
|
3
4
|
import { diagnoseKnowledgeDeclarations } from "@yugoo-design/dsh-design-core";
|
|
4
|
-
//#region src/types.ts
|
|
5
|
-
/**
|
|
6
|
-
* Thrown by a Bundle source port when a file exists but is not decodable
|
|
7
|
-
* UTF-8 text. The Studio surfaces binary content as an explicit diagnostic
|
|
8
|
-
* instead of lossy-decoding it into a text viewer.
|
|
9
|
-
*/
|
|
10
|
-
var StudioBinaryContentError = class extends Error {
|
|
11
|
-
/** The path whose content is not UTF-8 text. */
|
|
12
|
-
path;
|
|
13
|
-
/** @param path - absolute path of the non-text file. */
|
|
14
|
-
constructor(path) {
|
|
15
|
-
super(`design studio: ${JSON.stringify(path)} is not UTF-8 text`);
|
|
16
|
-
this.name = "StudioBinaryContentError";
|
|
17
|
-
this.path = path;
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
//#endregion
|
|
21
5
|
//#region src/snapshot.ts
|
|
22
6
|
/**
|
|
23
7
|
* Project one Core-compiled Kit into its version-addressed snapshot form.
|
|
@@ -547,4 +531,4 @@ var StudioBundleSourceService = class {
|
|
|
547
531
|
}
|
|
548
532
|
};
|
|
549
533
|
//#endregion
|
|
550
|
-
export { STUDIO_INSTANCE_CHANGE_LIMITS, StudioBinaryContentError, StudioBundleSourceService, StudioManagementService, buildStudioCompositionCatalog, exportStudioContentArchive, exportStudioSourceArchive, loadStudioKit, normalizeStudioInstanceChanges, prepareStudioPanelPreview, readStudioContentArchive, searchStudioBundles, snapshotKit, validateBundle, validateKit };
|
|
534
|
+
export { STUDIO_ARCHIVE_MAX_JSON_BYTES, STUDIO_INSTANCE_CHANGE_LIMITS, STUDIO_SOURCE_MAX_BYTES, StudioBinaryContentError, StudioBundleSourceService, StudioManagementService, buildStudioCompositionCatalog, exportStudioContentArchive, exportStudioSourceArchive, loadStudioKit, normalizeStudioInstanceChanges, prepareStudioPanelPreview, readStudioContentArchive, searchStudioBundles, snapshotKit, validateBundle, validateKit };
|
|
@@ -1,74 +1,5 @@
|
|
|
1
|
+
import { n as DesignKitVersionPin, o as StudioDiagnostic, s as StudioReadFs, t as DesignBundleVersionPin } from "./types-B2R_HUZy.js";
|
|
1
2
|
import { DesignKit, DesignSkill, KitResourceContent } from "@yugoo-design/dsh-design-core";
|
|
2
|
-
//#region src/types.d.ts
|
|
3
|
-
/**
|
|
4
|
-
* Host-neutral Design Studio ports and read-model vocabulary.
|
|
5
|
-
*
|
|
6
|
-
* The Studio is a pure domain library: every filesystem operation goes through
|
|
7
|
-
* an injected port so each Agent Host adapter (DSH, Codex, Claude Code, SDK
|
|
8
|
-
* Pilot) supplies its own native file operations. Nothing here imports an
|
|
9
|
-
* Agent Host runtime, Cordis, or `node:fs`. Installed content remains read-only;
|
|
10
|
-
* editable drafts use separate injected snapshot and persistence ports.
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* Read-only filesystem surface the Studio needs to enumerate and validate
|
|
14
|
-
* Kits. Structurally compatible with the Design Core `KitFsLike` loader port.
|
|
15
|
-
*/
|
|
16
|
-
interface StudioReadFs {
|
|
17
|
-
/** Read one UTF-8 text file; `undefined` when absent. */
|
|
18
|
-
readText(path: string): Promise<string | undefined>;
|
|
19
|
-
/** Optional attached-resource text/opaque projection; never used for definition slots. */
|
|
20
|
-
readResource?(path: string): Promise<KitResourceContent | undefined>;
|
|
21
|
-
/** List one directory's entry names. */
|
|
22
|
-
listDir(path: string): Promise<string[]>;
|
|
23
|
-
/** Whether a path is a directory; adapters without it fall back to read probes. */
|
|
24
|
-
isDirectory?(path: string): Promise<boolean>;
|
|
25
|
-
/** Resolve symlinks for confinement checks. */
|
|
26
|
-
realPath?(path: string): Promise<string>;
|
|
27
|
-
}
|
|
28
|
-
/** One explicit Studio diagnostic (a stable code plus a locatable message). */
|
|
29
|
-
interface StudioDiagnostic {
|
|
30
|
-
/** Stable diagnostic code, e.g. `kit.load`. */
|
|
31
|
-
readonly code: string;
|
|
32
|
-
/** Human-readable, locatable message. */
|
|
33
|
-
readonly message: string;
|
|
34
|
-
/** The Kit or Bundle the diagnostic is about, when known. */
|
|
35
|
-
readonly subject?: string;
|
|
36
|
-
/** Omitted means error, preserving existing error-only consumers. */
|
|
37
|
-
readonly severity?: 'warning';
|
|
38
|
-
}
|
|
39
|
-
/** The outcome of validating one Kit or Bundle definition. */
|
|
40
|
-
interface StudioValidationReport {
|
|
41
|
-
/** True when the definition loads without errors; warnings do not block use. */
|
|
42
|
-
readonly valid: boolean;
|
|
43
|
-
/** Definition errors or non-blocking authoring warnings. */
|
|
44
|
-
readonly diagnostics: readonly StudioDiagnostic[];
|
|
45
|
-
}
|
|
46
|
-
/** Exact identity of one published Kit version. */
|
|
47
|
-
interface DesignKitVersionPin {
|
|
48
|
-
/** Published Kit name. */
|
|
49
|
-
readonly name: string;
|
|
50
|
-
/** Exact declared Kit version (`major.minor`). */
|
|
51
|
-
readonly version: string;
|
|
52
|
-
}
|
|
53
|
-
/** Exact identity of one published Bundle version. */
|
|
54
|
-
interface DesignBundleVersionPin {
|
|
55
|
-
/** Published Bundle name. */
|
|
56
|
-
readonly name: string;
|
|
57
|
-
/** Explicit declared Bundle version (`major.minor`). */
|
|
58
|
-
readonly version: string;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Thrown by a Bundle source port when a file exists but is not decodable
|
|
62
|
-
* UTF-8 text. The Studio surfaces binary content as an explicit diagnostic
|
|
63
|
-
* instead of lossy-decoding it into a text viewer.
|
|
64
|
-
*/
|
|
65
|
-
declare class StudioBinaryContentError extends Error {
|
|
66
|
-
/** The path whose content is not UTF-8 text. */
|
|
67
|
-
readonly path: string;
|
|
68
|
-
/** @param path - absolute path of the non-text file. */
|
|
69
|
-
constructor(path: string);
|
|
70
|
-
}
|
|
71
|
-
//#endregion
|
|
72
3
|
//#region src/load.d.ts
|
|
73
4
|
/**
|
|
74
5
|
* Load a Kit with authority derived from the Studio-controlled directory.
|
|
@@ -277,4 +208,4 @@ interface StudioInstanceChangeReceipt {
|
|
|
277
208
|
/** Copy before any asynchronous host work so callers cannot mutate an in-flight edit. */
|
|
278
209
|
declare function normalizeStudioInstanceChanges(value: StudioInstanceChangeRequest): StudioInstanceChangeRequest;
|
|
279
210
|
//#endregion
|
|
280
|
-
export {
|
|
211
|
+
export { StudioPanelPreviewRequest as C, loadStudioKit as E, StudioPanelPreview as S, prepareStudioPanelPreview as T, StudioArchiveSource as _, StudioInstanceFileChange as a, exportStudioSourceArchive as b, normalizeStudioInstanceChanges as c, StudioPanelDraftRecord as d, StudioPanelDraftRepository as f, StudioArchivePin as g, StudioArchiveFile as h, StudioInstanceChangeRequest as i, StudioDraftSources as l, StudioSourceSnapshot as m, StudioInstanceCandidate as n, StudioInstanceFileDiff as o, StudioPanelDraftSummary as p, StudioInstanceChangeReceipt as r, StudioInstanceSaveChanges as s, STUDIO_INSTANCE_CHANGE_LIMITS as t, StudioPanelDraftContent as u, StudioContentArchive as v, StudioPanelPreviewResult as w, readStudioContentArchive as x, exportStudioContentArchive as y };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { STUDIO_ARCHIVE_MAX_JSON_BYTES, STUDIO_SOURCE_MAX_BYTES } from "./types.js";
|
|
2
|
+
import { isAbsolute, relative, resolve, sep } from "node:path";
|
|
3
|
+
import { DesignBundleVersion, DesignKitVersion, compileSchema, loadDesignBundle, loadDesignKit, projectKitResource } from "@yugoo-design/dsh-design-core";
|
|
3
4
|
import { createHash } from "node:crypto";
|
|
4
5
|
//#region src/load.ts
|
|
5
6
|
/** Studio-owned loading of a Kit from its directory source. */
|
|
@@ -146,38 +147,14 @@ async function prepareStudioPanelPreview(source, kitRoot, request, loadOptions =
|
|
|
146
147
|
//#endregion
|
|
147
148
|
//#region src/content-archive.ts
|
|
148
149
|
/** Portable regular-file content, not a plugin installer or publication format. */
|
|
149
|
-
const MAX_BYTES =
|
|
150
|
-
const MAX_JSON =
|
|
150
|
+
const MAX_BYTES = STUDIO_SOURCE_MAX_BYTES;
|
|
151
|
+
const MAX_JSON = STUDIO_ARCHIVE_MAX_JSON_BYTES;
|
|
151
152
|
const MAX_FILES = 4096;
|
|
152
153
|
const HASH = /^[0-9a-f]{64}$/;
|
|
153
154
|
const sha = (value) => createHash("sha256").update(value).digest("hex");
|
|
154
|
-
|
|
155
|
-
".bin",
|
|
156
|
-
".png",
|
|
157
|
-
".jpg",
|
|
158
|
-
".jpeg",
|
|
159
|
-
".gif",
|
|
160
|
-
".webp",
|
|
161
|
-
".avif",
|
|
162
|
-
".ico",
|
|
163
|
-
".bmp",
|
|
164
|
-
".pdf",
|
|
165
|
-
".woff",
|
|
166
|
-
".woff2",
|
|
167
|
-
".ttf",
|
|
168
|
-
".otf",
|
|
169
|
-
".eot",
|
|
170
|
-
".wasm"
|
|
171
|
-
]);
|
|
172
|
-
/** Shared by archive capture and virtual import; full bytes and directory entries remain intact. */
|
|
155
|
+
/** Core owns the shared text/opaque projection; retained bytes stay exact. */
|
|
173
156
|
function readStudioArchiveResource(path, bytes) {
|
|
174
|
-
return
|
|
175
|
-
kind: "opaque",
|
|
176
|
-
byteLength: bytes.byteLength
|
|
177
|
-
} : {
|
|
178
|
-
kind: "text",
|
|
179
|
-
content: new TextDecoder("utf-8", { fatal: true }).decode(bytes)
|
|
180
|
-
};
|
|
157
|
+
return projectKitResource(path, bytes);
|
|
181
158
|
}
|
|
182
159
|
function object(value) {
|
|
183
160
|
if (!value || typeof value !== "object" || Array.isArray(value)) throw Error("Invalid archive object.");
|
|
@@ -220,7 +197,7 @@ function canonical(data) {
|
|
|
220
197
|
}
|
|
221
198
|
/** Parse a bounded JSON envelope; hashes include metadata and every original byte. */
|
|
222
199
|
function readStudioContentArchive(source) {
|
|
223
|
-
if (typeof source !== "string" || Buffer.byteLength(source) > MAX_JSON) throw Error("Archive JSON exceeds
|
|
200
|
+
if (typeof source !== "string" || Buffer.byteLength(source) > MAX_JSON) throw Error("Archive JSON exceeds 64 MiB.");
|
|
224
201
|
const raw = object(JSON.parse(source));
|
|
225
202
|
keys(raw, [
|
|
226
203
|
"format",
|
|
@@ -288,12 +265,12 @@ function readStudioContentArchive(source) {
|
|
|
288
265
|
directories.add(parts.join("/"));
|
|
289
266
|
parts.pop();
|
|
290
267
|
}
|
|
291
|
-
if (!Number.isSafeInteger(entry.bytes) || entry.bytes < 0 || entry.bytes > MAX_BYTES - total) throw Error("Archive content exceeds
|
|
268
|
+
if (!Number.isSafeInteger(entry.bytes) || entry.bytes < 0 || entry.bytes > MAX_BYTES - total) throw Error("Archive content exceeds 32 MiB or has an invalid byte count.");
|
|
292
269
|
if (typeof entry.base64 !== "string" || entry.base64.length > Math.ceil(MAX_BYTES / 3) * 4 || entry.base64.length % 4 || !/^[A-Za-z0-9+/]*={0,2}$/u.test(entry.base64)) throw Error("Invalid archive base64.");
|
|
293
270
|
const bytes = Buffer.from(entry.base64, "base64");
|
|
294
271
|
if (bytes.toString("base64") !== entry.base64 || entry.bytes !== bytes.length || typeof entry.sha256 !== "string" || !HASH.test(entry.sha256) || sha(bytes) !== entry.sha256) throw Error("Archive file integrity mismatch.");
|
|
295
272
|
total += bytes.length;
|
|
296
|
-
if (total > MAX_BYTES) throw Error("Archive content exceeds
|
|
273
|
+
if (total > MAX_BYTES) throw Error("Archive content exceeds 32 MiB.");
|
|
297
274
|
return Object.freeze({
|
|
298
275
|
path,
|
|
299
276
|
base64: entry.base64,
|
|
@@ -584,7 +561,7 @@ async function exportArchive(snapshot, input, validateDefinition) {
|
|
|
584
561
|
safePath(target);
|
|
585
562
|
const bytes = await source.readBytes(resolve(source.root, path));
|
|
586
563
|
total += bytes.byteLength;
|
|
587
|
-
if (total > MAX_BYTES || files.length >= MAX_FILES) throw Error("Archive content exceeds
|
|
564
|
+
if (total > MAX_BYTES || files.length >= MAX_FILES) throw Error("Archive content exceeds 32 MiB or 4096 files.");
|
|
588
565
|
files.push({
|
|
589
566
|
path: target,
|
|
590
567
|
base64: Buffer.from(bytes).toString("base64"),
|
package/lib/node.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { n as DesignKitVersionPin, t as DesignBundleVersionPin } from "./types-B2R_HUZy.js";
|
|
2
|
+
import { a as StudioInstanceFileChange, f as StudioPanelDraftRepository, i as StudioInstanceChangeRequest, l as StudioDraftSources, m as StudioSourceSnapshot, n as StudioInstanceCandidate, r as StudioInstanceChangeReceipt, s as StudioInstanceSaveChanges, v as StudioContentArchive, w as StudioPanelPreviewResult } from "./instance-changes-BIFP123O.js";
|
|
2
3
|
//#region src/node/types.d.ts
|
|
3
4
|
type StudioAwaitable<T> = T | Promise<T>;
|
|
4
5
|
interface StudioSourceEntry {
|
|
@@ -217,7 +218,8 @@ interface StudioInstanceComposition {
|
|
|
217
218
|
preview?(input: StudioInstancePreviewInput): Promise<StudioPanelPreviewResult>;
|
|
218
219
|
}
|
|
219
220
|
interface StudioInstanceTrustedCaptures {
|
|
220
|
-
|
|
221
|
+
/** Already loaded catalog metadata; discovery must not capture complete sources. */
|
|
222
|
+
listBundles(): StudioAwaitable<readonly StudioInstanceBundleChoice[]>;
|
|
221
223
|
captureBundle(pin: DesignBundleVersionPin): StudioAwaitable<StudioBundleCapture>;
|
|
222
224
|
captureKit(pin: DesignKitVersionPin): StudioAwaitable<{
|
|
223
225
|
readonly files: readonly StudioSourceEntry[];
|
package/lib/node.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { STUDIO_SOURCE_MAX_BYTES } from "./types.js";
|
|
2
|
+
import { a as readStudioArchiveResource, i as exportStudioSourceArchive, n as normalizeStudioInstanceChanges, s as finalizeStudioPanelPreview, t as STUDIO_INSTANCE_CHANGE_LIMITS } from "./instance-changes-CAX1OjCg.js";
|
|
2
3
|
import { isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
3
4
|
import { loadDesignBundle, loadDesignKit, parseFrontmatter, parseKitMounts, parseMindsetSkillNames } from "@yugoo-design/dsh-design-core";
|
|
4
5
|
import { createHash, randomUUID } from "node:crypto";
|
|
@@ -8,7 +9,7 @@ import { isMap, isScalar, isSeq, parse, parseDocument, stringify } from "yaml";
|
|
|
8
9
|
/** Atomic local source storage and retained trial captures. No project writes. */
|
|
9
10
|
const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;
|
|
10
11
|
const HASH = /^[0-9a-f]{64}$/;
|
|
11
|
-
const MAX_SOURCE_BYTES =
|
|
12
|
+
const MAX_SOURCE_BYTES = STUDIO_SOURCE_MAX_BYTES;
|
|
12
13
|
const MAX_DOCUMENT_BYTES = 2097152;
|
|
13
14
|
const inside = (root, path) => {
|
|
14
15
|
const rel = relative(root, path);
|
|
@@ -249,7 +250,7 @@ async function createStudioDraftPorts({ stateRoot, kitRoot, readInstalledKit, re
|
|
|
249
250
|
].includes(part)) || seen.has(path) || typeof base64 !== "string" || Buffer.from(base64, "base64").toString("base64") !== base64) throw new Error("Invalid source tree entry.");
|
|
250
251
|
seen.add(path);
|
|
251
252
|
bytes += Buffer.byteLength(base64, "base64");
|
|
252
|
-
if (bytes > MAX_SOURCE_BYTES) throw new Error("Source tree exceeds
|
|
253
|
+
if (bytes > MAX_SOURCE_BYTES) throw new Error("Source tree exceeds 32 MiB.");
|
|
253
254
|
return [path, base64];
|
|
254
255
|
}).sort((a, b) => a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0);
|
|
255
256
|
};
|
|
@@ -285,10 +286,10 @@ async function createStudioDraftPorts({ stateRoot, kitRoot, readInstalledKit, re
|
|
|
285
286
|
if (info.isSymbolicLink()) throw new Error("Studio cannot snapshot source symlinks.");
|
|
286
287
|
if (info.isDirectory()) await walk(file, base, prefix);
|
|
287
288
|
else if (info.isFile()) {
|
|
288
|
-
if (total + info.size > MAX_SOURCE_BYTES || entries.length >= 4096) throw new Error("Kit preview snapshot exceeds
|
|
289
|
+
if (total + info.size > MAX_SOURCE_BYTES || entries.length >= 4096) throw new Error("Kit preview snapshot exceeds 32 MiB or 4096 files.");
|
|
289
290
|
const bytes = await readFile(file);
|
|
290
291
|
total += bytes.length;
|
|
291
|
-
if (total > MAX_SOURCE_BYTES) throw new Error("Kit preview snapshot exceeds
|
|
292
|
+
if (total > MAX_SOURCE_BYTES) throw new Error("Kit preview snapshot exceeds 32 MiB.");
|
|
292
293
|
entries.push([prefix + relative(base, file).split(sep).join("/"), bytes.toString("base64")]);
|
|
293
294
|
} else throw new Error("Studio sources must be regular files or directories.");
|
|
294
295
|
}
|
|
@@ -886,7 +887,7 @@ async function createStudioInstances(options) {
|
|
|
886
887
|
path,
|
|
887
888
|
base64
|
|
888
889
|
}));
|
|
889
|
-
if (files.length > 4096 || files.reduce((bytes, file) => bytes + Buffer.byteLength(file.base64, "base64"), 0) >
|
|
890
|
+
if (files.length > 4096 || files.reduce((bytes, file) => bytes + Buffer.byteLength(file.base64, "base64"), 0) > 33554432) throw new Error("Instance source tree exceeds 4096 files or 32 MiB.");
|
|
890
891
|
const paths = new Set(entries.keys());
|
|
891
892
|
for (const path of paths) {
|
|
892
893
|
const parts = path.split("/");
|
|
@@ -1646,7 +1647,7 @@ async function createStudioInstances(options) {
|
|
|
1646
1647
|
//#endregion
|
|
1647
1648
|
//#region src/node/studio-instance-composition.mjs
|
|
1648
1649
|
/** Core-backed Studio adapters over trusted captures; no filesystem, installation or execution port. */
|
|
1649
|
-
const MAX_TREE_BYTES =
|
|
1650
|
+
const MAX_TREE_BYTES = STUDIO_SOURCE_MAX_BYTES;
|
|
1650
1651
|
const MAX_TREE_FILES = 4096;
|
|
1651
1652
|
const MAX_CLOSURE_BYTES = 67108864;
|
|
1652
1653
|
const MAX_CLOSURE_FILES = 16384;
|
|
@@ -1690,7 +1691,7 @@ function memorySource(entries, budget = {
|
|
|
1690
1691
|
const bytes = Buffer.from(base64, "base64");
|
|
1691
1692
|
if (bytes.toString("base64") !== base64) throw new Error("Studio source base64 is not canonical.");
|
|
1692
1693
|
total += bytes.length;
|
|
1693
|
-
if (total > MAX_TREE_BYTES) throw new Error("Studio source exceeds
|
|
1694
|
+
if (total > MAX_TREE_BYTES) throw new Error("Studio source exceeds 32 MiB.");
|
|
1694
1695
|
files.set(path, bytes);
|
|
1695
1696
|
const parts = path.split("/");
|
|
1696
1697
|
for (let count = 1; count < parts.length; count++) directories.add(parts.slice(0, count).join("/"));
|
|
@@ -1715,6 +1716,10 @@ function memorySource(entries, budget = {
|
|
|
1715
1716
|
const bytes = files.get(keyOf(path));
|
|
1716
1717
|
return bytes === void 0 ? void 0 : Buffer.from(bytes);
|
|
1717
1718
|
},
|
|
1719
|
+
async readResource(path) {
|
|
1720
|
+
const bytes = files.get(keyOf(path));
|
|
1721
|
+
return bytes === void 0 ? void 0 : readStudioArchiveResource(path, bytes);
|
|
1722
|
+
},
|
|
1718
1723
|
async listDir(path) {
|
|
1719
1724
|
const key = keyOf(path), prefix = key ? `${key}/` : "";
|
|
1720
1725
|
return [...new Set([...files.keys()].filter((name) => name.startsWith(prefix)).map((name) => name.slice(prefix.length).split("/")[0]))].sort();
|
|
@@ -1961,13 +1966,13 @@ function createStudioInstanceAdapters(trusted) {
|
|
|
1961
1966
|
const pin = pinOf(value), key = `${pin.name}@${pin.version}`;
|
|
1962
1967
|
if (seen.has(key)) throw new Error(`Ambiguous exact Bundle ${key}.`);
|
|
1963
1968
|
seen.add(key);
|
|
1964
|
-
|
|
1969
|
+
if (!value.title || typeof value.title.zh !== "string" || typeof value.title.en !== "string" || typeof value.runtimeName !== "string" || !/^[a-zA-Z0-9][a-zA-Z0-9_.-]*$/.test(value.runtimeName) || value.description !== void 0 && typeof value.description !== "string" || value.displayDescription !== void 0 && (!value.displayDescription || typeof value.displayDescription.zh !== "string" || typeof value.displayDescription.en !== "string")) throw new Error("Trusted Bundle catalog metadata is missing or invalid.");
|
|
1965
1970
|
result.push({
|
|
1966
1971
|
...pin,
|
|
1967
|
-
title:
|
|
1968
|
-
runtimeName:
|
|
1969
|
-
...
|
|
1970
|
-
...
|
|
1972
|
+
title: { ...value.title },
|
|
1973
|
+
runtimeName: value.runtimeName,
|
|
1974
|
+
...value.description === void 0 ? {} : { description: value.description },
|
|
1975
|
+
...value.displayDescription === void 0 ? {} : { displayDescription: { ...value.displayDescription } }
|
|
1971
1976
|
});
|
|
1972
1977
|
}
|
|
1973
1978
|
return result;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { KitResourceContent } from "@yugoo-design/dsh-design-core";
|
|
2
|
+
//#region src/types.d.ts
|
|
3
|
+
/** Complete source bytes, matching Core's Bundle resource budget. */
|
|
4
|
+
declare const STUDIO_SOURCE_MAX_BYTES: number;
|
|
5
|
+
/** Base64 plus the bounded source/archive envelope. Safe for browser transports. */
|
|
6
|
+
declare const STUDIO_ARCHIVE_MAX_JSON_BYTES: number;
|
|
7
|
+
/**
|
|
8
|
+
* Host-neutral Design Studio ports and read-model vocabulary.
|
|
9
|
+
*
|
|
10
|
+
* The Studio is a pure domain library: every filesystem operation goes through
|
|
11
|
+
* an injected port so each Agent Host adapter (DSH, Codex, Claude Code, SDK
|
|
12
|
+
* Pilot) supplies its own native file operations. Nothing here imports an
|
|
13
|
+
* Agent Host runtime, Cordis, or `node:fs`. Installed content remains read-only;
|
|
14
|
+
* editable drafts use separate injected snapshot and persistence ports.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Read-only filesystem surface the Studio needs to enumerate and validate
|
|
18
|
+
* Kits. Structurally compatible with the Design Core `KitFsLike` loader port.
|
|
19
|
+
*/
|
|
20
|
+
interface StudioReadFs {
|
|
21
|
+
/** Read one UTF-8 text file; `undefined` when absent. */
|
|
22
|
+
readText(path: string): Promise<string | undefined>;
|
|
23
|
+
/** Optional attached-resource text/opaque projection; never used for definition slots. */
|
|
24
|
+
readResource?(path: string): Promise<KitResourceContent | undefined>;
|
|
25
|
+
/** List one directory's entry names. */
|
|
26
|
+
listDir(path: string): Promise<string[]>;
|
|
27
|
+
/** Whether a path is a directory; adapters without it fall back to read probes. */
|
|
28
|
+
isDirectory?(path: string): Promise<boolean>;
|
|
29
|
+
/** Resolve symlinks for confinement checks. */
|
|
30
|
+
realPath?(path: string): Promise<string>;
|
|
31
|
+
}
|
|
32
|
+
/** One explicit Studio diagnostic (a stable code plus a locatable message). */
|
|
33
|
+
interface StudioDiagnostic {
|
|
34
|
+
/** Stable diagnostic code, e.g. `kit.load`. */
|
|
35
|
+
readonly code: string;
|
|
36
|
+
/** Human-readable, locatable message. */
|
|
37
|
+
readonly message: string;
|
|
38
|
+
/** The Kit or Bundle the diagnostic is about, when known. */
|
|
39
|
+
readonly subject?: string;
|
|
40
|
+
/** Omitted means error, preserving existing error-only consumers. */
|
|
41
|
+
readonly severity?: 'warning';
|
|
42
|
+
}
|
|
43
|
+
/** The outcome of validating one Kit or Bundle definition. */
|
|
44
|
+
interface StudioValidationReport {
|
|
45
|
+
/** True when the definition loads without errors; warnings do not block use. */
|
|
46
|
+
readonly valid: boolean;
|
|
47
|
+
/** Definition errors or non-blocking authoring warnings. */
|
|
48
|
+
readonly diagnostics: readonly StudioDiagnostic[];
|
|
49
|
+
}
|
|
50
|
+
/** Exact identity of one published Kit version. */
|
|
51
|
+
interface DesignKitVersionPin {
|
|
52
|
+
/** Published Kit name. */
|
|
53
|
+
readonly name: string;
|
|
54
|
+
/** Exact declared Kit version (`major.minor`). */
|
|
55
|
+
readonly version: string;
|
|
56
|
+
}
|
|
57
|
+
/** Exact identity of one published Bundle version. */
|
|
58
|
+
interface DesignBundleVersionPin {
|
|
59
|
+
/** Published Bundle name. */
|
|
60
|
+
readonly name: string;
|
|
61
|
+
/** Explicit declared Bundle version (`major.minor`). */
|
|
62
|
+
readonly version: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Thrown by a Bundle source port when a file exists but is not decodable
|
|
66
|
+
* UTF-8 text. The Studio surfaces binary content as an explicit diagnostic
|
|
67
|
+
* instead of lossy-decoding it into a text viewer.
|
|
68
|
+
*/
|
|
69
|
+
declare class StudioBinaryContentError extends Error {
|
|
70
|
+
/** The path whose content is not UTF-8 text. */
|
|
71
|
+
readonly path: string;
|
|
72
|
+
/** @param path - absolute path of the non-text file. */
|
|
73
|
+
constructor(path: string);
|
|
74
|
+
}
|
|
75
|
+
//#endregion
|
|
76
|
+
export { StudioBinaryContentError as a, StudioValidationReport as c, STUDIO_SOURCE_MAX_BYTES as i, DesignKitVersionPin as n, StudioDiagnostic as o, STUDIO_ARCHIVE_MAX_JSON_BYTES as r, StudioReadFs as s, DesignBundleVersionPin as t };
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as StudioBinaryContentError, c as StudioValidationReport, i as STUDIO_SOURCE_MAX_BYTES, n as DesignKitVersionPin, o as StudioDiagnostic, r as STUDIO_ARCHIVE_MAX_JSON_BYTES, s as StudioReadFs, t as DesignBundleVersionPin } from "./types-B2R_HUZy.js";
|
|
2
|
+
export { DesignBundleVersionPin, DesignKitVersionPin, STUDIO_ARCHIVE_MAX_JSON_BYTES, STUDIO_SOURCE_MAX_BYTES, StudioBinaryContentError, StudioDiagnostic, StudioReadFs, StudioValidationReport };
|
package/lib/types.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/types.ts
|
|
2
|
+
/** Complete source bytes, matching Core's Bundle resource budget. */
|
|
3
|
+
const STUDIO_SOURCE_MAX_BYTES = 33554432;
|
|
4
|
+
/** Base64 plus the bounded source/archive envelope. Safe for browser transports. */
|
|
5
|
+
const STUDIO_ARCHIVE_MAX_JSON_BYTES = STUDIO_SOURCE_MAX_BYTES * 2;
|
|
6
|
+
/**
|
|
7
|
+
* Thrown by a Bundle source port when a file exists but is not decodable
|
|
8
|
+
* UTF-8 text. The Studio surfaces binary content as an explicit diagnostic
|
|
9
|
+
* instead of lossy-decoding it into a text viewer.
|
|
10
|
+
*/
|
|
11
|
+
var StudioBinaryContentError = class extends Error {
|
|
12
|
+
/** The path whose content is not UTF-8 text. */
|
|
13
|
+
path;
|
|
14
|
+
/** @param path - absolute path of the non-text file. */
|
|
15
|
+
constructor(path) {
|
|
16
|
+
super(`design studio: ${JSON.stringify(path)} is not UTF-8 text`);
|
|
17
|
+
this.name = "StudioBinaryContentError";
|
|
18
|
+
this.path = path;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
//#endregion
|
|
22
|
+
export { STUDIO_ARCHIVE_MAX_JSON_BYTES, STUDIO_SOURCE_MAX_BYTES, StudioBinaryContentError };
|
|
@@ -4,24 +4,24 @@
|
|
|
4
4
|
"scope": "observed-current-dsh-output-and-selected-original-materials",
|
|
5
5
|
"sourceArchiveObserved": null,
|
|
6
6
|
"outputSha256": {
|
|
7
|
-
"lib/index.js": "
|
|
8
|
-
"lib/instance-changes-
|
|
9
|
-
"lib/node.js": "
|
|
7
|
+
"lib/index.js": "ff934dd0775d14cea0e0d4021321ca19dd20325392676f73fd92763873d4cb2d",
|
|
8
|
+
"lib/instance-changes-CAX1OjCg.js": "140c939b82437d2b040398da5f32f9b547f9c0746d2b1f8b425821b549a38405",
|
|
9
|
+
"lib/node.js": "7089870a471028e9355e785728d24d23afc7a889bd06eecf900963b14b250e32",
|
|
10
|
+
"lib/types.js": "ab22180af3ebfb0dbb1e827b82f95ccd1492ae45e9080c1b792dd82d032ce9f4"
|
|
10
11
|
},
|
|
11
12
|
"normalBuildMaps": [
|
|
12
13
|
{
|
|
13
14
|
"output": "lib/index.js",
|
|
14
15
|
"observation": "normal-build-done-module-membership",
|
|
15
16
|
"evidenceFile": "dsh-release-studio-0-output-modules.json",
|
|
16
|
-
"evidenceSha256": "
|
|
17
|
-
"normalOutputSha256": "
|
|
18
|
-
"packedOutputSha256": "
|
|
17
|
+
"evidenceSha256": "cb4a60e4d39bd84045224fab85e71ce1c42df90401898e276e4508488537c001",
|
|
18
|
+
"normalOutputSha256": "591a7858cf8933dd03c46e7dde2fddcc9ffb029acddd4d1b205756a76f595b43",
|
|
19
|
+
"packedOutputSha256": "ff934dd0775d14cea0e0d4021321ca19dd20325392676f73fd92763873d4cb2d",
|
|
19
20
|
"projectOwnedSources": [
|
|
20
21
|
"packages/studio/src/bundle-source.ts",
|
|
21
22
|
"packages/studio/src/composition.ts",
|
|
22
23
|
"packages/studio/src/management.ts",
|
|
23
24
|
"packages/studio/src/snapshot.ts",
|
|
24
|
-
"packages/studio/src/types.ts",
|
|
25
25
|
"packages/studio/src/validate.ts"
|
|
26
26
|
],
|
|
27
27
|
"projectOwnedSourceSha256": {
|
|
@@ -29,22 +29,21 @@
|
|
|
29
29
|
"packages/studio/src/composition.ts": "9bf73c460608b5f491a471348292f7917159595a3d9fbff96f5637efefe309ce",
|
|
30
30
|
"packages/studio/src/management.ts": "81ead1c264f09ec82a1fff34ecfb96270081040175981f5d17188871f4570ad1",
|
|
31
31
|
"packages/studio/src/snapshot.ts": "377f9234d7696a26809199b417462bdf9e16f8286a9cb524a2d422648c37bc9d",
|
|
32
|
-
"packages/studio/src/types.ts": "7941c92f98810858297bee10048c64eb259c4748ba302c88032f32bd9f3fbadd",
|
|
33
32
|
"packages/studio/src/validate.ts": "38005e8858a678c75cbb27fe53e7b2d8bd068acbf205196a4acf82a87d0faa0a"
|
|
34
33
|
},
|
|
35
|
-
"sourceCount":
|
|
34
|
+
"sourceCount": 5,
|
|
36
35
|
"sourceContentsVerified": false,
|
|
37
36
|
"moduleInputsReadAndHashed": true,
|
|
38
37
|
"actualArchiveOutputBindingVerified": false,
|
|
39
38
|
"limitations": "Bundler-reported membership and current input bytes; no complete retained-code, nested prebundle or license acceptance claim"
|
|
40
39
|
},
|
|
41
40
|
{
|
|
42
|
-
"output": "lib/instance-changes-
|
|
41
|
+
"output": "lib/instance-changes-CAX1OjCg.js",
|
|
43
42
|
"observation": "normal-build-done-module-membership",
|
|
44
43
|
"evidenceFile": "dsh-release-studio-0-output-modules.json",
|
|
45
|
-
"evidenceSha256": "
|
|
46
|
-
"normalOutputSha256": "
|
|
47
|
-
"packedOutputSha256": "
|
|
44
|
+
"evidenceSha256": "cb4a60e4d39bd84045224fab85e71ce1c42df90401898e276e4508488537c001",
|
|
45
|
+
"normalOutputSha256": "adfddefdfc955d55a0b9e2c1be05e5218b8ede4516f203437eedf51347d74c3a",
|
|
46
|
+
"packedOutputSha256": "140c939b82437d2b040398da5f32f9b547f9c0746d2b1f8b425821b549a38405",
|
|
48
47
|
"projectOwnedSources": [
|
|
49
48
|
"packages/studio/src/content-archive.ts",
|
|
50
49
|
"packages/studio/src/instance-changes.ts",
|
|
@@ -52,7 +51,7 @@
|
|
|
52
51
|
"packages/studio/src/panel-preview.ts"
|
|
53
52
|
],
|
|
54
53
|
"projectOwnedSourceSha256": {
|
|
55
|
-
"packages/studio/src/content-archive.ts": "
|
|
54
|
+
"packages/studio/src/content-archive.ts": "2b551470a52d8aa3f4dd0e2f9cc6124ac062d93b1be3f9937d780f9417be11ef",
|
|
56
55
|
"packages/studio/src/instance-changes.ts": "164b78c06d359d899b4edb3bd6fe96c1f41072ec4739331d3d57d4b8a45505a2",
|
|
57
56
|
"packages/studio/src/load.ts": "a2e334453a7efea7b7dd00e33dcd9b0d811fc100f919ee4f244662ce9ea835bf",
|
|
58
57
|
"packages/studio/src/panel-preview.ts": "da59fa5ae7d47249148b1295a3517f2288e7079441c3d277d2e18720128e6d1b"
|
|
@@ -67,9 +66,9 @@
|
|
|
67
66
|
"output": "lib/node.js",
|
|
68
67
|
"observation": "normal-build-done-module-membership",
|
|
69
68
|
"evidenceFile": "dsh-release-studio-0-output-modules.json",
|
|
70
|
-
"evidenceSha256": "
|
|
71
|
-
"normalOutputSha256": "
|
|
72
|
-
"packedOutputSha256": "
|
|
69
|
+
"evidenceSha256": "cb4a60e4d39bd84045224fab85e71ce1c42df90401898e276e4508488537c001",
|
|
70
|
+
"normalOutputSha256": "205e8ea2772ec3d0387fbcd79457eb64e98f391736efbb4cdb943cf8f33819c4",
|
|
71
|
+
"packedOutputSha256": "7089870a471028e9355e785728d24d23afc7a889bd06eecf900963b14b250e32",
|
|
73
72
|
"projectOwnedSources": [
|
|
74
73
|
"packages/studio/src/node/studio-authoring.mjs",
|
|
75
74
|
"packages/studio/src/node/studio-instance-composition.mjs",
|
|
@@ -78,15 +77,34 @@
|
|
|
78
77
|
],
|
|
79
78
|
"projectOwnedSourceSha256": {
|
|
80
79
|
"packages/studio/src/node/studio-authoring.mjs": "c5466098ac3013441ff8b13f84b400d8364b1bc8a68ea35f8de4da8634abd169",
|
|
81
|
-
"packages/studio/src/node/studio-instance-composition.mjs": "
|
|
82
|
-
"packages/studio/src/node/studio-instances.mjs": "
|
|
83
|
-
"packages/studio/src/node/studio-panel-drafts.mjs": "
|
|
80
|
+
"packages/studio/src/node/studio-instance-composition.mjs": "df1c85a15050dbf8e7b3e640d85f617bccdfe95ca89a87604b661bbdd42eb349",
|
|
81
|
+
"packages/studio/src/node/studio-instances.mjs": "df8796676b3d34f1299e2c0c10d5827838ec4ea61095cd9dcb5a8e518c8caa42",
|
|
82
|
+
"packages/studio/src/node/studio-panel-drafts.mjs": "4b95b77778e007683bc323f45b0bcbed3a6319e78a50c8e1c83a7903e1b7c3ee"
|
|
84
83
|
},
|
|
85
84
|
"sourceCount": 4,
|
|
86
85
|
"sourceContentsVerified": false,
|
|
87
86
|
"moduleInputsReadAndHashed": true,
|
|
88
87
|
"actualArchiveOutputBindingVerified": false,
|
|
89
88
|
"limitations": "Bundler-reported membership and current input bytes; no complete retained-code, nested prebundle or license acceptance claim"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"output": "lib/types.js",
|
|
92
|
+
"observation": "normal-build-done-module-membership",
|
|
93
|
+
"evidenceFile": "dsh-release-studio-0-output-modules.json",
|
|
94
|
+
"evidenceSha256": "cb4a60e4d39bd84045224fab85e71ce1c42df90401898e276e4508488537c001",
|
|
95
|
+
"normalOutputSha256": "ab22180af3ebfb0dbb1e827b82f95ccd1492ae45e9080c1b792dd82d032ce9f4",
|
|
96
|
+
"packedOutputSha256": "ab22180af3ebfb0dbb1e827b82f95ccd1492ae45e9080c1b792dd82d032ce9f4",
|
|
97
|
+
"projectOwnedSources": [
|
|
98
|
+
"packages/studio/src/types.ts"
|
|
99
|
+
],
|
|
100
|
+
"projectOwnedSourceSha256": {
|
|
101
|
+
"packages/studio/src/types.ts": "8299f7135d792820d0d7501acbe65efd7c48dc27dc6cdfe0d173631eff09e7de"
|
|
102
|
+
},
|
|
103
|
+
"sourceCount": 1,
|
|
104
|
+
"sourceContentsVerified": false,
|
|
105
|
+
"moduleInputsReadAndHashed": true,
|
|
106
|
+
"actualArchiveOutputBindingVerified": false,
|
|
107
|
+
"limitations": "Bundler-reported membership and current input bytes; no complete retained-code, nested prebundle or license acceptance claim"
|
|
90
108
|
}
|
|
91
109
|
],
|
|
92
110
|
"currentBuildAssociation": {
|
|
@@ -98,14 +116,14 @@
|
|
|
98
116
|
"sha256": "f877117fa40947596f6780e36a99036a16057ff20f6a91105fb00d254f866193",
|
|
99
117
|
"name": "dsh-design-studio",
|
|
100
118
|
"version": "0.0.0",
|
|
101
|
-
"packageMetadataSha256": "
|
|
119
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab",
|
|
102
120
|
"firstParty": true,
|
|
103
121
|
"currentSourceIdentity": {
|
|
104
122
|
"manifestPath": "packages/studio/package.json",
|
|
105
|
-
"sourceCommit": "
|
|
123
|
+
"sourceCommit": "78318de5e9be6ed9c4f2a5130e5c7c2382b1fb14",
|
|
106
124
|
"name": "dsh-design-studio",
|
|
107
125
|
"version": "0.0.0",
|
|
108
|
-
"packageMetadataSha256": "
|
|
126
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab"
|
|
109
127
|
}
|
|
110
128
|
},
|
|
111
129
|
{
|
|
@@ -114,14 +132,14 @@
|
|
|
114
132
|
"sha256": "9bf73c460608b5f491a471348292f7917159595a3d9fbff96f5637efefe309ce",
|
|
115
133
|
"name": "dsh-design-studio",
|
|
116
134
|
"version": "0.0.0",
|
|
117
|
-
"packageMetadataSha256": "
|
|
135
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab",
|
|
118
136
|
"firstParty": true,
|
|
119
137
|
"currentSourceIdentity": {
|
|
120
138
|
"manifestPath": "packages/studio/package.json",
|
|
121
|
-
"sourceCommit": "
|
|
139
|
+
"sourceCommit": "78318de5e9be6ed9c4f2a5130e5c7c2382b1fb14",
|
|
122
140
|
"name": "dsh-design-studio",
|
|
123
141
|
"version": "0.0.0",
|
|
124
|
-
"packageMetadataSha256": "
|
|
142
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab"
|
|
125
143
|
}
|
|
126
144
|
},
|
|
127
145
|
{
|
|
@@ -130,14 +148,14 @@
|
|
|
130
148
|
"sha256": "81ead1c264f09ec82a1fff34ecfb96270081040175981f5d17188871f4570ad1",
|
|
131
149
|
"name": "dsh-design-studio",
|
|
132
150
|
"version": "0.0.0",
|
|
133
|
-
"packageMetadataSha256": "
|
|
151
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab",
|
|
134
152
|
"firstParty": true,
|
|
135
153
|
"currentSourceIdentity": {
|
|
136
154
|
"manifestPath": "packages/studio/package.json",
|
|
137
|
-
"sourceCommit": "
|
|
155
|
+
"sourceCommit": "78318de5e9be6ed9c4f2a5130e5c7c2382b1fb14",
|
|
138
156
|
"name": "dsh-design-studio",
|
|
139
157
|
"version": "0.0.0",
|
|
140
|
-
"packageMetadataSha256": "
|
|
158
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab"
|
|
141
159
|
}
|
|
142
160
|
},
|
|
143
161
|
{
|
|
@@ -146,30 +164,14 @@
|
|
|
146
164
|
"sha256": "377f9234d7696a26809199b417462bdf9e16f8286a9cb524a2d422648c37bc9d",
|
|
147
165
|
"name": "dsh-design-studio",
|
|
148
166
|
"version": "0.0.0",
|
|
149
|
-
"packageMetadataSha256": "
|
|
167
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab",
|
|
150
168
|
"firstParty": true,
|
|
151
169
|
"currentSourceIdentity": {
|
|
152
170
|
"manifestPath": "packages/studio/package.json",
|
|
153
|
-
"sourceCommit": "
|
|
171
|
+
"sourceCommit": "78318de5e9be6ed9c4f2a5130e5c7c2382b1fb14",
|
|
154
172
|
"name": "dsh-design-studio",
|
|
155
173
|
"version": "0.0.0",
|
|
156
|
-
"packageMetadataSha256": "
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
|
-
{
|
|
160
|
-
"output": "lib/index.js",
|
|
161
|
-
"path": "packages/studio/src/types.ts",
|
|
162
|
-
"sha256": "7941c92f98810858297bee10048c64eb259c4748ba302c88032f32bd9f3fbadd",
|
|
163
|
-
"name": "dsh-design-studio",
|
|
164
|
-
"version": "0.0.0",
|
|
165
|
-
"packageMetadataSha256": "5a27dcb60ce95be6cbe2d083b9cfd8a2c4012dda9b3a9541ff915f868d75c7ae",
|
|
166
|
-
"firstParty": true,
|
|
167
|
-
"currentSourceIdentity": {
|
|
168
|
-
"manifestPath": "packages/studio/package.json",
|
|
169
|
-
"sourceCommit": "1c813ae4a77e3087224db27e3a898cea5ca61b97",
|
|
170
|
-
"name": "dsh-design-studio",
|
|
171
|
-
"version": "0.0.0",
|
|
172
|
-
"packageMetadataSha256": "5a27dcb60ce95be6cbe2d083b9cfd8a2c4012dda9b3a9541ff915f868d75c7ae"
|
|
174
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab"
|
|
173
175
|
}
|
|
174
176
|
},
|
|
175
177
|
{
|
|
@@ -178,78 +180,78 @@
|
|
|
178
180
|
"sha256": "38005e8858a678c75cbb27fe53e7b2d8bd068acbf205196a4acf82a87d0faa0a",
|
|
179
181
|
"name": "dsh-design-studio",
|
|
180
182
|
"version": "0.0.0",
|
|
181
|
-
"packageMetadataSha256": "
|
|
183
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab",
|
|
182
184
|
"firstParty": true,
|
|
183
185
|
"currentSourceIdentity": {
|
|
184
186
|
"manifestPath": "packages/studio/package.json",
|
|
185
|
-
"sourceCommit": "
|
|
187
|
+
"sourceCommit": "78318de5e9be6ed9c4f2a5130e5c7c2382b1fb14",
|
|
186
188
|
"name": "dsh-design-studio",
|
|
187
189
|
"version": "0.0.0",
|
|
188
|
-
"packageMetadataSha256": "
|
|
190
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab"
|
|
189
191
|
}
|
|
190
192
|
},
|
|
191
193
|
{
|
|
192
|
-
"output": "lib/instance-changes-
|
|
194
|
+
"output": "lib/instance-changes-CAX1OjCg.js",
|
|
193
195
|
"path": "packages/studio/src/content-archive.ts",
|
|
194
|
-
"sha256": "
|
|
196
|
+
"sha256": "2b551470a52d8aa3f4dd0e2f9cc6124ac062d93b1be3f9937d780f9417be11ef",
|
|
195
197
|
"name": "dsh-design-studio",
|
|
196
198
|
"version": "0.0.0",
|
|
197
|
-
"packageMetadataSha256": "
|
|
199
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab",
|
|
198
200
|
"firstParty": true,
|
|
199
201
|
"currentSourceIdentity": {
|
|
200
202
|
"manifestPath": "packages/studio/package.json",
|
|
201
|
-
"sourceCommit": "
|
|
203
|
+
"sourceCommit": "78318de5e9be6ed9c4f2a5130e5c7c2382b1fb14",
|
|
202
204
|
"name": "dsh-design-studio",
|
|
203
205
|
"version": "0.0.0",
|
|
204
|
-
"packageMetadataSha256": "
|
|
206
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab"
|
|
205
207
|
}
|
|
206
208
|
},
|
|
207
209
|
{
|
|
208
|
-
"output": "lib/instance-changes-
|
|
210
|
+
"output": "lib/instance-changes-CAX1OjCg.js",
|
|
209
211
|
"path": "packages/studio/src/instance-changes.ts",
|
|
210
212
|
"sha256": "164b78c06d359d899b4edb3bd6fe96c1f41072ec4739331d3d57d4b8a45505a2",
|
|
211
213
|
"name": "dsh-design-studio",
|
|
212
214
|
"version": "0.0.0",
|
|
213
|
-
"packageMetadataSha256": "
|
|
215
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab",
|
|
214
216
|
"firstParty": true,
|
|
215
217
|
"currentSourceIdentity": {
|
|
216
218
|
"manifestPath": "packages/studio/package.json",
|
|
217
|
-
"sourceCommit": "
|
|
219
|
+
"sourceCommit": "78318de5e9be6ed9c4f2a5130e5c7c2382b1fb14",
|
|
218
220
|
"name": "dsh-design-studio",
|
|
219
221
|
"version": "0.0.0",
|
|
220
|
-
"packageMetadataSha256": "
|
|
222
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab"
|
|
221
223
|
}
|
|
222
224
|
},
|
|
223
225
|
{
|
|
224
|
-
"output": "lib/instance-changes-
|
|
226
|
+
"output": "lib/instance-changes-CAX1OjCg.js",
|
|
225
227
|
"path": "packages/studio/src/load.ts",
|
|
226
228
|
"sha256": "a2e334453a7efea7b7dd00e33dcd9b0d811fc100f919ee4f244662ce9ea835bf",
|
|
227
229
|
"name": "dsh-design-studio",
|
|
228
230
|
"version": "0.0.0",
|
|
229
|
-
"packageMetadataSha256": "
|
|
231
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab",
|
|
230
232
|
"firstParty": true,
|
|
231
233
|
"currentSourceIdentity": {
|
|
232
234
|
"manifestPath": "packages/studio/package.json",
|
|
233
|
-
"sourceCommit": "
|
|
235
|
+
"sourceCommit": "78318de5e9be6ed9c4f2a5130e5c7c2382b1fb14",
|
|
234
236
|
"name": "dsh-design-studio",
|
|
235
237
|
"version": "0.0.0",
|
|
236
|
-
"packageMetadataSha256": "
|
|
238
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab"
|
|
237
239
|
}
|
|
238
240
|
},
|
|
239
241
|
{
|
|
240
|
-
"output": "lib/instance-changes-
|
|
242
|
+
"output": "lib/instance-changes-CAX1OjCg.js",
|
|
241
243
|
"path": "packages/studio/src/panel-preview.ts",
|
|
242
244
|
"sha256": "da59fa5ae7d47249148b1295a3517f2288e7079441c3d277d2e18720128e6d1b",
|
|
243
245
|
"name": "dsh-design-studio",
|
|
244
246
|
"version": "0.0.0",
|
|
245
|
-
"packageMetadataSha256": "
|
|
247
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab",
|
|
246
248
|
"firstParty": true,
|
|
247
249
|
"currentSourceIdentity": {
|
|
248
250
|
"manifestPath": "packages/studio/package.json",
|
|
249
|
-
"sourceCommit": "
|
|
251
|
+
"sourceCommit": "78318de5e9be6ed9c4f2a5130e5c7c2382b1fb14",
|
|
250
252
|
"name": "dsh-design-studio",
|
|
251
253
|
"version": "0.0.0",
|
|
252
|
-
"packageMetadataSha256": "
|
|
254
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab"
|
|
253
255
|
}
|
|
254
256
|
},
|
|
255
257
|
{
|
|
@@ -258,62 +260,78 @@
|
|
|
258
260
|
"sha256": "c5466098ac3013441ff8b13f84b400d8364b1bc8a68ea35f8de4da8634abd169",
|
|
259
261
|
"name": "dsh-design-studio",
|
|
260
262
|
"version": "0.0.0",
|
|
261
|
-
"packageMetadataSha256": "
|
|
263
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab",
|
|
262
264
|
"firstParty": true,
|
|
263
265
|
"currentSourceIdentity": {
|
|
264
266
|
"manifestPath": "packages/studio/package.json",
|
|
265
|
-
"sourceCommit": "
|
|
267
|
+
"sourceCommit": "78318de5e9be6ed9c4f2a5130e5c7c2382b1fb14",
|
|
266
268
|
"name": "dsh-design-studio",
|
|
267
269
|
"version": "0.0.0",
|
|
268
|
-
"packageMetadataSha256": "
|
|
270
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab"
|
|
269
271
|
}
|
|
270
272
|
},
|
|
271
273
|
{
|
|
272
274
|
"output": "lib/node.js",
|
|
273
275
|
"path": "packages/studio/src/node/studio-instance-composition.mjs",
|
|
274
|
-
"sha256": "
|
|
276
|
+
"sha256": "df1c85a15050dbf8e7b3e640d85f617bccdfe95ca89a87604b661bbdd42eb349",
|
|
275
277
|
"name": "dsh-design-studio",
|
|
276
278
|
"version": "0.0.0",
|
|
277
|
-
"packageMetadataSha256": "
|
|
279
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab",
|
|
278
280
|
"firstParty": true,
|
|
279
281
|
"currentSourceIdentity": {
|
|
280
282
|
"manifestPath": "packages/studio/package.json",
|
|
281
|
-
"sourceCommit": "
|
|
283
|
+
"sourceCommit": "78318de5e9be6ed9c4f2a5130e5c7c2382b1fb14",
|
|
282
284
|
"name": "dsh-design-studio",
|
|
283
285
|
"version": "0.0.0",
|
|
284
|
-
"packageMetadataSha256": "
|
|
286
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab"
|
|
285
287
|
}
|
|
286
288
|
},
|
|
287
289
|
{
|
|
288
290
|
"output": "lib/node.js",
|
|
289
291
|
"path": "packages/studio/src/node/studio-instances.mjs",
|
|
290
|
-
"sha256": "
|
|
292
|
+
"sha256": "df8796676b3d34f1299e2c0c10d5827838ec4ea61095cd9dcb5a8e518c8caa42",
|
|
291
293
|
"name": "dsh-design-studio",
|
|
292
294
|
"version": "0.0.0",
|
|
293
|
-
"packageMetadataSha256": "
|
|
295
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab",
|
|
294
296
|
"firstParty": true,
|
|
295
297
|
"currentSourceIdentity": {
|
|
296
298
|
"manifestPath": "packages/studio/package.json",
|
|
297
|
-
"sourceCommit": "
|
|
299
|
+
"sourceCommit": "78318de5e9be6ed9c4f2a5130e5c7c2382b1fb14",
|
|
298
300
|
"name": "dsh-design-studio",
|
|
299
301
|
"version": "0.0.0",
|
|
300
|
-
"packageMetadataSha256": "
|
|
302
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab"
|
|
301
303
|
}
|
|
302
304
|
},
|
|
303
305
|
{
|
|
304
306
|
"output": "lib/node.js",
|
|
305
307
|
"path": "packages/studio/src/node/studio-panel-drafts.mjs",
|
|
306
|
-
"sha256": "
|
|
308
|
+
"sha256": "4b95b77778e007683bc323f45b0bcbed3a6319e78a50c8e1c83a7903e1b7c3ee",
|
|
309
|
+
"name": "dsh-design-studio",
|
|
310
|
+
"version": "0.0.0",
|
|
311
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab",
|
|
312
|
+
"firstParty": true,
|
|
313
|
+
"currentSourceIdentity": {
|
|
314
|
+
"manifestPath": "packages/studio/package.json",
|
|
315
|
+
"sourceCommit": "78318de5e9be6ed9c4f2a5130e5c7c2382b1fb14",
|
|
316
|
+
"name": "dsh-design-studio",
|
|
317
|
+
"version": "0.0.0",
|
|
318
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab"
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"output": "lib/types.js",
|
|
323
|
+
"path": "packages/studio/src/types.ts",
|
|
324
|
+
"sha256": "8299f7135d792820d0d7501acbe65efd7c48dc27dc6cdfe0d173631eff09e7de",
|
|
307
325
|
"name": "dsh-design-studio",
|
|
308
326
|
"version": "0.0.0",
|
|
309
|
-
"packageMetadataSha256": "
|
|
327
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab",
|
|
310
328
|
"firstParty": true,
|
|
311
329
|
"currentSourceIdentity": {
|
|
312
330
|
"manifestPath": "packages/studio/package.json",
|
|
313
|
-
"sourceCommit": "
|
|
331
|
+
"sourceCommit": "78318de5e9be6ed9c4f2a5130e5c7c2382b1fb14",
|
|
314
332
|
"name": "dsh-design-studio",
|
|
315
333
|
"version": "0.0.0",
|
|
316
|
-
"packageMetadataSha256": "
|
|
334
|
+
"packageMetadataSha256": "a9756be17e31425c29e10ddf82937a7dab2febee72fa0c6d6f3f5c45822c3aab"
|
|
317
335
|
}
|
|
318
336
|
}
|
|
319
337
|
],
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"directory": "packages/studio"
|
|
6
6
|
},
|
|
7
7
|
"name": "@yugoo-design/dsh-design-studio",
|
|
8
|
-
"version": "0.
|
|
8
|
+
"version": "0.3.1",
|
|
9
9
|
"license": "Apache-2.0",
|
|
10
10
|
"type": "module",
|
|
11
11
|
"description": "Host-neutral Studio catalog and authoring domain with an optional Node storage and source-composition adapter.",
|
|
@@ -17,6 +17,10 @@
|
|
|
17
17
|
"default": "./lib/index.js"
|
|
18
18
|
},
|
|
19
19
|
"./package.json": "./package.json",
|
|
20
|
+
"./types": {
|
|
21
|
+
"types": "./lib/types.d.ts",
|
|
22
|
+
"default": "./lib/types.js"
|
|
23
|
+
},
|
|
20
24
|
"./node": {
|
|
21
25
|
"types": "./lib/node.d.ts",
|
|
22
26
|
"default": "./lib/node.js"
|
|
@@ -34,7 +38,7 @@
|
|
|
34
38
|
"test:source-storage": "tsx --tsconfig tests/source-tsconfig.json --test tests/source-storage.test.mjs"
|
|
35
39
|
},
|
|
36
40
|
"peerDependencies": {
|
|
37
|
-
"@yugoo-design/dsh-design-core": "0.
|
|
41
|
+
"@yugoo-design/dsh-design-core": "0.3.1"
|
|
38
42
|
},
|
|
39
43
|
"files": [
|
|
40
44
|
"lib/**/*.js",
|