@nodetool-ai/agents 0.7.0-rc.23 → 0.8.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 +35 -0
- package/dist/.nodetool-build-stamp +1 -0
- package/dist/analysis/audio-dsp.d.ts +224 -0
- package/dist/analysis/audio-dsp.d.ts.map +1 -0
- package/dist/analysis/audio-dsp.js +645 -0
- package/dist/analysis/audio-dsp.js.map +1 -0
- package/dist/analysis/media-decode.d.ts +98 -0
- package/dist/analysis/media-decode.d.ts.map +1 -0
- package/dist/analysis/media-decode.js +226 -0
- package/dist/analysis/media-decode.js.map +1 -0
- package/dist/analysis/mediabunny-runtime.d.ts +15 -0
- package/dist/analysis/mediabunny-runtime.d.ts.map +1 -0
- package/dist/analysis/mediabunny-runtime.js +30 -0
- package/dist/analysis/mediabunny-runtime.js.map +1 -0
- package/dist/analysis/video-frames.d.ts +120 -0
- package/dist/analysis/video-frames.d.ts.map +1 -0
- package/dist/analysis/video-frames.js +288 -0
- package/dist/analysis/video-frames.js.map +1 -0
- package/dist/apify/assets.d.ts +80 -0
- package/dist/apify/assets.d.ts.map +1 -0
- package/dist/apify/assets.js +192 -0
- package/dist/apify/assets.js.map +1 -0
- package/dist/apify/catalog.d.ts +44 -0
- package/dist/apify/catalog.d.ts.map +1 -0
- package/dist/apify/catalog.js +108 -0
- package/dist/apify/catalog.js.map +1 -0
- package/dist/apify/client.d.ts +137 -0
- package/dist/apify/client.d.ts.map +1 -0
- package/dist/apify/client.js +346 -0
- package/dist/apify/client.js.map +1 -0
- package/dist/apify/errors.d.ts +85 -0
- package/dist/apify/errors.d.ts.map +1 -0
- package/dist/apify/errors.js +90 -0
- package/dist/apify/errors.js.map +1 -0
- package/dist/apify/normalize.d.ts +131 -0
- package/dist/apify/normalize.d.ts.map +1 -0
- package/dist/apify/normalize.js +202 -0
- package/dist/apify/normalize.js.map +1 -0
- package/dist/apify/policy.d.ts +136 -0
- package/dist/apify/policy.d.ts.map +1 -0
- package/dist/apify/policy.js +223 -0
- package/dist/apify/policy.js.map +1 -0
- package/dist/apify/run.d.ts +86 -0
- package/dist/apify/run.d.ts.map +1 -0
- package/dist/apify/run.js +158 -0
- package/dist/apify/run.js.map +1 -0
- package/dist/app-build/author.d.ts +67 -0
- package/dist/app-build/author.d.ts.map +1 -0
- package/dist/app-build/author.js +231 -0
- package/dist/app-build/author.js.map +1 -0
- package/dist/app-build/bridge.d.ts +130 -0
- package/dist/app-build/bridge.d.ts.map +1 -0
- package/dist/app-build/bridge.js +647 -0
- package/dist/app-build/bridge.js.map +1 -0
- package/dist/app-build/build-service.d.ts +66 -0
- package/dist/app-build/build-service.d.ts.map +1 -0
- package/dist/app-build/build-service.js +249 -0
- package/dist/app-build/build-service.js.map +1 -0
- package/dist/app-build/build.d.ts +115 -0
- package/dist/app-build/build.d.ts.map +1 -0
- package/dist/app-build/build.js +901 -0
- package/dist/app-build/build.js.map +1 -0
- package/dist/app-build/interactions.d.ts +20 -0
- package/dist/app-build/interactions.d.ts.map +1 -0
- package/dist/app-build/interactions.js +121 -0
- package/dist/app-build/interactions.js.map +1 -0
- package/dist/app-build/judge.d.ts +113 -0
- package/dist/app-build/judge.d.ts.map +1 -0
- package/dist/app-build/judge.js +318 -0
- package/dist/app-build/judge.js.map +1 -0
- package/dist/app-build/markdown.d.ts +10 -0
- package/dist/app-build/markdown.d.ts.map +1 -0
- package/dist/app-build/markdown.js +65 -0
- package/dist/app-build/markdown.js.map +1 -0
- package/dist/app-build/spec.d.ts +228 -0
- package/dist/app-build/spec.d.ts.map +1 -0
- package/dist/app-build/spec.js +651 -0
- package/dist/app-build/spec.js.map +1 -0
- package/dist/app-build/tool-loop.d.ts +84 -0
- package/dist/app-build/tool-loop.d.ts.map +1 -0
- package/dist/app-build/tool-loop.js +113 -0
- package/dist/app-build/tool-loop.js.map +1 -0
- package/dist/app-build/types.d.ts +215 -0
- package/dist/app-build/types.d.ts.map +1 -0
- package/dist/app-build/types.js +28 -0
- package/dist/app-build/types.js.map +1 -0
- package/dist/author-graph.d.ts +90 -0
- package/dist/author-graph.d.ts.map +1 -0
- package/dist/author-graph.js +317 -0
- package/dist/author-graph.js.map +1 -0
- package/dist/background-subtasks.d.ts +79 -0
- package/dist/background-subtasks.d.ts.map +1 -0
- package/dist/background-subtasks.js +139 -0
- package/dist/background-subtasks.js.map +1 -0
- package/dist/blender-gate.d.ts +21 -0
- package/dist/blender-gate.d.ts.map +1 -0
- package/dist/blender-gate.js +27 -0
- package/dist/blender-gate.js.map +1 -0
- package/dist/browser-gate.d.ts +28 -0
- package/dist/browser-gate.d.ts.map +1 -0
- package/dist/browser-gate.js +34 -0
- package/dist/browser-gate.js.map +1 -0
- package/dist/capabilities/GamePublishRequest.d.ts +14 -0
- package/dist/capabilities/GamePublishRequest.d.ts.map +1 -0
- package/dist/capabilities/GamePublishRequest.js +2 -0
- package/dist/capabilities/GamePublishRequest.js.map +1 -0
- package/dist/capabilities/adapters.d.ts +27 -0
- package/dist/capabilities/adapters.d.ts.map +1 -0
- package/dist/capabilities/adapters.js +39 -0
- package/dist/capabilities/adapters.js.map +1 -0
- package/dist/capabilities/agent-activity.d.ts +27 -0
- package/dist/capabilities/agent-activity.d.ts.map +1 -0
- package/dist/capabilities/agent-activity.js +103 -0
- package/dist/capabilities/agent-activity.js.map +1 -0
- package/dist/capabilities/agentic-storyboard-finish.d.ts +67 -0
- package/dist/capabilities/agentic-storyboard-finish.d.ts.map +1 -0
- package/dist/capabilities/agentic-storyboard-finish.js +1321 -0
- package/dist/capabilities/agentic-storyboard-finish.js.map +1 -0
- package/dist/capabilities/agents.d.ts +81 -0
- package/dist/capabilities/agents.d.ts.map +1 -0
- package/dist/capabilities/agents.js +376 -0
- package/dist/capabilities/agents.js.map +1 -0
- package/dist/capabilities/agents.specs.d.ts +30 -0
- package/dist/capabilities/agents.specs.d.ts.map +1 -0
- package/dist/capabilities/agents.specs.js +313 -0
- package/dist/capabilities/agents.specs.js.map +1 -0
- package/dist/capabilities/analysis.d.ts +93 -0
- package/dist/capabilities/analysis.d.ts.map +1 -0
- package/dist/capabilities/analysis.js +823 -0
- package/dist/capabilities/analysis.js.map +1 -0
- package/dist/capabilities/analysis.specs.d.ts +39 -0
- package/dist/capabilities/analysis.specs.d.ts.map +1 -0
- package/dist/capabilities/analysis.specs.js +217 -0
- package/dist/capabilities/analysis.specs.js.map +1 -0
- package/dist/capabilities/apify.d.ts +34 -0
- package/dist/capabilities/apify.d.ts.map +1 -0
- package/dist/capabilities/apify.js +449 -0
- package/dist/capabilities/apify.js.map +1 -0
- package/dist/capabilities/apify.specs.d.ts +28 -0
- package/dist/capabilities/apify.specs.d.ts.map +1 -0
- package/dist/capabilities/apify.specs.js +232 -0
- package/dist/capabilities/apify.specs.js.map +1 -0
- package/dist/capabilities/apps.d.ts +40 -0
- package/dist/capabilities/apps.d.ts.map +1 -0
- package/dist/capabilities/apps.js +415 -0
- package/dist/capabilities/apps.js.map +1 -0
- package/dist/capabilities/apps.specs.d.ts +23 -0
- package/dist/capabilities/apps.specs.d.ts.map +1 -0
- package/dist/capabilities/apps.specs.js +236 -0
- package/dist/capabilities/apps.specs.js.map +1 -0
- package/dist/capabilities/args.d.ts +62 -0
- package/dist/capabilities/args.d.ts.map +1 -0
- package/dist/capabilities/args.js +215 -0
- package/dist/capabilities/args.js.map +1 -0
- package/dist/capabilities/assets.d.ts +45 -0
- package/dist/capabilities/assets.d.ts.map +1 -0
- package/dist/capabilities/assets.js +952 -0
- package/dist/capabilities/assets.js.map +1 -0
- package/dist/capabilities/assets.specs.d.ts +54 -0
- package/dist/capabilities/assets.specs.d.ts.map +1 -0
- package/dist/capabilities/assets.specs.js +291 -0
- package/dist/capabilities/assets.specs.js.map +1 -0
- package/dist/capabilities/background-generation.d.ts +14 -0
- package/dist/capabilities/background-generation.d.ts.map +1 -0
- package/dist/capabilities/background-generation.js +29 -0
- package/dist/capabilities/background-generation.js.map +1 -0
- package/dist/capabilities/browser.d.ts +30 -0
- package/dist/capabilities/browser.d.ts.map +1 -0
- package/dist/capabilities/browser.js +250 -0
- package/dist/capabilities/browser.js.map +1 -0
- package/dist/capabilities/browser.specs.d.ts +37 -0
- package/dist/capabilities/browser.specs.d.ts.map +1 -0
- package/dist/capabilities/browser.specs.js +173 -0
- package/dist/capabilities/browser.specs.js.map +1 -0
- package/dist/capabilities/code-grading.d.ts +68 -0
- package/dist/capabilities/code-grading.d.ts.map +1 -0
- package/dist/capabilities/code-grading.js +75 -0
- package/dist/capabilities/code-grading.js.map +1 -0
- package/dist/capabilities/code.d.ts +61 -0
- package/dist/capabilities/code.d.ts.map +1 -0
- package/dist/capabilities/code.js +366 -0
- package/dist/capabilities/code.js.map +1 -0
- package/dist/capabilities/code.specs.d.ts +22 -0
- package/dist/capabilities/code.specs.d.ts.map +1 -0
- package/dist/capabilities/code.specs.js +175 -0
- package/dist/capabilities/code.specs.js.map +1 -0
- package/dist/capabilities/collections.d.ts +44 -0
- package/dist/capabilities/collections.d.ts.map +1 -0
- package/dist/capabilities/collections.js +432 -0
- package/dist/capabilities/collections.js.map +1 -0
- package/dist/capabilities/collections.specs.d.ts +25 -0
- package/dist/capabilities/collections.specs.d.ts.map +1 -0
- package/dist/capabilities/collections.specs.js +299 -0
- package/dist/capabilities/collections.specs.js.map +1 -0
- package/dist/capabilities/compositions.d.ts +57 -0
- package/dist/capabilities/compositions.d.ts.map +1 -0
- package/dist/capabilities/compositions.js +384 -0
- package/dist/capabilities/compositions.js.map +1 -0
- package/dist/capabilities/compositions.specs.d.ts +22 -0
- package/dist/capabilities/compositions.specs.d.ts.map +1 -0
- package/dist/capabilities/compositions.specs.js +126 -0
- package/dist/capabilities/compositions.specs.js.map +1 -0
- package/dist/capabilities/concurrency.d.ts +12 -0
- package/dist/capabilities/concurrency.d.ts.map +1 -0
- package/dist/capabilities/concurrency.js +30 -0
- package/dist/capabilities/concurrency.js.map +1 -0
- package/dist/capabilities/costs.d.ts +20 -0
- package/dist/capabilities/costs.d.ts.map +1 -0
- package/dist/capabilities/costs.js +40 -0
- package/dist/capabilities/costs.js.map +1 -0
- package/dist/capabilities/costs.specs.d.ts +12 -0
- package/dist/capabilities/costs.specs.d.ts.map +1 -0
- package/dist/capabilities/costs.specs.js +35 -0
- package/dist/capabilities/costs.specs.js.map +1 -0
- package/dist/capabilities/dispatcher.d.ts +57 -0
- package/dist/capabilities/dispatcher.d.ts.map +1 -0
- package/dist/capabilities/dispatcher.js +117 -0
- package/dist/capabilities/dispatcher.js.map +1 -0
- package/dist/capabilities/documents.d.ts +25 -0
- package/dist/capabilities/documents.d.ts.map +1 -0
- package/dist/capabilities/documents.js +278 -0
- package/dist/capabilities/documents.js.map +1 -0
- package/dist/capabilities/documents.specs.d.ts +18 -0
- package/dist/capabilities/documents.specs.d.ts.map +1 -0
- package/dist/capabilities/documents.specs.js +201 -0
- package/dist/capabilities/documents.specs.js.map +1 -0
- package/dist/capabilities/email.d.ts +23 -0
- package/dist/capabilities/email.d.ts.map +1 -0
- package/dist/capabilities/email.js +226 -0
- package/dist/capabilities/email.js.map +1 -0
- package/dist/capabilities/email.specs.d.ts +16 -0
- package/dist/capabilities/email.specs.d.ts.map +1 -0
- package/dist/capabilities/email.specs.js +102 -0
- package/dist/capabilities/email.specs.js.map +1 -0
- package/dist/capabilities/entities.d.ts +52 -0
- package/dist/capabilities/entities.d.ts.map +1 -0
- package/dist/capabilities/entities.js +478 -0
- package/dist/capabilities/entities.js.map +1 -0
- package/dist/capabilities/entities.specs.d.ts +25 -0
- package/dist/capabilities/entities.specs.d.ts.map +1 -0
- package/dist/capabilities/entities.specs.js +247 -0
- package/dist/capabilities/entities.specs.js.map +1 -0
- package/dist/capabilities/errors.d.ts +19 -0
- package/dist/capabilities/errors.d.ts.map +1 -0
- package/dist/capabilities/errors.js +109 -0
- package/dist/capabilities/errors.js.map +1 -0
- package/dist/capabilities/errors.specs.d.ts +11 -0
- package/dist/capabilities/errors.specs.d.ts.map +1 -0
- package/dist/capabilities/errors.specs.js +100 -0
- package/dist/capabilities/errors.specs.js.map +1 -0
- package/dist/capabilities/example-timelines.d.ts +3 -0
- package/dist/capabilities/example-timelines.d.ts.map +1 -0
- package/dist/capabilities/example-timelines.js +233 -0
- package/dist/capabilities/example-timelines.js.map +1 -0
- package/dist/capabilities/example-timelines.specs.d.ts +6 -0
- package/dist/capabilities/example-timelines.specs.d.ts.map +1 -0
- package/dist/capabilities/example-timelines.specs.js +71 -0
- package/dist/capabilities/example-timelines.specs.js.map +1 -0
- package/dist/capabilities/files.d.ts +53 -0
- package/dist/capabilities/files.d.ts.map +1 -0
- package/dist/capabilities/files.js +1172 -0
- package/dist/capabilities/files.js.map +1 -0
- package/dist/capabilities/files.specs.d.ts +28 -0
- package/dist/capabilities/files.specs.d.ts.map +1 -0
- package/dist/capabilities/files.specs.js +259 -0
- package/dist/capabilities/files.specs.js.map +1 -0
- package/dist/capabilities/finish-storyboard.d.ts +5 -0
- package/dist/capabilities/finish-storyboard.d.ts.map +1 -0
- package/dist/capabilities/finish-storyboard.js +278 -0
- package/dist/capabilities/finish-storyboard.js.map +1 -0
- package/dist/capabilities/flow.d.ts +93 -0
- package/dist/capabilities/flow.d.ts.map +1 -0
- package/dist/capabilities/flow.js +285 -0
- package/dist/capabilities/flow.js.map +1 -0
- package/dist/capabilities/flow.specs.d.ts +25 -0
- package/dist/capabilities/flow.specs.d.ts.map +1 -0
- package/dist/capabilities/flow.specs.js +114 -0
- package/dist/capabilities/flow.specs.js.map +1 -0
- package/dist/capabilities/game-asset-source.d.ts +31 -0
- package/dist/capabilities/game-asset-source.d.ts.map +1 -0
- package/dist/capabilities/game-asset-source.js +81 -0
- package/dist/capabilities/game-asset-source.js.map +1 -0
- package/dist/capabilities/game.d.ts +24 -0
- package/dist/capabilities/game.d.ts.map +1 -0
- package/dist/capabilities/game.js +1432 -0
- package/dist/capabilities/game.js.map +1 -0
- package/dist/capabilities/game.specs.d.ts +5 -0
- package/dist/capabilities/game.specs.d.ts.map +1 -0
- package/dist/capabilities/game.specs.js +110 -0
- package/dist/capabilities/game.specs.js.map +1 -0
- package/dist/capabilities/game3d.d.ts +17 -0
- package/dist/capabilities/game3d.d.ts.map +1 -0
- package/dist/capabilities/game3d.js +433 -0
- package/dist/capabilities/game3d.js.map +1 -0
- package/dist/capabilities/gate-from-context.d.ts +39 -0
- package/dist/capabilities/gate-from-context.d.ts.map +1 -0
- package/dist/capabilities/gate-from-context.js +97 -0
- package/dist/capabilities/gate-from-context.js.map +1 -0
- package/dist/capabilities/generations.d.ts +81 -0
- package/dist/capabilities/generations.d.ts.map +1 -0
- package/dist/capabilities/generations.js +387 -0
- package/dist/capabilities/generations.js.map +1 -0
- package/dist/capabilities/generations.specs.d.ts +62 -0
- package/dist/capabilities/generations.specs.d.ts.map +1 -0
- package/dist/capabilities/generations.specs.js +230 -0
- package/dist/capabilities/generations.specs.js.map +1 -0
- package/dist/capabilities/google.d.ts +50 -0
- package/dist/capabilities/google.d.ts.map +1 -0
- package/dist/capabilities/google.js +246 -0
- package/dist/capabilities/google.js.map +1 -0
- package/dist/capabilities/google.specs.d.ts +52 -0
- package/dist/capabilities/google.specs.d.ts.map +1 -0
- package/dist/capabilities/google.specs.js +391 -0
- package/dist/capabilities/google.specs.js.map +1 -0
- package/dist/capabilities/html-text.d.ts +28 -0
- package/dist/capabilities/html-text.d.ts.map +1 -0
- package/dist/capabilities/html-text.js +76 -0
- package/dist/capabilities/html-text.js.map +1 -0
- package/dist/capabilities/index.d.ts +19 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +14 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/invoke.d.ts +78 -0
- package/dist/capabilities/invoke.d.ts.map +1 -0
- package/dist/capabilities/invoke.js +251 -0
- package/dist/capabilities/invoke.js.map +1 -0
- package/dist/capabilities/jobs.d.ts +32 -0
- package/dist/capabilities/jobs.d.ts.map +1 -0
- package/dist/capabilities/jobs.js +167 -0
- package/dist/capabilities/jobs.js.map +1 -0
- package/dist/capabilities/jobs.specs.d.ts +20 -0
- package/dist/capabilities/jobs.specs.d.ts.map +1 -0
- package/dist/capabilities/jobs.specs.js +105 -0
- package/dist/capabilities/jobs.specs.js.map +1 -0
- package/dist/capabilities/js-scripts.d.ts +108 -0
- package/dist/capabilities/js-scripts.d.ts.map +1 -0
- package/dist/capabilities/js-scripts.js +807 -0
- package/dist/capabilities/js-scripts.js.map +1 -0
- package/dist/capabilities/js-scripts.specs.d.ts +52 -0
- package/dist/capabilities/js-scripts.specs.d.ts.map +1 -0
- package/dist/capabilities/js-scripts.specs.js +394 -0
- package/dist/capabilities/js-scripts.specs.js.map +1 -0
- package/dist/capabilities/lazy-tool.d.ts +41 -0
- package/dist/capabilities/lazy-tool.d.ts.map +1 -0
- package/dist/capabilities/lazy-tool.js +82 -0
- package/dist/capabilities/lazy-tool.js.map +1 -0
- package/dist/capabilities/legacy-tools.d.ts +15 -0
- package/dist/capabilities/legacy-tools.d.ts.map +1 -0
- package/dist/capabilities/legacy-tools.js +98 -0
- package/dist/capabilities/legacy-tools.js.map +1 -0
- package/dist/capabilities/local-browser.d.ts +24 -0
- package/dist/capabilities/local-browser.d.ts.map +1 -0
- package/dist/capabilities/local-browser.js +105 -0
- package/dist/capabilities/local-browser.js.map +1 -0
- package/dist/capabilities/media.d.ts +112 -0
- package/dist/capabilities/media.d.ts.map +1 -0
- package/dist/capabilities/media.js +2258 -0
- package/dist/capabilities/media.js.map +1 -0
- package/dist/capabilities/media.specs.d.ts +65 -0
- package/dist/capabilities/media.specs.d.ts.map +1 -0
- package/dist/capabilities/media.specs.js +779 -0
- package/dist/capabilities/media.specs.js.map +1 -0
- package/dist/capabilities/memory.d.ts +31 -0
- package/dist/capabilities/memory.d.ts.map +1 -0
- package/dist/capabilities/memory.js +403 -0
- package/dist/capabilities/memory.js.map +1 -0
- package/dist/capabilities/memory.specs.d.ts +55 -0
- package/dist/capabilities/memory.specs.d.ts.map +1 -0
- package/dist/capabilities/memory.specs.js +208 -0
- package/dist/capabilities/memory.specs.js.map +1 -0
- package/dist/capabilities/model3d.d.ts +29 -0
- package/dist/capabilities/model3d.d.ts.map +1 -0
- package/dist/capabilities/model3d.js +482 -0
- package/dist/capabilities/model3d.js.map +1 -0
- package/dist/capabilities/model3d.specs.d.ts +28 -0
- package/dist/capabilities/model3d.specs.d.ts.map +1 -0
- package/dist/capabilities/model3d.specs.js +305 -0
- package/dist/capabilities/model3d.specs.js.map +1 -0
- package/dist/capabilities/models.d.ts +138 -0
- package/dist/capabilities/models.d.ts.map +1 -0
- package/dist/capabilities/models.js +805 -0
- package/dist/capabilities/models.js.map +1 -0
- package/dist/capabilities/models.specs.d.ts +21 -0
- package/dist/capabilities/models.specs.d.ts.map +1 -0
- package/dist/capabilities/models.specs.js +141 -0
- package/dist/capabilities/models.specs.js.map +1 -0
- package/dist/capabilities/nodes.d.ts +26 -0
- package/dist/capabilities/nodes.d.ts.map +1 -0
- package/dist/capabilities/nodes.js +266 -0
- package/dist/capabilities/nodes.js.map +1 -0
- package/dist/capabilities/nodes.specs.d.ts +20 -0
- package/dist/capabilities/nodes.specs.d.ts.map +1 -0
- package/dist/capabilities/nodes.specs.js +106 -0
- package/dist/capabilities/nodes.specs.js.map +1 -0
- package/dist/capabilities/packs.d.ts +69 -0
- package/dist/capabilities/packs.d.ts.map +1 -0
- package/dist/capabilities/packs.js +246 -0
- package/dist/capabilities/packs.js.map +1 -0
- package/dist/capabilities/packs.specs.d.ts +27 -0
- package/dist/capabilities/packs.specs.d.ts.map +1 -0
- package/dist/capabilities/packs.specs.js +64 -0
- package/dist/capabilities/packs.specs.js.map +1 -0
- package/dist/capabilities/project-scope.d.ts +12 -0
- package/dist/capabilities/project-scope.d.ts.map +1 -0
- package/dist/capabilities/project-scope.js +19 -0
- package/dist/capabilities/project-scope.js.map +1 -0
- package/dist/capabilities/projects.d.ts +23 -0
- package/dist/capabilities/projects.d.ts.map +1 -0
- package/dist/capabilities/projects.js +206 -0
- package/dist/capabilities/projects.js.map +1 -0
- package/dist/capabilities/projects.specs.d.ts +23 -0
- package/dist/capabilities/projects.specs.d.ts.map +1 -0
- package/dist/capabilities/projects.specs.js +118 -0
- package/dist/capabilities/projects.specs.js.map +1 -0
- package/dist/capabilities/registry.d.ts +111 -0
- package/dist/capabilities/registry.d.ts.map +1 -0
- package/dist/capabilities/registry.js +473 -0
- package/dist/capabilities/registry.js.map +1 -0
- package/dist/capabilities/run-agent.d.ts +19 -0
- package/dist/capabilities/run-agent.d.ts.map +1 -0
- package/dist/capabilities/run-agent.js +183 -0
- package/dist/capabilities/run-agent.js.map +1 -0
- package/dist/capabilities/runs.d.ts +9 -0
- package/dist/capabilities/runs.d.ts.map +1 -0
- package/dist/capabilities/runs.js +46 -0
- package/dist/capabilities/runs.js.map +1 -0
- package/dist/capabilities/runs.specs.d.ts +39 -0
- package/dist/capabilities/runs.specs.d.ts.map +1 -0
- package/dist/capabilities/runs.specs.js +52 -0
- package/dist/capabilities/runs.specs.js.map +1 -0
- package/dist/capabilities/script-link.d.ts +22 -0
- package/dist/capabilities/script-link.d.ts.map +1 -0
- package/dist/capabilities/script-link.js +35 -0
- package/dist/capabilities/script-link.js.map +1 -0
- package/dist/capabilities/scripts.d.ts +43 -0
- package/dist/capabilities/scripts.d.ts.map +1 -0
- package/dist/capabilities/scripts.js +1795 -0
- package/dist/capabilities/scripts.js.map +1 -0
- package/dist/capabilities/scripts.specs.d.ts +40 -0
- package/dist/capabilities/scripts.specs.d.ts.map +1 -0
- package/dist/capabilities/scripts.specs.js +319 -0
- package/dist/capabilities/scripts.specs.js.map +1 -0
- package/dist/capabilities/serpapi.d.ts +42 -0
- package/dist/capabilities/serpapi.d.ts.map +1 -0
- package/dist/capabilities/serpapi.js +262 -0
- package/dist/capabilities/serpapi.js.map +1 -0
- package/dist/capabilities/serpapi.specs.d.ts +24 -0
- package/dist/capabilities/serpapi.specs.d.ts.map +1 -0
- package/dist/capabilities/serpapi.specs.js +174 -0
- package/dist/capabilities/serpapi.specs.js.map +1 -0
- package/dist/capabilities/settings.d.ts +48 -0
- package/dist/capabilities/settings.d.ts.map +1 -0
- package/dist/capabilities/settings.js +226 -0
- package/dist/capabilities/settings.js.map +1 -0
- package/dist/capabilities/settings.specs.d.ts +42 -0
- package/dist/capabilities/settings.specs.d.ts.map +1 -0
- package/dist/capabilities/settings.specs.js +126 -0
- package/dist/capabilities/settings.specs.js.map +1 -0
- package/dist/capabilities/shared.d.ts +35 -0
- package/dist/capabilities/shared.d.ts.map +1 -0
- package/dist/capabilities/shared.js +165 -0
- package/dist/capabilities/shared.js.map +1 -0
- package/dist/capabilities/shared.specs.d.ts +19 -0
- package/dist/capabilities/shared.specs.d.ts.map +1 -0
- package/dist/capabilities/shared.specs.js +134 -0
- package/dist/capabilities/shared.specs.js.map +1 -0
- package/dist/capabilities/sketches.d.ts +52 -0
- package/dist/capabilities/sketches.d.ts.map +1 -0
- package/dist/capabilities/sketches.js +1165 -0
- package/dist/capabilities/sketches.js.map +1 -0
- package/dist/capabilities/sketches.specs.d.ts +44 -0
- package/dist/capabilities/sketches.specs.d.ts.map +1 -0
- package/dist/capabilities/sketches.specs.js +392 -0
- package/dist/capabilities/sketches.specs.js.map +1 -0
- package/dist/capabilities/skills.d.ts +28 -0
- package/dist/capabilities/skills.d.ts.map +1 -0
- package/dist/capabilities/skills.js +289 -0
- package/dist/capabilities/skills.js.map +1 -0
- package/dist/capabilities/skills.specs.d.ts +17 -0
- package/dist/capabilities/skills.specs.d.ts.map +1 -0
- package/dist/capabilities/skills.specs.js +108 -0
- package/dist/capabilities/skills.specs.js.map +1 -0
- package/dist/capabilities/storyboard-layout-check.d.ts +33 -0
- package/dist/capabilities/storyboard-layout-check.d.ts.map +1 -0
- package/dist/capabilities/storyboard-layout-check.js +229 -0
- package/dist/capabilities/storyboard-layout-check.js.map +1 -0
- package/dist/capabilities/storyboard-measured-sources.d.ts +10 -0
- package/dist/capabilities/storyboard-measured-sources.d.ts.map +1 -0
- package/dist/capabilities/storyboard-measured-sources.js +67 -0
- package/dist/capabilities/storyboard-measured-sources.js.map +1 -0
- package/dist/capabilities/storyboard-review-times.d.ts +4 -0
- package/dist/capabilities/storyboard-review-times.d.ts.map +1 -0
- package/dist/capabilities/storyboard-review-times.js +39 -0
- package/dist/capabilities/storyboard-review-times.js.map +1 -0
- package/dist/capabilities/storyboards.d.ts +52 -0
- package/dist/capabilities/storyboards.d.ts.map +1 -0
- package/dist/capabilities/storyboards.js +2467 -0
- package/dist/capabilities/storyboards.js.map +1 -0
- package/dist/capabilities/storyboards.specs.d.ts +45 -0
- package/dist/capabilities/storyboards.specs.d.ts.map +1 -0
- package/dist/capabilities/storyboards.specs.js +457 -0
- package/dist/capabilities/storyboards.specs.js.map +1 -0
- package/dist/capabilities/threads.d.ts +25 -0
- package/dist/capabilities/threads.d.ts.map +1 -0
- package/dist/capabilities/threads.js +240 -0
- package/dist/capabilities/threads.js.map +1 -0
- package/dist/capabilities/threads.specs.d.ts +26 -0
- package/dist/capabilities/threads.specs.d.ts.map +1 -0
- package/dist/capabilities/threads.specs.js +108 -0
- package/dist/capabilities/threads.specs.js.map +1 -0
- package/dist/capabilities/timeline-audio-bake.d.ts +114 -0
- package/dist/capabilities/timeline-audio-bake.d.ts.map +1 -0
- package/dist/capabilities/timeline-audio-bake.js +188 -0
- package/dist/capabilities/timeline-audio-bake.js.map +1 -0
- package/dist/capabilities/timeline-bake.d.ts +21 -0
- package/dist/capabilities/timeline-bake.d.ts.map +1 -0
- package/dist/capabilities/timeline-bake.js +118 -0
- package/dist/capabilities/timeline-bake.js.map +1 -0
- package/dist/capabilities/timeline-bridge.d.ts +359 -0
- package/dist/capabilities/timeline-bridge.d.ts.map +1 -0
- package/dist/capabilities/timeline-bridge.js +1016 -0
- package/dist/capabilities/timeline-bridge.js.map +1 -0
- package/dist/capabilities/timeline-clip-frames.d.ts +17 -0
- package/dist/capabilities/timeline-clip-frames.d.ts.map +1 -0
- package/dist/capabilities/timeline-clip-frames.js +84 -0
- package/dist/capabilities/timeline-clip-frames.js.map +1 -0
- package/dist/capabilities/timeline-isolate-subject.d.ts +157 -0
- package/dist/capabilities/timeline-isolate-subject.d.ts.map +1 -0
- package/dist/capabilities/timeline-isolate-subject.js +293 -0
- package/dist/capabilities/timeline-isolate-subject.js.map +1 -0
- package/dist/capabilities/timeline-media-edit.d.ts +8 -0
- package/dist/capabilities/timeline-media-edit.d.ts.map +1 -0
- package/dist/capabilities/timeline-media-edit.js +94 -0
- package/dist/capabilities/timeline-media-edit.js.map +1 -0
- package/dist/capabilities/timeline-native-media.d.ts +4 -0
- package/dist/capabilities/timeline-native-media.d.ts.map +1 -0
- package/dist/capabilities/timeline-native-media.js +960 -0
- package/dist/capabilities/timeline-native-media.js.map +1 -0
- package/dist/capabilities/timeline-track-object.d.ts +83 -0
- package/dist/capabilities/timeline-track-object.d.ts.map +1 -0
- package/dist/capabilities/timeline-track-object.js +195 -0
- package/dist/capabilities/timeline-track-object.js.map +1 -0
- package/dist/capabilities/timelines.d.ts +250 -0
- package/dist/capabilities/timelines.d.ts.map +1 -0
- package/dist/capabilities/timelines.js +2825 -0
- package/dist/capabilities/timelines.js.map +1 -0
- package/dist/capabilities/timelines.specs.d.ts +142 -0
- package/dist/capabilities/timelines.specs.d.ts.map +1 -0
- package/dist/capabilities/timelines.specs.js +1527 -0
- package/dist/capabilities/timelines.specs.js.map +1 -0
- package/dist/capabilities/types.d.ts +199 -0
- package/dist/capabilities/types.d.ts.map +1 -0
- package/dist/capabilities/types.js +19 -0
- package/dist/capabilities/types.js.map +1 -0
- package/dist/capabilities/ui.d.ts +38 -0
- package/dist/capabilities/ui.d.ts.map +1 -0
- package/dist/capabilities/ui.js +150 -0
- package/dist/capabilities/ui.js.map +1 -0
- package/dist/capabilities/ui.specs.d.ts +22 -0
- package/dist/capabilities/ui.specs.d.ts.map +1 -0
- package/dist/capabilities/ui.specs.js +59 -0
- package/dist/capabilities/ui.specs.js.map +1 -0
- package/dist/capabilities/video-production-acceptance.d.ts +27 -0
- package/dist/capabilities/video-production-acceptance.d.ts.map +1 -0
- package/dist/capabilities/video-production-acceptance.js +41 -0
- package/dist/capabilities/video-production-acceptance.js.map +1 -0
- package/dist/capabilities/video-production.d.ts +179 -0
- package/dist/capabilities/video-production.d.ts.map +1 -0
- package/dist/capabilities/video-production.js +1492 -0
- package/dist/capabilities/video-production.js.map +1 -0
- package/dist/capabilities/video-production.specs.d.ts +13 -0
- package/dist/capabilities/video-production.specs.d.ts.map +1 -0
- package/dist/capabilities/video-production.specs.js +256 -0
- package/dist/capabilities/video-production.specs.js.map +1 -0
- package/dist/capabilities/web.d.ts +86 -0
- package/dist/capabilities/web.d.ts.map +1 -0
- package/dist/capabilities/web.js +850 -0
- package/dist/capabilities/web.js.map +1 -0
- package/dist/capabilities/web.specs.d.ts +33 -0
- package/dist/capabilities/web.specs.d.ts.map +1 -0
- package/dist/capabilities/web.specs.js +286 -0
- package/dist/capabilities/web.specs.js.map +1 -0
- package/dist/capabilities/workflows.d.ts +58 -0
- package/dist/capabilities/workflows.d.ts.map +1 -0
- package/dist/capabilities/workflows.js +1557 -0
- package/dist/capabilities/workflows.js.map +1 -0
- package/dist/capabilities/workflows.specs.d.ts +63 -0
- package/dist/capabilities/workflows.specs.d.ts.map +1 -0
- package/dist/capabilities/workflows.specs.js +858 -0
- package/dist/capabilities/workflows.specs.js.map +1 -0
- package/dist/code-gen/analyze.d.ts +26 -0
- package/dist/code-gen/analyze.d.ts.map +1 -0
- package/dist/code-gen/analyze.js +79 -0
- package/dist/code-gen/analyze.js.map +1 -0
- package/dist/code-gen/port-types.d.ts +58 -0
- package/dist/code-gen/port-types.d.ts.map +1 -0
- package/dist/code-gen/port-types.js +115 -0
- package/dist/code-gen/port-types.js.map +1 -0
- package/dist/code-gen/prompt.d.ts +37 -0
- package/dist/code-gen/prompt.d.ts.map +1 -0
- package/dist/code-gen/prompt.js +129 -0
- package/dist/code-gen/prompt.js.map +1 -0
- package/dist/code-gen/sandbox-manifest.d.ts +120 -0
- package/dist/code-gen/sandbox-manifest.d.ts.map +1 -0
- package/dist/code-gen/sandbox-manifest.js +1023 -0
- package/dist/code-gen/sandbox-manifest.js.map +1 -0
- package/dist/code-gen/sandbox-prompt.d.ts +26 -0
- package/dist/code-gen/sandbox-prompt.d.ts.map +1 -0
- package/dist/code-gen/sandbox-prompt.js +126 -0
- package/dist/code-gen/sandbox-prompt.js.map +1 -0
- package/dist/code-planner.d.ts +72 -0
- package/dist/code-planner.d.ts.map +1 -0
- package/dist/code-planner.js +271 -0
- package/dist/code-planner.js.map +1 -0
- package/dist/codeact/action-diagnostics.d.ts +35 -0
- package/dist/codeact/action-diagnostics.d.ts.map +1 -0
- package/dist/codeact/action-diagnostics.js +197 -0
- package/dist/codeact/action-diagnostics.js.map +1 -0
- package/dist/codeact/capability-modules.d.ts +66 -0
- package/dist/codeact/capability-modules.d.ts.map +1 -0
- package/dist/codeact/capability-modules.js +278 -0
- package/dist/codeact/capability-modules.js.map +1 -0
- package/dist/codeact/chat-codeact.d.ts +104 -0
- package/dist/codeact/chat-codeact.d.ts.map +1 -0
- package/dist/codeact/chat-codeact.js +424 -0
- package/dist/codeact/chat-codeact.js.map +1 -0
- package/dist/codeact/codeact-executor.d.ts +247 -0
- package/dist/codeact/codeact-executor.d.ts.map +1 -0
- package/dist/codeact/codeact-executor.js +1184 -0
- package/dist/codeact/codeact-executor.js.map +1 -0
- package/dist/codeact/compact-ids.d.ts +28 -0
- package/dist/codeact/compact-ids.d.ts.map +1 -0
- package/dist/codeact/compact-ids.js +81 -0
- package/dist/codeact/compact-ids.js.map +1 -0
- package/dist/codeact/execute-code-contract.d.ts +97 -0
- package/dist/codeact/execute-code-contract.d.ts.map +1 -0
- package/dist/codeact/execute-code-contract.js +225 -0
- package/dist/codeact/execute-code-contract.js.map +1 -0
- package/dist/codeact/fabric-package.d.ts +29 -0
- package/dist/codeact/fabric-package.d.ts.map +1 -0
- package/dist/codeact/fabric-package.js +62 -0
- package/dist/codeact/fabric-package.js.map +1 -0
- package/dist/codeact/flow-package.d.ts +31 -0
- package/dist/codeact/flow-package.d.ts.map +1 -0
- package/dist/codeact/flow-package.js +80 -0
- package/dist/codeact/flow-package.js.map +1 -0
- package/dist/codeact/graph-dsl-package.d.ts +42 -0
- package/dist/codeact/graph-dsl-package.d.ts.map +1 -0
- package/dist/codeact/graph-dsl-package.js +100 -0
- package/dist/codeact/graph-dsl-package.js.map +1 -0
- package/dist/codeact/graph-model.d.ts +30 -0
- package/dist/codeact/graph-model.d.ts.map +1 -0
- package/dist/codeact/graph-model.js +407 -0
- package/dist/codeact/graph-model.js.map +1 -0
- package/dist/codeact/mcp-guest-contract.d.ts +66 -0
- package/dist/codeact/mcp-guest-contract.d.ts.map +1 -0
- package/dist/codeact/mcp-guest-contract.js +108 -0
- package/dist/codeact/mcp-guest-contract.js.map +1 -0
- package/dist/codeact/nodetool-api.d.ts +60 -0
- package/dist/codeact/nodetool-api.d.ts.map +1 -0
- package/dist/codeact/nodetool-api.js +1974 -0
- package/dist/codeact/nodetool-api.js.map +1 -0
- package/dist/codeact/prompt.d.ts +88 -0
- package/dist/codeact/prompt.d.ts.map +1 -0
- package/dist/codeact/prompt.js +326 -0
- package/dist/codeact/prompt.js.map +1 -0
- package/dist/codeact/sandbox-package-docs.d.ts +48 -0
- package/dist/codeact/sandbox-package-docs.d.ts.map +1 -0
- package/dist/codeact/sandbox-package-docs.js +55 -0
- package/dist/codeact/sandbox-package-docs.js.map +1 -0
- package/dist/codeact/sandbox-package-listing.d.ts +81 -0
- package/dist/codeact/sandbox-package-listing.d.ts.map +1 -0
- package/dist/codeact/sandbox-package-listing.js +101 -0
- package/dist/codeact/sandbox-package-listing.js.map +1 -0
- package/dist/codeact/sandbox-packages.d.ts +72 -0
- package/dist/codeact/sandbox-packages.d.ts.map +1 -0
- package/dist/codeact/sandbox-packages.js +230 -0
- package/dist/codeact/sandbox-packages.js.map +1 -0
- package/dist/codeact/timeline-package.d.ts +5 -0
- package/dist/codeact/timeline-package.d.ts.map +1 -0
- package/dist/codeact/timeline-package.js +10 -0
- package/dist/codeact/timeline-package.js.map +1 -0
- package/dist/codeact/tool-api.d.ts +200 -0
- package/dist/codeact/tool-api.d.ts.map +1 -0
- package/dist/codeact/tool-api.js +452 -0
- package/dist/codeact/tool-api.js.map +1 -0
- package/dist/codeact/tools-prelude.d.ts +32 -0
- package/dist/codeact/tools-prelude.d.ts.map +1 -0
- package/dist/codeact/tools-prelude.js +65 -0
- package/dist/codeact/tools-prelude.js.map +1 -0
- package/dist/constants.d.ts +47 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +64 -2
- package/dist/constants.js.map +1 -1
- package/dist/custom-animation-bake.d.ts +57 -0
- package/dist/custom-animation-bake.d.ts.map +1 -0
- package/dist/custom-animation-bake.js +88 -0
- package/dist/custom-animation-bake.js.map +1 -0
- package/dist/dynamic-slots.d.ts +72 -0
- package/dist/dynamic-slots.d.ts.map +1 -0
- package/dist/dynamic-slots.js +0 -0
- package/dist/dynamic-slots.js.map +1 -0
- package/dist/evals/app-build-cases.d.ts +35 -0
- package/dist/evals/app-build-cases.d.ts.map +1 -0
- package/dist/evals/app-build-cases.js +722 -0
- package/dist/evals/app-build-cases.js.map +1 -0
- package/dist/evals/app-build-eval.d.ts +208 -0
- package/dist/evals/app-build-eval.d.ts.map +1 -0
- package/dist/evals/app-build-eval.js +518 -0
- package/dist/evals/app-build-eval.js.map +1 -0
- package/dist/evals/app-build-plan.d.ts +76 -0
- package/dist/evals/app-build-plan.d.ts.map +1 -0
- package/dist/evals/app-build-plan.js +140 -0
- package/dist/evals/app-build-plan.js.map +1 -0
- package/dist/evals/code-gen-cases.d.ts +13 -0
- package/dist/evals/code-gen-cases.d.ts.map +1 -0
- package/dist/evals/code-gen-cases.js +124 -0
- package/dist/evals/code-gen-cases.js.map +1 -0
- package/dist/evals/code-gen-eval.d.ts +109 -0
- package/dist/evals/code-gen-eval.d.ts.map +1 -0
- package/dist/evals/code-gen-eval.js +299 -0
- package/dist/evals/code-gen-eval.js.map +1 -0
- package/dist/evals/codeact-api-cases.d.ts +14 -0
- package/dist/evals/codeact-api-cases.d.ts.map +1 -0
- package/dist/evals/codeact-api-cases.js +31 -0
- package/dist/evals/codeact-api-cases.js.map +1 -0
- package/dist/evals/codeact-api-core.d.ts +23 -0
- package/dist/evals/codeact-api-core.d.ts.map +1 -0
- package/dist/evals/codeact-api-core.js +1411 -0
- package/dist/evals/codeact-api-core.js.map +1 -0
- package/dist/evals/codeact-api-runs.d.ts +3 -0
- package/dist/evals/codeact-api-runs.d.ts.map +1 -0
- package/dist/evals/codeact-api-runs.js +33 -0
- package/dist/evals/codeact-api-runs.js.map +1 -0
- package/dist/evals/codeact-api-surfaces.d.ts +25 -0
- package/dist/evals/codeact-api-surfaces.d.ts.map +1 -0
- package/dist/evals/codeact-api-surfaces.js +2191 -0
- package/dist/evals/codeact-api-surfaces.js.map +1 -0
- package/dist/evals/codeact-cases.d.ts +76 -0
- package/dist/evals/codeact-cases.d.ts.map +1 -0
- package/dist/evals/codeact-cases.js +151 -0
- package/dist/evals/codeact-cases.js.map +1 -0
- package/dist/evals/codeact-eval.d.ts +66 -0
- package/dist/evals/codeact-eval.d.ts.map +1 -0
- package/dist/evals/codeact-eval.js +250 -0
- package/dist/evals/codeact-eval.js.map +1 -0
- package/dist/evals/codeact-sandbox-pack-cases.d.ts +31 -0
- package/dist/evals/codeact-sandbox-pack-cases.d.ts.map +1 -0
- package/dist/evals/codeact-sandbox-pack-cases.js +219 -0
- package/dist/evals/codeact-sandbox-pack-cases.js.map +1 -0
- package/dist/evals/escalation-cases.d.ts +22 -0
- package/dist/evals/escalation-cases.d.ts.map +1 -0
- package/dist/evals/escalation-cases.js +343 -0
- package/dist/evals/escalation-cases.js.map +1 -0
- package/dist/evals/escalation.d.ts +92 -0
- package/dist/evals/escalation.d.ts.map +1 -0
- package/dist/evals/escalation.js +152 -0
- package/dist/evals/escalation.js.map +1 -0
- package/dist/evals/goal-judge.d.ts +51 -0
- package/dist/evals/goal-judge.d.ts.map +1 -0
- package/dist/evals/goal-judge.js +152 -0
- package/dist/evals/goal-judge.js.map +1 -0
- package/dist/evals/graph-e2e-cases.d.ts +21 -0
- package/dist/evals/graph-e2e-cases.d.ts.map +1 -0
- package/dist/evals/graph-e2e-cases.js +262 -0
- package/dist/evals/graph-e2e-cases.js.map +1 -0
- package/dist/evals/graph-e2e-eval.d.ts +202 -0
- package/dist/evals/graph-e2e-eval.d.ts.map +1 -0
- package/dist/evals/graph-e2e-eval.js +438 -0
- package/dist/evals/graph-e2e-eval.js.map +1 -0
- package/dist/evals/graph-planner-cases.d.ts +12 -0
- package/dist/evals/graph-planner-cases.d.ts.map +1 -0
- package/dist/evals/graph-planner-cases.js +256 -0
- package/dist/evals/graph-planner-cases.js.map +1 -0
- package/dist/evals/graph-planner-eval.d.ts +178 -0
- package/dist/evals/graph-planner-eval.d.ts.map +1 -0
- package/dist/evals/graph-planner-eval.js +495 -0
- package/dist/evals/graph-planner-eval.js.map +1 -0
- package/dist/evals/planner-tools.d.ts +21 -0
- package/dist/evals/planner-tools.d.ts.map +1 -0
- package/dist/evals/planner-tools.js +66 -0
- package/dist/evals/planner-tools.js.map +1 -0
- package/dist/evals/subtask-cases.d.ts +88 -0
- package/dist/evals/subtask-cases.d.ts.map +1 -0
- package/dist/evals/subtask-cases.js +322 -0
- package/dist/evals/subtask-cases.js.map +1 -0
- package/dist/evals/subtask-eval.d.ts +129 -0
- package/dist/evals/subtask-eval.d.ts.map +1 -0
- package/dist/evals/subtask-eval.js +397 -0
- package/dist/evals/subtask-eval.js.map +1 -0
- package/dist/evals/surfaces/app.d.ts +19 -0
- package/dist/evals/surfaces/app.d.ts.map +1 -0
- package/dist/evals/surfaces/app.js +341 -0
- package/dist/evals/surfaces/app.js.map +1 -0
- package/dist/evals/surfaces/creative-pipeline.d.ts +203 -0
- package/dist/evals/surfaces/creative-pipeline.d.ts.map +1 -0
- package/dist/evals/surfaces/creative-pipeline.js +909 -0
- package/dist/evals/surfaces/creative-pipeline.js.map +1 -0
- package/dist/evals/surfaces/game.d.ts +5 -0
- package/dist/evals/surfaces/game.d.ts.map +1 -0
- package/dist/evals/surfaces/game.js +42 -0
- package/dist/evals/surfaces/game.js.map +1 -0
- package/dist/evals/surfaces/js-script.d.ts +66 -0
- package/dist/evals/surfaces/js-script.d.ts.map +1 -0
- package/dist/evals/surfaces/js-script.js +407 -0
- package/dist/evals/surfaces/js-script.js.map +1 -0
- package/dist/evals/surfaces/memory.d.ts +34 -0
- package/dist/evals/surfaces/memory.d.ts.map +1 -0
- package/dist/evals/surfaces/memory.js +264 -0
- package/dist/evals/surfaces/memory.js.map +1 -0
- package/dist/evals/surfaces/model3d.d.ts +45 -0
- package/dist/evals/surfaces/model3d.d.ts.map +1 -0
- package/dist/evals/surfaces/model3d.js +346 -0
- package/dist/evals/surfaces/model3d.js.map +1 -0
- package/dist/evals/surfaces/script.d.ts +96 -0
- package/dist/evals/surfaces/script.d.ts.map +1 -0
- package/dist/evals/surfaces/script.js +709 -0
- package/dist/evals/surfaces/script.js.map +1 -0
- package/dist/evals/surfaces/sketch.d.ts +126 -0
- package/dist/evals/surfaces/sketch.d.ts.map +1 -0
- package/dist/evals/surfaces/sketch.js +1306 -0
- package/dist/evals/surfaces/sketch.js.map +1 -0
- package/dist/evals/surfaces/storyboard.d.ts +97 -0
- package/dist/evals/surfaces/storyboard.d.ts.map +1 -0
- package/dist/evals/surfaces/storyboard.js +693 -0
- package/dist/evals/surfaces/storyboard.js.map +1 -0
- package/dist/evals/surfaces/timeline.d.ts +63 -0
- package/dist/evals/surfaces/timeline.d.ts.map +1 -0
- package/dist/evals/surfaces/timeline.js +655 -0
- package/dist/evals/surfaces/timeline.js.map +1 -0
- package/dist/evals/task-planner-cases.d.ts +57 -0
- package/dist/evals/task-planner-cases.d.ts.map +1 -0
- package/dist/evals/task-planner-cases.js +117 -0
- package/dist/evals/task-planner-cases.js.map +1 -0
- package/dist/evals/task-planner-eval.d.ts +101 -0
- package/dist/evals/task-planner-eval.d.ts.map +1 -0
- package/dist/evals/task-planner-eval.js +380 -0
- package/dist/evals/task-planner-eval.js.map +1 -0
- package/dist/evals/tool-loop-bridge.d.ts +61 -0
- package/dist/evals/tool-loop-bridge.d.ts.map +1 -0
- package/dist/evals/tool-loop-bridge.js +129 -0
- package/dist/evals/tool-loop-bridge.js.map +1 -0
- package/dist/evals/tool-loop-cases.d.ts +21 -0
- package/dist/evals/tool-loop-cases.d.ts.map +1 -0
- package/dist/evals/tool-loop-cases.js +401 -0
- package/dist/evals/tool-loop-cases.js.map +1 -0
- package/dist/evals/tool-loop-eval.d.ts +236 -0
- package/dist/evals/tool-loop-eval.d.ts.map +1 -0
- package/dist/evals/tool-loop-eval.js +378 -0
- package/dist/evals/tool-loop-eval.js.map +1 -0
- package/dist/evals/tool-loop-permission.d.ts +29 -0
- package/dist/evals/tool-loop-permission.d.ts.map +1 -0
- package/dist/evals/tool-loop-permission.js +58 -0
- package/dist/evals/tool-loop-permission.js.map +1 -0
- package/dist/game-authoring.d.ts +4737 -0
- package/dist/game-authoring.d.ts.map +1 -0
- package/dist/game-authoring.js +146 -0
- package/dist/game-authoring.js.map +1 -0
- package/dist/game-code-bake.d.ts +26 -0
- package/dist/game-code-bake.d.ts.map +1 -0
- package/dist/game-code-bake.js +98 -0
- package/dist/game-code-bake.js.map +1 -0
- package/dist/game-examples.d.ts +1303 -0
- package/dist/game-examples.d.ts.map +1 -0
- package/dist/game-examples.js +188 -0
- package/dist/game-examples.js.map +1 -0
- package/dist/graph-builder.d.ts +55 -3
- package/dist/graph-builder.d.ts.map +1 -1
- package/dist/graph-builder.js +159 -4
- package/dist/graph-builder.js.map +1 -1
- package/dist/graph-dsl-core.d.ts +25 -0
- package/dist/graph-dsl-core.d.ts.map +1 -0
- package/dist/graph-dsl-core.js +312 -0
- package/dist/graph-dsl-core.js.map +1 -0
- package/dist/graph-dsl.d.ts +30 -0
- package/dist/graph-dsl.d.ts.map +1 -0
- package/dist/graph-dsl.js +116 -0
- package/dist/graph-dsl.js.map +1 -0
- package/dist/host-binaries.d.ts +6 -0
- package/dist/host-binaries.d.ts.map +1 -0
- package/dist/host-binaries.js +6 -0
- package/dist/host-binaries.js.map +1 -0
- package/dist/host-binary-guard.d.ts +100 -0
- package/dist/host-binary-guard.d.ts.map +1 -0
- package/dist/host-binary-guard.js +205 -0
- package/dist/host-binary-guard.js.map +1 -0
- package/dist/host-modules/aws.d.ts +57 -0
- package/dist/host-modules/aws.d.ts.map +1 -0
- package/dist/host-modules/aws.js +309 -0
- package/dist/host-modules/aws.js.map +1 -0
- package/dist/host-modules/chrono.d.ts +15 -0
- package/dist/host-modules/chrono.d.ts.map +1 -0
- package/dist/host-modules/chrono.js +35 -0
- package/dist/host-modules/chrono.js.map +1 -0
- package/dist/host-modules/csv.d.ts +17 -0
- package/dist/host-modules/csv.d.ts.map +1 -0
- package/dist/host-modules/csv.js +64 -0
- package/dist/host-modules/csv.js.map +1 -0
- package/dist/host-modules/diff.d.ts +9 -0
- package/dist/host-modules/diff.d.ts.map +1 -0
- package/dist/host-modules/diff.js +26 -0
- package/dist/host-modules/diff.js.map +1 -0
- package/dist/host-modules/dispatcher.d.ts +41 -0
- package/dist/host-modules/dispatcher.d.ts.map +1 -0
- package/dist/host-modules/dispatcher.js +99 -0
- package/dist/host-modules/dispatcher.js.map +1 -0
- package/dist/host-modules/docx.d.ts +19 -0
- package/dist/host-modules/docx.d.ts.map +1 -0
- package/dist/host-modules/docx.js +120 -0
- package/dist/host-modules/docx.js.map +1 -0
- package/dist/host-modules/epub.d.ts +48 -0
- package/dist/host-modules/epub.d.ts.map +1 -0
- package/dist/host-modules/epub.js +100 -0
- package/dist/host-modules/epub.js.map +1 -0
- package/dist/host-modules/exif.d.ts +8 -0
- package/dist/host-modules/exif.d.ts.map +1 -0
- package/dist/host-modules/exif.js +19 -0
- package/dist/host-modules/exif.js.map +1 -0
- package/dist/host-modules/expr.d.ts +16 -0
- package/dist/host-modules/expr.d.ts.map +1 -0
- package/dist/host-modules/expr.js +18 -0
- package/dist/host-modules/expr.js.map +1 -0
- package/dist/host-modules/fabric.d.ts +46 -0
- package/dist/host-modules/fabric.d.ts.map +1 -0
- package/dist/host-modules/fabric.js +178 -0
- package/dist/host-modules/fabric.js.map +1 -0
- package/dist/host-modules/html.d.ts +51 -0
- package/dist/host-modules/html.d.ts.map +1 -0
- package/dist/host-modules/html.js +198 -0
- package/dist/host-modules/html.js.map +1 -0
- package/dist/host-modules/ics.d.ts +9 -0
- package/dist/host-modules/ics.d.ts.map +1 -0
- package/dist/host-modules/ics.js +35 -0
- package/dist/host-modules/ics.js.map +1 -0
- package/dist/host-modules/limits.d.ts +41 -0
- package/dist/host-modules/limits.d.ts.map +1 -0
- package/dist/host-modules/limits.js +76 -0
- package/dist/host-modules/limits.js.map +1 -0
- package/dist/host-modules/mammoth.d.ts +11 -0
- package/dist/host-modules/mammoth.d.ts.map +1 -0
- package/dist/host-modules/mammoth.js +29 -0
- package/dist/host-modules/mammoth.js.map +1 -0
- package/dist/host-modules/notion.d.ts +45 -0
- package/dist/host-modules/notion.d.ts.map +1 -0
- package/dist/host-modules/notion.js +128 -0
- package/dist/host-modules/notion.js.map +1 -0
- package/dist/host-modules/ocr.d.ts +25 -0
- package/dist/host-modules/ocr.d.ts.map +1 -0
- package/dist/host-modules/ocr.js +74 -0
- package/dist/host-modules/ocr.js.map +1 -0
- package/dist/host-modules/pdf.d.ts +21 -0
- package/dist/host-modules/pdf.d.ts.map +1 -0
- package/dist/host-modules/pdf.js +53 -0
- package/dist/host-modules/pdf.js.map +1 -0
- package/dist/host-modules/pdflib.d.ts +17 -0
- package/dist/host-modules/pdflib.d.ts.map +1 -0
- package/dist/host-modules/pdflib.js +138 -0
- package/dist/host-modules/pdflib.js.map +1 -0
- package/dist/host-modules/pptx.d.ts +19 -0
- package/dist/host-modules/pptx.d.ts.map +1 -0
- package/dist/host-modules/pptx.js +67 -0
- package/dist/host-modules/pptx.js.map +1 -0
- package/dist/host-modules/pptxgen.d.ts +13 -0
- package/dist/host-modules/pptxgen.d.ts.map +1 -0
- package/dist/host-modules/pptxgen.js +98 -0
- package/dist/host-modules/pptxgen.js.map +1 -0
- package/dist/host-modules/prepared-request.d.ts +41 -0
- package/dist/host-modules/prepared-request.d.ts.map +1 -0
- package/dist/host-modules/prepared-request.js +104 -0
- package/dist/host-modules/prepared-request.js.map +1 -0
- package/dist/host-modules/registry.d.ts +31 -0
- package/dist/host-modules/registry.d.ts.map +1 -0
- package/dist/host-modules/registry.js +193 -0
- package/dist/host-modules/registry.js.map +1 -0
- package/dist/host-modules/subtitle.d.ts +15 -0
- package/dist/host-modules/subtitle.d.ts.map +1 -0
- package/dist/host-modules/subtitle.js +45 -0
- package/dist/host-modules/subtitle.js.map +1 -0
- package/dist/host-modules/supabase.d.ts +42 -0
- package/dist/host-modules/supabase.d.ts.map +1 -0
- package/dist/host-modules/supabase.js +141 -0
- package/dist/host-modules/supabase.js.map +1 -0
- package/dist/host-modules/tfjs.d.ts +42 -0
- package/dist/host-modules/tfjs.d.ts.map +1 -0
- package/dist/host-modules/tfjs.js +186 -0
- package/dist/host-modules/tfjs.js.map +1 -0
- package/dist/host-modules/tokens.d.ts +17 -0
- package/dist/host-modules/tokens.d.ts.map +1 -0
- package/dist/host-modules/tokens.js +74 -0
- package/dist/host-modules/tokens.js.map +1 -0
- package/dist/host-modules/twilio.d.ts +34 -0
- package/dist/host-modules/twilio.d.ts.map +1 -0
- package/dist/host-modules/twilio.js +67 -0
- package/dist/host-modules/twilio.js.map +1 -0
- package/dist/host-modules/xlsx.d.ts +26 -0
- package/dist/host-modules/xlsx.d.ts.map +1 -0
- package/dist/host-modules/xlsx.js +323 -0
- package/dist/host-modules/xlsx.js.map +1 -0
- package/dist/host-modules/xml.d.ts +23 -0
- package/dist/host-modules/xml.d.ts.map +1 -0
- package/dist/host-modules/xml.js +38 -0
- package/dist/host-modules/xml.js.map +1 -0
- package/dist/host-modules/zip.d.ts +24 -0
- package/dist/host-modules/zip.d.ts.map +1 -0
- package/dist/host-modules/zip.js +70 -0
- package/dist/host-modules/zip.js.map +1 -0
- package/dist/index.d.ts +208 -60
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +163 -60
- package/dist/index.js.map +1 -1
- package/dist/js-sandbox-worker/engine.d.ts +4 -0
- package/dist/js-sandbox-worker/engine.d.ts.map +1 -0
- package/dist/js-sandbox-worker/engine.js +45 -0
- package/dist/js-sandbox-worker/engine.js.map +1 -0
- package/dist/js-sandbox-worker/host.d.ts +136 -0
- package/dist/js-sandbox-worker/host.d.ts.map +1 -0
- package/dist/js-sandbox-worker/host.js +482 -0
- package/dist/js-sandbox-worker/host.js.map +1 -0
- package/dist/js-sandbox-worker/interpreter.d.ts +276 -0
- package/dist/js-sandbox-worker/interpreter.d.ts.map +1 -0
- package/dist/js-sandbox-worker/interpreter.js +1293 -0
- package/dist/js-sandbox-worker/interpreter.js.map +1 -0
- package/dist/js-sandbox-worker/protocol.d.ts +168 -0
- package/dist/js-sandbox-worker/protocol.d.ts.map +1 -0
- package/dist/js-sandbox-worker/protocol.js +217 -0
- package/dist/js-sandbox-worker/protocol.js.map +1 -0
- package/dist/js-sandbox-worker/worker-entry.d.ts +26 -0
- package/dist/js-sandbox-worker/worker-entry.d.ts.map +1 -0
- package/dist/js-sandbox-worker/worker-entry.js +308 -0
- package/dist/js-sandbox-worker/worker-entry.js.map +1 -0
- package/dist/js-sandbox.d.ts +457 -15
- package/dist/js-sandbox.d.ts.map +1 -1
- package/dist/js-sandbox.js +2008 -311
- package/dist/js-sandbox.js.map +1 -1
- package/dist/js-script-app-runner.d.ts +11 -0
- package/dist/js-script-app-runner.d.ts.map +1 -0
- package/dist/js-script-app-runner.js +54 -0
- package/dist/js-script-app-runner.js.map +1 -0
- package/dist/js-script-sandbox.d.ts +27 -0
- package/dist/js-script-sandbox.d.ts.map +1 -0
- package/dist/js-script-sandbox.js +36 -0
- package/dist/js-script-sandbox.js.map +1 -0
- package/dist/jtbd/friction.d.ts +26 -0
- package/dist/jtbd/friction.d.ts.map +1 -0
- package/dist/jtbd/friction.js +169 -0
- package/dist/jtbd/friction.js.map +1 -0
- package/dist/jtbd/index.d.ts +6 -0
- package/dist/jtbd/index.d.ts.map +1 -0
- package/dist/jtbd/index.js +6 -0
- package/dist/jtbd/index.js.map +1 -0
- package/dist/jtbd/optimize.d.ts +71 -0
- package/dist/jtbd/optimize.d.ts.map +1 -0
- package/dist/jtbd/optimize.js +176 -0
- package/dist/jtbd/optimize.js.map +1 -0
- package/dist/jtbd/registry.d.ts +29 -0
- package/dist/jtbd/registry.d.ts.map +1 -0
- package/dist/jtbd/registry.js +451 -0
- package/dist/jtbd/registry.js.map +1 -0
- package/dist/jtbd/run.d.ts +70 -0
- package/dist/jtbd/run.d.ts.map +1 -0
- package/dist/jtbd/run.js +177 -0
- package/dist/jtbd/run.js.map +1 -0
- package/dist/jtbd/types.d.ts +141 -0
- package/dist/jtbd/types.d.ts.map +1 -0
- package/dist/jtbd/types.js +25 -0
- package/dist/jtbd/types.js.map +1 -0
- package/dist/model-prompting-skills.d.ts +45 -0
- package/dist/model-prompting-skills.d.ts.map +1 -0
- package/dist/model-prompting-skills.js +116 -0
- package/dist/model-prompting-skills.js.map +1 -0
- package/dist/network-guard.d.ts +50 -0
- package/dist/network-guard.d.ts.map +1 -0
- package/dist/network-guard.js +106 -0
- package/dist/network-guard.js.map +1 -0
- package/dist/normalize-model-properties.d.ts +26 -0
- package/dist/normalize-model-properties.d.ts.map +1 -0
- package/dist/normalize-model-properties.js +58 -0
- package/dist/normalize-model-properties.js.map +1 -0
- package/dist/output-format.d.ts +5 -1
- package/dist/output-format.d.ts.map +1 -1
- package/dist/output-format.js.map +1 -1
- package/dist/parallel-task-executor.d.ts +68 -37
- package/dist/parallel-task-executor.d.ts.map +1 -1
- package/dist/parallel-task-executor.js +234 -203
- package/dist/parallel-task-executor.js.map +1 -1
- package/dist/prompts/background-subtask-prompt.d.ts +14 -0
- package/dist/prompts/background-subtask-prompt.d.ts.map +1 -0
- package/dist/prompts/background-subtask-prompt.js +64 -0
- package/dist/prompts/background-subtask-prompt.js.map +1 -0
- package/dist/prompts/product-knowledge.d.ts +3 -0
- package/dist/prompts/product-knowledge.d.ts.map +1 -0
- package/dist/prompts/product-knowledge.js +120 -0
- package/dist/prompts/product-knowledge.js.map +1 -0
- package/dist/prompts/read-only-search-prompt.d.ts +33 -0
- package/dist/prompts/read-only-search-prompt.d.ts.map +1 -0
- package/dist/prompts/read-only-search-prompt.js +109 -0
- package/dist/prompts/read-only-search-prompt.js.map +1 -0
- package/dist/prompts/sandbox-pack-catalog.d.ts +23 -0
- package/dist/prompts/sandbox-pack-catalog.d.ts.map +1 -0
- package/dist/prompts/sandbox-pack-catalog.js +40 -0
- package/dist/prompts/sandbox-pack-catalog.js.map +1 -0
- package/dist/prompts/security-monitor-prompt.d.ts +32 -0
- package/dist/prompts/security-monitor-prompt.d.ts.map +1 -0
- package/dist/prompts/security-monitor-prompt.js +99 -0
- package/dist/prompts/security-monitor-prompt.js.map +1 -0
- package/dist/prompts/workflow-authoring-knowledge.d.ts +77 -0
- package/dist/prompts/workflow-authoring-knowledge.d.ts.map +1 -0
- package/dist/prompts/workflow-authoring-knowledge.js +319 -0
- package/dist/prompts/workflow-authoring-knowledge.js.map +1 -0
- package/dist/run-policy.d.ts +25 -0
- package/dist/run-policy.d.ts.map +1 -0
- package/dist/run-policy.js +54 -0
- package/dist/run-policy.js.map +1 -0
- package/dist/sandbox-av-media.d.ts +33 -0
- package/dist/sandbox-av-media.d.ts.map +1 -0
- package/dist/sandbox-av-media.js +666 -0
- package/dist/sandbox-av-media.js.map +1 -0
- package/dist/sandbox-bootstrap-modules.d.ts +54 -0
- package/dist/sandbox-bootstrap-modules.d.ts.map +1 -0
- package/dist/sandbox-bootstrap-modules.js +104 -0
- package/dist/sandbox-bootstrap-modules.js.map +1 -0
- package/dist/sandbox-bytes.d.ts +43 -0
- package/dist/sandbox-bytes.d.ts.map +1 -0
- package/dist/sandbox-bytes.js +61 -0
- package/dist/sandbox-bytes.js.map +1 -0
- package/dist/sandbox-canvas-api.d.ts +30 -0
- package/dist/sandbox-canvas-api.d.ts.map +1 -0
- package/dist/sandbox-canvas-api.js +81 -0
- package/dist/sandbox-canvas-api.js.map +1 -0
- package/dist/sandbox-constants.d.ts +5 -0
- package/dist/sandbox-constants.d.ts.map +1 -0
- package/dist/sandbox-constants.js +13 -0
- package/dist/sandbox-constants.js.map +1 -0
- package/dist/sandbox-json-transport.d.ts +107 -0
- package/dist/sandbox-json-transport.d.ts.map +1 -0
- package/dist/sandbox-json-transport.js +324 -0
- package/dist/sandbox-json-transport.js.map +1 -0
- package/dist/sandbox-media-handle.d.ts +78 -0
- package/dist/sandbox-media-handle.d.ts.map +1 -0
- package/dist/sandbox-media-handle.js +114 -0
- package/dist/sandbox-media-handle.js.map +1 -0
- package/dist/sandbox-media-ref.d.ts +134 -0
- package/dist/sandbox-media-ref.d.ts.map +1 -0
- package/dist/sandbox-media-ref.js +442 -0
- package/dist/sandbox-media-ref.js.map +1 -0
- package/dist/sandbox-media.d.ts +177 -0
- package/dist/sandbox-media.d.ts.map +1 -0
- package/dist/sandbox-media.js +963 -0
- package/dist/sandbox-media.js.map +1 -0
- package/dist/sandbox-module-fixtures.d.ts +445 -0
- package/dist/sandbox-module-fixtures.d.ts.map +1 -0
- package/dist/sandbox-module-fixtures.js +214 -0
- package/dist/sandbox-module-fixtures.js.map +1 -0
- package/dist/sandbox-pack-resolution.d.ts +21 -0
- package/dist/sandbox-pack-resolution.d.ts.map +1 -0
- package/dist/sandbox-pack-resolution.js +42 -0
- package/dist/sandbox-pack-resolution.js.map +1 -0
- package/dist/sandbox-toolbelt.d.ts +15 -0
- package/dist/sandbox-toolbelt.d.ts.map +1 -0
- package/dist/sandbox-toolbelt.js +70 -0
- package/dist/sandbox-toolbelt.js.map +1 -0
- package/dist/security-monitor.d.ts +89 -0
- package/dist/security-monitor.d.ts.map +1 -0
- package/dist/security-monitor.js +307 -0
- package/dist/security-monitor.js.map +1 -0
- package/dist/serpapi/catalog.d.ts +101 -0
- package/dist/serpapi/catalog.d.ts.map +1 -0
- package/dist/serpapi/catalog.js +246 -0
- package/dist/serpapi/catalog.js.map +1 -0
- package/dist/serpapi/client.d.ts +81 -0
- package/dist/serpapi/client.d.ts.map +1 -0
- package/dist/serpapi/client.js +228 -0
- package/dist/serpapi/client.js.map +1 -0
- package/dist/serpapi/errors.d.ts +49 -0
- package/dist/serpapi/errors.d.ts.map +1 -0
- package/dist/serpapi/errors.js +64 -0
- package/dist/serpapi/errors.js.map +1 -0
- package/dist/serpapi/normalize.d.ts +58 -0
- package/dist/serpapi/normalize.d.ts.map +1 -0
- package/dist/serpapi/normalize.js +140 -0
- package/dist/serpapi/normalize.js.map +1 -0
- package/dist/skill-prompt.d.ts +37 -0
- package/dist/skill-prompt.d.ts.map +1 -0
- package/dist/skill-prompt.js +72 -0
- package/dist/skill-prompt.js.map +1 -0
- package/dist/step-executor.d.ts +90 -77
- package/dist/step-executor.d.ts.map +1 -1
- package/dist/step-executor.js +384 -690
- package/dist/step-executor.js.map +1 -1
- package/dist/subagent.d.ts +275 -0
- package/dist/subagent.d.ts.map +1 -0
- package/dist/subagent.js +444 -0
- package/dist/subagent.js.map +1 -0
- package/dist/supervisor/prompt.d.ts +12 -0
- package/dist/supervisor/prompt.d.ts.map +1 -0
- package/dist/supervisor/prompt.js +51 -0
- package/dist/supervisor/prompt.js.map +1 -0
- package/dist/supervisor/supervisor-agent.d.ts +72 -0
- package/dist/supervisor/supervisor-agent.d.ts.map +1 -0
- package/dist/supervisor/supervisor-agent.js +185 -0
- package/dist/supervisor/supervisor-agent.js.map +1 -0
- package/dist/supervisor/tools.d.ts +56 -0
- package/dist/supervisor/tools.d.ts.map +1 -0
- package/dist/supervisor/tools.js +83 -0
- package/dist/supervisor/tools.js.map +1 -0
- package/dist/supervisor/verdict-schema.d.ts +18 -0
- package/dist/supervisor/verdict-schema.d.ts.map +1 -0
- package/dist/supervisor/verdict-schema.js +58 -0
- package/dist/supervisor/verdict-schema.js.map +1 -0
- package/dist/system-skills.d.ts +74 -0
- package/dist/system-skills.d.ts.map +1 -0
- package/dist/system-skills.js +168 -0
- package/dist/system-skills.js.map +1 -0
- package/dist/task-executor.d.ts +90 -40
- package/dist/task-executor.d.ts.map +1 -1
- package/dist/task-executor.js +259 -282
- package/dist/task-executor.js.map +1 -1
- package/dist/task-planner.d.ts +18 -12
- package/dist/task-planner.d.ts.map +1 -1
- package/dist/task-planner.js +342 -328
- package/dist/task-planner.js.map +1 -1
- package/dist/timeline-capture.d.ts +21 -0
- package/dist/timeline-capture.d.ts.map +1 -0
- package/dist/timeline-capture.js +564 -0
- package/dist/timeline-capture.js.map +1 -0
- package/dist/timeline-code-bake.d.ts +75 -0
- package/dist/timeline-code-bake.d.ts.map +1 -0
- package/dist/timeline-code-bake.js +327 -0
- package/dist/timeline-code-bake.js.map +1 -0
- package/dist/timeline-preview/compare.d.ts +27 -0
- package/dist/timeline-preview/compare.d.ts.map +1 -0
- package/dist/timeline-preview/compare.js +71 -0
- package/dist/timeline-preview/compare.js.map +1 -0
- package/dist/timeline-preview/frames.d.ts +193 -0
- package/dist/timeline-preview/frames.d.ts.map +1 -0
- package/dist/timeline-preview/frames.js +731 -0
- package/dist/timeline-preview/frames.js.map +1 -0
- package/dist/timeline-preview/model3d.d.ts +67 -0
- package/dist/timeline-preview/model3d.d.ts.map +1 -0
- package/dist/timeline-preview/model3d.js +165 -0
- package/dist/timeline-preview/model3d.js.map +1 -0
- package/dist/timeline-preview/rasterize.d.ts +33 -0
- package/dist/timeline-preview/rasterize.d.ts.map +1 -0
- package/dist/timeline-preview/rasterize.js +83 -0
- package/dist/timeline-preview/rasterize.js.map +1 -0
- package/dist/timeline-preview/sheet.d.ts +38 -0
- package/dist/timeline-preview/sheet.d.ts.map +1 -0
- package/dist/timeline-preview/sheet.js +72 -0
- package/dist/timeline-preview/sheet.js.map +1 -0
- package/dist/tools/asset-persist.d.ts +29 -0
- package/dist/tools/asset-persist.d.ts.map +1 -0
- package/dist/tools/asset-persist.js +78 -0
- package/dist/tools/asset-persist.js.map +1 -0
- package/dist/tools/base-tool.d.ts +53 -5
- package/dist/tools/base-tool.d.ts.map +1 -1
- package/dist/tools/base-tool.js +180 -3
- package/dist/tools/base-tool.js.map +1 -1
- package/dist/tools/binary-output.d.ts +54 -0
- package/dist/tools/binary-output.d.ts.map +1 -0
- package/dist/tools/binary-output.js +127 -0
- package/dist/tools/binary-output.js.map +1 -0
- package/dist/tools/browser-tools.d.ts +5 -29
- package/dist/tools/browser-tools.d.ts.map +1 -1
- package/dist/tools/browser-tools.js +5 -205
- package/dist/tools/browser-tools.js.map +1 -1
- package/dist/tools/builtin-tools.d.ts +52 -0
- package/dist/tools/builtin-tools.d.ts.map +1 -0
- package/dist/tools/builtin-tools.js +289 -0
- package/dist/tools/builtin-tools.js.map +1 -0
- package/dist/tools/control-tool.d.ts +2 -5
- package/dist/tools/control-tool.d.ts.map +1 -1
- package/dist/tools/control-tool.js +18 -15
- package/dist/tools/control-tool.js.map +1 -1
- package/dist/tools/dataseo-tools.d.ts +34 -32
- package/dist/tools/dataseo-tools.d.ts.map +1 -1
- package/dist/tools/dataseo-tools.js +148 -233
- package/dist/tools/dataseo-tools.js.map +1 -1
- package/dist/tools/external-capability-tools.d.ts +36 -0
- package/dist/tools/external-capability-tools.d.ts.map +1 -0
- package/dist/tools/external-capability-tools.js +41 -0
- package/dist/tools/external-capability-tools.js.map +1 -0
- package/dist/tools/external-mcp-tools.d.ts +139 -0
- package/dist/tools/external-mcp-tools.d.ts.map +1 -0
- package/dist/tools/external-mcp-tools.js +552 -0
- package/dist/tools/external-mcp-tools.js.map +1 -0
- package/dist/tools/finish-step-tool.d.ts +1 -1
- package/dist/tools/finish-step-tool.d.ts.map +1 -1
- package/dist/tools/finish-step-tool.js +3 -3
- package/dist/tools/finish-step-tool.js.map +1 -1
- package/dist/tools/google-tools.d.ts +28 -39
- package/dist/tools/google-tools.d.ts.map +1 -1
- package/dist/tools/google-tools.js +51 -164
- package/dist/tools/google-tools.js.map +1 -1
- package/dist/tools/google-workspace-tools.d.ts +23 -0
- package/dist/tools/google-workspace-tools.d.ts.map +1 -0
- package/dist/tools/google-workspace-tools.js +26 -0
- package/dist/tools/google-workspace-tools.js.map +1 -0
- package/dist/tools/graph-validation-registry.d.ts +33 -0
- package/dist/tools/graph-validation-registry.d.ts.map +1 -0
- package/dist/tools/graph-validation-registry.js +54 -0
- package/dist/tools/graph-validation-registry.js.map +1 -0
- package/dist/tools/http-tools.d.ts +5 -53
- package/dist/tools/http-tools.d.ts.map +1 -1
- package/dist/tools/http-tools.js +5 -177
- package/dist/tools/http-tools.js.map +1 -1
- package/dist/tools/image-injection.d.ts +51 -0
- package/dist/tools/image-injection.d.ts.map +1 -0
- package/dist/tools/image-injection.js +85 -0
- package/dist/tools/image-injection.js.map +1 -0
- package/dist/tools/mcp-tool-support.d.ts +204 -0
- package/dist/tools/mcp-tool-support.d.ts.map +1 -0
- package/dist/tools/mcp-tool-support.js +537 -0
- package/dist/tools/mcp-tool-support.js.map +1 -0
- package/dist/tools/mcp-tools.d.ts +106 -390
- package/dist/tools/mcp-tools.d.ts.map +1 -1
- package/dist/tools/mcp-tools.js +132 -601
- package/dist/tools/mcp-tools.js.map +1 -1
- package/dist/tools/media-tools.d.ts +9 -272
- package/dist/tools/media-tools.d.ts.map +1 -1
- package/dist/tools/media-tools.js +11 -676
- package/dist/tools/media-tools.js.map +1 -1
- package/dist/tools/memory-tools.d.ts +36 -0
- package/dist/tools/memory-tools.d.ts.map +1 -0
- package/dist/tools/memory-tools.js +52 -0
- package/dist/tools/memory-tools.js.map +1 -0
- package/dist/tools/openai-tools.d.ts +28 -68
- package/dist/tools/openai-tools.d.ts.map +1 -1
- package/dist/tools/openai-tools.js +51 -181
- package/dist/tools/openai-tools.js.map +1 -1
- package/dist/tools/plan-builder-tools.d.ts +141 -7
- package/dist/tools/plan-builder-tools.d.ts.map +1 -1
- package/dist/tools/plan-builder-tools.js +159 -86
- package/dist/tools/plan-builder-tools.js.map +1 -1
- package/dist/tools/run-search-tool.d.ts +82 -0
- package/dist/tools/run-search-tool.d.ts.map +1 -0
- package/dist/tools/run-search-tool.js +121 -0
- package/dist/tools/run-search-tool.js.map +1 -0
- package/dist/tools/run-subtask-tool.d.ts +49 -0
- package/dist/tools/run-subtask-tool.d.ts.map +1 -0
- package/dist/tools/run-subtask-tool.js +88 -0
- package/dist/tools/run-subtask-tool.js.map +1 -0
- package/dist/tools/search-tools.d.ts +5 -36
- package/dist/tools/search-tools.d.ts.map +1 -1
- package/dist/tools/search-tools.js +5 -215
- package/dist/tools/search-tools.js.map +1 -1
- package/dist/tools/serp-providers/apify-provider.d.ts +18 -0
- package/dist/tools/serp-providers/apify-provider.d.ts.map +1 -0
- package/dist/tools/serp-providers/apify-provider.js +93 -0
- package/dist/tools/serp-providers/apify-provider.js.map +1 -0
- package/dist/tools/serp-providers/brave-provider.d.ts +34 -0
- package/dist/tools/serp-providers/brave-provider.d.ts.map +1 -0
- package/dist/tools/serp-providers/brave-provider.js +86 -0
- package/dist/tools/serp-providers/brave-provider.js.map +1 -0
- package/dist/tools/serp-providers/dataforseo-provider.d.ts +14 -1
- package/dist/tools/serp-providers/dataforseo-provider.d.ts.map +1 -1
- package/dist/tools/serp-providers/dataforseo-provider.js +0 -9
- package/dist/tools/serp-providers/dataforseo-provider.js.map +1 -1
- package/dist/tools/serp-providers/gemini-provider.d.ts +45 -0
- package/dist/tools/serp-providers/gemini-provider.d.ts.map +1 -0
- package/dist/tools/serp-providers/gemini-provider.js +148 -0
- package/dist/tools/serp-providers/gemini-provider.js.map +1 -0
- package/dist/tools/serp-providers/index.d.ts +61 -0
- package/dist/tools/serp-providers/index.d.ts.map +1 -1
- package/dist/tools/serp-providers/index.js +119 -3
- package/dist/tools/serp-providers/index.js.map +1 -1
- package/dist/tools/serp-providers/openai-provider.d.ts +58 -0
- package/dist/tools/serp-providers/openai-provider.d.ts.map +1 -0
- package/dist/tools/serp-providers/openai-provider.js +113 -0
- package/dist/tools/serp-providers/openai-provider.js.map +1 -0
- package/dist/tools/serp-providers/serpapi-provider.d.ts +9 -5
- package/dist/tools/serp-providers/serpapi-provider.d.ts.map +1 -1
- package/dist/tools/serp-providers/serpapi-provider.js +26 -44
- package/dist/tools/serp-providers/serpapi-provider.js.map +1 -1
- package/dist/tools/serp-tool-factory.d.ts +27 -0
- package/dist/tools/serp-tool-factory.d.ts.map +1 -0
- package/dist/tools/serp-tool-factory.js +56 -0
- package/dist/tools/serp-tool-factory.js.map +1 -0
- package/dist/tools/shared-tools.d.ts +33 -0
- package/dist/tools/shared-tools.d.ts.map +1 -0
- package/dist/tools/shared-tools.js +39 -0
- package/dist/tools/shared-tools.js.map +1 -0
- package/dist/tools/start-subtask-tool.d.ts +51 -0
- package/dist/tools/start-subtask-tool.d.ts.map +1 -0
- package/dist/tools/start-subtask-tool.js +189 -0
- package/dist/tools/start-subtask-tool.js.map +1 -0
- package/dist/tools/submit-code-tool.d.ts +159 -0
- package/dist/tools/submit-code-tool.d.ts.map +1 -0
- package/dist/tools/submit-code-tool.js +209 -0
- package/dist/tools/submit-code-tool.js.map +1 -0
- package/dist/tools/subtask-fields.d.ts +11 -0
- package/dist/tools/subtask-fields.d.ts.map +1 -0
- package/dist/tools/subtask-fields.js +11 -0
- package/dist/tools/subtask-fields.js.map +1 -0
- package/dist/tools/todo-tools.d.ts +15 -0
- package/dist/tools/todo-tools.d.ts.map +1 -0
- package/dist/tools/todo-tools.js +15 -0
- package/dist/tools/todo-tools.js.map +1 -0
- package/dist/tools/tool-permissions.d.ts +40 -0
- package/dist/tools/tool-permissions.d.ts.map +1 -0
- package/dist/tools/tool-permissions.js +52 -0
- package/dist/tools/tool-permissions.js.map +1 -0
- package/dist/tools/tool-search.d.ts +39 -0
- package/dist/tools/tool-search.d.ts.map +1 -0
- package/dist/tools/tool-search.js +108 -0
- package/dist/tools/tool-search.js.map +1 -0
- package/dist/tools/vector-tool-support.d.ts +15 -0
- package/dist/tools/vector-tool-support.d.ts.map +1 -0
- package/dist/tools/vector-tool-support.js +133 -0
- package/dist/tools/vector-tool-support.js.map +1 -0
- package/dist/tools/vector-tools.d.ts +13 -220
- package/dist/tools/vector-tools.d.ts.map +1 -1
- package/dist/tools/vector-tools.js +7 -578
- package/dist/tools/vector-tools.js.map +1 -1
- package/dist/tools/wait-subtasks-tool.d.ts +27 -0
- package/dist/tools/wait-subtasks-tool.d.ts.map +1 -0
- package/dist/tools/wait-subtasks-tool.js +66 -0
- package/dist/tools/wait-subtasks-tool.js.map +1 -0
- package/dist/types.d.ts +16 -31
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +8 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/dag-scheduler.d.ts +85 -0
- package/dist/utils/dag-scheduler.d.ts.map +1 -0
- package/dist/utils/dag-scheduler.js +180 -0
- package/dist/utils/dag-scheduler.js.map +1 -0
- package/dist/utils/json-parser.d.ts +32 -1
- package/dist/utils/json-parser.d.ts.map +1 -1
- package/dist/utils/json-parser.js +145 -10
- package/dist/utils/json-parser.js.map +1 -1
- package/dist/utils/json-schema-validate.d.ts +29 -0
- package/dist/utils/json-schema-validate.d.ts.map +1 -0
- package/dist/utils/json-schema-validate.js +228 -0
- package/dist/utils/json-schema-validate.js.map +1 -0
- package/dist/utils/link-abort.d.ts +13 -0
- package/dist/utils/link-abort.d.ts.map +1 -0
- package/dist/utils/link-abort.js +23 -0
- package/dist/utils/link-abort.js.map +1 -0
- package/dist/utils/merge-generators.d.ts +58 -0
- package/dist/utils/merge-generators.d.ts.map +1 -0
- package/dist/utils/merge-generators.js +148 -0
- package/dist/utils/merge-generators.js.map +1 -0
- package/dist/utils/remove-base64-images.d.ts +0 -5
- package/dist/utils/remove-base64-images.d.ts.map +1 -1
- package/dist/utils/remove-base64-images.js.map +1 -1
- package/dist/utils/step-failure.d.ts +20 -0
- package/dist/utils/step-failure.d.ts.map +1 -0
- package/dist/utils/step-failure.js +43 -0
- package/dist/utils/step-failure.js.map +1 -0
- package/dist/utils/think-tags.d.ts +16 -0
- package/dist/utils/think-tags.d.ts.map +1 -0
- package/dist/utils/think-tags.js +23 -0
- package/dist/utils/think-tags.js.map +1 -0
- package/dist/utils/type-guards.d.ts +26 -0
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +44 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/dist/utils/ui-event-buffer.d.ts +18 -0
- package/dist/utils/ui-event-buffer.d.ts.map +1 -0
- package/dist/utils/ui-event-buffer.js +18 -0
- package/dist/utils/ui-event-buffer.js.map +1 -0
- package/dist/utils/wrap-generators-parallel.d.ts +0 -5
- package/dist/utils/wrap-generators-parallel.d.ts.map +1 -1
- package/dist/utils/wrap-generators-parallel.js +3 -6
- package/dist/utils/wrap-generators-parallel.js.map +1 -1
- package/dist/wasm-sandbox/host.d.ts +106 -0
- package/dist/wasm-sandbox/host.d.ts.map +1 -0
- package/dist/wasm-sandbox/host.js +409 -0
- package/dist/wasm-sandbox/host.js.map +1 -0
- package/dist/wasm-sandbox/workers.d.ts +43 -0
- package/dist/wasm-sandbox/workers.d.ts.map +1 -0
- package/dist/wasm-sandbox/workers.js +150 -0
- package/dist/wasm-sandbox/workers.js.map +1 -0
- package/dist/workspace-paths.d.ts +40 -0
- package/dist/workspace-paths.d.ts.map +1 -0
- package/dist/workspace-paths.js +102 -0
- package/dist/workspace-paths.js.map +1 -0
- package/dist/yt-dlp-gate.d.ts +19 -0
- package/dist/yt-dlp-gate.d.ts.map +1 -0
- package/dist/yt-dlp-gate.js +22 -0
- package/dist/yt-dlp-gate.js.map +1 -0
- package/package.json +114 -14
- package/dist/agent-executor.d.ts +0 -62
- package/dist/agent-executor.d.ts.map +0 -1
- package/dist/agent-executor.js +0 -324
- package/dist/agent-executor.js.map +0 -1
- package/dist/agent-step-executor.d.ts +0 -28
- package/dist/agent-step-executor.d.ts.map +0 -1
- package/dist/agent-step-executor.js +0 -99
- package/dist/agent-step-executor.js.map +0 -1
- package/dist/agent-workflow-runner.d.ts +0 -31
- package/dist/agent-workflow-runner.d.ts.map +0 -1
- package/dist/agent-workflow-runner.js +0 -124
- package/dist/agent-workflow-runner.js.map +0 -1
- package/dist/agent.d.ts +0 -115
- package/dist/agent.d.ts.map +0 -1
- package/dist/agent.js +0 -587
- package/dist/agent.js.map +0 -1
- package/dist/base-agent.d.ts +0 -42
- package/dist/base-agent.d.ts.map +0 -1
- package/dist/base-agent.js +0 -29
- package/dist/base-agent.js.map +0 -1
- package/dist/graph-planner.d.ts +0 -56
- package/dist/graph-planner.d.ts.map +0 -1
- package/dist/graph-planner.js +0 -311
- package/dist/graph-planner.js.map +0 -1
- package/dist/multi-mode-agent.d.ts +0 -86
- package/dist/multi-mode-agent.d.ts.map +0 -1
- package/dist/multi-mode-agent.js +0 -476
- package/dist/multi-mode-agent.js.map +0 -1
- package/dist/prompts/graph-planner-prompt.d.ts +0 -48
- package/dist/prompts/graph-planner-prompt.d.ts.map +0 -1
- package/dist/prompts/graph-planner-prompt.js +0 -180
- package/dist/prompts/graph-planner-prompt.js.map +0 -1
- package/dist/reject-agentic-provider.d.ts +0 -21
- package/dist/reject-agentic-provider.d.ts.map +0 -1
- package/dist/reject-agentic-provider.js +0 -32
- package/dist/reject-agentic-provider.js.map +0 -1
- package/dist/simple-agent.d.ts +0 -29
- package/dist/simple-agent.d.ts.map +0 -1
- package/dist/simple-agent.js +0 -54
- package/dist/simple-agent.js.map +0 -1
- package/dist/sub-agent-planner.d.ts +0 -33
- package/dist/sub-agent-planner.d.ts.map +0 -1
- package/dist/sub-agent-planner.js +0 -203
- package/dist/sub-agent-planner.js.map +0 -1
- package/dist/team/db-task-board.d.ts +0 -54
- package/dist/team/db-task-board.d.ts.map +0 -1
- package/dist/team/db-task-board.js +0 -361
- package/dist/team/db-task-board.js.map +0 -1
- package/dist/team/edge-message-bus.d.ts +0 -51
- package/dist/team/edge-message-bus.d.ts.map +0 -1
- package/dist/team/edge-message-bus.js +0 -169
- package/dist/team/edge-message-bus.js.map +0 -1
- package/dist/team/edge-task-board.d.ts +0 -77
- package/dist/team/edge-task-board.d.ts.map +0 -1
- package/dist/team/edge-task-board.js +0 -140
- package/dist/team/edge-task-board.js.map +0 -1
- package/dist/team/index.d.ts +0 -16
- package/dist/team/index.d.ts.map +0 -1
- package/dist/team/index.js +0 -17
- package/dist/team/index.js.map +0 -1
- package/dist/team/message-bus.d.ts +0 -58
- package/dist/team/message-bus.d.ts.map +0 -1
- package/dist/team/message-bus.js +0 -151
- package/dist/team/message-bus.js.map +0 -1
- package/dist/team/task-board.d.ts +0 -106
- package/dist/team/task-board.d.ts.map +0 -1
- package/dist/team/task-board.js +0 -370
- package/dist/team/task-board.js.map +0 -1
- package/dist/team/team-executor.d.ts +0 -72
- package/dist/team/team-executor.d.ts.map +0 -1
- package/dist/team/team-executor.js +0 -466
- package/dist/team/team-executor.js.map +0 -1
- package/dist/team/team-tools.d.ts +0 -252
- package/dist/team/team-tools.d.ts.map +0 -1
- package/dist/team/team-tools.js +0 -412
- package/dist/team/team-tools.js.map +0 -1
- package/dist/team/types.d.ts +0 -198
- package/dist/team/types.d.ts.map +0 -1
- package/dist/team/types.js +0 -8
- package/dist/team/types.js.map +0 -1
- package/dist/tools/add-edge-tool.d.ts +0 -18
- package/dist/tools/add-edge-tool.d.ts.map +0 -1
- package/dist/tools/add-edge-tool.js +0 -92
- package/dist/tools/add-edge-tool.js.map +0 -1
- package/dist/tools/add-node-tool.d.ts +0 -22
- package/dist/tools/add-node-tool.d.ts.map +0 -1
- package/dist/tools/add-node-tool.js +0 -128
- package/dist/tools/add-node-tool.js.map +0 -1
- package/dist/tools/asset-tools.d.ts +0 -58
- package/dist/tools/asset-tools.d.ts.map +0 -1
- package/dist/tools/asset-tools.js +0 -191
- package/dist/tools/asset-tools.js.map +0 -1
- package/dist/tools/calculator-tool.d.ts +0 -24
- package/dist/tools/calculator-tool.d.ts.map +0 -1
- package/dist/tools/calculator-tool.js +0 -64
- package/dist/tools/calculator-tool.js.map +0 -1
- package/dist/tools/claude-code-tools.d.ts +0 -96
- package/dist/tools/claude-code-tools.d.ts.map +0 -1
- package/dist/tools/claude-code-tools.js +0 -463
- package/dist/tools/claude-code-tools.js.map +0 -1
- package/dist/tools/code-tools.d.ts +0 -26
- package/dist/tools/code-tools.d.ts.map +0 -1
- package/dist/tools/code-tools.js +0 -82
- package/dist/tools/code-tools.js.map +0 -1
- package/dist/tools/create-plan-tool.d.ts +0 -29
- package/dist/tools/create-plan-tool.d.ts.map +0 -1
- package/dist/tools/create-plan-tool.js +0 -355
- package/dist/tools/create-plan-tool.js.map +0 -1
- package/dist/tools/create-task-tool.d.ts +0 -28
- package/dist/tools/create-task-tool.d.ts.map +0 -1
- package/dist/tools/create-task-tool.js +0 -254
- package/dist/tools/create-task-tool.js.map +0 -1
- package/dist/tools/email-tools.d.ts +0 -76
- package/dist/tools/email-tools.d.ts.map +0 -1
- package/dist/tools/email-tools.js +0 -259
- package/dist/tools/email-tools.js.map +0 -1
- package/dist/tools/filesystem-tools.d.ts +0 -77
- package/dist/tools/filesystem-tools.d.ts.map +0 -1
- package/dist/tools/filesystem-tools.js +0 -334
- package/dist/tools/filesystem-tools.js.map +0 -1
- package/dist/tools/find-model-tool.d.ts +0 -25
- package/dist/tools/find-model-tool.d.ts.map +0 -1
- package/dist/tools/find-model-tool.js +0 -236
- package/dist/tools/find-model-tool.js.map +0 -1
- package/dist/tools/finish-graph-tool.d.ts +0 -23
- package/dist/tools/finish-graph-tool.d.ts.map +0 -1
- package/dist/tools/finish-graph-tool.js +0 -46
- package/dist/tools/finish-graph-tool.js.map +0 -1
- package/dist/tools/js-code-tool.d.ts +0 -30
- package/dist/tools/js-code-tool.d.ts.map +0 -1
- package/dist/tools/js-code-tool.js +0 -98
- package/dist/tools/js-code-tool.js.map +0 -1
- package/dist/tools/local-get-node-info-tool.d.ts +0 -19
- package/dist/tools/local-get-node-info-tool.d.ts.map +0 -1
- package/dist/tools/local-get-node-info-tool.js +0 -75
- package/dist/tools/local-get-node-info-tool.js.map +0 -1
- package/dist/tools/local-list-nodes-tool.d.ts +0 -19
- package/dist/tools/local-list-nodes-tool.d.ts.map +0 -1
- package/dist/tools/local-list-nodes-tool.js +0 -69
- package/dist/tools/local-list-nodes-tool.js.map +0 -1
- package/dist/tools/local-search-nodes-tool.d.ts +0 -21
- package/dist/tools/local-search-nodes-tool.d.ts.map +0 -1
- package/dist/tools/local-search-nodes-tool.js +0 -111
- package/dist/tools/local-search-nodes-tool.js.map +0 -1
- package/dist/tools/math-tools.d.ts +0 -156
- package/dist/tools/math-tools.d.ts.map +0 -1
- package/dist/tools/math-tools.js +0 -422
- package/dist/tools/math-tools.js.map +0 -1
- package/dist/tools/model-tools.d.ts +0 -25
- package/dist/tools/model-tools.d.ts.map +0 -1
- package/dist/tools/model-tools.js +0 -48
- package/dist/tools/model-tools.js.map +0 -1
- package/dist/tools/pdf-tools.d.ts +0 -152
- package/dist/tools/pdf-tools.d.ts.map +0 -1
- package/dist/tools/pdf-tools.js +0 -339
- package/dist/tools/pdf-tools.js.map +0 -1
- package/dist/tools/tool-registry.d.ts +0 -9
- package/dist/tools/tool-registry.d.ts.map +0 -1
- package/dist/tools/tool-registry.js +0 -17
- package/dist/tools/tool-registry.js.map +0 -1
- package/dist/tools/workspace-tools.d.ts +0 -58
- package/dist/tools/workspace-tools.d.ts.map +0 -1
- package/dist/tools/workspace-tools.js +0 -152
- package/dist/tools/workspace-tools.js.map +0 -1
|
@@ -0,0 +1,952 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `assets` capability module — everything an agent does with stored media.
|
|
3
|
+
*
|
|
4
|
+
* Eight capabilities that used to be eight `Tool` subclasses spread over four
|
|
5
|
+
* files: `list_assets` / `get_asset`, `save_asset` / `read_asset`,
|
|
6
|
+
* `asset_search` / `asset_list`, and `list_images` / `view_image`. The
|
|
7
|
+
* design's mapping table folds the library and image tools in here rather
|
|
8
|
+
* than leaving them beside the file tools.
|
|
9
|
+
*
|
|
10
|
+
* Wire names, descriptions and schemas are unchanged. `view_image` keeps its
|
|
11
|
+
* result shape to the byte: the executors strip `image_content` out of the
|
|
12
|
+
* result and forward the pixels as provider image blocks (`image-injection.ts`),
|
|
13
|
+
* so anything that reshapes it silently blinds the model.
|
|
14
|
+
*
|
|
15
|
+
* `list_images` and `view_image` are the two capabilities whose identity is a
|
|
16
|
+
* Zod schema rather than a hand-written JSON one. Their `inputSchema` is
|
|
17
|
+
* derived with `zodToJsonSchema` from the `zodSchema` their spec carries, and
|
|
18
|
+
* the argument check runs once per entrance in `validateCapabilityArgs`
|
|
19
|
+
* (`./args.ts`) — never here.
|
|
20
|
+
*/
|
|
21
|
+
import { Buffer } from "node:buffer";
|
|
22
|
+
import { extractImageRegion } from "@nodetool-ai/runtime";
|
|
23
|
+
import { SVG_MIME, detectImageMime as sniffImageMime, isSafePublicHttpsUrl, isSvgBytes, loadMediaRefBytes, rasterizeSvg, safeFetch } from "@nodetool-ai/runtime";
|
|
24
|
+
import { mimeForPath } from "../sandbox-media-ref.js";
|
|
25
|
+
import { MIME_TO_EXT } from "../tools/asset-persist.js";
|
|
26
|
+
import { userIdOf } from "../tools/mcp-tool-support.js";
|
|
27
|
+
import { listAssetsSpec, getAssetSpec, saveAssetSpec, readAssetSpec, assetSearchSpec, assetListSpec, listImagesSpec, viewImageSpec, updateAssetSpec, DEFAULT_LIMIT, MAX_LIMIT } from "./assets.specs.js";
|
|
28
|
+
import { isNumber, isObjectLike, isString } from "../utils/type-guards.js";
|
|
29
|
+
import { resolveProjectId } from "./project-scope.js";
|
|
30
|
+
import { hasTemporaryImageHandle } from "../tools/image-injection.js";
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
// Shared projections
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
/**
|
|
35
|
+
* An asset row as `list_assets` / `get_asset` report it. Deliberately metadata
|
|
36
|
+
* only: the signed download URLs on the HTTP response come from the server's
|
|
37
|
+
* storage adapter, and an agent that wants the bytes calls `read_asset`.
|
|
38
|
+
*/
|
|
39
|
+
function assetRecord(asset) {
|
|
40
|
+
const ext = asset.fileExtension;
|
|
41
|
+
return {
|
|
42
|
+
id: asset.id,
|
|
43
|
+
user_id: asset.user_id,
|
|
44
|
+
workflow_id: asset.workflow_id ?? null,
|
|
45
|
+
parent_id: asset.parent_id ?? null,
|
|
46
|
+
name: asset.name,
|
|
47
|
+
content_type: asset.content_type,
|
|
48
|
+
// The canonical reference an agent can paste into a workflow property or
|
|
49
|
+
// pass to media tools.
|
|
50
|
+
uri: ext ? `asset://${asset.id}.${ext}` : `asset://${asset.id}`,
|
|
51
|
+
size: asset.size ?? null,
|
|
52
|
+
duration: asset.duration ?? null,
|
|
53
|
+
created_at: asset.created_at,
|
|
54
|
+
metadata: asset.metadata ?? null
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/** Build the canonical `asset://<id>.<ext>` uri for an asset. */
|
|
58
|
+
function assetUri(asset) {
|
|
59
|
+
const ext = asset.fileExtension;
|
|
60
|
+
return ext ? `asset://${asset.id}.${ext}` : `asset://${asset.id}`;
|
|
61
|
+
}
|
|
62
|
+
/** The lightweight handle the library capabilities return — no bytes. */
|
|
63
|
+
function toHandle(asset) {
|
|
64
|
+
const metadata = asset.metadata ?? {};
|
|
65
|
+
return {
|
|
66
|
+
asset_id: asset.id,
|
|
67
|
+
name: asset.name,
|
|
68
|
+
content_type: asset.content_type,
|
|
69
|
+
uri: assetUri(asset),
|
|
70
|
+
size: asset.size ?? null,
|
|
71
|
+
duration: asset.duration ?? null,
|
|
72
|
+
width: isNumber(metadata.width) ? metadata.width : null,
|
|
73
|
+
height: isNumber(metadata.height) ? metadata.height : null,
|
|
74
|
+
created_at: asset.created_at
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function resolveLimit(raw) {
|
|
78
|
+
const n = Number(raw);
|
|
79
|
+
return Number.isFinite(n) && n > 0
|
|
80
|
+
? Math.min(Math.floor(n), MAX_LIMIT)
|
|
81
|
+
: DEFAULT_LIMIT;
|
|
82
|
+
}
|
|
83
|
+
async function findRunAsset(run, assetId) {
|
|
84
|
+
const { Asset } = await import("@nodetool-ai/models");
|
|
85
|
+
const asset = await Asset.find(userIdOf(run.context), assetId);
|
|
86
|
+
return asset?.project_id === resolveProjectId(run, {}) ? asset : null;
|
|
87
|
+
}
|
|
88
|
+
function assetIdFromReference(value) {
|
|
89
|
+
let path;
|
|
90
|
+
if (value.startsWith("asset://")) {
|
|
91
|
+
path = value.slice("asset://".length);
|
|
92
|
+
}
|
|
93
|
+
else if (value.startsWith("/api/storage/")) {
|
|
94
|
+
path = value.slice("/api/storage/".length);
|
|
95
|
+
}
|
|
96
|
+
else if (/^(?:memory|file|s3|supabase):\/\//.test(value)) {
|
|
97
|
+
path = value.slice(value.indexOf("://") + 3);
|
|
98
|
+
}
|
|
99
|
+
else if (!value.includes("://") && !value.startsWith("/api/")) {
|
|
100
|
+
path = value;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
const withoutQuery = path.split(/[?#]/)[0] ?? "";
|
|
106
|
+
const base = withoutQuery.slice(withoutQuery.lastIndexOf("/") + 1);
|
|
107
|
+
return base.replace(/_thumb(?=\.[^.]+$)/, "").replace(/\.[^.]+$/, "") || null;
|
|
108
|
+
}
|
|
109
|
+
const scopedAssetStorageKey = (run, name) => `projects/${resolveProjectId(run, {})}/assets/${name}`;
|
|
110
|
+
const requiresStoredAssetOwnership = (value) => value.startsWith("asset://") ||
|
|
111
|
+
value.startsWith("/api/storage/") ||
|
|
112
|
+
/^(?:memory|file|s3|supabase):\/\//.test(value);
|
|
113
|
+
const isRunProjectStorageReference = (run, value) => value.includes(`projects/${resolveProjectId(run, {})}/`);
|
|
114
|
+
const listAssets = {
|
|
115
|
+
spec: listAssetsSpec,
|
|
116
|
+
impl: async (run, params) => {
|
|
117
|
+
const source = String(params["source"] ?? "user");
|
|
118
|
+
const query = params["query"];
|
|
119
|
+
const contentType = params["content_type"];
|
|
120
|
+
const limit = Number(params["limit"] ?? 100);
|
|
121
|
+
const userId = userIdOf(run.context);
|
|
122
|
+
const projectId = resolveProjectId(run, {});
|
|
123
|
+
// Package assets are files shipped with a node package, not database rows;
|
|
124
|
+
// they stay on the REST route that serves them.
|
|
125
|
+
if (source === "package") {
|
|
126
|
+
// Package assets are files inside the installed node packages, served
|
|
127
|
+
// by the server from its own install — there is no row to read.
|
|
128
|
+
return run.listPackageAssets
|
|
129
|
+
? { assets: await run.listPackageAssets({ limit }), next: null }
|
|
130
|
+
: {
|
|
131
|
+
error: "Package assets are not available in this process — they are " +
|
|
132
|
+
"read from the installed node packages by the server."
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
const { Asset } = await import("@nodetool-ai/models");
|
|
136
|
+
if (query) {
|
|
137
|
+
const search = { limit, projectId };
|
|
138
|
+
if (contentType)
|
|
139
|
+
search.contentType = contentType;
|
|
140
|
+
const [assets, next] = await Asset.searchAssetsGlobal(userId, query, search);
|
|
141
|
+
return { assets: assets.map(assetRecord), next: next || null };
|
|
142
|
+
}
|
|
143
|
+
const page = { limit, projectId };
|
|
144
|
+
if (contentType)
|
|
145
|
+
page.contentType = contentType;
|
|
146
|
+
const [assets, next] = await Asset.paginate(userId, page);
|
|
147
|
+
return { assets: assets.map(assetRecord), next: next || null };
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
// ---------------------------------------------------------------------------
|
|
151
|
+
// get_asset
|
|
152
|
+
// ---------------------------------------------------------------------------
|
|
153
|
+
const getAsset = {
|
|
154
|
+
spec: getAssetSpec,
|
|
155
|
+
impl: async (run, params) => {
|
|
156
|
+
const assetId = String(params["asset_id"]);
|
|
157
|
+
const asset = await findRunAsset(run, assetId);
|
|
158
|
+
return asset
|
|
159
|
+
? assetRecord(asset)
|
|
160
|
+
: { error: `Asset ${assetId} was not found.` };
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
/** Largest file `save_asset` copies from a `source`, in bytes. */
|
|
164
|
+
const MAX_SOURCE_BYTES = 100 * 1024 * 1024;
|
|
165
|
+
/**
|
|
166
|
+
* Read the bytes behind a `save_asset` source. An http(s) URL goes through
|
|
167
|
+
* `safeFetch` (SSRF-screened, capped); everything else — a `/api/storage/`
|
|
168
|
+
* key, an `asset://` URI, a data URI — is what `loadMediaRefBytes` already
|
|
169
|
+
* resolves for `read_asset`, so the two agree on what a ref means.
|
|
170
|
+
*/
|
|
171
|
+
async function readSourceBytes(context, source) {
|
|
172
|
+
if (source.startsWith("http://") || source.startsWith("https://")) {
|
|
173
|
+
const response = await safeFetch(source);
|
|
174
|
+
if (!response.ok) {
|
|
175
|
+
return {
|
|
176
|
+
error: `Fetching ${source} failed with HTTP ${response.status}.`
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
const declared = Number(response.headers.get("content-length") ?? "");
|
|
180
|
+
if (Number.isFinite(declared) && declared > MAX_SOURCE_BYTES) {
|
|
181
|
+
return {
|
|
182
|
+
error: `${source} is ${declared} bytes, past the ${MAX_SOURCE_BYTES}-byte limit.`
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
186
|
+
if (bytes.byteLength === 0) {
|
|
187
|
+
return { error: `${source} returned an empty body — nothing to save.` };
|
|
188
|
+
}
|
|
189
|
+
if (bytes.byteLength > MAX_SOURCE_BYTES) {
|
|
190
|
+
return {
|
|
191
|
+
error: `${source} is ${bytes.byteLength} bytes, past the ${MAX_SOURCE_BYTES}-byte limit.`
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
const header = response.headers.get("content-type");
|
|
195
|
+
const contentType = header?.split(";")[0]?.trim();
|
|
196
|
+
return contentType ? { bytes, contentType } : { bytes };
|
|
197
|
+
}
|
|
198
|
+
let bytes = null;
|
|
199
|
+
try {
|
|
200
|
+
bytes = await loadMediaRefBytes({ uri: source }, context);
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
// Reported below as not found; the message names the forms that work.
|
|
204
|
+
}
|
|
205
|
+
if (!bytes) {
|
|
206
|
+
return {
|
|
207
|
+
error: `Source not found: ${source}. Pass the asset_url or /api/storage/ ` +
|
|
208
|
+
`key a tool returned, an asset:// URI, or an http(s) URL.`
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
// A resolver that finds the key but reads nothing back — a bucket the
|
|
212
|
+
// adapter is not configured for, an object still being written — hands back
|
|
213
|
+
// an empty buffer rather than null. Saving it produced a 0-byte asset the
|
|
214
|
+
// caller was told was fine, and a chat that answered with a video nobody
|
|
215
|
+
// could play. Zero bytes is never a successful copy.
|
|
216
|
+
if (bytes.byteLength === 0) {
|
|
217
|
+
return {
|
|
218
|
+
error: `${source} resolved to 0 bytes — nothing was copied. Check that the ` +
|
|
219
|
+
`source still exists and that this server can read its storage.`
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
return { bytes };
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* The `.<ext>` an `asset://` URI carries, from the saved name or its MIME
|
|
226
|
+
* type. Empty when neither names one — a suffix guessed wrong is worse than
|
|
227
|
+
* none, since it is what a renderer types the media by.
|
|
228
|
+
*/
|
|
229
|
+
function assetUriSuffix(name, mime) {
|
|
230
|
+
const fromName = /\.([A-Za-z0-9]{1,8})$/.exec(name);
|
|
231
|
+
if (fromName)
|
|
232
|
+
return `.${fromName[1].toLowerCase()}`;
|
|
233
|
+
const ext = MIME_TO_EXT[mime];
|
|
234
|
+
return ext ? `.${ext}` : "";
|
|
235
|
+
}
|
|
236
|
+
const saveAsset = {
|
|
237
|
+
spec: saveAssetSpec,
|
|
238
|
+
impl: async (run, params) => {
|
|
239
|
+
const context = run.context;
|
|
240
|
+
try {
|
|
241
|
+
const name = params.name;
|
|
242
|
+
const content = params.content;
|
|
243
|
+
const contentBase64 = params.content_base64;
|
|
244
|
+
const contentTypeArg = params.content_type;
|
|
245
|
+
if (!isString(name) || !name) {
|
|
246
|
+
return {
|
|
247
|
+
success: false,
|
|
248
|
+
error: "name is required and must be a string"
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
const source = params.source;
|
|
252
|
+
const hasText = isString(content);
|
|
253
|
+
const hasBinary = isString(contentBase64) && contentBase64;
|
|
254
|
+
const hasSource = isString(source) && source.trim() !== "";
|
|
255
|
+
const supplied = [hasText, hasBinary, hasSource].filter(Boolean).length;
|
|
256
|
+
if (supplied === 0) {
|
|
257
|
+
return {
|
|
258
|
+
success: false,
|
|
259
|
+
error: "One of `content` (text), `content_base64` (binary) or `source` " +
|
|
260
|
+
"(an asset_url, /api/storage/ key, asset:// URI or http(s) URL " +
|
|
261
|
+
"to copy) is required"
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
if (supplied > 1) {
|
|
265
|
+
return {
|
|
266
|
+
success: false,
|
|
267
|
+
error: "`content`, `content_base64` and `source` are mutually exclusive"
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
let data;
|
|
271
|
+
let mime;
|
|
272
|
+
if (hasSource) {
|
|
273
|
+
// The bytes already exist somewhere the host can read — copy them
|
|
274
|
+
// here instead of having the caller read them to base64 and pass
|
|
275
|
+
// them back, which is what a model does when this path is missing.
|
|
276
|
+
const sourceRef = source.trim();
|
|
277
|
+
if (requiresStoredAssetOwnership(sourceRef) &&
|
|
278
|
+
!isRunProjectStorageReference(run, sourceRef)) {
|
|
279
|
+
const sourceAssetId = assetIdFromReference(sourceRef);
|
|
280
|
+
if (!sourceAssetId || !(await findRunAsset(run, sourceAssetId))) {
|
|
281
|
+
return {
|
|
282
|
+
success: false,
|
|
283
|
+
error: "Source not found in this project."
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
const fetched = await readSourceBytes(context, sourceRef);
|
|
288
|
+
if ("error" in fetched) {
|
|
289
|
+
return { success: false, error: fetched.error };
|
|
290
|
+
}
|
|
291
|
+
data = fetched.bytes;
|
|
292
|
+
mime =
|
|
293
|
+
isString(contentTypeArg) && contentTypeArg
|
|
294
|
+
? contentTypeArg
|
|
295
|
+
: (fetched.contentType ??
|
|
296
|
+
mimeForPath(source) ??
|
|
297
|
+
"application/octet-stream");
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
data = hasBinary
|
|
301
|
+
? new Uint8Array(Buffer.from(contentBase64, "base64"))
|
|
302
|
+
: new TextEncoder().encode(content);
|
|
303
|
+
if (hasBinary && data.byteLength === 0) {
|
|
304
|
+
return {
|
|
305
|
+
success: false,
|
|
306
|
+
error: "`content_base64` decoded to 0 bytes — nothing to save."
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
// The filename before the generic fallback: an agent that writes
|
|
310
|
+
// `save_asset({name: "logo.svg", content: "<svg…"})` means an SVG, and
|
|
311
|
+
// storing it as text/plain is what made it a file nothing would render.
|
|
312
|
+
// The `source` branch above already infers this way.
|
|
313
|
+
mime =
|
|
314
|
+
(isString(contentTypeArg) && contentTypeArg
|
|
315
|
+
? contentTypeArg
|
|
316
|
+
: mimeForPath(name)) ??
|
|
317
|
+
(hasBinary ? "application/octet-stream" : "text/plain");
|
|
318
|
+
}
|
|
319
|
+
// Prefer the model interface (DB + storage). This is what the chat
|
|
320
|
+
// UI surfaces in the asset browser and what other tools can reference
|
|
321
|
+
// by `asset://<id>.<ext>` URIs.
|
|
322
|
+
// The interface, not the method — see `persistOutput`. Without this
|
|
323
|
+
// the storage-adapter fallback below was dead code and a run with no
|
|
324
|
+
// asset persistence answered with an error instead of using it.
|
|
325
|
+
if (context.hasModelInterface?.("createAsset")) {
|
|
326
|
+
const asset = (await context.createAsset({
|
|
327
|
+
name,
|
|
328
|
+
contentType: mime,
|
|
329
|
+
content: data
|
|
330
|
+
}));
|
|
331
|
+
if (asset && isString(asset.id)) {
|
|
332
|
+
// With the extension: a chat embed of `asset://<id>` alone has no
|
|
333
|
+
// way to tell a video from an image and renders it as one, which
|
|
334
|
+
// is how a saved mp4 came back as a broken image. `generate_*`
|
|
335
|
+
// already returns the suffixed form.
|
|
336
|
+
const savedUri = `asset://${asset.id}${assetUriSuffix(name, mime)}`;
|
|
337
|
+
return {
|
|
338
|
+
success: true,
|
|
339
|
+
name,
|
|
340
|
+
asset_id: asset.id,
|
|
341
|
+
asset_uri: savedUri,
|
|
342
|
+
url: savedUri,
|
|
343
|
+
content_type: mime,
|
|
344
|
+
size: data.byteLength
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
// Fallback: write to the storage adapter directly.
|
|
349
|
+
if (!context.storage) {
|
|
350
|
+
return {
|
|
351
|
+
success: false,
|
|
352
|
+
error: "No storage adapter or createAsset interface available — cannot persist asset"
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
const key = scopedAssetStorageKey(run, name);
|
|
356
|
+
const uri = await context.storage.store(key, data, mime);
|
|
357
|
+
return {
|
|
358
|
+
success: true,
|
|
359
|
+
name,
|
|
360
|
+
uri,
|
|
361
|
+
content_type: mime,
|
|
362
|
+
size: data.byteLength
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
catch (e) {
|
|
366
|
+
return {
|
|
367
|
+
success: false,
|
|
368
|
+
error: e instanceof Error ? e.message : String(e)
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
};
|
|
373
|
+
// ---------------------------------------------------------------------------
|
|
374
|
+
// read_asset
|
|
375
|
+
// ---------------------------------------------------------------------------
|
|
376
|
+
const readAsset = {
|
|
377
|
+
spec: readAssetSpec,
|
|
378
|
+
impl: async (run, params) => {
|
|
379
|
+
const context = run.context;
|
|
380
|
+
try {
|
|
381
|
+
const name = params.name;
|
|
382
|
+
if (!isString(name) || !name) {
|
|
383
|
+
return {
|
|
384
|
+
success: false,
|
|
385
|
+
error: "name is required and must be a string"
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
let data = null;
|
|
389
|
+
let matchedUri = null;
|
|
390
|
+
// Storage-only hosts keep their fallback files under the run's project,
|
|
391
|
+
// so a filename can never cross a project boundary.
|
|
392
|
+
const looksLikeUri = name.includes("://") || name.startsWith("/api/");
|
|
393
|
+
if (!looksLikeUri && context.storage) {
|
|
394
|
+
const key = scopedAssetStorageKey(run, name);
|
|
395
|
+
for (const uri of [`memory://${key}`, `file://${key}`, `s3://${key}`]) {
|
|
396
|
+
const result = await context.storage.retrieve(uri);
|
|
397
|
+
if (result) {
|
|
398
|
+
data = result;
|
|
399
|
+
matchedUri = uri;
|
|
400
|
+
break;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
// Everything an agent actually holds: the `asset://<id>` URI a
|
|
405
|
+
// generation returns (with or without an extension), the bare id off
|
|
406
|
+
// `asset_id`, a `/api/storage/` key, a `package://` URI, a data URI.
|
|
407
|
+
// `loadMediaRefBytes` is the one resolver that knows all of them, so
|
|
408
|
+
// this tool and `read_media_bytes` cannot disagree about what a ref means.
|
|
409
|
+
if (!data) {
|
|
410
|
+
// A bare name is tried as an asset id in canonical form:
|
|
411
|
+
// `loadMediaRefBytes` reads `asset_id` only when there is no uri, so
|
|
412
|
+
// handing it both a raw name and the id would resolve neither.
|
|
413
|
+
const ref = looksLikeUri
|
|
414
|
+
? { uri: name }
|
|
415
|
+
: { uri: `asset://${name}`, asset_id: name };
|
|
416
|
+
try {
|
|
417
|
+
const assetId = assetIdFromReference(name);
|
|
418
|
+
if (assetId &&
|
|
419
|
+
!isRunProjectStorageReference(run, name) &&
|
|
420
|
+
!(await findRunAsset(run, assetId))) {
|
|
421
|
+
throw new Error(`Asset ${assetId} was not found`);
|
|
422
|
+
}
|
|
423
|
+
data = await loadMediaRefBytes(ref, context);
|
|
424
|
+
if (data)
|
|
425
|
+
matchedUri = name;
|
|
426
|
+
}
|
|
427
|
+
catch {
|
|
428
|
+
// A context without an asset resolver or storage cannot answer this
|
|
429
|
+
// form. That is "not found" for the caller, not a different failure
|
|
430
|
+
// to report — the message below names the forms that do work.
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
if (!data) {
|
|
434
|
+
return {
|
|
435
|
+
success: false,
|
|
436
|
+
error: `Asset not found: ${name}. Pass the asset:// URI a generation ` +
|
|
437
|
+
`returned (its asset_uri), the asset_id itself, or a ` +
|
|
438
|
+
`/api/storage/ key — and use list_assets or asset_search to find ` +
|
|
439
|
+
`one. For a workspace file use read_file instead.`
|
|
440
|
+
};
|
|
441
|
+
}
|
|
442
|
+
// Decode as UTF-8 only when the bytes actually are UTF-8. TextDecoder
|
|
443
|
+
// with fatal:false would silently turn binary (PNG, audio, msgpack) into
|
|
444
|
+
// U+FFFD garbage and still report success; for non-text bytes return
|
|
445
|
+
// base64 the caller can round-trip instead.
|
|
446
|
+
let content;
|
|
447
|
+
let contentBase64;
|
|
448
|
+
try {
|
|
449
|
+
content = new TextDecoder("utf-8", { fatal: true }).decode(data);
|
|
450
|
+
}
|
|
451
|
+
catch {
|
|
452
|
+
contentBase64 = Buffer.from(data).toString("base64");
|
|
453
|
+
content = "";
|
|
454
|
+
}
|
|
455
|
+
const result = {
|
|
456
|
+
success: true,
|
|
457
|
+
name,
|
|
458
|
+
content,
|
|
459
|
+
binary: contentBase64 !== undefined,
|
|
460
|
+
uri: matchedUri,
|
|
461
|
+
size: data.byteLength
|
|
462
|
+
};
|
|
463
|
+
if (contentBase64 !== undefined)
|
|
464
|
+
result.content_base64 = contentBase64;
|
|
465
|
+
return result;
|
|
466
|
+
}
|
|
467
|
+
catch (e) {
|
|
468
|
+
return {
|
|
469
|
+
success: false,
|
|
470
|
+
error: e instanceof Error ? e.message : String(e)
|
|
471
|
+
};
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
};
|
|
475
|
+
const assetSearch = {
|
|
476
|
+
spec: assetSearchSpec,
|
|
477
|
+
impl: async (run, params) => {
|
|
478
|
+
const userId = run.context.userId;
|
|
479
|
+
if (!userId) {
|
|
480
|
+
return {
|
|
481
|
+
success: false,
|
|
482
|
+
error: "No user context; cannot search assets."
|
|
483
|
+
};
|
|
484
|
+
}
|
|
485
|
+
const query = isString(params.query) ? params.query.trim() : "";
|
|
486
|
+
const contentType = isString(params.content_type) && params.content_type.trim()
|
|
487
|
+
? params.content_type.trim()
|
|
488
|
+
: undefined;
|
|
489
|
+
const limit = resolveLimit(params.limit);
|
|
490
|
+
try {
|
|
491
|
+
const { Asset } = await import("@nodetool-ai/models");
|
|
492
|
+
const search = {
|
|
493
|
+
limit,
|
|
494
|
+
projectId: resolveProjectId(run, {})
|
|
495
|
+
};
|
|
496
|
+
if (contentType)
|
|
497
|
+
search.contentType = contentType;
|
|
498
|
+
const [rows] = await Asset.searchAssetsGlobal(userId, query, search);
|
|
499
|
+
const assets = rows
|
|
500
|
+
.filter((a) => a.content_type !== "folder")
|
|
501
|
+
.map((a) => toHandle(a));
|
|
502
|
+
return { success: true, count: assets.length, assets };
|
|
503
|
+
}
|
|
504
|
+
catch (e) {
|
|
505
|
+
return {
|
|
506
|
+
success: false,
|
|
507
|
+
error: e instanceof Error ? e.message : String(e)
|
|
508
|
+
};
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
};
|
|
512
|
+
const assetList = {
|
|
513
|
+
spec: assetListSpec,
|
|
514
|
+
impl: async (run, params) => {
|
|
515
|
+
const userId = run.context.userId;
|
|
516
|
+
if (!userId) {
|
|
517
|
+
return { success: false, error: "No user context; cannot list assets." };
|
|
518
|
+
}
|
|
519
|
+
const contentType = isString(params.content_type) && params.content_type.trim()
|
|
520
|
+
? params.content_type.trim()
|
|
521
|
+
: undefined;
|
|
522
|
+
const limit = resolveLimit(params.limit);
|
|
523
|
+
try {
|
|
524
|
+
// `searchAssetsGlobal` with an empty query orders by created_at DESC and
|
|
525
|
+
// supports a content_type prefix — exactly a "recent assets" listing.
|
|
526
|
+
const { Asset } = await import("@nodetool-ai/models");
|
|
527
|
+
const recent = {
|
|
528
|
+
limit,
|
|
529
|
+
projectId: resolveProjectId(run, {})
|
|
530
|
+
};
|
|
531
|
+
if (contentType)
|
|
532
|
+
recent.contentType = contentType;
|
|
533
|
+
const [rows] = await Asset.searchAssetsGlobal(userId, "", recent);
|
|
534
|
+
const assets = rows
|
|
535
|
+
.filter((a) => a.content_type !== "folder")
|
|
536
|
+
.map((a) => toHandle(a));
|
|
537
|
+
return { success: true, count: assets.length, assets };
|
|
538
|
+
}
|
|
539
|
+
catch (e) {
|
|
540
|
+
return {
|
|
541
|
+
success: false,
|
|
542
|
+
error: e instanceof Error ? e.message : String(e)
|
|
543
|
+
};
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
};
|
|
547
|
+
const DEFAULT_LIST_LIMIT = 25;
|
|
548
|
+
const listImagesImpl = async (run, params) => {
|
|
549
|
+
const userId = run.context.userId;
|
|
550
|
+
if (!userId) {
|
|
551
|
+
return { error: "No user context; cannot list assets." };
|
|
552
|
+
}
|
|
553
|
+
const limitParam = Number(params["limit"]);
|
|
554
|
+
const limit = Number.isFinite(limitParam) && limitParam > 0
|
|
555
|
+
? Math.min(Math.floor(limitParam), 100)
|
|
556
|
+
: DEFAULT_LIST_LIMIT;
|
|
557
|
+
const query = isString(params["query"]) ? params["query"].trim() : "";
|
|
558
|
+
try {
|
|
559
|
+
// searchAssetsGlobal does a content_type prefix match, so "image/"
|
|
560
|
+
// returns the whole image family; an empty query matches all names.
|
|
561
|
+
const { Asset } = await import("@nodetool-ai/models");
|
|
562
|
+
const [rows] = await Asset.searchAssetsGlobal(userId, query, {
|
|
563
|
+
contentType: "image/",
|
|
564
|
+
projectId: resolveProjectId(run, {}),
|
|
565
|
+
limit
|
|
566
|
+
});
|
|
567
|
+
const images = rows
|
|
568
|
+
.filter((a) => isString(a.content_type) && a.content_type.startsWith("image/"))
|
|
569
|
+
.slice(0, limit)
|
|
570
|
+
.map((a) => {
|
|
571
|
+
const metadata = a.metadata ?? {};
|
|
572
|
+
return {
|
|
573
|
+
image_id: a.id,
|
|
574
|
+
name: a.name,
|
|
575
|
+
content_type: a.content_type,
|
|
576
|
+
size: a.size ?? null,
|
|
577
|
+
width: isNumber(metadata["width"]) ? metadata["width"] : null,
|
|
578
|
+
height: isNumber(metadata["height"]) ? metadata["height"] : null
|
|
579
|
+
};
|
|
580
|
+
});
|
|
581
|
+
return {
|
|
582
|
+
images,
|
|
583
|
+
count: images.length,
|
|
584
|
+
hint: "Call view_image({ image_id }) to load the pixels of one."
|
|
585
|
+
};
|
|
586
|
+
}
|
|
587
|
+
catch (e) {
|
|
588
|
+
return {
|
|
589
|
+
error: `Could not list image assets: ${e instanceof Error ? e.message : String(e)}`
|
|
590
|
+
};
|
|
591
|
+
}
|
|
592
|
+
};
|
|
593
|
+
const listImages = {
|
|
594
|
+
spec: listImagesSpec,
|
|
595
|
+
impl: listImagesImpl
|
|
596
|
+
};
|
|
597
|
+
// ---------------------------------------------------------------------------
|
|
598
|
+
// view_image
|
|
599
|
+
// ---------------------------------------------------------------------------
|
|
600
|
+
/** Parse a `data:<mime>;base64,<payload>` URI into bytes + mime. */
|
|
601
|
+
function parseDataUri(uri) {
|
|
602
|
+
const match = /^data:([^;,]+)?(;base64)?,([\s\S]*)$/.exec(uri);
|
|
603
|
+
if (!match)
|
|
604
|
+
return null;
|
|
605
|
+
const mimeType = match[1] || "image/png";
|
|
606
|
+
const isBase64 = Boolean(match[2]);
|
|
607
|
+
const payload = match[3] ?? "";
|
|
608
|
+
const bytes = isBase64
|
|
609
|
+
? new Uint8Array(Buffer.from(payload, "base64"))
|
|
610
|
+
: new TextEncoder().encode(decodeURIComponent(payload));
|
|
611
|
+
return { bytes, mimeType };
|
|
612
|
+
}
|
|
613
|
+
const LOW_DETAIL_MAX_SIDE = 768;
|
|
614
|
+
/**
|
|
615
|
+
* Longest side an SVG is rendered at before any crop or downscale. A vector
|
|
616
|
+
* declares whatever size it likes — a 24px icon renders to 24 pixels, which is
|
|
617
|
+
* not something a model can read — so the render is sized for reading, not for
|
|
618
|
+
* the markup's own units.
|
|
619
|
+
*/
|
|
620
|
+
const SVG_RENDER_MIN_SIDE = 1536;
|
|
621
|
+
function parseRegion(value) {
|
|
622
|
+
if (!isObjectLike(value))
|
|
623
|
+
return undefined;
|
|
624
|
+
const r = value;
|
|
625
|
+
const x = Number(r["x"]);
|
|
626
|
+
const y = Number(r["y"]);
|
|
627
|
+
const width = Number(r["width"]);
|
|
628
|
+
const height = Number(r["height"]);
|
|
629
|
+
if (![x, y, width, height].every((n) => Number.isFinite(n)) ||
|
|
630
|
+
width <= 0 ||
|
|
631
|
+
height <= 0) {
|
|
632
|
+
return undefined;
|
|
633
|
+
}
|
|
634
|
+
return { x, y, width, height };
|
|
635
|
+
}
|
|
636
|
+
/**
|
|
637
|
+
* Put pixels in the temp store and answer the reference that goes in the
|
|
638
|
+
* message.
|
|
639
|
+
*
|
|
640
|
+
* `view_image` answers with a reference, never with base64. The bytes of one
|
|
641
|
+
* screenshot serialize to ~270k characters, and the message they ride in is
|
|
642
|
+
* re-sent on every following round of the tool loop — which is how a three-look
|
|
643
|
+
* turn reached 439k estimated prompt tokens and was refused by the budget. The
|
|
644
|
+
* provider boundary inlines the bytes for the one request that needs them
|
|
645
|
+
* (`generateLoop`'s `resolveMedia`), so the conversation carries a URI.
|
|
646
|
+
*
|
|
647
|
+
* Answers null when this run has no temp store; the caller then falls back to a
|
|
648
|
+
* data URI, because a run with nowhere to put the bytes must still be able to
|
|
649
|
+
* look at the image.
|
|
650
|
+
*/
|
|
651
|
+
async function storeViewedImage(run, context, bytes, mimeType) {
|
|
652
|
+
if (!context.storage)
|
|
653
|
+
return null;
|
|
654
|
+
const ext = MIME_TO_EXT[mimeType] ?? "png";
|
|
655
|
+
const key = scopedAssetStorageKey(run, `view-${crypto.randomUUID()}.${ext}`);
|
|
656
|
+
try {
|
|
657
|
+
await context.storage.store(key, bytes, mimeType);
|
|
658
|
+
return `/api/storage/${key}`;
|
|
659
|
+
}
|
|
660
|
+
catch {
|
|
661
|
+
// Storing is an optimization over shipping base64; a failure is not one the
|
|
662
|
+
// caller has to handle, and the data-URI fallback still shows the image.
|
|
663
|
+
return null;
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
const viewImageImpl = async (run, params) => {
|
|
667
|
+
const context = run.context;
|
|
668
|
+
const imageId = String(params["image_id"] ?? "").trim();
|
|
669
|
+
if (!imageId) {
|
|
670
|
+
return { error: "image_id is required" };
|
|
671
|
+
}
|
|
672
|
+
const region = parseRegion(params["region"]);
|
|
673
|
+
const detail = params["detail"] === "low" ? "low" : "high";
|
|
674
|
+
const maxSide = detail === "low" ? LOW_DETAIL_MAX_SIDE : undefined;
|
|
675
|
+
// Resolve the source to bytes when we can (so region/detail actually apply);
|
|
676
|
+
// fall back to letting the provider fetch a remote URL.
|
|
677
|
+
let sourceBytes = null;
|
|
678
|
+
let sourceMime = "image/png";
|
|
679
|
+
let passthroughUri;
|
|
680
|
+
let resolveError;
|
|
681
|
+
// The stored reference to hand back when nothing re-encodes the bytes: the
|
|
682
|
+
// asset is already in storage, so the message can name it instead of
|
|
683
|
+
// carrying it.
|
|
684
|
+
let sourceRef;
|
|
685
|
+
let storedAssetId;
|
|
686
|
+
if (requiresStoredAssetOwnership(imageId) &&
|
|
687
|
+
!isRunProjectStorageReference(run, imageId)) {
|
|
688
|
+
const assetId = assetIdFromReference(imageId);
|
|
689
|
+
const asset = assetId ? await findRunAsset(run, assetId) : null;
|
|
690
|
+
if (!asset) {
|
|
691
|
+
return { error: `Asset ${assetId ?? imageId} was not found.` };
|
|
692
|
+
}
|
|
693
|
+
storedAssetId = asset.id;
|
|
694
|
+
}
|
|
695
|
+
if (imageId.startsWith("data:")) {
|
|
696
|
+
const parsed = parseDataUri(imageId);
|
|
697
|
+
if (!parsed)
|
|
698
|
+
return { error: "Malformed data: URI for image_id" };
|
|
699
|
+
sourceBytes = parsed.bytes;
|
|
700
|
+
sourceMime = parsed.mimeType;
|
|
701
|
+
}
|
|
702
|
+
else if (/^https?:\/\//i.test(imageId)) {
|
|
703
|
+
// Screen it. This uri goes out as `image_content.uri` for the *provider* to
|
|
704
|
+
// fetch, so an unscreened one is not an SSRF against this host — the reach
|
|
705
|
+
// it buys is the provider's network, not ours. It was still the only
|
|
706
|
+
// model-supplied URL in this module that skipped the guard every other one
|
|
707
|
+
// meets: `save_asset` refuses exactly these through `safeFetch`, and a
|
|
708
|
+
// model that cannot tell which of two image tools screens its input is
|
|
709
|
+
// being taught that the boundary is arbitrary.
|
|
710
|
+
if (!isSafePublicHttpsUrl(imageId)) {
|
|
711
|
+
return {
|
|
712
|
+
error: `Refused to load image from "${imageId}". ` +
|
|
713
|
+
`Only public https:// URLs are handed to the vision provider — ` +
|
|
714
|
+
`plain http, localhost, and private or link-local addresses are refused. ` +
|
|
715
|
+
`Pass an asset id, an asset:// URI, or a data: URI instead.`
|
|
716
|
+
};
|
|
717
|
+
}
|
|
718
|
+
passthroughUri = imageId;
|
|
719
|
+
}
|
|
720
|
+
else {
|
|
721
|
+
try {
|
|
722
|
+
const temporary = hasTemporaryImageHandle(context, imageId);
|
|
723
|
+
const assetId = assetIdFromReference(imageId);
|
|
724
|
+
if (assetId && !requiresStoredAssetOwnership(imageId) && !temporary) {
|
|
725
|
+
const asset = await findRunAsset(run, assetId);
|
|
726
|
+
if (!asset)
|
|
727
|
+
return { error: `Asset ${assetId} was not found.` };
|
|
728
|
+
storedAssetId = asset.id;
|
|
729
|
+
}
|
|
730
|
+
const suffix = imageId.startsWith("asset://")
|
|
731
|
+
? imageId.match(/\.[A-Za-z0-9]{1,8}$/)?.[0] ?? ""
|
|
732
|
+
: "";
|
|
733
|
+
const bytes = temporary
|
|
734
|
+
? await context.storage?.retrieve(context.storage.uriForKey(imageId))
|
|
735
|
+
: (await context.resolveAssetBytes(storedAssetId ? `asset://${storedAssetId}${suffix}` : imageId)).bytes;
|
|
736
|
+
if (bytes && bytes.length > 0) {
|
|
737
|
+
sourceBytes = bytes;
|
|
738
|
+
// `sniffImageMime` falls back to PNG for anything it does not
|
|
739
|
+
// recognize, and SVG has no magic number — so an SVG asset arrived
|
|
740
|
+
// labeled `image/png`, passed the provider-safe check below, and was
|
|
741
|
+
// shipped to the model as markup wearing a PNG label.
|
|
742
|
+
sourceMime = isSvgBytes(bytes) ? SVG_MIME : sniffImageMime(bytes);
|
|
743
|
+
sourceRef = storedAssetId
|
|
744
|
+
? `asset://${storedAssetId}${suffix}`
|
|
745
|
+
: temporary
|
|
746
|
+
? `/api/storage/${imageId}`
|
|
747
|
+
: imageId.startsWith("asset://")
|
|
748
|
+
? imageId
|
|
749
|
+
: imageId.startsWith("/api/storage/")
|
|
750
|
+
? imageId
|
|
751
|
+
: `asset://${imageId}`;
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
catch (e) {
|
|
755
|
+
// Keep why. A caller that passed a perfectly good asset id — one
|
|
756
|
+
// `save_asset` just minted — gets this same branch when the row exists
|
|
757
|
+
// but its bytes do not resolve (no configured storage, an unreachable
|
|
758
|
+
// bucket, a revoked credential). Told only "pass an asset id", an agent
|
|
759
|
+
// re-passes the id it already has, then guesses URL shapes; the reason
|
|
760
|
+
// is the one thing that stops that loop.
|
|
761
|
+
resolveError = e instanceof Error ? e.message : String(e);
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
if (!sourceBytes && !passthroughUri) {
|
|
765
|
+
return {
|
|
766
|
+
error: `Could not load image "${imageId}". ` +
|
|
767
|
+
(resolveError
|
|
768
|
+
? `Resolving it failed: ${resolveError}. `
|
|
769
|
+
: "Nothing resolved for it. ") +
|
|
770
|
+
`Accepted: an asset id, an asset:// URI, a public https:// URL, or a ` +
|
|
771
|
+
`data: URI. A localhost or private-address URL is refused, so guessing ` +
|
|
772
|
+
`a local server URL will not work — if you already hold the bytes, ` +
|
|
773
|
+
`pass them as a data: URI.`
|
|
774
|
+
};
|
|
775
|
+
}
|
|
776
|
+
let outUri = passthroughUri;
|
|
777
|
+
let outMime = sourceMime;
|
|
778
|
+
let width = 0;
|
|
779
|
+
let height = 0;
|
|
780
|
+
const notes = [];
|
|
781
|
+
if (sourceBytes && sourceMime === SVG_MIME) {
|
|
782
|
+
// A vector has no pixels until something renders it, and no vision provider
|
|
783
|
+
// renders one. Rasterize here so an agent can look at the SVG it just
|
|
784
|
+
// wrote; a crop or a downscale then applies to the render, exactly as for
|
|
785
|
+
// any other source.
|
|
786
|
+
try {
|
|
787
|
+
const raster = await rasterizeSvg(sourceBytes, {
|
|
788
|
+
minSide: maxSide ?? SVG_RENDER_MIN_SIDE
|
|
789
|
+
});
|
|
790
|
+
sourceBytes = raster.data;
|
|
791
|
+
sourceMime = "image/png";
|
|
792
|
+
// The stored asset is the markup; what the model looks at is this render.
|
|
793
|
+
sourceRef = undefined;
|
|
794
|
+
// Carry the render's size into the result even when nothing downstream
|
|
795
|
+
// re-encodes: "how big is what I am looking at" is the SVG's own answer
|
|
796
|
+
// only until it is rasterized.
|
|
797
|
+
width = raster.width;
|
|
798
|
+
height = raster.height;
|
|
799
|
+
notes.push(`Rendered SVG at ${raster.width}×${raster.height}.`);
|
|
800
|
+
}
|
|
801
|
+
catch (e) {
|
|
802
|
+
return {
|
|
803
|
+
error: `Could not render the SVG "${imageId}": ` +
|
|
804
|
+
`${e instanceof Error ? e.message : String(e)}`
|
|
805
|
+
};
|
|
806
|
+
}
|
|
807
|
+
}
|
|
808
|
+
if (sourceBytes) {
|
|
809
|
+
// Vision providers only accept these formats; anything else must be
|
|
810
|
+
// re-encoded to PNG before it can be shown to the model.
|
|
811
|
+
const PROVIDER_SAFE_MIMES = new Set([
|
|
812
|
+
"image/png",
|
|
813
|
+
"image/jpeg",
|
|
814
|
+
"image/gif",
|
|
815
|
+
"image/webp"
|
|
816
|
+
]);
|
|
817
|
+
const needsTransform = Boolean(region) ||
|
|
818
|
+
maxSide !== undefined ||
|
|
819
|
+
!PROVIDER_SAFE_MIMES.has(sourceMime);
|
|
820
|
+
if (!needsTransform) {
|
|
821
|
+
// No crop or downscale requested and the source is a provider-safe
|
|
822
|
+
// format: show the original bytes unchanged. Re-encoding a
|
|
823
|
+
// well-compressed source through the codec can bloat it many-fold (a
|
|
824
|
+
// 44KB screenshot PNG re-encoded to >1MB) for no gain.
|
|
825
|
+
outUri =
|
|
826
|
+
sourceRef ??
|
|
827
|
+
(await storeViewedImage(run, context, sourceBytes, sourceMime)) ??
|
|
828
|
+
`data:${sourceMime};base64,${Buffer.from(sourceBytes).toString("base64")}`;
|
|
829
|
+
outMime = sourceMime;
|
|
830
|
+
}
|
|
831
|
+
else {
|
|
832
|
+
try {
|
|
833
|
+
const extract = { sourceMime };
|
|
834
|
+
if (region)
|
|
835
|
+
extract.region = region;
|
|
836
|
+
if (maxSide)
|
|
837
|
+
extract.maxSide = maxSide;
|
|
838
|
+
const prepared = await extractImageRegion(sourceBytes, extract);
|
|
839
|
+
// width/height 0 signals the no-sharp pass-through: the bytes were
|
|
840
|
+
// NOT re-encoded, so keep the true source mime rather than a
|
|
841
|
+
// fabricated one (mislabeling makes the provider reject the image).
|
|
842
|
+
outMime =
|
|
843
|
+
prepared.width === 0 && prepared.height === 0
|
|
844
|
+
? sourceMime
|
|
845
|
+
: prepared.mimeType;
|
|
846
|
+
outUri =
|
|
847
|
+
(await storeViewedImage(run, context, prepared.data, outMime)) ??
|
|
848
|
+
`data:${outMime};base64,${Buffer.from(prepared.data).toString("base64")}`;
|
|
849
|
+
width = prepared.width;
|
|
850
|
+
height = prepared.height;
|
|
851
|
+
}
|
|
852
|
+
catch (e) {
|
|
853
|
+
// Codec failed unexpectedly: ship the original bytes uncropped.
|
|
854
|
+
outUri =
|
|
855
|
+
sourceRef ??
|
|
856
|
+
(await storeViewedImage(run, context, sourceBytes, sourceMime)) ??
|
|
857
|
+
`data:${sourceMime};base64,${Buffer.from(sourceBytes).toString("base64")}`;
|
|
858
|
+
notes.push(`Could not crop/resize (${e instanceof Error ? e.message : String(e)}); showing full image.`);
|
|
859
|
+
}
|
|
860
|
+
}
|
|
861
|
+
}
|
|
862
|
+
else if (region) {
|
|
863
|
+
notes.push("Region crop is not applied to remote URLs; showing the full image.");
|
|
864
|
+
}
|
|
865
|
+
const question = isString(params["question"])
|
|
866
|
+
? params["question"].trim()
|
|
867
|
+
: "";
|
|
868
|
+
const dims = width && height ? ` (${width}×${height})` : "";
|
|
869
|
+
const regionNote = region
|
|
870
|
+
? ` region ${region.x},${region.y} ${region.width}×${region.height}`
|
|
871
|
+
: "";
|
|
872
|
+
const note = question ||
|
|
873
|
+
`Image ${imageId}${regionNote}${dims}:` +
|
|
874
|
+
(notes.length ? ` ${notes.join(" ")}` : "");
|
|
875
|
+
const result = {
|
|
876
|
+
ok: true,
|
|
877
|
+
image_id: imageId,
|
|
878
|
+
mimeType: outMime,
|
|
879
|
+
detail,
|
|
880
|
+
note,
|
|
881
|
+
image_content: { uri: outUri, mimeType: outMime }
|
|
882
|
+
};
|
|
883
|
+
if (width)
|
|
884
|
+
result.width = width;
|
|
885
|
+
if (height)
|
|
886
|
+
result.height = height;
|
|
887
|
+
return result;
|
|
888
|
+
};
|
|
889
|
+
const viewImage = {
|
|
890
|
+
spec: viewImageSpec,
|
|
891
|
+
impl: viewImageImpl
|
|
892
|
+
};
|
|
893
|
+
/** Every asset capability, in the order `getAllMcpTools` offered them. */
|
|
894
|
+
/**
|
|
895
|
+
* Rename or re-file one of the caller's own assets.
|
|
896
|
+
*
|
|
897
|
+
* Deliberately narrow. `Asset.find` is user-scoped, so another user's asset
|
|
898
|
+
* reads as missing; a move goes through `Asset.validateParent`, the same rule
|
|
899
|
+
* the tRPC route applies, so a run cannot detach a subtree by moving a folder
|
|
900
|
+
* under its own descendant. Content type is not settable: the stored file name
|
|
901
|
+
* is derived from it, so changing it without re-uploading the bytes would
|
|
902
|
+
* leave the asset pointing at a file nobody wrote.
|
|
903
|
+
*/
|
|
904
|
+
const updateAsset = {
|
|
905
|
+
spec: updateAssetSpec,
|
|
906
|
+
impl: async (run, params) => {
|
|
907
|
+
const userId = userIdOf(run.context);
|
|
908
|
+
const assetId = String(params["asset_id"]);
|
|
909
|
+
const asset = await findRunAsset(run, assetId);
|
|
910
|
+
if (!asset)
|
|
911
|
+
return { error: `Asset ${assetId} was not found.` };
|
|
912
|
+
let touched = false;
|
|
913
|
+
if (isString(params["name"]) && params["name"]) {
|
|
914
|
+
asset.name = params["name"];
|
|
915
|
+
touched = true;
|
|
916
|
+
}
|
|
917
|
+
if (isString(params["parent_id"]) && params["parent_id"]) {
|
|
918
|
+
if (params["parent_id"] !== userId &&
|
|
919
|
+
!(await findRunAsset(run, params["parent_id"]))) {
|
|
920
|
+
return { error: "Parent folder not found" };
|
|
921
|
+
}
|
|
922
|
+
const { Asset } = await import("@nodetool-ai/models");
|
|
923
|
+
const problem = await Asset.validateParent(userId, asset, params["parent_id"]);
|
|
924
|
+
if (problem)
|
|
925
|
+
return { error: problem };
|
|
926
|
+
asset.parent_id = params["parent_id"];
|
|
927
|
+
touched = true;
|
|
928
|
+
}
|
|
929
|
+
if (!touched) {
|
|
930
|
+
return { error: "Nothing to update — pass name or parent_id." };
|
|
931
|
+
}
|
|
932
|
+
await asset.save();
|
|
933
|
+
return assetRecord(asset);
|
|
934
|
+
}
|
|
935
|
+
};
|
|
936
|
+
export const ASSET_CAPABILITIES = [
|
|
937
|
+
listAssets,
|
|
938
|
+
getAsset,
|
|
939
|
+
saveAsset,
|
|
940
|
+
readAsset,
|
|
941
|
+
assetSearch,
|
|
942
|
+
assetList,
|
|
943
|
+
listImages,
|
|
944
|
+
viewImage,
|
|
945
|
+
updateAsset
|
|
946
|
+
];
|
|
947
|
+
export const module = {
|
|
948
|
+
module: "assets",
|
|
949
|
+
exports: ASSET_CAPABILITIES
|
|
950
|
+
};
|
|
951
|
+
export { listAssets, getAsset, saveAsset, readAsset, assetSearch, assetList, listImages, viewImage, updateAsset };
|
|
952
|
+
//# sourceMappingURL=assets.js.map
|