@metamesh/cli 0.17.0 → 0.18.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/CHANGELOG.md +160 -0
- package/README.md +75 -52
- package/dist/authoring/artifacts.d.ts +2 -2
- package/dist/authoring/artifacts.d.ts.map +1 -1
- package/dist/authoring/artifacts.js +50 -32
- package/dist/authoring/artifacts.js.map +1 -1
- package/dist/authoring/check.d.ts.map +1 -1
- package/dist/authoring/check.js +9 -3
- package/dist/authoring/check.js.map +1 -1
- package/dist/authoring/documentation-manifest.d.ts +3 -0
- package/dist/authoring/documentation-manifest.d.ts.map +1 -0
- package/dist/authoring/documentation-manifest.js +23 -0
- package/dist/authoring/documentation-manifest.js.map +1 -0
- package/dist/authoring/documentation.d.ts +20 -0
- package/dist/authoring/documentation.d.ts.map +1 -0
- package/dist/authoring/documentation.js +94 -0
- package/dist/authoring/documentation.js.map +1 -0
- package/dist/authoring/environment.d.ts +1 -19
- package/dist/authoring/environment.d.ts.map +1 -1
- package/dist/authoring/environment.js +2 -110
- package/dist/authoring/environment.js.map +1 -1
- package/dist/authoring/{worker.d.ts → execution-process.d.ts} +2 -2
- package/dist/authoring/execution-process.d.ts.map +1 -0
- package/dist/authoring/{worker.js → execution-process.js} +17 -19
- package/dist/authoring/execution-process.js.map +1 -0
- package/dist/authoring/{capture/render-client.js → render/client-bundle.js} +196 -196
- package/dist/authoring/{capture/render-client.js.map → render/client-bundle.js.map} +4 -4
- package/dist/authoring/{render-client.d.ts → render/client.d.ts} +2 -2
- package/dist/authoring/render/client.d.ts.map +1 -0
- package/dist/authoring/{render-client.js → render/client.js} +2 -2
- package/dist/authoring/render/client.js.map +1 -0
- package/dist/authoring/{render.d.ts → render/render-capture.d.ts} +2 -2
- package/dist/authoring/render/render-capture.d.ts.map +1 -0
- package/dist/authoring/{render.js → render/render-capture.js} +4 -4
- package/dist/authoring/render/render-capture.js.map +1 -0
- package/dist/authoring/{render-scene.d.ts → render/scene.d.ts} +2 -2
- package/dist/authoring/render/scene.d.ts.map +1 -0
- package/dist/authoring/{render-scene.js → render/scene.js} +6 -10
- package/dist/authoring/render/scene.js.map +1 -0
- package/dist/authoring/{render-types.d.ts → render/types.d.ts} +3 -3
- package/dist/authoring/render/types.d.ts.map +1 -0
- package/dist/authoring/render/types.js +2 -0
- package/dist/authoring/render/types.js.map +1 -0
- package/dist/authoring/run.d.ts.map +1 -1
- package/dist/authoring/run.js +7 -3
- package/dist/authoring/run.js.map +1 -1
- package/dist/authoring/types.d.ts +20 -14
- package/dist/authoring/types.d.ts.map +1 -1
- package/dist/authoring/types.js.map +1 -1
- package/dist/authoring.d.ts +5 -4
- package/dist/authoring.d.ts.map +1 -1
- package/dist/authoring.js +3 -2
- package/dist/authoring.js.map +1 -1
- package/dist/docs/guides/agent-authoring.md +71 -51
- package/dist/docs/guides/package.md +75 -52
- package/dist/docs/manifest.json +1 -1
- package/dist/docs/reference/authoring/AUTHORING_PROTOCOL_VERSION.md +1 -1
- package/dist/docs/reference/authoring/AuthoringDiagnostic.md +1 -1
- package/dist/docs/reference/authoring/AuthoringEnvironment.md +1 -1
- package/dist/docs/reference/authoring/AuthoringError.md +1 -1
- package/dist/docs/reference/authoring/AuthoringFailure-type.md +1 -1
- package/dist/docs/reference/authoring/AuthoringKind.md +1 -1
- package/dist/docs/reference/authoring/AuthoringPhase.md +1 -1
- package/dist/docs/reference/authoring/CapturedBuffer.md +1 -1
- package/dist/docs/reference/authoring/CapturedGeometry.md +1 -1
- package/dist/docs/reference/authoring/CapturedPart.md +4 -6
- package/dist/docs/reference/authoring/CapturedResource.md +2 -2
- package/dist/docs/reference/authoring/CapturedRun.md +1 -1
- package/dist/docs/reference/authoring/CapturedRunManifest.md +3 -3
- package/dist/docs/reference/authoring/CheckOptions.md +1 -1
- package/dist/docs/reference/authoring/CheckSuccess.md +1 -1
- package/dist/docs/reference/authoring/DocumentationEntry.md +1 -1
- package/dist/docs/reference/authoring/DocumentationManifest.md +1 -1
- package/dist/docs/reference/authoring/DocumentationSearchResult.md +1 -1
- package/dist/docs/reference/authoring/InstalledAuthoringPackage.md +1 -1
- package/dist/docs/reference/authoring/RenderCamera.md +1 -1
- package/dist/docs/reference/authoring/RenderFormat.md +1 -1
- package/dist/docs/reference/authoring/RenderOptions.md +1 -1
- package/dist/docs/reference/authoring/RenderResult.md +1 -1
- package/dist/docs/reference/authoring/RenderView.md +1 -1
- package/dist/docs/reference/authoring/RenderedImage.md +1 -1
- package/dist/docs/reference/authoring/RunOptions.md +13 -5
- package/dist/docs/reference/authoring/RunSuccess.md +1 -1
- package/dist/docs/reference/authoring/authoringFailure-value.md +1 -1
- package/dist/docs/reference/authoring/checkAuthoringSource.md +1 -1
- package/dist/docs/reference/authoring/discoverAuthoringEnvironment.md +1 -1
- package/dist/docs/reference/authoring/inspectCapturedRun.md +1 -1
- package/dist/docs/reference/authoring/installAuthoringBrowser.md +1 -1
- package/dist/docs/reference/authoring/readCapturedRun.md +1 -1
- package/dist/docs/reference/authoring/renderCapturedRun.md +1 -1
- package/dist/docs/reference/authoring/runAuthoringSource.md +1 -1
- package/dist/docs/reference/authoring/searchAuthoringDocumentation.md +1 -1
- package/dist/docs/reference/authoring/showAuthoringDocumentation.md +1 -1
- package/dist/metamesh.js +22 -10
- package/dist/metamesh.js.map +1 -1
- package/package.json +9 -6
- package/dist/authoring/render-client.d.ts.map +0 -1
- package/dist/authoring/render-client.js.map +0 -1
- package/dist/authoring/render-scene.d.ts.map +0 -1
- package/dist/authoring/render-scene.js.map +0 -1
- package/dist/authoring/render-types.d.ts.map +0 -1
- package/dist/authoring/render-types.js +0 -2
- package/dist/authoring/render-types.js.map +0 -1
- package/dist/authoring/render.d.ts.map +0 -1
- package/dist/authoring/render.js.map +0 -1
- package/dist/authoring/worker.d.ts.map +0 -1
- package/dist/authoring/worker.js.map +0 -1
- /package/dist/authoring/{capture/render-client.js.LEGAL.txt → render/client-bundle.js.LEGAL.txt} +0 -0
package/dist/authoring/check.js
CHANGED
|
@@ -63,7 +63,10 @@ export async function checkAuthoringSource(options) {
|
|
|
63
63
|
};
|
|
64
64
|
// Erase author-specific params/services while retaining the complete callback contract.
|
|
65
65
|
const contractFile = resolve(dirname(entry), ".metamesh-check.d.mts");
|
|
66
|
-
const contract = ts.createSourceFile(contractFile, 'import type { GenerateCallback } from "@metamesh/modeling"; type Callback = GenerateCallback<never, never>;'
|
|
66
|
+
const contract = ts.createSourceFile(contractFile, 'import type { GenerateCallback } from "@metamesh/modeling"; type Callback = GenerateCallback<never, never>;' +
|
|
67
|
+
(options.kind === "generator"
|
|
68
|
+
? 'import type { GeneratorModule } from "@metamesh/generator-sdk"; type GeneratorEntry = GeneratorModule;'
|
|
69
|
+
: ""), ts.ScriptTarget.Latest, true);
|
|
67
70
|
const host = ts.createCompilerHost(compilerOptions);
|
|
68
71
|
const loadSource = host.getSourceFile.bind(host);
|
|
69
72
|
host.getSourceFile = (fileName, ...args) => resolve(fileName) === contractFile ? contract : loadSource(fileName, ...args);
|
|
@@ -76,6 +79,7 @@ export async function checkAuthoringSource(options) {
|
|
|
76
79
|
const diagnostics = [...(parsed?.errors ?? []), ...ts.getPreEmitDiagnostics(program)].map(diagnostic);
|
|
77
80
|
const checker = program.getTypeChecker();
|
|
78
81
|
const callback = checker.getTypeFromTypeNode(contract.statements.find(ts.isTypeAliasDeclaration).type);
|
|
82
|
+
const generatorEntry = contract.statements.find((statement) => ts.isTypeAliasDeclaration(statement) && statement.name.text === "GeneratorEntry");
|
|
79
83
|
const moduleSymbol = source === undefined ? undefined : checker.getSymbolAtLocation(source);
|
|
80
84
|
const exports = moduleSymbol === undefined ? [] : checker.getExportsOfModule(moduleSymbol);
|
|
81
85
|
if (!exports.some((symbol) => symbol.getName() === "default") ||
|
|
@@ -95,20 +99,22 @@ export async function checkAuthoringSource(options) {
|
|
|
95
99
|
const symbol = checker.getPropertyOfType(type, name);
|
|
96
100
|
return symbol === undefined ? undefined : checker.getTypeOfSymbolAtLocation(symbol, source);
|
|
97
101
|
};
|
|
98
|
-
const candidate =
|
|
102
|
+
const candidate = exported;
|
|
99
103
|
const generator = candidate === undefined ? undefined : property(candidate, "generate");
|
|
100
104
|
const kind = candidate === undefined ? undefined : property(candidate, "kind");
|
|
101
105
|
if (candidate === undefined ||
|
|
102
106
|
generator === undefined ||
|
|
103
107
|
generator.getCallSignatures().length === 0 ||
|
|
104
108
|
!checker.isTypeAssignableTo(generator, callback) ||
|
|
109
|
+
(generatorEntry !== undefined &&
|
|
110
|
+
!checker.isTypeAssignableTo(exported, checker.getTypeFromTypeNode(generatorEntry.type))) ||
|
|
105
111
|
kind === undefined ||
|
|
106
112
|
checker.typeToString(kind) !== '"metamesh-model"')
|
|
107
113
|
diagnostics.push({
|
|
108
114
|
code: "AUTHORING_PROGRAM_TYPE",
|
|
109
115
|
message: options.kind === "model"
|
|
110
116
|
? "Default export must have the ModelProgram type returned by generate()."
|
|
111
|
-
: "Default export must be a Generator
|
|
117
|
+
: "Default export must be a Generator model program carrying its package identity.",
|
|
112
118
|
severity: "error",
|
|
113
119
|
file: entry,
|
|
114
120
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/authoring/check.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/authoring/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentation-manifest.d.ts","sourceRoot":"","sources":["../../src/authoring/documentation-manifest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAkC7F"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AuthoringError, isRecord } from "./errors.js";
|
|
2
|
+
export function readDocumentationManifest(value, name) {
|
|
3
|
+
if (!isRecord(value) ||
|
|
4
|
+
value.formatVersion !== 1 ||
|
|
5
|
+
value.packageName !== name ||
|
|
6
|
+
typeof value.packageVersion !== "string" ||
|
|
7
|
+
!Array.isArray(value.documents) ||
|
|
8
|
+
value.documents.length === 0 ||
|
|
9
|
+
value.documents.length > 10000)
|
|
10
|
+
throw new AuthoringError("environment", "INVALID_DOCUMENTATION", `Invalid installed documentation manifest for ${name}.`);
|
|
11
|
+
const ids = new Set();
|
|
12
|
+
for (const document of value.documents) {
|
|
13
|
+
if (!isRecord(document) ||
|
|
14
|
+
!["id", "title", "summary", "path", "importPath", "availability", "canonical"].every((key) => typeof document[key] === "string" && document[key].trim().length > 0) ||
|
|
15
|
+
!Array.isArray(document.keywords) ||
|
|
16
|
+
!document.keywords.every((keyword) => typeof keyword === "string") ||
|
|
17
|
+
ids.has(document.id))
|
|
18
|
+
throw new AuthoringError("environment", "INVALID_DOCUMENTATION", `Invalid or duplicate document in ${name}.`);
|
|
19
|
+
ids.add(document.id);
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=documentation-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentation-manifest.js","sourceRoot":"","sources":["../../src/authoring/documentation-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvD,MAAM,UAAU,yBAAyB,CAAC,KAAc,EAAE,IAAY;IACpE,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,KAAK,CAAC,aAAa,KAAK,CAAC;QACzB,KAAK,CAAC,WAAW,KAAK,IAAI;QAC1B,OAAO,KAAK,CAAC,cAAc,KAAK,QAAQ;QACxC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAC/B,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;QAC5B,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK;QAE9B,MAAM,IAAI,cAAc,CACtB,aAAa,EACb,uBAAuB,EACvB,gDAAgD,IAAI,GAAG,CACxD,CAAC;IACJ,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAsB,EAAE,CAAC;QACpD,IACE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnB,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,KAAK,CAClF,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAC9E;YACD,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACjC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC;YAC3E,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAY,CAAC;YAE9B,MAAM,IAAI,cAAc,CACtB,aAAa,EACb,uBAAuB,EACvB,oCAAoC,IAAI,GAAG,CAC5C,CAAC;QACJ,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAY,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,KAAyC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { DocumentationEntry } from "./types.js";
|
|
2
|
+
/** An installed documentation match carrying the exact package identity that owns it. */
|
|
3
|
+
export interface DocumentationSearchResult extends DocumentationEntry {
|
|
4
|
+
readonly packageName: string;
|
|
5
|
+
readonly packageVersion: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Ranks distinct intent tokens in installed titles, keywords, and summaries without loading bodies.
|
|
9
|
+
* Exact symbol/topic/import lookup takes priority; equally complete matches favor guides.
|
|
10
|
+
* Returns up to limit matches, defaulting to 10; supported limits are 1 through 50.
|
|
11
|
+
*/
|
|
12
|
+
export declare function searchAuthoringDocumentation(query: string, options?: {
|
|
13
|
+
readonly project?: string;
|
|
14
|
+
readonly limit?: number;
|
|
15
|
+
}): Promise<readonly DocumentationSearchResult[]>;
|
|
16
|
+
/** Reads one exact-version installed Markdown topic by its discovered ID, without executing source. */
|
|
17
|
+
export declare function showAuthoringDocumentation(id: string, project?: string): Promise<DocumentationSearchResult & {
|
|
18
|
+
readonly markdown: string;
|
|
19
|
+
}>;
|
|
20
|
+
//# sourceMappingURL=documentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentation.d.ts","sourceRoot":"","sources":["../../src/authoring/documentation.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,yFAAyF;AACzF,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAgCD;;;;GAIG;AACH,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GACnE,OAAO,CAAC,SAAS,yBAAyB,EAAE,CAAC,CAsE/C;AAED,uGAAuG;AACvG,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,yBAAyB,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAwBpE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { dirname } from "node:path";
|
|
3
|
+
import { readDocumentationManifest } from "./documentation-manifest.js";
|
|
4
|
+
import { confinedFile, discoverAuthoringEnvironment } from "./environment.js";
|
|
5
|
+
import { AuthoringError } from "./errors.js";
|
|
6
|
+
// Grammar and common task verbs add no useful intent to a metadata-only query.
|
|
7
|
+
const searchStopWords = new Set("a an and are as at be by can create do does for from how i in is it make of on or that the this to use when which with".split(" "));
|
|
8
|
+
function searchWords(value) {
|
|
9
|
+
// Remove standalone grammar before splitting identifiers: the "to" in toRegionData is meaningful.
|
|
10
|
+
const meaningful = (value.match(/[\p{L}\p{N}]+/gu) ?? [])
|
|
11
|
+
.filter((word) => !searchStopWords.has(word.toLocaleLowerCase("en-US")))
|
|
12
|
+
.join(" ");
|
|
13
|
+
return [
|
|
14
|
+
...new Set(meaningful
|
|
15
|
+
.replace(/(\p{Ll}|\p{N})(\p{Lu})/gu, "$1 $2")
|
|
16
|
+
.replace(/(\p{Lu})(\p{Lu}\p{Ll})/gu, "$1 $2")
|
|
17
|
+
.toLocaleLowerCase("en-US")
|
|
18
|
+
.match(/[\p{L}\p{N}]+/gu) ?? []),
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
function searchTokens(value) {
|
|
22
|
+
const identifiers = (value.toLocaleLowerCase("en-US").match(/[\p{L}\p{N}]+/gu) ?? []).filter((word) => !searchStopWords.has(word));
|
|
23
|
+
return [...new Set([...identifiers, ...searchWords(value)])];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Ranks distinct intent tokens in installed titles, keywords, and summaries without loading bodies.
|
|
27
|
+
* Exact symbol/topic/import lookup takes priority; equally complete matches favor guides.
|
|
28
|
+
* Returns up to limit matches, defaulting to 10; supported limits are 1 through 50.
|
|
29
|
+
*/
|
|
30
|
+
export async function searchAuthoringDocumentation(query, options = {}) {
|
|
31
|
+
const limit = options.limit ?? 10;
|
|
32
|
+
if (!Number.isSafeInteger(limit) || limit < 1 || limit > 50)
|
|
33
|
+
throw new AuthoringError("invocation", "INVALID_LIMIT", "Documentation limit must be an integer from 1 to 50.");
|
|
34
|
+
const exactQuery = query.trim().toLocaleLowerCase("en-US");
|
|
35
|
+
if (!/[\p{L}\p{N}]/u.test(exactQuery))
|
|
36
|
+
throw new AuthoringError("invocation", "EMPTY_QUERY", "Enter a documentation search query.");
|
|
37
|
+
const words = searchTokens(query);
|
|
38
|
+
const normalizedQuery = searchWords(query).join(" ");
|
|
39
|
+
const qualified = /^([\p{L}\p{N}_$]+)\.([\p{L}\p{N}_$]+)$/u.exec(exactQuery);
|
|
40
|
+
const environment = await discoverAuthoringEnvironment(options.project);
|
|
41
|
+
const indexed = await Promise.all(environment.packages.map(async (pkg) => ({
|
|
42
|
+
pkg,
|
|
43
|
+
manifest: readDocumentationManifest(JSON.parse(await readFile(pkg.manifestPath, "utf8")), pkg.name),
|
|
44
|
+
})));
|
|
45
|
+
return indexed
|
|
46
|
+
.flatMap(({ pkg, manifest }) => manifest.documents.map((document) => {
|
|
47
|
+
const titleWords = searchTokens(document.title);
|
|
48
|
+
const exact = [document.title, document.id, document.importPath].some((value) => value.toLocaleLowerCase("en-US") === exactQuery) ||
|
|
49
|
+
(normalizedQuery.length > 0 && searchWords(document.title).join(" ") === normalizedQuery)
|
|
50
|
+
? 2
|
|
51
|
+
: qualified &&
|
|
52
|
+
document.title.toLocaleLowerCase("en-US") === qualified[1] &&
|
|
53
|
+
document.keywords.some((word) => word.toLocaleLowerCase("en-US") === qualified[2])
|
|
54
|
+
? 1
|
|
55
|
+
: 0;
|
|
56
|
+
const title = new Set(titleWords);
|
|
57
|
+
const keywords = new Set(searchTokens(document.keywords.join(" ")));
|
|
58
|
+
const summary = new Set(searchTokens(document.summary));
|
|
59
|
+
const matches = words.filter((word) => title.has(word) || keywords.has(word) || summary.has(word)).length;
|
|
60
|
+
const score = words.reduce((sum, word) => sum + (title.has(word) ? 4 : keywords.has(word) ? 2 : summary.has(word) ? 1 : 0), 0);
|
|
61
|
+
return {
|
|
62
|
+
exact,
|
|
63
|
+
matches,
|
|
64
|
+
guide: Number(document.id.includes("/guide/")),
|
|
65
|
+
score,
|
|
66
|
+
result: { ...document, packageName: pkg.name, packageVersion: pkg.version },
|
|
67
|
+
};
|
|
68
|
+
}))
|
|
69
|
+
.filter(({ exact, matches }) => exact > 0 || matches > 0)
|
|
70
|
+
.sort((a, b) => b.exact - a.exact ||
|
|
71
|
+
b.matches - a.matches ||
|
|
72
|
+
b.guide - a.guide ||
|
|
73
|
+
b.score - a.score ||
|
|
74
|
+
a.result.id.localeCompare(b.result.id, "en"))
|
|
75
|
+
.slice(0, limit)
|
|
76
|
+
.map(({ result }) => result);
|
|
77
|
+
}
|
|
78
|
+
/** Reads one exact-version installed Markdown topic by its discovered ID, without executing source. */
|
|
79
|
+
export async function showAuthoringDocumentation(id, project) {
|
|
80
|
+
const environment = await discoverAuthoringEnvironment(project);
|
|
81
|
+
for (const pkg of environment.packages) {
|
|
82
|
+
const manifest = readDocumentationManifest(JSON.parse(await readFile(pkg.manifestPath, "utf8")), pkg.name);
|
|
83
|
+
const document = manifest.documents.find((entry) => entry.id === id);
|
|
84
|
+
if (!document)
|
|
85
|
+
continue;
|
|
86
|
+
const file = await confinedFile(dirname(pkg.manifestPath), document.path);
|
|
87
|
+
const markdown = await readFile(file, "utf8");
|
|
88
|
+
if (Buffer.byteLength(markdown) > 512 * 1024)
|
|
89
|
+
throw new AuthoringError("environment", "DOCUMENT_TOO_LARGE", "Requested document exceeds the 512 KiB retrieval bound.");
|
|
90
|
+
return { ...document, packageName: pkg.name, packageVersion: pkg.version, markdown };
|
|
91
|
+
}
|
|
92
|
+
throw new AuthoringError("invocation", "DOCUMENT_NOT_FOUND", `No installed documentation topic has id ${id}.`);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=documentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentation.js","sourceRoot":"","sources":["../../src/authoring/documentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AuthoringEnvironment
|
|
1
|
+
import { type AuthoringEnvironment } from "./types.js";
|
|
2
2
|
export declare const authoringPackageNames: string[];
|
|
3
3
|
/** @internal Resolve only local installation scopes; Node's global fallback paths are excluded. */
|
|
4
4
|
export declare function projectPackageDirectory(project: string, specifier: string): string | undefined;
|
|
@@ -9,22 +9,4 @@ export declare function confinedFile(directory: string, path: string): Promise<s
|
|
|
9
9
|
* Rejects missing required packages, stale manifests, and mixed exact package versions.
|
|
10
10
|
*/
|
|
11
11
|
export declare function discoverAuthoringEnvironment(project?: string): Promise<AuthoringEnvironment>;
|
|
12
|
-
/** An installed documentation match carrying the exact package identity that owns it. */
|
|
13
|
-
export interface DocumentationSearchResult extends DocumentationEntry {
|
|
14
|
-
readonly packageName: string;
|
|
15
|
-
readonly packageVersion: string;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Ranks distinct intent tokens in installed titles, keywords, and summaries without loading bodies.
|
|
19
|
-
* Exact symbol/topic/import lookup takes priority; equally complete matches favor guides.
|
|
20
|
-
* Returns up to limit matches, defaulting to 10; supported limits are 1 through 50.
|
|
21
|
-
*/
|
|
22
|
-
export declare function searchAuthoringDocumentation(query: string, options?: {
|
|
23
|
-
readonly project?: string;
|
|
24
|
-
readonly limit?: number;
|
|
25
|
-
}): Promise<readonly DocumentationSearchResult[]>;
|
|
26
|
-
/** Reads one exact-version installed Markdown topic by its discovered ID, without executing source. */
|
|
27
|
-
export declare function showAuthoringDocumentation(id: string, project?: string): Promise<DocumentationSearchResult & {
|
|
28
|
-
readonly markdown: string;
|
|
29
|
-
}>;
|
|
30
12
|
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/authoring/environment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/authoring/environment.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,qBAAqB,UAKjC,CAAC;AAEF,mGAAmG;AACnG,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA4B9F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAY/E;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBnF;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,SAAgB,GACtB,OAAO,CAAC,oBAAoB,CAAC,CAgE/B"}
|
|
@@ -2,6 +2,7 @@ import { existsSync, readFileSync } from "node:fs";
|
|
|
2
2
|
import { readFile, realpath, stat } from "node:fs/promises";
|
|
3
3
|
import { createRequire } from "node:module";
|
|
4
4
|
import { dirname, isAbsolute, relative, resolve } from "node:path";
|
|
5
|
+
import { readDocumentationManifest } from "./documentation-manifest.js";
|
|
5
6
|
import { AuthoringError, isRecord } from "./errors.js";
|
|
6
7
|
import { AUTHORING_PROTOCOL_VERSION, } from "./types.js";
|
|
7
8
|
export const authoringPackageNames = [
|
|
@@ -63,27 +64,6 @@ export async function confinedFile(directory, path) {
|
|
|
63
64
|
throw new AuthoringError("artifact", "INVALID_PATH", `Path escapes its captured directory: ${path}`);
|
|
64
65
|
return file;
|
|
65
66
|
}
|
|
66
|
-
function readManifest(value, name) {
|
|
67
|
-
if (!isRecord(value) ||
|
|
68
|
-
value.formatVersion !== 1 ||
|
|
69
|
-
value.packageName !== name ||
|
|
70
|
-
typeof value.packageVersion !== "string" ||
|
|
71
|
-
!Array.isArray(value.documents) ||
|
|
72
|
-
value.documents.length === 0 ||
|
|
73
|
-
value.documents.length > 10000)
|
|
74
|
-
throw new AuthoringError("environment", "INVALID_DOCUMENTATION", `Invalid installed documentation manifest for ${name}.`);
|
|
75
|
-
const ids = new Set();
|
|
76
|
-
for (const document of value.documents) {
|
|
77
|
-
if (!isRecord(document) ||
|
|
78
|
-
!["id", "title", "summary", "path", "importPath", "availability", "canonical"].every((key) => typeof document[key] === "string" && document[key].trim().length > 0) ||
|
|
79
|
-
!Array.isArray(document.keywords) ||
|
|
80
|
-
!document.keywords.every((keyword) => typeof keyword === "string") ||
|
|
81
|
-
ids.has(document.id))
|
|
82
|
-
throw new AuthoringError("environment", "INVALID_DOCUMENTATION", `Invalid or duplicate document in ${name}.`);
|
|
83
|
-
ids.add(document.id);
|
|
84
|
-
}
|
|
85
|
-
return value;
|
|
86
|
-
}
|
|
87
67
|
/**
|
|
88
68
|
* Discovers project-local Modeling, CLI, and optional SDK/Testkit documentation.
|
|
89
69
|
* Rejects missing required packages, stale manifests, and mixed exact package versions.
|
|
@@ -99,7 +79,7 @@ export async function discoverAuthoringEnvironment(project = process.cwd()) {
|
|
|
99
79
|
const manifestPath = resolveProjectExport(project, `${name}/docs/manifest.json`);
|
|
100
80
|
if ((await stat(manifestPath)).size > 8 * 1024 * 1024)
|
|
101
81
|
throw new AuthoringError("environment", "INVALID_DOCUMENTATION", `Documentation index exceeds 8 MiB: ${name}.`);
|
|
102
|
-
const manifest =
|
|
82
|
+
const manifest = readDocumentationManifest(JSON.parse(await readFile(manifestPath, "utf8")), name);
|
|
103
83
|
const installed = JSON.parse(await readFile(resolve(installedDirectory, "package.json"), "utf8"));
|
|
104
84
|
if (!isRecord(installed) ||
|
|
105
85
|
installed.name !== name ||
|
|
@@ -132,92 +112,4 @@ export async function discoverAuthoringEnvironment(project = process.cwd()) {
|
|
|
132
112
|
],
|
|
133
113
|
};
|
|
134
114
|
}
|
|
135
|
-
// Grammar and common task verbs add no useful intent to a metadata-only query.
|
|
136
|
-
const searchStopWords = new Set("a an and are as at be by can create do does for from how i in is it make of on or that the this to use when which with".split(" "));
|
|
137
|
-
function searchWords(value) {
|
|
138
|
-
// Remove standalone grammar before splitting identifiers: the "to" in toRegionData is meaningful.
|
|
139
|
-
const meaningful = (value.match(/[\p{L}\p{N}]+/gu) ?? [])
|
|
140
|
-
.filter((word) => !searchStopWords.has(word.toLocaleLowerCase("en-US")))
|
|
141
|
-
.join(" ");
|
|
142
|
-
return [
|
|
143
|
-
...new Set(meaningful
|
|
144
|
-
.replace(/(\p{Ll}|\p{N})(\p{Lu})/gu, "$1 $2")
|
|
145
|
-
.replace(/(\p{Lu})(\p{Lu}\p{Ll})/gu, "$1 $2")
|
|
146
|
-
.toLocaleLowerCase("en-US")
|
|
147
|
-
.match(/[\p{L}\p{N}]+/gu) ?? []),
|
|
148
|
-
];
|
|
149
|
-
}
|
|
150
|
-
function searchTokens(value) {
|
|
151
|
-
const identifiers = (value.toLocaleLowerCase("en-US").match(/[\p{L}\p{N}]+/gu) ?? []).filter((word) => !searchStopWords.has(word));
|
|
152
|
-
return [...new Set([...identifiers, ...searchWords(value)])];
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Ranks distinct intent tokens in installed titles, keywords, and summaries without loading bodies.
|
|
156
|
-
* Exact symbol/topic/import lookup takes priority; equally complete matches favor guides.
|
|
157
|
-
* Returns up to limit matches, defaulting to 10; supported limits are 1 through 50.
|
|
158
|
-
*/
|
|
159
|
-
export async function searchAuthoringDocumentation(query, options = {}) {
|
|
160
|
-
const limit = options.limit ?? 10;
|
|
161
|
-
if (!Number.isSafeInteger(limit) || limit < 1 || limit > 50)
|
|
162
|
-
throw new AuthoringError("invocation", "INVALID_LIMIT", "Documentation limit must be an integer from 1 to 50.");
|
|
163
|
-
const exactQuery = query.trim().toLocaleLowerCase("en-US");
|
|
164
|
-
if (!/[\p{L}\p{N}]/u.test(exactQuery))
|
|
165
|
-
throw new AuthoringError("invocation", "EMPTY_QUERY", "Enter a documentation search query.");
|
|
166
|
-
const words = searchTokens(query);
|
|
167
|
-
const normalizedQuery = searchWords(query).join(" ");
|
|
168
|
-
const qualified = /^([\p{L}\p{N}_$]+)\.([\p{L}\p{N}_$]+)$/u.exec(exactQuery);
|
|
169
|
-
const environment = await discoverAuthoringEnvironment(options.project);
|
|
170
|
-
const indexed = await Promise.all(environment.packages.map(async (pkg) => ({
|
|
171
|
-
pkg,
|
|
172
|
-
manifest: readManifest(JSON.parse(await readFile(pkg.manifestPath, "utf8")), pkg.name),
|
|
173
|
-
})));
|
|
174
|
-
return indexed
|
|
175
|
-
.flatMap(({ pkg, manifest }) => manifest.documents.map((document) => {
|
|
176
|
-
const titleWords = searchTokens(document.title);
|
|
177
|
-
const exact = [document.title, document.id, document.importPath].some((value) => value.toLocaleLowerCase("en-US") === exactQuery) ||
|
|
178
|
-
(normalizedQuery.length > 0 && searchWords(document.title).join(" ") === normalizedQuery)
|
|
179
|
-
? 2
|
|
180
|
-
: qualified &&
|
|
181
|
-
document.title.toLocaleLowerCase("en-US") === qualified[1] &&
|
|
182
|
-
document.keywords.some((word) => word.toLocaleLowerCase("en-US") === qualified[2])
|
|
183
|
-
? 1
|
|
184
|
-
: 0;
|
|
185
|
-
const title = new Set(titleWords);
|
|
186
|
-
const keywords = new Set(searchTokens(document.keywords.join(" ")));
|
|
187
|
-
const summary = new Set(searchTokens(document.summary));
|
|
188
|
-
const matches = words.filter((word) => title.has(word) || keywords.has(word) || summary.has(word)).length;
|
|
189
|
-
const score = words.reduce((sum, word) => sum + (title.has(word) ? 4 : keywords.has(word) ? 2 : summary.has(word) ? 1 : 0), 0);
|
|
190
|
-
return {
|
|
191
|
-
exact,
|
|
192
|
-
matches,
|
|
193
|
-
guide: Number(document.id.includes("/guide/")),
|
|
194
|
-
score,
|
|
195
|
-
result: { ...document, packageName: pkg.name, packageVersion: pkg.version },
|
|
196
|
-
};
|
|
197
|
-
}))
|
|
198
|
-
.filter(({ exact, matches }) => exact > 0 || matches > 0)
|
|
199
|
-
.sort((a, b) => b.exact - a.exact ||
|
|
200
|
-
b.matches - a.matches ||
|
|
201
|
-
b.guide - a.guide ||
|
|
202
|
-
b.score - a.score ||
|
|
203
|
-
a.result.id.localeCompare(b.result.id, "en"))
|
|
204
|
-
.slice(0, limit)
|
|
205
|
-
.map(({ result }) => result);
|
|
206
|
-
}
|
|
207
|
-
/** Reads one exact-version installed Markdown topic by its discovered ID, without executing source. */
|
|
208
|
-
export async function showAuthoringDocumentation(id, project) {
|
|
209
|
-
const environment = await discoverAuthoringEnvironment(project);
|
|
210
|
-
for (const pkg of environment.packages) {
|
|
211
|
-
const manifest = readManifest(JSON.parse(await readFile(pkg.manifestPath, "utf8")), pkg.name);
|
|
212
|
-
const document = manifest.documents.find((entry) => entry.id === id);
|
|
213
|
-
if (!document)
|
|
214
|
-
continue;
|
|
215
|
-
const file = await confinedFile(dirname(pkg.manifestPath), document.path);
|
|
216
|
-
const markdown = await readFile(file, "utf8");
|
|
217
|
-
if (Buffer.byteLength(markdown) > 512 * 1024)
|
|
218
|
-
throw new AuthoringError("environment", "DOCUMENT_TOO_LARGE", "Requested document exceeds the 512 KiB retrieval bound.");
|
|
219
|
-
return { ...document, packageName: pkg.name, packageVersion: pkg.version, markdown };
|
|
220
|
-
}
|
|
221
|
-
throw new AuthoringError("invocation", "DOCUMENT_NOT_FOUND", `No installed documentation topic has id ${id}.`);
|
|
222
|
-
}
|
|
223
115
|
//# sourceMappingURL=environment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/authoring/environment.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/authoring/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,0BAA0B,GAG3B,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,oBAAoB;IACpB,yBAAyB;IACzB,mBAAmB;IACnB,eAAe;CAChB,CAAC;AAEF,mGAAmG;AACnG,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,SAAiB;IACxE,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;QAC3C,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,WAAW,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC;gBACH,IACG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAiC,CAAC,IAAI;oBACnF,WAAW,EACX,CAAC;oBACD,OAAO,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,mEAAmE;YACrE,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QAChE,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACrE,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM;QAC9B,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,SAAiB;IACrE,IAAI,CAAC;QACH,IAAI,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,SAAS;YAC3D,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,OAAO,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,cAAc,CACtB,aAAa,EACb,uBAAuB,EACvB,kBAAkB,SAAS,SAAS,OAAO,CAAC,OAAO,CAAC,0DAA0D,CAC/G,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAiB,EAAE,IAAY;IAChE,IACE,UAAU,CAAC,IAAI,CAAC;QAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;QAE5D,MAAM,IAAI,cAAc,CACtB,UAAU,EACV,cAAc,EACd,4CAA4C,IAAI,EAAE,CACnD,CAAC;IACJ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC;QAC7C,MAAM,IAAI,cAAc,CACtB,UAAU,EACV,cAAc,EACd,wCAAwC,IAAI,EAAE,CAC/C,CAAC;IACJ,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;IAEvB,MAAM,QAAQ,GAAgC,EAAE,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE,CAAC;QACzC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClE,IACE,kBAAkB,KAAK,SAAS;YAChC,IAAI,KAAK,oBAAoB;YAC7B,IAAI,KAAK,eAAe;YAExB,SAAS;QACX,MAAM,YAAY,GAAG,oBAAoB,CAAC,OAAO,EAAE,GAAG,IAAI,qBAAqB,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;YACnD,MAAM,IAAI,cAAc,CACtB,aAAa,EACb,uBAAuB,EACvB,sCAAsC,IAAI,GAAG,CAC9C,CAAC;QACJ,MAAM,QAAQ,GAAG,yBAAyB,CACxC,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAY,EAC3D,IAAI,CACL,CAAC;QACF,MAAM,SAAS,GAAY,IAAI,CAAC,KAAK,CACnC,MAAM,QAAQ,CAAC,OAAO,CAAC,kBAAmB,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CACrE,CAAC;QACF,IACE,CAAC,QAAQ,CAAC,SAAS,CAAC;YACpB,SAAS,CAAC,IAAI,KAAK,IAAI;YACvB,SAAS,CAAC,OAAO,KAAK,QAAQ,CAAC,cAAc;YAE7C,MAAM,IAAI,cAAc,CACtB,aAAa,EACb,qBAAqB,EACrB,kDAAkD,IAAI,qCAAqC,CAC5F,CAAC;QACJ,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI;YACJ,OAAO,EAAE,QAAQ,CAAC,cAAc;YAChC,YAAY;YACZ,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM;SACzC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC;QACnB,MAAM,IAAI,cAAc,CACtB,aAAa,EACb,0BAA0B,EAC1B,gEAAgE,CACjE,CAAC;IACJ,OAAO;QACL,wBAAwB,EAAE,0BAA0B;QACpD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;QACzB,QAAQ;QACR,YAAY,EAAE;YACZ,MAAM;YACN,gBAAgB;YAChB,OAAO;YACP,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,yBAAyB,CAAC;gBACjE,CAAC,CAAC,CAAC,WAAW,EAAE,uBAAuB,CAAC;gBACxC,CAAC,CAAC,EAAE,CAAC;YACP,oBAAoB;YACpB,QAAQ;YACR,YAAY;SACb;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -3,7 +3,7 @@ export interface WorkerRequest {
|
|
|
3
3
|
readonly modulePath: string;
|
|
4
4
|
readonly directory: string;
|
|
5
5
|
readonly kind: "model" | "generator";
|
|
6
|
-
readonly
|
|
6
|
+
readonly input: Readonly<Record<string, unknown>>;
|
|
7
7
|
readonly fontFixtures?: string;
|
|
8
8
|
readonly export3mf: boolean;
|
|
9
9
|
readonly metadata: Omit<CapturedRunManifest, "resources" | "parts" | "bounds" | "stats" | "diagnostics" | "dependencies" | "export3mf" | "assets" | "parameters">;
|
|
@@ -12,4 +12,4 @@ export interface WorkerRequest {
|
|
|
12
12
|
readonly parametersPath?: string;
|
|
13
13
|
readonly packagesPath?: string;
|
|
14
14
|
}
|
|
15
|
-
//# sourceMappingURL=
|
|
15
|
+
//# sourceMappingURL=execution-process.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-process.d.ts","sourceRoot":"","sources":["../../src/authoring/execution-process.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAGV,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,IAAI,CACrB,mBAAmB,EACjB,WAAW,GACX,OAAO,GACP,QAAQ,GACR,OAAO,GACP,aAAa,GACb,cAAc,GACd,WAAW,GACX,QAAQ,GACR,YAAY,CACf,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC"}
|
|
@@ -6,8 +6,6 @@ function program(value) {
|
|
|
6
6
|
return isRecord(value) && value.kind === "metamesh-model" && typeof value.generate === "function";
|
|
7
7
|
}
|
|
8
8
|
async function execute(request) {
|
|
9
|
-
let snapshot;
|
|
10
|
-
let dispose;
|
|
11
9
|
let phase = "execute";
|
|
12
10
|
try {
|
|
13
11
|
const entry = await import(pathToFileURL(request.modulePath).href);
|
|
@@ -15,7 +13,7 @@ async function execute(request) {
|
|
|
15
13
|
throw new AuthoringError("execute", "INVALID_ENTRY", "Author entry is not a module.", 1);
|
|
16
14
|
let model;
|
|
17
15
|
let definition;
|
|
18
|
-
let parameters = request.
|
|
16
|
+
let parameters = request.input;
|
|
19
17
|
if (request.kind === "generator") {
|
|
20
18
|
phase = "parameters";
|
|
21
19
|
if (request.packagesPath === undefined || request.parametersPath === undefined)
|
|
@@ -25,13 +23,17 @@ async function execute(request) {
|
|
|
25
23
|
definition = packages.parseGeneratorDefinition(entry.definition);
|
|
26
24
|
const parsed = params
|
|
27
25
|
.createParamCodec(definition)
|
|
28
|
-
.safeParse({ ...params.getDefaultParameters(definition), ...request.
|
|
26
|
+
.safeParse({ ...params.getDefaultParameters(definition), ...request.input });
|
|
29
27
|
if (!parsed.success)
|
|
30
28
|
return {
|
|
31
29
|
success: false,
|
|
32
30
|
phase: "parameters",
|
|
33
31
|
exitCode: 1,
|
|
34
|
-
diagnostics: parsed.issues.map((issue) => ({
|
|
32
|
+
diagnostics: parsed.issues.map(({ path, ...issue }) => ({
|
|
33
|
+
...issue,
|
|
34
|
+
severity: "error",
|
|
35
|
+
...(path === undefined ? {} : { path }),
|
|
36
|
+
})),
|
|
35
37
|
};
|
|
36
38
|
parameters = parsed.data;
|
|
37
39
|
const runtime = entry.default;
|
|
@@ -39,9 +41,9 @@ async function execute(request) {
|
|
|
39
41
|
runtime.formatVersion !== packages.GENERATOR_PACKAGE_FORMAT_VERSION ||
|
|
40
42
|
runtime.generatorId !== definition.id ||
|
|
41
43
|
runtime.version !== definition.version ||
|
|
42
|
-
!program(runtime
|
|
44
|
+
!program(runtime))
|
|
43
45
|
throw new AuthoringError("execute", "INVALID_GENERATOR_MODULE", "Default export must be the Generator module envelope matching definition.", 1);
|
|
44
|
-
model = runtime
|
|
46
|
+
model = runtime;
|
|
45
47
|
}
|
|
46
48
|
else {
|
|
47
49
|
if (!program(entry.default))
|
|
@@ -66,19 +68,19 @@ async function execute(request) {
|
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
70
|
phase = "execute";
|
|
69
|
-
const { createModelEngine } = (await import(pathToFileURL(request.enginePath).href));
|
|
71
|
+
const { createModelEngine, export3mf } = (await import(pathToFileURL(request.enginePath).href));
|
|
70
72
|
const engine = await createModelEngine();
|
|
71
|
-
const
|
|
72
|
-
? engine.
|
|
73
|
+
const snapshot = services === undefined
|
|
74
|
+
? engine.run(model, parameters, {
|
|
73
75
|
limits: request.metadata.policy.limits,
|
|
74
76
|
})
|
|
75
|
-
: engine.
|
|
77
|
+
: engine.run(model, parameters, {
|
|
76
78
|
services,
|
|
77
79
|
limits: request.metadata.policy.limits,
|
|
78
80
|
});
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
81
|
+
const exported = request.export3mf
|
|
82
|
+
? await export3mf(snapshot.parts, { limits: engine.limits })
|
|
83
|
+
: undefined;
|
|
82
84
|
phase = "artifact";
|
|
83
85
|
const selectedAssets = definition === undefined
|
|
84
86
|
? (loaded?.selections ?? [])
|
|
@@ -149,10 +151,6 @@ async function execute(request) {
|
|
|
149
151
|
],
|
|
150
152
|
};
|
|
151
153
|
}
|
|
152
|
-
finally {
|
|
153
|
-
snapshot?.dispose();
|
|
154
|
-
dispose?.();
|
|
155
|
-
}
|
|
156
154
|
}
|
|
157
155
|
const requestFile = process.argv[2];
|
|
158
156
|
const resultFile = process.argv[3];
|
|
@@ -160,4 +158,4 @@ if (requestFile !== undefined && resultFile !== undefined) {
|
|
|
160
158
|
const result = await execute(JSON.parse(await readFile(requestFile, "utf8")));
|
|
161
159
|
await writeFile(resultFile, JSON.stringify(result));
|
|
162
160
|
}
|
|
163
|
-
//# sourceMappingURL=
|
|
161
|
+
//# sourceMappingURL=execution-process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-process.js","sourceRoot":"","sources":["../../src/authoring/execution-process.ts"],"names":[],"mappings":"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"}
|