@deepblend/dsh-blender-tool 0.3.3 → 0.3.5
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/lib/tools.js +10 -0
- package/package.json +2 -2
package/lib/tools.js
CHANGED
|
@@ -33,6 +33,7 @@ import {
|
|
|
33
33
|
SCENE_OPERATION_NAMES,
|
|
34
34
|
BlenderError,
|
|
35
35
|
BlenderErrorCode,
|
|
36
|
+
CREATION_REQUEST_VERSION,
|
|
36
37
|
BlenderWarningCode,
|
|
37
38
|
warning,
|
|
38
39
|
} from '@deepblend/dsh-blender-contracts'
|
|
@@ -192,6 +193,10 @@ function projectCreate(ctx) {
|
|
|
192
193
|
description:
|
|
193
194
|
'Also render the preview profile now, so the first revision already has a viewable image. Default false.',
|
|
194
195
|
},
|
|
196
|
+
creationKey: {
|
|
197
|
+
type: 'string',
|
|
198
|
+
description: 'Optional stable key for this creation intent (1–128 characters, no control characters). Reuse it with the same inputs when retrying an uncertain result. A completed request opens the same project without another compile or render; a new project needs a new key. Recovery returns its current saved revision.',
|
|
199
|
+
},
|
|
195
200
|
},
|
|
196
201
|
output: TOOL_OUTPUT,
|
|
197
202
|
async execute(args, exec) {
|
|
@@ -199,6 +204,9 @@ function projectCreate(ctx) {
|
|
|
199
204
|
if (resolved.unavailable !== undefined) return { ok: false, ...resolved.unavailable }
|
|
200
205
|
try {
|
|
201
206
|
if (args.recipe !== undefined && args.sceneSpec !== undefined) throw new BlenderError('RECIPE_REQUEST_INVALID', 'Pass either recipe or sceneSpec, not both')
|
|
207
|
+
if (args.creationKey !== undefined && resolved.studio.creationRequestProtocol !== CREATION_REQUEST_VERSION) {
|
|
208
|
+
throw new BlenderError('UI_HOST_API_STALE', 'The running Host cannot recover keyed creation requests. Update DeepBlend and restart the profile before retrying.')
|
|
209
|
+
}
|
|
202
210
|
const { data, canonicalWarnings } = await canonicalCall(resolved.studio.createProject({
|
|
203
211
|
...definedFields({
|
|
204
212
|
title: args.title,
|
|
@@ -206,6 +214,7 @@ function projectCreate(ctx) {
|
|
|
206
214
|
sceneSpec: args.sceneSpec,
|
|
207
215
|
recipe: args.recipe,
|
|
208
216
|
projectId: args.projectId,
|
|
217
|
+
creationKey: args.creationKey,
|
|
209
218
|
saveCheckpoint: args.saveCheckpoint,
|
|
210
219
|
}),
|
|
211
220
|
renderPreview: args.renderPreview === true,
|
|
@@ -216,6 +225,7 @@ function projectCreate(ctx) {
|
|
|
216
225
|
`Revision: ${describeRevision(data.revision)}`,
|
|
217
226
|
`Digest: ${data.revision.digest}`,
|
|
218
227
|
]
|
|
228
|
+
if (data.creationReplayed) notes.push('Recovered the existing creation; no new project, compile or render was started. This is the current saved revision.')
|
|
219
229
|
if (data.revision.checkpoint === null) {
|
|
220
230
|
notes.push('No checkpoint was saved. The first preview will compile this revision lazily.')
|
|
221
231
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepblend/dsh-blender-tool",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Agent-preset tool consumer: registers the model-visible DeepBlend Blender tools. Publishes no service.",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"./package.json": "./package.json"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@deepblend/dsh-blender-contracts": "0.3.
|
|
14
|
+
"@deepblend/dsh-blender-contracts": "0.3.5"
|
|
15
15
|
},
|
|
16
16
|
"license": "MIT",
|
|
17
17
|
"repository": {
|