@robota-sdk/agent-cli 3.0.2 → 3.0.3
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/CHANGELOG.md +5 -0
- package/dist/node/bin.js +1 -1
- package/dist/node/{cli-core-Cg4H6FH2.js → cli-core-BNFQkpzz.js} +2 -2
- package/dist/node/desktop-host.js +1 -1
- package/dist/node/headless.js +1 -1
- package/dist/node/host.js +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/{product-host-BsT1Xq4C.js → product-host-DYdAvgNe.js} +3 -3
- package/dist/node/{product-host-BsT1Xq4C.js.map → product-host-DYdAvgNe.js.map} +1 -1
- package/dist/node/{src-B9UMvThT-DInbihOf.js → src-B9UMvThT-Co8Llz3u.js} +2 -2
- package/dist/node/{src-B9UMvThT-DInbihOf.js.map → src-B9UMvThT-Co8Llz3u.js.map} +1 -1
- package/dist/node/{src-B9UMvThT-B4p8y1ba.js → src-B9UMvThT-xVrmuh7B.js} +1 -1
- package/dist/node/{src-BzaNFPZx-E-faT9I-.js → src-BzaNFPZx--lzFklaI.js} +2 -2
- package/dist/node/{src-BzaNFPZx-E-faT9I-.js.map → src-BzaNFPZx--lzFklaI.js.map} +1 -1
- package/dist/node/{src-BzaNFPZx-PaYEuPZc.js → src-BzaNFPZx-DVbZh24u.js} +1 -1
- package/dist/node/{src-DwAfU-9z-DLr4gyAc.js → src-DwAfU-9z-BqONMS8f.js} +2 -2
- package/dist/node/{src-DwAfU-9z-DLr4gyAc.js.map → src-DwAfU-9z-BqONMS8f.js.map} +1 -1
- package/dist/node/{src-DwAfU-9z-YAG_fVg1.js → src-DwAfU-9z-C7nXUsHn.js} +1 -1
- package/dist/node/{src-UPsd6jNY-CPmh5JTO.js → src-UPsd6jNY-BI2OdiBD.js} +1 -1
- package/dist/node/{src-UPsd6jNY-BT0Qq67D.js → src-UPsd6jNY-BQ9fkZXI.js} +2 -2
- package/dist/node/{src-UPsd6jNY-BT0Qq67D.js.map → src-UPsd6jNY-BQ9fkZXI.js.map} +1 -1
- package/package.json +38 -38
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src-UPsd6jNY-BT0Qq67D.js","names":["createVideoProviderFromDefinition"],"sources":["../../../../node_modules/.pnpm/@robota-sdk+workflows@0.0.1_@robota-sdk+agent-builtin-providers@packages+agent-builtin-provid_fyphygebbshu7jmq4ctmgsssba/node_modules/@robota-sdk/workflows/dist/src-UPsd6jNY.js"],"sourcesContent":["import { M as buildTaskExecutionError, N as buildValidationError } from \"./src-B8Q55bgl.js\";\nimport { a as normalizeProviderMediaOutput, d as NodeIoAccessor, m as AbstractNodeDefinition } from \"./src-CJ5v-GB_.js\";\nimport { n as createBinaryPortDefinition, t as BINARY_PORT_PRESETS } from \"./port-definition-helpers-Ds4U7opr.js\";\nimport { z } from \"zod\";\nimport { createVideoProviderFromDefinition } from \"@robota-sdk/agent-core\";\n// ../dag-nodes/seedance-video/src/video-output-normalizer.ts\nconst DEFAULT_VIDEO_MIME_TYPE = \"video/mp4\";\n/**\n* Normalizes a provider media output reference into a video binary port value.\n*\n* The projection is the provider-neutral `normalizeProviderMediaOutput` (#2168); this leaf owns the\n* video policy and the Seedance error decoration. Unlike the image nodes, the policy is lenient about\n* the mime type: the ByteDance provider often returns a plain URL with no mime type, so a\n* missing/blank mime type defaults to `video/mp4`. A present-but-non-video mime type is still rejected.\n*/\nfunction normalizeVideoOutput(output) {\n\tconst result = normalizeProviderMediaOutput(output, {\n\t\tkind: \"video\",\n\t\tmediaTypePrefix: \"video/\",\n\t\tdefaultMimeType: DEFAULT_VIDEO_MIME_TYPE,\n\t\tparseDataUri: false\n\t});\n\tif (result.ok) return result;\n\treturn {\n\t\tok: false,\n\t\terror: decorate(result.rejection)\n\t};\n}\nfunction decorate(rejection) {\n\tswitch (rejection.reason) {\n\t\tcase \"asset_invalid\": return buildTaskExecutionError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_OUTPUT_ASSET_INVALID\", \"Provider returned asset output without valid assetId\", false);\n\t\tcase \"uri_missing\": return buildTaskExecutionError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_OUTPUT_URI_MISSING\", \"Provider returned uri output without uri value\", false);\n\t\tcase \"media_type_invalid\":\n\t\tcase \"data_uri_unsupported\": return buildTaskExecutionError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_OUTPUT_MEDIA_TYPE_INVALID\", \"Provider returned non-video media type for seedance-video output\", false, { mimeType: rejection.reason === \"media_type_invalid\" ? rejection.mimeType ?? \"missing\" : \"missing\" });\n\t}\n}\n// ../dag-nodes/seedance-video/src/runtime-core.ts\nfunction resolveModel(selectedModel, defaultModel, allowedModels) {\n\tconst model = selectedModel.trim().length > 0 ? selectedModel.trim() : defaultModel;\n\tif (allowedModels.length > 0 && !allowedModels.includes(model)) return {\n\t\tok: false,\n\t\terror: buildValidationError(\"DAG_VALIDATION_SEEDANCE_VIDEO_MODEL_NOT_ALLOWED\", \"Selected seedance-video model is not allowed in DAG runtime\", { model })\n\t};\n\treturn {\n\t\tok: true,\n\t\tvalue: model\n\t};\n}\nfunction defaultSleep(ms) {\n\treturn new Promise((resolve) => {\n\t\tsetTimeout(resolve, ms);\n\t});\n}\n/**\n* Runtime that delegates video generation to the capability supplied by the injected media definition.\n*\n* Video generation is asynchronous: `createVideo` submits a job, then `getVideoJob`\n* is polled until the job reaches a terminal status or the max-wait timeout elapses.\n*/\nvar SeedanceVideoRuntime = class {\n\tdefinition;\n\texplicitDefaultModel;\n\texplicitAllowedModels;\n\tsleep;\n\tconstructor(options) {\n\t\tthis.definition = options?.videoProviderDefinition;\n\t\tthis.explicitDefaultModel = options?.defaultModel;\n\t\tthis.explicitAllowedModels = options?.allowedModels;\n\t\tthis.sleep = options?.sleep ?? defaultSleep;\n\t}\n\tresolveDefaultModel() {\n\t\tconst defaultModelValue = this.explicitDefaultModel ?? this.definition?.defaults?.model;\n\t\tif (typeof defaultModelValue !== \"string\" || defaultModelValue.trim().length === 0) return {\n\t\t\tok: false,\n\t\t\terror: buildValidationError(\"DAG_VALIDATION_SEEDANCE_VIDEO_MODEL_REQUIRED\", \"DAG_SEEDANCE_VIDEO_DEFAULT_MODEL must be configured or model must be specified in node config\")\n\t\t};\n\t\treturn {\n\t\t\tok: true,\n\t\t\tvalue: defaultModelValue.trim()\n\t\t};\n\t}\n\tresolveAllowedModels() {\n\t\treturn this.explicitAllowedModels ?? this.definition?.defaults?.allowedModels ?? [];\n\t}\n\tresolveProvider() {\n\t\tif (this.definition === void 0) return void 0;\n\t\treturn createVideoProviderFromDefinition(this.definition);\n\t}\n\tmapProviderError(code, error, model) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\terror: buildTaskExecutionError(code, error.message, false, {\n\t\t\t\tcode: error.code,\n\t\t\t\tmodel\n\t\t\t})\n\t\t};\n\t}\n\tasync tryCancel(provider, jobId) {\n\t\ttry {\n\t\t\tawait provider.cancelVideoJob(jobId);\n\t\t} catch {}\n\t}\n\tasync generateVideo(request) {\n\t\tconst defaultModelResult = this.resolveDefaultModel();\n\t\tif (!defaultModelResult.ok) return defaultModelResult;\n\t\tconst allowedModels = this.resolveAllowedModels();\n\t\tconst provider = this.resolveProvider();\n\t\tif (!provider) return {\n\t\t\tok: false,\n\t\t\terror: buildValidationError(\"DAG_VALIDATION_SEEDANCE_VIDEO_CREDENTIALS_REQUIRED\", \"SEEDANCE_API_KEY and SEEDANCE_BASE_URL must both be configured for seedance-video node runtime\")\n\t\t};\n\t\tconst modelResult = resolveModel(request.model, defaultModelResult.value, allowedModels);\n\t\tif (!modelResult.ok) return modelResult;\n\t\tconst created = await provider.createVideo({\n\t\t\tprompt: request.prompt,\n\t\t\tmodel: modelResult.value,\n\t\t\t...request.durationSeconds !== void 0 ? { durationSeconds: request.durationSeconds } : {},\n\t\t\t...request.aspectRatio !== void 0 ? { aspectRatio: request.aspectRatio } : {}\n\t\t});\n\t\tif (!created.ok) return this.mapProviderError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_CREATE_FAILED\", created.error, modelResult.value);\n\t\treturn this.pollJob(provider, created.value.jobId, modelResult.value, request);\n\t}\n\t/**\n\t* Maps a terminal job snapshot to a result. Returns `undefined` for non-terminal\n\t* (`queued`/`running`) states so the caller keeps polling.\n\t*/\n\tmapTerminalSnapshot(job, model) {\n\t\tif (job.status === \"succeeded\") {\n\t\t\tif (!job.output) return {\n\t\t\t\tok: false,\n\t\t\t\terror: buildTaskExecutionError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_OUTPUT_MISSING\", \"Seedance video job succeeded but returned no output\", false, {\n\t\t\t\t\tjobId: job.jobId,\n\t\t\t\t\tmodel\n\t\t\t\t})\n\t\t\t};\n\t\t\treturn normalizeVideoOutput(job.output);\n\t\t}\n\t\tif (job.status === \"failed\" || job.status === \"cancelled\") return {\n\t\t\tok: false,\n\t\t\terror: buildTaskExecutionError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_JOB_FAILED\", `Seedance video job ${job.status}: ${job.error?.message ?? \"no error detail\"}`, false, {\n\t\t\t\tjobId: job.jobId,\n\t\t\t\tstatus: job.status,\n\t\t\t\tproviderCode: job.error?.code ?? \"unknown\"\n\t\t\t})\n\t\t};\n\t}\n\tasync pollJob(provider, jobId, model, request) {\n\t\tconst startMs = Date.now();\n\t\tfor (;;) {\n\t\t\tconst snapshot = await provider.getVideoJob(jobId);\n\t\t\tif (!snapshot.ok) return this.mapProviderError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_POLL_FAILED\", snapshot.error, model);\n\t\t\tconst terminal = this.mapTerminalSnapshot(snapshot.value, model);\n\t\t\tif (terminal) return terminal;\n\t\t\tif (Date.now() - startMs >= request.maxWaitMs) {\n\t\t\t\tawait this.tryCancel(provider, jobId);\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: buildTaskExecutionError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_TIMEOUT\", `Seedance video job did not complete within ${request.maxWaitMs}ms`, true, {\n\t\t\t\t\t\tjobId,\n\t\t\t\t\t\tmaxWaitMs: request.maxWaitMs\n\t\t\t\t\t})\n\t\t\t\t};\n\t\t\t}\n\t\t\tawait this.sleep(request.pollIntervalMs);\n\t\t}\n\t}\n};\nconst SeedanceVideoConfigSchema = z.object({\n\tmodel: z.string().default(\"\"),\n\tbaseCredits: z.number().default(.5),\n\tdurationSeconds: z.number().int().positive().optional(),\n\taspectRatio: z.string().optional(),\n\tpollIntervalMs: z.number().int().positive().default(5e3),\n\tmaxWaitMs: z.number().int().positive().default(3e5)\n});\n/**\n* DAG node that generates a video from a text prompt using the ByteDance/Seedance video API.\n*\n* Submits an async job and polls until it completes, then returns the generated video.\n*\n* @extends AbstractNodeDefinition\n*/\nvar SeedanceVideoNodeDefinition = class extends AbstractNodeDefinition {\n\tnodeType = \"seedance-video\";\n\tdisplayName = \"Seedance Video\";\n\tcategory = \"AI\";\n\tinputs = [{\n\t\tkey: \"text\",\n\t\tlabel: \"Text\",\n\t\torder: 0,\n\t\ttype: \"string\",\n\t\trequired: true\n\t}];\n\toutputs = [createBinaryPortDefinition({\n\t\tkey: \"video\",\n\t\tlabel: \"Video\",\n\t\torder: 0,\n\t\trequired: true,\n\t\tpreset: BINARY_PORT_PRESETS.VIDEO_MP4\n\t})];\n\tdefaultInputPort = \"text\";\n\tdefaultOutputPort = \"video\";\n\tconfigSchemaDefinition = SeedanceVideoConfigSchema;\n\truntime;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.runtime = new SeedanceVideoRuntime(options);\n\t}\n\tasync estimateCostWithConfig(_input, _context, config) {\n\t\treturn {\n\t\t\tok: true,\n\t\t\tvalue: { estimatedCredits: config.baseCredits }\n\t\t};\n\t}\n\tasync executeWithConfig(input, context, config) {\n\t\tconst io = new NodeIoAccessor(input, context.nodeDefinition.nodeId);\n\t\tconst textInputResult = io.requireInputString(\"text\");\n\t\tif (!textInputResult.ok || textInputResult.value.trim().length === 0) return {\n\t\t\tok: false,\n\t\t\terror: buildValidationError(\"DAG_VALIDATION_SEEDANCE_VIDEO_PROMPT_REQUIRED\", \"Seedance video node requires non-empty text input\", { nodeId: context.nodeDefinition.nodeId })\n\t\t};\n\t\tconst generateResult = await this.runtime.generateVideo({\n\t\t\tprompt: textInputResult.value.trim(),\n\t\t\tmodel: config.model,\n\t\t\t...config.durationSeconds !== void 0 ? { durationSeconds: config.durationSeconds } : {},\n\t\t\t...config.aspectRatio !== void 0 ? { aspectRatio: config.aspectRatio } : {},\n\t\t\tpollIntervalMs: config.pollIntervalMs,\n\t\t\tmaxWaitMs: config.maxWaitMs\n\t\t});\n\t\tif (!generateResult.ok) return generateResult;\n\t\tif (generateResult.value.kind !== \"video\") return {\n\t\t\tok: false,\n\t\t\terror: buildTaskExecutionError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_OUTPUT_INVALID\", \"Seedance video node returned non-video output\", false)\n\t\t};\n\t\tio.setOutput(\"video\", generateResult.value);\n\t\tio.setOutput(\"_agentSummary\", `Video generated from prompt with Seedance. Model: ${config.model}.`);\n\t\treturn {\n\t\t\tok: true,\n\t\t\tvalue: io.toOutput()\n\t\t};\n\t}\n};\nfunction createSeedanceVideoNodeDefinition() {\n\treturn new SeedanceVideoNodeDefinition();\n}\nexport { SeedanceVideoConfigSchema, SeedanceVideoNodeDefinition, SeedanceVideoRuntime, createSeedanceVideoNodeDefinition };\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"src-UPsd6jNY-BQ9fkZXI.js","names":["createVideoProviderFromDefinition"],"sources":["../../../../node_modules/.pnpm/@robota-sdk+workflows@0.0.1_@robota-sdk+agent-builtin-providers@packages+agent-builtin-provid_fyphygebbshu7jmq4ctmgsssba/node_modules/@robota-sdk/workflows/dist/src-UPsd6jNY.js"],"sourcesContent":["import { M as buildTaskExecutionError, N as buildValidationError } from \"./src-B8Q55bgl.js\";\nimport { a as normalizeProviderMediaOutput, d as NodeIoAccessor, m as AbstractNodeDefinition } from \"./src-CJ5v-GB_.js\";\nimport { n as createBinaryPortDefinition, t as BINARY_PORT_PRESETS } from \"./port-definition-helpers-Ds4U7opr.js\";\nimport { z } from \"zod\";\nimport { createVideoProviderFromDefinition } from \"@robota-sdk/agent-core\";\n// ../dag-nodes/seedance-video/src/video-output-normalizer.ts\nconst DEFAULT_VIDEO_MIME_TYPE = \"video/mp4\";\n/**\n* Normalizes a provider media output reference into a video binary port value.\n*\n* The projection is the provider-neutral `normalizeProviderMediaOutput` (#2168); this leaf owns the\n* video policy and the Seedance error decoration. Unlike the image nodes, the policy is lenient about\n* the mime type: the ByteDance provider often returns a plain URL with no mime type, so a\n* missing/blank mime type defaults to `video/mp4`. A present-but-non-video mime type is still rejected.\n*/\nfunction normalizeVideoOutput(output) {\n\tconst result = normalizeProviderMediaOutput(output, {\n\t\tkind: \"video\",\n\t\tmediaTypePrefix: \"video/\",\n\t\tdefaultMimeType: DEFAULT_VIDEO_MIME_TYPE,\n\t\tparseDataUri: false\n\t});\n\tif (result.ok) return result;\n\treturn {\n\t\tok: false,\n\t\terror: decorate(result.rejection)\n\t};\n}\nfunction decorate(rejection) {\n\tswitch (rejection.reason) {\n\t\tcase \"asset_invalid\": return buildTaskExecutionError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_OUTPUT_ASSET_INVALID\", \"Provider returned asset output without valid assetId\", false);\n\t\tcase \"uri_missing\": return buildTaskExecutionError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_OUTPUT_URI_MISSING\", \"Provider returned uri output without uri value\", false);\n\t\tcase \"media_type_invalid\":\n\t\tcase \"data_uri_unsupported\": return buildTaskExecutionError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_OUTPUT_MEDIA_TYPE_INVALID\", \"Provider returned non-video media type for seedance-video output\", false, { mimeType: rejection.reason === \"media_type_invalid\" ? rejection.mimeType ?? \"missing\" : \"missing\" });\n\t}\n}\n// ../dag-nodes/seedance-video/src/runtime-core.ts\nfunction resolveModel(selectedModel, defaultModel, allowedModels) {\n\tconst model = selectedModel.trim().length > 0 ? selectedModel.trim() : defaultModel;\n\tif (allowedModels.length > 0 && !allowedModels.includes(model)) return {\n\t\tok: false,\n\t\terror: buildValidationError(\"DAG_VALIDATION_SEEDANCE_VIDEO_MODEL_NOT_ALLOWED\", \"Selected seedance-video model is not allowed in DAG runtime\", { model })\n\t};\n\treturn {\n\t\tok: true,\n\t\tvalue: model\n\t};\n}\nfunction defaultSleep(ms) {\n\treturn new Promise((resolve) => {\n\t\tsetTimeout(resolve, ms);\n\t});\n}\n/**\n* Runtime that delegates video generation to the capability supplied by the injected media definition.\n*\n* Video generation is asynchronous: `createVideo` submits a job, then `getVideoJob`\n* is polled until the job reaches a terminal status or the max-wait timeout elapses.\n*/\nvar SeedanceVideoRuntime = class {\n\tdefinition;\n\texplicitDefaultModel;\n\texplicitAllowedModels;\n\tsleep;\n\tconstructor(options) {\n\t\tthis.definition = options?.videoProviderDefinition;\n\t\tthis.explicitDefaultModel = options?.defaultModel;\n\t\tthis.explicitAllowedModels = options?.allowedModels;\n\t\tthis.sleep = options?.sleep ?? defaultSleep;\n\t}\n\tresolveDefaultModel() {\n\t\tconst defaultModelValue = this.explicitDefaultModel ?? this.definition?.defaults?.model;\n\t\tif (typeof defaultModelValue !== \"string\" || defaultModelValue.trim().length === 0) return {\n\t\t\tok: false,\n\t\t\terror: buildValidationError(\"DAG_VALIDATION_SEEDANCE_VIDEO_MODEL_REQUIRED\", \"DAG_SEEDANCE_VIDEO_DEFAULT_MODEL must be configured or model must be specified in node config\")\n\t\t};\n\t\treturn {\n\t\t\tok: true,\n\t\t\tvalue: defaultModelValue.trim()\n\t\t};\n\t}\n\tresolveAllowedModels() {\n\t\treturn this.explicitAllowedModels ?? this.definition?.defaults?.allowedModels ?? [];\n\t}\n\tresolveProvider() {\n\t\tif (this.definition === void 0) return void 0;\n\t\treturn createVideoProviderFromDefinition(this.definition);\n\t}\n\tmapProviderError(code, error, model) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\terror: buildTaskExecutionError(code, error.message, false, {\n\t\t\t\tcode: error.code,\n\t\t\t\tmodel\n\t\t\t})\n\t\t};\n\t}\n\tasync tryCancel(provider, jobId) {\n\t\ttry {\n\t\t\tawait provider.cancelVideoJob(jobId);\n\t\t} catch {}\n\t}\n\tasync generateVideo(request) {\n\t\tconst defaultModelResult = this.resolveDefaultModel();\n\t\tif (!defaultModelResult.ok) return defaultModelResult;\n\t\tconst allowedModels = this.resolveAllowedModels();\n\t\tconst provider = this.resolveProvider();\n\t\tif (!provider) return {\n\t\t\tok: false,\n\t\t\terror: buildValidationError(\"DAG_VALIDATION_SEEDANCE_VIDEO_CREDENTIALS_REQUIRED\", \"SEEDANCE_API_KEY and SEEDANCE_BASE_URL must both be configured for seedance-video node runtime\")\n\t\t};\n\t\tconst modelResult = resolveModel(request.model, defaultModelResult.value, allowedModels);\n\t\tif (!modelResult.ok) return modelResult;\n\t\tconst created = await provider.createVideo({\n\t\t\tprompt: request.prompt,\n\t\t\tmodel: modelResult.value,\n\t\t\t...request.durationSeconds !== void 0 ? { durationSeconds: request.durationSeconds } : {},\n\t\t\t...request.aspectRatio !== void 0 ? { aspectRatio: request.aspectRatio } : {}\n\t\t});\n\t\tif (!created.ok) return this.mapProviderError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_CREATE_FAILED\", created.error, modelResult.value);\n\t\treturn this.pollJob(provider, created.value.jobId, modelResult.value, request);\n\t}\n\t/**\n\t* Maps a terminal job snapshot to a result. Returns `undefined` for non-terminal\n\t* (`queued`/`running`) states so the caller keeps polling.\n\t*/\n\tmapTerminalSnapshot(job, model) {\n\t\tif (job.status === \"succeeded\") {\n\t\t\tif (!job.output) return {\n\t\t\t\tok: false,\n\t\t\t\terror: buildTaskExecutionError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_OUTPUT_MISSING\", \"Seedance video job succeeded but returned no output\", false, {\n\t\t\t\t\tjobId: job.jobId,\n\t\t\t\t\tmodel\n\t\t\t\t})\n\t\t\t};\n\t\t\treturn normalizeVideoOutput(job.output);\n\t\t}\n\t\tif (job.status === \"failed\" || job.status === \"cancelled\") return {\n\t\t\tok: false,\n\t\t\terror: buildTaskExecutionError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_JOB_FAILED\", `Seedance video job ${job.status}: ${job.error?.message ?? \"no error detail\"}`, false, {\n\t\t\t\tjobId: job.jobId,\n\t\t\t\tstatus: job.status,\n\t\t\t\tproviderCode: job.error?.code ?? \"unknown\"\n\t\t\t})\n\t\t};\n\t}\n\tasync pollJob(provider, jobId, model, request) {\n\t\tconst startMs = Date.now();\n\t\tfor (;;) {\n\t\t\tconst snapshot = await provider.getVideoJob(jobId);\n\t\t\tif (!snapshot.ok) return this.mapProviderError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_POLL_FAILED\", snapshot.error, model);\n\t\t\tconst terminal = this.mapTerminalSnapshot(snapshot.value, model);\n\t\t\tif (terminal) return terminal;\n\t\t\tif (Date.now() - startMs >= request.maxWaitMs) {\n\t\t\t\tawait this.tryCancel(provider, jobId);\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: buildTaskExecutionError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_TIMEOUT\", `Seedance video job did not complete within ${request.maxWaitMs}ms`, true, {\n\t\t\t\t\t\tjobId,\n\t\t\t\t\t\tmaxWaitMs: request.maxWaitMs\n\t\t\t\t\t})\n\t\t\t\t};\n\t\t\t}\n\t\t\tawait this.sleep(request.pollIntervalMs);\n\t\t}\n\t}\n};\nconst SeedanceVideoConfigSchema = z.object({\n\tmodel: z.string().default(\"\"),\n\tbaseCredits: z.number().default(.5),\n\tdurationSeconds: z.number().int().positive().optional(),\n\taspectRatio: z.string().optional(),\n\tpollIntervalMs: z.number().int().positive().default(5e3),\n\tmaxWaitMs: z.number().int().positive().default(3e5)\n});\n/**\n* DAG node that generates a video from a text prompt using the ByteDance/Seedance video API.\n*\n* Submits an async job and polls until it completes, then returns the generated video.\n*\n* @extends AbstractNodeDefinition\n*/\nvar SeedanceVideoNodeDefinition = class extends AbstractNodeDefinition {\n\tnodeType = \"seedance-video\";\n\tdisplayName = \"Seedance Video\";\n\tcategory = \"AI\";\n\tinputs = [{\n\t\tkey: \"text\",\n\t\tlabel: \"Text\",\n\t\torder: 0,\n\t\ttype: \"string\",\n\t\trequired: true\n\t}];\n\toutputs = [createBinaryPortDefinition({\n\t\tkey: \"video\",\n\t\tlabel: \"Video\",\n\t\torder: 0,\n\t\trequired: true,\n\t\tpreset: BINARY_PORT_PRESETS.VIDEO_MP4\n\t})];\n\tdefaultInputPort = \"text\";\n\tdefaultOutputPort = \"video\";\n\tconfigSchemaDefinition = SeedanceVideoConfigSchema;\n\truntime;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.runtime = new SeedanceVideoRuntime(options);\n\t}\n\tasync estimateCostWithConfig(_input, _context, config) {\n\t\treturn {\n\t\t\tok: true,\n\t\t\tvalue: { estimatedCredits: config.baseCredits }\n\t\t};\n\t}\n\tasync executeWithConfig(input, context, config) {\n\t\tconst io = new NodeIoAccessor(input, context.nodeDefinition.nodeId);\n\t\tconst textInputResult = io.requireInputString(\"text\");\n\t\tif (!textInputResult.ok || textInputResult.value.trim().length === 0) return {\n\t\t\tok: false,\n\t\t\terror: buildValidationError(\"DAG_VALIDATION_SEEDANCE_VIDEO_PROMPT_REQUIRED\", \"Seedance video node requires non-empty text input\", { nodeId: context.nodeDefinition.nodeId })\n\t\t};\n\t\tconst generateResult = await this.runtime.generateVideo({\n\t\t\tprompt: textInputResult.value.trim(),\n\t\t\tmodel: config.model,\n\t\t\t...config.durationSeconds !== void 0 ? { durationSeconds: config.durationSeconds } : {},\n\t\t\t...config.aspectRatio !== void 0 ? { aspectRatio: config.aspectRatio } : {},\n\t\t\tpollIntervalMs: config.pollIntervalMs,\n\t\t\tmaxWaitMs: config.maxWaitMs\n\t\t});\n\t\tif (!generateResult.ok) return generateResult;\n\t\tif (generateResult.value.kind !== \"video\") return {\n\t\t\tok: false,\n\t\t\terror: buildTaskExecutionError(\"DAG_TASK_EXECUTION_SEEDANCE_VIDEO_OUTPUT_INVALID\", \"Seedance video node returned non-video output\", false)\n\t\t};\n\t\tio.setOutput(\"video\", generateResult.value);\n\t\tio.setOutput(\"_agentSummary\", `Video generated from prompt with Seedance. Model: ${config.model}.`);\n\t\treturn {\n\t\t\tok: true,\n\t\t\tvalue: io.toOutput()\n\t\t};\n\t}\n};\nfunction createSeedanceVideoNodeDefinition() {\n\treturn new SeedanceVideoNodeDefinition();\n}\nexport { SeedanceVideoConfigSchema, SeedanceVideoNodeDefinition, SeedanceVideoRuntime, createSeedanceVideoNodeDefinition };\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robota-sdk/agent-cli",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.3",
|
|
4
4
|
"description": "robota — a coding-capable terminal agent built from the same foundation as the Robota SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"openai": "^6.0.0",
|
|
94
94
|
"p-limit": "^7.3.0",
|
|
95
95
|
"qrcode": "^1.5.4",
|
|
96
|
-
"react": "19.2.
|
|
96
|
+
"react": "^19.2.0",
|
|
97
97
|
"string-width": "^8.2.2",
|
|
98
98
|
"ws": "^8.21.1",
|
|
99
99
|
"zod": "^4.6.7",
|
|
@@ -128,42 +128,42 @@
|
|
|
128
128
|
"tsx": "^4.23.1",
|
|
129
129
|
"typescript": "^6.0.3",
|
|
130
130
|
"vitest": "^3.2.6",
|
|
131
|
-
"@robota-sdk/agent-
|
|
132
|
-
"@robota-sdk/agent-
|
|
133
|
-
"@robota-sdk/agent-
|
|
134
|
-
"@robota-sdk/agent-
|
|
135
|
-
"@robota-sdk/agent-
|
|
136
|
-
"@robota-sdk/agent-gui-web": "3.0.
|
|
137
|
-
"@robota-sdk/agent-interface-analytics": "3.0.
|
|
138
|
-
"@robota-sdk/agent-interface-
|
|
139
|
-
"@robota-sdk/agent-interface-session
|
|
140
|
-
"@robota-sdk/agent-
|
|
141
|
-
"@robota-sdk/agent-
|
|
142
|
-
"@robota-sdk/agent-
|
|
143
|
-
"@robota-sdk/agent-
|
|
144
|
-
"@robota-sdk/agent-provider-anthropic": "3.0.
|
|
145
|
-
"@robota-sdk/agent-
|
|
146
|
-
"@robota-sdk/agent-provider-openai": "3.0.
|
|
147
|
-
"@robota-sdk/agent-
|
|
148
|
-
"@robota-sdk/agent-provider-
|
|
149
|
-
"@robota-sdk/agent-
|
|
150
|
-
"@robota-sdk/agent-
|
|
151
|
-
"@robota-sdk/agent-
|
|
152
|
-
"@robota-sdk/agent-
|
|
153
|
-
"@robota-sdk/agent-
|
|
154
|
-
"@robota-sdk/agent-subagent-runner": "3.0.
|
|
155
|
-
"@robota-sdk/agent-telemetry-otel": "3.0.
|
|
156
|
-
"@robota-sdk/agent-tools": "3.0.
|
|
157
|
-
"@robota-sdk/agent-
|
|
158
|
-
"@robota-sdk/agent-
|
|
159
|
-
"@robota-sdk/agent-transport
|
|
160
|
-
"@robota-sdk/agent-transport-http": "3.0.
|
|
161
|
-
"@robota-sdk/agent-transport-mcp": "3.0.
|
|
162
|
-
"@robota-sdk/agent-transport-webrtc": "3.0.
|
|
163
|
-
"@robota-sdk/agent-transport-ws": "3.0.
|
|
164
|
-
"@robota-sdk/
|
|
165
|
-
"@robota-sdk/product-config": "3.0.
|
|
166
|
-
"@robota-sdk/
|
|
131
|
+
"@robota-sdk/agent-command": "3.0.3",
|
|
132
|
+
"@robota-sdk/agent-executor": "3.0.3",
|
|
133
|
+
"@robota-sdk/agent-framework": "3.0.3",
|
|
134
|
+
"@robota-sdk/agent-builtin-providers": "3.0.3",
|
|
135
|
+
"@robota-sdk/agent-core": "3.0.3",
|
|
136
|
+
"@robota-sdk/agent-gui-web": "3.0.3",
|
|
137
|
+
"@robota-sdk/agent-interface-analytics": "3.0.3",
|
|
138
|
+
"@robota-sdk/agent-interface-command": "3.0.3",
|
|
139
|
+
"@robota-sdk/agent-interface-session": "3.0.3",
|
|
140
|
+
"@robota-sdk/agent-mcp": "3.0.3",
|
|
141
|
+
"@robota-sdk/agent-organization-host": "3.0.3",
|
|
142
|
+
"@robota-sdk/agent-interface-session-mobility": "3.0.3",
|
|
143
|
+
"@robota-sdk/agent-interface-transport": "3.0.3",
|
|
144
|
+
"@robota-sdk/agent-provider-anthropic": "3.0.3",
|
|
145
|
+
"@robota-sdk/agent-product": "3.0.3",
|
|
146
|
+
"@robota-sdk/agent-provider-openai-compatible": "3.0.3",
|
|
147
|
+
"@robota-sdk/agent-preset": "3.0.3",
|
|
148
|
+
"@robota-sdk/agent-provider-gemini": "3.0.3",
|
|
149
|
+
"@robota-sdk/agent-provider-openai": "3.0.3",
|
|
150
|
+
"@robota-sdk/agent-remote-pairing": "3.0.3",
|
|
151
|
+
"@robota-sdk/agent-session": "3.0.3",
|
|
152
|
+
"@robota-sdk/agent-session-analytics": "3.0.3",
|
|
153
|
+
"@robota-sdk/agent-provider-replay": "3.0.3",
|
|
154
|
+
"@robota-sdk/agent-subagent-runner": "3.0.3",
|
|
155
|
+
"@robota-sdk/agent-telemetry-otel": "3.0.3",
|
|
156
|
+
"@robota-sdk/agent-tools": "3.0.3",
|
|
157
|
+
"@robota-sdk/agent-transport-acp": "3.0.3",
|
|
158
|
+
"@robota-sdk/agent-tool-defaults": "3.0.3",
|
|
159
|
+
"@robota-sdk/agent-transport": "3.0.3",
|
|
160
|
+
"@robota-sdk/agent-transport-http": "3.0.3",
|
|
161
|
+
"@robota-sdk/agent-transport-mcp": "3.0.3",
|
|
162
|
+
"@robota-sdk/agent-transport-webrtc": "3.0.3",
|
|
163
|
+
"@robota-sdk/agent-transport-ws": "3.0.3",
|
|
164
|
+
"@robota-sdk/pack-coding": "3.0.3",
|
|
165
|
+
"@robota-sdk/product-config": "3.0.3",
|
|
166
|
+
"@robota-sdk/agent-ui-terminal": "3.0.3"
|
|
167
167
|
},
|
|
168
168
|
"keywords": [
|
|
169
169
|
"ai",
|