@nodetool-ai/websocket 0.8.1 → 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/dist/.nodetool-build-stamp +1 -1
- package/dist/collection-api.d.ts.map +1 -1
- package/dist/collection-api.js +41 -4
- package/dist/collection-api.js.map +1 -1
- package/dist/error-traces.d.ts +56 -0
- package/dist/error-traces.d.ts.map +1 -0
- package/dist/error-traces.js +179 -0
- package/dist/error-traces.js.map +1 -0
- package/dist/fake-runtime.d.ts.map +1 -1
- package/dist/fake-runtime.js +40 -3
- package/dist/fake-runtime.js.map +1 -1
- package/dist/generation-recovery.d.ts.map +1 -1
- package/dist/generation-recovery.js +26 -4
- package/dist/generation-recovery.js.map +1 -1
- package/dist/http-api.d.ts.map +1 -1
- package/dist/http-api.js +15 -0
- package/dist/http-api.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/interrupted-jobs.d.ts +14 -0
- package/dist/interrupted-jobs.d.ts.map +1 -0
- package/dist/interrupted-jobs.js +28 -0
- package/dist/interrupted-jobs.js.map +1 -0
- package/dist/lib/app-debug-service.js +1 -1
- package/dist/lib/app-debug-service.js.map +1 -1
- package/dist/lib/app-instances-service.d.ts +1284 -0
- package/dist/lib/app-instances-service.d.ts.map +1 -0
- package/dist/lib/app-instances-service.js +378 -0
- package/dist/lib/app-instances-service.js.map +1 -0
- package/dist/lib/app-run-cancellation.d.ts +4 -0
- package/dist/lib/app-run-cancellation.d.ts.map +1 -0
- package/dist/lib/app-run-cancellation.js +28 -0
- package/dist/lib/app-run-cancellation.js.map +1 -0
- package/dist/lib/applications-service.d.ts +182 -1
- package/dist/lib/applications-service.d.ts.map +1 -1
- package/dist/lib/applications-service.js +20 -4
- package/dist/lib/applications-service.js.map +1 -1
- package/dist/lib/asset-paths.d.ts +7 -11
- package/dist/lib/asset-paths.d.ts.map +1 -1
- package/dist/lib/asset-paths.js +8 -56
- package/dist/lib/asset-paths.js.map +1 -1
- package/dist/lib/asset-response.d.ts.map +1 -1
- package/dist/lib/asset-response.js +2 -1
- package/dist/lib/asset-response.js.map +1 -1
- package/dist/lib/audio-peaks.d.ts.map +1 -1
- package/dist/lib/audio-peaks.js +5 -1
- package/dist/lib/audio-peaks.js.map +1 -1
- package/dist/lib/bridge.d.ts.map +1 -1
- package/dist/lib/bridge.js.map +1 -1
- package/dist/lib/document-model-interfaces.d.ts.map +1 -1
- package/dist/lib/document-model-interfaces.js +9 -8
- package/dist/lib/document-model-interfaces.js.map +1 -1
- package/dist/lib/example-apps.d.ts +9 -0
- package/dist/lib/example-apps.d.ts.map +1 -1
- package/dist/lib/example-apps.js +61 -14
- package/dist/lib/example-apps.js.map +1 -1
- package/dist/lib/http-tracing.d.ts +12 -0
- package/dist/lib/http-tracing.d.ts.map +1 -0
- package/dist/lib/http-tracing.js +81 -0
- package/dist/lib/http-tracing.js.map +1 -0
- package/dist/lib/media.d.ts +1 -6
- package/dist/lib/media.d.ts.map +1 -1
- package/dist/lib/media.js +8 -44
- package/dist/lib/media.js.map +1 -1
- package/dist/lib/public-routes.d.ts +7 -0
- package/dist/lib/public-routes.d.ts.map +1 -1
- package/dist/lib/public-routes.js +14 -0
- package/dist/lib/public-routes.js.map +1 -1
- package/dist/lib/public-workflow-share.d.ts +20 -0
- package/dist/lib/public-workflow-share.d.ts.map +1 -0
- package/dist/lib/public-workflow-share.js +45 -0
- package/dist/lib/public-workflow-share.js.map +1 -0
- package/dist/lib/run-trace-live-delivery.d.ts +25 -0
- package/dist/lib/run-trace-live-delivery.d.ts.map +1 -0
- package/dist/lib/run-trace-live-delivery.js +91 -0
- package/dist/lib/run-trace-live-delivery.js.map +1 -0
- package/dist/lib/test-ui-run-routes.d.ts +8 -0
- package/dist/lib/test-ui-run-routes.d.ts.map +1 -0
- package/dist/lib/test-ui-run-routes.js +42 -0
- package/dist/lib/test-ui-run-routes.js.map +1 -0
- package/dist/lib/thumbnail.d.ts.map +1 -1
- package/dist/lib/thumbnail.js +12 -9
- package/dist/lib/thumbnail.js.map +1 -1
- package/dist/lib/timeline-bundle.d.ts +148 -16
- package/dist/lib/timeline-bundle.d.ts.map +1 -1
- package/dist/lib/timeline-bundle.js +12 -0
- package/dist/lib/timeline-bundle.js.map +1 -1
- package/dist/lib/video-proxy.d.ts.map +1 -1
- package/dist/lib/video-proxy.js +3 -2
- package/dist/lib/video-proxy.js.map +1 -1
- package/dist/lib/workflow-service.d.ts.map +1 -1
- package/dist/lib/workflow-service.js +4 -1
- package/dist/lib/workflow-service.js.map +1 -1
- package/dist/mcp-agent-tools.d.ts.map +1 -1
- package/dist/mcp-agent-tools.js +93 -162
- package/dist/mcp-agent-tools.js.map +1 -1
- package/dist/mcp-client-config.d.ts +64 -0
- package/dist/mcp-client-config.d.ts.map +1 -0
- package/dist/mcp-client-config.js +353 -0
- package/dist/mcp-client-config.js.map +1 -0
- package/dist/models-api.d.ts +10 -0
- package/dist/models-api.d.ts.map +1 -1
- package/dist/models-api.js +23 -0
- package/dist/models-api.js.map +1 -1
- package/dist/node-registry-setup.d.ts +1 -1
- package/dist/node-registry-setup.d.ts.map +1 -1
- package/dist/node-registry-setup.js +21 -114
- package/dist/node-registry-setup.js.map +1 -1
- package/dist/plugins/websocket.d.ts.map +1 -1
- package/dist/plugins/websocket.js +20 -57
- package/dist/plugins/websocket.js.map +1 -1
- package/dist/python-bridge-gate.d.ts +28 -0
- package/dist/python-bridge-gate.d.ts.map +1 -0
- package/dist/python-bridge-gate.js +36 -0
- package/dist/python-bridge-gate.js.map +1 -0
- package/dist/routes/app-runs.d.ts +4 -0
- package/dist/routes/app-runs.d.ts.map +1 -0
- package/dist/routes/app-runs.js +173 -0
- package/dist/routes/app-runs.js.map +1 -0
- package/dist/routes/js-scripts.d.ts +9 -3
- package/dist/routes/js-scripts.d.ts.map +1 -1
- package/dist/routes/js-scripts.js +450 -68
- package/dist/routes/js-scripts.js.map +1 -1
- package/dist/routes/nodes.d.ts.map +1 -1
- package/dist/routes/nodes.js +32 -1
- package/dist/routes/nodes.js.map +1 -1
- package/dist/routes/public-shared-workflows.d.ts +16 -0
- package/dist/routes/public-shared-workflows.d.ts.map +1 -0
- package/dist/routes/public-shared-workflows.js +55 -0
- package/dist/routes/public-shared-workflows.js.map +1 -0
- package/dist/routes/run-spans.d.ts +4 -0
- package/dist/routes/run-spans.d.ts.map +1 -0
- package/dist/routes/run-spans.js +53 -0
- package/dist/routes/run-spans.js.map +1 -0
- package/dist/routes/timeline-fonts.d.ts +22 -0
- package/dist/routes/timeline-fonts.d.ts.map +1 -1
- package/dist/routes/timeline-fonts.js +138 -7
- package/dist/routes/timeline-fonts.js.map +1 -1
- package/dist/screenshot-server.js +4 -5
- package/dist/screenshot-server.js.map +1 -1
- package/dist/sdk/sdk-model-download-service.d.ts.map +1 -1
- package/dist/sdk/sdk-model-download-service.js +5 -2
- package/dist/sdk/sdk-model-download-service.js.map +1 -1
- package/dist/server.js +86 -19
- package/dist/server.js.map +1 -1
- package/dist/session/app-run-fold.d.ts +7 -0
- package/dist/session/app-run-fold.d.ts.map +1 -0
- package/dist/session/app-run-fold.js +45 -0
- package/dist/session/app-run-fold.js.map +1 -0
- package/dist/session/chat-prompt.d.ts.map +1 -1
- package/dist/session/chat-prompt.js +37 -15
- package/dist/session/chat-prompt.js.map +1 -1
- package/dist/session/chat-turn.d.ts +1 -0
- package/dist/session/chat-turn.d.ts.map +1 -1
- package/dist/session/chat-turn.js +203 -107
- package/dist/session/chat-turn.js.map +1 -1
- package/dist/session/commands.d.ts.map +1 -1
- package/dist/session/commands.js +6 -0
- package/dist/session/commands.js.map +1 -1
- package/dist/session/inference.d.ts +5 -0
- package/dist/session/inference.d.ts.map +1 -1
- package/dist/session/inference.js +80 -9
- package/dist/session/inference.js.map +1 -1
- package/dist/session/job-execution.d.ts +7 -0
- package/dist/session/job-execution.d.ts.map +1 -1
- package/dist/session/job-execution.js +297 -7
- package/dist/session/job-execution.js.map +1 -1
- package/dist/session/model-interfaces.d.ts +2 -1
- package/dist/session/model-interfaces.d.ts.map +1 -1
- package/dist/session/model-interfaces.js +1 -0
- package/dist/session/model-interfaces.js.map +1 -1
- package/dist/storage-retention.d.ts +5 -0
- package/dist/storage-retention.d.ts.map +1 -1
- package/dist/storage-retention.js +22 -1
- package/dist/storage-retention.js.map +1 -1
- package/dist/test-ui-server.d.ts.map +1 -1
- package/dist/test-ui-server.js +21 -3
- package/dist/test-ui-server.js.map +1 -1
- package/dist/timeline-generation-recovery.d.ts +4 -0
- package/dist/timeline-generation-recovery.d.ts.map +1 -0
- package/dist/timeline-generation-recovery.js +72 -0
- package/dist/timeline-generation-recovery.js.map +1 -0
- package/dist/triggers/dispatcher.js +2 -2
- package/dist/triggers/dispatcher.js.map +1 -1
- package/dist/triggers/stores.js +8 -8
- package/dist/triggers/stores.js.map +1 -1
- package/dist/triggers/webhook-route.js +2 -2
- package/dist/triggers/webhook-route.js.map +1 -1
- package/dist/trpc/error-logging.d.ts +10 -0
- package/dist/trpc/error-logging.d.ts.map +1 -1
- package/dist/trpc/error-logging.js +21 -0
- package/dist/trpc/error-logging.js.map +1 -1
- package/dist/trpc/router.d.ts +100 -31028
- package/dist/trpc/router.d.ts.map +1 -1
- package/dist/trpc/router.js +12 -3
- package/dist/trpc/router.js.map +1 -1
- package/dist/trpc/routers/app-instances.d.ts +2269 -0
- package/dist/trpc/routers/app-instances.d.ts.map +1 -0
- package/dist/trpc/routers/app-instances.js +52 -0
- package/dist/trpc/routers/app-instances.js.map +1 -0
- package/dist/trpc/routers/app-runs.d.ts +1092 -0
- package/dist/trpc/routers/app-runs.d.ts.map +1 -0
- package/dist/trpc/routers/app-runs.js +28 -0
- package/dist/trpc/routers/app-runs.js.map +1 -0
- package/dist/trpc/routers/applications.d.ts +1095 -0
- package/dist/trpc/routers/applications.d.ts.map +1 -1
- package/dist/trpc/routers/applications.js +5 -2
- package/dist/trpc/routers/applications.js.map +1 -1
- package/dist/trpc/routers/assets.d.ts +10 -0
- package/dist/trpc/routers/assets.d.ts.map +1 -1
- package/dist/trpc/routers/assets.js +4 -0
- package/dist/trpc/routers/assets.js.map +1 -1
- package/dist/trpc/routers/bug-reports.d.ts +33 -0
- package/dist/trpc/routers/bug-reports.d.ts.map +1 -0
- package/dist/trpc/routers/bug-reports.js +69 -0
- package/dist/trpc/routers/bug-reports.js.map +1 -0
- package/dist/trpc/routers/documents.d.ts.map +1 -1
- package/dist/trpc/routers/documents.js +8 -2
- package/dist/trpc/routers/documents.js.map +1 -1
- package/dist/trpc/routers/error-traces.d.ts +132 -0
- package/dist/trpc/routers/error-traces.d.ts.map +1 -0
- package/dist/trpc/routers/error-traces.js +118 -0
- package/dist/trpc/routers/error-traces.js.map +1 -0
- package/dist/trpc/routers/extension.d.ts +3 -3
- package/dist/trpc/routers/extension.js +6 -6
- package/dist/trpc/routers/extension.js.map +1 -1
- package/dist/trpc/routers/gameDraftHistory.d.ts +8 -0
- package/dist/trpc/routers/gameDraftHistory.d.ts.map +1 -0
- package/dist/trpc/routers/gameDraftHistory.js +40 -0
- package/dist/trpc/routers/gameDraftHistory.js.map +1 -0
- package/dist/trpc/routers/games.d.ts +23691 -4799
- package/dist/trpc/routers/games.d.ts.map +1 -1
- package/dist/trpc/routers/games.js +301 -83
- package/dist/trpc/routers/games.js.map +1 -1
- package/dist/trpc/routers/jobs.d.ts +35 -0
- package/dist/trpc/routers/jobs.d.ts.map +1 -1
- package/dist/trpc/routers/jobs.js +84 -1
- package/dist/trpc/routers/jobs.js.map +1 -1
- package/dist/trpc/routers/mcp-config.d.ts +3 -1
- package/dist/trpc/routers/mcp-config.d.ts.map +1 -1
- package/dist/trpc/routers/mcp-config.js +46 -208
- package/dist/trpc/routers/mcp-config.js.map +1 -1
- package/dist/trpc/routers/models.d.ts +130 -0
- package/dist/trpc/routers/models.d.ts.map +1 -1
- package/dist/trpc/routers/models.js +99 -31
- package/dist/trpc/routers/models.js.map +1 -1
- package/dist/trpc/routers/runs.d.ts +472 -0
- package/dist/trpc/routers/runs.d.ts.map +1 -0
- package/dist/trpc/routers/runs.js +40 -0
- package/dist/trpc/routers/runs.js.map +1 -0
- package/dist/trpc/routers/settings.d.ts +3 -0
- package/dist/trpc/routers/settings.d.ts.map +1 -1
- package/dist/trpc/routers/settings.js +2 -0
- package/dist/trpc/routers/settings.js.map +1 -1
- package/dist/trpc/routers/sketch.d.ts +14 -0
- package/dist/trpc/routers/sketch.d.ts.map +1 -1
- package/dist/trpc/routers/storyboards.d.ts +732 -0
- package/dist/trpc/routers/storyboards.d.ts.map +1 -1
- package/dist/trpc/routers/timeline.d.ts +632 -63
- package/dist/trpc/routers/timeline.d.ts.map +1 -1
- package/dist/trpc/routers/timeline.js +178 -2
- package/dist/trpc/routers/timeline.js.map +1 -1
- package/dist/trpc/routers/worker.d.ts +10 -9
- package/dist/trpc/routers/worker.d.ts.map +1 -1
- package/dist/trpc/routers/worker.js +3 -2
- package/dist/trpc/routers/worker.js.map +1 -1
- package/dist/trpc/routers/workflows.d.ts +56 -3
- package/dist/trpc/routers/workflows.d.ts.map +1 -1
- package/dist/trpc/routers/workflows.js +23 -2
- package/dist/trpc/routers/workflows.js.map +1 -1
- package/dist/trpc/sandbox-coverage.d.ts.map +1 -1
- package/dist/trpc/sandbox-coverage.js +90 -0
- package/dist/trpc/sandbox-coverage.js.map +1 -1
- package/dist/websocket-client-session.d.ts +2 -0
- package/dist/websocket-client-session.d.ts.map +1 -1
- package/dist/websocket-client-session.js +14 -0
- package/dist/websocket-client-session.js.map +1 -1
- package/package.json +56 -41
- package/dist/extension-cdp-bridge.d.ts +0 -85
- package/dist/extension-cdp-bridge.d.ts.map +0 -1
- package/dist/extension-cdp-bridge.js +0 -163
- package/dist/extension-cdp-bridge.js.map +0 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reads behind a workflow's public share link.
|
|
3
|
+
*
|
|
4
|
+
* A `public` share token lets anyone see one workflow and lets a signed-in
|
|
5
|
+
* user copy it into their own workflows. It never becomes a collaborator
|
|
6
|
+
* grant. Unknown, revoked, and non-public tokens all answer the same
|
|
7
|
+
* NOT_FOUND, so a caller cannot tell a view or edit token from a dead one.
|
|
8
|
+
*/
|
|
9
|
+
import { Workflow, WorkflowShare } from "@nodetool-ai/models";
|
|
10
|
+
import { graph as graphSchema } from "@nodetool-ai/protocol/api-schemas/workflows.js";
|
|
11
|
+
import { ApiErrorCode } from "../error-codes.js";
|
|
12
|
+
import { throwApiError } from "../trpc/error-formatter.js";
|
|
13
|
+
/** The workflow behind an active public share token, else NOT_FOUND. */
|
|
14
|
+
export async function loadPublicShareWorkflow(token) {
|
|
15
|
+
const share = await WorkflowShare.findByToken(token);
|
|
16
|
+
if (!share || share.isRevoked || share.role !== "public") {
|
|
17
|
+
throwApiError(ApiErrorCode.NOT_FOUND, "Share link is invalid or revoked");
|
|
18
|
+
}
|
|
19
|
+
const workflow = (await Workflow.get(share.workflow_id));
|
|
20
|
+
if (!workflow) {
|
|
21
|
+
throwApiError(ApiErrorCode.NOT_FOUND, "Share link is invalid or revoked");
|
|
22
|
+
}
|
|
23
|
+
return workflow;
|
|
24
|
+
}
|
|
25
|
+
/** The graph a stored row carries, or null when it does not parse. */
|
|
26
|
+
export function parseSharedGraph(raw) {
|
|
27
|
+
if (raw == null)
|
|
28
|
+
return null;
|
|
29
|
+
const parsed = graphSchema.safeParse(raw);
|
|
30
|
+
return parsed.success ? parsed.data : null;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* What a public link shows: the graph and its label. Nothing about the owner,
|
|
34
|
+
* the row id, or where the workflow lives.
|
|
35
|
+
*/
|
|
36
|
+
export async function getPublicSharedWorkflow(token) {
|
|
37
|
+
const workflow = await loadPublicShareWorkflow(token);
|
|
38
|
+
return {
|
|
39
|
+
name: workflow.name,
|
|
40
|
+
description: workflow.description ?? null,
|
|
41
|
+
tags: workflow.tags ?? [],
|
|
42
|
+
graph: parseSharedGraph(workflow.graph)
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=public-workflow-share.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-workflow-share.js","sourceRoot":"","sources":["../../src/lib/public-workflow-share.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EACL,KAAK,IAAI,WAAW,EAErB,MAAM,gDAAgD,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAa;IAEb,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzD,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,kCAAkC,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,CAClC,KAAK,CAAC,WAAW,CAClB,CAAyB,CAAC;IAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,kCAAkC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,gBAAgB,CAC9B,GAAY;IAEZ,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAa;IAEb,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACtD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,IAAI;QACzC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE;QACzB,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC;KACxC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { StoredRunTraceUpdate } from "@nodetool-ai/protocol";
|
|
2
|
+
export type LiveRunTraceUpdate = StoredRunTraceUpdate & {
|
|
3
|
+
resnapshot_required?: true;
|
|
4
|
+
};
|
|
5
|
+
/** One transport write at a time, with a bounded cache of each span's latest record. */
|
|
6
|
+
export declare class RunTraceLiveDelivery {
|
|
7
|
+
private readonly send;
|
|
8
|
+
private readonly onError;
|
|
9
|
+
private readonly limits;
|
|
10
|
+
private readonly queued;
|
|
11
|
+
private queuedBytes;
|
|
12
|
+
private sending;
|
|
13
|
+
private closed;
|
|
14
|
+
private resnapshotRequired;
|
|
15
|
+
constructor(send: (update: LiveRunTraceUpdate) => Promise<void>, onError: (error: unknown) => void, limits?: {
|
|
16
|
+
spans: number;
|
|
17
|
+
bytes: number;
|
|
18
|
+
});
|
|
19
|
+
get bufferedSpanCount(): number;
|
|
20
|
+
get bufferedBytes(): number;
|
|
21
|
+
enqueue(update: StoredRunTraceUpdate): void;
|
|
22
|
+
close(): void;
|
|
23
|
+
private flush;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=run-trace-live-delivery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-trace-live-delivery.d.ts","sourceRoot":"","sources":["../../src/lib/run-trace-live-delivery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,GAAG;IAAE,mBAAmB,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAKvF,wFAAwF;AACxF,qBAAa,oBAAoB;IAQ7B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IATzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsE;IAC7F,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,kBAAkB,CAAS;IAEnC,YACmB,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,EACnD,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,EACjC,MAAM;;;KAA2D,EAChF;IAEJ,IAAI,iBAAiB,IAAI,MAAM,CAA6B;IAC5D,IAAI,aAAa,IAAI,MAAM,CAA6B;IAExD,OAAO,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAyB1C;IAED,KAAK,IAAI,IAAI,CAIZ;YAEa,KAAK;CAyBpB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
const MAX_BUFFERED_SPANS = 128;
|
|
2
|
+
const MAX_BUFFERED_BYTES = 8 * 1024 * 1024;
|
|
3
|
+
/** One transport write at a time, with a bounded cache of each span's latest record. */
|
|
4
|
+
export class RunTraceLiveDelivery {
|
|
5
|
+
send;
|
|
6
|
+
onError;
|
|
7
|
+
limits;
|
|
8
|
+
queued = new Map();
|
|
9
|
+
queuedBytes = 0;
|
|
10
|
+
sending = false;
|
|
11
|
+
closed = false;
|
|
12
|
+
resnapshotRequired = false;
|
|
13
|
+
constructor(send, onError, limits = { spans: MAX_BUFFERED_SPANS, bytes: MAX_BUFFERED_BYTES }) {
|
|
14
|
+
this.send = send;
|
|
15
|
+
this.onError = onError;
|
|
16
|
+
this.limits = limits;
|
|
17
|
+
}
|
|
18
|
+
get bufferedSpanCount() { return this.queued.size; }
|
|
19
|
+
get bufferedBytes() { return this.queuedBytes; }
|
|
20
|
+
enqueue(update) {
|
|
21
|
+
if (this.closed) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const key = `${update.run_id}:${update.record.span_id}`;
|
|
25
|
+
const previous = this.queued.get(key);
|
|
26
|
+
if (previous) {
|
|
27
|
+
this.queued.delete(key);
|
|
28
|
+
this.queuedBytes -= previous.bytes;
|
|
29
|
+
this.resnapshotRequired = true;
|
|
30
|
+
}
|
|
31
|
+
const bytes = Buffer.byteLength(JSON.stringify(update));
|
|
32
|
+
if (bytes > this.limits.bytes) {
|
|
33
|
+
this.resnapshotRequired = true;
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
this.queued.set(key, { update, bytes });
|
|
37
|
+
this.queuedBytes += bytes;
|
|
38
|
+
while (this.queued.size > this.limits.spans || this.queuedBytes > this.limits.bytes) {
|
|
39
|
+
const oldestKey = this.queued.keys().next().value;
|
|
40
|
+
if (oldestKey === undefined) {
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
const oldest = this.queued.get(oldestKey);
|
|
44
|
+
this.queued.delete(oldestKey);
|
|
45
|
+
this.queuedBytes -= oldest?.bytes ?? 0;
|
|
46
|
+
this.resnapshotRequired = true;
|
|
47
|
+
}
|
|
48
|
+
if (!this.sending) {
|
|
49
|
+
void this.flush();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
close() {
|
|
53
|
+
this.closed = true;
|
|
54
|
+
this.queued.clear();
|
|
55
|
+
this.queuedBytes = 0;
|
|
56
|
+
}
|
|
57
|
+
async flush() {
|
|
58
|
+
this.sending = true;
|
|
59
|
+
try {
|
|
60
|
+
while (!this.closed && this.queued.size > 0) {
|
|
61
|
+
const key = this.queued.keys().next().value;
|
|
62
|
+
if (key === undefined) {
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
const next = this.queued.get(key);
|
|
66
|
+
if (!next) {
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
this.queued.delete(key);
|
|
70
|
+
this.queuedBytes -= next.bytes;
|
|
71
|
+
const resnapshot = this.resnapshotRequired;
|
|
72
|
+
this.resnapshotRequired = false;
|
|
73
|
+
try {
|
|
74
|
+
const update = { ...next.update };
|
|
75
|
+
if (resnapshot) {
|
|
76
|
+
update.resnapshot_required = true;
|
|
77
|
+
}
|
|
78
|
+
await this.send(update);
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
this.resnapshotRequired = true;
|
|
82
|
+
this.onError(error);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
finally {
|
|
87
|
+
this.sending = false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=run-trace-live-delivery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-trace-live-delivery.js","sourceRoot":"","sources":["../../src/lib/run-trace-live-delivery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
+
/** The local UI harness uses the production owner routes with its existing single-user fixture. */
|
|
3
|
+
export declare function createTestUiRunRoutes(): {
|
|
4
|
+
matches(pathname: string): boolean;
|
|
5
|
+
handle(request: IncomingMessage, response: ServerResponse): Promise<void>;
|
|
6
|
+
close(): Promise<void>;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=test-ui-run-routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-ui-run-routes.d.ts","sourceRoot":"","sources":["../../src/lib/test-ui-run-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAQjE,mGAAmG;AACnG,wBAAgB,qBAAqB;IAUjC,OAAO,WAAW,MAAM,GAAG,OAAO;IAI5B,MAAM,UAAU,eAAe,YAAY,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;EAE/B"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import Fastify from "fastify";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import appRunsRoutes from "../routes/app-runs.js";
|
|
4
|
+
import runSpansRoutes from "../routes/run-spans.js";
|
|
5
|
+
const methodSchema = z.enum(["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"]);
|
|
6
|
+
/** The local UI harness uses the production owner routes with its existing single-user fixture. */
|
|
7
|
+
export function createTestUiRunRoutes() {
|
|
8
|
+
const app = Fastify();
|
|
9
|
+
app.addHook("onRequest", async (request) => {
|
|
10
|
+
request.userId = "1";
|
|
11
|
+
if (request.headers.authorization?.startsWith("Bearer nda_")) {
|
|
12
|
+
request.appSession = { applicationId: "visitor-session", version: 0 };
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
const ready = app.register(appRunsRoutes).register(runSpansRoutes).ready();
|
|
16
|
+
return {
|
|
17
|
+
matches(pathname) {
|
|
18
|
+
return pathname === "/api/app-instances" || pathname.startsWith("/api/app-instances/") ||
|
|
19
|
+
pathname.startsWith("/api/app-runs/") || /^\/api\/runs\/[^/]+\/(?:spans|browser-start)$/.test(pathname);
|
|
20
|
+
},
|
|
21
|
+
async handle(request, response) {
|
|
22
|
+
await ready;
|
|
23
|
+
const method = methodSchema.safeParse(request.method);
|
|
24
|
+
if (!method.success) {
|
|
25
|
+
response.statusCode = 405;
|
|
26
|
+
response.end();
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const result = await app.inject({ method: method.data, url: request.url ?? "/", headers: request.headers,
|
|
30
|
+
payload: method.data !== "GET" && method.data !== "HEAD" ? request : undefined });
|
|
31
|
+
response.statusCode = result.statusCode;
|
|
32
|
+
for (const [name, value] of Object.entries(result.headers)) {
|
|
33
|
+
if (value !== undefined) {
|
|
34
|
+
response.setHeader(name, value);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
response.end(result.rawPayload);
|
|
38
|
+
},
|
|
39
|
+
async close() { await app.close(); }
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=test-ui-run-routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-ui-run-routes.js","sourceRoot":"","sources":["../../src/lib/test-ui-run-routes.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,cAAc,MAAM,wBAAwB,CAAC;AAEpD,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAE1F,mGAAmG;AACnG,MAAM,UAAU,qBAAqB;IACnC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACzC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC;QACrB,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7D,OAAO,CAAC,UAAU,GAAG,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACxE,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;IAC3E,OAAO;QACL,OAAO,CAAC,QAAgB;YACtB,OAAO,QAAQ,KAAK,oBAAoB,IAAI,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC;gBACpF,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,+CAA+C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5G,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,OAAwB,EAAE,QAAwB;YAC7D,MAAM,KAAK,CAAC;YACZ,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAAC,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;gBAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO;gBACtG,OAAO,EAAE,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACpF,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YACxC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAAC,CAAC;YAC/D,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,CAAC,KAAK,KAAoB,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACpD,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thumbnail.d.ts","sourceRoot":"","sources":["../../src/lib/thumbnail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;
|
|
1
|
+
{"version":3,"file":"thumbnail.d.ts","sourceRoot":"","sources":["../../src/lib/thumbnail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA2BH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,8EAA8E;AAC9E,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAcvE;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,GAAG,MAAM,GACzB,OAAO,CAAC,MAAM,CAAC,CAUjB;AAwHD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,QAAoB,CAAC;AAI5D;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAQpE;AAyED;;;;;;;GAOG;AACH,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAkBf"}
|
package/dist/lib/thumbnail.js
CHANGED
|
@@ -29,6 +29,7 @@ import { createLogger } from "@nodetool-ai/config";
|
|
|
29
29
|
import { assetKeyCandidates, assetObjectKey, FileStorageAdapter } from "@nodetool-ai/storage";
|
|
30
30
|
import { getAssetAdapter } from "./storage.js";
|
|
31
31
|
import { assetFileNameCandidates, localAssetPath } from "./asset-paths.js";
|
|
32
|
+
import { withTaskSpan } from "@nodetool-ai/runtime/tracing";
|
|
32
33
|
const log = createLogger("nodetool.thumbnail");
|
|
33
34
|
const execFileAsync = promisify(execFile);
|
|
34
35
|
const THUMB_MAX_DIM = 512;
|
|
@@ -60,13 +61,15 @@ function resizeAndEncode(pipeline) {
|
|
|
60
61
|
* (e.g. a fully uniform image trimmed to nothing) falls back to a single
|
|
61
62
|
* untrimmed pass.
|
|
62
63
|
*/
|
|
63
|
-
export
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
export function generateImageThumb(input) {
|
|
65
|
+
return withTaskSpan("cpu", "image.thumbnail", {}, async () => {
|
|
66
|
+
try {
|
|
67
|
+
return await resizeAndEncode(sharp(input).rotate().trim({ threshold: 10 }));
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return await resizeAndEncode(sharp(input).rotate());
|
|
71
|
+
}
|
|
72
|
+
});
|
|
70
73
|
}
|
|
71
74
|
/**
|
|
72
75
|
* Run ffmpeg on the source. A file is read in place; bytes are written to a
|
|
@@ -84,9 +87,9 @@ async function runFfmpegThumb(source, prefix, buildArgs) {
|
|
|
84
87
|
inputPath = path.join(dir, "input");
|
|
85
88
|
await fs.writeFile(inputPath, source.bytes);
|
|
86
89
|
}
|
|
87
|
-
await execFileAsync("ffmpeg", buildArgs(inputPath, outputPath), {
|
|
90
|
+
await withTaskSpan("cpu", "subprocess.run", { "process.executable.name": "ffmpeg" }, () => execFileAsync("ffmpeg", buildArgs(inputPath, outputPath), {
|
|
88
91
|
maxBuffer: 16 * 1024 * 1024
|
|
89
|
-
});
|
|
92
|
+
}));
|
|
90
93
|
return await fs.readFile(outputPath);
|
|
91
94
|
}
|
|
92
95
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thumbnail.js","sourceRoot":"","sources":["../../src/lib/thumbnail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"thumbnail.js","sourceRoot":"","sources":["../../src/lib/thumbnail.ts"],"names":[],"mappings":"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"}
|
|
@@ -97,6 +97,21 @@ export declare const bundledTimeline: z.ZodObject<{
|
|
|
97
97
|
spill: z.ZodNumber;
|
|
98
98
|
}, z.core.$strip>], "type">>>;
|
|
99
99
|
instrument: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
100
|
+
type: z.ZodLiteral<"sampler">;
|
|
101
|
+
zones: z.ZodArray<z.ZodObject<{
|
|
102
|
+
id: z.ZodString;
|
|
103
|
+
name: z.ZodString;
|
|
104
|
+
assetId: z.ZodString;
|
|
105
|
+
rootNote: z.ZodNumber;
|
|
106
|
+
lowNote: z.ZodNumber;
|
|
107
|
+
highNote: z.ZodNumber;
|
|
108
|
+
gainDb: z.ZodNumber;
|
|
109
|
+
}, z.core.$strip>>;
|
|
110
|
+
oneShot: z.ZodBoolean;
|
|
111
|
+
attackMs: z.ZodNumber;
|
|
112
|
+
releaseMs: z.ZodNumber;
|
|
113
|
+
gainDb: z.ZodNumber;
|
|
114
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
100
115
|
type: z.ZodLiteral<"subtractive">;
|
|
101
116
|
waveform: z.ZodEnum<{
|
|
102
117
|
saw: "saw";
|
|
@@ -292,6 +307,7 @@ export declare const bundledTimeline: z.ZodObject<{
|
|
|
292
307
|
}>;
|
|
293
308
|
bindingKind: z.ZodOptional<z.ZodEnum<{
|
|
294
309
|
"image-to-image": "image-to-image";
|
|
310
|
+
"image-to-video": "image-to-video";
|
|
295
311
|
"text-to-audio": "text-to-audio";
|
|
296
312
|
"text-to-image": "text-to-image";
|
|
297
313
|
"text-to-music": "text-to-music";
|
|
@@ -323,6 +339,9 @@ export declare const bundledTimeline: z.ZodObject<{
|
|
|
323
339
|
waveformAssetId: z.ZodOptional<z.ZodString>;
|
|
324
340
|
storyboardBoardId: z.ZodOptional<z.ZodString>;
|
|
325
341
|
storyboardShotId: z.ZodOptional<z.ZodString>;
|
|
342
|
+
storyboardElementId: z.ZodOptional<z.ZodString>;
|
|
343
|
+
storyboardElementRole: z.ZodOptional<z.ZodString>;
|
|
344
|
+
storyboardMaterializationBaseline: z.ZodOptional<z.ZodString>;
|
|
326
345
|
scriptId: z.ZodOptional<z.ZodString>;
|
|
327
346
|
scriptLineId: z.ZodOptional<z.ZodString>;
|
|
328
347
|
beatId: z.ZodOptional<z.ZodString>;
|
|
@@ -602,25 +621,84 @@ export declare const bundledTimeline: z.ZodObject<{
|
|
|
602
621
|
}, z.core.$strip>;
|
|
603
622
|
}, z.core.$strip>>;
|
|
604
623
|
layout: z.ZodOptional<z.ZodObject<{
|
|
605
|
-
|
|
606
|
-
|
|
624
|
+
display: z.ZodLiteral<"flex">;
|
|
625
|
+
flexDirection: z.ZodOptional<z.ZodEnum<{
|
|
626
|
+
column: "column";
|
|
607
627
|
row: "row";
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
children: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
611
|
-
gapPx: z.ZodOptional<z.ZodNumber>;
|
|
612
|
-
targetClipId: z.ZodOptional<z.ZodString>;
|
|
613
|
-
side: z.ZodOptional<z.ZodEnum<{
|
|
614
|
-
above: "above";
|
|
615
|
-
below: "below";
|
|
628
|
+
}>>;
|
|
629
|
+
justifyContent: z.ZodOptional<z.ZodEnum<{
|
|
616
630
|
center: "center";
|
|
617
|
-
|
|
618
|
-
|
|
631
|
+
"flex-end": "flex-end";
|
|
632
|
+
"flex-start": "flex-start";
|
|
633
|
+
"space-around": "space-around";
|
|
634
|
+
"space-between": "space-between";
|
|
635
|
+
"space-evenly": "space-evenly";
|
|
619
636
|
}>>;
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
637
|
+
alignItems: z.ZodOptional<z.ZodEnum<{
|
|
638
|
+
baseline: "baseline";
|
|
639
|
+
center: "center";
|
|
640
|
+
"flex-end": "flex-end";
|
|
641
|
+
"flex-start": "flex-start";
|
|
642
|
+
stretch: "stretch";
|
|
643
|
+
}>>;
|
|
644
|
+
alignContent: z.ZodOptional<z.ZodEnum<{
|
|
645
|
+
center: "center";
|
|
646
|
+
"flex-end": "flex-end";
|
|
647
|
+
"flex-start": "flex-start";
|
|
648
|
+
"space-around": "space-around";
|
|
649
|
+
"space-between": "space-between";
|
|
650
|
+
"space-evenly": "space-evenly";
|
|
651
|
+
}>>;
|
|
652
|
+
flexWrap: z.ZodOptional<z.ZodEnum<{
|
|
653
|
+
nowrap: "nowrap";
|
|
654
|
+
wrap: "wrap";
|
|
655
|
+
"wrap-reverse": "wrap-reverse";
|
|
656
|
+
}>>;
|
|
657
|
+
gap: z.ZodOptional<z.ZodNumber>;
|
|
658
|
+
rowGap: z.ZodOptional<z.ZodNumber>;
|
|
659
|
+
columnGap: z.ZodOptional<z.ZodNumber>;
|
|
660
|
+
padding: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
|
|
661
|
+
top: z.ZodOptional<z.ZodNumber>;
|
|
662
|
+
right: z.ZodOptional<z.ZodNumber>;
|
|
663
|
+
bottom: z.ZodOptional<z.ZodNumber>;
|
|
664
|
+
left: z.ZodOptional<z.ZodNumber>;
|
|
665
|
+
}, z.core.$strip>]>>;
|
|
666
|
+
width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
667
|
+
height: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
668
|
+
minWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
669
|
+
maxWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
670
|
+
minHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
671
|
+
maxHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
672
|
+
}, z.core.$strip>>;
|
|
673
|
+
flexItem: z.ZodOptional<z.ZodObject<{
|
|
674
|
+
grow: z.ZodOptional<z.ZodNumber>;
|
|
675
|
+
shrink: z.ZodOptional<z.ZodNumber>;
|
|
676
|
+
basis: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
677
|
+
alignSelf: z.ZodOptional<z.ZodEnum<{
|
|
678
|
+
baseline: "baseline";
|
|
679
|
+
center: "center";
|
|
680
|
+
"flex-end": "flex-end";
|
|
681
|
+
"flex-start": "flex-start";
|
|
682
|
+
stretch: "stretch";
|
|
683
|
+
}>>;
|
|
684
|
+
width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
685
|
+
height: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
686
|
+
margin: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
|
|
687
|
+
top: z.ZodOptional<z.ZodNumber>;
|
|
688
|
+
right: z.ZodOptional<z.ZodNumber>;
|
|
689
|
+
bottom: z.ZodOptional<z.ZodNumber>;
|
|
690
|
+
left: z.ZodOptional<z.ZodNumber>;
|
|
691
|
+
}, z.core.$strip>]>>;
|
|
692
|
+
position: z.ZodOptional<z.ZodEnum<{
|
|
693
|
+
absolute: "absolute";
|
|
694
|
+
relative: "relative";
|
|
695
|
+
}>>;
|
|
696
|
+
inset: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
|
|
697
|
+
top: z.ZodOptional<z.ZodNumber>;
|
|
698
|
+
right: z.ZodOptional<z.ZodNumber>;
|
|
699
|
+
bottom: z.ZodOptional<z.ZodNumber>;
|
|
700
|
+
left: z.ZodOptional<z.ZodNumber>;
|
|
701
|
+
}, z.core.$strip>]>>;
|
|
624
702
|
}, z.core.$strip>>;
|
|
625
703
|
repeater: z.ZodOptional<z.ZodObject<{
|
|
626
704
|
count: z.ZodNumber;
|
|
@@ -934,6 +1012,7 @@ export declare const bundledTimeline: z.ZodObject<{
|
|
|
934
1012
|
letterSpacingPx: z.ZodOptional<z.ZodNumber>;
|
|
935
1013
|
lineHeight: z.ZodOptional<z.ZodNumber>;
|
|
936
1014
|
verticalAlign: z.ZodOptional<z.ZodString>;
|
|
1015
|
+
strikethrough: z.ZodOptional<z.ZodBoolean>;
|
|
937
1016
|
stroke: z.ZodOptional<z.ZodObject<{
|
|
938
1017
|
color: z.ZodString;
|
|
939
1018
|
widthPx: z.ZodNumber;
|
|
@@ -1212,6 +1291,7 @@ export declare const bundledTimeline: z.ZodObject<{
|
|
|
1212
1291
|
seed: z.ZodOptional<z.ZodNumber>;
|
|
1213
1292
|
}, z.core.$strip>]>>>;
|
|
1214
1293
|
parentId: z.ZodOptional<z.ZodString>;
|
|
1294
|
+
sourceScene: z.ZodOptional<z.ZodString>;
|
|
1215
1295
|
mask: z.ZodOptional<z.ZodObject<{
|
|
1216
1296
|
kind: z.ZodString;
|
|
1217
1297
|
x: z.ZodOptional<z.ZodNumber>;
|
|
@@ -1321,6 +1401,14 @@ export declare const bundledTimeline: z.ZodObject<{
|
|
|
1321
1401
|
color: z.ZodOptional<z.ZodString>;
|
|
1322
1402
|
note: z.ZodOptional<z.ZodString>;
|
|
1323
1403
|
}, z.core.$strip>>;
|
|
1404
|
+
storyboardMaterializations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1405
|
+
boardId: z.ZodString;
|
|
1406
|
+
elementKeys: z.ZodArray<z.ZodString>;
|
|
1407
|
+
stage: z.ZodOptional<z.ZodEnum<{
|
|
1408
|
+
finished: "finished";
|
|
1409
|
+
layout: "layout";
|
|
1410
|
+
}>>;
|
|
1411
|
+
}, z.core.$strip>>>;
|
|
1324
1412
|
transcript: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1325
1413
|
id: z.ZodString;
|
|
1326
1414
|
text: z.ZodString;
|
|
@@ -1469,6 +1557,33 @@ export declare const bundledTimeline: z.ZodObject<{
|
|
|
1469
1557
|
name: z.ZodOptional<z.ZodString>;
|
|
1470
1558
|
revision: z.ZodOptional<z.ZodString>;
|
|
1471
1559
|
}, z.core.$loose>>>;
|
|
1560
|
+
media_strategy: z.ZodOptional<z.ZodEnum<{
|
|
1561
|
+
generated_video: "generated_video";
|
|
1562
|
+
hybrid: "hybrid";
|
|
1563
|
+
still_motion_graphics: "still_motion_graphics";
|
|
1564
|
+
}>>;
|
|
1565
|
+
protected_inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1566
|
+
id: z.ZodString;
|
|
1567
|
+
kind: z.ZodEnum<{
|
|
1568
|
+
brand_color: "brand_color";
|
|
1569
|
+
exact_text: "exact_text";
|
|
1570
|
+
logo: "logo";
|
|
1571
|
+
product: "product";
|
|
1572
|
+
source_asset: "source_asset";
|
|
1573
|
+
}>;
|
|
1574
|
+
asset_id: z.ZodOptional<z.ZodString>;
|
|
1575
|
+
entity_id: z.ZodOptional<z.ZodString>;
|
|
1576
|
+
value: z.ZodOptional<z.ZodString>;
|
|
1577
|
+
allowed_transformations: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
1578
|
+
composite: "composite";
|
|
1579
|
+
crop: "crop";
|
|
1580
|
+
mask: "mask";
|
|
1581
|
+
opacity: "opacity";
|
|
1582
|
+
position: "position";
|
|
1583
|
+
rotate: "rotate";
|
|
1584
|
+
scale: "scale";
|
|
1585
|
+
}>>>;
|
|
1586
|
+
}, z.core.$strip>>>;
|
|
1472
1587
|
duration_ms: z.ZodOptional<z.ZodNumber>;
|
|
1473
1588
|
speech_duration_ms: z.ZodOptional<z.ZodNumber>;
|
|
1474
1589
|
local_direction: z.ZodOptional<z.ZodString>;
|
|
@@ -1482,6 +1597,15 @@ export declare const bundledTimeline: z.ZodObject<{
|
|
|
1482
1597
|
}, z.core.$strip>>;
|
|
1483
1598
|
}, z.core.$loose>>;
|
|
1484
1599
|
templateId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1600
|
+
source: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
1601
|
+
lang: z.ZodLiteral<"js">;
|
|
1602
|
+
code: z.ZodString;
|
|
1603
|
+
bakedAt: z.ZodString;
|
|
1604
|
+
scenes: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1605
|
+
groupId: z.ZodString;
|
|
1606
|
+
hash: z.ZodString;
|
|
1607
|
+
}, z.core.$strip>>;
|
|
1608
|
+
}, z.core.$strip>>>;
|
|
1485
1609
|
mediaTracks: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1486
1610
|
id: z.ZodString;
|
|
1487
1611
|
clipId: z.ZodString;
|
|
@@ -1573,6 +1697,14 @@ export interface TimelineBundleClip {
|
|
|
1573
1697
|
scriptId?: string;
|
|
1574
1698
|
}
|
|
1575
1699
|
export interface TimelineBundleDocument {
|
|
1700
|
+
tracks?: Array<{
|
|
1701
|
+
instrument?: {
|
|
1702
|
+
type: string;
|
|
1703
|
+
zones?: Array<{
|
|
1704
|
+
assetId: string;
|
|
1705
|
+
}>;
|
|
1706
|
+
};
|
|
1707
|
+
}>;
|
|
1576
1708
|
clips: TimelineBundleClip[];
|
|
1577
1709
|
workflowId?: string;
|
|
1578
1710
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline-bundle.d.ts","sourceRoot":"","sources":["../../src/lib/timeline-bundle.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAKL,KAAK,YAAY,EACjB,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AACjE,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAKzC,wEAAwE;AACxE,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"timeline-bundle.d.ts","sourceRoot":"","sources":["../../src/lib/timeline-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,6 +64,12 @@ export function collectTimelineAssetIds(doc) {
|
|
|
64
64
|
pushUnique(ids, seen, version.assetId);
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
+
for (const track of doc.tracks ?? []) {
|
|
68
|
+
if (track.instrument?.type === "sampler") {
|
|
69
|
+
for (const zone of track.instrument.zones ?? [])
|
|
70
|
+
pushUnique(ids, seen, zone.assetId);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
67
73
|
return ids;
|
|
68
74
|
}
|
|
69
75
|
/** Font families the document names, so a reader knows what it needs installed. */
|
|
@@ -123,6 +129,12 @@ export function rewriteTimelineAssetIds(doc, map) {
|
|
|
123
129
|
version.assetId = rewrite(version.assetId);
|
|
124
130
|
}
|
|
125
131
|
}
|
|
132
|
+
for (const track of clone.tracks ?? []) {
|
|
133
|
+
if (track.instrument?.type === "sampler") {
|
|
134
|
+
for (const zone of track.instrument.zones ?? [])
|
|
135
|
+
zone.assetId = map.get(zone.assetId) ?? zone.assetId;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
126
138
|
return clone;
|
|
127
139
|
}
|
|
128
140
|
/**
|