@metamesh/cli 0.0.0-stage → 0.14.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.
Files changed (99) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/LICENSE +200 -0
  3. package/README.md +86 -2
  4. package/dist/authoring/artifacts.d.ts +15 -0
  5. package/dist/authoring/artifacts.d.ts.map +1 -0
  6. package/dist/authoring/artifacts.js +347 -0
  7. package/dist/authoring/artifacts.js.map +1 -0
  8. package/dist/authoring/capture/render-client.js +4222 -0
  9. package/dist/authoring/capture/render-client.js.LEGAL.txt +9 -0
  10. package/dist/authoring/capture/render-client.js.map +7 -0
  11. package/dist/authoring/check.d.ts +4 -0
  12. package/dist/authoring/check.d.ts.map +1 -0
  13. package/dist/authoring/check.js +118 -0
  14. package/dist/authoring/check.js.map +1 -0
  15. package/dist/authoring/environment.d.ts +29 -0
  16. package/dist/authoring/environment.d.ts.map +1 -0
  17. package/dist/authoring/environment.js +182 -0
  18. package/dist/authoring/environment.js.map +1 -0
  19. package/dist/authoring/errors.d.ts +13 -0
  20. package/dist/authoring/errors.d.ts.map +1 -0
  21. package/dist/authoring/errors.js +43 -0
  22. package/dist/authoring/errors.js.map +1 -0
  23. package/dist/authoring/render-client.d.ts +6 -0
  24. package/dist/authoring/render-client.d.ts.map +1 -0
  25. package/dist/authoring/render-client.js +55 -0
  26. package/dist/authoring/render-client.js.map +1 -0
  27. package/dist/authoring/render-scene.d.ts +22 -0
  28. package/dist/authoring/render-scene.d.ts.map +1 -0
  29. package/dist/authoring/render-scene.js +139 -0
  30. package/dist/authoring/render-scene.js.map +1 -0
  31. package/dist/authoring/render-types.d.ts +81 -0
  32. package/dist/authoring/render-types.d.ts.map +1 -0
  33. package/dist/authoring/render-types.js +2 -0
  34. package/dist/authoring/render-types.js.map +1 -0
  35. package/dist/authoring/render.d.ts +23 -0
  36. package/dist/authoring/render.d.ts.map +1 -0
  37. package/dist/authoring/render.js +243 -0
  38. package/dist/authoring/render.js.map +1 -0
  39. package/dist/authoring/run.d.ts +7 -0
  40. package/dist/authoring/run.d.ts.map +1 -0
  41. package/dist/authoring/run.js +308 -0
  42. package/dist/authoring/run.js.map +1 -0
  43. package/dist/authoring/types.d.ts +175 -0
  44. package/dist/authoring/types.d.ts.map +1 -0
  45. package/dist/authoring/types.js +3 -0
  46. package/dist/authoring/types.js.map +1 -0
  47. package/dist/authoring/worker.d.ts +15 -0
  48. package/dist/authoring/worker.d.ts.map +1 -0
  49. package/dist/authoring/worker.js +163 -0
  50. package/dist/authoring/worker.js.map +1 -0
  51. package/dist/authoring.d.ts +12 -0
  52. package/dist/authoring.d.ts.map +1 -0
  53. package/dist/authoring.js +9 -0
  54. package/dist/authoring.js.map +1 -0
  55. package/dist/docs/guides/agent-authoring.md +240 -0
  56. package/dist/docs/guides/package.md +87 -0
  57. package/dist/docs/manifest.json +554 -0
  58. package/dist/docs/reference/authoring/AUTHORING_PROTOCOL_VERSION.md +9 -0
  59. package/dist/docs/reference/authoring/AuthoringDiagnostic.md +22 -0
  60. package/dist/docs/reference/authoring/AuthoringEnvironment.md +15 -0
  61. package/dist/docs/reference/authoring/AuthoringError.md +16 -0
  62. package/dist/docs/reference/authoring/AuthoringFailure-type.md +18 -0
  63. package/dist/docs/reference/authoring/AuthoringKind.md +10 -0
  64. package/dist/docs/reference/authoring/AuthoringPhase.md +10 -0
  65. package/dist/docs/reference/authoring/CapturedBuffer.md +14 -0
  66. package/dist/docs/reference/authoring/CapturedGeometry.md +14 -0
  67. package/dist/docs/reference/authoring/CapturedPart.md +19 -0
  68. package/dist/docs/reference/authoring/CapturedResource.md +15 -0
  69. package/dist/docs/reference/authoring/CapturedRun.md +14 -0
  70. package/dist/docs/reference/authoring/CapturedRunManifest.md +40 -0
  71. package/dist/docs/reference/authoring/CheckOptions.md +18 -0
  72. package/dist/docs/reference/authoring/CheckSuccess.md +16 -0
  73. package/dist/docs/reference/authoring/DocumentationEntry.md +20 -0
  74. package/dist/docs/reference/authoring/DocumentationManifest.md +15 -0
  75. package/dist/docs/reference/authoring/DocumentationSearchResult.md +13 -0
  76. package/dist/docs/reference/authoring/InstalledAuthoringPackage.md +15 -0
  77. package/dist/docs/reference/authoring/RenderCamera.md +22 -0
  78. package/dist/docs/reference/authoring/RenderFormat.md +10 -0
  79. package/dist/docs/reference/authoring/RenderOptions.md +20 -0
  80. package/dist/docs/reference/authoring/RenderResult.md +15 -0
  81. package/dist/docs/reference/authoring/RenderView.md +10 -0
  82. package/dist/docs/reference/authoring/RenderedImage.md +23 -0
  83. package/dist/docs/reference/authoring/RunOptions.md +25 -0
  84. package/dist/docs/reference/authoring/RunSuccess.md +14 -0
  85. package/dist/docs/reference/authoring/authoringFailure-value.md +10 -0
  86. package/dist/docs/reference/authoring/checkAuthoringSource.md +10 -0
  87. package/dist/docs/reference/authoring/discoverAuthoringEnvironment.md +13 -0
  88. package/dist/docs/reference/authoring/inspectCapturedRun.md +15 -0
  89. package/dist/docs/reference/authoring/installAuthoringBrowser.md +13 -0
  90. package/dist/docs/reference/authoring/readCapturedRun.md +10 -0
  91. package/dist/docs/reference/authoring/renderCapturedRun.md +13 -0
  92. package/dist/docs/reference/authoring/runAuthoringSource.md +13 -0
  93. package/dist/docs/reference/authoring/searchAuthoringDocumentation.md +16 -0
  94. package/dist/docs/reference/authoring/showAuthoringDocumentation.md +12 -0
  95. package/dist/metamesh.d.ts +3 -0
  96. package/dist/metamesh.d.ts.map +1 -0
  97. package/dist/metamesh.js +183 -0
  98. package/dist/metamesh.js.map +1 -0
  99. package/package.json +63 -3
@@ -0,0 +1,183 @@
1
+ #!/usr/bin/env node
2
+ import { readFile } from "node:fs/promises";
3
+ import { resolve } from "node:path";
4
+ import { Command, CommanderError, InvalidArgumentError, Option } from "commander";
5
+ import { AuthoringError, authoringFailure, isRecord } from "./authoring/errors.js";
6
+ import { AUTHORING_PROTOCOL_VERSION, } from "./authoring/types.js";
7
+ /** Keep the repository's strict scalar-option policy without importing unpublished tools. */
8
+ function valueOption(flags, description, choices) {
9
+ const option = new Option(flags, description);
10
+ if (choices)
11
+ option.choices([...choices]);
12
+ const parse = option.parseArg;
13
+ return option.argParser((value, previous) => {
14
+ if (previous !== undefined)
15
+ throw new InvalidArgumentError("option may only be provided once");
16
+ return parse ? parse(value, previous) : value;
17
+ });
18
+ }
19
+ const projectFor = (options) => resolve(options.project ?? process.cwd());
20
+ const entryOptions = (options, entry) => ({
21
+ entry,
22
+ kind: options.kind, // Commander requires and validates this option before the action.
23
+ project: projectFor(options),
24
+ ...(options.tsconfig === undefined ? {} : { tsconfig: options.tsconfig }),
25
+ });
26
+ async function readObject(project, file) {
27
+ if (file === undefined)
28
+ return undefined;
29
+ const value = JSON.parse(await readFile(resolve(project, file), "utf8"));
30
+ if (!isRecord(value))
31
+ throw new AuthoringError("invocation", "INVALID_JSON_INPUT", "Parameter and limit files must contain JSON objects.");
32
+ return value;
33
+ }
34
+ function humanResult(command, result) {
35
+ if (isRecord(result) && result.success === false && Array.isArray(result.diagnostics))
36
+ return `${result.diagnostics.map((issue) => `${issue.code}: ${issue.message}`).join("\n")}${typeof result.runDirectory === "string" ? `\nAttempt: ${result.runDirectory}` : ""}\n`;
37
+ if (command === "environment") {
38
+ const environment = result;
39
+ return `MetaMesh authoring protocol ${environment.authoringProtocolVersion}\nProject: ${environment.project}\n${environment.packages.map((pkg) => `${pkg.name} ${pkg.version} (${pkg.documentCount} topics)\n ${pkg.manifestPath}`).join("\n")}\n`;
40
+ }
41
+ if (command === "docs" && Array.isArray(result))
42
+ return `${result.map(({ id, summary }) => `${id}\n ${summary}`).join("\n")}\n`;
43
+ if (isRecord(result) && typeof result.markdown === "string")
44
+ return `${result.markdown}\n`;
45
+ if (command === "check" && isRecord(result) && result.success === true)
46
+ return `TypeScript check passed: ${String(result.entry)}\n`;
47
+ if ((command === "run" || command === "inspect") &&
48
+ isRecord(result) &&
49
+ isRecord(result.manifest)) {
50
+ const manifest = result.manifest;
51
+ return `${manifest.parts.length} parts; ${manifest.stats.vertices} vertices; ${manifest.stats.triangles} triangles; ${manifest.stats.volumeMm3.toFixed(3)} mm³\nCaptured: ${String(result.runDirectory ?? result.directory)}\n${manifest.diagnostics.map(({ severity, message }) => `${severity}: ${message}\n`).join("")}${isRecord(result.selectedPart) ? `Part: ${JSON.stringify(result.selectedPart)}\n` : ""}`;
52
+ }
53
+ return `${JSON.stringify(result, null, 2)}\n`;
54
+ }
55
+ async function main() {
56
+ const args = process.argv.slice(2);
57
+ const json = args.includes("--json");
58
+ let help = "";
59
+ const program = new Command("metamesh")
60
+ .description("Check, generate, inspect, and render local MetaMesh models.")
61
+ .option("--json", "emit one structured result on stdout")
62
+ .addOption(valueOption("--project <directory>", "resolve packages and paths from this project"))
63
+ .allowExcessArguments(false)
64
+ .configureHelp({ showGlobalOptions: true })
65
+ .configureOutput({
66
+ writeOut: (text) => {
67
+ help += text;
68
+ },
69
+ writeErr: () => { },
70
+ })
71
+ .addHelpText("after", "\nLocal author source executes with your account's permissions; this is not a sandbox.")
72
+ .exitOverride();
73
+ program.action(() => {
74
+ program.help();
75
+ });
76
+ const command = (parent, name, description) => parent.command(name).description(description).allowExcessArguments(false);
77
+ const action = (target, handler, format = target.name()) => {
78
+ target.action(async () => {
79
+ const result = await handler(target.optsWithGlobals(), target.args);
80
+ if (isRecord(result) && result.success === false)
81
+ process.exitCode = typeof result.exitCode === "number" ? result.exitCode : 2;
82
+ process.stdout.write(json ? `${JSON.stringify(result)}\n` : humanResult(format, result));
83
+ });
84
+ };
85
+ const entryCommand = (name, description) => command(program, name, description)
86
+ .argument("<entry>", "local TypeScript module")
87
+ .addOption(valueOption("--kind <kind>", "entry module contract", [
88
+ "model",
89
+ "generator",
90
+ ]).makeOptionMandatory())
91
+ .addOption(valueOption("--tsconfig <file>", "override the nearest TypeScript configuration"));
92
+ action(command(program, "environment", "discover installed packages and documentation"), async (options) => (await import("./authoring/environment.js")).discoverAuthoringEnvironment(projectFor(options)));
93
+ const docs = command(program, "docs", "search and read installed version-matched documentation");
94
+ docs.action(() => {
95
+ docs.help();
96
+ });
97
+ action(command(docs, "search", "search bounded topic and symbol metadata")
98
+ .argument("<query...>")
99
+ .addOption(valueOption("--limit <count>", "maximum results, 1–50 (default: 10)")), async (options, query) => (await import("./authoring/environment.js")).searchAuthoringDocumentation(query.join(" "), {
100
+ project: projectFor(options),
101
+ ...(options.limit === undefined ? {} : { limit: Number(options.limit) }),
102
+ }), "docs");
103
+ action(command(docs, "show", "read one installed topic").argument("<id>"), async (options, [id]) => (await import("./authoring/environment.js")).showAuthoringDocumentation(id, projectFor(options)));
104
+ action(entryCommand("check", "check TypeScript without evaluating source"), async (options, [entry]) => (await import("./authoring/check.js")).checkAuthoringSource(entryOptions(options, entry)));
105
+ action(entryCommand("run", "check, execute, and capture a fresh result")
106
+ .addOption(valueOption("--params <file>", "JSON parameter overrides (default: {})"))
107
+ .addOption(valueOption("--font-fixtures <file>", "local immutable font descriptors"))
108
+ .addOption(valueOption("--output <parent>", "parent for a unique run directory"))
109
+ .addOption(valueOption("--timeout <milliseconds>", "execution deadline (default: 30000)"))
110
+ .addOption(valueOption("--limits <file>", "JSON overrides lowering engine resource limits"))
111
+ .option("--export-3mf", "export this captured snapshot as 3MF"), async (options, [entry]) => {
112
+ const project = projectFor(options);
113
+ const limits = await readObject(project, options.limits);
114
+ return (await import("./authoring/run.js")).runAuthoringSource({
115
+ ...entryOptions(options, entry),
116
+ params: (await readObject(project, options.params)) ?? {},
117
+ ...(limits === undefined ? {} : { limits }),
118
+ ...(options.fontFixtures === undefined ? {} : { fontFixtures: options.fontFixtures }),
119
+ ...(options.output === undefined ? {} : { output: options.output }),
120
+ ...(options.timeout === undefined ? {} : { timeoutMs: Number(options.timeout) }),
121
+ export3mf: options.export3mf ?? false,
122
+ onLog: (text) => process.stderr.write(text),
123
+ });
124
+ });
125
+ action(command(program, "inspect", "read captured measurements and provenance")
126
+ .argument("<run-directory>")
127
+ .addOption(valueOption("--part <id>", "select a semantic part ID")), async (options, [directory]) => (await import("./authoring/artifacts.js")).inspectCapturedRun(resolve(projectFor(options), directory), options.part));
128
+ action(command(program, "render", "render captured geometry without executing author code")
129
+ .argument("<run-directory>")
130
+ .addOption(valueOption("--views <views>", "comma-separated isometric,front,top,right (default: isometric)"))
131
+ .addOption(valueOption("--width <pixels>", "image width (default: 1024)"))
132
+ .addOption(valueOption("--height <pixels>", "image height (default: 1024)"))
133
+ .addOption(valueOption("--format <format>", "image encoding (default: png)", ["png", "webp"]))
134
+ .option("--transparent", "use a transparent background")
135
+ .addOption(valueOption("--background <hex-color>", "six-digit RGB background").conflicts("transparent"))
136
+ .addOption(valueOption("--output <parent>", "parent for a unique capture directory")), async (options, [directory]) => (await import("./authoring/render.js")).renderCapturedRun(resolve(projectFor(options), directory), {
137
+ ...(options.views === undefined
138
+ ? {}
139
+ : { views: options.views.split(",") }),
140
+ ...(options.width === undefined ? {} : { width: Number(options.width) }),
141
+ ...(options.height === undefined ? {} : { height: Number(options.height) }),
142
+ ...(options.format === undefined ? {} : { format: options.format }),
143
+ ...(options.transparent
144
+ ? { background: "transparent" }
145
+ : options.background === undefined
146
+ ? {}
147
+ : { background: options.background }),
148
+ ...(options.output === undefined
149
+ ? {}
150
+ : { outputDirectory: resolve(projectFor(options), options.output) }),
151
+ }));
152
+ const browser = command(program, "browser", "set up the optional pinned capture browser");
153
+ browser.action(() => {
154
+ browser.help();
155
+ });
156
+ action(command(browser, "install", "explicitly install pinned Chromium"), async () => (await import("./authoring/render.js")).installAuthoringBrowser());
157
+ action(command(program, "setup", "print skill installation and project-instruction guidance"), () => ({
158
+ success: true,
159
+ authoringProtocolVersion: AUTHORING_PROTOCOL_VERSION,
160
+ installation: "pnpm dlx skills@1.5.22 add https://github.com/metamesh-studio/metamesh-skills --skill metamesh-developer",
161
+ publication: "The operator must publish the canonical skills repository before this GitHub installation command is available.",
162
+ instructions: "Use the metamesh-developer skill. Run metamesh environment --json in this project, consult installed docs with metamesh docs search/show, then check, run, and inspect the captured result. Render relevant views before declaring geometry work complete.",
163
+ }));
164
+ try {
165
+ await program.parseAsync(args, { from: "user" });
166
+ }
167
+ catch (error) {
168
+ if (error instanceof CommanderError && error.exitCode === 0) {
169
+ process.stdout.write(json ? `${JSON.stringify({ success: true, help })}\n` : help);
170
+ return;
171
+ }
172
+ const failure = authoringFailure(error instanceof CommanderError
173
+ ? new AuthoringError("invocation", "INVALID_ARGUMENTS", error.message.replace(/^error:\s*/i, ""))
174
+ : error, "invocation");
175
+ process.exitCode = failure.exitCode;
176
+ if (json)
177
+ process.stdout.write(`${JSON.stringify(failure)}\n`);
178
+ else
179
+ process.stderr.write(`${failure.diagnostics.map(({ code, message }) => `${code}: ${message}`).join("\n")}\n`);
180
+ }
181
+ }
182
+ await main();
183
+ //# sourceMappingURL=metamesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metamesh.js","sourceRoot":"","sources":["../src/metamesh.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,66 @@
1
1
  {
2
2
  "name": "@metamesh/cli",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "description": "Local MetaMesh authoring CLI and reusable Node tools for checking, captured generation, inspection, and rendering.",
4
+ "version": "0.14.0",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/JasonKoolman/metamesh.git",
9
+ "directory": "packages/cli"
10
+ },
11
+ "homepage": "https://github.com/JasonKoolman/metamesh#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/JasonKoolman/metamesh/issues"
14
+ },
15
+ "type": "module",
16
+ "sideEffects": false,
17
+ "files": [
18
+ "CHANGELOG.md",
19
+ "dist"
20
+ ],
21
+ "publishConfig": {
22
+ "access": "public",
23
+ "registry": "https://registry.npmjs.org/"
24
+ },
25
+ "bin": {
26
+ "metamesh": "./dist/metamesh.js"
27
+ },
28
+ "exports": {
29
+ "./authoring": {
30
+ "types": "./dist/authoring.d.ts",
31
+ "import": "./dist/authoring.js"
32
+ },
33
+ "./docs/manifest.json": "./dist/docs/manifest.json"
34
+ },
35
+ "dependencies": {
36
+ "@metamesh/testkit": "0.14.0",
37
+ "commander": "15.0.0",
38
+ "esbuild": "^0.28.2",
39
+ "playwright": "1.64.1",
40
+ "three": "0.186.1",
41
+ "typescript": "6.0.3"
42
+ },
43
+ "peerDependencies": {
44
+ "@metamesh/generator-sdk": "0.14.0",
45
+ "@metamesh/modeling": "0.14.0"
46
+ },
47
+ "peerDependenciesMeta": {
48
+ "@metamesh/generator-sdk": {
49
+ "optional": true
50
+ }
51
+ },
52
+ "devDependencies": {
53
+ "@metamesh/config": "0.0.0",
54
+ "@metamesh/generator-sdk": "0.14.0",
55
+ "@metamesh/modeling": "0.14.0",
56
+ "vitest": "^5.0.5",
57
+ "@types/node": "^24.19.2",
58
+ "@types/three": "0.186.0"
59
+ },
60
+ "scripts": {
61
+ "build": "node ../../scripts/clean-dist.mjs && tsc -p tsconfig.build.json && node scripts/build-renderer.mjs && node ../../scripts/package-docs/build.mjs cli",
62
+ "lint": "eslint .",
63
+ "test": "vitest run src",
64
+ "typecheck": "tsc --noEmit --pretty false"
65
+ }
6
66
  }