@jakkrichm/create-nexus-devflow 2.12.3 → 2.13.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 (87) hide show
  1. package/dist/lib/active-context-engine.d.ts +47 -0
  2. package/dist/lib/active-context-engine.js +174 -0
  3. package/dist/lib/active-context-engine.js.map +1 -0
  4. package/dist/lib/branch-context.d.ts +1 -0
  5. package/dist/lib/branch-context.js +1 -0
  6. package/dist/lib/branch-context.js.map +1 -1
  7. package/dist/lib/current-work.js +3 -28
  8. package/dist/lib/current-work.js.map +1 -1
  9. package/dist/lib/dashboard-engine.d.ts +54 -0
  10. package/dist/lib/dashboard-engine.js +109 -0
  11. package/dist/lib/dashboard-engine.js.map +1 -0
  12. package/dist/lib/dashboard-page.d.ts +8 -1
  13. package/dist/lib/dashboard-page.js +10 -1
  14. package/dist/lib/dashboard-page.js.map +1 -1
  15. package/dist/lib/dashboard.d.ts +2 -0
  16. package/dist/lib/dashboard.js +78 -1068
  17. package/dist/lib/dashboard.js.map +1 -1
  18. package/dist/lib/delivery-lifecycle-engine.d.ts +96 -0
  19. package/dist/lib/delivery-lifecycle-engine.js +388 -0
  20. package/dist/lib/delivery-lifecycle-engine.js.map +1 -0
  21. package/dist/lib/gatekeeper-engine.d.ts +65 -0
  22. package/dist/lib/gatekeeper-engine.js +155 -0
  23. package/dist/lib/gatekeeper-engine.js.map +1 -0
  24. package/dist/lib/gatekeeper.d.ts +3 -22
  25. package/dist/lib/gatekeeper.js +4 -67
  26. package/dist/lib/gatekeeper.js.map +1 -1
  27. package/dist/lib/history.d.ts +3 -1
  28. package/dist/lib/history.js +2 -1
  29. package/dist/lib/history.js.map +1 -1
  30. package/dist/lib/studio-view-renderer.d.ts +50 -0
  31. package/dist/lib/studio-view-renderer.js +773 -0
  32. package/dist/lib/studio-view-renderer.js.map +1 -0
  33. package/dist/lib/tooling/commands/link-project.d.ts +2 -0
  34. package/dist/lib/tooling/commands/link-project.js +22 -0
  35. package/dist/lib/tooling/commands/link-project.js.map +1 -0
  36. package/dist/lib/tooling/commands/migrate-stage-artifacts.d.ts +2 -0
  37. package/dist/lib/tooling/commands/migrate-stage-artifacts.js +61 -0
  38. package/dist/lib/tooling/commands/migrate-stage-artifacts.js.map +1 -0
  39. package/dist/lib/tooling/commands/render-html.d.ts +2 -0
  40. package/dist/lib/tooling/commands/render-html.js +78 -0
  41. package/dist/lib/tooling/commands/render-html.js.map +1 -0
  42. package/dist/lib/tooling/commands/report-html.d.ts +2 -0
  43. package/dist/lib/tooling/commands/report-html.js +27 -0
  44. package/dist/lib/tooling/commands/report-html.js.map +1 -0
  45. package/dist/lib/tooling/commands/scan-doc-contract.d.ts +2 -0
  46. package/dist/lib/tooling/commands/scan-doc-contract.js +77 -0
  47. package/dist/lib/tooling/commands/scan-doc-contract.js.map +1 -0
  48. package/dist/lib/tooling/commands/scan-security-hygiene.d.ts +2 -0
  49. package/dist/lib/tooling/commands/scan-security-hygiene.js +93 -0
  50. package/dist/lib/tooling/commands/scan-security-hygiene.js.map +1 -0
  51. package/dist/lib/tooling/commands/skill-descriptions.d.ts +2 -0
  52. package/dist/lib/tooling/commands/skill-descriptions.js +50 -0
  53. package/dist/lib/tooling/commands/skill-descriptions.js.map +1 -0
  54. package/dist/lib/tooling/commands/summarize-run-status.d.ts +2 -0
  55. package/dist/lib/tooling/commands/summarize-run-status.js +65 -0
  56. package/dist/lib/tooling/commands/summarize-run-status.js.map +1 -0
  57. package/dist/lib/tooling/commands/switch-artifact-language.d.ts +2 -0
  58. package/dist/lib/tooling/commands/switch-artifact-language.js +87 -0
  59. package/dist/lib/tooling/commands/switch-artifact-language.js.map +1 -0
  60. package/dist/lib/tooling/index.d.ts +4 -0
  61. package/dist/lib/tooling/index.js +23 -0
  62. package/dist/lib/tooling/index.js.map +1 -0
  63. package/dist/lib/tooling/registry.d.ts +6 -0
  64. package/dist/lib/tooling/registry.js +56 -0
  65. package/dist/lib/tooling/registry.js.map +1 -0
  66. package/dist/lib/tooling/types.d.ts +19 -0
  67. package/dist/lib/tooling/types.js +10 -0
  68. package/dist/lib/tooling/types.js.map +1 -0
  69. package/dist/lib/webview-studio.d.ts +5 -0
  70. package/dist/lib/webview-studio.js +11 -577
  71. package/dist/lib/webview-studio.js.map +1 -1
  72. package/dist/scripts/prepare-template.js +22 -7
  73. package/dist/scripts/prepare-template.js.map +1 -1
  74. package/package.json +1 -1
  75. package/template/.agents/skills/adopt/SKILL.md +40 -5
  76. package/template/.agents/skills/onboard/SKILL.md +40 -5
  77. package/template/.claude/skills/adopt/SKILL.md +40 -5
  78. package/template/.claude/skills/onboard/SKILL.md +40 -5
  79. package/template/devflow/build-plan.md +9 -0
  80. package/template/devflow/analysis/REQ-20260903-001-sync-upstream-ai-blueprint/codebase-impact.md +0 -46
  81. package/template/devflow/analysis/REQ-20260904-001-sync-upstream-ai-blueprint/codebase-impact.md +0 -47
  82. package/template/devflow/inbox/REQ-20260903-001-sync-upstream-ai-blueprint/clarifications.md +0 -34
  83. package/template/devflow/inbox/REQ-20260903-001-sync-upstream-ai-blueprint/parsed.md +0 -66
  84. package/template/devflow/inbox/REQ-20260903-001-sync-upstream-ai-blueprint/raw/upstream-v152-diff.md +0 -16
  85. package/template/devflow/inbox/REQ-20260904-001-sync-upstream-ai-blueprint/clarifications.md +0 -28
  86. package/template/devflow/inbox/REQ-20260904-001-sync-upstream-ai-blueprint/parsed.md +0 -59
  87. package/template/devflow/inbox/REQ-20260904-001-sync-upstream-ai-blueprint/raw/upstream-diff.txt +0 -23
@@ -0,0 +1,87 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { ToolingError } from "../types.js";
4
+ const VALID_LANGUAGES = new Set(["th", "en"]);
5
+ function updateTemplateLanguage(filePath, language) {
6
+ const content = fs.readFileSync(filePath, "utf8");
7
+ const normalizedContent = content.replace(/^\uFEFF/, "");
8
+ if (!normalizedContent.startsWith("---")) {
9
+ throw new Error(`Template is missing frontmatter: ${filePath}`);
10
+ }
11
+ const frontmatterEnd = normalizedContent.indexOf("\n---", 3);
12
+ if (frontmatterEnd === -1) {
13
+ throw new Error(`Template frontmatter is not closed: ${filePath}`);
14
+ }
15
+ const frontmatter = normalizedContent.slice(0, frontmatterEnd);
16
+ const body = normalizedContent.slice(frontmatterEnd);
17
+ const languagePattern = /^artifact_language:\s*"(th|en)"\s*$/gm;
18
+ const matches = [...frontmatter.matchAll(languagePattern)];
19
+ if (matches.length === 0) {
20
+ throw new Error(`Template is missing artifact_language frontmatter: ${filePath}`);
21
+ }
22
+ let keptLanguage = false;
23
+ const normalizedFrontmatter = frontmatter
24
+ .split(/\r?\n/)
25
+ .filter((line) => {
26
+ if (!/^artifact_language:\s*"(th|en)"\s*$/.test(line))
27
+ return true;
28
+ if (keptLanguage)
29
+ return false;
30
+ keptLanguage = true;
31
+ return true;
32
+ })
33
+ .join("\n");
34
+ const updatedFrontmatter = normalizedFrontmatter.replace(/^artifact_language:\s*"(th|en)"\s*$/m, `artifact_language: "${language}"`);
35
+ const updatedContent = `${updatedFrontmatter}${body}`;
36
+ if (updatedContent === content) {
37
+ return false;
38
+ }
39
+ fs.writeFileSync(filePath, updatedContent, "utf8");
40
+ return true;
41
+ }
42
+ export const switchArtifactLanguageCommand = {
43
+ name: "switch-artifact-language",
44
+ description: "Switch artifact language in schema templates (th or en)",
45
+ async run(args, options = {}) {
46
+ const projectRoot = options.projectRoot ?? options.cwd ?? process.cwd();
47
+ const language = args[0];
48
+ if (!language || !VALID_LANGUAGES.has(language)) {
49
+ throw new ToolingError(`Invalid language: ${language}. Expected one of: ${[...VALID_LANGUAGES].join(", ")}. Usage: switch-artifact-language <th|en> [--schemas-dir <path>]`, 1);
50
+ }
51
+ let schemasDir = path.join(projectRoot, ".agent", "resources", "schemas");
52
+ for (let i = 1; i < args.length; i++) {
53
+ if (args[i] === "--schemas-dir" && args[i + 1]) {
54
+ schemasDir = path.resolve(projectRoot, args[i + 1]);
55
+ i++;
56
+ }
57
+ }
58
+ if (!fs.existsSync(schemasDir)) {
59
+ // In repos where .agent/resources/schemas doesn't exist, check devflow schemas
60
+ return {
61
+ ok: true,
62
+ message: `Schemas directory not found at ${schemasDir} (skipping)`,
63
+ data: { changed: 0, unchanged: 0 },
64
+ };
65
+ }
66
+ const files = fs
67
+ .readdirSync(schemasDir)
68
+ .filter((file) => file.endsWith(".md"))
69
+ .map((file) => path.join(schemasDir, file));
70
+ let changed = 0;
71
+ let unchanged = 0;
72
+ for (const file of files) {
73
+ if (updateTemplateLanguage(file, language)) {
74
+ changed++;
75
+ }
76
+ else {
77
+ unchanged++;
78
+ }
79
+ }
80
+ return {
81
+ ok: true,
82
+ message: `Artifact language set to '${language}' (${changed} updated, ${unchanged} unchanged)`,
83
+ data: { language, changed, unchanged },
84
+ };
85
+ },
86
+ };
87
+ //# sourceMappingURL=switch-artifact-language.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch-artifact-language.js","sourceRoot":"","sources":["../../../../lib/tooling/commands/switch-artifact-language.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type ToolResult, type ToolingOptions } from "./types.js";
2
+ export declare function runTooling(commandName: string, args?: string[], options?: ToolingOptions): Promise<ToolResult>;
3
+ export * from "./types.js";
4
+ export * from "./registry.js";
@@ -0,0 +1,23 @@
1
+ import { ToolingError } from "./types.js";
2
+ import { getToolCommand, listToolCommands } from "./registry.js";
3
+ export async function runTooling(commandName, args = [], options = {}) {
4
+ const trimmed = commandName.trim();
5
+ const command = getToolCommand(trimmed);
6
+ if (!command) {
7
+ const available = listToolCommands().map((c) => c.name).join(", ");
8
+ throw new ToolingError(`Unknown tooling command: ${trimmed}. Available commands: ${available}`, 1);
9
+ }
10
+ try {
11
+ return await command.run(args, options);
12
+ }
13
+ catch (error) {
14
+ if (error instanceof ToolingError) {
15
+ throw error;
16
+ }
17
+ const message = error instanceof Error ? error.message : String(error);
18
+ throw new ToolingError(`Tooling command '${trimmed}' failed: ${message}`, 1);
19
+ }
20
+ }
21
+ export * from "./types.js";
22
+ export * from "./registry.js";
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/tooling/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwC,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,WAAmB,EACnB,OAAiB,EAAE,EACnB,UAA0B,EAAE;IAE5B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAExC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,IAAI,YAAY,CACpB,4BAA4B,OAAO,yBAAyB,SAAS,EAAE,EACvE,CAAC,CACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,YAAY,CAAC,oBAAoB,OAAO,aAAa,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ToolCommand } from "./types.js";
2
+ export declare function registerToolCommand(command: ToolCommand): void;
3
+ export declare function getToolCommand(name: string): ToolCommand | undefined;
4
+ export declare function listToolCommands(): ToolCommand[];
5
+ export declare const helpCommand: ToolCommand;
6
+ export declare const listCommand: ToolCommand;
@@ -0,0 +1,56 @@
1
+ const toolRegistry = new Map();
2
+ export function registerToolCommand(command) {
3
+ toolRegistry.set(command.name, command);
4
+ }
5
+ export function getToolCommand(name) {
6
+ return toolRegistry.get(name);
7
+ }
8
+ export function listToolCommands() {
9
+ return Array.from(toolRegistry.values());
10
+ }
11
+ // Built-in help command
12
+ export const helpCommand = {
13
+ name: "help",
14
+ description: "List all available tooling commands",
15
+ async run() {
16
+ const commands = listToolCommands();
17
+ const commandList = commands
18
+ .map((cmd) => ` • ${cmd.name.padEnd(28)} - ${cmd.description}`)
19
+ .join("\n");
20
+ const message = `Available Tooling Commands:\n${commandList}`;
21
+ return {
22
+ ok: true,
23
+ message,
24
+ data: commands,
25
+ };
26
+ },
27
+ };
28
+ export const listCommand = {
29
+ name: "list",
30
+ description: "Alias for help - list all available tooling commands",
31
+ async run(args, options) {
32
+ return helpCommand.run(args, options);
33
+ },
34
+ };
35
+ import { renderHtmlCommand } from "./commands/render-html.js";
36
+ import { reportHtmlCommand } from "./commands/report-html.js";
37
+ import { switchArtifactLanguageCommand } from "./commands/switch-artifact-language.js";
38
+ import { migrateStageArtifactsCommand } from "./commands/migrate-stage-artifacts.js";
39
+ import { summarizeRunStatusCommand } from "./commands/summarize-run-status.js";
40
+ import { linkProjectCommand } from "./commands/link-project.js";
41
+ import { scanDocContractCommand } from "./commands/scan-doc-contract.js";
42
+ import { scanSecurityHygieneCommand } from "./commands/scan-security-hygiene.js";
43
+ import { skillDescriptionsCommand } from "./commands/skill-descriptions.js";
44
+ // Register built-in commands
45
+ registerToolCommand(helpCommand);
46
+ registerToolCommand(listCommand);
47
+ registerToolCommand(renderHtmlCommand);
48
+ registerToolCommand(reportHtmlCommand);
49
+ registerToolCommand(switchArtifactLanguageCommand);
50
+ registerToolCommand(migrateStageArtifactsCommand);
51
+ registerToolCommand(summarizeRunStatusCommand);
52
+ registerToolCommand(linkProjectCommand);
53
+ registerToolCommand(scanDocContractCommand);
54
+ registerToolCommand(scanSecurityHygieneCommand);
55
+ registerToolCommand(skillDescriptionsCommand);
56
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../lib/tooling/registry.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;AAEpD,MAAM,UAAU,mBAAmB,CAAC,OAAoB;IACtD,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,wBAAwB;AACxB,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,qCAAqC;IAClD,KAAK,CAAC,GAAG;QACP,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,QAAQ;aACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;aAC/D,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,OAAO,GAAG,gCAAgC,WAAW,EAAE,CAAC;QAC9D,OAAO;YACL,EAAE,EAAE,IAAI;YACR,OAAO;YACP,IAAI,EAAE,QAAQ;SACf,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,sDAAsD;IACnE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO;QACrB,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;CACF,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,6BAA6B;AAC7B,mBAAmB,CAAC,WAAW,CAAC,CAAC;AACjC,mBAAmB,CAAC,WAAW,CAAC,CAAC;AACjC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AACvC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AACvC,mBAAmB,CAAC,6BAA6B,CAAC,CAAC;AACnD,mBAAmB,CAAC,4BAA4B,CAAC,CAAC;AAClD,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;AAC/C,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;AACxC,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;AAC5C,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;AAChD,mBAAmB,CAAC,wBAAwB,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ export interface ToolResult<T = unknown> {
2
+ ok: boolean;
3
+ message?: string;
4
+ data?: T;
5
+ }
6
+ export interface ToolingOptions {
7
+ cwd?: string;
8
+ projectRoot?: string;
9
+ silent?: boolean;
10
+ }
11
+ export interface ToolCommand<T = unknown> {
12
+ name: string;
13
+ description: string;
14
+ run: (args: string[], options?: ToolingOptions) => Promise<ToolResult<T>>;
15
+ }
16
+ export declare class ToolingError extends Error {
17
+ readonly exitCode: number;
18
+ constructor(message: string, exitCode?: number);
19
+ }
@@ -0,0 +1,10 @@
1
+ export class ToolingError extends Error {
2
+ exitCode;
3
+ constructor(message, exitCode = 1) {
4
+ super(message);
5
+ this.name = "ToolingError";
6
+ this.exitCode = exitCode;
7
+ Object.setPrototypeOf(this, ToolingError.prototype);
8
+ }
9
+ }
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/tooling/types.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrB,QAAQ,CAAS;IAEjC,YAAY,OAAe,EAAE,WAAmB,CAAC;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;CACF"}
@@ -1,8 +1,13 @@
1
+ import { DashboardStateEngine } from "./dashboard-engine.js";
2
+ import { StudioViewRenderer } from "./studio-view-renderer.js";
1
3
  export interface StudioRenderOptions {
2
4
  theme?: "auto" | "dark" | "light";
3
5
  includeScripts?: boolean;
6
+ engine?: DashboardStateEngine;
4
7
  }
5
8
  /**
6
9
  * Renders a self-contained, interactive Webview Studio HTML page.
10
+ * Delegates to StudioViewRenderer.
7
11
  */
8
12
  export declare function renderStudioHtml(projectRoot: string, options?: StudioRenderOptions): Promise<string>;
13
+ export { StudioViewRenderer };