@hraness/slopcamera 3.2.7 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE.md +1 -7
- package/PRIVACY.md +16 -7
- package/README.md +65 -20
- package/apps/desktop/README.md +14 -130
- package/apps/desktop/application/context.ts +6 -9
- package/apps/desktop/application/default-registry.ts +26 -10
- package/apps/desktop/application/operation.ts +14 -5
- package/apps/desktop/application/operations/index.ts +4 -1
- package/apps/desktop/application/operations/spatial-behavior.ts +151 -0
- package/apps/desktop/application/operations/spatial-direction.ts +222 -0
- package/apps/desktop/application/operations/spatial-rendered-audit.ts +174 -0
- package/apps/desktop/application/operations/spatial-review.ts +194 -0
- package/apps/desktop/application/operations/spatial-scene.ts +25 -1
- package/apps/desktop/application/registry.ts +2 -2
- package/apps/desktop/application/spatial-asset-admission.ts +201 -0
- package/apps/desktop/application/spatial-assets.ts +160 -31
- package/apps/desktop/application/spatial-render.ts +217 -20
- package/apps/desktop/application/spatial-rendered-audit.ts +273 -0
- package/apps/desktop/application/spatial-review.ts +361 -0
- package/apps/desktop/application/spatial-spz.ts +48 -3
- package/apps/desktop/application/spatial-world-import.ts +26 -5
- package/apps/desktop/application/spatial-world-metadata.ts +105 -0
- package/apps/desktop/cli/args.ts +528 -97
- package/apps/desktop/cli/capability-manifest.ts +374 -0
- package/apps/desktop/cli/cinema-renderer.ts +608 -0
- package/apps/desktop/cli/command-host-resources.ts +31 -2
- package/apps/desktop/cli/commands.ts +1215 -70
- package/apps/desktop/cli/gateway-review-provider.ts +334 -0
- package/apps/desktop/cli/help.ts +183 -23
- package/apps/desktop/cli/html-scene.ts +139 -28
- package/apps/desktop/cli/io.ts +2 -1
- package/apps/desktop/cli/main.ts +26 -50
- package/apps/desktop/cli/menubar.ts +244 -0
- package/apps/desktop/cli/music-analysis-service.ts +61 -0
- package/apps/desktop/cli/portable-surface.ts +18 -5
- package/apps/desktop/cli/spatial-asset-service.ts +124 -0
- package/apps/desktop/cli/spatial-design-service.ts +237 -0
- package/apps/desktop/cli/spatial-generate-service.ts +370 -0
- package/apps/desktop/cli/spatial-scene-service.ts +268 -4
- package/apps/desktop/cli/workflow-code.ts +1 -1
- package/apps/desktop/code/application-node-planner.ts +0 -47
- package/apps/desktop/code/host-source-layout.ts +46 -0
- package/apps/desktop/code/public.ts +0 -1
- package/apps/desktop/code/runtime-identity.ts +50 -8
- package/apps/desktop/code/semantic-builder.ts +24 -43
- package/apps/desktop/code/source-bundle.ts +23 -6
- package/apps/desktop/code/source-typecheck.ts +131 -43
- package/apps/desktop/code/worker-client.ts +14 -2
- package/apps/desktop/contracts/cinema.ts +736 -0
- package/apps/desktop/contracts/index.ts +1 -0
- package/apps/desktop/contracts/spatial-asset.ts +16 -0
- package/apps/desktop/contracts/spatial-world.ts +26 -3
- package/apps/desktop/core/cinema-plan.ts +1320 -0
- package/apps/desktop/core/index.ts +1 -0
- package/apps/desktop/core/music-analysis.ts +124 -1
- package/apps/desktop/core/storage.ts +75 -0
- package/apps/desktop/dist/cli/main.js +737 -291
- package/apps/desktop/html-overlay/audio-reactivity.ts +127 -0
- package/apps/desktop/html-overlay/index.ts +9 -0
- package/apps/desktop/html-overlay/runtime.ts +2 -0
- package/apps/desktop/html-overlay/scene.ts +29 -0
- package/apps/desktop/html-overlay/spatial.ts +619 -57
- package/apps/desktop/workflows/cinematic-world.ts +127 -0
- package/apps/desktop/workflows/index.ts +6 -0
- package/dist/cli.js +32 -434
- package/dist/code/advanced.js +1 -269
- package/dist/code/index.js +16 -2239
- package/dist/generate.js +1 -23
- package/dist/host-resources.js +1 -25
- package/dist/index-0bbesn4m.js +35 -0
- package/dist/index-296qhpf2.js +3 -0
- package/dist/index-3cxf2c58.js +3 -0
- package/dist/index-77fjfg9f.js +3 -0
- package/dist/index-80a36bc0.js +3 -0
- package/dist/index-a3vvs3rf.js +3 -0
- package/dist/index-b3geqczn.js +5 -0
- package/dist/index-cgpkyjqa.js +3 -0
- package/dist/index-f0ptv8dm.js +7 -0
- package/dist/index-grk47tgs.js +3 -0
- package/dist/index-qry58nj2.js +10 -0
- package/dist/index.js +1 -240
- package/dist/operations.js +1 -28
- package/dist/skill-install-gx7afxsd.js +2 -0
- package/dist/vectorize/worker.js +1 -141
- package/dist/workflow.js +1 -15
- package/docs/README.md +5 -1
- package/docs/studio.md +1 -1
- package/package.json +11 -24
- package/skills/slopcamera/SKILL.md +14 -1
- package/skills/slopcamera/references/diagrams.md +5 -14
- package/skills/slopcamera/references/directed-scenes.md +22 -2
- package/skills/slopcamera/references/gateway-media.md +15 -1
- package/skills/slopcamera/references/image-galleries.md +166 -0
- package/skills/slopcamera/references/install.md +2 -2
- package/skills/slopcamera/references/music-video.md +23 -3
- package/skills/slopcamera/references/parametric-design.md +14 -0
- package/skills/slopcamera/references/reference-led-3d.md +1 -1
- package/skills/slopcamera/references/scene-building.md +32 -0
- package/skills/slopcamera/references/social-collage-banners.md +204 -0
- package/skills/slopcamera/references/support.md +25 -0
- package/skills/slopcamera/references/web-media-excerpts.md +120 -0
- package/skills/slopcamera/references/workflows-sdk.md +3 -3
- package/skills/slopcamera/scripts/compose-social-collage-banner.ts +728 -0
- package/src/capability-manifest.ts +361 -0
- package/src/cli.ts +250 -102
- package/src/code/canonical-json.ts +9 -0
- package/src/generate.ts +2 -2
- package/src/icon.ts +1111 -0
- package/src/image-gallery.ts +1049 -0
- package/src/index.ts +11 -23
- package/src/mcp/boundary.ts +11 -11
- package/src/mcp/index.ts +3 -0
- package/src/mcp/server.ts +2 -1
- package/src/mcp/tools.ts +1642 -130
- package/src/mcp/types.ts +19 -0
- package/src/operations.ts +412 -0
- package/src/portable-capability-manifest.ts +67 -0
- package/src/scene-gallery.ts +184 -0
- package/src/spatial-scene/asset-admission.ts +183 -0
- package/src/spatial-scene/audit-rendered.ts +692 -0
- package/src/spatial-scene/audit.ts +617 -0
- package/src/spatial-scene/behavior-audit.ts +252 -0
- package/src/spatial-scene/behavior-bake.ts +233 -0
- package/src/spatial-scene/behavior-fns.ts +585 -0
- package/src/spatial-scene/behavior-gallery.ts +109 -0
- package/src/spatial-scene/behavior-stdlib.ts +323 -0
- package/src/spatial-scene/behavior-trace.ts +325 -0
- package/src/spatial-scene/behavior.ts +618 -0
- package/src/spatial-scene/build.ts +632 -0
- package/src/spatial-scene/camera-rig.ts +125 -0
- package/src/spatial-scene/camera-track.ts +4 -2
- package/src/spatial-scene/character.ts +124 -0
- package/src/spatial-scene/contracts.ts +75 -7
- package/src/spatial-scene/design-templates.ts +351 -0
- package/src/spatial-scene/design.ts +327 -0
- package/src/spatial-scene/direction-compile.ts +584 -0
- package/src/spatial-scene/direction.ts +122 -0
- package/src/spatial-scene/effects.ts +149 -0
- package/src/spatial-scene/evaluate.ts +109 -29
- package/src/spatial-scene/gallery.ts +277 -0
- package/src/spatial-scene/generate.ts +239 -0
- package/src/spatial-scene/geometry-native.ts +165 -0
- package/src/spatial-scene/geometry.ts +1216 -0
- package/src/spatial-scene/gltf.ts +600 -77
- package/src/spatial-scene/identity.ts +55 -2
- package/src/spatial-scene/index.ts +36 -0
- package/src/spatial-scene/inspect.ts +35 -6
- package/src/spatial-scene/material-lighting.ts +609 -0
- package/src/spatial-scene/math.ts +21 -4
- package/src/spatial-scene/motion-evidence.ts +88 -0
- package/src/spatial-scene/parametric.ts +765 -0
- package/src/spatial-scene/particle-preparation.ts +183 -0
- package/src/spatial-scene/particle.ts +195 -0
- package/src/spatial-scene/patch.ts +109 -15
- package/src/spatial-scene/performance.ts +1613 -0
- package/src/spatial-scene/probe.ts +137 -0
- package/src/spatial-scene/recipe-pack.ts +86 -0
- package/src/spatial-scene/render-effects.ts +240 -0
- package/src/spatial-scene/review.ts +639 -0
- package/src/spatial-scene/simulation-bake.ts +206 -0
- package/src/spatial-scene/simulation.ts +187 -0
- package/src/spatial-scene/solve.ts +366 -0
- package/src/spatial-scene/temporal-audit.ts +354 -0
- package/src/support-completion.ts +16 -0
- package/src/support.ts +42 -0
- package/src/version.ts +1 -1
- package/apps/desktop/application/operations/recording/index.ts +0 -5
- package/apps/desktop/application/operations/recording/pause.ts +0 -34
- package/apps/desktop/application/operations/recording/resume.ts +0 -34
- package/apps/desktop/application/operations/recording/shared.ts +0 -199
- package/apps/desktop/application/operations/recording/start.ts +0 -169
- package/apps/desktop/application/operations/recording/stop.ts +0 -34
- package/apps/desktop/capture/protocol.ts +0 -689
- package/apps/desktop/cli/capture-bundle.ts +0 -1117
- package/apps/desktop/cli/recording-controller.ts +0 -1567
- package/apps/desktop/cli/recording-daemon.ts +0 -931
- package/dist/index-42zsesc1.js +0 -2257
- package/dist/index-7308egqr.js +0 -48
- package/dist/index-8txs6fkn.js +0 -712
- package/dist/index-mcy8z0br.js +0 -192
- package/dist/index-p63wavx0.js +0 -2029
- package/dist/index-r7gdhmsp.js +0 -424
- package/dist/index-rvghzt7b.js +0 -2013
- package/dist/index-sh6xbav6.js +0 -1219
- package/dist/index-z1w83f81.js +0 -4
- package/dist/index-z7239b4h.js +0 -2363
- package/dist/skill-install-dh0ntqba.js +0 -10
- package/src/desktop.ts +0 -253
package/src/index.ts
CHANGED
|
@@ -4,20 +4,13 @@ import {
|
|
|
4
4
|
readDiagramFile,
|
|
5
5
|
renderDiagramFile,
|
|
6
6
|
} from "./artifacts.js"
|
|
7
|
-
import {
|
|
8
|
-
desktopDownloadPage,
|
|
9
|
-
desktopStatus,
|
|
10
|
-
findDesktopApplication,
|
|
11
|
-
getLatestDesktopRelease,
|
|
12
|
-
installDesktop,
|
|
13
|
-
openInDesktop,
|
|
14
|
-
selectDesktopAsset,
|
|
15
|
-
} from "./desktop.js"
|
|
16
7
|
import {
|
|
17
8
|
generateSlopcameraImage,
|
|
18
9
|
generateSlopcameraImageFile,
|
|
19
10
|
slopcameraGatewayCredentialStatus,
|
|
20
11
|
} from "./generate.js"
|
|
12
|
+
import { generateSlopcameraIcon } from "./icon.js"
|
|
13
|
+
import { generateSlopcameraImageGallery } from "./image-gallery.js"
|
|
21
14
|
import { builtInIcons } from "./icons.js"
|
|
22
15
|
import {
|
|
23
16
|
resolveDiagramSource,
|
|
@@ -64,27 +57,23 @@ export const slopcameraApi = Object.freeze({
|
|
|
64
57
|
builtInIcons,
|
|
65
58
|
bundledSkillPath,
|
|
66
59
|
checkDiagramFile,
|
|
67
|
-
desktopDownloadPage,
|
|
68
|
-
desktopStatus,
|
|
69
60
|
defineSlopcameraWorkflow,
|
|
70
61
|
DiagramValidationError,
|
|
71
|
-
findDesktopApplication,
|
|
72
62
|
generateSlopcameraImage,
|
|
73
63
|
generateSlopcameraImageFile,
|
|
74
|
-
|
|
64
|
+
generateSlopcameraImageGallery,
|
|
65
|
+
generateSlopcameraIcon,
|
|
75
66
|
slopcameraGatewayCredentialStatus,
|
|
76
67
|
slopcameraMcpProtocolVersion,
|
|
77
68
|
slopcameraMcpServerName,
|
|
78
69
|
slopcameraMcpTools,
|
|
79
70
|
slopcameraOperationRegistry,
|
|
80
71
|
SlopcameraMcpToolRuntime,
|
|
81
|
-
installDesktop,
|
|
82
72
|
installSkill,
|
|
83
73
|
lintDiagram,
|
|
84
74
|
mcpMaximumRenderedPixels,
|
|
85
75
|
mcpMaximumScale,
|
|
86
76
|
mcpSourceByteLimit,
|
|
87
|
-
openInDesktop,
|
|
88
77
|
parseDiagramSource,
|
|
89
78
|
parseDiagramSpec,
|
|
90
79
|
readDiagramFile,
|
|
@@ -97,7 +86,6 @@ export const slopcameraApi = Object.freeze({
|
|
|
97
86
|
runSlopcameraWorkflow,
|
|
98
87
|
runMcpServer,
|
|
99
88
|
searchSlopcameraOperations,
|
|
100
|
-
selectDesktopAsset,
|
|
101
89
|
serializeTldr,
|
|
102
90
|
stackLayoutDefaults,
|
|
103
91
|
StackLayoutError,
|
|
@@ -116,26 +104,22 @@ export {
|
|
|
116
104
|
builtInIcons,
|
|
117
105
|
bundledSkillPath,
|
|
118
106
|
checkDiagramFile,
|
|
119
|
-
desktopDownloadPage,
|
|
120
|
-
desktopStatus,
|
|
121
107
|
DiagramValidationError,
|
|
122
|
-
findDesktopApplication,
|
|
123
108
|
generateSlopcameraImage,
|
|
124
109
|
generateSlopcameraImageFile,
|
|
125
|
-
|
|
110
|
+
generateSlopcameraImageGallery,
|
|
111
|
+
generateSlopcameraIcon,
|
|
126
112
|
slopcameraGatewayCredentialStatus,
|
|
127
113
|
slopcameraMcpProtocolVersion,
|
|
128
114
|
slopcameraMcpServerName,
|
|
129
115
|
slopcameraMcpTools,
|
|
130
116
|
slopcameraOperationRegistry,
|
|
131
117
|
SlopcameraMcpToolRuntime,
|
|
132
|
-
installDesktop,
|
|
133
118
|
installSkill,
|
|
134
119
|
lintDiagram,
|
|
135
120
|
mcpMaximumRenderedPixels,
|
|
136
121
|
mcpMaximumScale,
|
|
137
122
|
mcpSourceByteLimit,
|
|
138
|
-
openInDesktop,
|
|
139
123
|
parseDiagramSource,
|
|
140
124
|
parseDiagramSpec,
|
|
141
125
|
readDiagramFile,
|
|
@@ -147,7 +131,6 @@ export {
|
|
|
147
131
|
resolveStackLayout,
|
|
148
132
|
runMcpServer,
|
|
149
133
|
searchSlopcameraOperations,
|
|
150
|
-
selectDesktopAsset,
|
|
151
134
|
serializeTldr,
|
|
152
135
|
stackLayoutDefaults,
|
|
153
136
|
StackLayoutError,
|
|
@@ -159,10 +142,15 @@ export {
|
|
|
159
142
|
WorkspaceBoundaryError,
|
|
160
143
|
executeSlopcameraOperation,
|
|
161
144
|
}
|
|
145
|
+
export * from "./capability-manifest.js"
|
|
162
146
|
export * from "./cloud-errors.js"
|
|
163
147
|
export * from "./generate.js"
|
|
164
148
|
export * from "./host-resources.js"
|
|
149
|
+
export * from "./icon.js"
|
|
150
|
+
export * from "./image-gallery.js"
|
|
165
151
|
export * from "./operations.js"
|
|
152
|
+
export * from "./portable-capability-manifest.js"
|
|
153
|
+
export * from "./scene-gallery.js"
|
|
166
154
|
export * from "./studio/index.js"
|
|
167
155
|
export * from "./workflow.js"
|
|
168
156
|
export type * from "./types.js"
|
package/src/mcp/boundary.ts
CHANGED
|
@@ -102,7 +102,7 @@ function isConfined(rootDirectory: string, target: string): boolean {
|
|
|
102
102
|
return fromRoot === "" || (!fromRoot.startsWith("..") && !isAbsolute(fromRoot))
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
async function readUtf8WithCap(filePath: string): Promise<string> {
|
|
105
|
+
async function readUtf8WithCap(filePath: string, sourceLabel: string): Promise<string> {
|
|
106
106
|
let handle
|
|
107
107
|
try {
|
|
108
108
|
handle = await open(filePath, "r")
|
|
@@ -110,13 +110,13 @@ async function readUtf8WithCap(filePath: string): Promise<string> {
|
|
|
110
110
|
if (!metadata.isFile()) {
|
|
111
111
|
throw new WorkspaceBoundaryError(
|
|
112
112
|
"SOURCE_NOT_FILE",
|
|
113
|
-
|
|
113
|
+
`${sourceLabel} must be a regular file.`,
|
|
114
114
|
)
|
|
115
115
|
}
|
|
116
116
|
if (metadata.size > mcpSourceByteLimit) {
|
|
117
117
|
throw new WorkspaceBoundaryError(
|
|
118
118
|
"SOURCE_TOO_LARGE",
|
|
119
|
-
|
|
119
|
+
`${sourceLabel} exceeds the ${mcpSourceByteLimit}-byte limit.`,
|
|
120
120
|
)
|
|
121
121
|
}
|
|
122
122
|
|
|
@@ -135,7 +135,7 @@ async function readUtf8WithCap(filePath: string): Promise<string> {
|
|
|
135
135
|
if (bytesRead > mcpSourceByteLimit) {
|
|
136
136
|
throw new WorkspaceBoundaryError(
|
|
137
137
|
"SOURCE_TOO_LARGE",
|
|
138
|
-
|
|
138
|
+
`${sourceLabel} exceeds the ${mcpSourceByteLimit}-byte limit.`,
|
|
139
139
|
)
|
|
140
140
|
}
|
|
141
141
|
try {
|
|
@@ -145,16 +145,16 @@ async function readUtf8WithCap(filePath: string): Promise<string> {
|
|
|
145
145
|
} catch {
|
|
146
146
|
throw new WorkspaceBoundaryError(
|
|
147
147
|
"SOURCE_ENCODING",
|
|
148
|
-
|
|
148
|
+
`${sourceLabel} must contain valid UTF-8.`,
|
|
149
149
|
)
|
|
150
150
|
}
|
|
151
151
|
} catch (error) {
|
|
152
152
|
if (error instanceof WorkspaceBoundaryError) throw error
|
|
153
153
|
const code = filesystemCode(error)
|
|
154
154
|
if (code === "ENOENT") {
|
|
155
|
-
throw new WorkspaceBoundaryError("SOURCE_NOT_FOUND",
|
|
155
|
+
throw new WorkspaceBoundaryError("SOURCE_NOT_FOUND", `${sourceLabel} does not exist.`)
|
|
156
156
|
}
|
|
157
|
-
throw new WorkspaceBoundaryError("FILESYSTEM_ERROR",
|
|
157
|
+
throw new WorkspaceBoundaryError("FILESYSTEM_ERROR", `${sourceLabel} could not be read.`)
|
|
158
158
|
} finally {
|
|
159
159
|
await handle?.close()
|
|
160
160
|
}
|
|
@@ -202,7 +202,7 @@ export class WorkspaceBoundary {
|
|
|
202
202
|
return fromRoot === "" ? "." : fromRoot.split("\\").join("/")
|
|
203
203
|
}
|
|
204
204
|
|
|
205
|
-
async readSource(value: string): Promise<WorkspaceSource> {
|
|
205
|
+
async readSource(value: string, sourceLabel = "Diagram source"): Promise<WorkspaceSource> {
|
|
206
206
|
const normalized = normalizeRelativePath(value, { allowRoot: false })
|
|
207
207
|
const lexicalPath = resolve(this.rootDirectory, normalized.native)
|
|
208
208
|
this.assertConfined(lexicalPath)
|
|
@@ -214,19 +214,19 @@ export class WorkspaceBoundary {
|
|
|
214
214
|
if (filesystemCode(error) === "ENOENT") {
|
|
215
215
|
throw new WorkspaceBoundaryError(
|
|
216
216
|
"SOURCE_NOT_FOUND",
|
|
217
|
-
|
|
217
|
+
`${sourceLabel} does not exist.`,
|
|
218
218
|
)
|
|
219
219
|
}
|
|
220
220
|
throw new WorkspaceBoundaryError(
|
|
221
221
|
"FILESYSTEM_ERROR",
|
|
222
|
-
|
|
222
|
+
`${sourceLabel} could not be resolved.`,
|
|
223
223
|
)
|
|
224
224
|
}
|
|
225
225
|
this.assertConfined(canonicalPath)
|
|
226
226
|
return {
|
|
227
227
|
absolutePath: canonicalPath,
|
|
228
228
|
relativePath: this.toRelativePath(canonicalPath),
|
|
229
|
-
text: await readUtf8WithCap(canonicalPath),
|
|
229
|
+
text: await readUtf8WithCap(canonicalPath, sourceLabel),
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
232
|
|
package/src/mcp/index.ts
CHANGED
package/src/mcp/server.ts
CHANGED
|
@@ -144,7 +144,7 @@ class SlopcameraMcpSession {
|
|
|
144
144
|
version: this.serverVersion,
|
|
145
145
|
},
|
|
146
146
|
instructions:
|
|
147
|
-
"Use check_diagram/render_diagram or search_slopcamera followed by execute_slopcamera with an exact registry code and typed JSON. Local paths are root-relative; source code is never accepted or evaluated.",
|
|
147
|
+
"Use check_diagram/render_diagram, the read-only scene tools (check_scene, inspect_scene, audit_scene, diff_scenes, evaluate_scene), or search_slopcamera followed by execute_slopcamera with an exact registry code and typed JSON. Local paths are root-relative; source code is never accepted or evaluated.",
|
|
148
148
|
})
|
|
149
149
|
}
|
|
150
150
|
|
|
@@ -232,6 +232,7 @@ export async function runMcpServer(
|
|
|
232
232
|
const runtime = await SlopcameraMcpToolRuntime.create(
|
|
233
233
|
options.rootDirectory ?? process.cwd(),
|
|
234
234
|
options.generateDependencies,
|
|
235
|
+
options.hostResourceCoordinator,
|
|
235
236
|
)
|
|
236
237
|
const session = new SlopcameraMcpSession(
|
|
237
238
|
runtime,
|