@womp/spark-agent 4.0.1 → 4.1.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 (36) hide show
  1. package/.env.example +6 -0
  2. package/README.md +67 -59
  3. package/dist/agent-tools.js +49 -7
  4. package/dist/capabilities/geometry.js +18 -14
  5. package/dist/capabilities/operations.js +13 -9
  6. package/dist/capabilities/scene.js +8 -8
  7. package/dist/generated/account-declarations.d.ts +1 -1
  8. package/dist/generated/account-declarations.js +1 -1
  9. package/dist/generated/asset-import-declarations.d.ts +1 -1
  10. package/dist/generated/asset-import-declarations.js +1 -1
  11. package/dist/generated/assets-declarations.d.ts +1 -1
  12. package/dist/generated/assets-declarations.js +1 -1
  13. package/dist/generated/flow-declarations.d.ts +1 -1
  14. package/dist/generated/flow-declarations.js +1 -1
  15. package/dist/generated/geometry-declarations.d.ts +1 -1
  16. package/dist/generated/geometry-declarations.js +1 -1
  17. package/dist/generated/knowledge-declarations.d.ts +1 -1
  18. package/dist/generated/knowledge-declarations.js +1 -1
  19. package/dist/generated/openscad-declarations.d.ts +1 -1
  20. package/dist/generated/openscad-declarations.js +1 -1
  21. package/dist/generated/operations-declarations.d.ts +1 -1
  22. package/dist/generated/operations-declarations.js +1 -1
  23. package/dist/generated/scene-declarations.d.ts +1 -1
  24. package/dist/generated/scene-declarations.js +1 -1
  25. package/dist/geometry/lower.js +3 -1
  26. package/dist/geometry/schemas/flowir-dialect.json +53 -9
  27. package/dist/geometry.js +2 -1
  28. package/dist/model-history.js +1 -1
  29. package/dist/prompt.d.ts +1 -1
  30. package/dist/prompt.js +57 -53
  31. package/dist/server/service.js +14 -16
  32. package/dist/tool-input-label.d.ts +2 -0
  33. package/dist/tool-input-label.js +39 -0
  34. package/dist/ui.d.ts +14 -0
  35. package/dist/ui.js +1 -0
  36. package/package.json +1 -1
@@ -1,3 +1,3 @@
1
1
  // Generated by scripts/generate-skill-declarations.mjs.
2
2
  // prettier-ignore
3
- export const WOMP_ASSET_IMPORT_DECLARATIONS = "declare const womp: { assets: {\n\"importMesh\": ((request: {\n\"key\": string;\n\"source\": {\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n};\n\"destination\": \"scene\" | \"library\";\n}) => Promise<{\n\"key\": string;\n\"status\": \"processing\" | \"ready\" | \"completed\" | \"partial\" | \"cancelled\" | \"failed\" | \"unknown\";\n\"tasks\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"status\": string;\n\"fileName\"?: undefined | string;\n\"error\"?: undefined | string;\n}>;\n\"assets\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"type\": \"mesh\" | \"field\" | \"decal\";\n}>;\n\"objectIds\": Array<number>;\n\"omittedFiles\"?: undefined | Array<{\n\"fileName\": string;\n\"projectId\": null | number;\n}>;\n\"reason\"?: undefined | string;\n}>);\n\"retryMeshImport\": ((request: {\n\"key\": string;\n\"fileName\": string;\n}) => Promise<{\n\"key\": string;\n\"status\": \"processing\" | \"ready\" | \"completed\" | \"partial\" | \"cancelled\" | \"failed\" | \"unknown\";\n\"tasks\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"status\": string;\n\"fileName\"?: undefined | string;\n\"error\"?: undefined | string;\n}>;\n\"assets\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"type\": \"mesh\" | \"field\" | \"decal\";\n}>;\n\"objectIds\": Array<number>;\n\"omittedFiles\"?: undefined | Array<{\n\"fileName\": string;\n\"projectId\": null | number;\n}>;\n\"reason\"?: undefined | string;\n}>);\n\"importImage\": ((request: {\n\"key\": string;\n\"source\": {\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n};\n\"destination\": \"scene\" | \"library\";\n} & {\n\"kind\": \"image-plane\" | \"sticker\";\n\"removeBackground\"?: undefined | false | true;\n}) => Promise<{\n\"key\": string;\n\"status\": \"processing\" | \"ready\" | \"completed\" | \"partial\" | \"cancelled\" | \"failed\" | \"unknown\";\n\"tasks\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"status\": string;\n\"fileName\"?: undefined | string;\n\"error\"?: undefined | string;\n}>;\n\"assets\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"type\": \"mesh\" | \"field\" | \"decal\";\n}>;\n\"objectIds\": Array<number>;\n\"omittedFiles\"?: undefined | Array<{\n\"fileName\": string;\n\"projectId\": null | number;\n}>;\n\"reason\"?: undefined | string;\n}>);\n\"readImport\": ((key: string) => Promise<{\n\"key\": string;\n\"status\": \"processing\" | \"ready\" | \"completed\" | \"partial\" | \"cancelled\" | \"failed\" | \"unknown\";\n\"tasks\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"status\": string;\n\"fileName\"?: undefined | string;\n\"error\"?: undefined | string;\n}>;\n\"assets\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"type\": \"mesh\" | \"field\" | \"decal\";\n}>;\n\"objectIds\": Array<number>;\n\"omittedFiles\"?: undefined | Array<{\n\"fileName\": string;\n\"projectId\": null | number;\n}>;\n\"reason\"?: undefined | string;\n}>);\n\"finishImport\": ((key: string, options?: undefined | {\n\"timeoutMs\"?: undefined | number;\n}) => Promise<{\n\"key\": string;\n\"status\": \"processing\" | \"ready\" | \"completed\" | \"partial\" | \"cancelled\" | \"failed\" | \"unknown\";\n\"tasks\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"status\": string;\n\"fileName\"?: undefined | string;\n\"error\"?: undefined | string;\n}>;\n\"assets\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"type\": \"mesh\" | \"field\" | \"decal\";\n}>;\n\"objectIds\": Array<number>;\n\"omittedFiles\"?: undefined | Array<{\n\"fileName\": string;\n\"projectId\": null | number;\n}>;\n\"reason\"?: undefined | string;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
3
+ export const WOMP_ASSET_IMPORT_DECLARATIONS = "declare const womp: { assets: {\n\"importMesh\": ((request: {\n\"key\": string;\n\"source\": {\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n};\n\"destination\": \"scene\" | \"library\";\n}) => Promise<{\n\"key\": string;\n\"status\": \"processing\" | \"ready\" | \"completed\" | \"partial\" | \"cancelled\" | \"failed\" | \"unknown\";\n\"tasks\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"status\": string;\n\"fileName\"?: undefined | string;\n\"error\"?: undefined | string;\n}>;\n\"assets\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"type\": \"mesh\" | \"field\" | \"decal\";\n}>;\n\"objectIds\": Array<number>;\n\"omittedFiles\"?: undefined | Array<{\n\"fileName\": string;\n\"projectId\": null | number;\n}>;\n\"reason\"?: undefined | string;\n}>);\n\"retryMeshImport\": ((request: {\n\"key\": string;\n\"fileName\": string;\n}) => Promise<{\n\"key\": string;\n\"status\": \"processing\" | \"ready\" | \"completed\" | \"partial\" | \"cancelled\" | \"failed\" | \"unknown\";\n\"tasks\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"status\": string;\n\"fileName\"?: undefined | string;\n\"error\"?: undefined | string;\n}>;\n\"assets\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"type\": \"mesh\" | \"field\" | \"decal\";\n}>;\n\"objectIds\": Array<number>;\n\"omittedFiles\"?: undefined | Array<{\n\"fileName\": string;\n\"projectId\": null | number;\n}>;\n\"reason\"?: undefined | string;\n}>);\n\"importImage\": ((request: {\n\"key\": string;\n\"source\": {\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n};\n\"destination\": \"scene\" | \"library\";\n} & {\n\"kind\": \"image-plane\" | \"sticker\";\n\"removeBackground\"?: undefined | false | true;\n}) => Promise<{\n\"key\": string;\n\"status\": \"processing\" | \"ready\" | \"completed\" | \"partial\" | \"cancelled\" | \"failed\" | \"unknown\";\n\"tasks\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"status\": string;\n\"fileName\"?: undefined | string;\n\"error\"?: undefined | string;\n}>;\n\"assets\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"type\": \"mesh\" | \"field\" | \"decal\";\n}>;\n\"objectIds\": Array<number>;\n\"omittedFiles\"?: undefined | Array<{\n\"fileName\": string;\n\"projectId\": null | number;\n}>;\n\"reason\"?: undefined | string;\n}>);\n\"readImport\": ((key: string) => Promise<{\n\"key\": string;\n\"status\": \"processing\" | \"ready\" | \"completed\" | \"partial\" | \"cancelled\" | \"failed\" | \"unknown\";\n\"tasks\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"status\": string;\n\"fileName\"?: undefined | string;\n\"error\"?: undefined | string;\n}>;\n\"assets\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"type\": \"mesh\" | \"field\" | \"decal\";\n}>;\n\"objectIds\": Array<number>;\n\"omittedFiles\"?: undefined | Array<{\n\"fileName\": string;\n\"projectId\": null | number;\n}>;\n\"reason\"?: undefined | string;\n}>);\n\"finishImport\": ((key: string, options?: undefined | {\n\"timeoutMs\"?: undefined | number;\n}) => Promise<{\n\"key\": string;\n\"status\": \"processing\" | \"ready\" | \"completed\" | \"partial\" | \"cancelled\" | \"failed\" | \"unknown\";\n\"tasks\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"status\": string;\n\"fileName\"?: undefined | string;\n\"error\"?: undefined | string;\n}>;\n\"assets\": Array<{\n\"id\": number;\n\"projectId\": null | number;\n\"type\": \"mesh\" | \"field\" | \"decal\";\n}>;\n\"objectIds\": Array<number>;\n\"omittedFiles\"?: undefined | Array<{\n\"fileName\": string;\n\"projectId\": null | number;\n}>;\n\"reason\"?: undefined | string;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }, options?: { inspect?: boolean }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
@@ -1 +1 @@
1
- export declare const WOMP_ASSETS_DECLARATIONS = "declare const womp: { assets: {\n\"list\": ((options?: undefined | {\n\"from\"?: undefined | number;\n\"count\"?: undefined | number;\n\"messageId\"?: undefined | number;\n\"kind\"?: undefined | \"mesh\" | \"image\" | \"file\";\n\"source\"?: undefined | \"uploaded\" | \"input\" | \"generated\" | \"agent\";\n}) => Promise<{\n\"items\": Array<{\n\"artifact\": {\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n};\n\"messageId\": number;\n\"kind\": \"mesh\" | \"image\" | \"file\";\n\"source\": \"uploaded\" | \"input\" | \"generated\" | \"agent\";\n}>;\n\"nextFrom\": null | number;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
1
+ export declare const WOMP_ASSETS_DECLARATIONS = "declare const womp: { assets: {\n\"list\": ((options?: undefined | {\n\"from\"?: undefined | number;\n\"count\"?: undefined | number;\n\"messageId\"?: undefined | number;\n\"kind\"?: undefined | \"mesh\" | \"image\" | \"file\";\n\"source\"?: undefined | \"uploaded\" | \"input\" | \"generated\" | \"agent\";\n}) => Promise<{\n\"items\": Array<{\n\"artifact\": {\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n};\n\"messageId\": number;\n\"kind\": \"mesh\" | \"image\" | \"file\";\n\"source\": \"uploaded\" | \"input\" | \"generated\" | \"agent\";\n}>;\n\"nextFrom\": null | number;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }, options?: { inspect?: boolean }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
@@ -1,3 +1,3 @@
1
1
  // Generated by scripts/generate-skill-declarations.mjs.
2
2
  // prettier-ignore
3
- export const WOMP_ASSETS_DECLARATIONS = "declare const womp: { assets: {\n\"list\": ((options?: undefined | {\n\"from\"?: undefined | number;\n\"count\"?: undefined | number;\n\"messageId\"?: undefined | number;\n\"kind\"?: undefined | \"mesh\" | \"image\" | \"file\";\n\"source\"?: undefined | \"uploaded\" | \"input\" | \"generated\" | \"agent\";\n}) => Promise<{\n\"items\": Array<{\n\"artifact\": {\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n};\n\"messageId\": number;\n\"kind\": \"mesh\" | \"image\" | \"file\";\n\"source\": \"uploaded\" | \"input\" | \"generated\" | \"agent\";\n}>;\n\"nextFrom\": null | number;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
3
+ export const WOMP_ASSETS_DECLARATIONS = "declare const womp: { assets: {\n\"list\": ((options?: undefined | {\n\"from\"?: undefined | number;\n\"count\"?: undefined | number;\n\"messageId\"?: undefined | number;\n\"kind\"?: undefined | \"mesh\" | \"image\" | \"file\";\n\"source\"?: undefined | \"uploaded\" | \"input\" | \"generated\" | \"agent\";\n}) => Promise<{\n\"items\": Array<{\n\"artifact\": {\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n};\n\"messageId\": number;\n\"kind\": \"mesh\" | \"image\" | \"file\";\n\"source\": \"uploaded\" | \"input\" | \"generated\" | \"agent\";\n}>;\n\"nextFrom\": null | number;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }, options?: { inspect?: boolean }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
@@ -1 +1 @@
1
- export declare const WOMP_FLOW_DECLARATIONS = "declare const womp: { flow: {\n\"read\": (() => Promise<{\n\"flowId\": string;\n\"source\": null | string;\n\"revision\": string;\n\"preservedInputs\": {\n[key: string]: Array<string>;\n};\n\"diagnostics\": Array<string>;\n}>);\n\"write\": ((options: {\n\"source\": string;\n\"expectedRevision\": string;\n}) => Promise<{\n\"status\": \"applied\" | \"rejected\" | \"unchanged\";\n\"flowId\": string;\n\"revision\": string;\n\"diagnostics\": Array<string>;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
1
+ export declare const WOMP_FLOW_DECLARATIONS = "declare const womp: { flow: {\n\"read\": (() => Promise<{\n\"flowId\": string;\n\"source\": null | string;\n\"revision\": string;\n\"preservedInputs\": {\n[key: string]: Array<string>;\n};\n\"diagnostics\": Array<string>;\n}>);\n\"write\": ((options: {\n\"source\": string;\n\"expectedRevision\": string;\n}) => Promise<{\n\"status\": \"applied\" | \"rejected\" | \"unchanged\";\n\"flowId\": string;\n\"revision\": string;\n\"diagnostics\": Array<string>;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }, options?: { inspect?: boolean }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
@@ -1,3 +1,3 @@
1
1
  // Generated by scripts/generate-skill-declarations.mjs.
2
2
  // prettier-ignore
3
- export const WOMP_FLOW_DECLARATIONS = "declare const womp: { flow: {\n\"read\": (() => Promise<{\n\"flowId\": string;\n\"source\": null | string;\n\"revision\": string;\n\"preservedInputs\": {\n[key: string]: Array<string>;\n};\n\"diagnostics\": Array<string>;\n}>);\n\"write\": ((options: {\n\"source\": string;\n\"expectedRevision\": string;\n}) => Promise<{\n\"status\": \"applied\" | \"rejected\" | \"unchanged\";\n\"flowId\": string;\n\"revision\": string;\n\"diagnostics\": Array<string>;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
3
+ export const WOMP_FLOW_DECLARATIONS = "declare const womp: { flow: {\n\"read\": (() => Promise<{\n\"flowId\": string;\n\"source\": null | string;\n\"revision\": string;\n\"preservedInputs\": {\n[key: string]: Array<string>;\n};\n\"diagnostics\": Array<string>;\n}>);\n\"write\": ((options: {\n\"source\": string;\n\"expectedRevision\": string;\n}) => Promise<{\n\"status\": \"applied\" | \"rejected\" | \"unchanged\";\n\"flowId\": string;\n\"revision\": string;\n\"diagnostics\": Array<string>;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }, options?: { inspect?: boolean }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
@@ -1 +1 @@
1
- export declare const WOMP_GEOMETRY_DECLARATIONS = "declare const womp: { geometry: {\n\"read\": ((objectId: number) => Promise<{\n\"kind\": \"container\" | \"graph\";\n\"objectId\": number;\n\"title\": string;\n\"graphId\"?: undefined | number;\n\"instanceId\"?: undefined | number;\n\"source\": null | string;\n\"instances\": Array<{\n\"instanceId\": number;\n\"objectIds\": Array<number>;\n\"params\": {\n[key: string]: number | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n};\n}>;\n\"revision\": string;\n\"diagnostics\": Array<string>;\n}>);\n\"write\": ((options: {\n\"objectId\": number;\n\"source\": string;\n\"expectedRevision\": string;\n}) => Promise<{\n\"status\": \"applied\" | \"rejected\";\n\"objectId\": number;\n\"graphId\"?: undefined | number;\n\"instanceId\"?: undefined | number;\n\"affectedObjectIds\": Array<number>;\n\"revision\": string;\n\"diagnostics\": Array<string>;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
1
+ export declare const WOMP_GEOMETRY_DECLARATIONS = "declare const womp: { geometry: {\n\"read\": ((objectId: number) => Promise<{\n\"kind\": \"container\" | \"graph\";\n\"objectId\": number;\n\"title\": string;\n\"graphId\"?: undefined | number;\n\"instanceId\"?: undefined | number;\n\"source\": null | string;\n\"instances\": Array<{\n\"instanceId\": number;\n\"objectIds\": Array<number>;\n\"params\": {\n[key: string]: number | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n};\n}>;\n\"revision\": string;\n\"diagnostics\": Array<string>;\n}>);\n\"write\": ((options: {\n\"objectId\": number;\n\"source\": string;\n\"expectedRevision\": string;\n}) => Promise<{\n\"status\": \"applied\" | \"rejected\";\n\"objectId\": number;\n\"graphId\"?: undefined | number;\n\"instanceId\"?: undefined | number;\n\"affectedObjectIds\": Array<number>;\n\"revision\": string;\n\"diagnostics\": Array<string>;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }, options?: { inspect?: boolean }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
@@ -1,3 +1,3 @@
1
1
  // Generated by scripts/generate-skill-declarations.mjs.
2
2
  // prettier-ignore
3
- export const WOMP_GEOMETRY_DECLARATIONS = "declare const womp: { geometry: {\n\"read\": ((objectId: number) => Promise<{\n\"kind\": \"container\" | \"graph\";\n\"objectId\": number;\n\"title\": string;\n\"graphId\"?: undefined | number;\n\"instanceId\"?: undefined | number;\n\"source\": null | string;\n\"instances\": Array<{\n\"instanceId\": number;\n\"objectIds\": Array<number>;\n\"params\": {\n[key: string]: number | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n};\n}>;\n\"revision\": string;\n\"diagnostics\": Array<string>;\n}>);\n\"write\": ((options: {\n\"objectId\": number;\n\"source\": string;\n\"expectedRevision\": string;\n}) => Promise<{\n\"status\": \"applied\" | \"rejected\";\n\"objectId\": number;\n\"graphId\"?: undefined | number;\n\"instanceId\"?: undefined | number;\n\"affectedObjectIds\": Array<number>;\n\"revision\": string;\n\"diagnostics\": Array<string>;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
3
+ export const WOMP_GEOMETRY_DECLARATIONS = "declare const womp: { geometry: {\n\"read\": ((objectId: number) => Promise<{\n\"kind\": \"container\" | \"graph\";\n\"objectId\": number;\n\"title\": string;\n\"graphId\"?: undefined | number;\n\"instanceId\"?: undefined | number;\n\"source\": null | string;\n\"instances\": Array<{\n\"instanceId\": number;\n\"objectIds\": Array<number>;\n\"params\": {\n[key: string]: number | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n};\n}>;\n\"revision\": string;\n\"diagnostics\": Array<string>;\n}>);\n\"write\": ((options: {\n\"objectId\": number;\n\"source\": string;\n\"expectedRevision\": string;\n}) => Promise<{\n\"status\": \"applied\" | \"rejected\";\n\"objectId\": number;\n\"graphId\"?: undefined | number;\n\"instanceId\"?: undefined | number;\n\"affectedObjectIds\": Array<number>;\n\"revision\": string;\n\"diagnostics\": Array<string>;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }, options?: { inspect?: boolean }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
@@ -1 +1 @@
1
- export declare const WOMP_KNOWLEDGE_DECLARATIONS = "declare const womp: { knowledge: {\n\"search\": ((query: string) => Promise<{\n\"answer\": string;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
1
+ export declare const WOMP_KNOWLEDGE_DECLARATIONS = "declare const womp: { knowledge: {\n\"search\": ((query: string) => Promise<{\n\"answer\": string;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }, options?: { inspect?: boolean }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
@@ -1,3 +1,3 @@
1
1
  // Generated by scripts/generate-skill-declarations.mjs.
2
2
  // prettier-ignore
3
- export const WOMP_KNOWLEDGE_DECLARATIONS = "declare const womp: { knowledge: {\n\"search\": ((query: string) => Promise<{\n\"answer\": string;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
3
+ export const WOMP_KNOWLEDGE_DECLARATIONS = "declare const womp: { knowledge: {\n\"search\": ((query: string) => Promise<{\n\"answer\": string;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }, options?: { inspect?: boolean }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
@@ -1 +1 @@
1
- export declare const WOMP_OPENSCAD_DECLARATIONS = "declare const womp: { openscad: {\n\"read\": ((objectId: number) => Promise<{\n\"kind\": \"part\" | \"container\";\n\"objectId\": number;\n\"parentId\": number;\n\"title\": string;\n\"source\": null | string;\n\"params\": {\n[key: string]: unknown;\n};\n\"revision\": string;\n}>);\n\"create\": ((options: {\n\"source\": string;\n\"title\": string;\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n\"expectedRevision\": string;\n} & {\n\"parentId\": number;\n}) => Promise<{\n\"status\": \"applied\" | \"rejected\";\n\"objectId\"?: undefined | number;\n\"revision\": string;\n\"validation\": {\n\"status\": \"unavailable\" | \"valid\" | \"invalid\";\n\"error\"?: undefined | string;\n\"warnings\": Array<string>;\n};\n\"printability\"?: undefined | {\n\"status\": \"failed\" | \"unavailable\" | \"passed\";\n\"objectIds\": Array<number>;\n\"maxThinPercentage\": number;\n\"thinPercentage\"?: undefined | number;\n\"reason\"?: undefined | string;\n};\n\"repairAttempts\": number;\n\"repairLimit\": number;\n}>);\n\"update\": ((options: {\n\"source\": string;\n\"title\": string;\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n\"expectedRevision\": string;\n} & {\n\"objectId\": number;\n}) => Promise<{\n\"status\": \"applied\" | \"rejected\";\n\"objectId\"?: undefined | number;\n\"revision\": string;\n\"validation\": {\n\"status\": \"unavailable\" | \"valid\" | \"invalid\";\n\"error\"?: undefined | string;\n\"warnings\": Array<string>;\n};\n\"printability\"?: undefined | {\n\"status\": \"failed\" | \"unavailable\" | \"passed\";\n\"objectIds\": Array<number>;\n\"maxThinPercentage\": number;\n\"thinPercentage\"?: undefined | number;\n\"reason\"?: undefined | string;\n};\n\"repairAttempts\": number;\n\"repairLimit\": number;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
1
+ export declare const WOMP_OPENSCAD_DECLARATIONS = "declare const womp: { openscad: {\n\"read\": ((objectId: number) => Promise<{\n\"kind\": \"part\" | \"container\";\n\"objectId\": number;\n\"parentId\": number;\n\"title\": string;\n\"source\": null | string;\n\"params\": {\n[key: string]: unknown;\n};\n\"revision\": string;\n}>);\n\"create\": ((options: {\n\"source\": string;\n\"title\": string;\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n\"expectedRevision\": string;\n} & {\n\"parentId\": number;\n}) => Promise<{\n\"status\": \"applied\" | \"rejected\";\n\"objectId\"?: undefined | number;\n\"revision\": string;\n\"validation\": {\n\"status\": \"unavailable\" | \"valid\" | \"invalid\";\n\"error\"?: undefined | string;\n\"warnings\": Array<string>;\n};\n\"printability\"?: undefined | {\n\"status\": \"failed\" | \"unavailable\" | \"passed\";\n\"objectIds\": Array<number>;\n\"maxThinPercentage\": number;\n\"thinPercentage\"?: undefined | number;\n\"reason\"?: undefined | string;\n};\n\"repairAttempts\": number;\n\"repairLimit\": number;\n}>);\n\"update\": ((options: {\n\"source\": string;\n\"title\": string;\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n\"expectedRevision\": string;\n} & {\n\"objectId\": number;\n}) => Promise<{\n\"status\": \"applied\" | \"rejected\";\n\"objectId\"?: undefined | number;\n\"revision\": string;\n\"validation\": {\n\"status\": \"unavailable\" | \"valid\" | \"invalid\";\n\"error\"?: undefined | string;\n\"warnings\": Array<string>;\n};\n\"printability\"?: undefined | {\n\"status\": \"failed\" | \"unavailable\" | \"passed\";\n\"objectIds\": Array<number>;\n\"maxThinPercentage\": number;\n\"thinPercentage\"?: undefined | number;\n\"reason\"?: undefined | string;\n};\n\"repairAttempts\": number;\n\"repairLimit\": number;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }, options?: { inspect?: boolean }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
@@ -1,3 +1,3 @@
1
1
  // Generated by scripts/generate-skill-declarations.mjs.
2
2
  // prettier-ignore
3
- export const WOMP_OPENSCAD_DECLARATIONS = "declare const womp: { openscad: {\n\"read\": ((objectId: number) => Promise<{\n\"kind\": \"part\" | \"container\";\n\"objectId\": number;\n\"parentId\": number;\n\"title\": string;\n\"source\": null | string;\n\"params\": {\n[key: string]: unknown;\n};\n\"revision\": string;\n}>);\n\"create\": ((options: {\n\"source\": string;\n\"title\": string;\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n\"expectedRevision\": string;\n} & {\n\"parentId\": number;\n}) => Promise<{\n\"status\": \"applied\" | \"rejected\";\n\"objectId\"?: undefined | number;\n\"revision\": string;\n\"validation\": {\n\"status\": \"unavailable\" | \"valid\" | \"invalid\";\n\"error\"?: undefined | string;\n\"warnings\": Array<string>;\n};\n\"printability\"?: undefined | {\n\"status\": \"failed\" | \"unavailable\" | \"passed\";\n\"objectIds\": Array<number>;\n\"maxThinPercentage\": number;\n\"thinPercentage\"?: undefined | number;\n\"reason\"?: undefined | string;\n};\n\"repairAttempts\": number;\n\"repairLimit\": number;\n}>);\n\"update\": ((options: {\n\"source\": string;\n\"title\": string;\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n\"expectedRevision\": string;\n} & {\n\"objectId\": number;\n}) => Promise<{\n\"status\": \"applied\" | \"rejected\";\n\"objectId\"?: undefined | number;\n\"revision\": string;\n\"validation\": {\n\"status\": \"unavailable\" | \"valid\" | \"invalid\";\n\"error\"?: undefined | string;\n\"warnings\": Array<string>;\n};\n\"printability\"?: undefined | {\n\"status\": \"failed\" | \"unavailable\" | \"passed\";\n\"objectIds\": Array<number>;\n\"maxThinPercentage\": number;\n\"thinPercentage\"?: undefined | number;\n\"reason\"?: undefined | string;\n};\n\"repairAttempts\": number;\n\"repairLimit\": number;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
3
+ export const WOMP_OPENSCAD_DECLARATIONS = "declare const womp: { openscad: {\n\"read\": ((objectId: number) => Promise<{\n\"kind\": \"part\" | \"container\";\n\"objectId\": number;\n\"parentId\": number;\n\"title\": string;\n\"source\": null | string;\n\"params\": {\n[key: string]: unknown;\n};\n\"revision\": string;\n}>);\n\"create\": ((options: {\n\"source\": string;\n\"title\": string;\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n\"expectedRevision\": string;\n} & {\n\"parentId\": number;\n}) => Promise<{\n\"status\": \"applied\" | \"rejected\";\n\"objectId\"?: undefined | number;\n\"revision\": string;\n\"validation\": {\n\"status\": \"unavailable\" | \"valid\" | \"invalid\";\n\"error\"?: undefined | string;\n\"warnings\": Array<string>;\n};\n\"printability\"?: undefined | {\n\"status\": \"failed\" | \"unavailable\" | \"passed\";\n\"objectIds\": Array<number>;\n\"maxThinPercentage\": number;\n\"thinPercentage\"?: undefined | number;\n\"reason\"?: undefined | string;\n};\n\"repairAttempts\": number;\n\"repairLimit\": number;\n}>);\n\"update\": ((options: {\n\"source\": string;\n\"title\": string;\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n\"expectedRevision\": string;\n} & {\n\"objectId\": number;\n}) => Promise<{\n\"status\": \"applied\" | \"rejected\";\n\"objectId\"?: undefined | number;\n\"revision\": string;\n\"validation\": {\n\"status\": \"unavailable\" | \"valid\" | \"invalid\";\n\"error\"?: undefined | string;\n\"warnings\": Array<string>;\n};\n\"printability\"?: undefined | {\n\"status\": \"failed\" | \"unavailable\" | \"passed\";\n\"objectIds\": Array<number>;\n\"maxThinPercentage\": number;\n\"thinPercentage\"?: undefined | number;\n\"reason\"?: undefined | string;\n};\n\"repairAttempts\": number;\n\"repairLimit\": number;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }, options?: { inspect?: boolean }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
@@ -1 +1 @@
1
- export declare const WOMP_OPERATIONS_DECLARATIONS = "declare const womp: { operations: {\n\"catalog\": (() => Promise<{\n\"models\": Array<{\n\"id\": string;\n\"name\": string;\n\"description\"?: undefined | string;\n\"requiresSubscription\": false | true;\n\"operations\": Array<\"text-to-image\" | \"image-to-image\" | \"text-to-mesh\" | \"image-to-mesh\" | \"upscale-image\" | \"remove-image-background\">;\n}>;\n\"defaults\": {\n\"image\"?: undefined | string;\n\"editing\"?: undefined | string;\n\"mesh\"?: undefined | string;\n};\n\"confirmationRequired\": false | true;\n}>);\n\"list\": ((options?: undefined | {\n\"from\"?: undefined | number;\n\"count\"?: undefined | number;\n}) => Promise<{\n\"jobs\": Array<{\n\"messageId\": number;\n\"operationId\"?: undefined | number;\n\"type\": \"text-to-image\" | \"image-to-image\" | \"text-to-mesh\" | \"image-to-mesh\" | \"upscale-image\" | \"remove-image-background\";\n\"status\": \"completed\" | \"cancelled\" | \"failed\" | \"submitted\" | \"not_ready\" | \"queued\" | \"running\" | \"waiting_for_capacity\";\n\"outputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"error\"?: undefined | string;\n}>;\n\"nextFrom\": null | number;\n}>);\n\"generate\": ((request: {\n\"key\": string;\n} & {\n\"type\": \"text-to-image\";\n\"prompt\": string;\n\"pipeline\"?: undefined | string;\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n} | {\n\"key\": string;\n} & {\n\"type\": \"image-to-image\";\n\"inputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"prompt\"?: undefined | string;\n\"pipeline\"?: undefined | string;\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n} | {\n\"key\": string;\n} & {\n\"type\": \"text-to-mesh\";\n\"prompt\": string;\n\"pipeline\"?: undefined | string;\n\"workflow\"?: undefined | string;\n\"imageParams\"?: undefined | {\n[key: string]: unknown;\n};\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n} | {\n\"key\": string;\n} & {\n\"type\": \"image-to-mesh\";\n\"inputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"prompt\"?: undefined | string;\n\"pipeline\"?: undefined | string;\n\"workflow\"?: undefined | string;\n\"imageParams\"?: undefined | {\n[key: string]: unknown;\n};\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n} | {\n\"key\": string;\n} & {\n\"type\": \"upscale-image\";\n\"inputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"scale\"?: undefined | number;\n\"modelName\"?: undefined | string;\n} | {\n\"key\": string;\n} & {\n\"type\": \"remove-image-background\";\n\"inputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n}) => Promise<{\n\"status\": \"completed\" | \"cancelled\" | \"failed\";\n\"job\": {\n\"messageId\": number;\n\"operationId\"?: undefined | number;\n\"type\": \"text-to-image\" | \"image-to-image\" | \"text-to-mesh\" | \"image-to-mesh\" | \"upscale-image\" | \"remove-image-background\";\n\"status\": \"completed\" | \"cancelled\" | \"failed\" | \"submitted\" | \"not_ready\" | \"queued\" | \"running\" | \"waiting_for_capacity\";\n\"outputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"error\"?: undefined | string;\n};\n} | {\n\"status\": \"cancelled\";\n\"reason\": string;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
1
+ export declare const WOMP_OPERATIONS_DECLARATIONS = "declare const womp: { operations: {\n\"catalog\": (() => Promise<{\n\"models\": Array<{\n\"id\": string;\n\"name\": string;\n\"description\"?: undefined | string;\n\"requiresSubscription\": false | true;\n\"operations\": Array<\"text-to-image\" | \"image-to-image\" | \"text-to-mesh\" | \"image-to-mesh\" | \"upscale-image\" | \"remove-image-background\">;\n}>;\n\"defaults\": {\n\"image\"?: undefined | string;\n\"editing\"?: undefined | string;\n\"mesh\"?: undefined | string;\n};\n\"confirmationRequired\": false | true;\n}>);\n\"list\": ((options?: undefined | {\n\"from\"?: undefined | number;\n\"count\"?: undefined | number;\n}) => Promise<{\n\"jobs\": Array<{\n\"messageId\": number;\n\"operationId\"?: undefined | number;\n\"type\": \"text-to-image\" | \"image-to-image\" | \"text-to-mesh\" | \"image-to-mesh\" | \"upscale-image\" | \"remove-image-background\";\n\"status\": \"completed\" | \"cancelled\" | \"failed\" | \"submitted\" | \"not_ready\" | \"queued\" | \"running\" | \"waiting_for_capacity\";\n\"outputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"error\"?: undefined | string;\n}>;\n\"nextFrom\": null | number;\n}>);\n\"generate\": ((request: {\n\"key\": string;\n} & {\n\"type\": \"text-to-image\";\n\"prompt\": string;\n\"pipeline\"?: undefined | string;\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n} | {\n\"key\": string;\n} & {\n\"type\": \"image-to-image\";\n\"inputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"prompt\"?: undefined | string;\n\"pipeline\"?: undefined | string;\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n} | {\n\"key\": string;\n} & {\n\"type\": \"text-to-mesh\";\n\"prompt\": string;\n\"pipeline\"?: undefined | string;\n\"workflow\"?: undefined | string;\n\"imageParams\"?: undefined | {\n[key: string]: unknown;\n};\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n} | {\n\"key\": string;\n} & {\n\"type\": \"image-to-mesh\";\n\"inputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"prompt\"?: undefined | string;\n\"pipeline\"?: undefined | string;\n\"workflow\"?: undefined | string;\n\"imageParams\"?: undefined | {\n[key: string]: unknown;\n};\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n} | {\n\"key\": string;\n} & {\n\"type\": \"upscale-image\";\n\"inputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"scale\"?: undefined | number;\n\"modelName\"?: undefined | string;\n} | {\n\"key\": string;\n} & {\n\"type\": \"remove-image-background\";\n\"inputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n}) => Promise<{\n\"status\": \"completed\" | \"cancelled\" | \"failed\";\n\"job\": {\n\"messageId\": number;\n\"operationId\"?: undefined | number;\n\"type\": \"text-to-image\" | \"image-to-image\" | \"text-to-mesh\" | \"image-to-mesh\" | \"upscale-image\" | \"remove-image-background\";\n\"status\": \"completed\" | \"cancelled\" | \"failed\" | \"submitted\" | \"not_ready\" | \"queued\" | \"running\" | \"waiting_for_capacity\";\n\"outputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"error\"?: undefined | string;\n};\n} | {\n\"status\": \"cancelled\";\n\"reason\": string;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }, options?: { inspect?: boolean }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
@@ -1,3 +1,3 @@
1
1
  // Generated by scripts/generate-skill-declarations.mjs.
2
2
  // prettier-ignore
3
- export const WOMP_OPERATIONS_DECLARATIONS = "declare const womp: { operations: {\n\"catalog\": (() => Promise<{\n\"models\": Array<{\n\"id\": string;\n\"name\": string;\n\"description\"?: undefined | string;\n\"requiresSubscription\": false | true;\n\"operations\": Array<\"text-to-image\" | \"image-to-image\" | \"text-to-mesh\" | \"image-to-mesh\" | \"upscale-image\" | \"remove-image-background\">;\n}>;\n\"defaults\": {\n\"image\"?: undefined | string;\n\"editing\"?: undefined | string;\n\"mesh\"?: undefined | string;\n};\n\"confirmationRequired\": false | true;\n}>);\n\"list\": ((options?: undefined | {\n\"from\"?: undefined | number;\n\"count\"?: undefined | number;\n}) => Promise<{\n\"jobs\": Array<{\n\"messageId\": number;\n\"operationId\"?: undefined | number;\n\"type\": \"text-to-image\" | \"image-to-image\" | \"text-to-mesh\" | \"image-to-mesh\" | \"upscale-image\" | \"remove-image-background\";\n\"status\": \"completed\" | \"cancelled\" | \"failed\" | \"submitted\" | \"not_ready\" | \"queued\" | \"running\" | \"waiting_for_capacity\";\n\"outputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"error\"?: undefined | string;\n}>;\n\"nextFrom\": null | number;\n}>);\n\"generate\": ((request: {\n\"key\": string;\n} & {\n\"type\": \"text-to-image\";\n\"prompt\": string;\n\"pipeline\"?: undefined | string;\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n} | {\n\"key\": string;\n} & {\n\"type\": \"image-to-image\";\n\"inputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"prompt\"?: undefined | string;\n\"pipeline\"?: undefined | string;\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n} | {\n\"key\": string;\n} & {\n\"type\": \"text-to-mesh\";\n\"prompt\": string;\n\"pipeline\"?: undefined | string;\n\"workflow\"?: undefined | string;\n\"imageParams\"?: undefined | {\n[key: string]: unknown;\n};\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n} | {\n\"key\": string;\n} & {\n\"type\": \"image-to-mesh\";\n\"inputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"prompt\"?: undefined | string;\n\"pipeline\"?: undefined | string;\n\"workflow\"?: undefined | string;\n\"imageParams\"?: undefined | {\n[key: string]: unknown;\n};\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n} | {\n\"key\": string;\n} & {\n\"type\": \"upscale-image\";\n\"inputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"scale\"?: undefined | number;\n\"modelName\"?: undefined | string;\n} | {\n\"key\": string;\n} & {\n\"type\": \"remove-image-background\";\n\"inputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n}) => Promise<{\n\"status\": \"completed\" | \"cancelled\" | \"failed\";\n\"job\": {\n\"messageId\": number;\n\"operationId\"?: undefined | number;\n\"type\": \"text-to-image\" | \"image-to-image\" | \"text-to-mesh\" | \"image-to-mesh\" | \"upscale-image\" | \"remove-image-background\";\n\"status\": \"completed\" | \"cancelled\" | \"failed\" | \"submitted\" | \"not_ready\" | \"queued\" | \"running\" | \"waiting_for_capacity\";\n\"outputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"error\"?: undefined | string;\n};\n} | {\n\"status\": \"cancelled\";\n\"reason\": string;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
3
+ export const WOMP_OPERATIONS_DECLARATIONS = "declare const womp: { operations: {\n\"catalog\": (() => Promise<{\n\"models\": Array<{\n\"id\": string;\n\"name\": string;\n\"description\"?: undefined | string;\n\"requiresSubscription\": false | true;\n\"operations\": Array<\"text-to-image\" | \"image-to-image\" | \"text-to-mesh\" | \"image-to-mesh\" | \"upscale-image\" | \"remove-image-background\">;\n}>;\n\"defaults\": {\n\"image\"?: undefined | string;\n\"editing\"?: undefined | string;\n\"mesh\"?: undefined | string;\n};\n\"confirmationRequired\": false | true;\n}>);\n\"list\": ((options?: undefined | {\n\"from\"?: undefined | number;\n\"count\"?: undefined | number;\n}) => Promise<{\n\"jobs\": Array<{\n\"messageId\": number;\n\"operationId\"?: undefined | number;\n\"type\": \"text-to-image\" | \"image-to-image\" | \"text-to-mesh\" | \"image-to-mesh\" | \"upscale-image\" | \"remove-image-background\";\n\"status\": \"completed\" | \"cancelled\" | \"failed\" | \"submitted\" | \"not_ready\" | \"queued\" | \"running\" | \"waiting_for_capacity\";\n\"outputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"error\"?: undefined | string;\n}>;\n\"nextFrom\": null | number;\n}>);\n\"generate\": ((request: {\n\"key\": string;\n} & {\n\"type\": \"text-to-image\";\n\"prompt\": string;\n\"pipeline\"?: undefined | string;\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n} | {\n\"key\": string;\n} & {\n\"type\": \"image-to-image\";\n\"inputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"prompt\"?: undefined | string;\n\"pipeline\"?: undefined | string;\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n} | {\n\"key\": string;\n} & {\n\"type\": \"text-to-mesh\";\n\"prompt\": string;\n\"pipeline\"?: undefined | string;\n\"workflow\"?: undefined | string;\n\"imageParams\"?: undefined | {\n[key: string]: unknown;\n};\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n} | {\n\"key\": string;\n} & {\n\"type\": \"image-to-mesh\";\n\"inputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"prompt\"?: undefined | string;\n\"pipeline\"?: undefined | string;\n\"workflow\"?: undefined | string;\n\"imageParams\"?: undefined | {\n[key: string]: unknown;\n};\n\"params\"?: undefined | {\n[key: string]: unknown;\n};\n} | {\n\"key\": string;\n} & {\n\"type\": \"upscale-image\";\n\"inputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"scale\"?: undefined | number;\n\"modelName\"?: undefined | string;\n} | {\n\"key\": string;\n} & {\n\"type\": \"remove-image-background\";\n\"inputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n}) => Promise<{\n\"status\": \"completed\" | \"cancelled\" | \"failed\";\n\"job\": {\n\"messageId\": number;\n\"operationId\"?: undefined | number;\n\"type\": \"text-to-image\" | \"image-to-image\" | \"text-to-mesh\" | \"image-to-mesh\" | \"upscale-image\" | \"remove-image-background\";\n\"status\": \"completed\" | \"cancelled\" | \"failed\" | \"submitted\" | \"not_ready\" | \"queued\" | \"running\" | \"waiting_for_capacity\";\n\"outputs\": Array<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>;\n\"error\"?: undefined | string;\n};\n} | {\n\"status\": \"cancelled\";\n\"reason\": string;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }, options?: { inspect?: boolean }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
@@ -1 +1 @@
1
- export declare const WOMP_SCENE_DECLARATIONS = "declare const womp: { scene: {\n\"read\": (() => Promise<{\n\"health\": {\n\"status\": \"within_limits\" | \"overflow\" | \"unverified\";\n\"freshness\": \"unverified\" | \"snapshot\" | \"post_ack_event\";\n\"revisionVerified\": false;\n\"affectedAreaIds\": Array<string>;\n\"emptyAreaIds\"?: undefined | Array<string>;\n\"thermometer\"?: undefined | {\n\"objects\": {\n[key: string]: {\n\"num_prims\": number;\n\"flag_prim_overflow\": number;\n\"flag_depth_overflow\": number;\n\"flag_vox_overflow\": number;\n\"voxels\": number;\n};\n};\n\"max_num_prims\": number;\n\"max_total_depth\": number;\n\"max_per_object\": number;\n\"total\": number;\n\"max_total\": number;\n\"assets_budget_used\": number;\n\"assets_budget_total\": number;\n\"mesh_instances_used\"?: undefined | number;\n\"mesh_instances_total\"?: undefined | number;\n\"decal_instances_used\"?: undefined | number;\n\"decal_instances_total\"?: undefined | number;\n\"field_instances_used\"?: undefined | number;\n\"field_instances_total\"?: undefined | number;\n};\n\"reason\"?: undefined | string;\n};\n\"revision\": string;\n\"projectId\"?: undefined | number;\n\"unitMultiplier\": number;\n\"nodes\": Array<{\n\"id\": number;\n\"name\": string;\n\"type\": number;\n\"parentId\": number;\n}>;\n}>);\n\"health\": ((objectIds?: undefined | Array<number>) => Promise<{\n\"status\": \"within_limits\" | \"overflow\" | \"unverified\";\n\"freshness\": \"unverified\" | \"snapshot\" | \"post_ack_event\";\n\"revisionVerified\": false;\n\"affectedAreaIds\": Array<string>;\n\"emptyAreaIds\"?: undefined | Array<string>;\n\"thermometer\"?: undefined | {\n\"objects\": {\n[key: string]: {\n\"num_prims\": number;\n\"flag_prim_overflow\": number;\n\"flag_depth_overflow\": number;\n\"flag_vox_overflow\": number;\n\"voxels\": number;\n};\n};\n\"max_num_prims\": number;\n\"max_total_depth\": number;\n\"max_per_object\": number;\n\"total\": number;\n\"max_total\": number;\n\"assets_budget_used\": number;\n\"assets_budget_total\": number;\n\"mesh_instances_used\"?: undefined | number;\n\"mesh_instances_total\"?: undefined | number;\n\"decal_instances_used\"?: undefined | number;\n\"decal_instances_total\"?: undefined | number;\n\"field_instances_used\"?: undefined | number;\n\"field_instances_total\"?: undefined | number;\n};\n\"reason\"?: undefined | string;\n}>);\n\"edit\": (<T>(callback: ((draft: {\n\"listSuperMaterials\": (() => Array<string>);\n\"_getParentId\": ((childId: number) => number);\n\"_getScaleProductUpTo\": ((nodeId: number, includeNodeSelfUnion?: false | true) => number);\n\"NodeType\": {\n\"Primitive\": 0;\n\"Union\": 1;\n\"Light\": 2;\n\"Curve\": 3;\n\"Group\": 4;\n\"Text\": 5;\n\"Field\": 6;\n\"SVG\": 7;\n\"Mesh\": 8;\n\"Decal\": 9;\n\"OpenSCAD\": 10;\n\"Socket\": 11;\n} & {\n[key: number]: string;\n};\n\"PrimitiveType\": {\n\"Sphere\": 0;\n\"Cylinder\": 1;\n\"Cube\": 2;\n\"Cone\": 3;\n\"Torus\": 4;\n\"Pyramid\": 9;\n} & {\n[key: number]: string;\n};\n\"OperationType\": {\n\"Subtract\": 0;\n\"Union\": 1;\n\"Stain\": 2;\n\"Intersect\": 3;\n} & {\n[key: number]: string;\n};\n\"LightType\": {\n\"Rect\": 0;\n\"Sphere\": 1;\n\"Distant\": 2;\n} & {\n[key: number]: string;\n};\n\"nodeCreate\": ((type: number, parentId?: number) => number);\n\"nodeDelete\": ((id: number) => void);\n\"nodeClone\": ((id: number) => number);\n\"cloneSubtree\": ((id: number, options?: {\n\"parentId\"?: undefined | number;\n\"name\"?: undefined | string;\n\"index\"?: undefined | number;\n}) => Promise<number>);\n\"nodeList\": (() => Array<number>);\n\"nodeChildren\": ((parentId: number) => Array<number>);\n\"nodeSetParent\": ((id: number, parentId: number, index?: undefined | number) => void);\n\"nodeGetType\": ((id: number) => number);\n\"nodeGetName\": ((id: number) => string);\n\"nodeSetName\": ((id: number, name: string) => void);\n\"nodeGetParentId\": ((id: number) => number);\n\"nodeGetPos\": ((id: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"nodeGetLock\": ((id: number) => false | true);\n\"nodeSetLock\": ((id: number, locked: false | true) => void);\n\"nodeSetPos\": ((id: number, position: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"nodeGetRot\": ((id: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"nodeSetRot\": ((id: number, rotation: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"nodeGetSize\": ((id: number) => {\n\"x\": number;\n\"y\": number;\n} | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"nodeSetSize\": ((id: number, sizeValue: {\n\"x\": number;\n\"y\": number;\n} | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"nodeGetHide\": ((id: number) => false | true);\n\"nodeSetHide\": ((id: number, hidden: false | true) => void);\n\"nodeGetOp\": ((id: number) => number);\n\"nodeSetOp\": ((id: number, operation: number) => void);\n\"nodeGetBlend\": ((id: number) => number);\n\"nodeSetBlend\": ((id: number, blend: number) => void);\n\"nodeGetRound\": ((id: number) => number);\n\"nodeSetRound\": ((id: number, round: number) => void);\n\"nodeGetColor\": ((id: number) => {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n});\n\"nodeSetColor\": ((id: number, color: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n} | {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n\"nodeGetMaterialId\": ((id: number) => null | number);\n\"nodeSetMaterialId\": ((id: number, materialId: number) => void);\n\"nodeGetResolution\": ((id: number) => number);\n\"nodeSetUnionResolution\": ((unionId: number, resolution: number) => void);\n\"nodeGetLightType\": ((id: number) => number);\n\"nodeSetLightType\": ((id: number, lightType: number) => void);\n\"nodeGetPower\": ((id: number) => number);\n\"nodeSetPower\": ((id: number, power: number) => void);\n\"nodeGetText\": ((id: number) => string);\n\"nodeSetText\": ((id: number, text: string) => void);\n\"nodeGetFont\": ((id: number) => string);\n\"nodeSetFont\": ((id: number, font: string) => void);\n\"nodeGetWeight\": ((id: number) => number);\n\"nodeSetWeight\": ((id: number, weight: number) => void);\n\"nodeGetItalic\": ((id: number) => false | true);\n\"nodeSetItalic\": ((id: number, italic: false | true) => void);\n\"nodeGetAlign\": ((id: number) => number);\n\"nodeSetAlign\": ((id: number, align: number) => void);\n\"nodeGetWrap\": ((id: number) => number);\n\"nodeSetWrap\": ((id: number, wrap: number) => void);\n\"nodeGetWidth\": ((id: number) => number);\n\"nodeSetWidth\": ((id: number, width: number) => void);\n\"nodeGetSpacing\": ((id: number) => number);\n\"nodeSetSpacing\": ((id: number, spacing: number) => void);\n\"nodeGetLineHeight\": ((id: number) => number);\n\"nodeSetLineHeight\": ((id: number, lineHeight: number) => void);\n\"nodeGetDensity\": ((id: number) => number);\n\"nodeSetDensity\": ((id: number, density: number) => void);\n\"nodeGetRoundness\": ((id: number) => number);\n\"nodeSetRoundness\": ((id: number, roundness: number) => void);\n\"nodeGetSmoothing\": ((id: number) => number);\n\"nodeSetSmoothing\": ((id: number, smoothing: number) => void);\n\"nodeGetPrimType\": ((id: number) => number);\n\"nodeSetPrimType\": ((id: number, primitive: number) => void);\n\"nodeGetMirror\": ((id: number, slot: number) => {\n\"axis\": \"custom\" | \"x\" | \"y\" | \"z\" | \"disabled\";\n\"planePosition\": number;\n\"goop\": number;\n});\n\"nodeSetMirror\": ((id: number, slot: number, axis: \"x\" | \"y\" | \"z\" | \"disabled\", planePosition?: number, goop?: number) => void);\n\"nodeGetThickness\": ((id: number) => number);\n\"nodeSetThickness\": ((id: number, thickness: number) => void);\n\"curveGetClosed\": ((curveId: number) => false | true);\n\"curveSetClosed\": ((curveId: number, closed: false | true) => void);\n\"curvePointGetHandleIn\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointGetHandleOut\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointSetHandleIn\": ((curveId: number, pointIndex: number, value: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointSetHandleOut\": ((curveId: number, pointIndex: number, value: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointCount\": ((curveId: number) => number);\n\"curvePointAdd\": ((curveId: number, point: {\n\"name\"?: undefined | string;\n\"pos\"?: undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"rot\"?: undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"size\"?: undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"fixed\"?: undefined | false | true;\n\"round\"?: undefined | number;\n\"materialId\"?: undefined | number;\n}, pointIndex?: undefined | number) => number);\n\"curvePointRemove\": ((curveId: number, pointIndex: number) => void);\n\"curvePointGetName\": ((curveId: number, pointIndex: number) => string);\n\"curvePointSetName\": ((curveId: number, pointIndex: number, name: string) => void);\n\"curvePointGetPos\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointSetPos\": ((curveId: number, pointIndex: number, position: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointGetRot\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointSetRot\": ((curveId: number, pointIndex: number, rotation: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointGetSize\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointSetSize\": ((curveId: number, pointIndex: number, sizeValue: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointGetFixed\": ((curveId: number, pointIndex: number) => false | true);\n\"curvePointSetFixed\": ((curveId: number, pointIndex: number, fixed: false | true) => void);\n\"curvePointGetRound\": ((curveId: number, pointIndex: number) => number);\n\"curvePointSetRound\": ((curveId: number, pointIndex: number, round: number) => void);\n\"curvePointGetMaterialId\": ((curveId: number, pointIndex: number) => null | number);\n\"curvePointSetMaterialId\": ((curveId: number, pointIndex: number, materialId: number) => void);\n\"materialImport\": ((name: string) => Promise<number>);\n\"materialCreate\": (() => number);\n\"materialDelete\": ((id: number) => void);\n\"materialList\": (() => Array<number>);\n\"materialGetName\": ((id: number) => string);\n\"materialSetName\": ((id: number, name: string) => void);\n\"materialGetTier\": ((id: number) => number);\n\"materialSetTier\": ((id: number, tier: number) => void);\n\"materialGetColor\": ((id: number) => {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n});\n\"materialSetColor\": ((id: number, color: {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n\"materialGetSecondaryColor\": ((id: number) => {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n});\n\"materialSetSecondaryColor\": ((id: number, color: {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n\"materialGetSubsurfaceColor\": ((id: number) => {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n});\n\"materialSetSubsurfaceColor\": ((id: number, color: {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n\"materialGetRoughness\": ((id: number) => number);\n\"materialSetRoughness\": ((id: number, value: number) => void);\n\"materialGetMetalness\": ((id: number) => number);\n\"materialSetMetalness\": ((id: number, value: number) => void);\n\"materialGetTransmittance\": ((id: number) => number);\n\"materialSetTransmittance\": ((id: number, value: number) => void);\n\"materialGetTranslucency\": ((id: number) => number);\n\"materialSetTranslucency\": ((id: number, value: number) => void);\n\"materialGetIor\": ((id: number) => number);\n\"materialSetIor\": ((id: number, value: number) => void);\n\"materialGetSheen\": ((id: number) => number);\n\"materialSetSheen\": ((id: number, value: number) => void);\n\"materialGetSheenRoughness\": ((id: number) => number);\n\"materialSetSheenRoughness\": ((id: number, value: number) => void);\n\"materialGetSpecularTint\": ((id: number) => number);\n\"materialSetSpecularTint\": ((id: number, value: number) => void);\n\"materialGetAbsorption\": ((id: number) => number);\n\"materialSetAbsorption\": ((id: number, value: number) => void);\n\"materialGetEmission\": ((id: number) => number);\n\"materialSetEmission\": ((id: number, value: number) => void);\n\"materialGetIridescence\": ((id: number) => number);\n\"materialSetIridescence\": ((id: number, value: number) => void);\n\"materialGetTranslucencyWeight\": ((id: number) => number);\n\"materialSetTranslucencyWeight\": ((id: number, value: number) => void);\n\"materialGetDispersion\": ((id: number) => number);\n\"materialSetDispersion\": ((id: number, value: number) => void);\n\"materialGetSurfaceOpacity\": ((id: number) => number);\n\"materialSetSurfaceOpacity\": ((id: number, value: number) => void);\n\"listFontFamilies\": (() => Array<{\n\"name\": string;\n\"variants\": Array<{\n\"weight\": string;\n\"italic\": false | true;\n}>;\n}>);\n\"print\": ((...values: Array<unknown>) => void);\n\"nodeGetAABB\": ((id: number) => Promise<{\n\"min\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"max\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n}>);\n\"nodeResize\": ((id: number, dimensions: {\n\"x\"?: undefined | number;\n\"y\"?: undefined | number;\n\"z\"?: undefined | number;\n}) => Promise<void>);\n\"aabbCenter\": ((box: {\n\"min\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"max\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n}) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"aabbRadius\": ((box: {\n\"min\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"max\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n}) => number);\n\"lookAt\": ((origin: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}, target: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"alignAxis\": ((direction: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}, axis: \"x\" | \"y\" | \"z\") => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"scenePropertiesRead\": (() => {\n\"hdr_name\": undefined | string;\n\"hdr_multiplier\": undefined | number;\n\"hdr_orientation\": undefined | {\n\"x\": number;\n\"y\": number;\n};\n\"backdrop_color1\": undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"backdrop_color2\": undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"backdrop_grad_offset\": undefined | {\n\"x\": number;\n\"y\": number;\n};\n});\n\"listHDRs\": (() => Array<string>);\n\"setHdrName\": ((name: string) => void);\n\"setHdrMultiplier\": ((multiplier: number) => void);\n\"setHdrOrientation\": ((orientation: {\n\"x\": number;\n\"y\": number;\n}) => void);\n\"setBackgroundColor\": ((color: {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n}) => T | Promise<T>), expectedRevision: string) => Promise<T>);\n\"screenshot\": ((options?: undefined | {\n\"camera\"?: undefined | {\n\"position\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"target\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"projection\"?: undefined | \"perspective\" | \"orthographic\";\n\"horizontalFovDegrees\"?: undefined | number;\n\"orthographicWidth\"?: undefined | number;\n};\n}) => Promise<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
1
+ export declare const WOMP_SCENE_DECLARATIONS = "declare const womp: { scene: {\n\"read\": (() => Promise<{\n\"health\": {\n\"status\": \"within_limits\" | \"overflow\" | \"unverified\";\n\"freshness\": \"unverified\" | \"snapshot\" | \"post_ack_event\";\n\"revisionVerified\": false;\n\"affectedAreaIds\": Array<string>;\n\"emptyAreaIds\"?: undefined | Array<string>;\n\"thermometer\"?: undefined | {\n\"objects\": {\n[key: string]: {\n\"num_prims\": number;\n\"flag_prim_overflow\": number;\n\"flag_depth_overflow\": number;\n\"flag_vox_overflow\": number;\n\"voxels\": number;\n};\n};\n\"max_num_prims\": number;\n\"max_total_depth\": number;\n\"max_per_object\": number;\n\"total\": number;\n\"max_total\": number;\n\"assets_budget_used\": number;\n\"assets_budget_total\": number;\n\"mesh_instances_used\"?: undefined | number;\n\"mesh_instances_total\"?: undefined | number;\n\"decal_instances_used\"?: undefined | number;\n\"decal_instances_total\"?: undefined | number;\n\"field_instances_used\"?: undefined | number;\n\"field_instances_total\"?: undefined | number;\n};\n\"reason\"?: undefined | string;\n};\n\"revision\": string;\n\"projectId\"?: undefined | number;\n\"unitMultiplier\": number;\n\"nodes\": Array<{\n\"id\": number;\n\"name\": string;\n\"type\": number;\n\"parentId\": number;\n}>;\n}>);\n\"health\": ((objectIds?: undefined | Array<number>) => Promise<{\n\"status\": \"within_limits\" | \"overflow\" | \"unverified\";\n\"freshness\": \"unverified\" | \"snapshot\" | \"post_ack_event\";\n\"revisionVerified\": false;\n\"affectedAreaIds\": Array<string>;\n\"emptyAreaIds\"?: undefined | Array<string>;\n\"thermometer\"?: undefined | {\n\"objects\": {\n[key: string]: {\n\"num_prims\": number;\n\"flag_prim_overflow\": number;\n\"flag_depth_overflow\": number;\n\"flag_vox_overflow\": number;\n\"voxels\": number;\n};\n};\n\"max_num_prims\": number;\n\"max_total_depth\": number;\n\"max_per_object\": number;\n\"total\": number;\n\"max_total\": number;\n\"assets_budget_used\": number;\n\"assets_budget_total\": number;\n\"mesh_instances_used\"?: undefined | number;\n\"mesh_instances_total\"?: undefined | number;\n\"decal_instances_used\"?: undefined | number;\n\"decal_instances_total\"?: undefined | number;\n\"field_instances_used\"?: undefined | number;\n\"field_instances_total\"?: undefined | number;\n};\n\"reason\"?: undefined | string;\n}>);\n\"edit\": (<T>(callback: ((draft: {\n\"listSuperMaterials\": (() => Array<string>);\n\"_getParentId\": ((childId: number) => number);\n\"_getScaleProductUpTo\": ((nodeId: number, includeNodeSelfUnion?: false | true) => number);\n\"NodeType\": {\n\"Primitive\": 0;\n\"Union\": 1;\n\"Light\": 2;\n\"Curve\": 3;\n\"Group\": 4;\n\"Text\": 5;\n\"Field\": 6;\n\"SVG\": 7;\n\"Mesh\": 8;\n\"Decal\": 9;\n\"OpenSCAD\": 10;\n\"Socket\": 11;\n} & {\n[key: number]: string;\n};\n\"PrimitiveType\": {\n\"Sphere\": 0;\n\"Cylinder\": 1;\n\"Cube\": 2;\n\"Cone\": 3;\n\"Torus\": 4;\n\"Pyramid\": 9;\n} & {\n[key: number]: string;\n};\n\"OperationType\": {\n\"Subtract\": 0;\n\"Union\": 1;\n\"Stain\": 2;\n\"Intersect\": 3;\n} & {\n[key: number]: string;\n};\n\"LightType\": {\n\"Rect\": 0;\n\"Sphere\": 1;\n\"Distant\": 2;\n} & {\n[key: number]: string;\n};\n\"nodeCreate\": ((type: number, parentId?: number) => number);\n\"nodeDelete\": ((id: number) => void);\n\"nodeClone\": ((id: number) => number);\n\"cloneSubtree\": ((id: number, options?: {\n\"parentId\"?: undefined | number;\n\"name\"?: undefined | string;\n\"index\"?: undefined | number;\n}) => Promise<number>);\n\"nodeList\": (() => Array<number>);\n\"nodeChildren\": ((parentId: number) => Array<number>);\n\"nodeSetParent\": ((id: number, parentId: number, index?: undefined | number) => void);\n\"nodeGetType\": ((id: number) => number);\n\"nodeGetName\": ((id: number) => string);\n\"nodeSetName\": ((id: number, name: string) => void);\n\"nodeGetParentId\": ((id: number) => number);\n\"nodeGetPos\": ((id: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"nodeGetLock\": ((id: number) => false | true);\n\"nodeSetLock\": ((id: number, locked: false | true) => void);\n\"nodeSetPos\": ((id: number, position: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"nodeGetRot\": ((id: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"nodeSetRot\": ((id: number, rotation: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"nodeGetSize\": ((id: number) => {\n\"x\": number;\n\"y\": number;\n} | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"nodeSetSize\": ((id: number, sizeValue: {\n\"x\": number;\n\"y\": number;\n} | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"nodeGetHide\": ((id: number) => false | true);\n\"nodeSetHide\": ((id: number, hidden: false | true) => void);\n\"nodeGetOp\": ((id: number) => number);\n\"nodeSetOp\": ((id: number, operation: number) => void);\n\"nodeGetBlend\": ((id: number) => number);\n\"nodeSetBlend\": ((id: number, blend: number) => void);\n\"nodeGetRound\": ((id: number) => number);\n\"nodeSetRound\": ((id: number, round: number) => void);\n\"nodeGetColor\": ((id: number) => {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n});\n\"nodeSetColor\": ((id: number, color: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n} | {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n\"nodeGetMaterialId\": ((id: number) => null | number);\n\"nodeSetMaterialId\": ((id: number, materialId: number) => void);\n\"nodeGetResolution\": ((id: number) => number);\n\"nodeSetUnionResolution\": ((unionId: number, resolution: number) => void);\n\"nodeGetLightType\": ((id: number) => number);\n\"nodeSetLightType\": ((id: number, lightType: number) => void);\n\"nodeGetPower\": ((id: number) => number);\n\"nodeSetPower\": ((id: number, power: number) => void);\n\"nodeGetText\": ((id: number) => string);\n\"nodeSetText\": ((id: number, text: string) => void);\n\"nodeGetFont\": ((id: number) => string);\n\"nodeSetFont\": ((id: number, font: string) => void);\n\"nodeGetWeight\": ((id: number) => number);\n\"nodeSetWeight\": ((id: number, weight: number) => void);\n\"nodeGetItalic\": ((id: number) => false | true);\n\"nodeSetItalic\": ((id: number, italic: false | true) => void);\n\"nodeGetAlign\": ((id: number) => number);\n\"nodeSetAlign\": ((id: number, align: number) => void);\n\"nodeGetWrap\": ((id: number) => number);\n\"nodeSetWrap\": ((id: number, wrap: number) => void);\n\"nodeGetWidth\": ((id: number) => number);\n\"nodeSetWidth\": ((id: number, width: number) => void);\n\"nodeGetSpacing\": ((id: number) => number);\n\"nodeSetSpacing\": ((id: number, spacing: number) => void);\n\"nodeGetLineHeight\": ((id: number) => number);\n\"nodeSetLineHeight\": ((id: number, lineHeight: number) => void);\n\"nodeGetDensity\": ((id: number) => number);\n\"nodeSetDensity\": ((id: number, density: number) => void);\n\"nodeGetRoundness\": ((id: number) => number);\n\"nodeSetRoundness\": ((id: number, roundness: number) => void);\n\"nodeGetSmoothing\": ((id: number) => number);\n\"nodeSetSmoothing\": ((id: number, smoothing: number) => void);\n\"nodeGetPrimType\": ((id: number) => number);\n\"nodeSetPrimType\": ((id: number, primitive: number) => void);\n\"nodeGetMirror\": ((id: number, slot: number) => {\n\"axis\": \"custom\" | \"x\" | \"y\" | \"z\" | \"disabled\";\n\"planePosition\": number;\n\"goop\": number;\n});\n\"nodeSetMirror\": ((id: number, slot: number, axis: \"x\" | \"y\" | \"z\" | \"disabled\", planePosition?: number, goop?: number) => void);\n\"nodeGetThickness\": ((id: number) => number);\n\"nodeSetThickness\": ((id: number, thickness: number) => void);\n\"curveGetClosed\": ((curveId: number) => false | true);\n\"curveSetClosed\": ((curveId: number, closed: false | true) => void);\n\"curvePointGetHandleIn\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointGetHandleOut\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointSetHandleIn\": ((curveId: number, pointIndex: number, value: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointSetHandleOut\": ((curveId: number, pointIndex: number, value: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointCount\": ((curveId: number) => number);\n\"curvePointAdd\": ((curveId: number, point: {\n\"name\"?: undefined | string;\n\"pos\"?: undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"rot\"?: undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"size\"?: undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"fixed\"?: undefined | false | true;\n\"round\"?: undefined | number;\n\"materialId\"?: undefined | number;\n}, pointIndex?: undefined | number) => number);\n\"curvePointRemove\": ((curveId: number, pointIndex: number) => void);\n\"curvePointGetName\": ((curveId: number, pointIndex: number) => string);\n\"curvePointSetName\": ((curveId: number, pointIndex: number, name: string) => void);\n\"curvePointGetPos\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointSetPos\": ((curveId: number, pointIndex: number, position: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointGetRot\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointSetRot\": ((curveId: number, pointIndex: number, rotation: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointGetSize\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointSetSize\": ((curveId: number, pointIndex: number, sizeValue: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointGetFixed\": ((curveId: number, pointIndex: number) => false | true);\n\"curvePointSetFixed\": ((curveId: number, pointIndex: number, fixed: false | true) => void);\n\"curvePointGetRound\": ((curveId: number, pointIndex: number) => number);\n\"curvePointSetRound\": ((curveId: number, pointIndex: number, round: number) => void);\n\"curvePointGetMaterialId\": ((curveId: number, pointIndex: number) => null | number);\n\"curvePointSetMaterialId\": ((curveId: number, pointIndex: number, materialId: number) => void);\n\"materialImport\": ((name: string) => Promise<number>);\n\"materialCreate\": (() => number);\n\"materialDelete\": ((id: number) => void);\n\"materialList\": (() => Array<number>);\n\"materialGetName\": ((id: number) => string);\n\"materialSetName\": ((id: number, name: string) => void);\n\"materialGetTier\": ((id: number) => number);\n\"materialSetTier\": ((id: number, tier: number) => void);\n\"materialGetColor\": ((id: number) => {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n});\n\"materialSetColor\": ((id: number, color: {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n\"materialGetSecondaryColor\": ((id: number) => {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n});\n\"materialSetSecondaryColor\": ((id: number, color: {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n\"materialGetSubsurfaceColor\": ((id: number) => {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n});\n\"materialSetSubsurfaceColor\": ((id: number, color: {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n\"materialGetRoughness\": ((id: number) => number);\n\"materialSetRoughness\": ((id: number, value: number) => void);\n\"materialGetMetalness\": ((id: number) => number);\n\"materialSetMetalness\": ((id: number, value: number) => void);\n\"materialGetTransmittance\": ((id: number) => number);\n\"materialSetTransmittance\": ((id: number, value: number) => void);\n\"materialGetTranslucency\": ((id: number) => number);\n\"materialSetTranslucency\": ((id: number, value: number) => void);\n\"materialGetIor\": ((id: number) => number);\n\"materialSetIor\": ((id: number, value: number) => void);\n\"materialGetSheen\": ((id: number) => number);\n\"materialSetSheen\": ((id: number, value: number) => void);\n\"materialGetSheenRoughness\": ((id: number) => number);\n\"materialSetSheenRoughness\": ((id: number, value: number) => void);\n\"materialGetSpecularTint\": ((id: number) => number);\n\"materialSetSpecularTint\": ((id: number, value: number) => void);\n\"materialGetAbsorption\": ((id: number) => number);\n\"materialSetAbsorption\": ((id: number, value: number) => void);\n\"materialGetEmission\": ((id: number) => number);\n\"materialSetEmission\": ((id: number, value: number) => void);\n\"materialGetIridescence\": ((id: number) => number);\n\"materialSetIridescence\": ((id: number, value: number) => void);\n\"materialGetTranslucencyWeight\": ((id: number) => number);\n\"materialSetTranslucencyWeight\": ((id: number, value: number) => void);\n\"materialGetDispersion\": ((id: number) => number);\n\"materialSetDispersion\": ((id: number, value: number) => void);\n\"materialGetSurfaceOpacity\": ((id: number) => number);\n\"materialSetSurfaceOpacity\": ((id: number, value: number) => void);\n\"listFontFamilies\": (() => Array<{\n\"name\": string;\n\"variants\": Array<{\n\"weight\": string;\n\"italic\": false | true;\n}>;\n}>);\n\"print\": ((...values: Array<unknown>) => void);\n\"nodeGetAABB\": ((id: number) => Promise<{\n\"min\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"max\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n}>);\n\"nodeResize\": ((id: number, dimensions: {\n\"x\"?: undefined | number;\n\"y\"?: undefined | number;\n\"z\"?: undefined | number;\n}) => Promise<void>);\n\"aabbCenter\": ((box: {\n\"min\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"max\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n}) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"aabbRadius\": ((box: {\n\"min\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"max\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n}) => number);\n\"lookAt\": ((origin: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}, target: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"alignAxis\": ((direction: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}, axis: \"x\" | \"y\" | \"z\") => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"scenePropertiesRead\": (() => {\n\"hdr_name\": undefined | string;\n\"hdr_multiplier\": undefined | number;\n\"hdr_orientation\": undefined | {\n\"x\": number;\n\"y\": number;\n};\n\"backdrop_color1\": undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"backdrop_color2\": undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"backdrop_grad_offset\": undefined | {\n\"x\": number;\n\"y\": number;\n};\n});\n\"listHDRs\": (() => Array<string>);\n\"setHdrName\": ((name: string) => void);\n\"setHdrMultiplier\": ((multiplier: number) => void);\n\"setHdrOrientation\": ((orientation: {\n\"x\": number;\n\"y\": number;\n}) => void);\n\"setBackgroundColor\": ((color: {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n}) => T | Promise<T>), expectedRevision: string) => Promise<T>);\n\"screenshot\": ((options?: undefined | {\n\"camera\"?: undefined | {\n\"position\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"target\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"projection\"?: undefined | \"perspective\" | \"orthographic\";\n\"horizontalFovDegrees\"?: undefined | number;\n\"orthographicWidth\"?: undefined | number;\n};\n}) => Promise<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }, options?: { inspect?: boolean }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
@@ -1,3 +1,3 @@
1
1
  // Generated by scripts/generate-skill-declarations.mjs.
2
2
  // prettier-ignore
3
- export const WOMP_SCENE_DECLARATIONS = "declare const womp: { scene: {\n\"read\": (() => Promise<{\n\"health\": {\n\"status\": \"within_limits\" | \"overflow\" | \"unverified\";\n\"freshness\": \"unverified\" | \"snapshot\" | \"post_ack_event\";\n\"revisionVerified\": false;\n\"affectedAreaIds\": Array<string>;\n\"emptyAreaIds\"?: undefined | Array<string>;\n\"thermometer\"?: undefined | {\n\"objects\": {\n[key: string]: {\n\"num_prims\": number;\n\"flag_prim_overflow\": number;\n\"flag_depth_overflow\": number;\n\"flag_vox_overflow\": number;\n\"voxels\": number;\n};\n};\n\"max_num_prims\": number;\n\"max_total_depth\": number;\n\"max_per_object\": number;\n\"total\": number;\n\"max_total\": number;\n\"assets_budget_used\": number;\n\"assets_budget_total\": number;\n\"mesh_instances_used\"?: undefined | number;\n\"mesh_instances_total\"?: undefined | number;\n\"decal_instances_used\"?: undefined | number;\n\"decal_instances_total\"?: undefined | number;\n\"field_instances_used\"?: undefined | number;\n\"field_instances_total\"?: undefined | number;\n};\n\"reason\"?: undefined | string;\n};\n\"revision\": string;\n\"projectId\"?: undefined | number;\n\"unitMultiplier\": number;\n\"nodes\": Array<{\n\"id\": number;\n\"name\": string;\n\"type\": number;\n\"parentId\": number;\n}>;\n}>);\n\"health\": ((objectIds?: undefined | Array<number>) => Promise<{\n\"status\": \"within_limits\" | \"overflow\" | \"unverified\";\n\"freshness\": \"unverified\" | \"snapshot\" | \"post_ack_event\";\n\"revisionVerified\": false;\n\"affectedAreaIds\": Array<string>;\n\"emptyAreaIds\"?: undefined | Array<string>;\n\"thermometer\"?: undefined | {\n\"objects\": {\n[key: string]: {\n\"num_prims\": number;\n\"flag_prim_overflow\": number;\n\"flag_depth_overflow\": number;\n\"flag_vox_overflow\": number;\n\"voxels\": number;\n};\n};\n\"max_num_prims\": number;\n\"max_total_depth\": number;\n\"max_per_object\": number;\n\"total\": number;\n\"max_total\": number;\n\"assets_budget_used\": number;\n\"assets_budget_total\": number;\n\"mesh_instances_used\"?: undefined | number;\n\"mesh_instances_total\"?: undefined | number;\n\"decal_instances_used\"?: undefined | number;\n\"decal_instances_total\"?: undefined | number;\n\"field_instances_used\"?: undefined | number;\n\"field_instances_total\"?: undefined | number;\n};\n\"reason\"?: undefined | string;\n}>);\n\"edit\": (<T>(callback: ((draft: {\n\"listSuperMaterials\": (() => Array<string>);\n\"_getParentId\": ((childId: number) => number);\n\"_getScaleProductUpTo\": ((nodeId: number, includeNodeSelfUnion?: false | true) => number);\n\"NodeType\": {\n\"Primitive\": 0;\n\"Union\": 1;\n\"Light\": 2;\n\"Curve\": 3;\n\"Group\": 4;\n\"Text\": 5;\n\"Field\": 6;\n\"SVG\": 7;\n\"Mesh\": 8;\n\"Decal\": 9;\n\"OpenSCAD\": 10;\n\"Socket\": 11;\n} & {\n[key: number]: string;\n};\n\"PrimitiveType\": {\n\"Sphere\": 0;\n\"Cylinder\": 1;\n\"Cube\": 2;\n\"Cone\": 3;\n\"Torus\": 4;\n\"Pyramid\": 9;\n} & {\n[key: number]: string;\n};\n\"OperationType\": {\n\"Subtract\": 0;\n\"Union\": 1;\n\"Stain\": 2;\n\"Intersect\": 3;\n} & {\n[key: number]: string;\n};\n\"LightType\": {\n\"Rect\": 0;\n\"Sphere\": 1;\n\"Distant\": 2;\n} & {\n[key: number]: string;\n};\n\"nodeCreate\": ((type: number, parentId?: number) => number);\n\"nodeDelete\": ((id: number) => void);\n\"nodeClone\": ((id: number) => number);\n\"cloneSubtree\": ((id: number, options?: {\n\"parentId\"?: undefined | number;\n\"name\"?: undefined | string;\n\"index\"?: undefined | number;\n}) => Promise<number>);\n\"nodeList\": (() => Array<number>);\n\"nodeChildren\": ((parentId: number) => Array<number>);\n\"nodeSetParent\": ((id: number, parentId: number, index?: undefined | number) => void);\n\"nodeGetType\": ((id: number) => number);\n\"nodeGetName\": ((id: number) => string);\n\"nodeSetName\": ((id: number, name: string) => void);\n\"nodeGetParentId\": ((id: number) => number);\n\"nodeGetPos\": ((id: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"nodeGetLock\": ((id: number) => false | true);\n\"nodeSetLock\": ((id: number, locked: false | true) => void);\n\"nodeSetPos\": ((id: number, position: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"nodeGetRot\": ((id: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"nodeSetRot\": ((id: number, rotation: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"nodeGetSize\": ((id: number) => {\n\"x\": number;\n\"y\": number;\n} | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"nodeSetSize\": ((id: number, sizeValue: {\n\"x\": number;\n\"y\": number;\n} | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"nodeGetHide\": ((id: number) => false | true);\n\"nodeSetHide\": ((id: number, hidden: false | true) => void);\n\"nodeGetOp\": ((id: number) => number);\n\"nodeSetOp\": ((id: number, operation: number) => void);\n\"nodeGetBlend\": ((id: number) => number);\n\"nodeSetBlend\": ((id: number, blend: number) => void);\n\"nodeGetRound\": ((id: number) => number);\n\"nodeSetRound\": ((id: number, round: number) => void);\n\"nodeGetColor\": ((id: number) => {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n});\n\"nodeSetColor\": ((id: number, color: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n} | {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n\"nodeGetMaterialId\": ((id: number) => null | number);\n\"nodeSetMaterialId\": ((id: number, materialId: number) => void);\n\"nodeGetResolution\": ((id: number) => number);\n\"nodeSetUnionResolution\": ((unionId: number, resolution: number) => void);\n\"nodeGetLightType\": ((id: number) => number);\n\"nodeSetLightType\": ((id: number, lightType: number) => void);\n\"nodeGetPower\": ((id: number) => number);\n\"nodeSetPower\": ((id: number, power: number) => void);\n\"nodeGetText\": ((id: number) => string);\n\"nodeSetText\": ((id: number, text: string) => void);\n\"nodeGetFont\": ((id: number) => string);\n\"nodeSetFont\": ((id: number, font: string) => void);\n\"nodeGetWeight\": ((id: number) => number);\n\"nodeSetWeight\": ((id: number, weight: number) => void);\n\"nodeGetItalic\": ((id: number) => false | true);\n\"nodeSetItalic\": ((id: number, italic: false | true) => void);\n\"nodeGetAlign\": ((id: number) => number);\n\"nodeSetAlign\": ((id: number, align: number) => void);\n\"nodeGetWrap\": ((id: number) => number);\n\"nodeSetWrap\": ((id: number, wrap: number) => void);\n\"nodeGetWidth\": ((id: number) => number);\n\"nodeSetWidth\": ((id: number, width: number) => void);\n\"nodeGetSpacing\": ((id: number) => number);\n\"nodeSetSpacing\": ((id: number, spacing: number) => void);\n\"nodeGetLineHeight\": ((id: number) => number);\n\"nodeSetLineHeight\": ((id: number, lineHeight: number) => void);\n\"nodeGetDensity\": ((id: number) => number);\n\"nodeSetDensity\": ((id: number, density: number) => void);\n\"nodeGetRoundness\": ((id: number) => number);\n\"nodeSetRoundness\": ((id: number, roundness: number) => void);\n\"nodeGetSmoothing\": ((id: number) => number);\n\"nodeSetSmoothing\": ((id: number, smoothing: number) => void);\n\"nodeGetPrimType\": ((id: number) => number);\n\"nodeSetPrimType\": ((id: number, primitive: number) => void);\n\"nodeGetMirror\": ((id: number, slot: number) => {\n\"axis\": \"custom\" | \"x\" | \"y\" | \"z\" | \"disabled\";\n\"planePosition\": number;\n\"goop\": number;\n});\n\"nodeSetMirror\": ((id: number, slot: number, axis: \"x\" | \"y\" | \"z\" | \"disabled\", planePosition?: number, goop?: number) => void);\n\"nodeGetThickness\": ((id: number) => number);\n\"nodeSetThickness\": ((id: number, thickness: number) => void);\n\"curveGetClosed\": ((curveId: number) => false | true);\n\"curveSetClosed\": ((curveId: number, closed: false | true) => void);\n\"curvePointGetHandleIn\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointGetHandleOut\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointSetHandleIn\": ((curveId: number, pointIndex: number, value: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointSetHandleOut\": ((curveId: number, pointIndex: number, value: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointCount\": ((curveId: number) => number);\n\"curvePointAdd\": ((curveId: number, point: {\n\"name\"?: undefined | string;\n\"pos\"?: undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"rot\"?: undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"size\"?: undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"fixed\"?: undefined | false | true;\n\"round\"?: undefined | number;\n\"materialId\"?: undefined | number;\n}, pointIndex?: undefined | number) => number);\n\"curvePointRemove\": ((curveId: number, pointIndex: number) => void);\n\"curvePointGetName\": ((curveId: number, pointIndex: number) => string);\n\"curvePointSetName\": ((curveId: number, pointIndex: number, name: string) => void);\n\"curvePointGetPos\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointSetPos\": ((curveId: number, pointIndex: number, position: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointGetRot\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointSetRot\": ((curveId: number, pointIndex: number, rotation: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointGetSize\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointSetSize\": ((curveId: number, pointIndex: number, sizeValue: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointGetFixed\": ((curveId: number, pointIndex: number) => false | true);\n\"curvePointSetFixed\": ((curveId: number, pointIndex: number, fixed: false | true) => void);\n\"curvePointGetRound\": ((curveId: number, pointIndex: number) => number);\n\"curvePointSetRound\": ((curveId: number, pointIndex: number, round: number) => void);\n\"curvePointGetMaterialId\": ((curveId: number, pointIndex: number) => null | number);\n\"curvePointSetMaterialId\": ((curveId: number, pointIndex: number, materialId: number) => void);\n\"materialImport\": ((name: string) => Promise<number>);\n\"materialCreate\": (() => number);\n\"materialDelete\": ((id: number) => void);\n\"materialList\": (() => Array<number>);\n\"materialGetName\": ((id: number) => string);\n\"materialSetName\": ((id: number, name: string) => void);\n\"materialGetTier\": ((id: number) => number);\n\"materialSetTier\": ((id: number, tier: number) => void);\n\"materialGetColor\": ((id: number) => {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n});\n\"materialSetColor\": ((id: number, color: {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n\"materialGetSecondaryColor\": ((id: number) => {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n});\n\"materialSetSecondaryColor\": ((id: number, color: {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n\"materialGetSubsurfaceColor\": ((id: number) => {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n});\n\"materialSetSubsurfaceColor\": ((id: number, color: {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n\"materialGetRoughness\": ((id: number) => number);\n\"materialSetRoughness\": ((id: number, value: number) => void);\n\"materialGetMetalness\": ((id: number) => number);\n\"materialSetMetalness\": ((id: number, value: number) => void);\n\"materialGetTransmittance\": ((id: number) => number);\n\"materialSetTransmittance\": ((id: number, value: number) => void);\n\"materialGetTranslucency\": ((id: number) => number);\n\"materialSetTranslucency\": ((id: number, value: number) => void);\n\"materialGetIor\": ((id: number) => number);\n\"materialSetIor\": ((id: number, value: number) => void);\n\"materialGetSheen\": ((id: number) => number);\n\"materialSetSheen\": ((id: number, value: number) => void);\n\"materialGetSheenRoughness\": ((id: number) => number);\n\"materialSetSheenRoughness\": ((id: number, value: number) => void);\n\"materialGetSpecularTint\": ((id: number) => number);\n\"materialSetSpecularTint\": ((id: number, value: number) => void);\n\"materialGetAbsorption\": ((id: number) => number);\n\"materialSetAbsorption\": ((id: number, value: number) => void);\n\"materialGetEmission\": ((id: number) => number);\n\"materialSetEmission\": ((id: number, value: number) => void);\n\"materialGetIridescence\": ((id: number) => number);\n\"materialSetIridescence\": ((id: number, value: number) => void);\n\"materialGetTranslucencyWeight\": ((id: number) => number);\n\"materialSetTranslucencyWeight\": ((id: number, value: number) => void);\n\"materialGetDispersion\": ((id: number) => number);\n\"materialSetDispersion\": ((id: number, value: number) => void);\n\"materialGetSurfaceOpacity\": ((id: number) => number);\n\"materialSetSurfaceOpacity\": ((id: number, value: number) => void);\n\"listFontFamilies\": (() => Array<{\n\"name\": string;\n\"variants\": Array<{\n\"weight\": string;\n\"italic\": false | true;\n}>;\n}>);\n\"print\": ((...values: Array<unknown>) => void);\n\"nodeGetAABB\": ((id: number) => Promise<{\n\"min\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"max\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n}>);\n\"nodeResize\": ((id: number, dimensions: {\n\"x\"?: undefined | number;\n\"y\"?: undefined | number;\n\"z\"?: undefined | number;\n}) => Promise<void>);\n\"aabbCenter\": ((box: {\n\"min\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"max\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n}) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"aabbRadius\": ((box: {\n\"min\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"max\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n}) => number);\n\"lookAt\": ((origin: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}, target: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"alignAxis\": ((direction: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}, axis: \"x\" | \"y\" | \"z\") => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"scenePropertiesRead\": (() => {\n\"hdr_name\": undefined | string;\n\"hdr_multiplier\": undefined | number;\n\"hdr_orientation\": undefined | {\n\"x\": number;\n\"y\": number;\n};\n\"backdrop_color1\": undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"backdrop_color2\": undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"backdrop_grad_offset\": undefined | {\n\"x\": number;\n\"y\": number;\n};\n});\n\"listHDRs\": (() => Array<string>);\n\"setHdrName\": ((name: string) => void);\n\"setHdrMultiplier\": ((multiplier: number) => void);\n\"setHdrOrientation\": ((orientation: {\n\"x\": number;\n\"y\": number;\n}) => void);\n\"setBackgroundColor\": ((color: {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n}) => T | Promise<T>), expectedRevision: string) => Promise<T>);\n\"screenshot\": ((options?: undefined | {\n\"camera\"?: undefined | {\n\"position\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"target\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"projection\"?: undefined | \"perspective\" | \"orthographic\";\n\"horizontalFovDegrees\"?: undefined | number;\n\"orthographicWidth\"?: undefined | number;\n};\n}) => Promise<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
3
+ export const WOMP_SCENE_DECLARATIONS = "declare const womp: { scene: {\n\"read\": (() => Promise<{\n\"health\": {\n\"status\": \"within_limits\" | \"overflow\" | \"unverified\";\n\"freshness\": \"unverified\" | \"snapshot\" | \"post_ack_event\";\n\"revisionVerified\": false;\n\"affectedAreaIds\": Array<string>;\n\"emptyAreaIds\"?: undefined | Array<string>;\n\"thermometer\"?: undefined | {\n\"objects\": {\n[key: string]: {\n\"num_prims\": number;\n\"flag_prim_overflow\": number;\n\"flag_depth_overflow\": number;\n\"flag_vox_overflow\": number;\n\"voxels\": number;\n};\n};\n\"max_num_prims\": number;\n\"max_total_depth\": number;\n\"max_per_object\": number;\n\"total\": number;\n\"max_total\": number;\n\"assets_budget_used\": number;\n\"assets_budget_total\": number;\n\"mesh_instances_used\"?: undefined | number;\n\"mesh_instances_total\"?: undefined | number;\n\"decal_instances_used\"?: undefined | number;\n\"decal_instances_total\"?: undefined | number;\n\"field_instances_used\"?: undefined | number;\n\"field_instances_total\"?: undefined | number;\n};\n\"reason\"?: undefined | string;\n};\n\"revision\": string;\n\"projectId\"?: undefined | number;\n\"unitMultiplier\": number;\n\"nodes\": Array<{\n\"id\": number;\n\"name\": string;\n\"type\": number;\n\"parentId\": number;\n}>;\n}>);\n\"health\": ((objectIds?: undefined | Array<number>) => Promise<{\n\"status\": \"within_limits\" | \"overflow\" | \"unverified\";\n\"freshness\": \"unverified\" | \"snapshot\" | \"post_ack_event\";\n\"revisionVerified\": false;\n\"affectedAreaIds\": Array<string>;\n\"emptyAreaIds\"?: undefined | Array<string>;\n\"thermometer\"?: undefined | {\n\"objects\": {\n[key: string]: {\n\"num_prims\": number;\n\"flag_prim_overflow\": number;\n\"flag_depth_overflow\": number;\n\"flag_vox_overflow\": number;\n\"voxels\": number;\n};\n};\n\"max_num_prims\": number;\n\"max_total_depth\": number;\n\"max_per_object\": number;\n\"total\": number;\n\"max_total\": number;\n\"assets_budget_used\": number;\n\"assets_budget_total\": number;\n\"mesh_instances_used\"?: undefined | number;\n\"mesh_instances_total\"?: undefined | number;\n\"decal_instances_used\"?: undefined | number;\n\"decal_instances_total\"?: undefined | number;\n\"field_instances_used\"?: undefined | number;\n\"field_instances_total\"?: undefined | number;\n};\n\"reason\"?: undefined | string;\n}>);\n\"edit\": (<T>(callback: ((draft: {\n\"listSuperMaterials\": (() => Array<string>);\n\"_getParentId\": ((childId: number) => number);\n\"_getScaleProductUpTo\": ((nodeId: number, includeNodeSelfUnion?: false | true) => number);\n\"NodeType\": {\n\"Primitive\": 0;\n\"Union\": 1;\n\"Light\": 2;\n\"Curve\": 3;\n\"Group\": 4;\n\"Text\": 5;\n\"Field\": 6;\n\"SVG\": 7;\n\"Mesh\": 8;\n\"Decal\": 9;\n\"OpenSCAD\": 10;\n\"Socket\": 11;\n} & {\n[key: number]: string;\n};\n\"PrimitiveType\": {\n\"Sphere\": 0;\n\"Cylinder\": 1;\n\"Cube\": 2;\n\"Cone\": 3;\n\"Torus\": 4;\n\"Pyramid\": 9;\n} & {\n[key: number]: string;\n};\n\"OperationType\": {\n\"Subtract\": 0;\n\"Union\": 1;\n\"Stain\": 2;\n\"Intersect\": 3;\n} & {\n[key: number]: string;\n};\n\"LightType\": {\n\"Rect\": 0;\n\"Sphere\": 1;\n\"Distant\": 2;\n} & {\n[key: number]: string;\n};\n\"nodeCreate\": ((type: number, parentId?: number) => number);\n\"nodeDelete\": ((id: number) => void);\n\"nodeClone\": ((id: number) => number);\n\"cloneSubtree\": ((id: number, options?: {\n\"parentId\"?: undefined | number;\n\"name\"?: undefined | string;\n\"index\"?: undefined | number;\n}) => Promise<number>);\n\"nodeList\": (() => Array<number>);\n\"nodeChildren\": ((parentId: number) => Array<number>);\n\"nodeSetParent\": ((id: number, parentId: number, index?: undefined | number) => void);\n\"nodeGetType\": ((id: number) => number);\n\"nodeGetName\": ((id: number) => string);\n\"nodeSetName\": ((id: number, name: string) => void);\n\"nodeGetParentId\": ((id: number) => number);\n\"nodeGetPos\": ((id: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"nodeGetLock\": ((id: number) => false | true);\n\"nodeSetLock\": ((id: number, locked: false | true) => void);\n\"nodeSetPos\": ((id: number, position: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"nodeGetRot\": ((id: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"nodeSetRot\": ((id: number, rotation: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"nodeGetSize\": ((id: number) => {\n\"x\": number;\n\"y\": number;\n} | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"nodeSetSize\": ((id: number, sizeValue: {\n\"x\": number;\n\"y\": number;\n} | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"nodeGetHide\": ((id: number) => false | true);\n\"nodeSetHide\": ((id: number, hidden: false | true) => void);\n\"nodeGetOp\": ((id: number) => number);\n\"nodeSetOp\": ((id: number, operation: number) => void);\n\"nodeGetBlend\": ((id: number) => number);\n\"nodeSetBlend\": ((id: number, blend: number) => void);\n\"nodeGetRound\": ((id: number) => number);\n\"nodeSetRound\": ((id: number, round: number) => void);\n\"nodeGetColor\": ((id: number) => {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n});\n\"nodeSetColor\": ((id: number, color: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n} | {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n\"nodeGetMaterialId\": ((id: number) => null | number);\n\"nodeSetMaterialId\": ((id: number, materialId: number) => void);\n\"nodeGetResolution\": ((id: number) => number);\n\"nodeSetUnionResolution\": ((unionId: number, resolution: number) => void);\n\"nodeGetLightType\": ((id: number) => number);\n\"nodeSetLightType\": ((id: number, lightType: number) => void);\n\"nodeGetPower\": ((id: number) => number);\n\"nodeSetPower\": ((id: number, power: number) => void);\n\"nodeGetText\": ((id: number) => string);\n\"nodeSetText\": ((id: number, text: string) => void);\n\"nodeGetFont\": ((id: number) => string);\n\"nodeSetFont\": ((id: number, font: string) => void);\n\"nodeGetWeight\": ((id: number) => number);\n\"nodeSetWeight\": ((id: number, weight: number) => void);\n\"nodeGetItalic\": ((id: number) => false | true);\n\"nodeSetItalic\": ((id: number, italic: false | true) => void);\n\"nodeGetAlign\": ((id: number) => number);\n\"nodeSetAlign\": ((id: number, align: number) => void);\n\"nodeGetWrap\": ((id: number) => number);\n\"nodeSetWrap\": ((id: number, wrap: number) => void);\n\"nodeGetWidth\": ((id: number) => number);\n\"nodeSetWidth\": ((id: number, width: number) => void);\n\"nodeGetSpacing\": ((id: number) => number);\n\"nodeSetSpacing\": ((id: number, spacing: number) => void);\n\"nodeGetLineHeight\": ((id: number) => number);\n\"nodeSetLineHeight\": ((id: number, lineHeight: number) => void);\n\"nodeGetDensity\": ((id: number) => number);\n\"nodeSetDensity\": ((id: number, density: number) => void);\n\"nodeGetRoundness\": ((id: number) => number);\n\"nodeSetRoundness\": ((id: number, roundness: number) => void);\n\"nodeGetSmoothing\": ((id: number) => number);\n\"nodeSetSmoothing\": ((id: number, smoothing: number) => void);\n\"nodeGetPrimType\": ((id: number) => number);\n\"nodeSetPrimType\": ((id: number, primitive: number) => void);\n\"nodeGetMirror\": ((id: number, slot: number) => {\n\"axis\": \"custom\" | \"x\" | \"y\" | \"z\" | \"disabled\";\n\"planePosition\": number;\n\"goop\": number;\n});\n\"nodeSetMirror\": ((id: number, slot: number, axis: \"x\" | \"y\" | \"z\" | \"disabled\", planePosition?: number, goop?: number) => void);\n\"nodeGetThickness\": ((id: number) => number);\n\"nodeSetThickness\": ((id: number, thickness: number) => void);\n\"curveGetClosed\": ((curveId: number) => false | true);\n\"curveSetClosed\": ((curveId: number, closed: false | true) => void);\n\"curvePointGetHandleIn\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointGetHandleOut\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointSetHandleIn\": ((curveId: number, pointIndex: number, value: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointSetHandleOut\": ((curveId: number, pointIndex: number, value: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointCount\": ((curveId: number) => number);\n\"curvePointAdd\": ((curveId: number, point: {\n\"name\"?: undefined | string;\n\"pos\"?: undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"rot\"?: undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"size\"?: undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"fixed\"?: undefined | false | true;\n\"round\"?: undefined | number;\n\"materialId\"?: undefined | number;\n}, pointIndex?: undefined | number) => number);\n\"curvePointRemove\": ((curveId: number, pointIndex: number) => void);\n\"curvePointGetName\": ((curveId: number, pointIndex: number) => string);\n\"curvePointSetName\": ((curveId: number, pointIndex: number, name: string) => void);\n\"curvePointGetPos\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointSetPos\": ((curveId: number, pointIndex: number, position: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointGetRot\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointSetRot\": ((curveId: number, pointIndex: number, rotation: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointGetSize\": ((curveId: number, pointIndex: number) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"curvePointSetSize\": ((curveId: number, pointIndex: number, sizeValue: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => void);\n\"curvePointGetFixed\": ((curveId: number, pointIndex: number) => false | true);\n\"curvePointSetFixed\": ((curveId: number, pointIndex: number, fixed: false | true) => void);\n\"curvePointGetRound\": ((curveId: number, pointIndex: number) => number);\n\"curvePointSetRound\": ((curveId: number, pointIndex: number, round: number) => void);\n\"curvePointGetMaterialId\": ((curveId: number, pointIndex: number) => null | number);\n\"curvePointSetMaterialId\": ((curveId: number, pointIndex: number, materialId: number) => void);\n\"materialImport\": ((name: string) => Promise<number>);\n\"materialCreate\": (() => number);\n\"materialDelete\": ((id: number) => void);\n\"materialList\": (() => Array<number>);\n\"materialGetName\": ((id: number) => string);\n\"materialSetName\": ((id: number, name: string) => void);\n\"materialGetTier\": ((id: number) => number);\n\"materialSetTier\": ((id: number, tier: number) => void);\n\"materialGetColor\": ((id: number) => {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n});\n\"materialSetColor\": ((id: number, color: {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n\"materialGetSecondaryColor\": ((id: number) => {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n});\n\"materialSetSecondaryColor\": ((id: number, color: {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n\"materialGetSubsurfaceColor\": ((id: number) => {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n});\n\"materialSetSubsurfaceColor\": ((id: number, color: {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n\"materialGetRoughness\": ((id: number) => number);\n\"materialSetRoughness\": ((id: number, value: number) => void);\n\"materialGetMetalness\": ((id: number) => number);\n\"materialSetMetalness\": ((id: number, value: number) => void);\n\"materialGetTransmittance\": ((id: number) => number);\n\"materialSetTransmittance\": ((id: number, value: number) => void);\n\"materialGetTranslucency\": ((id: number) => number);\n\"materialSetTranslucency\": ((id: number, value: number) => void);\n\"materialGetIor\": ((id: number) => number);\n\"materialSetIor\": ((id: number, value: number) => void);\n\"materialGetSheen\": ((id: number) => number);\n\"materialSetSheen\": ((id: number, value: number) => void);\n\"materialGetSheenRoughness\": ((id: number) => number);\n\"materialSetSheenRoughness\": ((id: number, value: number) => void);\n\"materialGetSpecularTint\": ((id: number) => number);\n\"materialSetSpecularTint\": ((id: number, value: number) => void);\n\"materialGetAbsorption\": ((id: number) => number);\n\"materialSetAbsorption\": ((id: number, value: number) => void);\n\"materialGetEmission\": ((id: number) => number);\n\"materialSetEmission\": ((id: number, value: number) => void);\n\"materialGetIridescence\": ((id: number) => number);\n\"materialSetIridescence\": ((id: number, value: number) => void);\n\"materialGetTranslucencyWeight\": ((id: number) => number);\n\"materialSetTranslucencyWeight\": ((id: number, value: number) => void);\n\"materialGetDispersion\": ((id: number) => number);\n\"materialSetDispersion\": ((id: number, value: number) => void);\n\"materialGetSurfaceOpacity\": ((id: number) => number);\n\"materialSetSurfaceOpacity\": ((id: number, value: number) => void);\n\"listFontFamilies\": (() => Array<{\n\"name\": string;\n\"variants\": Array<{\n\"weight\": string;\n\"italic\": false | true;\n}>;\n}>);\n\"print\": ((...values: Array<unknown>) => void);\n\"nodeGetAABB\": ((id: number) => Promise<{\n\"min\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"max\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n}>);\n\"nodeResize\": ((id: number, dimensions: {\n\"x\"?: undefined | number;\n\"y\"?: undefined | number;\n\"z\"?: undefined | number;\n}) => Promise<void>);\n\"aabbCenter\": ((box: {\n\"min\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"max\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n}) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"aabbRadius\": ((box: {\n\"min\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"max\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n}) => number);\n\"lookAt\": ((origin: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}, target: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}) => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"alignAxis\": ((direction: {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n}, axis: \"x\" | \"y\" | \"z\") => {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n});\n\"scenePropertiesRead\": (() => {\n\"hdr_name\": undefined | string;\n\"hdr_multiplier\": undefined | number;\n\"hdr_orientation\": undefined | {\n\"x\": number;\n\"y\": number;\n};\n\"backdrop_color1\": undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"backdrop_color2\": undefined | {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"backdrop_grad_offset\": undefined | {\n\"x\": number;\n\"y\": number;\n};\n});\n\"listHDRs\": (() => Array<string>);\n\"setHdrName\": ((name: string) => void);\n\"setHdrMultiplier\": ((multiplier: number) => void);\n\"setHdrOrientation\": ((orientation: {\n\"x\": number;\n\"y\": number;\n}) => void);\n\"setBackgroundColor\": ((color: {\n\"r\": number;\n\"g\": number;\n\"b\": number;\n}) => void);\n}) => T | Promise<T>), expectedRevision: string) => Promise<T>);\n\"screenshot\": ((options?: undefined | {\n\"camera\"?: undefined | {\n\"position\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"target\": {\n\"x\": number;\n\"y\": number;\n\"z\": number;\n};\n\"projection\"?: undefined | \"perspective\" | \"orthographic\";\n\"horizontalFovDegrees\"?: undefined | number;\n\"orthographicWidth\"?: undefined | number;\n};\n}) => Promise<{\n\"id\": string;\n\"mediaType\": string;\n\"name\"?: undefined | string;\n}>);\n} };\ndeclare function print(...values: unknown[]): void;\ndeclare function emitImage(ref: { id: string; mediaType: string; name?: string }, options?: { inspect?: boolean }): Promise<void>;\ndeclare function emitFile(ref: { id: string; mediaType: string; name?: string }): Promise<void>;\n";
@@ -1,4 +1,4 @@
1
- import { astNameToTitle, valueBackendName, isArrayPortType } from "./common.js";
1
+ import { astNameToTitle, defaultScalar, valueBackendName, isArrayPortType, } from "./common.js";
2
2
  class GraphBuilder {
3
3
  nextId = 0;
4
4
  nodes = {};
@@ -61,6 +61,8 @@ function isDefaultValue(value, port, dialectPort) {
61
61
  return false;
62
62
  if (dialectPort?.enum)
63
63
  return false;
64
+ if (defaultScalar(port) === null)
65
+ return false;
64
66
  if (value === 0)
65
67
  return true;
66
68
  if (isZeroVec(value))
@@ -24,7 +24,7 @@
24
24
  "values": [
25
25
  "Sphere",
26
26
  "Cylinder",
27
- "Box",
27
+ "Cube",
28
28
  "Cone",
29
29
  "Torus",
30
30
  "Link",
@@ -132,6 +132,16 @@
132
132
  "to": "Vec3",
133
133
  "desc": "take first element"
134
134
  },
135
+ {
136
+ "from": "Vec3[]",
137
+ "to": "Float",
138
+ "desc": "take first element, then X"
139
+ },
140
+ {
141
+ "from": "Float[]",
142
+ "to": "Float",
143
+ "desc": "take first element"
144
+ },
135
145
  {
136
146
  "from": "Float",
137
147
  "to": "Int",
@@ -176,7 +186,7 @@
176
186
  " -Ellipsoid: x=width, y=height, z=depth.",
177
187
  " -Cylinder: x=width, y=height.",
178
188
  " -Capsule: x=width, y=height.",
179
- " -Box: x=width, y=height, z=depth.",
189
+ " -Cube: x=width, y=height, z=depth.",
180
190
  " -Cone: x=base width, y=height.",
181
191
  " -Torus: x=outer diameter, y=tube thickness.",
182
192
  " -Link: x=width, y=height, z=tube thickness.",
@@ -247,27 +257,33 @@
247
257
  {
248
258
  "name": "Operation",
249
259
  "type": "BooleanOp",
250
- "enum": "BooleanOp"
260
+ "enum": "BooleanOp",
261
+ "desc": "Subtract removes B from A; A is the body that survives and B is the cutter. Operations apply in graph order, so Subtract also removes B from geometry unioned into A earlier."
251
262
  },
252
263
  {
253
264
  "name": "A",
254
- "type": "Geometry"
265
+ "type": "Geometry",
266
+ "desc": "base geometry"
255
267
  },
256
268
  {
257
269
  "name": "B",
258
- "type": "Geometry"
270
+ "type": "Geometry",
271
+ "desc": "geometry applied to A by Operation; the cutter for Subtract"
259
272
  },
260
273
  {
261
274
  "name": "Blend",
262
275
  "type": "Float",
263
276
  "desc": [
264
- "Goop: smooth blend where A and B meet; 0.0 = sharp edge.",
265
- "Blend uses native units. In JavaScript, define const BLEND_UNITS_PER_MM = 51.2; and supply radiusMm * BLEND_UNITS_PER_MM (10 mm = 512). This matches scene-editing's millimetre blend radius before parent scaling; do not multiply by project unitMultiplier."
277
+ "Goop: smooth blend where A and B meet; 0.0 = sharp edge. Applies to B's join onto A, not to the pair.",
278
+ "Requires A and B to overlap: a blend between separated geometry produces nothing and reports no error.",
279
+ "Blend is the only port here NOT in millimetres; it takes native units at 51.2 per millimetre, while Position and Size are millimetres.",
280
+ "Convert with a node, never an inline expression: node blend_native MathFloat Operation=Multiply A=blend_radius_mm B=51.2 then Blend=blend_native.Result. Never pass a millimetre radius straight into Blend, and never multiply it by project unitMultiplier."
266
281
  ]
267
282
  },
268
283
  {
269
284
  "name": "Material_Neutral_Cutout",
270
- "type": "Bool"
285
+ "type": "Bool",
286
+ "optional": true
271
287
  }
272
288
  ],
273
289
  "outputs": [
@@ -480,6 +496,34 @@
480
496
  "Does NOT duplicate geometry (use InstancePrimitive to duplicate)."
481
497
  ]
482
498
  },
499
+ {
500
+ "name": "SetMaterial",
501
+ "type": "3226231876",
502
+ "inputs": [
503
+ {
504
+ "name": "Material",
505
+ "type": "Int",
506
+ "desc": "existing scene material ID"
507
+ },
508
+ {
509
+ "name": "Geometry",
510
+ "type": "Geometry"
511
+ }
512
+ ],
513
+ "outputs": [
514
+ {
515
+ "name": "Geometry",
516
+ "type": "Geometry"
517
+ }
518
+ ],
519
+ "semantics": [
520
+ "Assigns Material to every primitive in Geometry; geometry passes through unchanged.",
521
+ "Material=<id> takes an existing scene material ID, never a color, name, or hex.",
522
+ "Material=0 selects the scene default material.",
523
+ "A Boolean preserves each operand's materials, so paint branches before combining them; painting after a union assigns one material to everything.",
524
+ "Does NOT create or edit materials (use scene-editing to create or import one, then pass the ID it returns)."
525
+ ]
526
+ },
483
527
  {
484
528
  "name": "SwitchGeometry",
485
529
  "type": "251928043",
@@ -976,4 +1020,4 @@
976
1020
  ]
977
1021
  }
978
1022
  ]
979
- }
1023
+ }
package/dist/geometry.js CHANGED
@@ -9,9 +9,10 @@ export function geometryReference() {
9
9
  reference ??= {
10
10
  rules: `Write one statement per line:
11
11
  param Float width = 20.0 min=1 max=100 step=1
12
- node box Primitive Type=Box Position=Vec3(0.0,0.0,0.0) Rotation=Vec3(0.0,0.0,0.0) Size=width Roundness=0.0
12
+ node box Primitive Type=Cube Position=Vec3(0.0,0.0,0.0) Rotation=Vec3(0.0,0.0,0.0) Size=width Roundness=0.0
13
13
  out Geometry=box.Geometry
14
14
  Use decimal components in Vec3 parameter/constant literals, e.g. Vec3(20.0,20.0,20.0). Output name is case-sensitive: Geometry.
15
+ Exactly one cast applies per port and casts do not chain: Float[] -> Vec3 is unavailable even though Float[] -> Float and Float -> Vec3 are both listed. Build the vector with CombineXYZ instead.
15
16
  ${flowir.renderDslRulesBlock()}`,
16
17
  catalog: flowir.renderSchemaBlock(flowirRegistry.getSchema()),
17
18
  };
@@ -27,7 +27,7 @@ export function convertSparkMessages(messages, tools) {
27
27
  }
28
28
  return {
29
29
  ...message,
30
- parts: message.parts.filter((part) => part.type !== "file" || !previews.has(part.url)),
30
+ parts: message.parts.filter((part) => part.type !== "file" || (!previews.has(part.url) && part.providerMetadata?.spark?.inspect !== false)),
31
31
  };
32
32
  });
33
33
  return convertToModelMessages(history, { tools });
package/dist/prompt.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const SPARK_AGENT_PROMPT = "You are Spark, Womp's unified assistant.\nUse read_skill to discover the APIs needed for the user's request. Skills provide TypeScript\ndeclarations for documentation; execute_javascript runs JavaScript, with top-level await.\nOnly the listed capabilities are available. Reading a skill does not grant additional permissions.\nUse only the supplied womp APIs and output helpers to access application services and state.\nIf a capability is unavailable, explain what is missing and ask the user to enable it when applicable.\nDo not work around missing capabilities by inspecting page globals, DOM or framework internals,\nor making direct network requests. Native execution is not a security sandbox; it does not expand\nthe supported API or the user's granted capabilities.\nEach execution has fresh local variables. Keep stable object, job, and artifact references.\nUse print for concise, filtered observations; await emitImage or emitFile with a host-issued artifact\nreference to show actual output. Inspect the scene before editing and verify the committed result.\nPreserve existing content unless the user asks to replace or delete it. Use the latest target revision\nwhen a write requires one. Capabilities own transactions: an entire script is not atomic.\nIf an operation fails after earlier effects, use its receipts to inspect and retry only unresolved work.\nNever claim an uncertain commit rolled back. Never resubmit a job just because waiting timed out.\nComplete related work in this conversation without delegating to another agent. Report limits,\nunsupported actions, cancellation, and incomplete work truthfully. Finish with a concise explanation\nof the result in the user's language; keep implementation details out of that explanation.\n\nCreation intent\n\nChoose the workflow from the user's intended result and the conversation.\nDescribe choices by their outcome, not internal tools.\n\n- Use editable CAD for printable, measured, mechanical, or real-world-fit\n objects. Ask about missing dimensions only when a sensible default would\n likely make the result wrong. CAD is the preferred printing workflow;\n do not claim print readiness without supporting validation.\n\n- Build directly in the scene for ordinary 3D requests, including \u201C3D X\u201D\n and \u201Cmake X in 3D,\u201D and when the user wants individually editable shapes\n or geometry that blends with existing objects. Printable, measured,\n or mechanical intent takes precedence and routes to CAD.\n\n- Use mesh generation when the user explicitly requests a mesh, asks to\n turn an existing image into 3D, or chooses a sculpted result rather than\n individually editable shapes.\n\n- Use image generation for pictures, logos, concept art, wallpapers,\n and other clearly visual output.\n\n- For an ambiguous creative request without explicit 3D or printing intent,\n generate one image preview first. Then offer one short, outcome-based\n choice: refine the image, turn it into a sculpted 3D piece, or build it\n from individually editable shapes. Offer adjustable CAD instead of\n editable shapes when the subject is measured or must fit something real.\n\n- When a requested 3D subject needs fine sculpted detail or realism that\n editable shapes cannot reasonably capture, ask before building:\n a sculpted result from an image preview, or a simpler editable-shape build.\n Respect an explicit choice already made by the user.\n\n- When the user chooses editable shapes or CAD after a preview, preserve\n its palette, proportions, and defining features. When they choose a\n sculpted result, use that preview as the image-to-mesh input rather\n than starting again from a text prompt.\n\n- If the user wants repeated generation variations and Flow is available,\n offer a reusable Flow workflow.\n\n- Ask at most one focused question at a time, only when a sensible default\n would likely produce the wrong outcome. Do not repeat resolved questions.\n Interpret replies using the preceding offer; if several options were\n offered and \u201Cyes\u201D does not identify one, clarify briefly.\n\n- Treat a clear answer to your question as an instruction to proceed.\n Continue from existing results rather than restarting the workflow.\n\nOffer only workflows available in this host. Follow their authorization\nand confirmation requirements before generation or scene changes.";
1
+ export declare const SPARK_AGENT_PROMPT = "You are Spark, Womp's unified assistant.\nUse read_skill to discover the APIs needed for the user's request. Skills provide TypeScript\ndeclarations for documentation; execute_javascript runs JavaScript, with top-level await.\nOnly the listed capabilities are available. Reading a skill does not grant additional permissions.\nUse only the supplied womp APIs and output helpers to access application services and state.\nIf a capability is unavailable, explain what is missing and ask the user to enable it when applicable.\nDo not work around missing capabilities by inspecting page globals, DOM or framework internals,\nor making direct network requests. Native execution is not a security sandbox; it does not expand\nthe supported API or the user's granted capabilities.\nGive each execute_javascript call a concise present-progressive purpose, such as \"Generating a car image\", \"Inspecting the scene\", or \"Importing the model\". Write purpose before code.\nEach execution has fresh local variables. Keep stable object, job, and artifact references.\nUse print for concise, filtered observations; await emitImage or emitFile with a host-issued artifact\nreference to show actual output. emitImage inspects by default; use { inspect: false } to display without adding image bytes to model context.\nCompleted generations are shown automatically to the user; image bytes are intentionally omitted from your context. Acknowledge completion without listing, re-emitting, or inspecting outputs unless the task requires it. Use returned artifact references for follow-up work.\nDo not claim visual verification without inspecting the image. Missing artifact references must be recovered or reported; omitted image bytes alone are not a missing result.\nInspect the scene before editing and verify the committed result.\nPreserve existing content unless the user asks to replace or delete it. Use the latest target revision\nwhen a write requires one. Capabilities own transactions: an entire script is not atomic.\nIf an operation fails after earlier effects, use its receipts to inspect and retry only unresolved work.\nNever claim an uncertain commit rolled back. Never resubmit a job just because waiting timed out.\nComplete related work in this conversation without delegating to another agent. Report limits,\nunsupported actions, cancellation, and incomplete work truthfully. Finish with a concise explanation\nof the result in the user's language; keep implementation details out of that explanation.\n\nCreation intent\n\nChoose the workflow from the user's intended result and the conversation.\nDescribe choices by their outcome, not internal tools.\n\n- Use editable CAD for printable, measured, mechanical, or real-world-fit\n objects. Ask about missing dimensions only when a sensible default would\n likely make the result wrong. CAD is the preferred printing workflow;\n do not claim print readiness without supporting validation.\n\n- Build directly in the scene for ordinary 3D requests, including \u201C3D X\u201D\n and \u201Cmake X in 3D,\u201D and when the user wants individually editable shapes\n or geometry that blends with existing objects. Printable, measured,\n or mechanical intent takes precedence and routes to CAD.\n\n- Use mesh generation when the user explicitly requests a mesh, asks to\n turn an existing image into 3D, or chooses a sculpted result rather than\n individually editable shapes.\n\n- Use image generation for pictures, logos, concept art, wallpapers,\n and other clearly visual output.\n\n- For an ambiguous creative request without explicit 3D or printing intent,\n generate one image preview first. Then offer one short, outcome-based\n choice: refine the image, turn it into a sculpted 3D piece, or build it\n from individually editable shapes. Offer adjustable CAD instead of\n editable shapes when the subject is measured or must fit something real.\n\n- When a requested 3D subject needs fine sculpted detail or realism that\n editable shapes cannot reasonably capture, ask before building:\n a sculpted result from an image preview, or a simpler editable-shape build.\n Respect an explicit choice already made by the user.\n\n- When the user chooses editable shapes or CAD after a preview, preserve\n its palette, proportions, and defining features. When they choose a\n sculpted result, use that preview as the image-to-mesh input rather\n than starting again from a text prompt.\n\n- If the user wants repeated generation variations and Flow is available,\n offer a reusable Flow workflow.\n\n- Ask at most one focused question at a time, only when a sensible default\n would likely produce the wrong outcome. Do not repeat resolved questions.\n Interpret replies using the preceding offer; if several options were\n offered and \u201Cyes\u201D does not identify one, clarify briefly.\n\n- Treat a clear answer to your question as an instruction to proceed.\n Continue from existing results rather than restarting the workflow.\n\nOffer only workflows available in this host. Follow their authorization\nand confirmation requirements before generation or scene changes.";