@codemation/host 0.1.0 → 0.1.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/CHANGELOG.md +24 -0
- package/dist/{AppConfigFactory-Ciz9YKWx.js → AppConfigFactory-ByT1D8dM.js} +253 -15
- package/dist/{AppConfigFactory-Ciz9YKWx.js.map → AppConfigFactory-ByT1D8dM.js.map} +1 -1
- package/dist/{AppConfigFactory-CiBPHleh.d.ts → AppConfigFactory-_fqSok1J.d.ts} +6565 -177
- package/dist/{AppContainerFactory-DH88oxpg.js → AppContainerFactory-BRU02PTm.js} +838 -145
- package/dist/AppContainerFactory-BRU02PTm.js.map +1 -0
- package/dist/{CodemationConfig-DfK1KLvO.d.ts → CodemationConfig-CNfytKR6.d.ts} +2 -2
- package/dist/{CodemationConfigNormalizer-BKgIOeLm.d.ts → CodemationConfigNormalizer-BuKWVNEq.d.ts} +2 -2
- package/dist/{CodemationConsumerConfigLoader-bdhJsBKt.d.ts → CodemationConsumerConfigLoader-Mv4cywWu.d.ts} +2 -2
- package/dist/{CodemationPluginListMerger-BFZeO0WG.d.ts → CodemationPluginListMerger-BD5mR6gK.d.ts} +11 -5
- package/dist/{CredentialServices-aKIwHEhf.d.ts → CredentialServices-BQsEtctT.d.ts} +8 -7
- package/dist/{CredentialServices-DNb3CZwW.js → CredentialServices-xVxVA9Tq.js} +60 -114
- package/dist/CredentialServices-xVxVA9Tq.js.map +1 -0
- package/dist/{PublicFrontendBootstrapFactory-6ahaU0XM.d.ts → PublicFrontendBootstrapFactory-kTyAJdHI.d.ts} +2 -2
- package/dist/consumer.d.ts +4 -4
- package/dist/credentials.d.ts +3 -3
- package/dist/credentials.js +1 -1
- package/dist/devServerSidecar.d.ts +1 -1
- package/dist/{index-BYbzmUwS.d.ts → index-CX752QE9.d.ts} +68 -4
- package/dist/index.d.ts +10 -10
- package/dist/index.js +5 -5
- package/dist/nextServer.d.ts +20 -15
- package/dist/nextServer.js +35 -58
- package/dist/nextServer.js.map +1 -1
- package/dist/{persistenceServer-DL8yBGDU.d.ts → persistenceServer-CLY4qtMo.d.ts} +2 -2
- package/dist/{persistenceServer-CuAqL_fF.js → persistenceServer-DMvIOGW8.js} +2 -2
- package/dist/{persistenceServer-CuAqL_fF.js.map → persistenceServer-DMvIOGW8.js.map} +1 -1
- package/dist/persistenceServer.d.ts +5 -5
- package/dist/persistenceServer.js +2 -2
- package/dist/{server-EbxQft_X.js → server-ChTCEc6R.js} +4 -4
- package/dist/{server-EbxQft_X.js.map → server-ChTCEc6R.js.map} +1 -1
- package/dist/{server-BceIfIJf.d.ts → server-DwpcwzFb.d.ts} +6 -5
- package/dist/server.d.ts +8 -8
- package/dist/server.js +5 -5
- package/package.json +5 -5
- package/prisma/migrations/20260407140000_run_normalized_persistence/migration.sql +327 -0
- package/prisma/migrations/20260407193000_rename_run_projection_to_run_slot_projection/migration.sql +10 -0
- package/prisma/migrations.sqlite/20260407140000_run_normalized_persistence/migration.sql +326 -0
- package/prisma/migrations.sqlite/20260407193000_rename_run_projection_to_run_slot_projection/migration.sql +38 -0
- package/prisma/schema.postgresql.prisma +100 -1
- package/prisma/schema.sqlite.prisma +101 -1
- package/scripts/integration-database-global-setup.mjs +0 -3
- package/src/application/mapping/WorkflowDefinitionMapper.ts +95 -56
- package/src/application/mapping/WorkflowPolicyUiPresentationFactory.ts +1 -1
- package/src/application/queries/GetWorkflowRunDetailQuery.ts +8 -0
- package/src/application/queries/GetWorkflowRunDetailQueryHandler.ts +24 -0
- package/src/application/queries/WorkflowQueryHandlers.ts +1 -0
- package/src/application/runs/WorkflowRunRetentionPruneScheduler.ts +52 -27
- package/src/domain/credentials/WorkflowCredentialNodeResolver.ts +113 -158
- package/src/domain/runs/WorkflowRunRepository.ts +7 -1
- package/src/infrastructure/persistence/InMemoryWorkflowRunRepository.ts +123 -1
- package/src/infrastructure/persistence/PrismaMigrationDeployer.ts +226 -6
- package/src/infrastructure/persistence/PrismaWorkflowRunRepository.ts +796 -109
- package/src/infrastructure/persistence/generated/prisma-postgresql-client/edge.js +85 -5
- package/src/infrastructure/persistence/generated/prisma-postgresql-client/index-browser.js +81 -1
- package/src/infrastructure/persistence/generated/prisma-postgresql-client/index.d.ts +7107 -237
- package/src/infrastructure/persistence/generated/prisma-postgresql-client/index.js +85 -5
- package/src/infrastructure/persistence/generated/prisma-postgresql-client/package.json +1 -1
- package/src/infrastructure/persistence/generated/prisma-postgresql-client/schema.prisma +101 -1
- package/src/infrastructure/persistence/generated/prisma-sqlite-client/edge.js +85 -5
- package/src/infrastructure/persistence/generated/prisma-sqlite-client/index-browser.js +81 -1
- package/src/infrastructure/persistence/generated/prisma-sqlite-client/index.d.ts +7104 -242
- package/src/infrastructure/persistence/generated/prisma-sqlite-client/index.js +85 -5
- package/src/infrastructure/persistence/generated/prisma-sqlite-client/package.json +1 -1
- package/src/infrastructure/persistence/generated/prisma-sqlite-client/schema.prisma +101 -1
- package/src/presentation/http/ApiPaths.ts +4 -0
- package/src/presentation/http/hono/registrars/RunHonoApiRouteRegistrar.ts +1 -0
- package/src/presentation/http/routeHandlers/RunHttpRouteHandler.ts +13 -0
- package/dist/AppContainerFactory-DH88oxpg.js.map +0 -1
- package/dist/CredentialServices-DNb3CZwW.js.map +0 -1
|
@@ -2,12 +2,12 @@ import { i as __toESM, r as __require, t as __commonJS } from "./chunk-7V6ThxGB.
|
|
|
2
2
|
import { o as LogLevelPolicyFactory, s as logLevelPolicyFactory, t as ServerLoggerFactory } from "./ServerLoggerFactory-BltIIDfQ.js";
|
|
3
3
|
import { n as __decorateMetadata, t as __decorateParam } from "./decorateParam-DrsXNPuw.js";
|
|
4
4
|
import { t as __decorate } from "./decorate-B0PP651O.js";
|
|
5
|
-
import { a as CredentialInstanceService, c as CredentialFieldEnvOverlayService, d as ApplicationRequestError, f as CredentialTypeRegistryImpl, i as CredentialBindingService, l as WorkflowCredentialNodeResolver, m as OpenAiApiKeyCredentialHealthTester, n as CredentialSessionServiceImpl, o as CredentialMaterialResolver, p as OpenAiApiKeyCredentialTypeFactory, r as CredentialRuntimeMaterialService, s as CredentialSecretCipher, t as CredentialTestService, u as ApplicationTokens } from "./CredentialServices-
|
|
6
|
-
import { i as require_client$2, r as PrismaMigrationDeployer } from "./AppConfigFactory-
|
|
5
|
+
import { a as CredentialInstanceService, c as CredentialFieldEnvOverlayService, d as ApplicationRequestError, f as CredentialTypeRegistryImpl, i as CredentialBindingService, l as WorkflowCredentialNodeResolver, m as OpenAiApiKeyCredentialHealthTester, n as CredentialSessionServiceImpl, o as CredentialMaterialResolver, p as OpenAiApiKeyCredentialTypeFactory, r as CredentialRuntimeMaterialService, s as CredentialSecretCipher, t as CredentialTestService, u as ApplicationTokens } from "./CredentialServices-xVxVA9Tq.js";
|
|
6
|
+
import { i as require_client$2, r as PrismaMigrationDeployer } from "./AppConfigFactory-ByT1D8dM.js";
|
|
7
7
|
import { mkdir, rm, stat } from "node:fs/promises";
|
|
8
8
|
import path from "node:path";
|
|
9
9
|
import { pathToFileURL } from "node:url";
|
|
10
|
-
import { AgentConfigInspector,
|
|
10
|
+
import { AgentConfigInspector, AgentConnectionNodeCollector, CoreTokens, DefaultExecutionBinaryService, EventPublishingWorkflowExecutionRepository, InMemoryLiveWorkflowRepository, InMemoryRunEventBus, ItemsInputNormalizer, RunFinishedAtFactory, SystemClock, container, getPersistedRuntimeTypeMetadata, inject, injectAll, injectable, instanceCachingFactory, registry } from "@codemation/core";
|
|
11
11
|
import { createHash, randomBytes } from "node:crypto";
|
|
12
12
|
import "reflect-metadata";
|
|
13
13
|
import { ConfigDrivenOffloadPolicy, DefaultDrivingScheduler, DefaultExecutionContextFactory, Engine, EngineRuntimeRegistrar, InMemoryBinaryStorage, InMemoryRunDataFactory, InlineDrivingScheduler, MissingRuntimeTriggerToken, PersistedWorkflowTokenRegistry, RunIntentService, RunSummaryMapper, WorkflowRepositoryWebhookTriggerMatcher } from "@codemation/core/bootstrap";
|
|
@@ -1816,6 +1816,32 @@ GetRunStateQueryHandler = __decorate([
|
|
|
1816
1816
|
__decorateMetadata("design:paramtypes", [Object])
|
|
1817
1817
|
], GetRunStateQueryHandler);
|
|
1818
1818
|
|
|
1819
|
+
//#endregion
|
|
1820
|
+
//#region src/application/queries/GetWorkflowRunDetailQuery.ts
|
|
1821
|
+
var GetWorkflowRunDetailQuery = class extends Query {
|
|
1822
|
+
constructor(runId) {
|
|
1823
|
+
super();
|
|
1824
|
+
this.runId = runId;
|
|
1825
|
+
}
|
|
1826
|
+
};
|
|
1827
|
+
|
|
1828
|
+
//#endregion
|
|
1829
|
+
//#region src/application/queries/GetWorkflowRunDetailQueryHandler.ts
|
|
1830
|
+
let GetWorkflowRunDetailQueryHandler = class GetWorkflowRunDetailQueryHandler$1 extends QueryHandler {
|
|
1831
|
+
constructor(workflowRunRepository) {
|
|
1832
|
+
super();
|
|
1833
|
+
this.workflowRunRepository = workflowRunRepository;
|
|
1834
|
+
}
|
|
1835
|
+
async execute(query) {
|
|
1836
|
+
return await this.workflowRunRepository.loadRunDetail?.(query.runId);
|
|
1837
|
+
}
|
|
1838
|
+
};
|
|
1839
|
+
GetWorkflowRunDetailQueryHandler = __decorate([
|
|
1840
|
+
HandlesQuery.for(GetWorkflowRunDetailQuery),
|
|
1841
|
+
__decorateParam(0, inject(ApplicationTokens.WorkflowRunRepository)),
|
|
1842
|
+
__decorateMetadata("design:paramtypes", [Object])
|
|
1843
|
+
], GetWorkflowRunDetailQueryHandler);
|
|
1844
|
+
|
|
1819
1845
|
//#endregion
|
|
1820
1846
|
//#region src/application/queries/GetWorkflowDebuggerOverlayQuery.ts
|
|
1821
1847
|
var GetWorkflowDebuggerOverlayQuery = class extends Query {
|
|
@@ -2493,16 +2519,19 @@ let WorkflowDefinitionMapper = class WorkflowDefinitionMapper$1 {
|
|
|
2493
2519
|
});
|
|
2494
2520
|
return map;
|
|
2495
2521
|
}
|
|
2496
|
-
agentHasConnectionMetadata(workflow, agentNodeId) {
|
|
2497
|
-
return (workflow.connections ?? []).some((c) => c.parentNodeId === agentNodeId);
|
|
2498
|
-
}
|
|
2499
2522
|
toNodes(workflow) {
|
|
2500
2523
|
const connectionChildMeta = this.buildConnectionChildMeta(workflow);
|
|
2524
|
+
const materializedConnectionNodeIds = new Set(connectionChildMeta.keys());
|
|
2501
2525
|
const nodes = [];
|
|
2502
2526
|
for (const node of workflow.nodes) {
|
|
2503
2527
|
const conn = connectionChildMeta.get(node.id);
|
|
2504
2528
|
if (conn) {
|
|
2505
|
-
const
|
|
2529
|
+
const parentNode = workflow.nodes.find((n) => n.id === conn.parentNodeId);
|
|
2530
|
+
let role = conn.connectionName === "llm" ? "languageModel" : "tool";
|
|
2531
|
+
if (parentNode && AgentConfigInspector.isAgentNodeConfig(parentNode.config)) {
|
|
2532
|
+
const descriptor = AgentConnectionNodeCollector.collect(conn.parentNodeId, parentNode.config).find((d) => d.nodeId === node.id);
|
|
2533
|
+
if (descriptor) role = descriptor.role;
|
|
2534
|
+
}
|
|
2506
2535
|
nodes.push({
|
|
2507
2536
|
id: node.id,
|
|
2508
2537
|
kind: node.kind,
|
|
@@ -2526,76 +2555,75 @@ let WorkflowDefinitionMapper = class WorkflowDefinitionMapper$1 {
|
|
|
2526
2555
|
retryPolicySummary: this.policyUi.nodeRetrySummary(node.config),
|
|
2527
2556
|
hasNodeErrorHandler: this.policyUi.nodeHasErrorHandler(node.config)
|
|
2528
2557
|
});
|
|
2529
|
-
if (AgentConfigInspector.isAgentNodeConfig(node.config)
|
|
2530
|
-
nodes.push(this.createLanguageModelNode(node, node.config.chatModel));
|
|
2531
|
-
for (const toolConfig of node.config.tools ?? []) nodes.push(this.createToolNode(node, toolConfig));
|
|
2532
|
-
}
|
|
2558
|
+
if (AgentConfigInspector.isAgentNodeConfig(node.config)) this.appendVirtualConnectionNodes(node.id, node.config, materializedConnectionNodeIds, nodes);
|
|
2533
2559
|
}
|
|
2534
2560
|
return nodes;
|
|
2535
2561
|
}
|
|
2536
2562
|
toEdges(workflow) {
|
|
2563
|
+
const connectionChildMeta = this.buildConnectionChildMeta(workflow);
|
|
2564
|
+
const materializedConnectionNodeIds = new Set(connectionChildMeta.keys());
|
|
2537
2565
|
const edges = [...workflow.edges];
|
|
2566
|
+
const edgeKeys = new Set(edges.map((edge) => this.edgeKey(edge.from.nodeId, edge.to.nodeId, edge.to.input)));
|
|
2567
|
+
this.appendMaterializedConnectionEdges(workflow, edgeKeys, edges);
|
|
2538
2568
|
for (const node of workflow.nodes) {
|
|
2539
2569
|
if (!AgentConfigInspector.isAgentNodeConfig(node.config)) continue;
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
-
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
to: {
|
|
2549
|
-
nodeId: childId,
|
|
2550
|
-
input: "in"
|
|
2551
|
-
}
|
|
2552
|
-
});
|
|
2553
|
-
}
|
|
2554
|
-
continue;
|
|
2555
|
-
}
|
|
2570
|
+
this.appendVirtualConnectionEdges(node.id, node.config, materializedConnectionNodeIds, edgeKeys, edges);
|
|
2571
|
+
}
|
|
2572
|
+
return edges;
|
|
2573
|
+
}
|
|
2574
|
+
appendMaterializedConnectionEdges(workflow, edgeKeys, edges) {
|
|
2575
|
+
for (const connection of workflow.connections ?? []) for (const childNodeId of connection.childNodeIds) {
|
|
2576
|
+
const key = this.edgeKey(connection.parentNodeId, childNodeId, "in");
|
|
2577
|
+
if (edgeKeys.has(key)) continue;
|
|
2556
2578
|
edges.push({
|
|
2557
2579
|
from: {
|
|
2558
|
-
nodeId:
|
|
2580
|
+
nodeId: connection.parentNodeId,
|
|
2559
2581
|
output: "main"
|
|
2560
2582
|
},
|
|
2561
2583
|
to: {
|
|
2562
|
-
nodeId:
|
|
2584
|
+
nodeId: childNodeId,
|
|
2563
2585
|
input: "in"
|
|
2564
2586
|
}
|
|
2565
2587
|
});
|
|
2566
|
-
|
|
2588
|
+
edgeKeys.add(key);
|
|
2589
|
+
}
|
|
2590
|
+
}
|
|
2591
|
+
appendVirtualConnectionNodes(rootAgentNodeId, agentConfig, materializedConnectionNodeIds, nodes) {
|
|
2592
|
+
for (const connectionNode of AgentConnectionNodeCollector.collect(rootAgentNodeId, agentConfig)) {
|
|
2593
|
+
if (materializedConnectionNodeIds.has(connectionNode.nodeId)) continue;
|
|
2594
|
+
nodes.push(this.createConnectionNode(connectionNode));
|
|
2595
|
+
}
|
|
2596
|
+
}
|
|
2597
|
+
appendVirtualConnectionEdges(rootAgentNodeId, agentConfig, materializedConnectionNodeIds, edgeKeys, edges) {
|
|
2598
|
+
for (const connectionNode of AgentConnectionNodeCollector.collect(rootAgentNodeId, agentConfig)) {
|
|
2599
|
+
if (materializedConnectionNodeIds.has(connectionNode.nodeId)) continue;
|
|
2600
|
+
const key = this.edgeKey(connectionNode.parentNodeId, connectionNode.nodeId, "in");
|
|
2601
|
+
if (edgeKeys.has(key)) continue;
|
|
2602
|
+
edges.push({
|
|
2567
2603
|
from: {
|
|
2568
|
-
nodeId:
|
|
2604
|
+
nodeId: connectionNode.parentNodeId,
|
|
2569
2605
|
output: "main"
|
|
2570
2606
|
},
|
|
2571
2607
|
to: {
|
|
2572
|
-
nodeId:
|
|
2608
|
+
nodeId: connectionNode.nodeId,
|
|
2573
2609
|
input: "in"
|
|
2574
2610
|
}
|
|
2575
2611
|
});
|
|
2612
|
+
edgeKeys.add(key);
|
|
2576
2613
|
}
|
|
2577
|
-
return edges;
|
|
2578
2614
|
}
|
|
2579
|
-
|
|
2580
|
-
return {
|
|
2581
|
-
id: ConnectionNodeIdFactory.languageModelConnectionNodeId(node.id),
|
|
2582
|
-
kind: "node",
|
|
2583
|
-
name: chatModel.presentation?.label ?? chatModel.name,
|
|
2584
|
-
type: chatModel.name,
|
|
2585
|
-
role: "languageModel",
|
|
2586
|
-
icon: chatModel.presentation?.icon,
|
|
2587
|
-
parentNodeId: node.id
|
|
2588
|
-
};
|
|
2615
|
+
edgeKey(fromNodeId, toNodeId, toInput) {
|
|
2616
|
+
return `${fromNodeId}\0${toNodeId}\0${toInput}`;
|
|
2589
2617
|
}
|
|
2590
|
-
|
|
2618
|
+
createConnectionNode(connectionNode) {
|
|
2591
2619
|
return {
|
|
2592
|
-
id:
|
|
2620
|
+
id: connectionNode.nodeId,
|
|
2593
2621
|
kind: "node",
|
|
2594
|
-
name:
|
|
2595
|
-
type:
|
|
2596
|
-
role:
|
|
2597
|
-
icon:
|
|
2598
|
-
parentNodeId:
|
|
2622
|
+
name: connectionNode.name,
|
|
2623
|
+
type: connectionNode.typeName,
|
|
2624
|
+
role: connectionNode.role,
|
|
2625
|
+
icon: connectionNode.icon,
|
|
2626
|
+
parentNodeId: connectionNode.parentNodeId
|
|
2599
2627
|
};
|
|
2600
2628
|
}
|
|
2601
2629
|
nodeTypeName(node) {
|
|
@@ -2739,6 +2767,9 @@ var ApiPaths = class {
|
|
|
2739
2767
|
static runState(runId) {
|
|
2740
2768
|
return `${this.runsBasePath}/${encodeURIComponent(runId)}`;
|
|
2741
2769
|
}
|
|
2770
|
+
static runDetail(runId) {
|
|
2771
|
+
return `${this.runState(runId)}/detail`;
|
|
2772
|
+
}
|
|
2742
2773
|
static runWorkflowSnapshot(runId) {
|
|
2743
2774
|
return `${this.runState(runId)}/workflow-snapshot`;
|
|
2744
2775
|
}
|
|
@@ -4203,6 +4234,15 @@ let RunHttpRouteHandler = class RunHttpRouteHandler$1 {
|
|
|
4203
4234
|
return ServerHttpErrorResponseFactory.fromUnknown(error);
|
|
4204
4235
|
}
|
|
4205
4236
|
}
|
|
4237
|
+
async getRunDetail(_$1, params) {
|
|
4238
|
+
try {
|
|
4239
|
+
const detail = await this.queryBus.execute(new GetWorkflowRunDetailQuery(params.runId));
|
|
4240
|
+
if (!detail) return Response.json({ error: "Unknown runId" }, { status: 404 });
|
|
4241
|
+
return Response.json(detail);
|
|
4242
|
+
} catch (error) {
|
|
4243
|
+
return ServerHttpErrorResponseFactory.fromUnknown(error);
|
|
4244
|
+
}
|
|
4245
|
+
}
|
|
4206
4246
|
async postRuns(request, _$1) {
|
|
4207
4247
|
try {
|
|
4208
4248
|
const body = await HttpRequestJsonBodyReader.readJsonBody(request);
|
|
@@ -4252,6 +4292,7 @@ let RunHonoApiRouteRegistrar = class RunHonoApiRouteRegistrar$1 {
|
|
|
4252
4292
|
}
|
|
4253
4293
|
register(app) {
|
|
4254
4294
|
app.get("/runs/:runId", (c) => this.handler.getRun(c.req.raw, { runId: c.req.param("runId") }));
|
|
4295
|
+
app.get("/runs/:runId/detail", (c) => this.handler.getRunDetail(c.req.raw, { runId: c.req.param("runId") }));
|
|
4255
4296
|
app.post("/runs", (c) => this.handler.postRuns(c.req.raw, {}));
|
|
4256
4297
|
app.patch("/runs/:runId/workflow-snapshot", (c) => this.handler.patchRunWorkflowSnapshot(c.req.raw, { runId: c.req.param("runId") }));
|
|
4257
4298
|
app.patch("/runs/:runId/nodes/:nodeId/pin", (c) => this.handler.patchRunNodePin(c.req.raw, {
|
|
@@ -5437,6 +5478,7 @@ let InMemoryWorkflowRunRepository = class InMemoryWorkflowRunRepository$1 {
|
|
|
5437
5478
|
runId: args.runId,
|
|
5438
5479
|
workflowId: args.workflowId,
|
|
5439
5480
|
startedAt: args.startedAt,
|
|
5481
|
+
revision: 0,
|
|
5440
5482
|
parent: args.parent,
|
|
5441
5483
|
executionOptions: args.executionOptions,
|
|
5442
5484
|
control: args.control,
|
|
@@ -5454,8 +5496,67 @@ let InMemoryWorkflowRunRepository = class InMemoryWorkflowRunRepository$1 {
|
|
|
5454
5496
|
async load(runId) {
|
|
5455
5497
|
return this.runs.get(decodeURIComponent(runId));
|
|
5456
5498
|
}
|
|
5499
|
+
async loadSchedulingState(runId) {
|
|
5500
|
+
const state = await this.load(runId);
|
|
5501
|
+
if (!state) return;
|
|
5502
|
+
return {
|
|
5503
|
+
pending: state.pending ? { ...state.pending } : void 0,
|
|
5504
|
+
queue: state.queue.map((entry) => ({ ...entry }))
|
|
5505
|
+
};
|
|
5506
|
+
}
|
|
5457
5507
|
async save(state) {
|
|
5458
|
-
this.runs.set(state.runId,
|
|
5508
|
+
this.runs.set(state.runId, {
|
|
5509
|
+
...state,
|
|
5510
|
+
revision: (state.revision ?? 0) + 1
|
|
5511
|
+
});
|
|
5512
|
+
}
|
|
5513
|
+
async loadRunDetail(runId) {
|
|
5514
|
+
const state = await this.load(runId);
|
|
5515
|
+
if (!state) return;
|
|
5516
|
+
const slotStates = Object.entries(state.nodeSnapshotsByNodeId).map(([slotNodeId, snapshot]) => ({
|
|
5517
|
+
slotNodeId,
|
|
5518
|
+
latestInstanceId: snapshot.activationId ? `${state.runId}:node:${slotNodeId}:${snapshot.activationId}` : void 0,
|
|
5519
|
+
latestTerminalInstanceId: snapshot.status === "completed" || snapshot.status === "failed" ? snapshot.activationId ? `${state.runId}:node:${slotNodeId}:${snapshot.activationId}` : void 0 : void 0,
|
|
5520
|
+
latestRunningInstanceId: snapshot.status === "queued" || snapshot.status === "running" ? snapshot.activationId ? `${state.runId}:node:${slotNodeId}:${snapshot.activationId}` : void 0 : void 0,
|
|
5521
|
+
status: snapshot.status,
|
|
5522
|
+
invocationCount: (state.connectionInvocations ?? []).filter((inv) => inv.connectionNodeId === slotNodeId).length,
|
|
5523
|
+
runCount: 1
|
|
5524
|
+
}));
|
|
5525
|
+
const executionInstances = Object.entries(state.nodeSnapshotsByNodeId).map(([slotNodeId, snapshot]) => ({
|
|
5526
|
+
instanceId: `${state.runId}:node:${slotNodeId}:${snapshot.activationId ?? "na"}`,
|
|
5527
|
+
slotNodeId,
|
|
5528
|
+
workflowNodeId: slotNodeId,
|
|
5529
|
+
kind: "workflowNodeActivation",
|
|
5530
|
+
runIndex: 1,
|
|
5531
|
+
batchId: state.pending?.batchId ?? "batch_1",
|
|
5532
|
+
activationId: snapshot.activationId,
|
|
5533
|
+
status: snapshot.status,
|
|
5534
|
+
queuedAt: snapshot.queuedAt,
|
|
5535
|
+
startedAt: snapshot.startedAt,
|
|
5536
|
+
finishedAt: snapshot.finishedAt,
|
|
5537
|
+
itemCount: Object.values(snapshot.inputsByPort ?? {}).reduce((count, items) => count + items.length, 0),
|
|
5538
|
+
inputJson: snapshot.inputsByPort,
|
|
5539
|
+
outputJson: snapshot.outputs,
|
|
5540
|
+
error: snapshot.error
|
|
5541
|
+
}));
|
|
5542
|
+
return {
|
|
5543
|
+
runId: state.runId,
|
|
5544
|
+
workflowId: state.workflowId,
|
|
5545
|
+
startedAt: state.startedAt,
|
|
5546
|
+
finishedAt: state.finishedAt,
|
|
5547
|
+
status: state.status,
|
|
5548
|
+
workflowSnapshot: state.workflowSnapshot,
|
|
5549
|
+
mutableState: state.mutableState,
|
|
5550
|
+
slotStates,
|
|
5551
|
+
executionInstances
|
|
5552
|
+
};
|
|
5553
|
+
}
|
|
5554
|
+
async listBinaryStorageKeys(runId) {
|
|
5555
|
+
const state = await this.load(runId);
|
|
5556
|
+
if (!state) return [];
|
|
5557
|
+
const keys = /* @__PURE__ */ new Set();
|
|
5558
|
+
this.collectBinaryKeysFromRunState(state, keys);
|
|
5559
|
+
return [...keys].sort((left, right) => left.localeCompare(right));
|
|
5459
5560
|
}
|
|
5460
5561
|
async deleteRun(runId) {
|
|
5461
5562
|
this.runs.delete(runId);
|
|
@@ -5482,6 +5583,20 @@ let InMemoryWorkflowRunRepository = class InMemoryWorkflowRunRepository$1 {
|
|
|
5482
5583
|
out.sort((a$1, b$2) => a$1.finishedAt.localeCompare(b$2.finishedAt));
|
|
5483
5584
|
return out.slice(0, limit);
|
|
5484
5585
|
}
|
|
5586
|
+
collectBinaryKeysFromRunState(state, keys) {
|
|
5587
|
+
for (const outputs of Object.values(state.outputsByNode)) for (const items of Object.values(outputs)) this.collectBinaryKeysFromItems(items, keys);
|
|
5588
|
+
for (const snapshot of Object.values(state.nodeSnapshotsByNodeId)) {
|
|
5589
|
+
for (const items of Object.values(snapshot.inputsByPort ?? {})) this.collectBinaryKeysFromItems(items, keys);
|
|
5590
|
+
for (const items of Object.values(snapshot.outputs ?? {})) this.collectBinaryKeysFromItems(items, keys);
|
|
5591
|
+
}
|
|
5592
|
+
for (const nodeState of Object.values(state.mutableState?.nodesById ?? {})) {
|
|
5593
|
+
for (const items of Object.values(nodeState.pinnedOutputsByPort ?? {})) this.collectBinaryKeysFromItems(items, keys);
|
|
5594
|
+
this.collectBinaryKeysFromItems(nodeState.lastDebugInput, keys);
|
|
5595
|
+
}
|
|
5596
|
+
}
|
|
5597
|
+
collectBinaryKeysFromItems(items, keys) {
|
|
5598
|
+
for (const item of items ?? []) for (const attachment of Object.values(item.binary ?? {})) if (attachment.storageKey.length > 0) keys.add(attachment.storageKey);
|
|
5599
|
+
}
|
|
5485
5600
|
};
|
|
5486
5601
|
InMemoryWorkflowRunRepository = __decorate([injectable()], InMemoryWorkflowRunRepository);
|
|
5487
5602
|
|
|
@@ -13299,11 +13414,85 @@ var require_prisma_sqlite_client = /* @__PURE__ */ __commonJS({ "src/infrastruct
|
|
|
13299
13414
|
runId: "runId",
|
|
13300
13415
|
workflowId: "workflowId",
|
|
13301
13416
|
startedAt: "startedAt",
|
|
13417
|
+
finishedAt: "finishedAt",
|
|
13302
13418
|
status: "status",
|
|
13419
|
+
revision: "revision",
|
|
13303
13420
|
parentJson: "parentJson",
|
|
13304
13421
|
executionOptionsJson: "executionOptionsJson",
|
|
13422
|
+
controlJson: "controlJson",
|
|
13423
|
+
workflowSnapshotJson: "workflowSnapshotJson",
|
|
13424
|
+
policySnapshotJson: "policySnapshotJson",
|
|
13425
|
+
engineCountersJson: "engineCountersJson",
|
|
13426
|
+
mutableStateJson: "mutableStateJson",
|
|
13427
|
+
outputsByNodeJson: "outputsByNodeJson",
|
|
13428
|
+
updatedAt: "updatedAt"
|
|
13429
|
+
};
|
|
13430
|
+
exports.Prisma.RunWorkItemScalarFieldEnum = {
|
|
13431
|
+
workItemId: "workItemId",
|
|
13432
|
+
runId: "runId",
|
|
13433
|
+
workflowId: "workflowId",
|
|
13434
|
+
status: "status",
|
|
13435
|
+
targetNodeId: "targetNodeId",
|
|
13436
|
+
batchId: "batchId",
|
|
13437
|
+
queueName: "queueName",
|
|
13438
|
+
claimToken: "claimToken",
|
|
13439
|
+
claimedBy: "claimedBy",
|
|
13440
|
+
claimedAt: "claimedAt",
|
|
13441
|
+
availableAt: "availableAt",
|
|
13442
|
+
enqueuedAt: "enqueuedAt",
|
|
13443
|
+
completedAt: "completedAt",
|
|
13444
|
+
failedAt: "failedAt",
|
|
13445
|
+
sourceInstanceId: "sourceInstanceId",
|
|
13446
|
+
parentInstanceId: "parentInstanceId",
|
|
13447
|
+
itemsIn: "itemsIn",
|
|
13448
|
+
inputsByPortJson: "inputsByPortJson",
|
|
13449
|
+
errorJson: "errorJson"
|
|
13450
|
+
};
|
|
13451
|
+
exports.Prisma.ExecutionInstanceScalarFieldEnum = {
|
|
13452
|
+
instanceId: "instanceId",
|
|
13453
|
+
runId: "runId",
|
|
13454
|
+
workflowId: "workflowId",
|
|
13455
|
+
slotNodeId: "slotNodeId",
|
|
13456
|
+
workflowNodeId: "workflowNodeId",
|
|
13457
|
+
kind: "kind",
|
|
13458
|
+
connectionKind: "connectionKind",
|
|
13459
|
+
activationId: "activationId",
|
|
13460
|
+
batchId: "batchId",
|
|
13461
|
+
runIndex: "runIndex",
|
|
13462
|
+
parentInstanceId: "parentInstanceId",
|
|
13463
|
+
parentRunId: "parentRunId",
|
|
13464
|
+
workerClaimToken: "workerClaimToken",
|
|
13465
|
+
status: "status",
|
|
13466
|
+
queuedAt: "queuedAt",
|
|
13467
|
+
startedAt: "startedAt",
|
|
13468
|
+
finishedAt: "finishedAt",
|
|
13305
13469
|
updatedAt: "updatedAt",
|
|
13306
|
-
|
|
13470
|
+
itemCount: "itemCount",
|
|
13471
|
+
inputJson: "inputJson",
|
|
13472
|
+
outputJson: "outputJson",
|
|
13473
|
+
errorJson: "errorJson",
|
|
13474
|
+
inputItemIndicesJson: "inputItemIndicesJson",
|
|
13475
|
+
outputItemCount: "outputItemCount",
|
|
13476
|
+
successfulItemCount: "successfulItemCount",
|
|
13477
|
+
failedItemCount: "failedItemCount",
|
|
13478
|
+
inputStorageKind: "inputStorageKind",
|
|
13479
|
+
outputStorageKind: "outputStorageKind",
|
|
13480
|
+
inputBytes: "inputBytes",
|
|
13481
|
+
outputBytes: "outputBytes",
|
|
13482
|
+
inputPreviewJson: "inputPreviewJson",
|
|
13483
|
+
outputPreviewJson: "outputPreviewJson",
|
|
13484
|
+
inputPayloadRef: "inputPayloadRef",
|
|
13485
|
+
outputPayloadRef: "outputPayloadRef",
|
|
13486
|
+
inputTruncated: "inputTruncated",
|
|
13487
|
+
outputTruncated: "outputTruncated",
|
|
13488
|
+
usedPinnedOutput: "usedPinnedOutput"
|
|
13489
|
+
};
|
|
13490
|
+
exports.Prisma.RunSlotProjectionScalarFieldEnum = {
|
|
13491
|
+
runId: "runId",
|
|
13492
|
+
workflowId: "workflowId",
|
|
13493
|
+
revision: "revision",
|
|
13494
|
+
updatedAt: "updatedAt",
|
|
13495
|
+
slotStatesJson: "slotStatesJson"
|
|
13307
13496
|
};
|
|
13308
13497
|
exports.Prisma.WorkflowDebuggerOverlayScalarFieldEnum = {
|
|
13309
13498
|
workflowId: "workflowId",
|
|
@@ -13443,6 +13632,9 @@ var require_prisma_sqlite_client = /* @__PURE__ */ __commonJS({ "src/infrastruct
|
|
|
13443
13632
|
};
|
|
13444
13633
|
exports.Prisma.ModelName = {
|
|
13445
13634
|
Run: "Run",
|
|
13635
|
+
RunWorkItem: "RunWorkItem",
|
|
13636
|
+
ExecutionInstance: "ExecutionInstance",
|
|
13637
|
+
RunSlotProjection: "RunSlotProjection",
|
|
13446
13638
|
WorkflowDebuggerOverlay: "WorkflowDebuggerOverlay",
|
|
13447
13639
|
WorkflowActivation: "WorkflowActivation",
|
|
13448
13640
|
TriggerSetupState: "TriggerSetupState",
|
|
@@ -13466,13 +13658,13 @@ var require_prisma_sqlite_client = /* @__PURE__ */ __commonJS({ "src/infrastruct
|
|
|
13466
13658
|
"clientVersion": "7.5.0",
|
|
13467
13659
|
"engineVersion": "280c870be64f457428992c43c1f6d557fab6e29e",
|
|
13468
13660
|
"activeProvider": "sqlite",
|
|
13469
|
-
"inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = \"../src/infrastructure/persistence/generated/prisma-sqlite-client\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\nmodel Run {\n runId String @id @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n startedAt String @map(\"started_at\")\n status String\n parentJson String? @map(\"parent_json\")\n executionOptionsJson String? @map(\"execution_options_json\")\n updatedAt String @map(\"updated_at\")\n stateJson String @map(\"state_json\")\n}\n\nmodel WorkflowDebuggerOverlay {\n workflowId String @id @map(\"workflow_id\")\n updatedAt String @map(\"updated_at\")\n copiedFromRunId String? @map(\"copied_from_run_id\")\n stateJson String @map(\"state_json\")\n}\n\nmodel WorkflowActivation {\n workflowId String @id @map(\"workflow_id\")\n isActive Boolean @default(false) @map(\"is_active\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel TriggerSetupState {\n workflowId String @map(\"workflow_id\")\n nodeId String @map(\"node_id\")\n updatedAt String @map(\"updated_at\")\n stateJson String @map(\"state_json\")\n\n @@id([workflowId, nodeId])\n}\n\nmodel CredentialInstance {\n instanceId String @id @map(\"instance_id\")\n typeId String @map(\"type_id\")\n displayName String @map(\"display_name\")\n sourceKind String @map(\"source_kind\")\n publicConfigJson String @map(\"public_config_json\")\n secretRefJson String @map(\"secret_ref_json\")\n tagsJson String @map(\"tags_json\")\n setupStatus String @map(\"setup_status\")\n createdAt String @map(\"created_at\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialSecretMaterial {\n instanceId String @id @map(\"instance_id\")\n encryptedJson String @map(\"encrypted_json\")\n encryptionKeyId String @map(\"encryption_key_id\")\n schemaVersion Int @map(\"schema_version\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialOAuth2Material {\n instanceId String @id @map(\"instance_id\")\n encryptedJson String @map(\"encrypted_json\")\n encryptionKeyId String @map(\"encryption_key_id\")\n schemaVersion Int @map(\"schema_version\")\n providerId String @map(\"provider_id\")\n connectedEmail String? @map(\"connected_email\")\n connectedAt String? @map(\"connected_at\")\n scopesJson String @map(\"scopes_json\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialOAuth2State {\n state String @id\n instanceId String @map(\"instance_id\")\n codeVerifier String? @map(\"code_verifier\")\n providerId String? @map(\"provider_id\")\n requestedScopesJson String @map(\"requested_scopes_json\")\n createdAt String @map(\"created_at\")\n expiresAt String @map(\"expires_at\")\n\n @@index([instanceId])\n @@index([expiresAt])\n}\n\nmodel CredentialBinding {\n workflowId String @map(\"workflow_id\")\n nodeId String @map(\"node_id\")\n slotKey String @map(\"slot_key\")\n instanceId String @map(\"instance_id\")\n updatedAt String @map(\"updated_at\")\n\n @@id([workflowId, nodeId, slotKey])\n @@index([instanceId])\n}\n\nmodel CredentialTestResult {\n testId String @id @map(\"test_id\")\n instanceId String @map(\"instance_id\")\n status String\n message String?\n detailsJson String @map(\"details_json\")\n testedAt String @map(\"tested_at\")\n expiresAt String? @map(\"expires_at\")\n\n @@index([instanceId, testedAt])\n}\n\n/// Better Auth user directory (DB sessions + optional OAuth linking)\nmodel User {\n id String @id @default(cuid())\n name String?\n email String? @unique\n emailVerified Boolean @default(false) @map(\"email_verified\")\n image String?\n passwordHash String? @map(\"password_hash\")\n /// invited | active | inactive (local directory / invite flow)\n accountStatus String @default(\"active\") @map(\"account_status\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n accounts Account[]\n sessions Session[]\n invites UserInvite[]\n\n @@map(\"codemation_auth_user\")\n}\n\nmodel UserInvite {\n id String @id @default(cuid())\n userId String @map(\"user_id\")\n tokenHash String @unique @map(\"token_hash\")\n expiresAt DateTime @map(\"expires_at\")\n createdAt DateTime @map(\"created_at\")\n revokedAt DateTime? @map(\"revoked_at\")\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@map(\"codemation_auth_user_invite\")\n}\n\nmodel Account {\n id String @id @default(cuid())\n userId String @map(\"user_id\")\n /// Legacy Auth.js discriminator; Better Auth omits it on create — default keeps OAuth/credential rows valid.\n type String @default(\"oauth\")\n provider String\n providerAccountId String @map(\"provider_account_id\")\n /// Better Auth email/password (credential provider) hash; kept in sync with `User.passwordHash` for local flows.\n password String? @map(\"password\")\n refresh_token String?\n access_token String?\n expires_at Int?\n accessTokenExpiresAt DateTime? @map(\"access_token_expires_at\")\n refreshTokenExpiresAt DateTime? @map(\"refresh_token_expires_at\")\n token_type String?\n scope String?\n id_token String?\n session_state String?\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([provider, providerAccountId])\n @@map(\"codemation_auth_account\")\n}\n\nmodel Session {\n id String @id @default(cuid())\n sessionToken String @unique @map(\"session_token\")\n userId String @map(\"user_id\")\n expires DateTime\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n ipAddress String? @map(\"ip_address\")\n userAgent String? @map(\"user_agent\")\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"codemation_auth_session\")\n}\n\nmodel VerificationToken {\n id String @id @default(cuid())\n identifier String\n token String\n expires DateTime\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n @@unique([identifier, token])\n @@map(\"codemation_auth_verification_token\")\n}\n"
|
|
13661
|
+
"inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = \"../src/infrastructure/persistence/generated/prisma-sqlite-client\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\nmodel Run {\n runId String @id @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n startedAt String @map(\"started_at\")\n finishedAt String? @map(\"finished_at\")\n status String\n revision Int @default(0)\n parentJson String? @map(\"parent_json\")\n executionOptionsJson String? @map(\"execution_options_json\")\n controlJson String? @map(\"control_json\")\n workflowSnapshotJson String? @map(\"workflow_snapshot_json\")\n policySnapshotJson String? @map(\"policy_snapshot_json\")\n engineCountersJson String? @map(\"engine_counters_json\")\n mutableStateJson String? @map(\"mutable_state_json\")\n outputsByNodeJson String @map(\"outputs_by_node_json\")\n updatedAt String @map(\"updated_at\")\n\n workItems RunWorkItem[]\n executionInstances ExecutionInstance[]\n slotProjection RunSlotProjection?\n\n @@index([workflowId, startedAt])\n @@index([workflowId, status, finishedAt])\n}\n\nmodel RunWorkItem {\n workItemId String @id @map(\"work_item_id\")\n runId String @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n status String\n targetNodeId String @map(\"target_node_id\")\n batchId String @map(\"batch_id\")\n queueName String? @map(\"queue_name\")\n claimToken String? @map(\"claim_token\")\n claimedBy String? @map(\"claimed_by\")\n claimedAt String? @map(\"claimed_at\")\n availableAt String @map(\"available_at\")\n enqueuedAt String @map(\"enqueued_at\")\n completedAt String? @map(\"completed_at\")\n failedAt String? @map(\"failed_at\")\n sourceInstanceId String? @map(\"source_instance_id\")\n parentInstanceId String? @map(\"parent_instance_id\")\n itemsIn Int @map(\"items_in\")\n inputsByPortJson String @map(\"inputs_by_port_json\")\n errorJson String? @map(\"error_json\")\n\n run Run @relation(fields: [runId], references: [runId], onDelete: Cascade)\n\n @@index([runId, status, availableAt])\n @@index([runId, targetNodeId, batchId])\n}\n\nmodel ExecutionInstance {\n instanceId String @id @map(\"instance_id\")\n runId String @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n slotNodeId String @map(\"slot_node_id\")\n workflowNodeId String @map(\"workflow_node_id\")\n kind String\n connectionKind String? @map(\"connection_kind\")\n activationId String? @map(\"activation_id\")\n batchId String @map(\"batch_id\")\n runIndex Int @map(\"run_index\")\n parentInstanceId String? @map(\"parent_instance_id\")\n parentRunId String? @map(\"parent_run_id\")\n workerClaimToken String? @map(\"worker_claim_token\")\n status String\n queuedAt String? @map(\"queued_at\")\n startedAt String? @map(\"started_at\")\n finishedAt String? @map(\"finished_at\")\n updatedAt String @map(\"updated_at\")\n itemCount Int @map(\"item_count\")\n inputJson String? @map(\"input_json\")\n outputJson String? @map(\"output_json\")\n errorJson String? @map(\"error_json\")\n inputItemIndicesJson String? @map(\"input_item_indices_json\")\n outputItemCount Int? @map(\"output_item_count\")\n successfulItemCount Int? @map(\"successful_item_count\")\n failedItemCount Int? @map(\"failed_item_count\")\n inputStorageKind String? @map(\"input_storage_kind\")\n outputStorageKind String? @map(\"output_storage_kind\")\n inputBytes Int? @map(\"input_bytes\")\n outputBytes Int? @map(\"output_bytes\")\n inputPreviewJson String? @map(\"input_preview_json\")\n outputPreviewJson String? @map(\"output_preview_json\")\n inputPayloadRef String? @map(\"input_payload_ref\")\n outputPayloadRef String? @map(\"output_payload_ref\")\n inputTruncated Boolean? @map(\"input_truncated\")\n outputTruncated Boolean? @map(\"output_truncated\")\n usedPinnedOutput Boolean? @map(\"used_pinned_output\")\n\n run Run @relation(fields: [runId], references: [runId], onDelete: Cascade)\n\n @@unique([runId, slotNodeId, runIndex])\n @@index([runId, slotNodeId, updatedAt])\n @@index([runId, parentInstanceId, updatedAt])\n @@index([runId, kind, updatedAt])\n}\n\nmodel RunSlotProjection {\n runId String @id @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n revision Int\n updatedAt String @map(\"updated_at\")\n slotStatesJson String @map(\"slot_states_json\")\n\n run Run @relation(fields: [runId], references: [runId], onDelete: Cascade)\n\n @@index([workflowId, updatedAt])\n}\n\nmodel WorkflowDebuggerOverlay {\n workflowId String @id @map(\"workflow_id\")\n updatedAt String @map(\"updated_at\")\n copiedFromRunId String? @map(\"copied_from_run_id\")\n stateJson String @map(\"state_json\")\n}\n\nmodel WorkflowActivation {\n workflowId String @id @map(\"workflow_id\")\n isActive Boolean @default(false) @map(\"is_active\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel TriggerSetupState {\n workflowId String @map(\"workflow_id\")\n nodeId String @map(\"node_id\")\n updatedAt String @map(\"updated_at\")\n stateJson String @map(\"state_json\")\n\n @@id([workflowId, nodeId])\n}\n\nmodel CredentialInstance {\n instanceId String @id @map(\"instance_id\")\n typeId String @map(\"type_id\")\n displayName String @map(\"display_name\")\n sourceKind String @map(\"source_kind\")\n publicConfigJson String @map(\"public_config_json\")\n secretRefJson String @map(\"secret_ref_json\")\n tagsJson String @map(\"tags_json\")\n setupStatus String @map(\"setup_status\")\n createdAt String @map(\"created_at\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialSecretMaterial {\n instanceId String @id @map(\"instance_id\")\n encryptedJson String @map(\"encrypted_json\")\n encryptionKeyId String @map(\"encryption_key_id\")\n schemaVersion Int @map(\"schema_version\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialOAuth2Material {\n instanceId String @id @map(\"instance_id\")\n encryptedJson String @map(\"encrypted_json\")\n encryptionKeyId String @map(\"encryption_key_id\")\n schemaVersion Int @map(\"schema_version\")\n providerId String @map(\"provider_id\")\n connectedEmail String? @map(\"connected_email\")\n connectedAt String? @map(\"connected_at\")\n scopesJson String @map(\"scopes_json\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialOAuth2State {\n state String @id\n instanceId String @map(\"instance_id\")\n codeVerifier String? @map(\"code_verifier\")\n providerId String? @map(\"provider_id\")\n requestedScopesJson String @map(\"requested_scopes_json\")\n createdAt String @map(\"created_at\")\n expiresAt String @map(\"expires_at\")\n\n @@index([instanceId])\n @@index([expiresAt])\n}\n\nmodel CredentialBinding {\n workflowId String @map(\"workflow_id\")\n nodeId String @map(\"node_id\")\n slotKey String @map(\"slot_key\")\n instanceId String @map(\"instance_id\")\n updatedAt String @map(\"updated_at\")\n\n @@id([workflowId, nodeId, slotKey])\n @@index([instanceId])\n}\n\nmodel CredentialTestResult {\n testId String @id @map(\"test_id\")\n instanceId String @map(\"instance_id\")\n status String\n message String?\n detailsJson String @map(\"details_json\")\n testedAt String @map(\"tested_at\")\n expiresAt String? @map(\"expires_at\")\n\n @@index([instanceId, testedAt])\n}\n\n/// Better Auth user directory (DB sessions + optional OAuth linking)\nmodel User {\n id String @id @default(cuid())\n name String?\n email String? @unique\n emailVerified Boolean @default(false) @map(\"email_verified\")\n image String?\n passwordHash String? @map(\"password_hash\")\n /// invited | active | inactive (local directory / invite flow)\n accountStatus String @default(\"active\") @map(\"account_status\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n accounts Account[]\n sessions Session[]\n invites UserInvite[]\n\n @@map(\"codemation_auth_user\")\n}\n\nmodel UserInvite {\n id String @id @default(cuid())\n userId String @map(\"user_id\")\n tokenHash String @unique @map(\"token_hash\")\n expiresAt DateTime @map(\"expires_at\")\n createdAt DateTime @map(\"created_at\")\n revokedAt DateTime? @map(\"revoked_at\")\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@map(\"codemation_auth_user_invite\")\n}\n\nmodel Account {\n id String @id @default(cuid())\n userId String @map(\"user_id\")\n /// Legacy Auth.js discriminator; Better Auth omits it on create — default keeps OAuth/credential rows valid.\n type String @default(\"oauth\")\n provider String\n providerAccountId String @map(\"provider_account_id\")\n /// Better Auth email/password (credential provider) hash; kept in sync with `User.passwordHash` for local flows.\n password String? @map(\"password\")\n refresh_token String?\n access_token String?\n expires_at Int?\n accessTokenExpiresAt DateTime? @map(\"access_token_expires_at\")\n refreshTokenExpiresAt DateTime? @map(\"refresh_token_expires_at\")\n token_type String?\n scope String?\n id_token String?\n session_state String?\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([provider, providerAccountId])\n @@map(\"codemation_auth_account\")\n}\n\nmodel Session {\n id String @id @default(cuid())\n sessionToken String @unique @map(\"session_token\")\n userId String @map(\"user_id\")\n expires DateTime\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n ipAddress String? @map(\"ip_address\")\n userAgent String? @map(\"user_agent\")\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"codemation_auth_session\")\n}\n\nmodel VerificationToken {\n id String @id @default(cuid())\n identifier String\n token String\n expires DateTime\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n @@unique([identifier, token])\n @@map(\"codemation_auth_verification_token\")\n}\n"
|
|
13470
13662
|
};
|
|
13471
|
-
config.runtimeDataModel = JSON.parse("{\"models\":{\"Run\":{\"fields\":[{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"started_at\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"parentJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_json\"},{\"name\":\"executionOptionsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"execution_options_json\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"stateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"state_json\"}],\"dbName\":null},\"WorkflowDebuggerOverlay\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"copiedFromRunId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"copied_from_run_id\"},{\"name\":\"stateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"state_json\"}],\"dbName\":null},\"WorkflowActivation\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"is_active\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"TriggerSetupState\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"stateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"state_json\"}],\"dbName\":null},\"CredentialInstance\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"typeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"type_id\"},{\"name\":\"displayName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"display_name\"},{\"name\":\"sourceKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"source_kind\"},{\"name\":\"publicConfigJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"public_config_json\"},{\"name\":\"secretRefJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"secret_ref_json\"},{\"name\":\"tagsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"tags_json\"},{\"name\":\"setupStatus\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"setup_status\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialSecretMaterial\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"encryptedJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encrypted_json\"},{\"name\":\"encryptionKeyId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encryption_key_id\"},{\"name\":\"schemaVersion\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"schema_version\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialOAuth2Material\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"encryptedJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encrypted_json\"},{\"name\":\"encryptionKeyId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encryption_key_id\"},{\"name\":\"schemaVersion\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"schema_version\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_id\"},{\"name\":\"connectedEmail\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connected_email\"},{\"name\":\"connectedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connected_at\"},{\"name\":\"scopesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"scopes_json\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialOAuth2State\":{\"fields\":[{\"name\":\"state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"codeVerifier\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"code_verifier\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_id\"},{\"name\":\"requestedScopesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"requested_scopes_json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expires_at\"}],\"dbName\":null},\"CredentialBinding\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"slotKey\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"slot_key\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialTestResult\":{\"fields\":[{\"name\":\"testId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"test_id\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"detailsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"details_json\"},{\"name\":\"testedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"tested_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expires_at\"}],\"dbName\":null},\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"emailVerified\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"email_verified\"},{\"name\":\"image\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"passwordHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"password_hash\"},{\"name\":\"accountStatus\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"account_status\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToUser\"},{\"name\":\"sessions\",\"kind\":\"object\",\"type\":\"Session\",\"relationName\":\"SessionToUser\"},{\"name\":\"invites\",\"kind\":\"object\",\"type\":\"UserInvite\",\"relationName\":\"UserToUserInvite\"}],\"dbName\":\"codemation_auth_user\"},\"UserInvite\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"tokenHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"token_hash\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"expires_at\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"revokedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"revoked_at\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserInvite\"}],\"dbName\":\"codemation_auth_user_invite\"},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerAccountId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_account_id\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"password\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"accessTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"access_token_expires_at\"},{\"name\":\"refreshTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"refresh_token_expires_at\"},{\"name\":\"token_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"id_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"session_state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AccountToUser\"}],\"dbName\":\"codemation_auth_account\"},\"Session\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sessionToken\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"session_token\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"expires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"ipAddress\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"ip_address\"},{\"name\":\"userAgent\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_agent\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"SessionToUser\"}],\"dbName\":\"codemation_auth_session\"},\"VerificationToken\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"}],\"dbName\":\"codemation_auth_verification_token\"}},\"enums\":{},\"types\":{}}");
|
|
13663
|
+
config.runtimeDataModel = JSON.parse("{\"models\":{\"Run\":{\"fields\":[{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"started_at\"},{\"name\":\"finishedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"finished_at\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"revision\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"parentJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_json\"},{\"name\":\"executionOptionsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"execution_options_json\"},{\"name\":\"controlJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"control_json\"},{\"name\":\"workflowSnapshotJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_snapshot_json\"},{\"name\":\"policySnapshotJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"policy_snapshot_json\"},{\"name\":\"engineCountersJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"engine_counters_json\"},{\"name\":\"mutableStateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"mutable_state_json\"},{\"name\":\"outputsByNodeJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"outputs_by_node_json\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"workItems\",\"kind\":\"object\",\"type\":\"RunWorkItem\",\"relationName\":\"RunToRunWorkItem\"},{\"name\":\"executionInstances\",\"kind\":\"object\",\"type\":\"ExecutionInstance\",\"relationName\":\"ExecutionInstanceToRun\"},{\"name\":\"slotProjection\",\"kind\":\"object\",\"type\":\"RunSlotProjection\",\"relationName\":\"RunToRunSlotProjection\"}],\"dbName\":null},\"RunWorkItem\":{\"fields\":[{\"name\":\"workItemId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"work_item_id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"targetNodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"target_node_id\"},{\"name\":\"batchId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"batch_id\"},{\"name\":\"queueName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"queue_name\"},{\"name\":\"claimToken\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"claim_token\"},{\"name\":\"claimedBy\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"claimed_by\"},{\"name\":\"claimedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"claimed_at\"},{\"name\":\"availableAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"available_at\"},{\"name\":\"enqueuedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"enqueued_at\"},{\"name\":\"completedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"completed_at\"},{\"name\":\"failedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"failed_at\"},{\"name\":\"sourceInstanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"source_instance_id\"},{\"name\":\"parentInstanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_instance_id\"},{\"name\":\"itemsIn\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"items_in\"},{\"name\":\"inputsByPortJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"inputs_by_port_json\"},{\"name\":\"errorJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"error_json\"},{\"name\":\"run\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"RunToRunWorkItem\"}],\"dbName\":null},\"ExecutionInstance\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"slotNodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"slot_node_id\"},{\"name\":\"workflowNodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_node_id\"},{\"name\":\"kind\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"connectionKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connection_kind\"},{\"name\":\"activationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"activation_id\"},{\"name\":\"batchId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"batch_id\"},{\"name\":\"runIndex\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"run_index\"},{\"name\":\"parentInstanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_instance_id\"},{\"name\":\"parentRunId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_run_id\"},{\"name\":\"workerClaimToken\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"worker_claim_token\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"queuedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"queued_at\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"started_at\"},{\"name\":\"finishedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"finished_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"itemCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"item_count\"},{\"name\":\"inputJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_json\"},{\"name\":\"outputJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"output_json\"},{\"name\":\"errorJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"error_json\"},{\"name\":\"inputItemIndicesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_item_indices_json\"},{\"name\":\"outputItemCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"output_item_count\"},{\"name\":\"successfulItemCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"successful_item_count\"},{\"name\":\"failedItemCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"failed_item_count\"},{\"name\":\"inputStorageKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_storage_kind\"},{\"name\":\"outputStorageKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"output_storage_kind\"},{\"name\":\"inputBytes\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"input_bytes\"},{\"name\":\"outputBytes\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"output_bytes\"},{\"name\":\"inputPreviewJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_preview_json\"},{\"name\":\"outputPreviewJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"output_preview_json\"},{\"name\":\"inputPayloadRef\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_payload_ref\"},{\"name\":\"outputPayloadRef\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"output_payload_ref\"},{\"name\":\"inputTruncated\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"input_truncated\"},{\"name\":\"outputTruncated\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"output_truncated\"},{\"name\":\"usedPinnedOutput\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"used_pinned_output\"},{\"name\":\"run\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"ExecutionInstanceToRun\"}],\"dbName\":null},\"RunSlotProjection\":{\"fields\":[{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"revision\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"slotStatesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"slot_states_json\"},{\"name\":\"run\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"RunToRunSlotProjection\"}],\"dbName\":null},\"WorkflowDebuggerOverlay\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"copiedFromRunId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"copied_from_run_id\"},{\"name\":\"stateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"state_json\"}],\"dbName\":null},\"WorkflowActivation\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"is_active\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"TriggerSetupState\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"stateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"state_json\"}],\"dbName\":null},\"CredentialInstance\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"typeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"type_id\"},{\"name\":\"displayName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"display_name\"},{\"name\":\"sourceKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"source_kind\"},{\"name\":\"publicConfigJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"public_config_json\"},{\"name\":\"secretRefJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"secret_ref_json\"},{\"name\":\"tagsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"tags_json\"},{\"name\":\"setupStatus\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"setup_status\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialSecretMaterial\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"encryptedJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encrypted_json\"},{\"name\":\"encryptionKeyId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encryption_key_id\"},{\"name\":\"schemaVersion\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"schema_version\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialOAuth2Material\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"encryptedJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encrypted_json\"},{\"name\":\"encryptionKeyId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encryption_key_id\"},{\"name\":\"schemaVersion\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"schema_version\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_id\"},{\"name\":\"connectedEmail\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connected_email\"},{\"name\":\"connectedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connected_at\"},{\"name\":\"scopesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"scopes_json\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialOAuth2State\":{\"fields\":[{\"name\":\"state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"codeVerifier\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"code_verifier\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_id\"},{\"name\":\"requestedScopesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"requested_scopes_json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expires_at\"}],\"dbName\":null},\"CredentialBinding\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"slotKey\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"slot_key\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialTestResult\":{\"fields\":[{\"name\":\"testId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"test_id\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"detailsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"details_json\"},{\"name\":\"testedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"tested_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expires_at\"}],\"dbName\":null},\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"emailVerified\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"email_verified\"},{\"name\":\"image\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"passwordHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"password_hash\"},{\"name\":\"accountStatus\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"account_status\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToUser\"},{\"name\":\"sessions\",\"kind\":\"object\",\"type\":\"Session\",\"relationName\":\"SessionToUser\"},{\"name\":\"invites\",\"kind\":\"object\",\"type\":\"UserInvite\",\"relationName\":\"UserToUserInvite\"}],\"dbName\":\"codemation_auth_user\"},\"UserInvite\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"tokenHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"token_hash\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"expires_at\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"revokedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"revoked_at\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserInvite\"}],\"dbName\":\"codemation_auth_user_invite\"},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerAccountId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_account_id\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"password\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"accessTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"access_token_expires_at\"},{\"name\":\"refreshTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"refresh_token_expires_at\"},{\"name\":\"token_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"id_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"session_state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AccountToUser\"}],\"dbName\":\"codemation_auth_account\"},\"Session\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sessionToken\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"session_token\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"expires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"ipAddress\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"ip_address\"},{\"name\":\"userAgent\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_agent\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"SessionToUser\"}],\"dbName\":\"codemation_auth_session\"},\"VerificationToken\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"}],\"dbName\":\"codemation_auth_verification_token\"}},\"enums\":{},\"types\":{}}");
|
|
13472
13664
|
defineDmmfProperty(exports.Prisma, config.runtimeDataModel);
|
|
13473
13665
|
config.parameterizationSchema = {
|
|
13474
|
-
strings: JSON.parse("[\"where\",\"Run.findUnique\",\"Run.findUniqueOrThrow\",\"orderBy\",\"cursor\",\"Run.findFirst\",\"Run.findFirstOrThrow\",\"Run.findMany\",\"data\",\"Run.createOne\",\"Run.createMany\",\"Run.createManyAndReturn\",\"Run.updateOne\",\"Run.updateMany\",\"Run.updateManyAndReturn\",\"create\",\"update\",\"Run.upsertOne\",\"Run.deleteOne\",\"Run.deleteMany\",\"having\",\"_count\",\"_min\",\"_max\",\"Run.groupBy\",\"Run.aggregate\",\"WorkflowDebuggerOverlay.findUnique\",\"WorkflowDebuggerOverlay.findUniqueOrThrow\",\"WorkflowDebuggerOverlay.findFirst\",\"WorkflowDebuggerOverlay.findFirstOrThrow\",\"WorkflowDebuggerOverlay.findMany\",\"WorkflowDebuggerOverlay.createOne\",\"WorkflowDebuggerOverlay.createMany\",\"WorkflowDebuggerOverlay.createManyAndReturn\",\"WorkflowDebuggerOverlay.updateOne\",\"WorkflowDebuggerOverlay.updateMany\",\"WorkflowDebuggerOverlay.updateManyAndReturn\",\"WorkflowDebuggerOverlay.upsertOne\",\"WorkflowDebuggerOverlay.deleteOne\",\"WorkflowDebuggerOverlay.deleteMany\",\"WorkflowDebuggerOverlay.groupBy\",\"WorkflowDebuggerOverlay.aggregate\",\"WorkflowActivation.findUnique\",\"WorkflowActivation.findUniqueOrThrow\",\"WorkflowActivation.findFirst\",\"WorkflowActivation.findFirstOrThrow\",\"WorkflowActivation.findMany\",\"WorkflowActivation.createOne\",\"WorkflowActivation.createMany\",\"WorkflowActivation.createManyAndReturn\",\"WorkflowActivation.updateOne\",\"WorkflowActivation.updateMany\",\"WorkflowActivation.updateManyAndReturn\",\"WorkflowActivation.upsertOne\",\"WorkflowActivation.deleteOne\",\"WorkflowActivation.deleteMany\",\"WorkflowActivation.groupBy\",\"WorkflowActivation.aggregate\",\"TriggerSetupState.findUnique\",\"TriggerSetupState.findUniqueOrThrow\",\"TriggerSetupState.findFirst\",\"TriggerSetupState.findFirstOrThrow\",\"TriggerSetupState.findMany\",\"TriggerSetupState.createOne\",\"TriggerSetupState.createMany\",\"TriggerSetupState.createManyAndReturn\",\"TriggerSetupState.updateOne\",\"TriggerSetupState.updateMany\",\"TriggerSetupState.updateManyAndReturn\",\"TriggerSetupState.upsertOne\",\"TriggerSetupState.deleteOne\",\"TriggerSetupState.deleteMany\",\"TriggerSetupState.groupBy\",\"TriggerSetupState.aggregate\",\"CredentialInstance.findUnique\",\"CredentialInstance.findUniqueOrThrow\",\"CredentialInstance.findFirst\",\"CredentialInstance.findFirstOrThrow\",\"CredentialInstance.findMany\",\"CredentialInstance.createOne\",\"CredentialInstance.createMany\",\"CredentialInstance.createManyAndReturn\",\"CredentialInstance.updateOne\",\"CredentialInstance.updateMany\",\"CredentialInstance.updateManyAndReturn\",\"CredentialInstance.upsertOne\",\"CredentialInstance.deleteOne\",\"CredentialInstance.deleteMany\",\"CredentialInstance.groupBy\",\"CredentialInstance.aggregate\",\"CredentialSecretMaterial.findUnique\",\"CredentialSecretMaterial.findUniqueOrThrow\",\"CredentialSecretMaterial.findFirst\",\"CredentialSecretMaterial.findFirstOrThrow\",\"CredentialSecretMaterial.findMany\",\"CredentialSecretMaterial.createOne\",\"CredentialSecretMaterial.createMany\",\"CredentialSecretMaterial.createManyAndReturn\",\"CredentialSecretMaterial.updateOne\",\"CredentialSecretMaterial.updateMany\",\"CredentialSecretMaterial.updateManyAndReturn\",\"CredentialSecretMaterial.upsertOne\",\"CredentialSecretMaterial.deleteOne\",\"CredentialSecretMaterial.deleteMany\",\"_avg\",\"_sum\",\"CredentialSecretMaterial.groupBy\",\"CredentialSecretMaterial.aggregate\",\"CredentialOAuth2Material.findUnique\",\"CredentialOAuth2Material.findUniqueOrThrow\",\"CredentialOAuth2Material.findFirst\",\"CredentialOAuth2Material.findFirstOrThrow\",\"CredentialOAuth2Material.findMany\",\"CredentialOAuth2Material.createOne\",\"CredentialOAuth2Material.createMany\",\"CredentialOAuth2Material.createManyAndReturn\",\"CredentialOAuth2Material.updateOne\",\"CredentialOAuth2Material.updateMany\",\"CredentialOAuth2Material.updateManyAndReturn\",\"CredentialOAuth2Material.upsertOne\",\"CredentialOAuth2Material.deleteOne\",\"CredentialOAuth2Material.deleteMany\",\"CredentialOAuth2Material.groupBy\",\"CredentialOAuth2Material.aggregate\",\"CredentialOAuth2State.findUnique\",\"CredentialOAuth2State.findUniqueOrThrow\",\"CredentialOAuth2State.findFirst\",\"CredentialOAuth2State.findFirstOrThrow\",\"CredentialOAuth2State.findMany\",\"CredentialOAuth2State.createOne\",\"CredentialOAuth2State.createMany\",\"CredentialOAuth2State.createManyAndReturn\",\"CredentialOAuth2State.updateOne\",\"CredentialOAuth2State.updateMany\",\"CredentialOAuth2State.updateManyAndReturn\",\"CredentialOAuth2State.upsertOne\",\"CredentialOAuth2State.deleteOne\",\"CredentialOAuth2State.deleteMany\",\"CredentialOAuth2State.groupBy\",\"CredentialOAuth2State.aggregate\",\"CredentialBinding.findUnique\",\"CredentialBinding.findUniqueOrThrow\",\"CredentialBinding.findFirst\",\"CredentialBinding.findFirstOrThrow\",\"CredentialBinding.findMany\",\"CredentialBinding.createOne\",\"CredentialBinding.createMany\",\"CredentialBinding.createManyAndReturn\",\"CredentialBinding.updateOne\",\"CredentialBinding.updateMany\",\"CredentialBinding.updateManyAndReturn\",\"CredentialBinding.upsertOne\",\"CredentialBinding.deleteOne\",\"CredentialBinding.deleteMany\",\"CredentialBinding.groupBy\",\"CredentialBinding.aggregate\",\"CredentialTestResult.findUnique\",\"CredentialTestResult.findUniqueOrThrow\",\"CredentialTestResult.findFirst\",\"CredentialTestResult.findFirstOrThrow\",\"CredentialTestResult.findMany\",\"CredentialTestResult.createOne\",\"CredentialTestResult.createMany\",\"CredentialTestResult.createManyAndReturn\",\"CredentialTestResult.updateOne\",\"CredentialTestResult.updateMany\",\"CredentialTestResult.updateManyAndReturn\",\"CredentialTestResult.upsertOne\",\"CredentialTestResult.deleteOne\",\"CredentialTestResult.deleteMany\",\"CredentialTestResult.groupBy\",\"CredentialTestResult.aggregate\",\"user\",\"accounts\",\"sessions\",\"invites\",\"User.findUnique\",\"User.findUniqueOrThrow\",\"User.findFirst\",\"User.findFirstOrThrow\",\"User.findMany\",\"User.createOne\",\"User.createMany\",\"User.createManyAndReturn\",\"User.updateOne\",\"User.updateMany\",\"User.updateManyAndReturn\",\"User.upsertOne\",\"User.deleteOne\",\"User.deleteMany\",\"User.groupBy\",\"User.aggregate\",\"UserInvite.findUnique\",\"UserInvite.findUniqueOrThrow\",\"UserInvite.findFirst\",\"UserInvite.findFirstOrThrow\",\"UserInvite.findMany\",\"UserInvite.createOne\",\"UserInvite.createMany\",\"UserInvite.createManyAndReturn\",\"UserInvite.updateOne\",\"UserInvite.updateMany\",\"UserInvite.updateManyAndReturn\",\"UserInvite.upsertOne\",\"UserInvite.deleteOne\",\"UserInvite.deleteMany\",\"UserInvite.groupBy\",\"UserInvite.aggregate\",\"Account.findUnique\",\"Account.findUniqueOrThrow\",\"Account.findFirst\",\"Account.findFirstOrThrow\",\"Account.findMany\",\"Account.createOne\",\"Account.createMany\",\"Account.createManyAndReturn\",\"Account.updateOne\",\"Account.updateMany\",\"Account.updateManyAndReturn\",\"Account.upsertOne\",\"Account.deleteOne\",\"Account.deleteMany\",\"Account.groupBy\",\"Account.aggregate\",\"Session.findUnique\",\"Session.findUniqueOrThrow\",\"Session.findFirst\",\"Session.findFirstOrThrow\",\"Session.findMany\",\"Session.createOne\",\"Session.createMany\",\"Session.createManyAndReturn\",\"Session.updateOne\",\"Session.updateMany\",\"Session.updateManyAndReturn\",\"Session.upsertOne\",\"Session.deleteOne\",\"Session.deleteMany\",\"Session.groupBy\",\"Session.aggregate\",\"VerificationToken.findUnique\",\"VerificationToken.findUniqueOrThrow\",\"VerificationToken.findFirst\",\"VerificationToken.findFirstOrThrow\",\"VerificationToken.findMany\",\"VerificationToken.createOne\",\"VerificationToken.createMany\",\"VerificationToken.createManyAndReturn\",\"VerificationToken.updateOne\",\"VerificationToken.updateMany\",\"VerificationToken.updateManyAndReturn\",\"VerificationToken.upsertOne\",\"VerificationToken.deleteOne\",\"VerificationToken.deleteMany\",\"VerificationToken.groupBy\",\"VerificationToken.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"identifier\",\"token\",\"expires\",\"createdAt\",\"updatedAt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"identifier_token\",\"sessionToken\",\"userId\",\"ipAddress\",\"userAgent\",\"type\",\"provider\",\"providerAccountId\",\"password\",\"refresh_token\",\"access_token\",\"expires_at\",\"accessTokenExpiresAt\",\"refreshTokenExpiresAt\",\"token_type\",\"scope\",\"id_token\",\"session_state\",\"tokenHash\",\"expiresAt\",\"revokedAt\",\"name\",\"email\",\"emailVerified\",\"image\",\"passwordHash\",\"accountStatus\",\"every\",\"some\",\"none\",\"provider_providerAccountId\",\"testId\",\"instanceId\",\"status\",\"message\",\"detailsJson\",\"testedAt\",\"workflowId\",\"nodeId\",\"slotKey\",\"workflowId_nodeId_slotKey\",\"state\",\"codeVerifier\",\"providerId\",\"requestedScopesJson\",\"encryptedJson\",\"encryptionKeyId\",\"schemaVersion\",\"connectedEmail\",\"connectedAt\",\"scopesJson\",\"typeId\",\"displayName\",\"sourceKind\",\"publicConfigJson\",\"secretRefJson\",\"tagsJson\",\"setupStatus\",\"stateJson\",\"workflowId_nodeId\",\"isActive\",\"copiedFromRunId\",\"runId\",\"startedAt\",\"parentJson\",\"executionOptionsJson\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"),
|
|
13475
|
-
graph: "wgSAAfABC4ACAADBAwAwgQIAAAQAEIICAADBAwAwiAIBAIcDACG1AgEAhwMAIbkCAQCHAwAhzgIBAIcDACHSAgEAAAAB0wIBAIcDACHUAgEAnAMAIdUCAQCcAwAhAQAAAAEAIAEAAAABACALgAIAAMEDADCBAgAABAAQggIAAMEDADCIAgEAhwMAIbUCAQCHAwAhuQIBAIcDACHOAgEAhwMAIdICAQCHAwAh0wIBAIcDACHUAgEAnAMAIdUCAQCcAwAhAtQCAADHAwAg1QIAAMcDACADAAAABAAgAwAABQAwBAAAAQAgAwAAAAQAIAMAAAUAMAQAAAEAIAMAAAAEACADAAAFADAEAAABACAIiAIBAAAAAbUCAQAAAAG5AgEAAAABzgIBAAAAAdICAQAAAAHTAgEAAAAB1AIBAAAAAdUCAQAAAAEBCAAACQAgCIgCAQAAAAG1AgEAAAABuQIBAAAAAc4CAQAAAAHSAgEAAAAB0wIBAAAAAdQCAQAAAAHVAgEAAAABAQgAAAsAMAEIAAALADAIiAIBAMUDACG1AgEAxQMAIbkCAQDFAwAhzgIBAMUDACHSAgEAxQMAIdMCAQDFAwAh1AIBAMsDACHVAgEAywMAIQIAAAABACAIAAAOACAIiAIBAMUDACG1AgEAxQMAIbkCAQDFAwAhzgIBAMUDACHSAgEAxQMAIdMCAQDFAwAh1AIBAMsDACHVAgEAywMAIQIAAAAEACAIAAAQACACAAAABAAgCAAAEAAgAwAAAAEAIA8AAAkAIBAAAA4AIAEAAAABACABAAAABAAgBRUAAK4EACAWAACwBAAgFwAArwQAINQCAADHAwAg1QIAAMcDACALgAIAAMADADCBAgAAFwAQggIAAMADADCIAgEA_wIAIbUCAQD_AgAhuQIBAP8CACHOAgEA_wIAIdICAQD_AgAh0wIBAP8CACHUAgEAiwMAIdUCAQCLAwAhAwAAAAQAIAMAABYAMBQAABcAIAMAAAAEACADAAAFADAEAAABACAHgAIAAL8DADCBAgAAHQAQggIAAL8DADCIAgEAhwMAIbkCAQAAAAHOAgEAhwMAIdECAQCcAwAhAQAAABoAIAEAAAAaACAHgAIAAL8DADCBAgAAHQAQggIAAL8DADCIAgEAhwMAIbkCAQCHAwAhzgIBAIcDACHRAgEAnAMAIQHRAgAAxwMAIAMAAAAdACADAAAeADAEAAAaACADAAAAHQAgAwAAHgAwBAAAGgAgAwAAAB0AIAMAAB4AMAQAABoAIASIAgEAAAABuQIBAAAAAc4CAQAAAAHRAgEAAAABAQgAACIAIASIAgEAAAABuQIBAAAAAc4CAQAAAAHRAgEAAAABAQgAACQAMAEIAAAkADAEiAIBAMUDACG5AgEAxQMAIc4CAQDFAwAh0QIBAMsDACECAAAAGgAgCAAAJwAgBIgCAQDFAwAhuQIBAMUDACHOAgEAxQMAIdECAQDLAwAhAgAAAB0AIAgAACkAIAIAAAAdACAIAAApACADAAAAGgAgDwAAIgAgEAAAJwAgAQAAABoAIAEAAAAdACAEFQAAqwQAIBYAAK0EACAXAACsBAAg0QIAAMcDACAHgAIAAL4DADCBAgAAMAAQggIAAL4DADCIAgEA_wIAIbkCAQD_AgAhzgIBAP8CACHRAgEAiwMAIQMAAAAdACADAAAvADAUAAAwACADAAAAHQAgAwAAHgAwBAAAGgAgBoACAAC9AwAwgQIAADYAEIICAAC9AwAwiAIBAIcDACG5AgEAAAAB0AIgAJ0DACEBAAAAMwAgAQAAADMAIAaAAgAAvQMAMIECAAA2ABCCAgAAvQMAMIgCAQCHAwAhuQIBAIcDACHQAiAAnQMAIQADAAAANgAgAwAANwAwBAAAMwAgAwAAADYAIAMAADcAMAQAADMAIAMAAAA2ACADAAA3ADAEAAAzACADiAIBAAAAAbkCAQAAAAHQAiAAAAABAQgAADsAIAOIAgEAAAABuQIBAAAAAdACIAAAAAEBCAAAPQAwAQgAAD0AMAOIAgEAxQMAIbkCAQDFAwAh0AIgAN8DACECAAAAMwAgCAAAQAAgA4gCAQDFAwAhuQIBAMUDACHQAiAA3wMAIQIAAAA2ACAIAABCACACAAAANgAgCAAAQgAgAwAAADMAIA8AADsAIBAAAEAAIAEAAAAzACABAAAANgAgAxUAAKgEACAWAACqBAAgFwAAqQQAIAaAAgAAvAMAMIECAABJABCCAgAAvAMAMIgCAQD_AgAhuQIBAP8CACHQAiAAmAMAIQMAAAA2ACADAABIADAUAABJACADAAAANgAgAwAANwAwBAAAMwAgCIACAAC6AwAwgQIAAE8AEIICAAC6AwAwiAIBAIcDACG5AgEAhwMAIboCAQCHAwAhzgIBAIcDACHPAgAAuwMAIAEAAABMACABAAAATAAgB4ACAAC6AwAwgQIAAE8AEIICAAC6AwAwiAIBAIcDACG5AgEAhwMAIboCAQCHAwAhzgIBAIcDACEAAwAAAE8AIAMAAFAAMAQAAEwAIAMAAABPACADAABQADAEAABMACADAAAATwAgAwAAUAAwBAAATAAgBIgCAQAAAAG5AgEAAAABugIBAAAAAc4CAQAAAAEBCAAAVAAgBIgCAQAAAAG5AgEAAAABugIBAAAAAc4CAQAAAAEBCAAAVgAwAQgAAFYAMASIAgEAxQMAIbkCAQDFAwAhugIBAMUDACHOAgEAxQMAIQIAAABMACAIAABZACAEiAIBAMUDACG5AgEAxQMAIboCAQDFAwAhzgIBAMUDACECAAAATwAgCAAAWwAgAgAAAE8AIAgAAFsAIAMAAABMACAPAABUACAQAABZACABAAAATAAgAQAAAE8AIAMVAAClBAAgFgAApwQAIBcAAKYEACAHgAIAALkDADCBAgAAYgAQggIAALkDADCIAgEA_wIAIbkCAQD_AgAhugIBAP8CACHOAgEA_wIAIQMAAABPACADAABhADAUAABiACADAAAATwAgAwAAUAAwBAAATAAgDYACAAC4AwAwgQIAAGgAEIICAAC4AwAwhwIBAIcDACGIAgEAhwMAIbQCAQAAAAHHAgEAhwMAIcgCAQCHAwAhyQIBAIcDACHKAgEAhwMAIcsCAQCHAwAhzAIBAIcDACHNAgEAhwMAIQEAAABlACABAAAAZQAgDYACAAC4AwAwgQIAAGgAEIICAAC4AwAwhwIBAIcDACGIAgEAhwMAIbQCAQCHAwAhxwIBAIcDACHIAgEAhwMAIckCAQCHAwAhygIBAIcDACHLAgEAhwMAIcwCAQCHAwAhzQIBAIcDACEAAwAAAGgAIAMAAGkAMAQAAGUAIAMAAABoACADAABpADAEAABlACADAAAAaAAgAwAAaQAwBAAAZQAgCocCAQAAAAGIAgEAAAABtAIBAAAAAccCAQAAAAHIAgEAAAAByQIBAAAAAcoCAQAAAAHLAgEAAAABzAIBAAAAAc0CAQAAAAEBCAAAbQAgCocCAQAAAAGIAgEAAAABtAIBAAAAAccCAQAAAAHIAgEAAAAByQIBAAAAAcoCAQAAAAHLAgEAAAABzAIBAAAAAc0CAQAAAAEBCAAAbwAwAQgAAG8AMAqHAgEAxQMAIYgCAQDFAwAhtAIBAMUDACHHAgEAxQMAIcgCAQDFAwAhyQIBAMUDACHKAgEAxQMAIcsCAQDFAwAhzAIBAMUDACHNAgEAxQMAIQIAAABlACAIAAByACAKhwIBAMUDACGIAgEAxQMAIbQCAQDFAwAhxwIBAMUDACHIAgEAxQMAIckCAQDFAwAhygIBAMUDACHLAgEAxQMAIcwCAQDFAwAhzQIBAMUDACECAAAAaAAgCAAAdAAgAgAAAGgAIAgAAHQAIAMAAABlACAPAABtACAQAAByACABAAAAZQAgAQAAAGgAIAMVAACiBAAgFgAApAQAIBcAAKMEACANgAIAALcDADCBAgAAewAQggIAALcDADCHAgEA_wIAIYgCAQD_AgAhtAIBAP8CACHHAgEA_wIAIcgCAQD_AgAhyQIBAP8CACHKAgEA_wIAIcsCAQD_AgAhzAIBAP8CACHNAgEA_wIAIQMAAABoACADAAB6ADAUAAB7ACADAAAAaAAgAwAAaQAwBAAAZQAgCIACAAC2AwAwgQIAAIEBABCCAgAAtgMAMIgCAQCHAwAhtAIBAAAAAcECAQCHAwAhwgIBAIcDACHDAgIAtAMAIQEAAAB-ACABAAAAfgAgCIACAAC2AwAwgQIAAIEBABCCAgAAtgMAMIgCAQCHAwAhtAIBAIcDACHBAgEAhwMAIcICAQCHAwAhwwICALQDACEAAwAAAIEBACADAACCAQAwBAAAfgAgAwAAAIEBACADAACCAQAwBAAAfgAgAwAAAIEBACADAACCAQAwBAAAfgAgBYgCAQAAAAG0AgEAAAABwQIBAAAAAcICAQAAAAHDAgIAAAABAQgAAIYBACAFiAIBAAAAAbQCAQAAAAHBAgEAAAABwgIBAAAAAcMCAgAAAAEBCAAAiAEAMAEIAACIAQAwBYgCAQDFAwAhtAIBAMUDACHBAgEAxQMAIcICAQDFAwAhwwICAJwEACECAAAAfgAgCAAAiwEAIAWIAgEAxQMAIbQCAQDFAwAhwQIBAMUDACHCAgEAxQMAIcMCAgCcBAAhAgAAAIEBACAIAACNAQAgAgAAAIEBACAIAACNAQAgAwAAAH4AIA8AAIYBACAQAACLAQAgAQAAAH4AIAEAAACBAQAgBRUAAJ0EACAWAACgBAAgFwAAnwQAIGgAAJ4EACBpAAChBAAgCIACAAC1AwAwgQIAAJQBABCCAgAAtQMAMIgCAQD_AgAhtAIBAP8CACHBAgEA_wIAIcICAQD_AgAhwwICALADACEDAAAAgQEAIAMAAJMBADAUAACUAQAgAwAAAIEBACADAACCAQAwBAAAfgAgDIACAACzAwAwgQIAAJoBABCCAgAAswMAMIgCAQCHAwAhtAIBAAAAAb8CAQCHAwAhwQIBAIcDACHCAgEAhwMAIcMCAgC0AwAhxAIBAJwDACHFAgEAnAMAIcYCAQCHAwAhAQAAAJcBACABAAAAlwEAIAyAAgAAswMAMIECAACaAQAQggIAALMDADCIAgEAhwMAIbQCAQCHAwAhvwIBAIcDACHBAgEAhwMAIcICAQCHAwAhwwICALQDACHEAgEAnAMAIcUCAQCcAwAhxgIBAIcDACECxAIAAMcDACDFAgAAxwMAIAMAAACaAQAgAwAAmwEAMAQAAJcBACADAAAAmgEAIAMAAJsBADAEAACXAQAgAwAAAJoBACADAACbAQAwBAAAlwEAIAmIAgEAAAABtAIBAAAAAb8CAQAAAAHBAgEAAAABwgIBAAAAAcMCAgAAAAHEAgEAAAABxQIBAAAAAcYCAQAAAAEBCAAAnwEAIAmIAgEAAAABtAIBAAAAAb8CAQAAAAHBAgEAAAABwgIBAAAAAcMCAgAAAAHEAgEAAAABxQIBAAAAAcYCAQAAAAEBCAAAoQEAMAEIAAChAQAwCYgCAQDFAwAhtAIBAMUDACG_AgEAxQMAIcECAQDFAwAhwgIBAMUDACHDAgIAnAQAIcQCAQDLAwAhxQIBAMsDACHGAgEAxQMAIQIAAACXAQAgCAAApAEAIAmIAgEAxQMAIbQCAQDFAwAhvwIBAMUDACHBAgEAxQMAIcICAQDFAwAhwwICAJwEACHEAgEAywMAIcUCAQDLAwAhxgIBAMUDACECAAAAmgEAIAgAAKYBACACAAAAmgEAIAgAAKYBACADAAAAlwEAIA8AAJ8BACAQAACkAQAgAQAAAJcBACABAAAAmgEAIAcVAACXBAAgFgAAmgQAIBcAAJkEACBoAACYBAAgaQAAmwQAIMQCAADHAwAgxQIAAMcDACAMgAIAAK8DADCBAgAArQEAEIICAACvAwAwiAIBAP8CACG0AgEA_wIAIb8CAQD_AgAhwQIBAP8CACHCAgEA_wIAIcMCAgCwAwAhxAIBAIsDACHFAgEAiwMAIcYCAQD_AgAhAwAAAJoBACADAACsAQAwFAAArQEAIAMAAACaAQAgAwAAmwEAMAQAAJcBACAKgAIAAK4DADCBAgAAswEAEIICAACuAwAwhwIBAIcDACGnAgEAhwMAIbQCAQCHAwAhvQIBAAAAAb4CAQCcAwAhvwIBAJwDACHAAgEAhwMAIQEAAACwAQAgAQAAALABACAKgAIAAK4DADCBAgAAswEAEIICAACuAwAwhwIBAIcDACGnAgEAhwMAIbQCAQCHAwAhvQIBAIcDACG-AgEAnAMAIb8CAQCcAwAhwAIBAIcDACECvgIAAMcDACC_AgAAxwMAIAMAAACzAQAgAwAAtAEAMAQAALABACADAAAAswEAIAMAALQBADAEAACwAQAgAwAAALMBACADAAC0AQAwBAAAsAEAIAeHAgEAAAABpwIBAAAAAbQCAQAAAAG9AgEAAAABvgIBAAAAAb8CAQAAAAHAAgEAAAABAQgAALgBACAHhwIBAAAAAacCAQAAAAG0AgEAAAABvQIBAAAAAb4CAQAAAAG_AgEAAAABwAIBAAAAAQEIAAC6AQAwAQgAALoBADAHhwIBAMUDACGnAgEAxQMAIbQCAQDFAwAhvQIBAMUDACG-AgEAywMAIb8CAQDLAwAhwAIBAMUDACECAAAAsAEAIAgAAL0BACAHhwIBAMUDACGnAgEAxQMAIbQCAQDFAwAhvQIBAMUDACG-AgEAywMAIb8CAQDLAwAhwAIBAMUDACECAAAAswEAIAgAAL8BACACAAAAswEAIAgAAL8BACADAAAAsAEAIA8AALgBACAQAAC9AQAgAQAAALABACABAAAAswEAIAUVAACUBAAgFgAAlgQAIBcAAJUEACC-AgAAxwMAIL8CAADHAwAgCoACAACtAwAwgQIAAMYBABCCAgAArQMAMIcCAQD_AgAhpwIBAP8CACG0AgEA_wIAIb0CAQD_AgAhvgIBAIsDACG_AgEAiwMAIcACAQD_AgAhAwAAALMBACADAADFAQAwFAAAxgEAIAMAAACzAQAgAwAAtAEAMAQAALABACAJgAIAAKsDADCBAgAAzAEAEIICAACrAwAwiAIBAIcDACG0AgEAhwMAIbkCAQCHAwAhugIBAIcDACG7AgEAhwMAIbwCAACsAwAgAQAAAMkBACABAAAAyQEAIAiAAgAAqwMAMIECAADMAQAQggIAAKsDADCIAgEAhwMAIbQCAQCHAwAhuQIBAIcDACG6AgEAhwMAIbsCAQCHAwAhAAMAAADMAQAgAwAAzQEAMAQAAMkBACADAAAAzAEAIAMAAM0BADAEAADJAQAgAwAAAMwBACADAADNAQAwBAAAyQEAIAWIAgEAAAABtAIBAAAAAbkCAQAAAAG6AgEAAAABuwIBAAAAAQEIAADRAQAgBYgCAQAAAAG0AgEAAAABuQIBAAAAAboCAQAAAAG7AgEAAAABAQgAANMBADABCAAA0wEAMAWIAgEAxQMAIbQCAQDFAwAhuQIBAMUDACG6AgEAxQMAIbsCAQDFAwAhAgAAAMkBACAIAADWAQAgBYgCAQDFAwAhtAIBAMUDACG5AgEAxQMAIboCAQDFAwAhuwIBAMUDACECAAAAzAEAIAgAANgBACACAAAAzAEAIAgAANgBACADAAAAyQEAIA8AANEBACAQAADWAQAgAQAAAMkBACABAAAAzAEAIAMVAACRBAAgFgAAkwQAIBcAAJIEACAIgAIAAKoDADCBAgAA3wEAEIICAACqAwAwiAIBAP8CACG0AgEA_wIAIbkCAQD_AgAhugIBAP8CACG7AgEA_wIAIQMAAADMAQAgAwAA3gEAMBQAAN8BACADAAAAzAEAIAMAAM0BADAEAADJAQAgCoACAACpAwAwgQIAAOUBABCCAgAAqQMAMKcCAQCcAwAhswIBAAAAAbQCAQCHAwAhtQIBAIcDACG2AgEAnAMAIbcCAQCHAwAhuAIBAIcDACEBAAAA4gEAIAEAAADiAQAgCoACAACpAwAwgQIAAOUBABCCAgAAqQMAMKcCAQCcAwAhswIBAIcDACG0AgEAhwMAIbUCAQCHAwAhtgIBAJwDACG3AgEAhwMAIbgCAQCHAwAhAqcCAADHAwAgtgIAAMcDACADAAAA5QEAIAMAAOYBADAEAADiAQAgAwAAAOUBACADAADmAQAwBAAA4gEAIAMAAADlAQAgAwAA5gEAMAQAAOIBACAHpwIBAAAAAbMCAQAAAAG0AgEAAAABtQIBAAAAAbYCAQAAAAG3AgEAAAABuAIBAAAAAQEIAADqAQAgB6cCAQAAAAGzAgEAAAABtAIBAAAAAbUCAQAAAAG2AgEAAAABtwIBAAAAAbgCAQAAAAEBCAAA7AEAMAEIAADsAQAwB6cCAQDLAwAhswIBAMUDACG0AgEAxQMAIbUCAQDFAwAhtgIBAMsDACG3AgEAxQMAIbgCAQDFAwAhAgAAAOIBACAIAADvAQAgB6cCAQDLAwAhswIBAMUDACG0AgEAxQMAIbUCAQDFAwAhtgIBAMsDACG3AgEAxQMAIbgCAQDFAwAhAgAAAOUBACAIAADxAQAgAgAAAOUBACAIAADxAQAgAwAAAOIBACAPAADqAQAgEAAA7wEAIAEAAADiAQAgAQAAAOUBACAFFQAAjgQAIBYAAJAEACAXAACPBAAgpwIAAMcDACC2AgAAxwMAIAqAAgAAqAMAMIECAAD4AQAQggIAAKgDADCnAgEAiwMAIbMCAQD_AgAhtAIBAP8CACG1AgEA_wIAIbYCAQCLAwAhtwIBAP8CACG4AgEA_wIAIQMAAADlAQAgAwAA9wEAMBQAAPgBACADAAAA5QEAIAMAAOYBADAEAADiAQAgD60BAACeAwAgrgEAAJ8DACCvAQAAoAMAIIACAACbAwAwgQIAAI0CABCCAgAAmwMAMIMCAQAAAAGHAkAAiAMAIYgCQACIAwAhqQIBAJwDACGqAgEAAAABqwIgAJ0DACGsAgEAnAMAIa0CAQCcAwAhrgIBAIcDACEBAAAA-wEAIBWsAQAAowMAIIACAACmAwAwgQIAAP0BABCCAgAApgMAMIMCAQCHAwAhhwJAAIgDACGIAkAAiAMAIZYCAQCHAwAhmQIBAIcDACGaAgEAhwMAIZsCAQCHAwAhnAIBAJwDACGdAgEAnAMAIZ4CAQCcAwAhnwICAKcDACGgAkAAogMAIaECQACiAwAhogIBAJwDACGjAgEAnAMAIaQCAQCcAwAhpQIBAJwDACELrAEAAI0EACCcAgAAxwMAIJ0CAADHAwAgngIAAMcDACCfAgAAxwMAIKACAADHAwAgoQIAAMcDACCiAgAAxwMAIKMCAADHAwAgpAIAAMcDACClAgAAxwMAIBasAQAAowMAIIACAACmAwAwgQIAAP0BABCCAgAApgMAMIMCAQAAAAGHAkAAiAMAIYgCQACIAwAhlgIBAIcDACGZAgEAhwMAIZoCAQCHAwAhmwIBAIcDACGcAgEAnAMAIZ0CAQCcAwAhngIBAJwDACGfAgIApwMAIaACQACiAwAhoQJAAKIDACGiAgEAnAMAIaMCAQCcAwAhpAIBAJwDACGlAgEAnAMAIbICAAClAwAgAwAAAP0BACADAAD-AQAwBAAA_wEAIAysAQAAowMAIIACAACkAwAwgQIAAIECABCCAgAApAMAMIMCAQCHAwAhhgJAAIgDACGHAkAAiAMAIYgCQACIAwAhlQIBAIcDACGWAgEAhwMAIZcCAQCcAwAhmAIBAJwDACEDrAEAAI0EACCXAgAAxwMAIJgCAADHAwAgDKwBAACjAwAggAIAAKQDADCBAgAAgQIAEIICAACkAwAwgwIBAAAAAYYCQACIAwAhhwJAAIgDACGIAkAAiAMAIZUCAQAAAAGWAgEAhwMAIZcCAQCcAwAhmAIBAJwDACEDAAAAgQIAIAMAAIICADAEAACDAgAgCqwBAACjAwAggAIAAKEDADCBAgAAhQIAEIICAAChAwAwgwIBAIcDACGHAkAAiAMAIZYCAQCHAwAhpgIBAIcDACGnAkAAiAMAIagCQACiAwAhAqwBAACNBAAgqAIAAMcDACAKrAEAAKMDACCAAgAAoQMAMIECAACFAgAQggIAAKEDADCDAgEAAAABhwJAAIgDACGWAgEAhwMAIaYCAQAAAAGnAkAAiAMAIagCQACiAwAhAwAAAIUCACADAACGAgAwBAAAhwIAIAEAAAD9AQAgAQAAAIECACABAAAAhQIAIAEAAAD7AQAgD60BAACeAwAgrgEAAJ8DACCvAQAAoAMAIIACAACbAwAwgQIAAI0CABCCAgAAmwMAMIMCAQCHAwAhhwJAAIgDACGIAkAAiAMAIakCAQCcAwAhqgIBAJwDACGrAiAAnQMAIawCAQCcAwAhrQIBAJwDACGuAgEAhwMAIQetAQAAigQAIK4BAACLBAAgrwEAAIwEACCpAgAAxwMAIKoCAADHAwAgrAIAAMcDACCtAgAAxwMAIAMAAACNAgAgAwAAjgIAMAQAAPsBACADAAAAjQIAIAMAAI4CADAEAAD7AQAgAwAAAI0CACADAACOAgAwBAAA-wEAIAytAQAAhwQAIK4BAACIBAAgrwEAAIkEACCDAgEAAAABhwJAAAAAAYgCQAAAAAGpAgEAAAABqgIBAAAAAasCIAAAAAGsAgEAAAABrQIBAAAAAa4CAQAAAAEBCAAAkgIAIAmDAgEAAAABhwJAAAAAAYgCQAAAAAGpAgEAAAABqgIBAAAAAasCIAAAAAGsAgEAAAABrQIBAAAAAa4CAQAAAAEBCAAAlAIAMAEIAACUAgAwDK0BAADgAwAgrgEAAOEDACCvAQAA4gMAIIMCAQDFAwAhhwJAAMYDACGIAkAAxgMAIakCAQDLAwAhqgIBAMsDACGrAiAA3wMAIawCAQDLAwAhrQIBAMsDACGuAgEAxQMAIQIAAAD7AQAgCAAAlwIAIAmDAgEAxQMAIYcCQADGAwAhiAJAAMYDACGpAgEAywMAIaoCAQDLAwAhqwIgAN8DACGsAgEAywMAIa0CAQDLAwAhrgIBAMUDACECAAAAjQIAIAgAAJkCACACAAAAjQIAIAgAAJkCACADAAAA-wEAIA8AAJICACAQAACXAgAgAQAAAPsBACABAAAAjQIAIAcVAADcAwAgFgAA3gMAIBcAAN0DACCpAgAAxwMAIKoCAADHAwAgrAIAAMcDACCtAgAAxwMAIAyAAgAAlwMAMIECAACgAgAQggIAAJcDADCDAgEA_wIAIYcCQACAAwAhiAJAAIADACGpAgEAiwMAIaoCAQCLAwAhqwIgAJgDACGsAgEAiwMAIa0CAQCLAwAhrgIBAP8CACEDAAAAjQIAIAMAAJ8CADAUAACgAgAgAwAAAI0CACADAACOAgAwBAAA-wEAIAEAAACHAgAgAQAAAIcCACADAAAAhQIAIAMAAIYCADAEAACHAgAgAwAAAIUCACADAACGAgAwBAAAhwIAIAMAAACFAgAgAwAAhgIAMAQAAIcCACAHrAEAANsDACCDAgEAAAABhwJAAAAAAZYCAQAAAAGmAgEAAAABpwJAAAAAAagCQAAAAAEBCAAAqAIAIAaDAgEAAAABhwJAAAAAAZYCAQAAAAGmAgEAAAABpwJAAAAAAagCQAAAAAEBCAAAqgIAMAEIAACqAgAwB6wBAADaAwAggwIBAMUDACGHAkAAxgMAIZYCAQDFAwAhpgIBAMUDACGnAkAAxgMAIagCQADUAwAhAgAAAIcCACAIAACtAgAgBoMCAQDFAwAhhwJAAMYDACGWAgEAxQMAIaYCAQDFAwAhpwJAAMYDACGoAkAA1AMAIQIAAACFAgAgCAAArwIAIAIAAACFAgAgCAAArwIAIAMAAACHAgAgDwAAqAIAIBAAAK0CACABAAAAhwIAIAEAAACFAgAgBBUAANcDACAWAADZAwAgFwAA2AMAIKgCAADHAwAgCYACAACWAwAwgQIAALYCABCCAgAAlgMAMIMCAQD_AgAhhwJAAIADACGWAgEA_wIAIaYCAQD_AgAhpwJAAIADACGoAkAAkQMAIQMAAACFAgAgAwAAtQIAMBQAALYCACADAAAAhQIAIAMAAIYCADAEAACHAgAgAQAAAP8BACABAAAA_wEAIAMAAAD9AQAgAwAA_gEAMAQAAP8BACADAAAA_QEAIAMAAP4BADAEAAD_AQAgAwAAAP0BACADAAD-AQAwBAAA_wEAIBKsAQAA1gMAIIMCAQAAAAGHAkAAAAABiAJAAAAAAZYCAQAAAAGZAgEAAAABmgIBAAAAAZsCAQAAAAGcAgEAAAABnQIBAAAAAZ4CAQAAAAGfAgIAAAABoAJAAAAAAaECQAAAAAGiAgEAAAABowIBAAAAAaQCAQAAAAGlAgEAAAABAQgAAL4CACARgwIBAAAAAYcCQAAAAAGIAkAAAAABlgIBAAAAAZkCAQAAAAGaAgEAAAABmwIBAAAAAZwCAQAAAAGdAgEAAAABngIBAAAAAZ8CAgAAAAGgAkAAAAABoQJAAAAAAaICAQAAAAGjAgEAAAABpAIBAAAAAaUCAQAAAAEBCAAAwAIAMAEIAADAAgAwEqwBAADVAwAggwIBAMUDACGHAkAAxgMAIYgCQADGAwAhlgIBAMUDACGZAgEAxQMAIZoCAQDFAwAhmwIBAMUDACGcAgEAywMAIZ0CAQDLAwAhngIBAMsDACGfAgIA0wMAIaACQADUAwAhoQJAANQDACGiAgEAywMAIaMCAQDLAwAhpAIBAMsDACGlAgEAywMAIQIAAAD_AQAgCAAAwwIAIBGDAgEAxQMAIYcCQADGAwAhiAJAAMYDACGWAgEAxQMAIZkCAQDFAwAhmgIBAMUDACGbAgEAxQMAIZwCAQDLAwAhnQIBAMsDACGeAgEAywMAIZ8CAgDTAwAhoAJAANQDACGhAkAA1AMAIaICAQDLAwAhowIBAMsDACGkAgEAywMAIaUCAQDLAwAhAgAAAP0BACAIAADFAgAgAgAAAP0BACAIAADFAgAgAwAAAP8BACAPAAC-AgAgEAAAwwIAIAEAAAD_AQAgAQAAAP0BACAPFQAAzgMAIBYAANEDACAXAADQAwAgaAAAzwMAIGkAANIDACCcAgAAxwMAIJ0CAADHAwAgngIAAMcDACCfAgAAxwMAIKACAADHAwAgoQIAAMcDACCiAgAAxwMAIKMCAADHAwAgpAIAAMcDACClAgAAxwMAIBSAAgAAjwMAMIECAADMAgAQggIAAI8DADCDAgEA_wIAIYcCQACAAwAhiAJAAIADACGWAgEA_wIAIZkCAQD_AgAhmgIBAP8CACGbAgEA_wIAIZwCAQCLAwAhnQIBAIsDACGeAgEAiwMAIZ8CAgCQAwAhoAJAAJEDACGhAkAAkQMAIaICAQCLAwAhowIBAIsDACGkAgEAiwMAIaUCAQCLAwAhAwAAAP0BACADAADLAgAwFAAAzAIAIAMAAAD9AQAgAwAA_gEAMAQAAP8BACABAAAAgwIAIAEAAACDAgAgAwAAAIECACADAACCAgAwBAAAgwIAIAMAAACBAgAgAwAAggIAMAQAAIMCACADAAAAgQIAIAMAAIICADAEAACDAgAgCawBAADNAwAggwIBAAAAAYYCQAAAAAGHAkAAAAABiAJAAAAAAZUCAQAAAAGWAgEAAAABlwIBAAAAAZgCAQAAAAEBCAAA1AIAIAiDAgEAAAABhgJAAAAAAYcCQAAAAAGIAkAAAAABlQIBAAAAAZYCAQAAAAGXAgEAAAABmAIBAAAAAQEIAADWAgAwAQgAANYCADAJrAEAAMwDACCDAgEAxQMAIYYCQADGAwAhhwJAAMYDACGIAkAAxgMAIZUCAQDFAwAhlgIBAMUDACGXAgEAywMAIZgCAQDLAwAhAgAAAIMCACAIAADZAgAgCIMCAQDFAwAhhgJAAMYDACGHAkAAxgMAIYgCQADGAwAhlQIBAMUDACGWAgEAxQMAIZcCAQDLAwAhmAIBAMsDACECAAAAgQIAIAgAANsCACACAAAAgQIAIAgAANsCACADAAAAgwIAIA8AANQCACAQAADZAgAgAQAAAIMCACABAAAAgQIAIAUVAADIAwAgFgAAygMAIBcAAMkDACCXAgAAxwMAIJgCAADHAwAgC4ACAACKAwAwgQIAAOICABCCAgAAigMAMIMCAQD_AgAhhgJAAIADACGHAkAAgAMAIYgCQACAAwAhlQIBAP8CACGWAgEA_wIAIZcCAQCLAwAhmAIBAIsDACEDAAAAgQIAIAMAAOECADAUAADiAgAgAwAAAIECACADAACCAgAwBAAAgwIAIAqAAgAAhgMAMIECAADoAgAQggIAAIYDADCDAgEAAAABhAIBAIcDACGFAgEAhwMAIYYCQACIAwAhhwJAAIgDACGIAkAAiAMAIZQCAACJAwAgAQAAAOUCACABAAAA5QIAIAmAAgAAhgMAMIECAADoAgAQggIAAIYDADCDAgEAhwMAIYQCAQCHAwAhhQIBAIcDACGGAkAAiAMAIYcCQACIAwAhiAJAAIgDACEAAwAAAOgCACADAADpAgAwBAAA5QIAIAMAAADoAgAgAwAA6QIAMAQAAOUCACADAAAA6AIAIAMAAOkCADAEAADlAgAgBoMCAQAAAAGEAgEAAAABhQIBAAAAAYYCQAAAAAGHAkAAAAABiAJAAAAAAQEIAADtAgAgBoMCAQAAAAGEAgEAAAABhQIBAAAAAYYCQAAAAAGHAkAAAAABiAJAAAAAAQEIAADvAgAwAQgAAO8CADAGgwIBAMUDACGEAgEAxQMAIYUCAQDFAwAhhgJAAMYDACGHAkAAxgMAIYgCQADGAwAhAgAAAOUCACAIAADyAgAgBoMCAQDFAwAhhAIBAMUDACGFAgEAxQMAIYYCQADGAwAhhwJAAMYDACGIAkAAxgMAIQIAAADoAgAgCAAA9AIAIAIAAADoAgAgCAAA9AIAIAMAAADlAgAgDwAA7QIAIBAAAPICACABAAAA5QIAIAEAAADoAgAgAxUAAMIDACAWAADEAwAgFwAAwwMAIAmAAgAA_gIAMIECAAD7AgAQggIAAP4CADCDAgEA_wIAIYQCAQD_AgAhhQIBAP8CACGGAkAAgAMAIYcCQACAAwAhiAJAAIADACEDAAAA6AIAIAMAAPoCADAUAAD7AgAgAwAAAOgCACADAADpAgAwBAAA5QIAIAmAAgAA_gIAMIECAAD7AgAQggIAAP4CADCDAgEA_wIAIYQCAQD_AgAhhQIBAP8CACGGAkAAgAMAIYcCQACAAwAhiAJAAIADACEOFQAAggMAIBYAAIUDACAXAACFAwAgiQIBAAAAAYoCAQAAAASLAgEAAAAEjAIBAAAAAY0CAQAAAAGOAgEAAAABjwIBAAAAAZACAQCEAwAhkQIBAAAAAZICAQAAAAGTAgEAAAABCxUAAIIDACAWAACDAwAgFwAAgwMAIIkCQAAAAAGKAkAAAAAEiwJAAAAABIwCQAAAAAGNAkAAAAABjgJAAAAAAY8CQAAAAAGQAkAAgQMAIQsVAACCAwAgFgAAgwMAIBcAAIMDACCJAkAAAAABigJAAAAABIsCQAAAAASMAkAAAAABjQJAAAAAAY4CQAAAAAGPAkAAAAABkAJAAIEDACEIiQICAAAAAYoCAgAAAASLAgIAAAAEjAICAAAAAY0CAgAAAAGOAgIAAAABjwICAAAAAZACAgCCAwAhCIkCQAAAAAGKAkAAAAAEiwJAAAAABIwCQAAAAAGNAkAAAAABjgJAAAAAAY8CQAAAAAGQAkAAgwMAIQ4VAACCAwAgFgAAhQMAIBcAAIUDACCJAgEAAAABigIBAAAABIsCAQAAAASMAgEAAAABjQIBAAAAAY4CAQAAAAGPAgEAAAABkAIBAIQDACGRAgEAAAABkgIBAAAAAZMCAQAAAAELiQIBAAAAAYoCAQAAAASLAgEAAAAEjAIBAAAAAY0CAQAAAAGOAgEAAAABjwIBAAAAAZACAQCFAwAhkQIBAAAAAZICAQAAAAGTAgEAAAABCYACAACGAwAwgQIAAOgCABCCAgAAhgMAMIMCAQCHAwAhhAIBAIcDACGFAgEAhwMAIYYCQACIAwAhhwJAAIgDACGIAkAAiAMAIQuJAgEAAAABigIBAAAABIsCAQAAAASMAgEAAAABjQIBAAAAAY4CAQAAAAGPAgEAAAABkAIBAIUDACGRAgEAAAABkgIBAAAAAZMCAQAAAAEIiQJAAAAAAYoCQAAAAASLAkAAAAAEjAJAAAAAAY0CQAAAAAGOAkAAAAABjwJAAAAAAZACQACDAwAhAoQCAQAAAAGFAgEAAAABC4ACAACKAwAwgQIAAOICABCCAgAAigMAMIMCAQD_AgAhhgJAAIADACGHAkAAgAMAIYgCQACAAwAhlQIBAP8CACGWAgEA_wIAIZcCAQCLAwAhmAIBAIsDACEOFQAAjQMAIBYAAI4DACAXAACOAwAgiQIBAAAAAYoCAQAAAAWLAgEAAAAFjAIBAAAAAY0CAQAAAAGOAgEAAAABjwIBAAAAAZACAQCMAwAhkQIBAAAAAZICAQAAAAGTAgEAAAABDhUAAI0DACAWAACOAwAgFwAAjgMAIIkCAQAAAAGKAgEAAAAFiwIBAAAABYwCAQAAAAGNAgEAAAABjgIBAAAAAY8CAQAAAAGQAgEAjAMAIZECAQAAAAGSAgEAAAABkwIBAAAAAQiJAgIAAAABigICAAAABYsCAgAAAAWMAgIAAAABjQICAAAAAY4CAgAAAAGPAgIAAAABkAICAI0DACELiQIBAAAAAYoCAQAAAAWLAgEAAAAFjAIBAAAAAY0CAQAAAAGOAgEAAAABjwIBAAAAAZACAQCOAwAhkQIBAAAAAZICAQAAAAGTAgEAAAABFIACAACPAwAwgQIAAMwCABCCAgAAjwMAMIMCAQD_AgAhhwJAAIADACGIAkAAgAMAIZYCAQD_AgAhmQIBAP8CACGaAgEA_wIAIZsCAQD_AgAhnAIBAIsDACGdAgEAiwMAIZ4CAQCLAwAhnwICAJADACGgAkAAkQMAIaECQACRAwAhogIBAIsDACGjAgEAiwMAIaQCAQCLAwAhpQIBAIsDACENFQAAjQMAIBYAAI0DACAXAACNAwAgaAAAlQMAIGkAAI0DACCJAgIAAAABigICAAAABYsCAgAAAAWMAgIAAAABjQICAAAAAY4CAgAAAAGPAgIAAAABkAICAJQDACELFQAAjQMAIBYAAJMDACAXAACTAwAgiQJAAAAAAYoCQAAAAAWLAkAAAAAFjAJAAAAAAY0CQAAAAAGOAkAAAAABjwJAAAAAAZACQACSAwAhCxUAAI0DACAWAACTAwAgFwAAkwMAIIkCQAAAAAGKAkAAAAAFiwJAAAAABYwCQAAAAAGNAkAAAAABjgJAAAAAAY8CQAAAAAGQAkAAkgMAIQiJAkAAAAABigJAAAAABYsCQAAAAAWMAkAAAAABjQJAAAAAAY4CQAAAAAGPAkAAAAABkAJAAJMDACENFQAAjQMAIBYAAI0DACAXAACNAwAgaAAAlQMAIGkAAI0DACCJAgIAAAABigICAAAABYsCAgAAAAWMAgIAAAABjQICAAAAAY4CAgAAAAGPAgIAAAABkAICAJQDACEIiQIIAAAAAYoCCAAAAAWLAggAAAAFjAIIAAAAAY0CCAAAAAGOAggAAAABjwIIAAAAAZACCACVAwAhCYACAACWAwAwgQIAALYCABCCAgAAlgMAMIMCAQD_AgAhhwJAAIADACGWAgEA_wIAIaYCAQD_AgAhpwJAAIADACGoAkAAkQMAIQyAAgAAlwMAMIECAACgAgAQggIAAJcDADCDAgEA_wIAIYcCQACAAwAhiAJAAIADACGpAgEAiwMAIaoCAQCLAwAhqwIgAJgDACGsAgEAiwMAIa0CAQCLAwAhrgIBAP8CACEFFQAAggMAIBYAAJoDACAXAACaAwAgiQIgAAAAAZACIACZAwAhBRUAAIIDACAWAACaAwAgFwAAmgMAIIkCIAAAAAGQAiAAmQMAIQKJAiAAAAABkAIgAJoDACEPrQEAAJ4DACCuAQAAnwMAIK8BAACgAwAggAIAAJsDADCBAgAAjQIAEIICAACbAwAwgwIBAIcDACGHAkAAiAMAIYgCQACIAwAhqQIBAJwDACGqAgEAnAMAIasCIACdAwAhrAIBAJwDACGtAgEAnAMAIa4CAQCHAwAhC4kCAQAAAAGKAgEAAAAFiwIBAAAABYwCAQAAAAGNAgEAAAABjgIBAAAAAY8CAQAAAAGQAgEAjgMAIZECAQAAAAGSAgEAAAABkwIBAAAAAQKJAiAAAAABkAIgAJoDACEDrwIAAP0BACCwAgAA_QEAILECAAD9AQAgA68CAACBAgAgsAIAAIECACCxAgAAgQIAIAOvAgAAhQIAILACAACFAgAgsQIAAIUCACAKrAEAAKMDACCAAgAAoQMAMIECAACFAgAQggIAAKEDADCDAgEAhwMAIYcCQACIAwAhlgIBAIcDACGmAgEAhwMAIacCQACIAwAhqAJAAKIDACEIiQJAAAAAAYoCQAAAAAWLAkAAAAAFjAJAAAAAAY0CQAAAAAGOAkAAAAABjwJAAAAAAZACQACTAwAhEa0BAACeAwAgrgEAAJ8DACCvAQAAoAMAIIACAACbAwAwgQIAAI0CABCCAgAAmwMAMIMCAQCHAwAhhwJAAIgDACGIAkAAiAMAIakCAQCcAwAhqgIBAJwDACGrAiAAnQMAIawCAQCcAwAhrQIBAJwDACGuAgEAhwMAIdYCAACNAgAg1wIAAI0CACAMrAEAAKMDACCAAgAApAMAMIECAACBAgAQggIAAKQDADCDAgEAhwMAIYYCQACIAwAhhwJAAIgDACGIAkAAiAMAIZUCAQCHAwAhlgIBAIcDACGXAgEAnAMAIZgCAQCcAwAhApoCAQAAAAGbAgEAAAABFawBAACjAwAggAIAAKYDADCBAgAA_QEAEIICAACmAwAwgwIBAIcDACGHAkAAiAMAIYgCQACIAwAhlgIBAIcDACGZAgEAhwMAIZoCAQCHAwAhmwIBAIcDACGcAgEAnAMAIZ0CAQCcAwAhngIBAJwDACGfAgIApwMAIaACQACiAwAhoQJAAKIDACGiAgEAnAMAIaMCAQCcAwAhpAIBAJwDACGlAgEAnAMAIQiJAgIAAAABigICAAAABYsCAgAAAAWMAgIAAAABjQICAAAAAY4CAgAAAAGPAgIAAAABkAICAI0DACEKgAIAAKgDADCBAgAA-AEAEIICAACoAwAwpwIBAIsDACGzAgEA_wIAIbQCAQD_AgAhtQIBAP8CACG2AgEAiwMAIbcCAQD_AgAhuAIBAP8CACEKgAIAAKkDADCBAgAA5QEAEIICAACpAwAwpwIBAJwDACGzAgEAhwMAIbQCAQCHAwAhtQIBAIcDACG2AgEAnAMAIbcCAQCHAwAhuAIBAIcDACEIgAIAAKoDADCBAgAA3wEAEIICAACqAwAwiAIBAP8CACG0AgEA_wIAIbkCAQD_AgAhugIBAP8CACG7AgEA_wIAIQiAAgAAqwMAMIECAADMAQAQggIAAKsDADCIAgEAhwMAIbQCAQCHAwAhuQIBAIcDACG6AgEAhwMAIbsCAQCHAwAhA7kCAQAAAAG6AgEAAAABuwIBAAAAAQqAAgAArQMAMIECAADGAQAQggIAAK0DADCHAgEA_wIAIacCAQD_AgAhtAIBAP8CACG9AgEA_wIAIb4CAQCLAwAhvwIBAIsDACHAAgEA_wIAIQqAAgAArgMAMIECAACzAQAQggIAAK4DADCHAgEAhwMAIacCAQCHAwAhtAIBAIcDACG9AgEAhwMAIb4CAQCcAwAhvwIBAJwDACHAAgEAhwMAIQyAAgAArwMAMIECAACtAQAQggIAAK8DADCIAgEA_wIAIbQCAQD_AgAhvwIBAP8CACHBAgEA_wIAIcICAQD_AgAhwwICALADACHEAgEAiwMAIcUCAQCLAwAhxgIBAP8CACENFQAAggMAIBYAAIIDACAXAACCAwAgaAAAsgMAIGkAAIIDACCJAgIAAAABigICAAAABIsCAgAAAASMAgIAAAABjQICAAAAAY4CAgAAAAGPAgIAAAABkAICALEDACENFQAAggMAIBYAAIIDACAXAACCAwAgaAAAsgMAIGkAAIIDACCJAgIAAAABigICAAAABIsCAgAAAASMAgIAAAABjQICAAAAAY4CAgAAAAGPAgIAAAABkAICALEDACEIiQIIAAAAAYoCCAAAAASLAggAAAAEjAIIAAAAAY0CCAAAAAGOAggAAAABjwIIAAAAAZACCACyAwAhDIACAACzAwAwgQIAAJoBABCCAgAAswMAMIgCAQCHAwAhtAIBAIcDACG_AgEAhwMAIcECAQCHAwAhwgIBAIcDACHDAgIAtAMAIcQCAQCcAwAhxQIBAJwDACHGAgEAhwMAIQiJAgIAAAABigICAAAABIsCAgAAAASMAgIAAAABjQICAAAAAY4CAgAAAAGPAgIAAAABkAICAIIDACEIgAIAALUDADCBAgAAlAEAEIICAAC1AwAwiAIBAP8CACG0AgEA_wIAIcECAQD_AgAhwgIBAP8CACHDAgIAsAMAIQiAAgAAtgMAMIECAACBAQAQggIAALYDADCIAgEAhwMAIbQCAQCHAwAhwQIBAIcDACHCAgEAhwMAIcMCAgC0AwAhDYACAAC3AwAwgQIAAHsAEIICAAC3AwAwhwIBAP8CACGIAgEA_wIAIbQCAQD_AgAhxwIBAP8CACHIAgEA_wIAIckCAQD_AgAhygIBAP8CACHLAgEA_wIAIcwCAQD_AgAhzQIBAP8CACENgAIAALgDADCBAgAAaAAQggIAALgDADCHAgEAhwMAIYgCAQCHAwAhtAIBAIcDACHHAgEAhwMAIcgCAQCHAwAhyQIBAIcDACHKAgEAhwMAIcsCAQCHAwAhzAIBAIcDACHNAgEAhwMAIQeAAgAAuQMAMIECAABiABCCAgAAuQMAMIgCAQD_AgAhuQIBAP8CACG6AgEA_wIAIc4CAQD_AgAhB4ACAAC6AwAwgQIAAE8AEIICAAC6AwAwiAIBAIcDACG5AgEAhwMAIboCAQCHAwAhzgIBAIcDACECuQIBAAAAAboCAQAAAAEGgAIAALwDADCBAgAASQAQggIAALwDADCIAgEA_wIAIbkCAQD_AgAh0AIgAJgDACEGgAIAAL0DADCBAgAANgAQggIAAL0DADCIAgEAhwMAIbkCAQCHAwAh0AIgAJ0DACEHgAIAAL4DADCBAgAAMAAQggIAAL4DADCIAgEA_wIAIbkCAQD_AgAhzgIBAP8CACHRAgEAiwMAIQeAAgAAvwMAMIECAAAdABCCAgAAvwMAMIgCAQCHAwAhuQIBAIcDACHOAgEAhwMAIdECAQCcAwAhC4ACAADAAwAwgQIAABcAEIICAADAAwAwiAIBAP8CACG1AgEA_wIAIbkCAQD_AgAhzgIBAP8CACHSAgEA_wIAIdMCAQD_AgAh1AIBAIsDACHVAgEAiwMAIQuAAgAAwQMAMIECAAAEABCCAgAAwQMAMIgCAQCHAwAhtQIBAIcDACG5AgEAhwMAIc4CAQCHAwAh0gIBAIcDACHTAgEAhwMAIdQCAQCcAwAh1QIBAJwDACEAAAAB2wIBAAAAAQHbAkAAAAABAAAAAAHbAgEAAAABBQ8AAL4EACAQAADBBAAg2AIAAL8EACDZAgAAwAQAIN4CAAD7AQAgAw8AAL4EACDYAgAAvwQAIN4CAAD7AQAgAAAAAAAF2wICAAAAAeECAgAAAAHiAgIAAAAB4wICAAAAAeQCAgAAAAEB2wJAAAAAAQUPAAC5BAAgEAAAvAQAINgCAAC6BAAg2QIAALsEACDeAgAA-wEAIAMPAAC5BAAg2AIAALoEACDeAgAA-wEAIAAAAAUPAAC0BAAgEAAAtwQAINgCAAC1BAAg2QIAALYEACDeAgAA-wEAIAMPAAC0BAAg2AIAALUEACDeAgAA-wEAIAAAAAHbAiAAAAABCw8AAPsDADAQAACABAAw2AIAAPwDADDZAgAA_QMAMNoCAAD-AwAg2wIAAP8DADDcAgAA_wMAMN0CAAD_AwAw3gIAAP8DADDfAgAAgQQAMOACAACCBAAwCw8AAO8DADAQAAD0AwAw2AIAAPADADDZAgAA8QMAMNoCAADyAwAg2wIAAPMDADDcAgAA8wMAMN0CAADzAwAw3gIAAPMDADDfAgAA9QMAMOACAAD2AwAwCw8AAOMDADAQAADoAwAw2AIAAOQDADDZAgAA5QMAMNoCAADmAwAg2wIAAOcDADDcAgAA5wMAMN0CAADnAwAw3gIAAOcDADDfAgAA6QMAMOACAADqAwAwBYMCAQAAAAGHAkAAAAABpgIBAAAAAacCQAAAAAGoAkAAAAABAgAAAIcCACAPAADuAwAgAwAAAIcCACAPAADuAwAgEAAA7QMAIAEIAACzBAAwCqwBAACjAwAggAIAAKEDADCBAgAAhQIAEIICAAChAwAwgwIBAAAAAYcCQACIAwAhlgIBAIcDACGmAgEAAAABpwJAAIgDACGoAkAAogMAIQIAAACHAgAgCAAA7QMAIAIAAADrAwAgCAAA7AMAIAmAAgAA6gMAMIECAADrAwAQggIAAOoDADCDAgEAhwMAIYcCQACIAwAhlgIBAIcDACGmAgEAhwMAIacCQACIAwAhqAJAAKIDACEJgAIAAOoDADCBAgAA6wMAEIICAADqAwAwgwIBAIcDACGHAkAAiAMAIZYCAQCHAwAhpgIBAIcDACGnAkAAiAMAIagCQACiAwAhBYMCAQDFAwAhhwJAAMYDACGmAgEAxQMAIacCQADGAwAhqAJAANQDACEFgwIBAMUDACGHAkAAxgMAIaYCAQDFAwAhpwJAAMYDACGoAkAA1AMAIQWDAgEAAAABhwJAAAAAAaYCAQAAAAGnAkAAAAABqAJAAAAAAQeDAgEAAAABhgJAAAAAAYcCQAAAAAGIAkAAAAABlQIBAAAAAZcCAQAAAAGYAgEAAAABAgAAAIMCACAPAAD6AwAgAwAAAIMCACAPAAD6AwAgEAAA-QMAIAEIAACyBAAwDKwBAACjAwAggAIAAKQDADCBAgAAgQIAEIICAACkAwAwgwIBAAAAAYYCQACIAwAhhwJAAIgDACGIAkAAiAMAIZUCAQAAAAGWAgEAhwMAIZcCAQCcAwAhmAIBAJwDACECAAAAgwIAIAgAAPkDACACAAAA9wMAIAgAAPgDACALgAIAAPYDADCBAgAA9wMAEIICAAD2AwAwgwIBAIcDACGGAkAAiAMAIYcCQACIAwAhiAJAAIgDACGVAgEAhwMAIZYCAQCHAwAhlwIBAJwDACGYAgEAnAMAIQuAAgAA9gMAMIECAAD3AwAQggIAAPYDADCDAgEAhwMAIYYCQACIAwAhhwJAAIgDACGIAkAAiAMAIZUCAQCHAwAhlgIBAIcDACGXAgEAnAMAIZgCAQCcAwAhB4MCAQDFAwAhhgJAAMYDACGHAkAAxgMAIYgCQADGAwAhlQIBAMUDACGXAgEAywMAIZgCAQDLAwAhB4MCAQDFAwAhhgJAAMYDACGHAkAAxgMAIYgCQADGAwAhlQIBAMUDACGXAgEAywMAIZgCAQDLAwAhB4MCAQAAAAGGAkAAAAABhwJAAAAAAYgCQAAAAAGVAgEAAAABlwIBAAAAAZgCAQAAAAEQgwIBAAAAAYcCQAAAAAGIAkAAAAABmQIBAAAAAZoCAQAAAAGbAgEAAAABnAIBAAAAAZ0CAQAAAAGeAgEAAAABnwICAAAAAaACQAAAAAGhAkAAAAABogIBAAAAAaMCAQAAAAGkAgEAAAABpQIBAAAAAQIAAAD_AQAgDwAAhgQAIAMAAAD_AQAgDwAAhgQAIBAAAIUEACABCAAAsQQAMBasAQAAowMAIIACAACmAwAwgQIAAP0BABCCAgAApgMAMIMCAQAAAAGHAkAAiAMAIYgCQACIAwAhlgIBAIcDACGZAgEAhwMAIZoCAQCHAwAhmwIBAIcDACGcAgEAnAMAIZ0CAQCcAwAhngIBAJwDACGfAgIApwMAIaACQACiAwAhoQJAAKIDACGiAgEAnAMAIaMCAQCcAwAhpAIBAJwDACGlAgEAnAMAIbICAAClAwAgAgAAAP8BACAIAACFBAAgAgAAAIMEACAIAACEBAAgFIACAACCBAAwgQIAAIMEABCCAgAAggQAMIMCAQCHAwAhhwJAAIgDACGIAkAAiAMAIZYCAQCHAwAhmQIBAIcDACGaAgEAhwMAIZsCAQCHAwAhnAIBAJwDACGdAgEAnAMAIZ4CAQCcAwAhnwICAKcDACGgAkAAogMAIaECQACiAwAhogIBAJwDACGjAgEAnAMAIaQCAQCcAwAhpQIBAJwDACEUgAIAAIIEADCBAgAAgwQAEIICAACCBAAwgwIBAIcDACGHAkAAiAMAIYgCQACIAwAhlgIBAIcDACGZAgEAhwMAIZoCAQCHAwAhmwIBAIcDACGcAgEAnAMAIZ0CAQCcAwAhngIBAJwDACGfAgIApwMAIaACQACiAwAhoQJAAKIDACGiAgEAnAMAIaMCAQCcAwAhpAIBAJwDACGlAgEAnAMAIRCDAgEAxQMAIYcCQADGAwAhiAJAAMYDACGZAgEAxQMAIZoCAQDFAwAhmwIBAMUDACGcAgEAywMAIZ0CAQDLAwAhngIBAMsDACGfAgIA0wMAIaACQADUAwAhoQJAANQDACGiAgEAywMAIaMCAQDLAwAhpAIBAMsDACGlAgEAywMAIRCDAgEAxQMAIYcCQADGAwAhiAJAAMYDACGZAgEAxQMAIZoCAQDFAwAhmwIBAMUDACGcAgEAywMAIZ0CAQDLAwAhngIBAMsDACGfAgIA0wMAIaACQADUAwAhoQJAANQDACGiAgEAywMAIaMCAQDLAwAhpAIBAMsDACGlAgEAywMAIRCDAgEAAAABhwJAAAAAAYgCQAAAAAGZAgEAAAABmgIBAAAAAZsCAQAAAAGcAgEAAAABnQIBAAAAAZ4CAQAAAAGfAgIAAAABoAJAAAAAAaECQAAAAAGiAgEAAAABowIBAAAAAaQCAQAAAAGlAgEAAAABBA8AAPsDADDYAgAA_AMAMNoCAAD-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-FwB_AAAAAxUAfRYAfhcAfwECAQIDAQUGAQYHAQcIAQkKAQoMAgsNAwwPAQ0RAg4SBBETARIUARMVAhgYBRkZCRobChscChwfCh0gCh4hCh8jCiAlAiEmCyIoCiMqAiQrDCUsCiYtCicuAigxDSkyESo0Eis1Eiw4Ei05Ei46Ei88EjA-AjE_EzJBEjNDAjREFDVFEjZGEjdHAjhKFTlLGTpNGjtOGjxRGj1SGj5TGj9VGkBXAkFYG0JaGkNcAkRdHEVeGkZfGkdgAkhjHUlkIUpmIktnIkxqIk1rIk5sIk9uIlBwAlFxI1JzIlN1AlR2JFV3IlZ4Ild5Alh8JVl9KVp_KluAASpcgwEqXYQBKl6FASpfhwEqYIkBAmGKAStijAEqY44BAmSPASxlkAEqZpEBKmeSAQJqlQEta5YBM2yYATRtmQE0bpwBNG-dATRwngE0caABNHKiAQJzowE1dKUBNHWnAQJ2qAE2d6kBNHiqATR5qwECeq4BN3uvAT18sQE-fbIBPn61AT5_tgE-gAG3AT6BAbkBPoIBuwECgwG8AT-EAb4BPoUBwAEChgHBAUCHAcIBPogBwwE-iQHEAQKKAccBQYsByAFFjAHKAUaNAcsBRo4BzgFGjwHPAUaQAdABRpEB0gFGkgHUAQKTAdUBR5QB1wFGlQHZAQKWAdoBSJcB2wFGmAHcAUaZAd0BApoB4AFJmwHhAU2cAeMBTp0B5AFOngHnAU6fAegBTqAB6QFOoQHrAU6iAe0BAqMB7gFPpAHwAU6lAfIBAqYB8wFQpwH0AU6oAfUBTqkB9gECqgH5AVGrAfoBVbAB_AFWsQGMAlayAY8CVrMBkAJWtAGRAla1AZMCVrYBlQICtwGWAlu4AZgCVrkBmgICugGbAly7AZwCVrwBnQJWvQGeAgK-AaECXb8BogJhwAGjAlnBAaQCWcIBpQJZwwGmAlnEAacCWcUBqQJZxgGrAgLHAawCYsgBrgJZyQGwAgLKAbECY8sBsgJZzAGzAlnNAbQCAs4BtwJkzwG4AmjQAbkCV9EBugJX0gG7AlfTAbwCV9QBvQJX1QG_AlfWAcECAtcBwgJp2AHEAlfZAcYCAtoBxwJq2wHIAlfcAckCV90BygIC3gHNAmvfAc4CceABzwJY4QHQAljiAdECWOMB0gJY5AHTAljlAdUCWOYB1wIC5wHYAnLoAdoCWOkB3AIC6gHdAnPrAd4CWOwB3wJY7QHgAgLuAeMCdO8B5AJ48AHmAnnxAecCefIB6gJ58wHrAnn0AewCefUB7gJ59gHwAgL3AfECevgB8wJ5-QH1AgL6AfYCe_sB9wJ5_AH4Ann9AfkCAv4B_AJ8_wH9AoAB"
|
|
13666
|
+
strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"run\",\"workItems\",\"executionInstances\",\"slotProjection\",\"_count\",\"Run.findUnique\",\"Run.findUniqueOrThrow\",\"Run.findFirst\",\"Run.findFirstOrThrow\",\"Run.findMany\",\"data\",\"Run.createOne\",\"Run.createMany\",\"Run.createManyAndReturn\",\"Run.updateOne\",\"Run.updateMany\",\"Run.updateManyAndReturn\",\"create\",\"update\",\"Run.upsertOne\",\"Run.deleteOne\",\"Run.deleteMany\",\"having\",\"_avg\",\"_sum\",\"_min\",\"_max\",\"Run.groupBy\",\"Run.aggregate\",\"RunWorkItem.findUnique\",\"RunWorkItem.findUniqueOrThrow\",\"RunWorkItem.findFirst\",\"RunWorkItem.findFirstOrThrow\",\"RunWorkItem.findMany\",\"RunWorkItem.createOne\",\"RunWorkItem.createMany\",\"RunWorkItem.createManyAndReturn\",\"RunWorkItem.updateOne\",\"RunWorkItem.updateMany\",\"RunWorkItem.updateManyAndReturn\",\"RunWorkItem.upsertOne\",\"RunWorkItem.deleteOne\",\"RunWorkItem.deleteMany\",\"RunWorkItem.groupBy\",\"RunWorkItem.aggregate\",\"ExecutionInstance.findUnique\",\"ExecutionInstance.findUniqueOrThrow\",\"ExecutionInstance.findFirst\",\"ExecutionInstance.findFirstOrThrow\",\"ExecutionInstance.findMany\",\"ExecutionInstance.createOne\",\"ExecutionInstance.createMany\",\"ExecutionInstance.createManyAndReturn\",\"ExecutionInstance.updateOne\",\"ExecutionInstance.updateMany\",\"ExecutionInstance.updateManyAndReturn\",\"ExecutionInstance.upsertOne\",\"ExecutionInstance.deleteOne\",\"ExecutionInstance.deleteMany\",\"ExecutionInstance.groupBy\",\"ExecutionInstance.aggregate\",\"RunSlotProjection.findUnique\",\"RunSlotProjection.findUniqueOrThrow\",\"RunSlotProjection.findFirst\",\"RunSlotProjection.findFirstOrThrow\",\"RunSlotProjection.findMany\",\"RunSlotProjection.createOne\",\"RunSlotProjection.createMany\",\"RunSlotProjection.createManyAndReturn\",\"RunSlotProjection.updateOne\",\"RunSlotProjection.updateMany\",\"RunSlotProjection.updateManyAndReturn\",\"RunSlotProjection.upsertOne\",\"RunSlotProjection.deleteOne\",\"RunSlotProjection.deleteMany\",\"RunSlotProjection.groupBy\",\"RunSlotProjection.aggregate\",\"WorkflowDebuggerOverlay.findUnique\",\"WorkflowDebuggerOverlay.findUniqueOrThrow\",\"WorkflowDebuggerOverlay.findFirst\",\"WorkflowDebuggerOverlay.findFirstOrThrow\",\"WorkflowDebuggerOverlay.findMany\",\"WorkflowDebuggerOverlay.createOne\",\"WorkflowDebuggerOverlay.createMany\",\"WorkflowDebuggerOverlay.createManyAndReturn\",\"WorkflowDebuggerOverlay.updateOne\",\"WorkflowDebuggerOverlay.updateMany\",\"WorkflowDebuggerOverlay.updateManyAndReturn\",\"WorkflowDebuggerOverlay.upsertOne\",\"WorkflowDebuggerOverlay.deleteOne\",\"WorkflowDebuggerOverlay.deleteMany\",\"WorkflowDebuggerOverlay.groupBy\",\"WorkflowDebuggerOverlay.aggregate\",\"WorkflowActivation.findUnique\",\"WorkflowActivation.findUniqueOrThrow\",\"WorkflowActivation.findFirst\",\"WorkflowActivation.findFirstOrThrow\",\"WorkflowActivation.findMany\",\"WorkflowActivation.createOne\",\"WorkflowActivation.createMany\",\"WorkflowActivation.createManyAndReturn\",\"WorkflowActivation.updateOne\",\"WorkflowActivation.updateMany\",\"WorkflowActivation.updateManyAndReturn\",\"WorkflowActivation.upsertOne\",\"WorkflowActivation.deleteOne\",\"WorkflowActivation.deleteMany\",\"WorkflowActivation.groupBy\",\"WorkflowActivation.aggregate\",\"TriggerSetupState.findUnique\",\"TriggerSetupState.findUniqueOrThrow\",\"TriggerSetupState.findFirst\",\"TriggerSetupState.findFirstOrThrow\",\"TriggerSetupState.findMany\",\"TriggerSetupState.createOne\",\"TriggerSetupState.createMany\",\"TriggerSetupState.createManyAndReturn\",\"TriggerSetupState.updateOne\",\"TriggerSetupState.updateMany\",\"TriggerSetupState.updateManyAndReturn\",\"TriggerSetupState.upsertOne\",\"TriggerSetupState.deleteOne\",\"TriggerSetupState.deleteMany\",\"TriggerSetupState.groupBy\",\"TriggerSetupState.aggregate\",\"CredentialInstance.findUnique\",\"CredentialInstance.findUniqueOrThrow\",\"CredentialInstance.findFirst\",\"CredentialInstance.findFirstOrThrow\",\"CredentialInstance.findMany\",\"CredentialInstance.createOne\",\"CredentialInstance.createMany\",\"CredentialInstance.createManyAndReturn\",\"CredentialInstance.updateOne\",\"CredentialInstance.updateMany\",\"CredentialInstance.updateManyAndReturn\",\"CredentialInstance.upsertOne\",\"CredentialInstance.deleteOne\",\"CredentialInstance.deleteMany\",\"CredentialInstance.groupBy\",\"CredentialInstance.aggregate\",\"CredentialSecretMaterial.findUnique\",\"CredentialSecretMaterial.findUniqueOrThrow\",\"CredentialSecretMaterial.findFirst\",\"CredentialSecretMaterial.findFirstOrThrow\",\"CredentialSecretMaterial.findMany\",\"CredentialSecretMaterial.createOne\",\"CredentialSecretMaterial.createMany\",\"CredentialSecretMaterial.createManyAndReturn\",\"CredentialSecretMaterial.updateOne\",\"CredentialSecretMaterial.updateMany\",\"CredentialSecretMaterial.updateManyAndReturn\",\"CredentialSecretMaterial.upsertOne\",\"CredentialSecretMaterial.deleteOne\",\"CredentialSecretMaterial.deleteMany\",\"CredentialSecretMaterial.groupBy\",\"CredentialSecretMaterial.aggregate\",\"CredentialOAuth2Material.findUnique\",\"CredentialOAuth2Material.findUniqueOrThrow\",\"CredentialOAuth2Material.findFirst\",\"CredentialOAuth2Material.findFirstOrThrow\",\"CredentialOAuth2Material.findMany\",\"CredentialOAuth2Material.createOne\",\"CredentialOAuth2Material.createMany\",\"CredentialOAuth2Material.createManyAndReturn\",\"CredentialOAuth2Material.updateOne\",\"CredentialOAuth2Material.updateMany\",\"CredentialOAuth2Material.updateManyAndReturn\",\"CredentialOAuth2Material.upsertOne\",\"CredentialOAuth2Material.deleteOne\",\"CredentialOAuth2Material.deleteMany\",\"CredentialOAuth2Material.groupBy\",\"CredentialOAuth2Material.aggregate\",\"CredentialOAuth2State.findUnique\",\"CredentialOAuth2State.findUniqueOrThrow\",\"CredentialOAuth2State.findFirst\",\"CredentialOAuth2State.findFirstOrThrow\",\"CredentialOAuth2State.findMany\",\"CredentialOAuth2State.createOne\",\"CredentialOAuth2State.createMany\",\"CredentialOAuth2State.createManyAndReturn\",\"CredentialOAuth2State.updateOne\",\"CredentialOAuth2State.updateMany\",\"CredentialOAuth2State.updateManyAndReturn\",\"CredentialOAuth2State.upsertOne\",\"CredentialOAuth2State.deleteOne\",\"CredentialOAuth2State.deleteMany\",\"CredentialOAuth2State.groupBy\",\"CredentialOAuth2State.aggregate\",\"CredentialBinding.findUnique\",\"CredentialBinding.findUniqueOrThrow\",\"CredentialBinding.findFirst\",\"CredentialBinding.findFirstOrThrow\",\"CredentialBinding.findMany\",\"CredentialBinding.createOne\",\"CredentialBinding.createMany\",\"CredentialBinding.createManyAndReturn\",\"CredentialBinding.updateOne\",\"CredentialBinding.updateMany\",\"CredentialBinding.updateManyAndReturn\",\"CredentialBinding.upsertOne\",\"CredentialBinding.deleteOne\",\"CredentialBinding.deleteMany\",\"CredentialBinding.groupBy\",\"CredentialBinding.aggregate\",\"CredentialTestResult.findUnique\",\"CredentialTestResult.findUniqueOrThrow\",\"CredentialTestResult.findFirst\",\"CredentialTestResult.findFirstOrThrow\",\"CredentialTestResult.findMany\",\"CredentialTestResult.createOne\",\"CredentialTestResult.createMany\",\"CredentialTestResult.createManyAndReturn\",\"CredentialTestResult.updateOne\",\"CredentialTestResult.updateMany\",\"CredentialTestResult.updateManyAndReturn\",\"CredentialTestResult.upsertOne\",\"CredentialTestResult.deleteOne\",\"CredentialTestResult.deleteMany\",\"CredentialTestResult.groupBy\",\"CredentialTestResult.aggregate\",\"user\",\"accounts\",\"sessions\",\"invites\",\"User.findUnique\",\"User.findUniqueOrThrow\",\"User.findFirst\",\"User.findFirstOrThrow\",\"User.findMany\",\"User.createOne\",\"User.createMany\",\"User.createManyAndReturn\",\"User.updateOne\",\"User.updateMany\",\"User.updateManyAndReturn\",\"User.upsertOne\",\"User.deleteOne\",\"User.deleteMany\",\"User.groupBy\",\"User.aggregate\",\"UserInvite.findUnique\",\"UserInvite.findUniqueOrThrow\",\"UserInvite.findFirst\",\"UserInvite.findFirstOrThrow\",\"UserInvite.findMany\",\"UserInvite.createOne\",\"UserInvite.createMany\",\"UserInvite.createManyAndReturn\",\"UserInvite.updateOne\",\"UserInvite.updateMany\",\"UserInvite.updateManyAndReturn\",\"UserInvite.upsertOne\",\"UserInvite.deleteOne\",\"UserInvite.deleteMany\",\"UserInvite.groupBy\",\"UserInvite.aggregate\",\"Account.findUnique\",\"Account.findUniqueOrThrow\",\"Account.findFirst\",\"Account.findFirstOrThrow\",\"Account.findMany\",\"Account.createOne\",\"Account.createMany\",\"Account.createManyAndReturn\",\"Account.updateOne\",\"Account.updateMany\",\"Account.updateManyAndReturn\",\"Account.upsertOne\",\"Account.deleteOne\",\"Account.deleteMany\",\"Account.groupBy\",\"Account.aggregate\",\"Session.findUnique\",\"Session.findUniqueOrThrow\",\"Session.findFirst\",\"Session.findFirstOrThrow\",\"Session.findMany\",\"Session.createOne\",\"Session.createMany\",\"Session.createManyAndReturn\",\"Session.updateOne\",\"Session.updateMany\",\"Session.updateManyAndReturn\",\"Session.upsertOne\",\"Session.deleteOne\",\"Session.deleteMany\",\"Session.groupBy\",\"Session.aggregate\",\"VerificationToken.findUnique\",\"VerificationToken.findUniqueOrThrow\",\"VerificationToken.findFirst\",\"VerificationToken.findFirstOrThrow\",\"VerificationToken.findMany\",\"VerificationToken.createOne\",\"VerificationToken.createMany\",\"VerificationToken.createManyAndReturn\",\"VerificationToken.updateOne\",\"VerificationToken.updateMany\",\"VerificationToken.updateManyAndReturn\",\"VerificationToken.upsertOne\",\"VerificationToken.deleteOne\",\"VerificationToken.deleteMany\",\"VerificationToken.groupBy\",\"VerificationToken.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"identifier\",\"token\",\"expires\",\"createdAt\",\"updatedAt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"identifier_token\",\"sessionToken\",\"userId\",\"ipAddress\",\"userAgent\",\"type\",\"provider\",\"providerAccountId\",\"password\",\"refresh_token\",\"access_token\",\"expires_at\",\"accessTokenExpiresAt\",\"refreshTokenExpiresAt\",\"token_type\",\"scope\",\"id_token\",\"session_state\",\"tokenHash\",\"expiresAt\",\"revokedAt\",\"name\",\"email\",\"emailVerified\",\"image\",\"passwordHash\",\"accountStatus\",\"every\",\"some\",\"none\",\"provider_providerAccountId\",\"testId\",\"instanceId\",\"status\",\"message\",\"detailsJson\",\"testedAt\",\"workflowId\",\"nodeId\",\"slotKey\",\"workflowId_nodeId_slotKey\",\"state\",\"codeVerifier\",\"providerId\",\"requestedScopesJson\",\"encryptedJson\",\"encryptionKeyId\",\"schemaVersion\",\"connectedEmail\",\"connectedAt\",\"scopesJson\",\"typeId\",\"displayName\",\"sourceKind\",\"publicConfigJson\",\"secretRefJson\",\"tagsJson\",\"setupStatus\",\"stateJson\",\"workflowId_nodeId\",\"isActive\",\"copiedFromRunId\",\"runId\",\"revision\",\"slotStatesJson\",\"slotNodeId\",\"workflowNodeId\",\"kind\",\"connectionKind\",\"activationId\",\"batchId\",\"runIndex\",\"parentInstanceId\",\"parentRunId\",\"workerClaimToken\",\"queuedAt\",\"startedAt\",\"finishedAt\",\"itemCount\",\"inputJson\",\"outputJson\",\"errorJson\",\"inputItemIndicesJson\",\"outputItemCount\",\"successfulItemCount\",\"failedItemCount\",\"inputStorageKind\",\"outputStorageKind\",\"inputBytes\",\"outputBytes\",\"inputPreviewJson\",\"outputPreviewJson\",\"inputPayloadRef\",\"outputPayloadRef\",\"inputTruncated\",\"outputTruncated\",\"usedPinnedOutput\",\"workItemId\",\"targetNodeId\",\"queueName\",\"claimToken\",\"claimedBy\",\"claimedAt\",\"availableAt\",\"enqueuedAt\",\"completedAt\",\"failedAt\",\"sourceInstanceId\",\"itemsIn\",\"inputsByPortJson\",\"parentJson\",\"executionOptionsJson\",\"controlJson\",\"workflowSnapshotJson\",\"policySnapshotJson\",\"engineCountersJson\",\"mutableStateJson\",\"outputsByNodeJson\",\"runId_slotNodeId_runIndex\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"),
|
|
13667
|
+
graph: "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_ADAZAACAAQAgAwAAAG0AIAEAAG4AMAIAAGoAIAa0AgAAjQQAMLUCAACGAQAQtgIAAI0EADC8AgEA1wMAIe0CAQAAAAGEAyAA7QMAIQEAAACDAQAgAQAAAIMBACAGtAIAAI0EADC1AgAAhgEAELYCAACNBAAwvAIBANcDACHtAgEA1wMAIYQDIADtAwAhAAMAAACGAQAgAQAAhwEAMAIAAIMBACADAAAAhgEAIAEAAIcBADACAACDAQAgAwAAAIYBACABAACHAQAwAgAAgwEAIAO8AgEAAAAB7QIBAAAAAYQDIAAAAAEBDQAAiwEAIAO8AgEAAAAB7QIBAAAAAYQDIAAAAAEBDQAAjQEAMAENAACNAQAwA7wCAQCkBAAh7QIBAKQEACGEAyAAvgQAIQIAAACDAQAgDQAAkAEAIAO8AgEApAQAIe0CAQCkBAAhhAMgAL4EACECAAAAhgEAIA0AAJIBACACAAAAhgEAIA0AAJIBACADAAAAgwEAIBQAAIsBACAVAACQAQAgAQAAAIMBACABAAAAhgEAIAMHAACHBQAgHAAAiQUAIB0AAIgFACAGtAIAAIwEADC1AgAAmQEAELYCAACMBAAwvAIBAM8DACHtAgEAzwMAIYQDIADoAwAhAwAAAIYBACABAACYAQAwGQAAmQEAIAMAAACGAQAgAQAAhwEAMAIAAIMBACAItAIAAIoEADC1AgAAnwEAELYCAACKBAAwvAIBANcDACHtAgEA1wMAIe4CAQDXAwAhggMBANcDACGDAwAAiwQAIAEAAACcAQAgAQAAAJwBACAHtAIAAIoEADC1AgAAnwEAELYCAACKBAAwvAIBANcDACHtAgEA1wMAIe4CAQDXAwAhggMBANcDACEAAwAAAJ8BACABAACgAQAwAgAAnAEAIAMAAACfAQAgAQAAoAEAMAIAAJwBACADAAAAnwEAIAEAAKABADACAACcAQAgBLwCAQAAAAHtAgEAAAAB7gIBAAAAAYIDAQAAAAEBDQAApAEAIAS8AgEAAAAB7QIBAAAAAe4CAQAAAAGCAwEAAAABAQ0AAKYBADABDQAApgEAMAS8AgEApAQAIe0CAQCkBAAh7gIBAKQEACGCAwEApAQAIQIAAACcAQAgDQAAqQEAIAS8AgEApAQAIe0CAQCkBAAh7gIBAKQEACGCAwEApAQAIQIAAACfAQAgDQAAqwEAIAIAAACfAQAgDQAAqwEAIAMAAACcAQAgFAAApAEAIBUAAKkBACABAAAAnAEAIAEAAACfAQAgAwcAAIQFACAcAACGBQAgHQAAhQUAIAe0AgAAiQQAMLUCAACyAQAQtgIAAIkEADC8AgEAzwMAIe0CAQDPAwAh7gIBAM8DACGCAwEAzwMAIQMAAACfAQAgAQAAsQEAMBkAALIBACADAAAAnwEAIAEAAKABADACAACcAQAgDbQCAACIBAAwtQIAALgBABC2AgAAiAQAMLsCAQDXAwAhvAIBANcDACHoAgEAAAAB-wIBANcDACH8AgEA1wMAIf0CAQDXAwAh_gIBANcDACH_AgEA1wMAIYADAQDXAwAhgQMBANcDACEBAAAAtQEAIAEAAAC1AQAgDbQCAACIBAAwtQIAALgBABC2AgAAiAQAMLsCAQDXAwAhvAIBANcDACHoAgEA1wMAIfsCAQDXAwAh_AIBANcDACH9AgEA1wMAIf4CAQDXAwAh_wIBANcDACGAAwEA1wMAIYEDAQDXAwAhAAMAAAC4AQAgAQAAuQEAMAIAALUBACADAAAAuAEAIAEAALkBADACAAC1AQAgAwAAALgBACABAAC5AQAwAgAAtQEAIAq7AgEAAAABvAIBAAAAAegCAQAAAAH7AgEAAAAB_AIBAAAAAf0CAQAAAAH-AgEAAAAB_wIBAAAAAYADAQAAAAGBAwEAAAABAQ0AAL0BACAKuwIBAAAAAbwCAQAAAAHoAgEAAAAB-wIBAAAAAfwCAQAAAAH9AgEAAAAB_gIBAAAAAf8CAQAAAAGAAwEAAAABgQMBAAAAAQENAAC_AQAwAQ0AAL8BADAKuwIBAKQEACG8AgEApAQAIegCAQCkBAAh-wIBAKQEACH8AgEApAQAIf0CAQCkBAAh_gIBAKQEACH_AgEApAQAIYADAQCkBAAhgQMBAKQEACECAAAAtQEAIA0AAMIBACAKuwIBAKQEACG8AgEApAQAIegCAQCkBAAh-wIBAKQEACH8AgEApAQAIf0CAQCkBAAh_gIBAKQEACH_AgEApAQAIYADAQCkBAAhgQMBAKQEACECAAAAuAEAIA0AAMQBACACAAAAuAEAIA0AAMQBACADAAAAtQEAIBQAAL0BACAVAADCAQAgAQAAALUBACABAAAAuAEAIAMHAACBBQAgHAAAgwUAIB0AAIIFACANtAIAAIcEADC1AgAAywEAELYCAACHBAAwuwIBAM8DACG8AgEAzwMAIegCAQDPAwAh-wIBAM8DACH8AgEAzwMAIf0CAQDPAwAh_gIBAM8DACH_AgEAzwMAIYADAQDPAwAhgQMBAM8DACEDAAAAuAEAIAEAAMoBADAZAADLAQAgAwAAALgBACABAAC5AQAwAgAAtQEAIAi0AgAAhgQAMLUCAADRAQAQtgIAAIYEADC8AgEA1wMAIegCAQAAAAH1AgEA1wMAIfYCAQDXAwAh9wICAIQEACEBAAAAzgEAIAEAAADOAQAgCLQCAACGBAAwtQIAANEBABC2AgAAhgQAMLwCAQDXAwAh6AIBANcDACH1AgEA1wMAIfYCAQDXAwAh9wICAIQEACEAAwAAANEBACABAADSAQAwAgAAzgEAIAMAAADRAQAgAQAA0gEAMAIAAM4BACADAAAA0QEAIAEAANIBADACAADOAQAgBbwCAQAAAAHoAgEAAAAB9QIBAAAAAfYCAQAAAAH3AgIAAAABAQ0AANYBACAFvAIBAAAAAegCAQAAAAH1AgEAAAAB9gIBAAAAAfcCAgAAAAEBDQAA2AEAMAENAADYAQAwBbwCAQCkBAAh6AIBAKQEACH1AgEApAQAIfYCAQCkBAAh9wICAPsEACECAAAAzgEAIA0AANsBACAFvAIBAKQEACHoAgEApAQAIfUCAQCkBAAh9gIBAKQEACH3AgIA-wQAIQIAAADRAQAgDQAA3QEAIAIAAADRAQAgDQAA3QEAIAMAAADOAQAgFAAA1gEAIBUAANsBACABAAAAzgEAIAEAAADRAQAgBQcAAPwEACAaAAD9BAAgGwAAgAUAIBwAAP8EACAdAAD-BAAgCLQCAACFBAAwtQIAAOQBABC2AgAAhQQAMLwCAQDPAwAh6AIBAM8DACH1AgEAzwMAIfYCAQDPAwAh9wICAIAEACEDAAAA0QEAIAEAAOMBADAZAADkAQAgAwAAANEBACABAADSAQAwAgAAzgEAIAy0AgAAgwQAMLUCAADqAQAQtgIAAIMEADC8AgEA1wMAIegCAQAAAAHzAgEA1wMAIfUCAQDXAwAh9gIBANcDACH3AgIAhAQAIfgCAQDsAwAh-QIBAOwDACH6AgEA1wMAIQEAAADnAQAgAQAAAOcBACAMtAIAAIMEADC1AgAA6gEAELYCAACDBAAwvAIBANcDACHoAgEA1wMAIfMCAQDXAwAh9QIBANcDACH2AgEA1wMAIfcCAgCEBAAh-AIBAOwDACH5AgEA7AMAIfoCAQDXAwAhAvgCAACmBAAg-QIAAKYEACADAAAA6gEAIAEAAOsBADACAADnAQAgAwAAAOoBACABAADrAQAwAgAA5wEAIAMAAADqAQAgAQAA6wEAMAIAAOcBACAJvAIBAAAAAegCAQAAAAHzAgEAAAAB9QIBAAAAAfYCAQAAAAH3AgIAAAAB-AIBAAAAAfkCAQAAAAH6AgEAAAABAQ0AAO8BACAJvAIBAAAAAegCAQAAAAHzAgEAAAAB9QIBAAAAAfYCAQAAAAH3AgIAAAAB-AIBAAAAAfkCAQAAAAH6AgEAAAABAQ0AAPEBADABDQAA8QEAMAm8AgEApAQAIegCAQCkBAAh8wIBAKQEACH1AgEApAQAIfYCAQCkBAAh9wICAPsEACH4AgEAqgQAIfkCAQCqBAAh-gIBAKQEACECAAAA5wEAIA0AAPQBACAJvAIBAKQEACHoAgEApAQAIfMCAQCkBAAh9QIBAKQEACH2AgEApAQAIfcCAgD7BAAh-AIBAKoEACH5AgEAqgQAIfoCAQCkBAAhAgAAAOoBACANAAD2AQAgAgAAAOoBACANAAD2AQAgAwAAAOcBACAUAADvAQAgFQAA9AEAIAEAAADnAQAgAQAAAOoBACAHBwAA9gQAIBoAAPcEACAbAAD6BAAgHAAA-QQAIB0AAPgEACD4AgAApgQAIPkCAACmBAAgDLQCAAD_AwAwtQIAAP0BABC2AgAA_wMAMLwCAQDPAwAh6AIBAM8DACHzAgEAzwMAIfUCAQDPAwAh9gIBAM8DACH3AgIAgAQAIfgCAQDbAwAh-QIBANsDACH6AgEAzwMAIQMAAADqAQAgAQAA_AEAMBkAAP0BACADAAAA6gEAIAEAAOsBADACAADnAQAgCrQCAAD-AwAwtQIAAIMCABC2AgAA_gMAMLsCAQDXAwAh2wIBANcDACHoAgEA1wMAIfECAQAAAAHyAgEA7AMAIfMCAQDsAwAh9AIBANcDACEBAAAAgAIAIAEAAACAAgAgCrQCAAD-AwAwtQIAAIMCABC2AgAA_gMAMLsCAQDXAwAh2wIBANcDACHoAgEA1wMAIfECAQDXAwAh8gIBAOwDACHzAgEA7AMAIfQCAQDXAwAhAvICAACmBAAg8wIAAKYEACADAAAAgwIAIAEAAIQCADACAACAAgAgAwAAAIMCACABAACEAgAwAgAAgAIAIAMAAACDAgAgAQAAhAIAMAIAAIACACAHuwIBAAAAAdsCAQAAAAHoAgEAAAAB8QIBAAAAAfICAQAAAAHzAgEAAAAB9AIBAAAAAQENAACIAgAgB7sCAQAAAAHbAgEAAAAB6AIBAAAAAfECAQAAAAHyAgEAAAAB8wIBAAAAAfQCAQAAAAEBDQAAigIAMAENAACKAgAwB7sCAQCkBAAh2wIBAKQEACHoAgEApAQAIfECAQCkBAAh8gIBAKoEACHzAgEAqgQAIfQCAQCkBAAhAgAAAIACACANAACNAgAgB7sCAQCkBAAh2wIBAKQEACHoAgEApAQAIfECAQCkBAAh8gIBAKoEACHzAgEAqgQAIfQCAQCkBAAhAgAAAIMCACANAACPAgAgAgAAAIMCACANAACPAgAgAwAAAIACACAUAACIAgAgFQAAjQIAIAEAAACAAgAgAQAAAIMCACAFBwAA8wQAIBwAAPUEACAdAAD0BAAg8gIAAKYEACDzAgAApgQAIAq0AgAA_QMAMLUCAACWAgAQtgIAAP0DADC7AgEAzwMAIdsCAQDPAwAh6AIBAM8DACHxAgEAzwMAIfICAQDbAwAh8wIBANsDACH0AgEAzwMAIQMAAACDAgAgAQAAlQIAMBkAAJYCACADAAAAgwIAIAEAAIQCADACAACAAgAgCbQCAAD7AwAwtQIAAJwCABC2AgAA-wMAMLwCAQDXAwAh6AIBANcDACHtAgEA1wMAIe4CAQDXAwAh7wIBANcDACHwAgAA_AMAIAEAAACZAgAgAQAAAJkCACAItAIAAPsDADC1AgAAnAIAELYCAAD7AwAwvAIBANcDACHoAgEA1wMAIe0CAQDXAwAh7gIBANcDACHvAgEA1wMAIQADAAAAnAIAIAEAAJ0CADACAACZAgAgAwAAAJwCACABAACdAgAwAgAAmQIAIAMAAACcAgAgAQAAnQIAMAIAAJkCACAFvAIBAAAAAegCAQAAAAHtAgEAAAAB7gIBAAAAAe8CAQAAAAEBDQAAoQIAIAW8AgEAAAAB6AIBAAAAAe0CAQAAAAHuAgEAAAAB7wIBAAAAAQENAACjAgAwAQ0AAKMCADAFvAIBAKQEACHoAgEApAQAIe0CAQCkBAAh7gIBAKQEACHvAgEApAQAIQIAAACZAgAgDQAApgIAIAW8AgEApAQAIegCAQCkBAAh7QIBAKQEACHuAgEApAQAIe8CAQCkBAAhAgAAAJwCACANAACoAgAgAgAAAJwCACANAACoAgAgAwAAAJkCACAUAAChAgAgFQAApgIAIAEAAACZAgAgAQAAAJwCACADBwAA8AQAIBwAAPIEACAdAADxBAAgCLQCAAD6AwAwtQIAAK8CABC2AgAA-gMAMLwCAQDPAwAh6AIBAM8DACHtAgEAzwMAIe4CAQDPAwAh7wIBAM8DACEDAAAAnAIAIAEAAK4CADAZAACvAgAgAwAAAJwCACABAACdAgAwAgAAmQIAIAq0AgAA-QMAMLUCAAC1AgAQtgIAAPkDADDbAgEA7AMAIecCAQAAAAHoAgEA1wMAIekCAQDXAwAh6gIBAOwDACHrAgEA1wMAIewCAQDXAwAhAQAAALICACABAAAAsgIAIAq0AgAA-QMAMLUCAAC1AgAQtgIAAPkDADDbAgEA7AMAIecCAQDXAwAh6AIBANcDACHpAgEA1wMAIeoCAQDsAwAh6wIBANcDACHsAgEA1wMAIQLbAgAApgQAIOoCAACmBAAgAwAAALUCACABAAC2AgAwAgAAsgIAIAMAAAC1AgAgAQAAtgIAMAIAALICACADAAAAtQIAIAEAALYCADACAACyAgAgB9sCAQAAAAHnAgEAAAAB6AIBAAAAAekCAQAAAAHqAgEAAAAB6wIBAAAAAewCAQAAAAEBDQAAugIAIAfbAgEAAAAB5wIBAAAAAegCAQAAAAHpAgEAAAAB6gIBAAAAAesCAQAAAAHsAgEAAAABAQ0AALwCADABDQAAvAIAMAfbAgEAqgQAIecCAQCkBAAh6AIBAKQEACHpAgEApAQAIeoCAQCqBAAh6wIBAKQEACHsAgEApAQAIQIAAACyAgAgDQAAvwIAIAfbAgEAqgQAIecCAQCkBAAh6AIBAKQEACHpAgEApAQAIeoCAQCqBAAh6wIBAKQEACHsAgEApAQAIQIAAAC1AgAgDQAAwQIAIAIAAAC1AgAgDQAAwQIAIAMAAACyAgAgFAAAugIAIBUAAL8CACABAAAAsgIAIAEAAAC1AgAgBQcAAO0EACAcAADvBAAgHQAA7gQAINsCAACmBAAg6gIAAKYEACAKtAIAAPgDADC1AgAAyAIAELYCAAD4AwAw2wIBANsDACHnAgEAzwMAIegCAQDPAwAh6QIBAM8DACHqAgEA2wMAIesCAQDPAwAh7AIBAM8DACEDAAAAtQIAIAEAAMcCADAZAADIAgAgAwAAALUCACABAAC2AgAwAgAAsgIAIA_hAQAA7gMAIOIBAADvAwAg4wEAAPADACC0AgAA6wMAMLUCAADdAgAQtgIAAOsDADC3AgEAAAABuwJAANgDACG8AkAA2AMAId0CAQDsAwAh3gIBAAAAAd8CIADtAwAh4AIBAOwDACHhAgEA7AMAIeICAQDXAwAhAQAAAMsCACAV4AEAAPMDACC0AgAA9gMAMLUCAADNAgAQtgIAAPYDADC3AgEA1wMAIbsCQADYAwAhvAJAANgDACHKAgEA1wMAIc0CAQDXAwAhzgIBANcDACHPAgEA1wMAIdACAQDsAwAh0QIBAOwDACHSAgEA7AMAIdMCAgD3AwAh1AJAAPIDACHVAkAA8gMAIdYCAQDsAwAh1wIBAOwDACHYAgEA7AMAIdkCAQDsAwAhC-ABAADsBAAg0AIAAKYEACDRAgAApgQAINICAACmBAAg0wIAAKYEACDUAgAApgQAINUCAACmBAAg1gIAAKYEACDXAgAApgQAINgCAACmBAAg2QIAAKYEACAW4AEAAPMDACC0AgAA9gMAMLUCAADNAgAQtgIAAPYDADC3AgEAAAABuwJAANgDACG8AkAA2AMAIcoCAQDXAwAhzQIBANcDACHOAgEA1wMAIc8CAQDXAwAh0AIBAOwDACHRAgEA7AMAIdICAQDsAwAh0wICAPcDACHUAkAA8gMAIdUCQADyAwAh1gIBAOwDACHXAgEA7AMAIdgCAQDsAwAh2QIBAOwDACHmAgAA9QMAIAMAAADNAgAgAQAAzgIAMAIAAM8CACAM4AEAAPMDACC0AgAA9AMAMLUCAADRAgAQtgIAAPQDADC3AgEA1wMAIboCQADYAwAhuwJAANgDACG8AkAA2AMAIckCAQDXAwAhygIBANcDACHLAgEA7AMAIcwCAQDsAwAhA-ABAADsBAAgywIAAKYEACDMAgAApgQAIAzgAQAA8wMAILQCAAD0AwAwtQIAANECABC2AgAA9AMAMLcCAQAAAAG6AkAA2AMAIbsCQADYAwAhvAJAANgDACHJAgEAAAABygIBANcDACHLAgEA7AMAIcwCAQDsAwAhAwAAANECACABAADSAgAwAgAA0wIAIArgAQAA8wMAILQCAADxAwAwtQIAANUCABC2AgAA8QMAMLcCAQDXAwAhuwJAANgDACHKAgEA1wMAIdoCAQDXAwAh2wJAANgDACHcAkAA8gMAIQLgAQAA7AQAINwCAACmBAAgCuABAADzAwAgtAIAAPEDADC1AgAA1QIAELYCAADxAwAwtwIBAAAAAbsCQADYAwAhygIBANcDACHaAgEAAAAB2wJAANgDACHcAkAA8gMAIQMAAADVAgAgAQAA1gIAMAIAANcCACABAAAAzQIAIAEAAADRAgAgAQAAANUCACABAAAAywIAIA_hAQAA7gMAIOIBAADvAwAg4wEAAPADACC0AgAA6wMAMLUCAADdAgAQtgIAAOsDADC3AgEA1wMAIbsCQADYAwAhvAJAANgDACHdAgEA7AMAId4CAQDsAwAh3wIgAO0DACHgAgEA7AMAIeECAQDsAwAh4gIBANcDACEH4QEAAOkEACDiAQAA6gQAIOMBAADrBAAg3QIAAKYEACDeAgAApgQAIOACAACmBAAg4QIAAKYEACADAAAA3QIAIAEAAN4CADACAADLAgAgAwAAAN0CACABAADeAgAwAgAAywIAIAMAAADdAgAgAQAA3gIAMAIAAMsCACAM4QEAAOYEACDiAQAA5wQAIOMBAADoBAAgtwIBAAAAAbsCQAAAAAG8AkAAAAAB3QIBAAAAAd4CAQAAAAHfAiAAAAAB4AIBAAAAAeECAQAAAAHiAgEAAAABAQ0AAOICACAJtwIBAAAAAbsCQAAAAAG8AkAAAAAB3QIBAAAAAd4CAQAAAAHfAiAAAAAB4AIBAAAAAeECAQAAAAHiAgEAAAABAQ0AAOQCADABDQAA5AIAMAzhAQAAvwQAIOIBAADABAAg4wEAAMEEACC3AgEApAQAIbsCQAClBAAhvAJAAKUEACHdAgEAqgQAId4CAQCqBAAh3wIgAL4EACHgAgEAqgQAIeECAQCqBAAh4gIBAKQEACECAAAAywIAIA0AAOcCACAJtwIBAKQEACG7AkAApQQAIbwCQAClBAAh3QIBAKoEACHeAgEAqgQAId8CIAC-BAAh4AIBAKoEACHhAgEAqgQAIeICAQCkBAAhAgAAAN0CACANAADpAgAgAgAAAN0CACANAADpAgAgAwAAAMsCACAUAADiAgAgFQAA5wIAIAEAAADLAgAgAQAAAN0CACAHBwAAuwQAIBwAAL0EACAdAAC8BAAg3QIAAKYEACDeAgAApgQAIOACAACmBAAg4QIAAKYEACAMtAIAAOcDADC1AgAA8AIAELYCAADnAwAwtwIBAM8DACG7AkAA0AMAIbwCQADQAwAh3QIBANsDACHeAgEA2wMAId8CIADoAwAh4AIBANsDACHhAgEA2wMAIeICAQDPAwAhAwAAAN0CACABAADvAgAwGQAA8AIAIAMAAADdAgAgAQAA3gIAMAIAAMsCACABAAAA1wIAIAEAAADXAgAgAwAAANUCACABAADWAgAwAgAA1wIAIAMAAADVAgAgAQAA1gIAMAIAANcCACADAAAA1QIAIAEAANYCADACAADXAgAgB-ABAAC6BAAgtwIBAAAAAbsCQAAAAAHKAgEAAAAB2gIBAAAAAdsCQAAAAAHcAkAAAAABAQ0AAPgCACAGtwIBAAAAAbsCQAAAAAHKAgEAAAAB2gIBAAAAAdsCQAAAAAHcAkAAAAABAQ0AAPoCADABDQAA-gIAMAfgAQAAuQQAILcCAQCkBAAhuwJAAKUEACHKAgEApAQAIdoCAQCkBAAh2wJAAKUEACHcAkAAswQAIQIAAADXAgAgDQAA_QIAIAa3AgEApAQAIbsCQAClBAAhygIBAKQEACHaAgEApAQAIdsCQAClBAAh3AJAALMEACECAAAA1QIAIA0AAP8CACACAAAA1QIAIA0AAP8CACADAAAA1wIAIBQAAPgCACAVAAD9AgAgAQAAANcCACABAAAA1QIAIAQHAAC2BAAgHAAAuAQAIB0AALcEACDcAgAApgQAIAm0AgAA5gMAMLUCAACGAwAQtgIAAOYDADC3AgEAzwMAIbsCQADQAwAhygIBAM8DACHaAgEAzwMAIdsCQADQAwAh3AJAAOEDACEDAAAA1QIAIAEAAIUDADAZAACGAwAgAwAAANUCACABAADWAgAwAgAA1wIAIAEAAADPAgAgAQAAAM8CACADAAAAzQIAIAEAAM4CADACAADPAgAgAwAAAM0CACABAADOAgAwAgAAzwIAIAMAAADNAgAgAQAAzgIAMAIAAM8CACAS4AEAALUEACC3AgEAAAABuwJAAAAAAbwCQAAAAAHKAgEAAAABzQIBAAAAAc4CAQAAAAHPAgEAAAAB0AIBAAAAAdECAQAAAAHSAgEAAAAB0wICAAAAAdQCQAAAAAHVAkAAAAAB1gIBAAAAAdcCAQAAAAHYAgEAAAAB2QIBAAAAAQENAACOAwAgEbcCAQAAAAG7AkAAAAABvAJAAAAAAcoCAQAAAAHNAgEAAAABzgIBAAAAAc8CAQAAAAHQAgEAAAAB0QIBAAAAAdICAQAAAAHTAgIAAAAB1AJAAAAAAdUCQAAAAAHWAgEAAAAB1wIBAAAAAdgCAQAAAAHZAgEAAAABAQ0AAJADADABDQAAkAMAMBLgAQAAtAQAILcCAQCkBAAhuwJAAKUEACG8AkAApQQAIcoCAQCkBAAhzQIBAKQEACHOAgEApAQAIc8CAQCkBAAh0AIBAKoEACHRAgEAqgQAIdICAQCqBAAh0wICALIEACHUAkAAswQAIdUCQACzBAAh1gIBAKoEACHXAgEAqgQAIdgCAQCqBAAh2QIBAKoEACECAAAAzwIAIA0AAJMDACARtwIBAKQEACG7AkAApQQAIbwCQAClBAAhygIBAKQEACHNAgEApAQAIc4CAQCkBAAhzwIBAKQEACHQAgEAqgQAIdECAQCqBAAh0gIBAKoEACHTAgIAsgQAIdQCQACzBAAh1QJAALMEACHWAgEAqgQAIdcCAQCqBAAh2AIBAKoEACHZAgEAqgQAIQIAAADNAgAgDQAAlQMAIAIAAADNAgAgDQAAlQMAIAMAAADPAgAgFAAAjgMAIBUAAJMDACABAAAAzwIAIAEAAADNAgAgDwcAAK0EACAaAACuBAAgGwAAsQQAIBwAALAEACAdAACvBAAg0AIAAKYEACDRAgAApgQAINICAACmBAAg0wIAAKYEACDUAgAApgQAINUCAACmBAAg1gIAAKYEACDXAgAApgQAINgCAACmBAAg2QIAAKYEACAUtAIAAN8DADC1AgAAnAMAELYCAADfAwAwtwIBAM8DACG7AkAA0AMAIbwCQADQAwAhygIBAM8DACHNAgEAzwMAIc4CAQDPAwAhzwIBAM8DACHQAgEA2wMAIdECAQDbAwAh0gIBANsDACHTAgIA4AMAIdQCQADhAwAh1QJAAOEDACHWAgEA2wMAIdcCAQDbAwAh2AIBANsDACHZAgEA2wMAIQMAAADNAgAgAQAAmwMAMBkAAJwDACADAAAAzQIAIAEAAM4CADACAADPAgAgAQAAANMCACABAAAA0wIAIAMAAADRAgAgAQAA0gIAMAIAANMCACADAAAA0QIAIAEAANICADACAADTAgAgAwAAANECACABAADSAgAwAgAA0wIAIAngAQAArAQAILcCAQAAAAG6AkAAAAABuwJAAAAAAbwCQAAAAAHJAgEAAAABygIBAAAAAcsCAQAAAAHMAgEAAAABAQ0AAKQDACAItwIBAAAAAboCQAAAAAG7AkAAAAABvAJAAAAAAckCAQAAAAHKAgEAAAABywIBAAAAAcwCAQAAAAEBDQAApgMAMAENAACmAwAwCeABAACrBAAgtwIBAKQEACG6AkAApQQAIbsCQAClBAAhvAJAAKUEACHJAgEApAQAIcoCAQCkBAAhywIBAKoEACHMAgEAqgQAIQIAAADTAgAgDQAAqQMAIAi3AgEApAQAIboCQAClBAAhuwJAAKUEACG8AkAApQQAIckCAQCkBAAhygIBAKQEACHLAgEAqgQAIcwCAQCqBAAhAgAAANECACANAACrAwAgAgAAANECACANAACrAwAgAwAAANMCACAUAACkAwAgFQAAqQMAIAEAAADTAgAgAQAAANECACAFBwAApwQAIBwAAKkEACAdAACoBAAgywIAAKYEACDMAgAApgQAIAu0AgAA2gMAMLUCAACyAwAQtgIAANoDADC3AgEAzwMAIboCQADQAwAhuwJAANADACG8AkAA0AMAIckCAQDPAwAhygIBAM8DACHLAgEA2wMAIcwCAQDbAwAhAwAAANECACABAACxAwAwGQAAsgMAIAMAAADRAgAgAQAA0gIAMAIAANMCACAKtAIAANYDADC1AgAAuAMAELYCAADWAwAwtwIBAAAAAbgCAQDXAwAhuQIBANcDACG6AkAA2AMAIbsCQADYAwAhvAJAANgDACHIAgAA2QMAIAEAAAC1AwAgAQAAALUDACAJtAIAANYDADC1AgAAuAMAELYCAADWAwAwtwIBANcDACG4AgEA1wMAIbkCAQDXAwAhugJAANgDACG7AkAA2AMAIbwCQADYAwAhAAMAAAC4AwAgAQAAuQMAMAIAALUDACADAAAAuAMAIAEAALkDADACAAC1AwAgAwAAALgDACABAAC5AwAwAgAAtQMAIAa3AgEAAAABuAIBAAAAAbkCAQAAAAG6AkAAAAABuwJAAAAAAbwCQAAAAAEBDQAAvQMAIAa3AgEAAAABuAIBAAAAAbkCAQAAAAG6AkAAAAABuwJAAAAAAbwCQAAAAAEBDQAAvwMAMAENAAC_AwAwBrcCAQCkBAAhuAIBAKQEACG5AgEApAQAIboCQAClBAAhuwJAAKUEACG8AkAApQQAIQIAAAC1AwAgDQAAwgMAIAa3AgEApAQAIbgCAQCkBAAhuQIBAKQEACG6AkAApQQAIbsCQAClBAAhvAJAAKUEACECAAAAuAMAIA0AAMQDACACAAAAuAMAIA0AAMQDACADAAAAtQMAIBQAAL0DACAVAADCAwAgAQAAALUDACABAAAAuAMAIAMHAAChBAAgHAAAowQAIB0AAKIEACAJtAIAAM4DADC1AgAAywMAELYCAADOAwAwtwIBAM8DACG4AgEAzwMAIbkCAQDPAwAhugJAANADACG7AkAA0AMAIbwCQADQAwAhAwAAALgDACABAADKAwAwGQAAywMAIAMAAAC4AwAgAQAAuQMAMAIAALUDACAJtAIAAM4DADC1AgAAywMAELYCAADOAwAwtwIBAM8DACG4AgEAzwMAIbkCAQDPAwAhugJAANADACG7AkAA0AMAIbwCQADQAwAhDgcAANIDACAcAADVAwAgHQAA1QMAIL0CAQAAAAG-AgEAAAAEvwIBAAAABMACAQAAAAHBAgEAAAABwgIBAAAAAcMCAQAAAAHEAgEA1AMAIcUCAQAAAAHGAgEAAAABxwIBAAAAAQsHAADSAwAgHAAA0wMAIB0AANMDACC9AkAAAAABvgJAAAAABL8CQAAAAATAAkAAAAABwQJAAAAAAcICQAAAAAHDAkAAAAABxAJAANEDACELBwAA0gMAIBwAANMDACAdAADTAwAgvQJAAAAAAb4CQAAAAAS_AkAAAAAEwAJAAAAAAcECQAAAAAHCAkAAAAABwwJAAAAAAcQCQADRAwAhCL0CAgAAAAG-AgIAAAAEvwICAAAABMACAgAAAAHBAgIAAAABwgICAAAAAcMCAgAAAAHEAgIA0gMAIQi9AkAAAAABvgJAAAAABL8CQAAAAATAAkAAAAABwQJAAAAAAcICQAAAAAHDAkAAAAABxAJAANMDACEOBwAA0gMAIBwAANUDACAdAADVAwAgvQIBAAAAAb4CAQAAAAS_AgEAAAAEwAIBAAAAAcECAQAAAAHCAgEAAAABwwIBAAAAAcQCAQDUAwAhxQIBAAAAAcYCAQAAAAHHAgEAAAABC70CAQAAAAG-AgEAAAAEvwIBAAAABMACAQAAAAHBAgEAAAABwgIBAAAAAcMCAQAAAAHEAgEA1QMAIcUCAQAAAAHGAgEAAAABxwIBAAAAAQm0AgAA1gMAMLUCAAC4AwAQtgIAANYDADC3AgEA1wMAIbgCAQDXAwAhuQIBANcDACG6AkAA2AMAIbsCQADYAwAhvAJAANgDACELvQIBAAAAAb4CAQAAAAS_AgEAAAAEwAIBAAAAAcECAQAAAAHCAgEAAAABwwIBAAAAAcQCAQDVAwAhxQIBAAAAAcYCAQAAAAHHAgEAAAABCL0CQAAAAAG-AkAAAAAEvwJAAAAABMACQAAAAAHBAkAAAAABwgJAAAAAAcMCQAAAAAHEAkAA0wMAIQK4AgEAAAABuQIBAAAAAQu0AgAA2gMAMLUCAACyAwAQtgIAANoDADC3AgEAzwMAIboCQADQAwAhuwJAANADACG8AkAA0AMAIckCAQDPAwAhygIBAM8DACHLAgEA2wMAIcwCAQDbAwAhDgcAAN0DACAcAADeAwAgHQAA3gMAIL0CAQAAAAG-AgEAAAAFvwIBAAAABcACAQAAAAHBAgEAAAABwgIBAAAAAcMCAQAAAAHEAgEA3AMAIcUCAQAAAAHGAgEAAAABxwIBAAAAAQ4HAADdAwAgHAAA3gMAIB0AAN4DACC9AgEAAAABvgIBAAAABb8CAQAAAAXAAgEAAAABwQIBAAAAAcICAQAAAAHDAgEAAAABxAIBANwDACHFAgEAAAABxgIBAAAAAccCAQAAAAEIvQICAAAAAb4CAgAAAAW_AgIAAAAFwAICAAAAAcECAgAAAAHCAgIAAAABwwICAAAAAcQCAgDdAwAhC70CAQAAAAG-AgEAAAAFvwIBAAAABcACAQAAAAHBAgEAAAABwgIBAAAAAcMCAQAAAAHEAgEA3gMAIcUCAQAAAAHGAgEAAAABxwIBAAAAARS0AgAA3wMAMLUCAACcAwAQtgIAAN8DADC3AgEAzwMAIbsCQADQAwAhvAJAANADACHKAgEAzwMAIc0CAQDPAwAhzgIBAM8DACHPAgEAzwMAIdACAQDbAwAh0QIBANsDACHSAgEA2wMAIdMCAgDgAwAh1AJAAOEDACHVAkAA4QMAIdYCAQDbAwAh1wIBANsDACHYAgEA2wMAIdkCAQDbAwAhDQcAAN0DACAaAADlAwAgGwAA3QMAIBwAAN0DACAdAADdAwAgvQICAAAAAb4CAgAAAAW_AgIAAAAFwAICAAAAAcECAgAAAAHCAgIAAAABwwICAAAAAcQCAgDkAwAhCwcAAN0DACAcAADjAwAgHQAA4wMAIL0CQAAAAAG-AkAAAAAFvwJAAAAABcACQAAAAAHBAkAAAAABwgJAAAAAAcMCQAAAAAHEAkAA4gMAIQsHAADdAwAgHAAA4wMAIB0AAOMDACC9AkAAAAABvgJAAAAABb8CQAAAAAXAAkAAAAABwQJAAAAAAcICQAAAAAHDAkAAAAABxAJAAOIDACEIvQJAAAAAAb4CQAAAAAW_AkAAAAAFwAJAAAAAAcECQAAAAAHCAkAAAAABwwJAAAAAAcQCQADjAwAhDQcAAN0DACAaAADlAwAgGwAA3QMAIBwAAN0DACAdAADdAwAgvQICAAAAAb4CAgAAAAW_AgIAAAAFwAICAAAAAcECAgAAAAHCAgIAAAABwwICAAAAAcQCAgDkAwAhCL0CCAAAAAG-AggAAAAFvwIIAAAABcACCAAAAAHBAggAAAABwgIIAAAAAcMCCAAAAAHEAggA5QMAIQm0AgAA5gMAMLUCAACGAwAQtgIAAOYDADC3AgEAzwMAIbsCQADQAwAhygIBAM8DACHaAgEAzwMAIdsCQADQAwAh3AJAAOEDACEMtAIAAOcDADC1AgAA8AIAELYCAADnAwAwtwIBAM8DACG7AkAA0AMAIbwCQADQAwAh3QIBANsDACHeAgEA2wMAId8CIADoAwAh4AIBANsDACHhAgEA2wMAIeICAQDPAwAhBQcAANIDACAcAADqAwAgHQAA6gMAIL0CIAAAAAHEAiAA6QMAIQUHAADSAwAgHAAA6gMAIB0AAOoDACC9AiAAAAABxAIgAOkDACECvQIgAAAAAcQCIADqAwAhD-EBAADuAwAg4gEAAO8DACDjAQAA8AMAILQCAADrAwAwtQIAAN0CABC2AgAA6wMAMLcCAQDXAwAhuwJAANgDACG8AkAA2AMAId0CAQDsAwAh3gIBAOwDACHfAiAA7QMAIeACAQDsAwAh4QIBAOwDACHiAgEA1wMAIQu9AgEAAAABvgIBAAAABb8CAQAAAAXAAgEAAAABwQIBAAAAAcICAQAAAAHDAgEAAAABxAIBAN4DACHFAgEAAAABxgIBAAAAAccCAQAAAAECvQIgAAAAAcQCIADqAwAhA-MCAADNAgAg5AIAAM0CACDlAgAAzQIAIAPjAgAA0QIAIOQCAADRAgAg5QIAANECACAD4wIAANUCACDkAgAA1QIAIOUCAADVAgAgCuABAADzAwAgtAIAAPEDADC1AgAA1QIAELYCAADxAwAwtwIBANcDACG7AkAA2AMAIcoCAQDXAwAh2gIBANcDACHbAkAA2AMAIdwCQADyAwAhCL0CQAAAAAG-AkAAAAAFvwJAAAAABcACQAAAAAHBAkAAAAABwgJAAAAAAcMCQAAAAAHEAkAA4wMAIRHhAQAA7gMAIOIBAADvAwAg4wEAAPADACC0AgAA6wMAMLUCAADdAgAQtgIAAOsDADC3AgEA1wMAIbsCQADYAwAhvAJAANgDACHdAgEA7AMAId4CAQDsAwAh3wIgAO0DACHgAgEA7AMAIeECAQDsAwAh4gIBANcDACG_AwAA3QIAIMADAADdAgAgDOABAADzAwAgtAIAAPQDADC1AgAA0QIAELYCAAD0AwAwtwIBANcDACG6AkAA2AMAIbsCQADYAwAhvAJAANgDACHJAgEA1wMAIcoCAQDXAwAhywIBAOwDACHMAgEA7AMAIQLOAgEAAAABzwIBAAAAARXgAQAA8wMAILQCAAD2AwAwtQIAAM0CABC2AgAA9gMAMLcCAQDXAwAhuwJAANgDACG8AkAA2AMAIcoCAQDXAwAhzQIBANcDACHOAgEA1wMAIc8CAQDXAwAh0AIBAOwDACHRAgEA7AMAIdICAQDsAwAh0wICAPcDACHUAkAA8gMAIdUCQADyAwAh1gIBAOwDACHXAgEA7AMAIdgCAQDsAwAh2QIBAOwDACEIvQICAAAAAb4CAgAAAAW_AgIAAAAFwAICAAAAAcECAgAAAAHCAgIAAAABwwICAAAAAcQCAgDdAwAhCrQCAAD4AwAwtQIAAMgCABC2AgAA-AMAMNsCAQDbAwAh5wIBAM8DACHoAgEAzwMAIekCAQDPAwAh6gIBANsDACHrAgEAzwMAIewCAQDPAwAhCrQCAAD5AwAwtQIAALUCABC2AgAA-QMAMNsCAQDsAwAh5wIBANcDACHoAgEA1wMAIekCAQDXAwAh6gIBAOwDACHrAgEA1wMAIewCAQDXAwAhCLQCAAD6AwAwtQIAAK8CABC2AgAA-gMAMLwCAQDPAwAh6AIBAM8DACHtAgEAzwMAIe4CAQDPAwAh7wIBAM8DACEItAIAAPsDADC1AgAAnAIAELYCAAD7AwAwvAIBANcDACHoAgEA1wMAIe0CAQDXAwAh7gIBANcDACHvAgEA1wMAIQPtAgEAAAAB7gIBAAAAAe8CAQAAAAEKtAIAAP0DADC1AgAAlgIAELYCAAD9AwAwuwIBAM8DACHbAgEAzwMAIegCAQDPAwAh8QIBAM8DACHyAgEA2wMAIfMCAQDbAwAh9AIBAM8DACEKtAIAAP4DADC1AgAAgwIAELYCAAD-AwAwuwIBANcDACHbAgEA1wMAIegCAQDXAwAh8QIBANcDACHyAgEA7AMAIfMCAQDsAwAh9AIBANcDACEMtAIAAP8DADC1AgAA_QEAELYCAAD_AwAwvAIBAM8DACHoAgEAzwMAIfMCAQDPAwAh9QIBAM8DACH2AgEAzwMAIfcCAgCABAAh-AIBANsDACH5AgEA2wMAIfoCAQDPAwAhDQcAANIDACAaAACCBAAgGwAA0gMAIBwAANIDACAdAADSAwAgvQICAAAAAb4CAgAAAAS_AgIAAAAEwAICAAAAAcECAgAAAAHCAgIAAAABwwICAAAAAcQCAgCBBAAhDQcAANIDACAaAACCBAAgGwAA0gMAIBwAANIDACAdAADSAwAgvQICAAAAAb4CAgAAAAS_AgIAAAAEwAICAAAAAcECAgAAAAHCAgIAAAABwwICAAAAAcQCAgCBBAAhCL0CCAAAAAG-AggAAAAEvwIIAAAABMACCAAAAAHBAggAAAABwgIIAAAAAcMCCAAAAAHEAggAggQAIQy0AgAAgwQAMLUCAADqAQAQtgIAAIMEADC8AgEA1wMAIegCAQDXAwAh8wIBANcDACH1AgEA1wMAIfYCAQDXAwAh9wICAIQEACH4AgEA7AMAIfkCAQDsAwAh-gIBANcDACEIvQICAAAAAb4CAgAAAAS_AgIAAAAEwAICAAAAAcECAgAAAAHCAgIAAAABwwICAAAAAcQCAgDSAwAhCLQCAACFBAAwtQIAAOQBABC2AgAAhQQAMLwCAQDPAwAh6AIBAM8DACH1AgEAzwMAIfYCAQDPAwAh9wICAIAEACEItAIAAIYEADC1AgAA0QEAELYCAACGBAAwvAIBANcDACHoAgEA1wMAIfUCAQDXAwAh9gIBANcDACH3AgIAhAQAIQ20AgAAhwQAMLUCAADLAQAQtgIAAIcEADC7AgEAzwMAIbwCAQDPAwAh6AIBAM8DACH7AgEAzwMAIfwCAQDPAwAh_QIBAM8DACH-AgEAzwMAIf8CAQDPAwAhgAMBAM8DACGBAwEAzwMAIQ20AgAAiAQAMLUCAAC4AQAQtgIAAIgEADC7AgEA1wMAIbwCAQDXAwAh6AIBANcDACH7AgEA1wMAIfwCAQDXAwAh_QIBANcDACH-AgEA1wMAIf8CAQDXAwAhgAMBANcDACGBAwEA1wMAIQe0AgAAiQQAMLUCAACyAQAQtgIAAIkEADC8AgEAzwMAIe0CAQDPAwAh7gIBAM8DACGCAwEAzwMAIQe0AgAAigQAMLUCAACfAQAQtgIAAIoEADC8AgEA1wMAIe0CAQDXAwAh7gIBANcDACGCAwEA1wMAIQLtAgEAAAAB7gIBAAAAAQa0AgAAjAQAMLUCAACZAQAQtgIAAIwEADC8AgEAzwMAIe0CAQDPAwAhhAMgAOgDACEGtAIAAI0EADC1AgAAhgEAELYCAACNBAAwvAIBANcDACHtAgEA1wMAIYQDIADtAwAhB7QCAACOBAAwtQIAAIABABC2AgAAjgQAMLwCAQDPAwAh7QIBAM8DACGCAwEAzwMAIYUDAQDbAwAhB7QCAACPBAAwtQIAAG0AELYCAACPBAAwvAIBANcDACHtAgEA1wMAIYIDAQDXAwAhhQMBAOwDACEItAIAAJAEADC1AgAAZwAQtgIAAJAEADC8AgEAzwMAIe0CAQDPAwAhhgMBAM8DACGHAwIAgAQAIYgDAQDPAwAhCQMAAJIEACC0AgAAkQQAMLUCAAALABC2AgAAkQQAMLwCAQDXAwAh7QIBANcDACGGAwEA1wMAIYcDAgCEBAAhiAMBANcDACEXBAAAmgQAIAUAAJsEACAGAACcBAAgtAIAAJkEADC1AgAAEAAQtgIAAJkEADC8AgEA1wMAIekCAQDXAwAh7QIBANcDACGGAwEA1wMAIYcDAgCEBAAhlAMBANcDACGVAwEA7AMAIbYDAQDsAwAhtwMBAOwDACG4AwEA7AMAIbkDAQDsAwAhugMBAOwDACG7AwEA7AMAIbwDAQDsAwAhvQMBANcDACG_AwAAEAAgwAMAABAAICi0AgAAkwQAMLUCAABPABC2AgAAkwQAMLwCAQDPAwAh6AIBAM8DACHpAgEAzwMAIe0CAQDPAwAhhgMBAM8DACGJAwEAzwMAIYoDAQDPAwAhiwMBAM8DACGMAwEA2wMAIY0DAQDbAwAhjgMBAM8DACGPAwIAgAQAIZADAQDbAwAhkQMBANsDACGSAwEA2wMAIZMDAQDbAwAhlAMBANsDACGVAwEA2wMAIZYDAgCABAAhlwMBANsDACGYAwEA2wMAIZkDAQDbAwAhmgMBANsDACGbAwIA4AMAIZwDAgDgAwAhnQMCAOADACGeAwEA2wMAIZ8DAQDbAwAhoAMCAOADACGhAwIA4AMAIaIDAQDbAwAhowMBANsDACGkAwEA2wMAIaUDAQDbAwAhpgMgAJQEACGnAyAAlAQAIagDIACUBAAhBQcAAN0DACAcAACWBAAgHQAAlgQAIL0CIAAAAAHEAiAAlQQAIQUHAADdAwAgHAAAlgQAIB0AAJYEACC9AiAAAAABxAIgAJUEACECvQIgAAAAAcQCIACWBAAhFrQCAACXBAAwtQIAADkAELYCAACXBAAw6QIBAM8DACHtAgEAzwMAIYYDAQDPAwAhjgMBAM8DACGQAwEA2wMAIZkDAQDbAwAhqQMBAM8DACGqAwEAzwMAIasDAQDbAwAhrAMBANsDACGtAwEA2wMAIa4DAQDbAwAhrwMBAM8DACGwAwEAzwMAIbEDAQDbAwAhsgMBANsDACGzAwEA2wMAIbQDAgCABAAhtQMBAM8DACEStAIAAJgEADC1AgAAIwAQtgIAAJgEADC8AgEAzwMAIekCAQDPAwAh7QIBAM8DACGGAwEAzwMAIYcDAgCABAAhlAMBAM8DACGVAwEA2wMAIbYDAQDbAwAhtwMBANsDACG4AwEA2wMAIbkDAQDbAwAhugMBANsDACG7AwEA2wMAIbwDAQDbAwAhvQMBAM8DACEVBAAAmgQAIAUAAJsEACAGAACcBAAgtAIAAJkEADC1AgAAEAAQtgIAAJkEADC8AgEA1wMAIekCAQDXAwAh7QIBANcDACGGAwEA1wMAIYcDAgCEBAAhlAMBANcDACGVAwEA7AMAIbYDAQDsAwAhtwMBAOwDACG4AwEA7AMAIbkDAQDsAwAhugMBAOwDACG7AwEA7AMAIbwDAQDsAwAhvQMBANcDACED4wIAAAMAIOQCAAADACDlAgAAAwAgA-MCAAAHACDkAgAABwAg5QIAAAcAIAsDAACSBAAgtAIAAJEEADC1AgAACwAQtgIAAJEEADC8AgEA1wMAIe0CAQDXAwAhhgMBANcDACGHAwIAhAQAIYgDAQDXAwAhvwMAAAsAIMADAAALACADhgMBAAAAAYkDAQAAAAGPAwIAAAABKQMAAJIEACC0AgAAngQAMLUCAAAHABC2AgAAngQAMLwCAQDXAwAh6AIBANcDACHpAgEA1wMAIe0CAQDXAwAhhgMBANcDACGJAwEA1wMAIYoDAQDXAwAhiwMBANcDACGMAwEA7AMAIY0DAQDsAwAhjgMBANcDACGPAwIAhAQAIZADAQDsAwAhkQMBAOwDACGSAwEA7AMAIZMDAQDsAwAhlAMBAOwDACGVAwEA7AMAIZYDAgCEBAAhlwMBAOwDACGYAwEA7AMAIZkDAQDsAwAhmgMBAOwDACGbAwIA9wMAIZwDAgD3AwAhnQMCAPcDACGeAwEA7AMAIZ8DAQDsAwAhoAMCAPcDACGhAwIA9wMAIaIDAQDsAwAhowMBAOwDACGkAwEA7AMAIaUDAQDsAwAhpgMgAJ8EACGnAyAAnwQAIagDIACfBAAhAr0CIAAAAAHEAiAAlgQAIRcDAACSBAAgtAIAAKAEADC1AgAAAwAQtgIAAKAEADDpAgEA1wMAIe0CAQDXAwAhhgMBANcDACGOAwEA1wMAIZADAQDsAwAhmQMBAOwDACGpAwEA1wMAIaoDAQDXAwAhqwMBAOwDACGsAwEA7AMAIa0DAQDsAwAhrgMBAOwDACGvAwEA1wMAIbADAQDXAwAhsQMBAOwDACGyAwEA7AMAIbMDAQDsAwAhtAMCAIQEACG1AwEA1wMAIQAAAAHEAwEAAAABAcQDQAAAAAEAAAAAAcQDAQAAAAEFFAAA7QUAIBUAAPAFACDBAwAA7gUAIMIDAADvBQAgxwMAAMsCACADFAAA7QUAIMEDAADuBQAgxwMAAMsCACAAAAAAAAXEAwIAAAABygMCAAAAAcsDAgAAAAHMAwIAAAABzQMCAAAAAQHEA0AAAAABBRQAAOgFACAVAADrBQAgwQMAAOkFACDCAwAA6gUAIMcDAADLAgAgAxQAAOgFACDBAwAA6QUAIMcDAADLAgAgAAAABRQAAOMFACAVAADmBQAgwQMAAOQFACDCAwAA5QUAIMcDAADLAgAgAxQAAOMFACDBAwAA5AUAIMcDAADLAgAgAAAAAcQDIAAAAAELFAAA2gQAMBUAAN8EADDBAwAA2wQAMMIDAADcBAAwwwMAAN0EACDEAwAA3gQAMMUDAADeBAAwxgMAAN4EADDHAwAA3gQAMMgDAADgBAAwyQMAAOEEADALFAAAzgQAMBUAANMEADDBAwAAzwQAMMIDAADQBAAwwwMAANEEACDEAwAA0gQAMMUDAADSBAAwxgMAANIEADDHAwAA0gQAMMgDAADUBAAwyQMAANUEADALFAAAwgQAMBUAAMcEADDBAwAAwwQAMMIDAADEBAAwwwMAAMUEACDEAwAAxgQAMMUDAADGBAAwxgMAAMYEADDHAwAAxgQAMMgDAADIBAAwyQMAAMkEADAFtwIBAAAAAbsCQAAAAAHaAgEAAAAB2wJAAAAAAdwCQAAAAAECAAAA1wIAIBQAAM0EACADAAAA1wIAIBQAAM0EACAVAADMBAAgAQ0AAOIFADAK4AEAAPMDACC0AgAA8QMAMLUCAADVAgAQtgIAAPEDADC3AgEAAAABuwJAANgDACHKAgEA1wMAIdoCAQAAAAHbAkAA2AMAIdwCQADyAwAhAgAAANcCACANAADMBAAgAgAAAMoEACANAADLBAAgCbQCAADJBAAwtQIAAMoEABC2AgAAyQQAMLcCAQDXAwAhuwJAANgDACHKAgEA1wMAIdoCAQDXAwAh2wJAANgDACHcAkAA8gMAIQm0AgAAyQQAMLUCAADKBAAQtgIAAMkEADC3AgEA1wMAIbsCQADYAwAhygIBANcDACHaAgEA1wMAIdsCQADYAwAh3AJAAPIDACEFtwIBAKQEACG7AkAApQQAIdoCAQCkBAAh2wJAAKUEACHcAkAAswQAIQW3AgEApAQAIbsCQAClBAAh2gIBAKQEACHbAkAApQQAIdwCQACzBAAhBbcCAQAAAAG7AkAAAAAB2gIBAAAAAdsCQAAAAAHcAkAAAAABB7cCAQAAAAG6AkAAAAABuwJAAAAAAbwCQAAAAAHJAgEAAAABywIBAAAAAcwCAQAAAAECAAAA0wIAIBQAANkEACADAAAA0wIAIBQAANkEACAVAADYBAAgAQ0AAOEFADAM4AEAAPMDACC0AgAA9AMAMLUCAADRAgAQtgIAAPQDADC3AgEAAAABugJAANgDACG7AkAA2AMAIbwCQADYAwAhyQIBAAAAAcoCAQDXAwAhywIBAOwDACHMAgEA7AMAIQIAAADTAgAgDQAA2AQAIAIAAADWBAAgDQAA1wQAIAu0AgAA1QQAMLUCAADWBAAQtgIAANUEADC3AgEA1wMAIboCQADYAwAhuwJAANgDACG8AkAA2AMAIckCAQDXAwAhygIBANcDACHLAgEA7AMAIcwCAQDsAwAhC7QCAADVBAAwtQIAANYEABC2AgAA1QQAMLcCAQDXAwAhugJAANgDACG7AkAA2AMAIbwCQADYAwAhyQIBANcDACHKAgEA1wMAIcsCAQDsAwAhzAIBAOwDACEHtwIBAKQEACG6AkAApQQAIbsCQAClBAAhvAJAAKUEACHJAgEApAQAIcsCAQCqBAAhzAIBAKoEACEHtwIBAKQEACG6AkAApQQAIbsCQAClBAAhvAJAAKUEACHJAgEApAQAIcsCAQCqBAAhzAIBAKoEACEHtwIBAAAAAboCQAAAAAG7AkAAAAABvAJAAAAAAckCAQAAAAHLAgEAAAABzAIBAAAAARC3AgEAAAABuwJAAAAAAbwCQAAAAAHNAgEAAAABzgIBAAAAAc8CAQAAAAHQAgEAAAAB0QIBAAAAAdICAQAAAAHTAgIAAAAB1AJAAAAAAdUCQAAAAAHWAgEAAAAB1wIBAAAAAdgCAQAAAAHZAgEAAAABAgAAAM8CACAUAADlBAAgAwAAAM8CACAUAADlBAAgFQAA5AQAIAENAADgBQAwFuABAADzAwAgtAIAAPYDADC1AgAAzQIAELYCAAD2AwAwtwIBAAAAAbsCQADYAwAhvAJAANgDACHKAgEA1wMAIc0CAQDXAwAhzgIBANcDACHPAgEA1wMAIdACAQDsAwAh0QIBAOwDACHSAgEA7AMAIdMCAgD3AwAh1AJAAPIDACHVAkAA8gMAIdYCAQDsAwAh1wIBAOwDACHYAgEA7AMAIdkCAQDsAwAh5gIAAPUDACACAAAAzwIAIA0AAOQEACACAAAA4gQAIA0AAOMEACAUtAIAAOEEADC1AgAA4gQAELYCAADhBAAwtwIBANcDACG7AkAA2AMAIbwCQADYAwAhygIBANcDACHNAgEA1wMAIc4CAQDXAwAhzwIBANcDACHQAgEA7AMAIdECAQDsAwAh0gIBAOwDACHTAgIA9wMAIdQCQADyAwAh1QJAAPIDACHWAgEA7AMAIdcCAQDsAwAh2AIBAOwDACHZAgEA7AMAIRS0AgAA4QQAMLUCAADiBAAQtgIAAOEEADC3AgEA1wMAIbsCQADYAwAhvAJAANgDACHKAgEA1wMAIc0CAQDXAwAhzgIBANcDACHPAgEA1wMAIdACAQDsAwAh0QIBAOwDACHSAgEA7AMAIdMCAgD3AwAh1AJAAPIDACHVAkAA8gMAIdYCAQDsAwAh1wIBAOwDACHYAgEA7AMAIdkCAQDsAwAhELcCAQCkBAAhuwJAAKUEACG8AkAApQQAIc0CAQCkBAAhzgIBAKQEACHPAgEApAQAIdACAQCqBAAh0QIBAKoEACHSAgEAqgQAIdMCAgCyBAAh1AJAALMEACHVAkAAswQAIdYCAQCqBAAh1wIBAKoEACHYAgEAqgQAIdkCAQCqBAAhELcCAQCkBAAhuwJAAKUEACG8AkAApQQAIc0CAQCkBAAhzgIBAKQEACHPAgEApAQAIdACAQCqBAAh0QIBAKoEACHSAgEAqgQAIdMCAgCyBAAh1AJAALMEACHVAkAAswQAIdYCAQCqBAAh1wIBAKoEACHYAgEAqgQAIdkCAQCqBAAhELcCAQAAAAG7AkAAAAABvAJAAAAAAc0CAQAAAAHOAgEAAAABzwIBAAAAAdACAQAAAAHRAgEAAAAB0gIBAAAAAdMCAgAAAAHUAkAAAAAB1QJAAAAAAdYCAQAAAAHXAgEAAAAB2AIBAAAAAdkCAQAAAAEEFAAA2gQAMMEDAADbBAAwwwMAAN0EACDHAwAA3gQAMAQUAADOBAAwwQMAAM8EADDDAwAA0QQAIMcDAADSBAAwBBQAAMIEADDBAwAAwwQAMMMDAADFBAAgxwMAAMYEADAAAAAH4QEAAOkEACDiAQAA6gQAIOMBAADrBAAg3QIAAKYEACDeAgAApgQAIOACAACmBAAg4QIAAKYEACAAAAAAAAAAAAAAAAAAAAXEAwIAAAABygMCAAAAAcsDAgAAAAHMAwIAAAABzQMCAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFAAA2wUAIBUAAN4FACDBAwAA3AUAIMIDAADdBQAgxwMAAAEAIAMUAADbBQAgwQMAANwFACDHAwAAAQAgCwQAAMwFACAFAADNBQAgBgAAzgUAIJUDAACmBAAgtgMAAKYEACC3AwAApgQAILgDAACmBAAguQMAAKYEACC6AwAApgQAILsDAACmBAAgvAMAAKYEACAAAAAAAAHEAyAAAAABBRQAANYFACAVAADZBQAgwQMAANcFACDCAwAA2AUAIMcDAAABACADFAAA1gUAIMEDAADXBQAgxwMAAAEAIAAAAAAABRQAANEFACAVAADUBQAgwQMAANIFACDCAwAA0wUAIMcDAAABACADFAAA0QUAIMEDAADSBQAgxwMAAAEAIAAAAAAACxQAAL0FADAVAADCBQAwwQMAAL4FADDCAwAAvwUAMMMDAADABQAgxAMAAMEFADDFAwAAwQUAMMYDAADBBQAwxwMAAMEFADDIAwAAwwUAMMkDAADEBQAwCxQAALEFADAVAAC2BQAwwQMAALIFADDCAwAAswUAMMMDAAC0BQAgxAMAALUFADDFAwAAtQUAMMYDAAC1BQAwxwMAALUFADDIAwAAtwUAMMkDAAC4BQAwBxQAAKwFACAVAACvBQAgwQMAAK0FACDCAwAArgUAIMUDAAALACDGAwAACwAgxwMAAFIAIAS8AgEAAAAB7QIBAAAAAYcDAgAAAAGIAwEAAAABAgAAAFIAIBQAAKwFACADAAAACwAgFAAArAUAIBUAALAFACAGAAAACwAgDQAAsAUAILwCAQCkBAAh7QIBAKQEACGHAwIA-wQAIYgDAQCkBAAhBLwCAQCkBAAh7QIBAKQEACGHAwIA-wQAIYgDAQCkBAAhJLwCAQAAAAHoAgEAAAAB6QIBAAAAAe0CAQAAAAGJAwEAAAABigMBAAAAAYsDAQAAAAGMAwEAAAABjQMBAAAAAY4DAQAAAAGPAwIAAAABkAMBAAAAAZEDAQAAAAGSAwEAAAABkwMBAAAAAZQDAQAAAAGVAwEAAAABlgMCAAAAAZcDAQAAAAGYAwEAAAABmQMBAAAAAZoDAQAAAAGbAwIAAAABnAMCAAAAAZ0DAgAAAAGeAwEAAAABnwMBAAAAAaADAgAAAAGhAwIAAAABogMBAAAAAaMDAQAAAAGkAwEAAAABpQMBAAAAAaYDIAAAAAGnAyAAAAABqAMgAAAAAQIAAAAJACAUAAC8BQAgAwAAAAkAIBQAALwFACAVAAC7BQAgAQ0AANAFADAqAwAAkgQAILQCAACeBAAwtQIAAAcAELYCAACeBAAwvAIBANcDACHoAgEAAAAB6QIBANcDACHtAgEA1wMAIYYDAQDXAwAhiQMBANcDACGKAwEA1wMAIYsDAQDXAwAhjAMBAOwDACGNAwEA7AMAIY4DAQDXAwAhjwMCAIQEACGQAwEA7AMAIZEDAQDsAwAhkgMBAOwDACGTAwEA7AMAIZQDAQDsAwAhlQMBAOwDACGWAwIAhAQAIZcDAQDsAwAhmAMBAOwDACGZAwEA7AMAIZoDAQDsAwAhmwMCAPcDACGcAwIA9wMAIZ0DAgD3AwAhngMBAOwDACGfAwEA7AMAIaADAgD3AwAhoQMCAPcDACGiAwEA7AMAIaMDAQDsAwAhpAMBAOwDACGlAwEA7AMAIaYDIACfBAAhpwMgAJ8EACGoAyAAnwQAIb4DAACdBAAgAgAAAAkAIA0AALsFACACAAAAuQUAIA0AALoFACAotAIAALgFADC1AgAAuQUAELYCAAC4BQAwvAIBANcDACHoAgEA1wMAIekCAQDXAwAh7QIBANcDACGGAwEA1wMAIYkDAQDXAwAhigMBANcDACGLAwEA1wMAIYwDAQDsAwAhjQMBAOwDACGOAwEA1wMAIY8DAgCEBAAhkAMBAOwDACGRAwEA7AMAIZIDAQDsAwAhkwMBAOwDACGUAwEA7AMAIZUDAQDsAwAhlgMCAIQEACGXAwEA7AMAIZgDAQDsAwAhmQMBAOwDACGaAwEA7AMAIZsDAgD3AwAhnAMCAPcDACGdAwIA9wMAIZ4DAQDsAwAhnwMBAOwDACGgAwIA9wMAIaEDAgD3AwAhogMBAOwDACGjAwEA7AMAIaQDAQDsAwAhpQMBAOwDACGmAyAAnwQAIacDIACfBAAhqAMgAJ8EACEotAIAALgFADC1AgAAuQUAELYCAAC4BQAwvAIBANcDACHoAgEA1wMAIekCAQDXAwAh7QIBANcDACGGAwEA1wMAIYkDAQDXAwAhigMBANcDACGLAwEA1wMAIYwDAQDsAwAhjQMBAOwDACGOAwEA1wMAIY8DAgCEBAAhkAMBAOwDACGRAwEA7AMAIZIDAQDsAwAhkwMBAOwDACGUAwEA7AMAIZUDAQDsAwAhlgMCAIQEACGXAwEA7AMAIZgDAQDsAwAhmQMBAOwDACGaAwEA7AMAIZsDAgD3AwAhnAMCAPcDACGdAwIA9wMAIZ4DAQDsAwAhnwMBAOwDACGgAwIA9wMAIaEDAgD3AwAhogMBAOwDACGjAwEA7AMAIaQDAQDsAwAhpQMBAOwDACGmAyAAnwQAIacDIACfBAAhqAMgAJ8EACEkvAIBAKQEACHoAgEApAQAIekCAQCkBAAh7QIBAKQEACGJAwEApAQAIYoDAQCkBAAhiwMBAKQEACGMAwEAqgQAIY0DAQCqBAAhjgMBAKQEACGPAwIA-wQAIZADAQCqBAAhkQMBAKoEACGSAwEAqgQAIZMDAQCqBAAhlAMBAKoEACGVAwEAqgQAIZYDAgD7BAAhlwMBAKoEACGYAwEAqgQAIZkDAQCqBAAhmgMBAKoEACGbAwIAsgQAIZwDAgCyBAAhnQMCALIEACGeAwEAqgQAIZ8DAQCqBAAhoAMCALIEACGhAwIAsgQAIaIDAQCqBAAhowMBAKoEACGkAwEAqgQAIaUDAQCqBAAhpgMgAJoFACGnAyAAmgUAIagDIACaBQAhJLwCAQCkBAAh6AIBAKQEACHpAgEApAQAIe0CAQCkBAAhiQMBAKQEACGKAwEApAQAIYsDAQCkBAAhjAMBAKoEACGNAwEAqgQAIY4DAQCkBAAhjwMCAPsEACGQAwEAqgQAIZEDAQCqBAAhkgMBAKoEACGTAwEAqgQAIZQDAQCqBAAhlQMBAKoEACGWAwIA-wQAIZcDAQCqBAAhmAMBAKoEACGZAwEAqgQAIZoDAQCqBAAhmwMCALIEACGcAwIAsgQAIZ0DAgCyBAAhngMBAKoEACGfAwEAqgQAIaADAgCyBAAhoQMCALIEACGiAwEAqgQAIaMDAQCqBAAhpAMBAKoEACGlAwEAqgQAIaYDIACaBQAhpwMgAJoFACGoAyAAmgUAISS8AgEAAAAB6AIBAAAAAekCAQAAAAHtAgEAAAABiQMBAAAAAYoDAQAAAAGLAwEAAAABjAMBAAAAAY0DAQAAAAGOAwEAAAABjwMCAAAAAZADAQAAAAGRAwEAAAABkgMBAAAAAZMDAQAAAAGUAwEAAAABlQMBAAAAAZYDAgAAAAGXAwEAAAABmAMBAAAAAZkDAQAAAAGaAwEAAAABmwMCAAAAAZwDAgAAAAGdAwIAAAABngMBAAAAAZ8DAQAAAAGgAwIAAAABoQMCAAAAAaIDAQAAAAGjAwEAAAABpAMBAAAAAaUDAQAAAAGmAyAAAAABpwMgAAAAAagDIAAAAAES6QIBAAAAAe0CAQAAAAGOAwEAAAABkAMBAAAAAZkDAQAAAAGpAwEAAAABqgMBAAAAAasDAQAAAAGsAwEAAAABrQMBAAAAAa4DAQAAAAGvAwEAAAABsAMBAAAAAbEDAQAAAAGyAwEAAAABswMBAAAAAbQDAgAAAAG1AwEAAAABAgAAAAUAIBQAAMgFACADAAAABQAgFAAAyAUAIBUAAMcFACABDQAAzwUAMBcDAACSBAAgtAIAAKAEADC1AgAAAwAQtgIAAKAEADDpAgEA1wMAIe0CAQDXAwAhhgMBANcDACGOAwEA1wMAIZADAQDsAwAhmQMBAOwDACGpAwEAAAABqgMBANcDACGrAwEA7AMAIawDAQDsAwAhrQMBAOwDACGuAwEA7AMAIa8DAQDXAwAhsAMBANcDACGxAwEA7AMAIbIDAQDsAwAhswMBAOwDACG0AwIAhAQAIbUDAQDXAwAhAgAAAAUAIA0AAMcFACACAAAAxQUAIA0AAMYFACAWtAIAAMQFADC1AgAAxQUAELYCAADEBQAw6QIBANcDACHtAgEA1wMAIYYDAQDXAwAhjgMBANcDACGQAwEA7AMAIZkDAQDsAwAhqQMBANcDACGqAwEA1wMAIasDAQDsAwAhrAMBAOwDACGtAwEA7AMAIa4DAQDsAwAhrwMBANcDACGwAwEA1wMAIbEDAQDsAwAhsgMBAOwDACGzAwEA7AMAIbQDAgCEBAAhtQMBANcDACEWtAIAAMQFADC1AgAAxQUAELYCAADEBQAw6QIBANcDACHtAgEA1wMAIYYDAQDXAwAhjgMBANcDACGQAwEA7AMAIZkDAQDsAwAhqQMBANcDACGqAwEA1wMAIasDAQDsAwAhrAMBAOwDACGtAwEA7AMAIa4DAQDsAwAhrwMBANcDACGwAwEA1wMAIbEDAQDsAwAhsgMBAOwDACGzAwEA7AMAIbQDAgCEBAAhtQMBANcDACES6QIBAKQEACHtAgEApAQAIY4DAQCkBAAhkAMBAKoEACGZAwEAqgQAIakDAQCkBAAhqgMBAKQEACGrAwEAqgQAIawDAQCqBAAhrQMBAKoEACGuAwEAqgQAIa8DAQCkBAAhsAMBAKQEACGxAwEAqgQAIbIDAQCqBAAhswMBAKoEACG0AwIA-wQAIbUDAQCkBAAhEukCAQCkBAAh7QIBAKQEACGOAwEApAQAIZADAQCqBAAhmQMBAKoEACGpAwEApAQAIaoDAQCkBAAhqwMBAKoEACGsAwEAqgQAIa0DAQCqBAAhrgMBAKoEACGvAwEApAQAIbADAQCkBAAhsQMBAKoEACGyAwEAqgQAIbMDAQCqBAAhtAMCAPsEACG1AwEApAQAIRLpAgEAAAAB7QIBAAAAAY4DAQAAAAGQAwEAAAABmQMBAAAAAakDAQAAAAGqAwEAAAABqwMBAAAAAawDAQAAAAGtAwEAAAABrgMBAAAAAa8DAQAAAAGwAwEAAAABsQMBAAAAAbIDAQAAAAGzAwEAAAABtAMCAAAAAbUDAQAAAAEEFAAAvQUAMMEDAAC-BQAwwwMAAMAFACDHAwAAwQUAMAQUAACxBQAwwQMAALIFADDDAwAAtAUAIMcDAAC1BQAwAxQAAKwFACDBAwAArQUAIMcDAABSACAAAAEDAACUBQAgEukCAQAAAAHtAgEAAAABjgMBAAAAAZADAQAAAAGZAwEAAAABqQMBAAAAAaoDAQAAAAGrAwEAAAABrAMBAAAAAa0DAQAAAAGuAwEAAAABrwMBAAAAAbADAQAAAAGxAwEAAAABsgMBAAAAAbMDAQAAAAG0AwIAAAABtQMBAAAAASS8AgEAAAAB6AIBAAAAAekCAQAAAAHtAgEAAAABiQMBAAAAAYoDAQAAAAGLAwEAAAABjAMBAAAAAY0DAQAAAAGOAwEAAAABjwMCAAAAAZADAQAAAAGRAwEAAAABkgMBAAAAAZMDAQAAAAGUAwEAAAABlQMBAAAAAZYDAgAAAAGXAwEAAAABmAMBAAAAAZkDAQAAAAGaAwEAAAABmwMCAAAAAZwDAgAAAAGdAwIAAAABngMBAAAAAZ8DAQAAAAGgAwIAAAABoQMCAAAAAaIDAQAAAAGjAwEAAAABpAMBAAAAAaUDAQAAAAGmAyAAAAABpwMgAAAAAagDIAAAAAERBQAAygUAIAYAAMsFACC8AgEAAAAB6QIBAAAAAe0CAQAAAAGGAwEAAAABhwMCAAAAAZQDAQAAAAGVAwEAAAABtgMBAAAAAbcDAQAAAAG4AwEAAAABuQMBAAAAAboDAQAAAAG7AwEAAAABvAMBAAAAAb0DAQAAAAECAAAAAQAgFAAA0QUAIAMAAAAQACAUAADRBQAgFQAA1QUAIBMAAAAQACAFAACqBQAgBgAAqwUAIA0AANUFACC8AgEApAQAIekCAQCkBAAh7QIBAKQEACGGAwEApAQAIYcDAgD7BAAhlAMBAKQEACGVAwEAqgQAIbYDAQCqBAAhtwMBAKoEACG4AwEAqgQAIbkDAQCqBAAhugMBAKoEACG7AwEAqgQAIbwDAQCqBAAhvQMBAKQEACERBQAAqgUAIAYAAKsFACC8AgEApAQAIekCAQCkBAAh7QIBAKQEACGGAwEApAQAIYcDAgD7BAAhlAMBAKQEACGVAwEAqgQAIbYDAQCqBAAhtwMBAKoEACG4AwEAqgQAIbkDAQCqBAAhugMBAKoEACG7AwEAqgQAIbwDAQCqBAAhvQMBAKQEACERBAAAyQUAIAYAAMsFACC8AgEAAAAB6QIBAAAAAe0CAQAAAAGGAwEAAAABhwMCAAAAAZQDAQAAAAGVAwEAAAABtgMBAAAAAbcDAQAAAAG4AwEAAAABuQMBAAAAAboDAQAAAAG7AwEAAAABvAMBAAAAAb0DAQAAAAECAAAAAQAgFAAA1gUAIAMAAAAQACAUAADWBQAgFQAA2gUAIBMAAAAQACAEAACpBQAgBgAAqwUAIA0AANoFACC8AgEApAQAIekCAQCkBAAh7QIBAKQEACGGAwEApAQAIYcDAgD7BAAhlAMBAKQEACGVAwEAqgQAIbYDAQCqBAAhtwMBAKoEACG4AwEAqgQAIbkDAQCqBAAhugMBAKoEACG7AwEAqgQAIbwDAQCqBAAhvQMBAKQEACERBAAAqQUAIAYAAKsFACC8AgEApAQAIekCAQCkBAAh7QIBAKQEACGGAwEApAQAIYcDAgD7BAAhlAMBAKQEACGVAwEAqgQAIbYDAQCqBAAhtwMBAKoEACG4AwEAqgQAIbkDAQCqBAAhugMBAKoEACG7AwEAqgQAIbwDAQCqBAAhvQMBAKQEACERBAAAyQUAIAUAAMoFACC8AgEAAAAB6QIBAAAAAe0CAQAAAAGGAwEAAAABhwMCAAAAAZQDAQAAAAGVAwEAAAABtgMBAAAAAbcDAQAAAAG4AwEAAAABuQMBAAAAAboDAQAAAAG7AwEAAAABvAMBAAAAAb0DAQAAAAECAAAAAQAgFAAA2wUAIAMAAAAQACAUAADbBQAgFQAA3wUAIBMAAAAQACAEAACpBQAgBQAAqgUAIA0AAN8FACC8AgEApAQAIekCAQCkBAAh7QIBAKQEACGGAwEApAQAIYcDAgD7BAAhlAMBAKQEACGVAwEAqgQAIbYDAQCqBAAhtwMBAKoEACG4AwEAqgQAIbkDAQCqBAAhugMBAKoEACG7AwEAqgQAIbwDAQCqBAAhvQMBAKQEACERBAAAqQUAIAUAAKoFACC8AgEApAQAIekCAQCkBAAh7QIBAKQEACGGAwEApAQAIYcDAgD7BAAhlAMBAKQEACGVAwEAqgQAIbYDAQCqBAAhtwMBAKoEACG4AwEAqgQAIbkDAQCqBAAhugMBAKoEACG7AwEAqgQAIbwDAQCqBAAhvQMBAKQEACEQtwIBAAAAAbsCQAAAAAG8AkAAAAABzQIBAAAAAc4CAQAAAAHPAgEAAAAB0AIBAAAAAdECAQAAAAHSAgEAAAAB0wICAAAAAdQCQAAAAAHVAkAAAAAB1gIBAAAAAdcCAQAAAAHYAgEAAAAB2QIBAAAAAQe3AgEAAAABugJAAAAAAbsCQAAAAAG8AkAAAAAByQIBAAAAAcsCAQAAAAHMAgEAAAABBbcCAQAAAAG7AkAAAAAB2gIBAAAAAdsCQAAAAAHcAkAAAAABC-EBAADmBAAg4gEAAOcEACC3AgEAAAABuwJAAAAAAbwCQAAAAAHdAgEAAAAB3gIBAAAAAd8CIAAAAAHgAgEAAAAB4QIBAAAAAeICAQAAAAECAAAAywIAIBQAAOMFACADAAAA3QIAIBQAAOMFACAVAADnBQAgDQAAAN0CACANAADnBQAg4QEAAL8EACDiAQAAwAQAILcCAQCkBAAhuwJAAKUEACG8AkAApQQAId0CAQCqBAAh3gIBAKoEACHfAiAAvgQAIeACAQCqBAAh4QIBAKoEACHiAgEApAQAIQvhAQAAvwQAIOIBAADABAAgtwIBAKQEACG7AkAApQQAIbwCQAClBAAh3QIBAKoEACHeAgEAqgQAId8CIAC-BAAh4AIBAKoEACHhAgEAqgQAIeICAQCkBAAhC-IBAADnBAAg4wEAAOgEACC3AgEAAAABuwJAAAAAAbwCQAAAAAHdAgEAAAAB3gIBAAAAAd8CIAAAAAHgAgEAAAAB4QIBAAAAAeICAQAAAAECAAAAywIAIBQAAOgFACADAAAA3QIAIBQAAOgFACAVAADsBQAgDQAAAN0CACANAADsBQAg4gEAAMAEACDjAQAAwQQAILcCAQCkBAAhuwJAAKUEACG8AkAApQQAId0CAQCqBAAh3gIBAKoEACHfAiAAvgQAIeACAQCqBAAh4QIBAKoEACHiAgEApAQAIQviAQAAwAQAIOMBAADBBAAgtwIBAKQEACG7AkAApQQAIbwCQAClBAAh3QIBAKoEACHeAgEAqgQAId8CIAC-BAAh4AIBAKoEACHhAgEAqgQAIeICAQCkBAAhC-EBAADmBAAg4wEAAOgEACC3AgEAAAABuwJAAAAAAbwCQAAAAAHdAgEAAAAB3gIBAAAAAd8CIAAAAAHgAgEAAAAB4QIBAAAAAeICAQAAAAECAAAAywIAIBQAAO0FACADAAAA3QIAIBQAAO0FACAVAADxBQAgDQAAAN0CACANAADxBQAg4QEAAL8EACDjAQAAwQQAILcCAQCkBAAhuwJAAKUEACG8AkAApQQAId0CAQCqBAAh3gIBAKoEACHfAiAAvgQAIeACAQCqBAAh4QIBAKoEACHiAgEApAQAIQvhAQAAvwQAIOMBAADBBAAgtwIBAKQEACG7AkAApQQAIbwCQAClBAAh3QIBAKoEACHeAgEAqgQAId8CIAC-BAAh4AIBAKoEACHhAgEAqgQAIeICAQCkBAAhBAQGAgUKAwYMBAcABQEDAAEBAwABAQMAAQIEDQAFDgAAAAAFBwAKGgALGwAMHAANHQAOAAAAAAAFBwAKGgALGwAMHAANHQAOAQMAAQEDAAEFBwATGgAUGwAVHAAWHQAXAAAAAAAFBwATGgAUGwAVHAAWHQAXAQMAAQEDAAEFBwAcGgAdGwAeHAAfHQAgAAAAAAAFBwAcGgAdGwAeHAAfHQAgAQMAAQEDAAEFBwAlGgAmGwAnHAAoHQApAAAAAAAFBwAlGgAmGwAnHAAoHQApAAAAAwcALxwAMB0AMQAAAAMHAC8cADAdADEAAAADBwA3HAA4HQA5AAAAAwcANxwAOB0AOQAAAAMHAD8cAEAdAEEAAAADBwA_HABAHQBBAAAAAwcARxwASB0ASQAAAAMHAEccAEgdAEkAAAAFBwBPGgBQGwBRHABSHQBTAAAAAAAFBwBPGgBQGwBRHABSHQBTAAAABQcAWRoAWhsAWxwAXB0AXQAAAAAABQcAWRoAWhsAWxwAXB0AXQAAAAMHAGMcAGQdAGUAAAADBwBjHABkHQBlAAAAAwcAaxwAbB0AbQAAAAMHAGscAGwdAG0AAAADBwBzHAB0HQB1AAAAAwcAcxwAdB0AdQQHAHvhAdACeOIB1AJ54wHYAnoB4AEAdwHgAQB3AeABAHcD4QHZAgDiAdoCAOMB2wIAAAADBwB_HACAAR0AgQEAAAADBwB_HACAAR0AgQEB4AEAdwHgAQB3AwcAhgEcAIcBHQCIAQAAAAMHAIYBHACHAR0AiAEB4AEAdwHgAQB3BQcAjQEaAI4BGwCPARwAkAEdAJEBAAAAAAAFBwCNARoAjgEbAI8BHACQAR0AkQEB4AEAdwHgAQB3AwcAlgEcAJcBHQCYAQAAAAMHAJYBHACXAR0AmAEAAAADBwCeARwAnwEdAKABAAAAAwcAngEcAJ8BHQCgAQgCAQkPAQoSAQsTAQwUAQ4WAQ8YBhAZBxEbARIdBhMeCBYfARcgARghBh4kCR8lDyAmAiEnAiIoAiMpAiQqAiUsAiYuBicvECgxAikzBio0ESs1Aiw2Ai03Bi46Ei87GDA8AzE9AzI-AzM_AzRAAzVCAzZEBjdFGThHAzlJBjpKGjtLAzxMAz1NBj5QGz9RIUBTBEFUBEJWBENXBERYBEVaBEZcBkddIkhfBElhBkpiI0tjBExkBE1lBk5oJE9pKlBrK1FsK1JvK1NwK1RxK1VzK1Z1Bld2LFh4K1l6Blp7LVt8K1x9K11-Bl6BAS5fggEyYIQBM2GFATNiiAEzY4kBM2SKATNljAEzZo4BBmePATRokQEzaZMBBmqUATVrlQEzbJYBM22XAQZumgE2b5sBOnCdATtxngE7cqEBO3OiATt0owE7daUBO3anAQZ3qAE8eKoBO3msAQZ6rQE9e64BO3yvATt9sAEGfrMBPn-0AUKAAbYBQ4EBtwFDggG6AUODAbsBQ4QBvAFDhQG-AUOGAcABBocBwQFEiAHDAUOJAcUBBooBxgFFiwHHAUOMAcgBQ40ByQEGjgHMAUaPAc0BSpABzwFLkQHQAUuSAdMBS5MB1AFLlAHVAUuVAdcBS5YB2QEGlwHaAUyYAdwBS5kB3gEGmgHfAU2bAeABS5wB4QFLnQHiAQaeAeUBTp8B5gFUoAHoAVWhAekBVaIB7AFVowHtAVWkAe4BVaUB8AFVpgHyAQanAfMBVqgB9QFVqQH3AQaqAfgBV6sB-QFVrAH6AVWtAfsBBq4B_gFYrwH_AV6wAYECX7EBggJfsgGFAl-zAYYCX7QBhwJftQGJAl-2AYsCBrcBjAJguAGOAl-5AZACBroBkQJhuwGSAl-8AZMCX70BlAIGvgGXAmK_AZgCZsABmgJnwQGbAmfCAZ4CZ8MBnwJnxAGgAmfFAaICZ8YBpAIGxwGlAmjIAacCZ8kBqQIGygGqAmnLAasCZ8wBrAJnzQGtAgbOAbACas8BsQJu0AGzAm_RAbQCb9IBtwJv0wG4Am_UAbkCb9UBuwJv1gG9AgbXAb4CcNgBwAJv2QHCAgbaAcMCcdsBxAJv3AHFAm_dAcYCBt4ByQJy3wHKAnbkAcwCd-UB3AJ35gHfAnfnAeACd-gB4QJ36QHjAnfqAeUCBusB5gJ87AHoAnftAeoCBu4B6wJ97wHsAnfwAe0Cd_EB7gIG8gHxAn7zAfICggH0AfMCevUB9AJ69gH1Anr3AfYCevgB9wJ6-QH5Anr6AfsCBvsB_AKDAfwB_gJ6_QGAAwb-AYEDhAH_AYIDeoACgwN6gQKEAwaCAocDhQGDAogDiQGEAokDeIUCigN4hgKLA3iHAowDeIgCjQN4iQKPA3iKApEDBosCkgOKAYwClAN4jQKWAwaOApcDiwGPApgDeJACmQN4kQKaAwaSAp0DjAGTAp4DkgGUAp8DeZUCoAN5lgKhA3mXAqIDeZgCowN5mQKlA3maAqcDBpsCqAOTAZwCqgN5nQKsAwaeAq0DlAGfAq4DeaACrwN5oQKwAwaiArMDlQGjArQDmQGkArYDmgGlArcDmgGmAroDmgGnArsDmgGoArwDmgGpAr4DmgGqAsADBqsCwQObAawCwwOaAa0CxQMGrgLGA5wBrwLHA5oBsALIA5oBsQLJAwayAswDnQGzAs0DoQE"
|
|
13476
13668
|
};
|
|
13477
13669
|
config.compilerWasm = {
|
|
13478
13670
|
getRuntime: async () => require_query_compiler_fast_bg(),
|
|
@@ -13651,24 +13843,6 @@ let PrismaWorkflowRunRepository = class PrismaWorkflowRunRepository$1 {
|
|
|
13651
13843
|
}
|
|
13652
13844
|
async createRun(args) {
|
|
13653
13845
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
13654
|
-
const state = {
|
|
13655
|
-
runId: args.runId,
|
|
13656
|
-
workflowId: args.workflowId,
|
|
13657
|
-
startedAt: args.startedAt,
|
|
13658
|
-
parent: args.parent,
|
|
13659
|
-
executionOptions: args.executionOptions,
|
|
13660
|
-
control: args.control,
|
|
13661
|
-
workflowSnapshot: args.workflowSnapshot,
|
|
13662
|
-
mutableState: args.mutableState,
|
|
13663
|
-
policySnapshot: args.policySnapshot,
|
|
13664
|
-
engineCounters: args.engineCounters,
|
|
13665
|
-
status: "running",
|
|
13666
|
-
queue: [],
|
|
13667
|
-
outputsByNode: {},
|
|
13668
|
-
nodeSnapshotsByNodeId: {},
|
|
13669
|
-
connectionInvocations: []
|
|
13670
|
-
};
|
|
13671
|
-
const stateJson = this.serializeStateBlob(state);
|
|
13672
13846
|
await this.prisma.run.create({ data: {
|
|
13673
13847
|
runId: args.runId,
|
|
13674
13848
|
workflowId: args.workflowId,
|
|
@@ -13677,37 +13851,262 @@ let PrismaWorkflowRunRepository = class PrismaWorkflowRunRepository$1 {
|
|
|
13677
13851
|
parentJson: args.parent ? JSON.stringify(args.parent) : null,
|
|
13678
13852
|
executionOptionsJson: args.executionOptions ? JSON.stringify(args.executionOptions) : null,
|
|
13679
13853
|
updatedAt: now,
|
|
13680
|
-
|
|
13854
|
+
revision: 0,
|
|
13855
|
+
outputsByNodeJson: JSON.stringify({}),
|
|
13856
|
+
controlJson: args.control ? JSON.stringify(args.control) : null,
|
|
13857
|
+
workflowSnapshotJson: args.workflowSnapshot ? JSON.stringify(args.workflowSnapshot) : null,
|
|
13858
|
+
policySnapshotJson: args.policySnapshot ? JSON.stringify(args.policySnapshot) : null,
|
|
13859
|
+
engineCountersJson: args.engineCounters ? JSON.stringify(args.engineCounters) : null,
|
|
13860
|
+
mutableStateJson: args.mutableState ? JSON.stringify(args.mutableState) : null
|
|
13681
13861
|
} });
|
|
13682
13862
|
}
|
|
13683
13863
|
async load(runId) {
|
|
13684
13864
|
const id = decodeURIComponent(runId);
|
|
13685
13865
|
const row = await this.prisma.run.findUnique({ where: { runId: id } });
|
|
13686
13866
|
if (!row) return void 0;
|
|
13687
|
-
|
|
13867
|
+
const [schedulingState, instances] = await Promise.all([this.loadSchedulingState(id), this.prisma.executionInstance.findMany({
|
|
13868
|
+
where: { runId: id },
|
|
13869
|
+
orderBy: [{ slotNodeId: "asc" }, { runIndex: "asc" }]
|
|
13870
|
+
})]);
|
|
13871
|
+
const { nodeSnapshotsByNodeId, connectionInvocations } = this.instancesToDomain(row.runId, row.workflowId, instances);
|
|
13872
|
+
const parent = this.parseJson(row.parentJson);
|
|
13873
|
+
const persistedOutputsByNode = this.parseJson(row.outputsByNodeJson) ?? {};
|
|
13874
|
+
const merged = {
|
|
13875
|
+
runId: row.runId,
|
|
13876
|
+
workflowId: row.workflowId,
|
|
13877
|
+
startedAt: row.startedAt,
|
|
13878
|
+
finishedAt: row.finishedAt ?? void 0,
|
|
13879
|
+
revision: row.revision,
|
|
13880
|
+
parent,
|
|
13881
|
+
executionOptions: this.parseJson(row.executionOptionsJson),
|
|
13882
|
+
control: this.parseJson(row.controlJson),
|
|
13883
|
+
workflowSnapshot: this.parseJson(row.workflowSnapshotJson),
|
|
13884
|
+
mutableState: this.parseJson(row.mutableStateJson),
|
|
13885
|
+
policySnapshot: this.parseJson(row.policySnapshotJson),
|
|
13886
|
+
engineCounters: this.parseJson(row.engineCountersJson),
|
|
13887
|
+
status: row.status,
|
|
13888
|
+
pending: schedulingState?.pending,
|
|
13889
|
+
queue: schedulingState?.queue ?? [],
|
|
13890
|
+
outputsByNode: this.mergePersistedOutputsByNode({
|
|
13891
|
+
persistedOutputsByNode,
|
|
13892
|
+
nodeSnapshotsByNodeId
|
|
13893
|
+
}),
|
|
13894
|
+
nodeSnapshotsByNodeId,
|
|
13895
|
+
connectionInvocations: connectionInvocations.length > 0 ? connectionInvocations : void 0
|
|
13896
|
+
};
|
|
13897
|
+
return this.applyParentToSnapshots(merged);
|
|
13898
|
+
}
|
|
13899
|
+
async loadSchedulingState(runId) {
|
|
13900
|
+
const id = decodeURIComponent(runId);
|
|
13901
|
+
if (!await this.prisma.run.findUnique({
|
|
13902
|
+
where: { runId: id },
|
|
13903
|
+
select: { runId: true }
|
|
13904
|
+
})) return;
|
|
13905
|
+
const workItems = await this.prisma.runWorkItem.findMany({
|
|
13906
|
+
where: { runId: id },
|
|
13907
|
+
orderBy: [
|
|
13908
|
+
{ status: "desc" },
|
|
13909
|
+
{ enqueuedAt: "asc" },
|
|
13910
|
+
{ workItemId: "asc" }
|
|
13911
|
+
]
|
|
13912
|
+
});
|
|
13913
|
+
const queue = [];
|
|
13914
|
+
let pending;
|
|
13915
|
+
for (const workItem of workItems) {
|
|
13916
|
+
if (workItem.status === "claimed") {
|
|
13917
|
+
pending = this.toPendingNodeExecution(workItem);
|
|
13918
|
+
continue;
|
|
13919
|
+
}
|
|
13920
|
+
if (workItem.status === "queued") queue.push(this.toQueueEntry(workItem));
|
|
13921
|
+
}
|
|
13922
|
+
return {
|
|
13923
|
+
pending,
|
|
13924
|
+
queue
|
|
13925
|
+
};
|
|
13926
|
+
}
|
|
13927
|
+
async loadRunDetail(runId) {
|
|
13928
|
+
const id = decodeURIComponent(runId);
|
|
13929
|
+
const [row, projection, instances] = await Promise.all([
|
|
13930
|
+
this.prisma.run.findUnique({ where: { runId: id } }),
|
|
13931
|
+
this.prisma.runSlotProjection.findUnique({ where: { runId: id } }),
|
|
13932
|
+
this.prisma.executionInstance.findMany({
|
|
13933
|
+
where: { runId: id },
|
|
13934
|
+
orderBy: [{ updatedAt: "asc" }, { runIndex: "asc" }]
|
|
13935
|
+
})
|
|
13936
|
+
]);
|
|
13937
|
+
if (!row) return;
|
|
13938
|
+
const slotStates = this.toSlotStateDtos(projection);
|
|
13939
|
+
const executionInstances = instances.map((instance) => this.toExecutionInstanceDto(instance));
|
|
13940
|
+
return {
|
|
13941
|
+
runId: row.runId,
|
|
13942
|
+
workflowId: row.workflowId,
|
|
13943
|
+
startedAt: row.startedAt,
|
|
13944
|
+
finishedAt: row.finishedAt ?? void 0,
|
|
13945
|
+
status: row.status,
|
|
13946
|
+
workflowSnapshot: this.parseJson(row.workflowSnapshotJson),
|
|
13947
|
+
mutableState: this.parseJson(row.mutableStateJson),
|
|
13948
|
+
slotStates,
|
|
13949
|
+
executionInstances
|
|
13950
|
+
};
|
|
13951
|
+
}
|
|
13952
|
+
async listBinaryStorageKeys(runId) {
|
|
13953
|
+
const id = decodeURIComponent(runId);
|
|
13954
|
+
const row = await this.prisma.run.findUnique({
|
|
13955
|
+
where: { runId: id },
|
|
13956
|
+
select: {
|
|
13957
|
+
outputsByNodeJson: true,
|
|
13958
|
+
mutableStateJson: true
|
|
13959
|
+
}
|
|
13960
|
+
});
|
|
13961
|
+
if (!row) return [];
|
|
13962
|
+
const instances = await this.prisma.executionInstance.findMany({
|
|
13963
|
+
where: { runId: id },
|
|
13964
|
+
select: {
|
|
13965
|
+
inputJson: true,
|
|
13966
|
+
outputJson: true
|
|
13967
|
+
}
|
|
13968
|
+
});
|
|
13969
|
+
const keys = /* @__PURE__ */ new Set();
|
|
13970
|
+
this.collectBinaryKeysFromJsonText(row.outputsByNodeJson, keys);
|
|
13971
|
+
this.collectBinaryKeysFromJsonText(row.mutableStateJson, keys);
|
|
13972
|
+
for (const instance of instances) {
|
|
13973
|
+
this.collectBinaryKeysFromJsonText(instance.inputJson, keys);
|
|
13974
|
+
this.collectBinaryKeysFromJsonText(instance.outputJson, keys);
|
|
13975
|
+
}
|
|
13976
|
+
return [...keys].sort((left, right) => left.localeCompare(right));
|
|
13977
|
+
}
|
|
13978
|
+
applyParentToSnapshots(state) {
|
|
13979
|
+
if (!state.parent) return state;
|
|
13980
|
+
const next = {};
|
|
13981
|
+
for (const [id, snap] of Object.entries(state.nodeSnapshotsByNodeId ?? {})) next[id] = {
|
|
13982
|
+
...snap,
|
|
13983
|
+
parent: state.parent
|
|
13984
|
+
};
|
|
13985
|
+
return {
|
|
13986
|
+
...state,
|
|
13987
|
+
nodeSnapshotsByNodeId: next
|
|
13988
|
+
};
|
|
13688
13989
|
}
|
|
13689
13990
|
async save(state) {
|
|
13991
|
+
let candidate = state;
|
|
13992
|
+
for (let attempt = 0; attempt < 3; attempt += 1) try {
|
|
13993
|
+
await this.saveOnce(candidate);
|
|
13994
|
+
return;
|
|
13995
|
+
} catch (error) {
|
|
13996
|
+
if (!this.isConcurrentRunUpdateError(error) || attempt === 2) throw error;
|
|
13997
|
+
const latest = await this.load(candidate.runId);
|
|
13998
|
+
if (!latest) throw error;
|
|
13999
|
+
candidate = this.mergeConcurrentState(latest, candidate);
|
|
14000
|
+
}
|
|
14001
|
+
}
|
|
14002
|
+
async saveOnce(state) {
|
|
13690
14003
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
13691
|
-
const
|
|
13692
|
-
|
|
13693
|
-
|
|
13694
|
-
|
|
13695
|
-
|
|
13696
|
-
|
|
13697
|
-
|
|
13698
|
-
|
|
13699
|
-
|
|
13700
|
-
|
|
13701
|
-
|
|
13702
|
-
|
|
13703
|
-
|
|
13704
|
-
|
|
13705
|
-
|
|
13706
|
-
|
|
13707
|
-
|
|
13708
|
-
|
|
13709
|
-
|
|
14004
|
+
const nextRevision = (state.revision ?? 0) + 1;
|
|
14005
|
+
const workItems = this.buildWorkItems(state, now);
|
|
14006
|
+
const instances = this.buildExecutionInstances(state);
|
|
14007
|
+
const projectionJson = this.buildProjectionSlotStatesJson(state);
|
|
14008
|
+
await this.prisma.$transaction(async (tx) => {
|
|
14009
|
+
await tx.runWorkItem.deleteMany({ where: { runId: state.runId } });
|
|
14010
|
+
if (workItems.length > 0) await tx.runWorkItem.createMany({ data: workItems });
|
|
14011
|
+
const existingInstances = await tx.executionInstance.findMany({
|
|
14012
|
+
where: { runId: state.runId },
|
|
14013
|
+
select: {
|
|
14014
|
+
instanceId: true,
|
|
14015
|
+
slotNodeId: true,
|
|
14016
|
+
runIndex: true
|
|
14017
|
+
}
|
|
14018
|
+
});
|
|
14019
|
+
const existingById = new Map(existingInstances.map((row) => [row.instanceId, row]));
|
|
14020
|
+
const maxRunIndexBySlot = /* @__PURE__ */ new Map();
|
|
14021
|
+
for (const row of existingInstances) maxRunIndexBySlot.set(row.slotNodeId, Math.max(maxRunIndexBySlot.get(row.slotNodeId) ?? 0, row.runIndex));
|
|
14022
|
+
for (const instance of instances) {
|
|
14023
|
+
const existing = existingById.get(instance.instanceId);
|
|
14024
|
+
const runIndex = existing?.runIndex ?? this.nextRunIndexForSlot(maxRunIndexBySlot, instance.slotNodeId);
|
|
14025
|
+
if (existing) {
|
|
14026
|
+
await tx.executionInstance.update({
|
|
14027
|
+
where: { instanceId: instance.instanceId },
|
|
14028
|
+
data: {
|
|
14029
|
+
workflowId: instance.workflowId,
|
|
14030
|
+
slotNodeId: instance.slotNodeId,
|
|
14031
|
+
workflowNodeId: instance.workflowNodeId,
|
|
14032
|
+
kind: instance.kind,
|
|
14033
|
+
connectionKind: instance.connectionKind,
|
|
14034
|
+
activationId: instance.activationId,
|
|
14035
|
+
batchId: instance.batchId,
|
|
14036
|
+
parentInstanceId: instance.parentInstanceId,
|
|
14037
|
+
parentRunId: instance.parentRunId,
|
|
14038
|
+
workerClaimToken: instance.workerClaimToken,
|
|
14039
|
+
status: instance.status,
|
|
14040
|
+
queuedAt: instance.queuedAt,
|
|
14041
|
+
startedAt: instance.startedAt,
|
|
14042
|
+
finishedAt: instance.finishedAt,
|
|
14043
|
+
updatedAt: instance.updatedAt,
|
|
14044
|
+
itemCount: instance.itemCount,
|
|
14045
|
+
inputJson: instance.inputJson,
|
|
14046
|
+
outputJson: instance.outputJson,
|
|
14047
|
+
errorJson: instance.errorJson,
|
|
14048
|
+
inputItemIndicesJson: instance.inputItemIndicesJson,
|
|
14049
|
+
outputItemCount: instance.outputItemCount,
|
|
14050
|
+
successfulItemCount: instance.successfulItemCount,
|
|
14051
|
+
failedItemCount: instance.failedItemCount,
|
|
14052
|
+
inputStorageKind: instance.inputStorageKind,
|
|
14053
|
+
outputStorageKind: instance.outputStorageKind,
|
|
14054
|
+
inputBytes: instance.inputBytes,
|
|
14055
|
+
outputBytes: instance.outputBytes,
|
|
14056
|
+
inputPreviewJson: instance.inputPreviewJson,
|
|
14057
|
+
outputPreviewJson: instance.outputPreviewJson,
|
|
14058
|
+
inputPayloadRef: instance.inputPayloadRef,
|
|
14059
|
+
outputPayloadRef: instance.outputPayloadRef,
|
|
14060
|
+
inputTruncated: instance.inputTruncated,
|
|
14061
|
+
outputTruncated: instance.outputTruncated,
|
|
14062
|
+
usedPinnedOutput: instance.usedPinnedOutput
|
|
14063
|
+
}
|
|
14064
|
+
});
|
|
14065
|
+
continue;
|
|
14066
|
+
}
|
|
14067
|
+
await tx.executionInstance.create({ data: {
|
|
14068
|
+
...instance,
|
|
14069
|
+
runIndex
|
|
14070
|
+
} });
|
|
13710
14071
|
}
|
|
14072
|
+
await tx.runSlotProjection.upsert({
|
|
14073
|
+
where: { runId: state.runId },
|
|
14074
|
+
create: {
|
|
14075
|
+
runId: state.runId,
|
|
14076
|
+
workflowId: state.workflowId,
|
|
14077
|
+
revision: nextRevision,
|
|
14078
|
+
updatedAt: now,
|
|
14079
|
+
slotStatesJson: projectionJson
|
|
14080
|
+
},
|
|
14081
|
+
update: {
|
|
14082
|
+
workflowId: state.workflowId,
|
|
14083
|
+
revision: nextRevision,
|
|
14084
|
+
updatedAt: now,
|
|
14085
|
+
slotStatesJson: projectionJson
|
|
14086
|
+
}
|
|
14087
|
+
});
|
|
14088
|
+
if ((await tx.run.updateMany({
|
|
14089
|
+
where: {
|
|
14090
|
+
runId: state.runId,
|
|
14091
|
+
revision: state.revision ?? 0
|
|
14092
|
+
},
|
|
14093
|
+
data: {
|
|
14094
|
+
workflowId: state.workflowId,
|
|
14095
|
+
startedAt: state.startedAt,
|
|
14096
|
+
status: state.status,
|
|
14097
|
+
finishedAt: state.finishedAt ?? null,
|
|
14098
|
+
updatedAt: now,
|
|
14099
|
+
revision: nextRevision,
|
|
14100
|
+
parentJson: state.parent ? JSON.stringify(state.parent) : null,
|
|
14101
|
+
executionOptionsJson: state.executionOptions ? JSON.stringify(state.executionOptions) : null,
|
|
14102
|
+
controlJson: state.control ? JSON.stringify(state.control) : null,
|
|
14103
|
+
workflowSnapshotJson: state.workflowSnapshot ? JSON.stringify(state.workflowSnapshot) : null,
|
|
14104
|
+
policySnapshotJson: state.policySnapshot ? JSON.stringify(state.policySnapshot) : null,
|
|
14105
|
+
engineCountersJson: state.engineCounters ? JSON.stringify(state.engineCounters) : null,
|
|
14106
|
+
mutableStateJson: state.mutableState ? JSON.stringify(state.mutableState) : null,
|
|
14107
|
+
outputsByNodeJson: JSON.stringify(this.buildPersistedOutputsByNode(state))
|
|
14108
|
+
}
|
|
14109
|
+
})).count !== 1) throw new Error(`Concurrent run update detected for run ${state.runId}.`);
|
|
13711
14110
|
});
|
|
13712
14111
|
}
|
|
13713
14112
|
async listRuns(args) {
|
|
@@ -13728,74 +14127,202 @@ let PrismaWorkflowRunRepository = class PrismaWorkflowRunRepository$1 {
|
|
|
13728
14127
|
return (await this.prisma.run.findMany({
|
|
13729
14128
|
where: {
|
|
13730
14129
|
status: { in: ["completed", "failed"] },
|
|
13731
|
-
updatedAt: { lt: args.beforeIso }
|
|
14130
|
+
OR: [{ AND: [{ finishedAt: { not: null } }, { finishedAt: { lt: args.beforeIso } }] }, { AND: [{ finishedAt: null }, { updatedAt: { lt: args.beforeIso } }] }]
|
|
13732
14131
|
},
|
|
13733
14132
|
orderBy: { updatedAt: "asc" },
|
|
13734
14133
|
take: limit
|
|
13735
14134
|
})).map((r) => this.rowToPruneCandidate(r));
|
|
13736
14135
|
}
|
|
13737
|
-
|
|
13738
|
-
const
|
|
13739
|
-
|
|
13740
|
-
|
|
13741
|
-
|
|
13742
|
-
|
|
13743
|
-
|
|
13744
|
-
|
|
13745
|
-
|
|
13746
|
-
|
|
13747
|
-
|
|
13748
|
-
|
|
13749
|
-
};
|
|
13750
|
-
return JSON.stringify(blob);
|
|
13751
|
-
}
|
|
13752
|
-
parseStateBlob(json) {
|
|
13753
|
-
const parsed = JSON.parse(json);
|
|
14136
|
+
instancesToDomain(runId, workflowId, instances) {
|
|
14137
|
+
const nodeSnapshotsByNodeId = {};
|
|
14138
|
+
const connectionInvocations = [];
|
|
14139
|
+
const workflowRows = instances.filter((i) => i.kind === "workflowNodeActivation");
|
|
14140
|
+
const byNode = /* @__PURE__ */ new Map();
|
|
14141
|
+
for (const row of workflowRows) {
|
|
14142
|
+
const prev = byNode.get(row.slotNodeId);
|
|
14143
|
+
if (!prev || row.updatedAt > prev.updatedAt) byNode.set(row.slotNodeId, row);
|
|
14144
|
+
}
|
|
14145
|
+
for (const [nodeId, row] of byNode.entries()) nodeSnapshotsByNodeId[nodeId] = this.rowToNodeSnapshot(runId, workflowId, nodeId, row);
|
|
14146
|
+
const connRows = instances.filter((i) => i.kind === "connectionInvocation").sort((a$1, b$2) => a$1.runIndex - b$2.runIndex);
|
|
14147
|
+
for (const row of connRows) connectionInvocations.push(this.rowToConnectionInvocation(runId, workflowId, row));
|
|
13754
14148
|
return {
|
|
13755
|
-
|
|
13756
|
-
|
|
13757
|
-
|
|
13758
|
-
|
|
13759
|
-
|
|
13760
|
-
|
|
13761
|
-
|
|
13762
|
-
|
|
13763
|
-
nodeSnapshotsByNodeId: parsed.nodeSnapshotsByNodeId ?? {},
|
|
13764
|
-
connectionInvocations: parsed.connectionInvocations
|
|
13765
|
-
};
|
|
13766
|
-
}
|
|
13767
|
-
rowToPersistedRunState(row) {
|
|
13768
|
-
const blob = this.parseStateBlob(row.stateJson);
|
|
14149
|
+
nodeSnapshotsByNodeId,
|
|
14150
|
+
connectionInvocations
|
|
14151
|
+
};
|
|
14152
|
+
}
|
|
14153
|
+
rowToNodeSnapshot(runId, workflowId, nodeId, row) {
|
|
14154
|
+
const inputsByPort = row.inputJson ? JSON.parse(row.inputJson) : void 0;
|
|
14155
|
+
const outputs = row.outputJson ? JSON.parse(row.outputJson) : void 0;
|
|
14156
|
+
const error = row.errorJson ? JSON.parse(row.errorJson) : void 0;
|
|
13769
14157
|
return {
|
|
13770
|
-
runId
|
|
13771
|
-
workflowId
|
|
13772
|
-
|
|
14158
|
+
runId,
|
|
14159
|
+
workflowId,
|
|
14160
|
+
nodeId,
|
|
14161
|
+
activationId: row.activationId ?? void 0,
|
|
13773
14162
|
status: row.status,
|
|
13774
|
-
|
|
13775
|
-
|
|
13776
|
-
|
|
13777
|
-
|
|
13778
|
-
|
|
13779
|
-
|
|
13780
|
-
|
|
13781
|
-
|
|
13782
|
-
queue: blob.queue,
|
|
13783
|
-
outputsByNode: blob.outputsByNode,
|
|
13784
|
-
nodeSnapshotsByNodeId: blob.nodeSnapshotsByNodeId,
|
|
13785
|
-
connectionInvocations: blob.connectionInvocations
|
|
14163
|
+
usedPinnedOutput: row.usedPinnedOutput ?? void 0,
|
|
14164
|
+
queuedAt: row.queuedAt ?? void 0,
|
|
14165
|
+
startedAt: row.startedAt ?? void 0,
|
|
14166
|
+
finishedAt: row.finishedAt ?? void 0,
|
|
14167
|
+
updatedAt: row.updatedAt,
|
|
14168
|
+
inputsByPort,
|
|
14169
|
+
outputs,
|
|
14170
|
+
error
|
|
13786
14171
|
};
|
|
13787
14172
|
}
|
|
14173
|
+
rowToConnectionInvocation(runId, workflowId, row) {
|
|
14174
|
+
const err = row.errorJson ? JSON.parse(row.errorJson) : void 0;
|
|
14175
|
+
return {
|
|
14176
|
+
invocationId: row.instanceId,
|
|
14177
|
+
runId,
|
|
14178
|
+
workflowId,
|
|
14179
|
+
connectionNodeId: row.slotNodeId,
|
|
14180
|
+
parentAgentNodeId: row.workflowNodeId,
|
|
14181
|
+
parentAgentActivationId: row.activationId ?? `synthetic_${row.workflowNodeId}`,
|
|
14182
|
+
status: row.status,
|
|
14183
|
+
managedInput: row.inputJson ? JSON.parse(row.inputJson) : void 0,
|
|
14184
|
+
managedOutput: row.outputJson ? JSON.parse(row.outputJson) : void 0,
|
|
14185
|
+
error: err,
|
|
14186
|
+
queuedAt: row.queuedAt ?? void 0,
|
|
14187
|
+
startedAt: row.startedAt ?? void 0,
|
|
14188
|
+
finishedAt: row.finishedAt ?? void 0,
|
|
14189
|
+
updatedAt: row.updatedAt
|
|
14190
|
+
};
|
|
14191
|
+
}
|
|
14192
|
+
toExecutionInstanceDto(row) {
|
|
14193
|
+
return {
|
|
14194
|
+
instanceId: row.instanceId,
|
|
14195
|
+
slotNodeId: row.slotNodeId,
|
|
14196
|
+
workflowNodeId: row.workflowNodeId,
|
|
14197
|
+
parentInstanceId: row.parentInstanceId ?? void 0,
|
|
14198
|
+
kind: row.kind,
|
|
14199
|
+
connectionKind: row.connectionKind,
|
|
14200
|
+
runIndex: row.runIndex,
|
|
14201
|
+
batchId: row.batchId,
|
|
14202
|
+
activationId: row.activationId ?? void 0,
|
|
14203
|
+
status: row.status,
|
|
14204
|
+
queuedAt: row.queuedAt ?? void 0,
|
|
14205
|
+
startedAt: row.startedAt ?? void 0,
|
|
14206
|
+
finishedAt: row.finishedAt ?? void 0,
|
|
14207
|
+
itemCount: row.itemCount,
|
|
14208
|
+
inputJson: row.inputJson ? JSON.parse(row.inputJson) : void 0,
|
|
14209
|
+
outputJson: row.outputJson ? JSON.parse(row.outputJson) : void 0,
|
|
14210
|
+
error: row.errorJson ? JSON.parse(row.errorJson) : void 0
|
|
14211
|
+
};
|
|
14212
|
+
}
|
|
14213
|
+
buildWorkItems(state, nowIso) {
|
|
14214
|
+
const rows = [];
|
|
14215
|
+
for (const [index, entry] of (state.queue ?? []).entries()) {
|
|
14216
|
+
const inputsByPort = this.inputsByPortFromQueueEntry(entry);
|
|
14217
|
+
rows.push({
|
|
14218
|
+
workItemId: `${state.runId}:queued:${index}:${entry.nodeId}:${entry.batchId ?? "batch_1"}`,
|
|
14219
|
+
runId: state.runId,
|
|
14220
|
+
workflowId: state.workflowId,
|
|
14221
|
+
status: "queued",
|
|
14222
|
+
targetNodeId: entry.nodeId,
|
|
14223
|
+
batchId: entry.batchId ?? "batch_1",
|
|
14224
|
+
availableAt: nowIso,
|
|
14225
|
+
enqueuedAt: nowIso,
|
|
14226
|
+
itemsIn: this.countItemsByPort(inputsByPort),
|
|
14227
|
+
inputsByPortJson: JSON.stringify(inputsByPort)
|
|
14228
|
+
});
|
|
14229
|
+
}
|
|
14230
|
+
if (state.pending) rows.push({
|
|
14231
|
+
workItemId: state.pending.activationId,
|
|
14232
|
+
runId: state.runId,
|
|
14233
|
+
workflowId: state.workflowId,
|
|
14234
|
+
status: "claimed",
|
|
14235
|
+
targetNodeId: state.pending.nodeId,
|
|
14236
|
+
batchId: state.pending.batchId ?? "batch_1",
|
|
14237
|
+
queueName: state.pending.queue,
|
|
14238
|
+
claimToken: state.pending.activationId,
|
|
14239
|
+
claimedAt: nowIso,
|
|
14240
|
+
availableAt: state.pending.enqueuedAt,
|
|
14241
|
+
enqueuedAt: state.pending.enqueuedAt,
|
|
14242
|
+
itemsIn: state.pending.itemsIn,
|
|
14243
|
+
inputsByPortJson: JSON.stringify(state.pending.inputsByPort)
|
|
14244
|
+
});
|
|
14245
|
+
return rows;
|
|
14246
|
+
}
|
|
14247
|
+
buildExecutionInstances(state) {
|
|
14248
|
+
const rows = [];
|
|
14249
|
+
for (const [nodeId, snap] of Object.entries(state.nodeSnapshotsByNodeId ?? {})) {
|
|
14250
|
+
const instanceId = `${state.runId}:node:${nodeId}:${snap.activationId ?? "na"}`;
|
|
14251
|
+
const itemCount = this.countItemsByPort(snap.inputsByPort) || this.countItemsInOutputs(snap.outputs);
|
|
14252
|
+
rows.push({
|
|
14253
|
+
instanceId,
|
|
14254
|
+
runId: state.runId,
|
|
14255
|
+
workflowId: state.workflowId,
|
|
14256
|
+
slotNodeId: nodeId,
|
|
14257
|
+
workflowNodeId: nodeId,
|
|
14258
|
+
kind: "workflowNodeActivation",
|
|
14259
|
+
connectionKind: null,
|
|
14260
|
+
activationId: snap.activationId ?? null,
|
|
14261
|
+
batchId: state.pending?.batchId ?? "batch_1",
|
|
14262
|
+
runIndex: 1,
|
|
14263
|
+
status: snap.status,
|
|
14264
|
+
queuedAt: snap.queuedAt ?? null,
|
|
14265
|
+
startedAt: snap.startedAt ?? null,
|
|
14266
|
+
finishedAt: snap.finishedAt ?? null,
|
|
14267
|
+
updatedAt: snap.updatedAt,
|
|
14268
|
+
itemCount,
|
|
14269
|
+
inputJson: snap.inputsByPort ? JSON.stringify(snap.inputsByPort) : null,
|
|
14270
|
+
outputJson: snap.outputs ? JSON.stringify(snap.outputs) : null,
|
|
14271
|
+
errorJson: snap.error ? JSON.stringify(snap.error) : null,
|
|
14272
|
+
inputItemIndicesJson: null,
|
|
14273
|
+
outputItemCount: snap.outputs ? this.countItemsInOutputs(snap.outputs) : null,
|
|
14274
|
+
successfulItemCount: null,
|
|
14275
|
+
failedItemCount: snap.status === "failed" ? itemCount : null,
|
|
14276
|
+
inputStorageKind: "inline",
|
|
14277
|
+
outputStorageKind: "inline",
|
|
14278
|
+
usedPinnedOutput: snap.usedPinnedOutput ?? null
|
|
14279
|
+
});
|
|
14280
|
+
}
|
|
14281
|
+
let cIdx = 0;
|
|
14282
|
+
for (const inv of state.connectionInvocations ?? []) {
|
|
14283
|
+
rows.push({
|
|
14284
|
+
instanceId: inv.invocationId,
|
|
14285
|
+
runId: state.runId,
|
|
14286
|
+
workflowId: state.workflowId,
|
|
14287
|
+
slotNodeId: inv.connectionNodeId,
|
|
14288
|
+
workflowNodeId: inv.parentAgentNodeId,
|
|
14289
|
+
kind: "connectionInvocation",
|
|
14290
|
+
connectionKind: "languageModel",
|
|
14291
|
+
activationId: inv.parentAgentActivationId,
|
|
14292
|
+
batchId: state.pending?.batchId ?? "batch_1",
|
|
14293
|
+
runIndex: cIdx,
|
|
14294
|
+
status: inv.status,
|
|
14295
|
+
queuedAt: inv.queuedAt ?? null,
|
|
14296
|
+
startedAt: inv.startedAt ?? null,
|
|
14297
|
+
finishedAt: inv.finishedAt ?? null,
|
|
14298
|
+
updatedAt: inv.updatedAt,
|
|
14299
|
+
itemCount: 0,
|
|
14300
|
+
inputJson: inv.managedInput !== void 0 ? JSON.stringify(inv.managedInput) : null,
|
|
14301
|
+
outputJson: inv.managedOutput !== void 0 ? JSON.stringify(inv.managedOutput) : null,
|
|
14302
|
+
errorJson: inv.error ? JSON.stringify(inv.error) : null,
|
|
14303
|
+
inputItemIndicesJson: null,
|
|
14304
|
+
outputItemCount: null,
|
|
14305
|
+
successfulItemCount: null,
|
|
14306
|
+
failedItemCount: null,
|
|
14307
|
+
inputStorageKind: "inline",
|
|
14308
|
+
outputStorageKind: "inline"
|
|
14309
|
+
});
|
|
14310
|
+
cIdx += 1;
|
|
14311
|
+
}
|
|
14312
|
+
return rows;
|
|
14313
|
+
}
|
|
13788
14314
|
rowToPruneCandidate(row) {
|
|
14315
|
+
const finishedAt = row.finishedAt ?? row.updatedAt;
|
|
13789
14316
|
return {
|
|
13790
14317
|
runId: row.runId,
|
|
13791
14318
|
workflowId: row.workflowId,
|
|
13792
14319
|
startedAt: row.startedAt,
|
|
13793
|
-
finishedAt
|
|
14320
|
+
finishedAt
|
|
13794
14321
|
};
|
|
13795
14322
|
}
|
|
13796
14323
|
rowToRunSummary(row) {
|
|
13797
14324
|
const status = row.status;
|
|
13798
|
-
const finishedAt = status === "completed" || status === "failed" ? row.updatedAt : void 0;
|
|
14325
|
+
const finishedAt = status === "completed" || status === "failed" ? row.finishedAt ?? row.updatedAt : void 0;
|
|
13799
14326
|
return {
|
|
13800
14327
|
runId: row.runId,
|
|
13801
14328
|
workflowId: row.workflowId,
|
|
@@ -13806,6 +14333,172 @@ let PrismaWorkflowRunRepository = class PrismaWorkflowRunRepository$1 {
|
|
|
13806
14333
|
executionOptions: row.executionOptionsJson ? JSON.parse(row.executionOptionsJson) : void 0
|
|
13807
14334
|
};
|
|
13808
14335
|
}
|
|
14336
|
+
parseJson(value) {
|
|
14337
|
+
if (!value) return;
|
|
14338
|
+
return JSON.parse(value);
|
|
14339
|
+
}
|
|
14340
|
+
toPendingNodeExecution(row) {
|
|
14341
|
+
return {
|
|
14342
|
+
runId: row.runId,
|
|
14343
|
+
activationId: row.claimToken ?? row.workItemId,
|
|
14344
|
+
workflowId: row.workflowId,
|
|
14345
|
+
nodeId: row.targetNodeId,
|
|
14346
|
+
itemsIn: row.itemsIn,
|
|
14347
|
+
inputsByPort: JSON.parse(row.inputsByPortJson),
|
|
14348
|
+
receiptId: row.claimToken ?? row.workItemId,
|
|
14349
|
+
queue: row.queueName ?? void 0,
|
|
14350
|
+
batchId: row.batchId,
|
|
14351
|
+
enqueuedAt: row.enqueuedAt
|
|
14352
|
+
};
|
|
14353
|
+
}
|
|
14354
|
+
toQueueEntry(row) {
|
|
14355
|
+
const inputsByPort = JSON.parse(row.inputsByPortJson);
|
|
14356
|
+
const portEntries = Object.entries(inputsByPort);
|
|
14357
|
+
if (portEntries.length <= 1) {
|
|
14358
|
+
const [portKey, items] = portEntries[0] ?? ["in", []];
|
|
14359
|
+
return {
|
|
14360
|
+
nodeId: row.targetNodeId,
|
|
14361
|
+
input: items,
|
|
14362
|
+
toInput: portKey === "in" ? void 0 : portKey,
|
|
14363
|
+
batchId: row.batchId
|
|
14364
|
+
};
|
|
14365
|
+
}
|
|
14366
|
+
return {
|
|
14367
|
+
nodeId: row.targetNodeId,
|
|
14368
|
+
input: [],
|
|
14369
|
+
batchId: row.batchId,
|
|
14370
|
+
collect: {
|
|
14371
|
+
expectedInputs: portEntries.map(([portKey]) => portKey),
|
|
14372
|
+
received: inputsByPort
|
|
14373
|
+
}
|
|
14374
|
+
};
|
|
14375
|
+
}
|
|
14376
|
+
inputsByPortFromQueueEntry(entry) {
|
|
14377
|
+
if (entry.collect) return entry.collect.received;
|
|
14378
|
+
return { [entry.toInput ?? "in"]: entry.input };
|
|
14379
|
+
}
|
|
14380
|
+
countItemsByPort(inputsByPort) {
|
|
14381
|
+
let count = 0;
|
|
14382
|
+
for (const items of Object.values(inputsByPort ?? {})) count += items.length;
|
|
14383
|
+
return count;
|
|
14384
|
+
}
|
|
14385
|
+
countItemsInOutputs(outputs) {
|
|
14386
|
+
let count = 0;
|
|
14387
|
+
for (const items of Object.values(outputs ?? {})) count += items?.length ?? 0;
|
|
14388
|
+
return count;
|
|
14389
|
+
}
|
|
14390
|
+
buildProjectionSlotStatesJson(state) {
|
|
14391
|
+
const slotStatesByNodeId = {};
|
|
14392
|
+
for (const [nodeId, snapshot] of Object.entries(state.nodeSnapshotsByNodeId ?? {})) {
|
|
14393
|
+
const latestInstanceId = `${state.runId}:node:${nodeId}:${snapshot.activationId ?? "na"}`;
|
|
14394
|
+
slotStatesByNodeId[nodeId] = {
|
|
14395
|
+
latestInstanceId,
|
|
14396
|
+
latestTerminalInstanceId: snapshot.status === "completed" || snapshot.status === "failed" ? latestInstanceId : void 0,
|
|
14397
|
+
latestRunningInstanceId: snapshot.status === "queued" || snapshot.status === "running" ? latestInstanceId : void 0,
|
|
14398
|
+
latestStatus: snapshot.status,
|
|
14399
|
+
invocationCount: 0,
|
|
14400
|
+
runCount: snapshot.status === "completed" || snapshot.status === "failed" ? 1 : 0
|
|
14401
|
+
};
|
|
14402
|
+
}
|
|
14403
|
+
for (const invocation of state.connectionInvocations ?? []) {
|
|
14404
|
+
const existing = slotStatesByNodeId[invocation.connectionNodeId] ?? {
|
|
14405
|
+
invocationCount: 0,
|
|
14406
|
+
runCount: 0
|
|
14407
|
+
};
|
|
14408
|
+
existing.invocationCount += 1;
|
|
14409
|
+
slotStatesByNodeId[invocation.connectionNodeId] = existing;
|
|
14410
|
+
}
|
|
14411
|
+
return JSON.stringify({ slotStatesByNodeId });
|
|
14412
|
+
}
|
|
14413
|
+
toSlotStateDtos(projection) {
|
|
14414
|
+
const state = this.parseJson(projection?.slotStatesJson ?? null);
|
|
14415
|
+
return Object.entries(state?.slotStatesByNodeId ?? {}).map(([slotNodeId, slotState]) => ({
|
|
14416
|
+
slotNodeId,
|
|
14417
|
+
latestInstanceId: slotState.latestInstanceId,
|
|
14418
|
+
latestTerminalInstanceId: slotState.latestTerminalInstanceId,
|
|
14419
|
+
latestRunningInstanceId: slotState.latestRunningInstanceId,
|
|
14420
|
+
status: slotState.status ?? slotState.latestStatus,
|
|
14421
|
+
invocationCount: slotState.invocationCount,
|
|
14422
|
+
runCount: slotState.runCount
|
|
14423
|
+
}));
|
|
14424
|
+
}
|
|
14425
|
+
buildPersistedOutputsByNode(state) {
|
|
14426
|
+
const persistedOutputsByNode = {};
|
|
14427
|
+
for (const [nodeId, outputs] of Object.entries(state.outputsByNode ?? {})) {
|
|
14428
|
+
if (state.nodeSnapshotsByNodeId[nodeId]) continue;
|
|
14429
|
+
persistedOutputsByNode[nodeId] = outputs;
|
|
14430
|
+
}
|
|
14431
|
+
return persistedOutputsByNode;
|
|
14432
|
+
}
|
|
14433
|
+
mergePersistedOutputsByNode(args) {
|
|
14434
|
+
const mergedOutputsByNode = { ...args.persistedOutputsByNode };
|
|
14435
|
+
for (const [nodeId, snapshot] of Object.entries(args.nodeSnapshotsByNodeId)) if (snapshot.outputs) mergedOutputsByNode[nodeId] = snapshot.outputs;
|
|
14436
|
+
return mergedOutputsByNode;
|
|
14437
|
+
}
|
|
14438
|
+
nextRunIndexForSlot(maxRunIndexBySlot, slotNodeId) {
|
|
14439
|
+
const next = (maxRunIndexBySlot.get(slotNodeId) ?? 0) + 1;
|
|
14440
|
+
maxRunIndexBySlot.set(slotNodeId, next);
|
|
14441
|
+
return next;
|
|
14442
|
+
}
|
|
14443
|
+
mergeConcurrentState(latest, desired) {
|
|
14444
|
+
return {
|
|
14445
|
+
...latest,
|
|
14446
|
+
...desired,
|
|
14447
|
+
revision: latest.revision,
|
|
14448
|
+
parent: desired.parent ?? latest.parent,
|
|
14449
|
+
executionOptions: desired.executionOptions ?? latest.executionOptions,
|
|
14450
|
+
control: desired.control ?? latest.control,
|
|
14451
|
+
workflowSnapshot: desired.workflowSnapshot ?? latest.workflowSnapshot,
|
|
14452
|
+
mutableState: desired.mutableState ?? latest.mutableState,
|
|
14453
|
+
policySnapshot: desired.policySnapshot ?? latest.policySnapshot,
|
|
14454
|
+
engineCounters: desired.engineCounters ?? latest.engineCounters,
|
|
14455
|
+
pending: desired.pending,
|
|
14456
|
+
queue: desired.queue,
|
|
14457
|
+
outputsByNode: {
|
|
14458
|
+
...latest.outputsByNode ?? {},
|
|
14459
|
+
...desired.outputsByNode ?? {}
|
|
14460
|
+
},
|
|
14461
|
+
nodeSnapshotsByNodeId: this.mergeNodeSnapshots(latest.nodeSnapshotsByNodeId, desired.nodeSnapshotsByNodeId),
|
|
14462
|
+
connectionInvocations: this.mergeConnectionInvocations(latest.connectionInvocations, desired.connectionInvocations)
|
|
14463
|
+
};
|
|
14464
|
+
}
|
|
14465
|
+
mergeNodeSnapshots(latest, desired) {
|
|
14466
|
+
const merged = { ...latest ?? {} };
|
|
14467
|
+
for (const [nodeId, snapshot] of Object.entries(desired ?? {})) {
|
|
14468
|
+
const current = merged[nodeId];
|
|
14469
|
+
if (!current || (snapshot.updatedAt ?? "") >= (current.updatedAt ?? "")) merged[nodeId] = snapshot;
|
|
14470
|
+
}
|
|
14471
|
+
return merged;
|
|
14472
|
+
}
|
|
14473
|
+
mergeConnectionInvocations(latest, desired) {
|
|
14474
|
+
const byId = /* @__PURE__ */ new Map();
|
|
14475
|
+
for (const record of latest ?? []) byId.set(record.invocationId, record);
|
|
14476
|
+
for (const record of desired ?? []) {
|
|
14477
|
+
const current = byId.get(record.invocationId);
|
|
14478
|
+
if (!current || record.updatedAt >= current.updatedAt) byId.set(record.invocationId, record);
|
|
14479
|
+
}
|
|
14480
|
+
return [...byId.values()].sort((left, right) => left.updatedAt.localeCompare(right.updatedAt) || left.invocationId.localeCompare(right.invocationId));
|
|
14481
|
+
}
|
|
14482
|
+
isConcurrentRunUpdateError(error) {
|
|
14483
|
+
return error instanceof Error && error.message.includes("Concurrent run update detected");
|
|
14484
|
+
}
|
|
14485
|
+
collectBinaryKeysFromJsonText(value, keys) {
|
|
14486
|
+
if (!value) return;
|
|
14487
|
+
this.collectBinaryKeysFromValue(JSON.parse(value), keys);
|
|
14488
|
+
}
|
|
14489
|
+
collectBinaryKeysFromValue(value, keys) {
|
|
14490
|
+
if (Array.isArray(value)) {
|
|
14491
|
+
for (const entry of value) this.collectBinaryKeysFromValue(entry, keys);
|
|
14492
|
+
return;
|
|
14493
|
+
}
|
|
14494
|
+
if (!value || typeof value !== "object") return;
|
|
14495
|
+
const record = value;
|
|
14496
|
+
if (typeof record.id === "string" && typeof record.storageKey === "string" && typeof record.mimeType === "string" && typeof record.size === "number") {
|
|
14497
|
+
if (record.storageKey.length > 0) keys.add(record.storageKey);
|
|
14498
|
+
return;
|
|
14499
|
+
}
|
|
14500
|
+
for (const child of Object.values(record)) this.collectBinaryKeysFromValue(child, keys);
|
|
14501
|
+
}
|
|
13809
14502
|
};
|
|
13810
14503
|
PrismaWorkflowRunRepository = __decorate([
|
|
13811
14504
|
injectable(),
|
|
@@ -14580,4 +15273,4 @@ var AppContainerFactory = class AppContainerFactory {
|
|
|
14580
15273
|
|
|
14581
15274
|
//#endregion
|
|
14582
15275
|
export { GetWorkflowDetailQuery as C, ListUserAccountsQuery as E, GetWorkflowSummariesQuery as S, UpsertLocalBootstrapUserCommand as T, CodemationFrontendAuthSnapshotFactory as _, AppContainerLifecycle as a, WorkflowDefinitionMapper as b, RequestToWebhookItemMapper as c, CredentialHttpRouteHandler as d, CodemationHonoApiApp as f, FrontendAppConfigFactory as g, InternalAuthBootstrapFactory as h, DatabaseMigrations as i, RunHttpRouteHandler as l, PublicFrontendBootstrapFactory as m, WorkerRuntime as n, WorkflowHttpRouteHandler as o, BinaryHttpRouteHandler as p, FrontendRuntime as r, WebhookHttpRouteHandler as s, AppContainerFactory as t, OAuth2HttpRouteHandler as u, WorkflowWebsocketServer as v, RunBinaryAttachmentLookupService as w, WorkflowPolicyUiPresentationFactory as x, ApiPaths as y };
|
|
14583
|
-
//# sourceMappingURL=AppContainerFactory-
|
|
15276
|
+
//# sourceMappingURL=AppContainerFactory-BRU02PTm.js.map
|