@hraness/slopcamera 3.2.8 → 3.3.2
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/README.md +29 -9
- package/apps/desktop/application/context.ts +6 -0
- package/apps/desktop/application/default-registry.ts +26 -0
- package/apps/desktop/application/operation.ts +14 -1
- package/apps/desktop/application/operations/index.ts +4 -0
- 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 +514 -11
- 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 +29 -1
- package/apps/desktop/cli/commands.ts +1188 -4
- package/apps/desktop/cli/gateway-review-provider.ts +334 -0
- package/apps/desktop/cli/help.ts +172 -6
- package/apps/desktop/cli/main.ts +3 -3
- package/apps/desktop/cli/portable-surface.ts +6 -1
- 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 +271 -4
- package/apps/desktop/cli/workflow-code.ts +1 -1
- package/apps/desktop/code/semantic-builder.ts +24 -0
- 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/storage.ts +75 -0
- package/apps/desktop/dist/cli/main.js +725 -273
- 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 +25 -429
- 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-grk47tgs.js +3 -0
- package/dist/index-gs48afpt.js +7 -0
- package/dist/index-qry58nj2.js +10 -0
- package/dist/index-zhg36tf9.js +3 -0
- package/dist/index.js +1 -226
- 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 +12 -0
- package/package.json +7 -5
- package/skills/slopcamera/SKILL.md +7 -1
- package/skills/slopcamera/references/directed-scenes.md +48 -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 +1 -1
- package/skills/slopcamera/references/music-video.md +4 -0
- package/skills/slopcamera/references/native-studio.md +19 -0
- package/skills/slopcamera/references/parametric-design.md +14 -0
- package/skills/slopcamera/references/scene-building.md +172 -0
- package/skills/slopcamera/references/social-collage-banners.md +204 -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 +222 -4
- 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 -0
- 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 +1649 -132
- 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 +232 -0
- package/src/spatial-scene/behavior-fns.ts +585 -0
- package/src/spatial-scene/behavior-gallery.ts +108 -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 +617 -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/version.ts +1 -1
- package/dist/index-42zsesc1.js +0 -2257
- package/dist/index-7131pg1c.js +0 -1820
- package/dist/index-7308egqr.js +0 -48
- package/dist/index-8txs6fkn.js +0 -712
- package/dist/index-fava6pge.js +0 -192
- package/dist/index-h1k0fnjq.js +0 -2363
- package/dist/index-r7gdhmsp.js +0 -424
- package/dist/index-sh6xbav6.js +0 -1219
- package/dist/index-z1w83f81.js +0 -4
- package/dist/index-zfnddgay.js +0 -2029
- package/dist/skill-install-dh0ntqba.js +0 -10
package/dist/index.js
CHANGED
|
@@ -1,227 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import
|
|
3
|
-
SLOPCAMERA_VERSION,
|
|
4
|
-
STUDIO_LIMITS,
|
|
5
|
-
SlopcameraMcpToolRuntime,
|
|
6
|
-
StudioCapabilityNameSchema,
|
|
7
|
-
StudioDigestSchema,
|
|
8
|
-
StudioEngineOptionsSchema,
|
|
9
|
-
StudioEngineSchema,
|
|
10
|
-
StudioExecutionProfileSchema,
|
|
11
|
-
StudioJobSchema,
|
|
12
|
-
StudioOutputArtifactSchema,
|
|
13
|
-
StudioOutputFormatSchema,
|
|
14
|
-
StudioOutputInterpretationSchema,
|
|
15
|
-
StudioOutputRoleSchema,
|
|
16
|
-
StudioOutputSpecSchema,
|
|
17
|
-
StudioPathSchema,
|
|
18
|
-
StudioPlanSchema,
|
|
19
|
-
StudioReceiptSchema,
|
|
20
|
-
StudioRenderSchema,
|
|
21
|
-
StudioRuntimeIdentitySchema,
|
|
22
|
-
StudioSourceBundleSchema,
|
|
23
|
-
StudioSourceSpaceSchema,
|
|
24
|
-
WorkspaceBoundary,
|
|
25
|
-
WorkspaceBoundaryError,
|
|
26
|
-
artifactSummary,
|
|
27
|
-
checkDiagramFile,
|
|
28
|
-
diagramApi,
|
|
29
|
-
inspectStudioBundle,
|
|
30
|
-
inspectStudioPlan,
|
|
31
|
-
mcpMaximumRenderedPixels,
|
|
32
|
-
mcpMaximumScale,
|
|
33
|
-
mcpSourceByteLimit,
|
|
34
|
-
parseStudioJob,
|
|
35
|
-
parseStudioPlan,
|
|
36
|
-
parseStudioReceipt,
|
|
37
|
-
parseStudioRuntimeIdentity,
|
|
38
|
-
parseStudioSourceBundle,
|
|
39
|
-
planStudioJob,
|
|
40
|
-
readDiagramFile,
|
|
41
|
-
renderDiagramFile,
|
|
42
|
-
runMcpServer,
|
|
43
|
-
slopcameraApi,
|
|
44
|
-
slopcameraMcpProtocolVersion,
|
|
45
|
-
slopcameraMcpServerName,
|
|
46
|
-
slopcameraMcpTools,
|
|
47
|
-
studioJobSha256,
|
|
48
|
-
studioOutputPath,
|
|
49
|
-
studioRuntimeSha256,
|
|
50
|
-
studioSourceBundleSha256,
|
|
51
|
-
validateStudioReceipt
|
|
52
|
-
} from "./index-7131pg1c.js";
|
|
53
|
-
import {
|
|
54
|
-
bundledSkillPath,
|
|
55
|
-
installSkill
|
|
56
|
-
} from "./index-7308egqr.js";
|
|
57
|
-
import"./index-8txs6fkn.js";
|
|
58
|
-
import {
|
|
59
|
-
SlopcameraWorkflowError,
|
|
60
|
-
defineSlopcameraWorkflow,
|
|
61
|
-
runSlopcameraWorkflow
|
|
62
|
-
} from "./index-fava6pge.js";
|
|
63
|
-
import {
|
|
64
|
-
DiagramValidationError,
|
|
65
|
-
SlopcameraOperationError,
|
|
66
|
-
StackLayoutError,
|
|
67
|
-
builtInIcons,
|
|
68
|
-
executeSlopcameraOperation,
|
|
69
|
-
executeSlopcameraOperationWithLease,
|
|
70
|
-
isSlopcameraOperationCode,
|
|
71
|
-
lintDiagram,
|
|
72
|
-
parseDiagramSource,
|
|
73
|
-
parseDiagramSpec,
|
|
74
|
-
parseSlopcameraOperationInput,
|
|
75
|
-
renderPng,
|
|
76
|
-
renderSvg,
|
|
77
|
-
resolveDiagramSource,
|
|
78
|
-
resolveEdge,
|
|
79
|
-
resolveStackLayout,
|
|
80
|
-
searchSlopcameraOperations,
|
|
81
|
-
serializeTldr,
|
|
82
|
-
slopcameraOperationCodes,
|
|
83
|
-
slopcameraOperationHostResourceClaims,
|
|
84
|
-
slopcameraOperationRegistry,
|
|
85
|
-
stackLayoutDefaults,
|
|
86
|
-
withSlopcameraOperationHostAdmission
|
|
87
|
-
} from "./index-h1k0fnjq.js";
|
|
88
|
-
import {
|
|
89
|
-
VTRACER_VERSION,
|
|
90
|
-
VectorizeError,
|
|
91
|
-
vectorizeDefaultLimits,
|
|
92
|
-
vectorizeHardLimits,
|
|
93
|
-
vectorizeImage,
|
|
94
|
-
vectorizeProfileNames,
|
|
95
|
-
vtracerReleases
|
|
96
|
-
} from "./index-zfnddgay.js";
|
|
97
|
-
import {
|
|
98
|
-
SlopcameraCloudError,
|
|
99
|
-
createFixedGatewayFetch,
|
|
100
|
-
generateSlopcameraImage,
|
|
101
|
-
generateSlopcameraImageFile,
|
|
102
|
-
slopcameraGatewayApiBaseUrl,
|
|
103
|
-
slopcameraGatewayCredentialStatus,
|
|
104
|
-
slopcameraImageModels,
|
|
105
|
-
slopcameraMaximumPromptBytes,
|
|
106
|
-
slopcameraMaximumRawImageBytes,
|
|
107
|
-
slopcameraResponseMediaTypes
|
|
108
|
-
} from "./index-r7gdhmsp.js";
|
|
109
|
-
import {
|
|
110
|
-
HOST_RESOURCE_MAX_WAIT_MILLISECONDS,
|
|
111
|
-
HostResourceError,
|
|
112
|
-
createDefaultHostResourceCoordinator,
|
|
113
|
-
createHostResourceCoordinator,
|
|
114
|
-
createProcessLocalHostResourceCoordinator,
|
|
115
|
-
defaultSlopcameraHostResourceProfile,
|
|
116
|
-
defaultSlopcameraHostResourceStateRoot,
|
|
117
|
-
normalizeHostResourceClaims,
|
|
118
|
-
normalizeHostResourceProfile,
|
|
119
|
-
slopcameraHostResourceNames
|
|
120
|
-
} from "./index-sh6xbav6.js";
|
|
121
|
-
import"./index-z1w83f81.js";
|
|
122
|
-
export {
|
|
123
|
-
withSlopcameraOperationHostAdmission,
|
|
124
|
-
vtracerReleases,
|
|
125
|
-
vectorizeProfileNames,
|
|
126
|
-
vectorizeImage,
|
|
127
|
-
vectorizeHardLimits,
|
|
128
|
-
vectorizeDefaultLimits,
|
|
129
|
-
validateStudioReceipt,
|
|
130
|
-
studioSourceBundleSha256,
|
|
131
|
-
studioRuntimeSha256,
|
|
132
|
-
studioOutputPath,
|
|
133
|
-
studioJobSha256,
|
|
134
|
-
stackLayoutDefaults,
|
|
135
|
-
slopcameraResponseMediaTypes,
|
|
136
|
-
slopcameraOperationRegistry,
|
|
137
|
-
slopcameraOperationHostResourceClaims,
|
|
138
|
-
slopcameraOperationCodes,
|
|
139
|
-
slopcameraMcpTools,
|
|
140
|
-
slopcameraMcpServerName,
|
|
141
|
-
slopcameraMcpProtocolVersion,
|
|
142
|
-
slopcameraMaximumRawImageBytes,
|
|
143
|
-
slopcameraMaximumPromptBytes,
|
|
144
|
-
slopcameraImageModels,
|
|
145
|
-
slopcameraHostResourceNames,
|
|
146
|
-
slopcameraGatewayCredentialStatus,
|
|
147
|
-
slopcameraGatewayApiBaseUrl,
|
|
148
|
-
slopcameraApi,
|
|
149
|
-
serializeTldr,
|
|
150
|
-
searchSlopcameraOperations,
|
|
151
|
-
runSlopcameraWorkflow,
|
|
152
|
-
runMcpServer,
|
|
153
|
-
resolveStackLayout,
|
|
154
|
-
resolveEdge,
|
|
155
|
-
resolveDiagramSource,
|
|
156
|
-
renderSvg,
|
|
157
|
-
renderPng,
|
|
158
|
-
renderDiagramFile,
|
|
159
|
-
readDiagramFile,
|
|
160
|
-
planStudioJob,
|
|
161
|
-
parseStudioSourceBundle,
|
|
162
|
-
parseStudioRuntimeIdentity,
|
|
163
|
-
parseStudioReceipt,
|
|
164
|
-
parseStudioPlan,
|
|
165
|
-
parseStudioJob,
|
|
166
|
-
parseSlopcameraOperationInput,
|
|
167
|
-
parseDiagramSpec,
|
|
168
|
-
parseDiagramSource,
|
|
169
|
-
normalizeHostResourceProfile,
|
|
170
|
-
normalizeHostResourceClaims,
|
|
171
|
-
mcpSourceByteLimit,
|
|
172
|
-
mcpMaximumScale,
|
|
173
|
-
mcpMaximumRenderedPixels,
|
|
174
|
-
lintDiagram,
|
|
175
|
-
isSlopcameraOperationCode,
|
|
176
|
-
installSkill,
|
|
177
|
-
inspectStudioPlan,
|
|
178
|
-
inspectStudioBundle,
|
|
179
|
-
generateSlopcameraImageFile,
|
|
180
|
-
generateSlopcameraImage,
|
|
181
|
-
executeSlopcameraOperationWithLease,
|
|
182
|
-
executeSlopcameraOperation,
|
|
183
|
-
diagramApi,
|
|
184
|
-
defineSlopcameraWorkflow,
|
|
185
|
-
defaultSlopcameraHostResourceStateRoot,
|
|
186
|
-
defaultSlopcameraHostResourceProfile,
|
|
187
|
-
createProcessLocalHostResourceCoordinator,
|
|
188
|
-
createHostResourceCoordinator,
|
|
189
|
-
createFixedGatewayFetch,
|
|
190
|
-
createDefaultHostResourceCoordinator,
|
|
191
|
-
checkDiagramFile,
|
|
192
|
-
bundledSkillPath,
|
|
193
|
-
builtInIcons,
|
|
194
|
-
artifactSummary,
|
|
195
|
-
WorkspaceBoundaryError,
|
|
196
|
-
WorkspaceBoundary,
|
|
197
|
-
VectorizeError,
|
|
198
|
-
VTRACER_VERSION,
|
|
199
|
-
StudioSourceSpaceSchema,
|
|
200
|
-
StudioSourceBundleSchema,
|
|
201
|
-
StudioRuntimeIdentitySchema,
|
|
202
|
-
StudioRenderSchema,
|
|
203
|
-
StudioReceiptSchema,
|
|
204
|
-
StudioPlanSchema,
|
|
205
|
-
StudioPathSchema,
|
|
206
|
-
StudioOutputSpecSchema,
|
|
207
|
-
StudioOutputRoleSchema,
|
|
208
|
-
StudioOutputInterpretationSchema,
|
|
209
|
-
StudioOutputFormatSchema,
|
|
210
|
-
StudioOutputArtifactSchema,
|
|
211
|
-
StudioJobSchema,
|
|
212
|
-
StudioExecutionProfileSchema,
|
|
213
|
-
StudioEngineSchema,
|
|
214
|
-
StudioEngineOptionsSchema,
|
|
215
|
-
StudioDigestSchema,
|
|
216
|
-
StudioCapabilityNameSchema,
|
|
217
|
-
StackLayoutError,
|
|
218
|
-
SlopcameraWorkflowError,
|
|
219
|
-
SlopcameraOperationError,
|
|
220
|
-
SlopcameraMcpToolRuntime,
|
|
221
|
-
SlopcameraCloudError,
|
|
222
|
-
STUDIO_LIMITS,
|
|
223
|
-
SLOPCAMERA_VERSION,
|
|
224
|
-
HostResourceError,
|
|
225
|
-
HOST_RESOURCE_MAX_WAIT_MILLISECONDS,
|
|
226
|
-
DiagramValidationError
|
|
227
|
-
};
|
|
2
|
+
import{SLOPCAMERA_CAPABILITY_MANIFEST_LIMITS,SLOPCAMERA_PORTABLE_CAPABILITY_VERSION,SLOPCAMERA_VERSION,STUDIO_LIMITS,SlopcameraCapabilityCommandSchema,SlopcameraCapabilityEffectSchema,SlopcameraCapabilityManifestSchema,SlopcameraCapabilityModuleDeclarationSchema,SlopcameraCapabilityModuleSchema,SlopcameraCapabilityOperationSchema,SlopcameraCapabilityPreparationSchema,SlopcameraCapabilityProfileSchema,SlopcameraCapabilityQualificationSchema,SlopcameraCapabilityResourceSchema,SlopcameraCapabilityResumeSchema,SlopcameraCapabilityToolSchema,SlopcameraCapabilityWorkflowSchema,SlopcameraMcpToolRuntime,SlopcameraSceneVariantsSchema,StudioCapabilityNameSchema,StudioDigestSchema,StudioEngineOptionsSchema,StudioEngineSchema,StudioExecutionProfileSchema,StudioJobSchema,StudioOutputArtifactSchema,StudioOutputFormatSchema,StudioOutputInterpretationSchema,StudioOutputRoleSchema,StudioOutputSpecSchema,StudioPathSchema,StudioPlanSchema,StudioReceiptSchema,StudioRenderSchema,StudioRuntimeIdentitySchema,StudioSourceBundleSchema,StudioSourceSpaceSchema,WorkspaceBoundary,WorkspaceBoundaryError,artifactSummary,checkDiagramFile,compileSlopcameraCapabilityManifest,createPortableSlopcameraCapabilityManifest,defineSlopcameraCapabilityModule,diagramApi,inspectStudioBundle,inspectStudioPlan,mcpMaximumRenderedPixels,mcpMaximumScale,mcpSourceByteLimit,parseSlopcameraCapabilityManifest,parseSlopcameraSceneVariants,parseStudioJob,parseStudioPlan,parseStudioReceipt,parseStudioRuntimeIdentity,parseStudioSourceBundle,planSlopcameraSceneGallery,planStudioJob,readDiagramFile,renderDiagramFile,runMcpServer,slopcameraApi,slopcameraMcpProtocolVersion,slopcameraMcpServerName,slopcameraMcpTools,slopcameraPortableCapabilityManifest,slopcameraSceneGalleryLimits,studioJobSha256,studioOutputPath,studioRuntimeSha256,studioSourceBundleSha256,summarizeSceneVariantPatch,validateStudioReceipt}from"./index-gs48afpt.js";import{bundledSkillPath,installSkill}from"./index-grk47tgs.js";import"./index-zhg36tf9.js";import"./index-3cxf2c58.js";import{SlopcameraWorkflowError,defineSlopcameraWorkflow,runSlopcameraWorkflow}from"./index-296qhpf2.js";import{DiagramValidationError,SlopcameraOperationError,StackLayoutError,builtInIcons,composeSlopcameraImageGallery,critiqueIconRaster,executeSlopcameraOperation,executeSlopcameraOperationWithLease,extractIconLineArt,galleryCandidateId,galleryPromptFor,generateSlopcameraIcon,generateSlopcameraImageGallery,iconPromptFor,iconVisualGateProblems,isSlopcameraOperationCode,lintDiagram,parseDiagramSource,parseDiagramSpec,parseSlopcameraGalleryVary,parseSlopcameraOperationInput,planSlopcameraGallery,renderPng,renderSvg,resolveDiagramSource,resolveEdge,resolveStackLayout,searchSlopcameraOperations,serializeTldr,slopcameraGalleryAxes,slopcameraGalleryKinds,slopcameraGalleryLimits,slopcameraIconCritiqueDefaultModel,slopcameraIconCritiqueTimeoutMs,slopcameraIconDefaultInk,slopcameraIconDefaultRounds,slopcameraIconMaximumRounds,slopcameraIconPanel,slopcameraIconSubjectMaximumBytes,slopcameraOperationCodes,slopcameraOperationHostResourceClaims,slopcameraOperationRegistry,stackLayoutDefaults,withSlopcameraOperationHostAdmission}from"./index-0bbesn4m.js";import{VTRACER_VERSION,VectorizeError,vectorizeDefaultLimits,vectorizeHardLimits,vectorizeImage,vectorizeProfileNames,vtracerReleases}from"./index-qry58nj2.js";import{SlopcameraCloudError,createFixedGatewayFetch,generateSlopcameraImage,generateSlopcameraImageFile,resolveSlopcameraGatewayCredential,slopcameraGatewayApiBaseUrl,slopcameraGatewayCredentialStatus,slopcameraImageModels,slopcameraMaximumPromptBytes,slopcameraMaximumRawImageBytes,slopcameraResponseMediaTypes}from"./index-77fjfg9f.js";import{HOST_RESOURCE_MAX_WAIT_MILLISECONDS,HostResourceError,createDefaultHostResourceCoordinator,createHostResourceCoordinator,createProcessLocalHostResourceCoordinator,defaultSlopcameraHostResourceProfile,defaultSlopcameraHostResourceStateRoot,normalizeHostResourceClaims,normalizeHostResourceProfile,slopcameraHostResourceNames}from"./index-b3geqczn.js";import"./index-80a36bc0.js";export{withSlopcameraOperationHostAdmission,vtracerReleases,vectorizeProfileNames,vectorizeImage,vectorizeHardLimits,vectorizeDefaultLimits,validateStudioReceipt,summarizeSceneVariantPatch,studioSourceBundleSha256,studioRuntimeSha256,studioOutputPath,studioJobSha256,stackLayoutDefaults,slopcameraSceneGalleryLimits,slopcameraResponseMediaTypes,slopcameraPortableCapabilityManifest,slopcameraOperationRegistry,slopcameraOperationHostResourceClaims,slopcameraOperationCodes,slopcameraMcpTools,slopcameraMcpServerName,slopcameraMcpProtocolVersion,slopcameraMaximumRawImageBytes,slopcameraMaximumPromptBytes,slopcameraImageModels,slopcameraIconSubjectMaximumBytes,slopcameraIconPanel,slopcameraIconMaximumRounds,slopcameraIconDefaultRounds,slopcameraIconDefaultInk,slopcameraIconCritiqueTimeoutMs,slopcameraIconCritiqueDefaultModel,slopcameraHostResourceNames,slopcameraGatewayCredentialStatus,slopcameraGatewayApiBaseUrl,slopcameraGalleryLimits,slopcameraGalleryKinds,slopcameraGalleryAxes,slopcameraApi,serializeTldr,searchSlopcameraOperations,runSlopcameraWorkflow,runMcpServer,resolveStackLayout,resolveSlopcameraGatewayCredential,resolveEdge,resolveDiagramSource,renderSvg,renderPng,renderDiagramFile,readDiagramFile,planStudioJob,planSlopcameraSceneGallery,planSlopcameraGallery,parseStudioSourceBundle,parseStudioRuntimeIdentity,parseStudioReceipt,parseStudioPlan,parseStudioJob,parseSlopcameraSceneVariants,parseSlopcameraOperationInput,parseSlopcameraGalleryVary,parseSlopcameraCapabilityManifest,parseDiagramSpec,parseDiagramSource,normalizeHostResourceProfile,normalizeHostResourceClaims,mcpSourceByteLimit,mcpMaximumScale,mcpMaximumRenderedPixels,lintDiagram,isSlopcameraOperationCode,installSkill,inspectStudioPlan,inspectStudioBundle,iconVisualGateProblems,iconPromptFor,generateSlopcameraImageGallery,generateSlopcameraImageFile,generateSlopcameraImage,generateSlopcameraIcon,galleryPromptFor,galleryCandidateId,extractIconLineArt,executeSlopcameraOperationWithLease,executeSlopcameraOperation,diagramApi,defineSlopcameraWorkflow,defineSlopcameraCapabilityModule,defaultSlopcameraHostResourceStateRoot,defaultSlopcameraHostResourceProfile,critiqueIconRaster,createProcessLocalHostResourceCoordinator,createPortableSlopcameraCapabilityManifest,createHostResourceCoordinator,createFixedGatewayFetch,createDefaultHostResourceCoordinator,composeSlopcameraImageGallery,compileSlopcameraCapabilityManifest,checkDiagramFile,bundledSkillPath,builtInIcons,artifactSummary,WorkspaceBoundaryError,WorkspaceBoundary,VectorizeError,VTRACER_VERSION,StudioSourceSpaceSchema,StudioSourceBundleSchema,StudioRuntimeIdentitySchema,StudioRenderSchema,StudioReceiptSchema,StudioPlanSchema,StudioPathSchema,StudioOutputSpecSchema,StudioOutputRoleSchema,StudioOutputInterpretationSchema,StudioOutputFormatSchema,StudioOutputArtifactSchema,StudioJobSchema,StudioExecutionProfileSchema,StudioEngineSchema,StudioEngineOptionsSchema,StudioDigestSchema,StudioCapabilityNameSchema,StackLayoutError,SlopcameraWorkflowError,SlopcameraSceneVariantsSchema,SlopcameraOperationError,SlopcameraMcpToolRuntime,SlopcameraCloudError,SlopcameraCapabilityWorkflowSchema,SlopcameraCapabilityToolSchema,SlopcameraCapabilityResumeSchema,SlopcameraCapabilityResourceSchema,SlopcameraCapabilityQualificationSchema,SlopcameraCapabilityProfileSchema,SlopcameraCapabilityPreparationSchema,SlopcameraCapabilityOperationSchema,SlopcameraCapabilityModuleSchema,SlopcameraCapabilityModuleDeclarationSchema,SlopcameraCapabilityManifestSchema,SlopcameraCapabilityEffectSchema,SlopcameraCapabilityCommandSchema,STUDIO_LIMITS,SLOPCAMERA_VERSION,SLOPCAMERA_PORTABLE_CAPABILITY_VERSION,SLOPCAMERA_CAPABILITY_MANIFEST_LIMITS,HostResourceError,HOST_RESOURCE_MAX_WAIT_MILLISECONDS,DiagramValidationError};
|
package/dist/operations.js
CHANGED
|
@@ -1,29 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import
|
|
3
|
-
SlopcameraOperationError,
|
|
4
|
-
executeSlopcameraOperation,
|
|
5
|
-
executeSlopcameraOperationWithLease,
|
|
6
|
-
isSlopcameraOperationCode,
|
|
7
|
-
parseSlopcameraOperationInput,
|
|
8
|
-
searchSlopcameraOperations,
|
|
9
|
-
slopcameraOperationCodes,
|
|
10
|
-
slopcameraOperationHostResourceClaims,
|
|
11
|
-
slopcameraOperationRegistry,
|
|
12
|
-
withSlopcameraOperationHostAdmission
|
|
13
|
-
} from "./index-h1k0fnjq.js";
|
|
14
|
-
import"./index-zfnddgay.js";
|
|
15
|
-
import"./index-r7gdhmsp.js";
|
|
16
|
-
import"./index-sh6xbav6.js";
|
|
17
|
-
import"./index-z1w83f81.js";
|
|
18
|
-
export {
|
|
19
|
-
withSlopcameraOperationHostAdmission,
|
|
20
|
-
slopcameraOperationRegistry,
|
|
21
|
-
slopcameraOperationHostResourceClaims,
|
|
22
|
-
slopcameraOperationCodes,
|
|
23
|
-
searchSlopcameraOperations,
|
|
24
|
-
parseSlopcameraOperationInput,
|
|
25
|
-
isSlopcameraOperationCode,
|
|
26
|
-
executeSlopcameraOperationWithLease,
|
|
27
|
-
executeSlopcameraOperation,
|
|
28
|
-
SlopcameraOperationError
|
|
29
|
-
};
|
|
2
|
+
import{SlopcameraOperationError,executeSlopcameraOperation,executeSlopcameraOperationWithLease,isSlopcameraOperationCode,parseSlopcameraOperationInput,searchSlopcameraOperations,slopcameraOperationCodes,slopcameraOperationHostResourceClaims,slopcameraOperationRegistry,withSlopcameraOperationHostAdmission}from"./index-0bbesn4m.js";import"./index-qry58nj2.js";import"./index-77fjfg9f.js";import"./index-b3geqczn.js";import"./index-80a36bc0.js";export{withSlopcameraOperationHostAdmission,slopcameraOperationRegistry,slopcameraOperationHostResourceClaims,slopcameraOperationCodes,searchSlopcameraOperations,parseSlopcameraOperationInput,isSlopcameraOperationCode,executeSlopcameraOperationWithLease,executeSlopcameraOperation,SlopcameraOperationError};
|
package/dist/vectorize/worker.js
CHANGED
|
@@ -1,142 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import {
|
|
3
|
-
MAX_VECTORIZE_REQUEST_BYTES,
|
|
4
|
-
MAX_VECTORIZE_RESPONSE_BYTES,
|
|
5
|
-
VECTORIZE_WORKER_PROTOCOL,
|
|
6
|
-
VectorizeError,
|
|
7
|
-
configureVectorizeSharpConcurrency,
|
|
8
|
-
forwardVectorizeWorkerTermination,
|
|
9
|
-
vectorizeImageInProcess,
|
|
10
|
-
withInheritedCommandFileDescriptors
|
|
11
|
-
} from "../index-zfnddgay.js";
|
|
12
|
-
import"../index-z1w83f81.js";
|
|
13
|
-
|
|
14
|
-
// src/vectorize/worker.ts
|
|
15
|
-
import { lstat, realpath } from "fs/promises";
|
|
16
|
-
import { tmpdir } from "os";
|
|
17
|
-
import { basename, dirname } from "path";
|
|
18
|
-
var errorCodes = new Set([
|
|
19
|
-
"input_limit",
|
|
20
|
-
"invalid_input",
|
|
21
|
-
"output_limit",
|
|
22
|
-
"quality_limit",
|
|
23
|
-
"timeout",
|
|
24
|
-
"tool_download",
|
|
25
|
-
"tool_integrity",
|
|
26
|
-
"tool_platform",
|
|
27
|
-
"tool_version",
|
|
28
|
-
"trace_failed",
|
|
29
|
-
"unsafe_svg"
|
|
30
|
-
]);
|
|
31
|
-
forwardVectorizeWorkerTermination();
|
|
32
|
-
await main();
|
|
33
|
-
async function main() {
|
|
34
|
-
let response;
|
|
35
|
-
try {
|
|
36
|
-
configureVectorizeSharpConcurrency();
|
|
37
|
-
const requestText = await readBoundedInput();
|
|
38
|
-
const request = parseRequest(requestText);
|
|
39
|
-
const input = decodeInput(request.input);
|
|
40
|
-
const temporaryRoot = await validateTemporaryRoot(request.temporaryRoot);
|
|
41
|
-
const result = await withInheritedCommandFileDescriptors(request.options.inheritedFileDescriptors, async () => await vectorizeImageInProcess(input, request.options, temporaryRoot));
|
|
42
|
-
response = {
|
|
43
|
-
ok: true,
|
|
44
|
-
protocol: VECTORIZE_WORKER_PROTOCOL,
|
|
45
|
-
result
|
|
46
|
-
};
|
|
47
|
-
} catch (error) {
|
|
48
|
-
response = {
|
|
49
|
-
error: serializeError(error),
|
|
50
|
-
ok: false,
|
|
51
|
-
protocol: VECTORIZE_WORKER_PROTOCOL
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
let encoded = JSON.stringify(response);
|
|
55
|
-
if (Buffer.byteLength(encoded) > MAX_VECTORIZE_RESPONSE_BYTES) {
|
|
56
|
-
encoded = JSON.stringify({
|
|
57
|
-
error: {
|
|
58
|
-
code: "output_limit",
|
|
59
|
-
details: { maximumBytes: MAX_VECTORIZE_RESPONSE_BYTES },
|
|
60
|
-
message: "The vectorization worker response exceeds its IPC limit."
|
|
61
|
-
},
|
|
62
|
-
ok: false,
|
|
63
|
-
protocol: VECTORIZE_WORKER_PROTOCOL
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
await Bun.write(Bun.stdout, encoded);
|
|
67
|
-
}
|
|
68
|
-
async function readBoundedInput() {
|
|
69
|
-
const reader = Bun.stdin.stream().getReader();
|
|
70
|
-
const chunks = [];
|
|
71
|
-
let bytes = 0;
|
|
72
|
-
try {
|
|
73
|
-
while (true) {
|
|
74
|
-
const { done, value } = await reader.read();
|
|
75
|
-
if (done)
|
|
76
|
-
break;
|
|
77
|
-
bytes += value.byteLength;
|
|
78
|
-
if (bytes > MAX_VECTORIZE_REQUEST_BYTES) {
|
|
79
|
-
await reader.cancel();
|
|
80
|
-
throw new VectorizeError("input_limit", "The vectorization worker request exceeds its IPC limit.", { bytes, maximumBytes: MAX_VECTORIZE_REQUEST_BYTES });
|
|
81
|
-
}
|
|
82
|
-
chunks.push(value);
|
|
83
|
-
}
|
|
84
|
-
} finally {
|
|
85
|
-
reader.releaseLock();
|
|
86
|
-
}
|
|
87
|
-
return Buffer.concat(chunks, bytes).toString("utf8");
|
|
88
|
-
}
|
|
89
|
-
function parseRequest(text) {
|
|
90
|
-
let parsed;
|
|
91
|
-
try {
|
|
92
|
-
parsed = JSON.parse(text);
|
|
93
|
-
} catch (error) {
|
|
94
|
-
throw new VectorizeError("invalid_input", "The vectorization worker request is malformed.", {}, { cause: error });
|
|
95
|
-
}
|
|
96
|
-
if (!isRecord(parsed) || parsed.protocol !== VECTORIZE_WORKER_PROTOCOL || !isRecord(parsed.input) || !isRecord(parsed.options) || typeof parsed.temporaryRoot !== "string" || parsed.temporaryRoot.length === 0 || typeof parsed.input.kind !== "string" || typeof parsed.input.value !== "string" || !["bytes", "path"].includes(parsed.input.kind)) {
|
|
97
|
-
throw new VectorizeError("invalid_input", "The vectorization worker request is invalid.");
|
|
98
|
-
}
|
|
99
|
-
return parsed;
|
|
100
|
-
}
|
|
101
|
-
function decodeInput(input) {
|
|
102
|
-
if (input.kind === "path")
|
|
103
|
-
return input.value;
|
|
104
|
-
if (input.value.length > Math.ceil(MAX_VECTORIZE_REQUEST_BYTES / 3) * 4 || input.value.length % 4 !== 0) {
|
|
105
|
-
throw new VectorizeError("input_limit", "Encoded raster input exceeds its IPC limit.");
|
|
106
|
-
}
|
|
107
|
-
const bytes = Buffer.from(input.value, "base64");
|
|
108
|
-
if (bytes.toString("base64") !== input.value) {
|
|
109
|
-
throw new VectorizeError("invalid_input", "Encoded raster input is not canonical base64.");
|
|
110
|
-
}
|
|
111
|
-
return bytes;
|
|
112
|
-
}
|
|
113
|
-
async function validateTemporaryRoot(path) {
|
|
114
|
-
let realRoot;
|
|
115
|
-
let realTemporaryDirectory;
|
|
116
|
-
try {
|
|
117
|
-
const resolved = await Promise.all([
|
|
118
|
-
realpath(path),
|
|
119
|
-
realpath(tmpdir())
|
|
120
|
-
]);
|
|
121
|
-
realRoot = resolved[0];
|
|
122
|
-
realTemporaryDirectory = resolved[1];
|
|
123
|
-
const metadata = await lstat(path);
|
|
124
|
-
if (!metadata.isDirectory() || metadata.isSymbolicLink() || dirname(realRoot) !== realTemporaryDirectory || !/^slopcamera-vectorize-[A-Za-z0-9_-]{6,}$/u.test(basename(realRoot))) {
|
|
125
|
-
throw new VectorizeError("invalid_input", "The supervisor temporary directory is invalid.");
|
|
126
|
-
}
|
|
127
|
-
} catch (error) {
|
|
128
|
-
if (error instanceof VectorizeError)
|
|
129
|
-
throw error;
|
|
130
|
-
throw new VectorizeError("invalid_input", "The supervisor temporary directory could not be verified.", {}, { cause: error });
|
|
131
|
-
}
|
|
132
|
-
return realRoot;
|
|
133
|
-
}
|
|
134
|
-
function serializeError(error) {
|
|
135
|
-
const code = error instanceof VectorizeError && errorCodes.has(error.code) ? error.code : "trace_failed";
|
|
136
|
-
const message = error instanceof Error ? error.message : "The vectorization worker failed.";
|
|
137
|
-
const details = error instanceof VectorizeError && Buffer.byteLength(JSON.stringify(error.details)) <= 64 * 1024 ? error.details : {};
|
|
138
|
-
return { code, details, message };
|
|
139
|
-
}
|
|
140
|
-
function isRecord(value) {
|
|
141
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
142
|
-
}
|
|
2
|
+
import{MAX_VECTORIZE_REQUEST_BYTES,MAX_VECTORIZE_RESPONSE_BYTES,VECTORIZE_WORKER_PROTOCOL,VectorizeError,configureVectorizeSharpConcurrency,forwardVectorizeWorkerTermination,vectorizeImageInProcess,withInheritedCommandFileDescriptors}from"../index-qry58nj2.js";import"../index-80a36bc0.js";import{lstat,realpath}from"fs/promises";import{tmpdir}from"os";import{basename,dirname}from"path";var errorCodes=new Set(["input_limit","invalid_input","output_limit","quality_limit","timeout","tool_download","tool_integrity","tool_platform","tool_version","trace_failed","unsafe_svg"]);forwardVectorizeWorkerTermination();await main();async function main(){let response;try{configureVectorizeSharpConcurrency();const requestText=await readBoundedInput();const request=parseRequest(requestText);const input=decodeInput(request.input);const temporaryRoot=await validateTemporaryRoot(request.temporaryRoot);const result=await withInheritedCommandFileDescriptors(request.options.inheritedFileDescriptors,async()=>await vectorizeImageInProcess(input,request.options,temporaryRoot));response={ok:true,protocol:VECTORIZE_WORKER_PROTOCOL,result}}catch(error){response={error:serializeError(error),ok:false,protocol:VECTORIZE_WORKER_PROTOCOL}}let encoded=JSON.stringify(response);if(Buffer.byteLength(encoded)>MAX_VECTORIZE_RESPONSE_BYTES){encoded=JSON.stringify({error:{code:"output_limit",details:{maximumBytes:MAX_VECTORIZE_RESPONSE_BYTES},message:"The vectorization worker response exceeds its IPC limit."},ok:false,protocol:VECTORIZE_WORKER_PROTOCOL})}await Bun.write(Bun.stdout,encoded)}async function readBoundedInput(){const reader=Bun.stdin.stream().getReader();const chunks=[];let bytes=0;try{while(true){const{done,value}=await reader.read();if(done)break;bytes+=value.byteLength;if(bytes>MAX_VECTORIZE_REQUEST_BYTES){await reader.cancel();throw new VectorizeError("input_limit","The vectorization worker request exceeds its IPC limit.",{bytes,maximumBytes:MAX_VECTORIZE_REQUEST_BYTES})}chunks.push(value)}}finally{reader.releaseLock()}return Buffer.concat(chunks,bytes).toString("utf8")}function parseRequest(text){let parsed;try{parsed=JSON.parse(text)}catch(error){throw new VectorizeError("invalid_input","The vectorization worker request is malformed.",{},{cause:error})}if(!isRecord(parsed)||parsed.protocol!==VECTORIZE_WORKER_PROTOCOL||!isRecord(parsed.input)||!isRecord(parsed.options)||typeof parsed.temporaryRoot!=="string"||parsed.temporaryRoot.length===0||typeof parsed.input.kind!=="string"||typeof parsed.input.value!=="string"||!["bytes","path"].includes(parsed.input.kind)){throw new VectorizeError("invalid_input","The vectorization worker request is invalid.")}return parsed}function decodeInput(input){if(input.kind==="path")return input.value;if(input.value.length>Math.ceil(MAX_VECTORIZE_REQUEST_BYTES/3)*4||input.value.length%4!==0){throw new VectorizeError("input_limit","Encoded raster input exceeds its IPC limit.")}const bytes=Buffer.from(input.value,"base64");if(bytes.toString("base64")!==input.value){throw new VectorizeError("invalid_input","Encoded raster input is not canonical base64.")}return bytes}async function validateTemporaryRoot(path){let realRoot;let realTemporaryDirectory;try{const resolved=await Promise.all([realpath(path),realpath(tmpdir())]);realRoot=resolved[0];realTemporaryDirectory=resolved[1];const metadata=await lstat(path);if(!metadata.isDirectory()||metadata.isSymbolicLink()||dirname(realRoot)!==realTemporaryDirectory||!/^slopcamera-vectorize-[A-Za-z0-9_-]{6,}$/u.test(basename(realRoot))){throw new VectorizeError("invalid_input","The supervisor temporary directory is invalid.")}}catch(error){if(error instanceof VectorizeError)throw error;throw new VectorizeError("invalid_input","The supervisor temporary directory could not be verified.",{},{cause:error})}return realRoot}function serializeError(error){const code=error instanceof VectorizeError&&errorCodes.has(error.code)?error.code:"trace_failed";const message=error instanceof Error?error.message:"The vectorization worker failed.";const details=error instanceof VectorizeError&&Buffer.byteLength(JSON.stringify(error.details))<=64*1024?error.details:{};return{code,details,message}}function isRecord(value){return typeof value==="object"&&value!==null&&!Array.isArray(value)}
|
package/dist/workflow.js
CHANGED
|
@@ -1,16 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import
|
|
3
|
-
SlopcameraWorkflowError,
|
|
4
|
-
defineSlopcameraWorkflow,
|
|
5
|
-
runSlopcameraWorkflow
|
|
6
|
-
} from "./index-fava6pge.js";
|
|
7
|
-
import"./index-h1k0fnjq.js";
|
|
8
|
-
import"./index-zfnddgay.js";
|
|
9
|
-
import"./index-r7gdhmsp.js";
|
|
10
|
-
import"./index-sh6xbav6.js";
|
|
11
|
-
import"./index-z1w83f81.js";
|
|
12
|
-
export {
|
|
13
|
-
runSlopcameraWorkflow,
|
|
14
|
-
defineSlopcameraWorkflow,
|
|
15
|
-
SlopcameraWorkflowError
|
|
16
|
-
};
|
|
2
|
+
import{SlopcameraWorkflowError,defineSlopcameraWorkflow,runSlopcameraWorkflow}from"./index-296qhpf2.js";import"./index-0bbesn4m.js";import"./index-qry58nj2.js";import"./index-77fjfg9f.js";import"./index-b3geqczn.js";import"./index-80a36bc0.js";export{runSlopcameraWorkflow,defineSlopcameraWorkflow,SlopcameraWorkflowError};
|
package/docs/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Slopcamera retains editable source, renders local or generated media, and assembles it into inspectable video projects. Choose a guide for the work you want to do.
|
|
4
4
|
|
|
5
|
-
These pages describe Slopcamera from current source. [Install that source](how-to/use-current-source.md) to use the CLI, SDK and matching Agent Skill
|
|
5
|
+
These pages describe Slopcamera from current source. [Install that source](how-to/use-current-source.md) to use the newest CLI, SDK and matching Agent Skill. The [installation guide](../README.md#install-slopcamera) also links the currently verified release archive. Historical Atet archives retain their original package and commands. The CLI also has an optional unbundled macOS menu-bar companion; the [menu-bar release contract](menubar-release.md) covers its prebuilt binary and LaunchAgent. The [capability reference](reference/capabilities.md) distinguishes them and lists local runtime requirements.
|
|
6
6
|
|
|
7
7
|
## Learn by making something
|
|
8
8
|
|
|
@@ -18,7 +18,10 @@ These pages describe Slopcamera from current source. [Install that source](how-t
|
|
|
18
18
|
- [Generate images, video, or narration](how-to/generate-media.md): discover Gateway capabilities, acknowledge selected uploads, and retain the result.
|
|
19
19
|
- [Direct short generated clips](directing-video.md): budget, review takes, preserve endpoint continuity, and recover uncertain work.
|
|
20
20
|
- [Author a native film](studio.md): use Blender, CadQuery, or Manim; retain caches; share assets and calibrated cameras.
|
|
21
|
+
- [Build and revise a parametric design](how-to/parametric-design.md): generate architectural models from retained parameters, inspect dependencies and render alternatives.
|
|
21
22
|
- [Render and edit spatial scenes](spatial-scenes.md): patch named entities, use hardware rendering, import a saved world, or prepare a V2 shot composition.
|
|
23
|
+
- [Build a directed cinematic character world](how-to/cinematic-character-worlds.md): admit a rigged world, direct it semantically, plan effects and galleries, and audit temporal evidence.
|
|
24
|
+
- [Direct a cinematic world end to end](how-to/direct-cinematic-worlds.md): author an inert recipe pack and run the `cinematic-world` planning-and-review workflow.
|
|
22
25
|
- [Make an educational video](how-to/educational-video.md): keep mathematical visuals, narration, and timing evidence revisable.
|
|
23
26
|
- [Run or recover a workflow](how-to/run-workflows.md): use a built-in recipe or trusted Bun module and inspect its durable run.
|
|
24
27
|
- [Configure Vercel](vercel.md) or [publish Slopcamera](publishing.md): provider and maintainer procedures.
|
|
@@ -32,6 +35,7 @@ These pages describe Slopcamera from current source. [Install that source](how-t
|
|
|
32
35
|
## Understand the design
|
|
33
36
|
|
|
34
37
|
- [Source, representations, and projects](architecture.md): what stays editable, what a receipt proves, and how local and cloud work fit together.
|
|
38
|
+
- [Extension architecture](extension-architecture.md): the closed registry, inert recipe packs, trusted workflows, and where authored code can and cannot go.
|
|
35
39
|
- [Choose an HTML authoring surface](html-overlay-creative-toolkit.md): why DOM, vector, Three.js, and explicit GPU profiles serve different jobs. Its ecosystem research is dated separately from its supported locks.
|
|
36
40
|
|
|
37
41
|
## Work with an agent
|
package/docs/studio.md
CHANGED
|
@@ -22,6 +22,10 @@ The scaffold creates `scene.py`, any explicit helpers, `source.json` and `job.js
|
|
|
22
22
|
|
|
23
23
|
The default Blender product job requests Cycles GPU rendering. An unavailable GPU fails clearly. Select `device: "cpu"` in a new job when CPU rendering is intended; no fallback is implicit. Initial Metal shader compilation can make the first render substantially slower than later frames.
|
|
24
24
|
|
|
25
|
+
`studio probe` discovers devices without rendering a frame. A successful probe
|
|
26
|
+
does not qualify shader compilation or the scene's render. Use a bounded render
|
|
27
|
+
with the selected engine and device before committing to a long job.
|
|
28
|
+
|
|
25
29
|
Other starters:
|
|
26
30
|
|
|
27
31
|
```sh
|
|
@@ -210,6 +214,14 @@ slopcamera studio reconcile <studio-id> --json
|
|
|
210
214
|
|
|
211
215
|
Inspection rechecks source and physical output hashes. Reconciliation can restore a missing receipt only when a closed successful process completion and an unchanged output-validation checkpoint exist. Earlier interrupted execution remains ambiguous and is never automatically resubmitted. Choose a new job ID for an explicitly revised attempt after custody is settled.
|
|
212
216
|
|
|
217
|
+
For an unexpected Blender exit, correlate that attempt's retained logs with the
|
|
218
|
+
operating system's crash report before changing settings. A macOS report in
|
|
219
|
+
`MetalKernelPipeline::compile` while the main thread waits in
|
|
220
|
+
`BlenderSession::render` identifies a render failure; it does not prove an
|
|
221
|
+
out-of-memory condition or a specific shader-cache defect. A bounded CPU or EEVEE
|
|
222
|
+
comparison needs a new, explicitly configured job after custody is settled. Its
|
|
223
|
+
success does not qualify Cycles/Metal, and its frames need separate visual review.
|
|
224
|
+
|
|
213
225
|
The supervisor bounds combined logs, the job deadline and termination/pipe-drain grace. It monitors output and scratch budgets, retains failure evidence and tracks native process groups. Live scans tolerate bounded disappearance of temporary cache entries; final output, source and scratch scans remain strict. Budget-monitor and validation failures retain a safe failed host stage separately from authored-process logs, without storing foreign exception text. A machine-wide durable activity marker survives CLI death; unresolved custody blocks later native dispatch. Detached sessions from authored source are unsupported. Do not delete an unresolved marker to bypass admission; inspect and resolve the actual process ownership first.
|
|
214
226
|
|
|
215
227
|
The native profile is trusted current-user execution without an OS sandbox. Private roots, clean environment variables, hashes and process supervision provide operational control and provenance. They do not confine arbitrary Python, installed plugins or native libraries. Keep unreviewed downloaded source inert until execution is explicitly authorized.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hraness/slopcamera",
|
|
3
|
-
"version": "3.2
|
|
3
|
+
"version": "3.3.2",
|
|
4
4
|
"description": "A local visual studio for coding agents: author scenes, combine generated and recorded media, and export images, diagrams, animation, and video from retained sources.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
],
|
|
198
198
|
"scripts": {
|
|
199
199
|
"build": "bun run build:sdk && bun run build:desktop && bun run build:web",
|
|
200
|
-
"build:sdk": "bun -e 'await (await import(\"node:fs/promises\")).rm(\"./dist\", { recursive: true, force: true })' && bun build ./src/index.ts ./src/cli.ts ./src/code/index.ts ./src/code/advanced.ts ./src/generate.ts ./src/host-resources.ts ./src/operations.ts ./src/workflow.ts ./src/vectorize/worker.ts --outdir ./dist --root ./src --target bun --format esm --splitting --packages external",
|
|
200
|
+
"build:sdk": "bun -e 'await (await import(\"node:fs/promises\")).rm(\"./dist\", { recursive: true, force: true })' && bun build ./src/index.ts ./src/cli.ts ./src/code/index.ts ./src/code/advanced.ts ./src/generate.ts ./src/host-resources.ts ./src/operations.ts ./src/workflow.ts ./src/vectorize/worker.ts --outdir ./dist --root ./src --target bun --format esm --splitting --packages external --minify-whitespace --emit-dce-annotations",
|
|
201
201
|
"build:desktop": "bun run build:desktop:cli",
|
|
202
202
|
"build:desktop:cli": "bun -e 'await (await import(\"node:fs/promises\")).rm(\"./apps/desktop/dist/cli\", { recursive: true, force: true })' && bun build --target=bun --minify --sourcemap=none --packages external --external @hraness/slopcamera/cli apps/desktop/cli/main.ts --outdir apps/desktop/dist/cli",
|
|
203
203
|
"build:web": "bun run --cwd apps/web build",
|
|
@@ -226,7 +226,7 @@
|
|
|
226
226
|
"benchmark:code-concurrency": "bun run ./apps/desktop/code/concurrency-benchmark.ts",
|
|
227
227
|
"check:release-workflows": "bun test ./scripts/release-workflow.test.ts ./scripts/github-release.test.ts",
|
|
228
228
|
"check:schema": "bun run ./scripts/validate-schema.ts",
|
|
229
|
-
"check:skill": "bun run ./scripts/validate-skill.ts",
|
|
229
|
+
"check:skill": "bun run ./scripts/validate-skill.ts && bun test ./scripts/social-collage-compositor.test.ts",
|
|
230
230
|
"check:standalone": "bun test ./scripts/standalone-support-fixture.test.ts && bun run ./scripts/check-standalone.ts",
|
|
231
231
|
"test:vectorize:official": "bun run ./scripts/official-vectorizer-smoke.ts",
|
|
232
232
|
"test:package": "bun run ./scripts/package-smoke.ts",
|
|
@@ -237,13 +237,15 @@
|
|
|
237
237
|
"kb:check:lane": "bunx --bun github:hraness/kb#v0.15.2 check --root kb --no-catalog",
|
|
238
238
|
"kb:check": "bunx --bun github:hraness/kb#v0.15.2 check --root kb && bunx --bun github:hraness/kb#v0.15.2 agents check --root kb --repo .",
|
|
239
239
|
"kb:catalog": "bunx --bun github:hraness/kb#v0.15.2 catalog --root kb",
|
|
240
|
-
"check": "bun
|
|
240
|
+
"check:cost-surfaces": "bun ./scripts/check-cost-surfaces.mjs",
|
|
241
|
+
"check": "bun run check:cost-surfaces && bun run check:standalone && bun run check:sdk && bun run check:desktop && bun run check:web && bun run check:standalone && bun run test:package",
|
|
241
242
|
"prepack": "bun run check",
|
|
242
243
|
"check:effect": "bun run ./scripts/check-effect-policy.ts && bun test ./scripts/check-effect-architecture.test.ts"
|
|
243
244
|
},
|
|
244
245
|
"dependencies": {
|
|
245
|
-
"@hraness/support-foundation": "github:hraness/support-foundation#b32c1c81bb2444f50509ed54388758ecfab1f1c0",
|
|
246
246
|
"@ai-sdk/gateway-v4": "npm:@ai-sdk/gateway@^4.0.27",
|
|
247
|
+
"@hraness/algal": "github:hraness/algal#c46264a",
|
|
248
|
+
"@hraness/support-foundation": "github:hraness/support-foundation#b32c1c81bb2444f50509ed54388758ecfab1f1c0",
|
|
247
249
|
"@noble/hashes": "2.2.0",
|
|
248
250
|
"@paper-design/shaders": "0.0.77",
|
|
249
251
|
"@resvg/resvg-js": "2.6.2",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: slopcamera
|
|
3
|
-
description: Create, inspect, edit and render visual media with the Slopcamera CLI and SDK. Use for diagrams, raster-to-SVG conversion, screen or camera recordings, video editing and captions, music videos from authored scenes and local tracks, AI images/video/speech/transcription, Three.js scenes and world-space media, Blender rigs and simulation, CadQuery models, Manim educational films, HTML/WGSL motion graphics, and durable agent workflows.
|
|
3
|
+
description: Create, inspect, edit and render visual media with the Slopcamera CLI and SDK. Use for diagrams, raster-to-SVG conversion, screen or camera recordings, video editing and captions, social collage banners, music videos from authored scenes and local tracks, AI images/video/speech/transcription, Three.js scenes and world-space media, Blender rigs and simulation, CadQuery models, parametric architectural designs, Manim educational films, HTML/WGSL motion graphics, and durable agent workflows.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Create visual media with Slopcamera
|
|
@@ -24,8 +24,14 @@ Slopcamera installs from its verified release archive or from source. Historical
|
|
|
24
24
|
| Music video, dancing mascot or timed HTML scene with a local soundtrack | [Music videos](references/music-video.md) |
|
|
25
25
|
| Authorized YouTube or other public web-media excerpt (`yt-dlp` / `youtube-dl`) | [Web-media excerpts](references/web-media-excerpts.md) |
|
|
26
26
|
| Generate images, clips, narration or transcripts | [Gateway media](references/gateway-media.md) |
|
|
27
|
+
| Compose an editorial or social banner from generated layers, local type and diagrams | [Social collage banners](references/social-collage-banners.md) |
|
|
28
|
+
| Review alternative textures, skyboxes, backdrops, design candidates or whole-scene variants | [Image galleries](references/image-galleries.md) |
|
|
27
29
|
| Budgeted short clips, reviewed takes and continuity | [Directing video](references/directing-video.md) |
|
|
28
30
|
| Editable Three/Spark scene, saved world, named-part edits or shared camera | [Directed scenes](references/directed-scenes.md) |
|
|
31
|
+
| Semantic direction, galleries, bounded effects, temporal audit or the cinematic-world recipe pack | [Directed scenes](references/directed-scenes.md#direct-cinematic-worlds) |
|
|
32
|
+
| Author a scene from code, generate procedural entities, or audit framing | [Scene building](references/scene-building.md) |
|
|
33
|
+
| Refine an existing scene, organic interactions, contact, staging, or final movie quality | [Scene refinement](references/scene-building.md#refine-an-existing-scene) |
|
|
34
|
+
| Parametric architecture, furniture, dimensions, repeated structures or editable design variants | [Parametric design](references/parametric-design.md) |
|
|
29
35
|
| Blender, rigs, bakes, CAD, shared native assets or production frames | [Native studio](references/native-studio.md) |
|
|
30
36
|
| Manim lesson, narrated explanation or mathematical animation | [Educational video](references/educational-video.md) |
|
|
31
37
|
| Typed Bun SDK, built-in workflow, durable resume or MCP | [Workflows and SDK](references/workflows-sdk.md) |
|