@oisincoveney/pipeline 3.24.2 → 3.24.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/defaults/pipeline.yaml +23 -5
- package/defaults/profiles.yaml +104 -21
- package/dist/argo-graph.js +88 -88
- package/dist/argo-submit.d.ts +109 -137
- package/dist/argo-submit.js +337 -360
- package/dist/argo-workflow.d.ts +156 -176
- package/dist/argo-workflow.js +96 -138
- package/dist/backlog.js +5 -4
- package/dist/bench/eval-report.js +21 -12
- package/dist/claude-settings-config.js +23 -31
- package/dist/claude-user-config.js +6 -16
- package/dist/cli/bootstrap-commands.js +3 -3
- package/dist/cli/doctor.d.ts +1 -1
- package/dist/cli/doctor.js +172 -169
- package/dist/cli/factory-commands.js +12 -11
- package/dist/cli/format.js +92 -86
- package/dist/cli/loop-commands.js +21 -21
- package/dist/cli/mcp-gateway-commands.js +12 -12
- package/dist/cli/plan-commands.js +85 -116
- package/dist/cli/program.d.ts +2 -2
- package/dist/cli/program.js +35 -43
- package/dist/cli/run-command.js +25 -25
- package/dist/cli/run-commands.js +25 -25
- package/dist/cli/run-resolver.d.ts +1 -1
- package/dist/cli/run-resolver.js +30 -32
- package/dist/cli/run-service.d.ts +2 -2
- package/dist/cli/run-service.js +226 -239
- package/dist/cli/submit-options.js +78 -82
- package/dist/cluster-doctor.js +147 -175
- package/dist/codex-config.js +24 -30
- package/dist/commands/bench-command.js +9 -7
- package/dist/commands/pipeline-command.js +9 -5
- package/dist/commands/runner-command-command.js +28 -18
- package/dist/commands/ticket/complete.js +29 -33
- package/dist/commands/ticket/create.js +82 -82
- package/dist/commands/ticket/graph-check.js +11 -11
- package/dist/commands/ticket/next.js +36 -36
- package/dist/commands/ticket/sequence.js +10 -12
- package/dist/commands/ticket/shared.d.ts +1 -1
- package/dist/commands/ticket/shared.js +63 -66
- package/dist/commands/ticket/start.js +58 -67
- package/dist/commands/ticket-command.js +2 -2
- package/dist/config/defaults.d.ts +139 -139
- package/dist/config/defaults.js +81 -80
- package/dist/config/lint.js +52 -64
- package/dist/config/load.d.ts +4 -4
- package/dist/config/load.js +62 -74
- package/dist/config/schema/catalog.js +1 -1
- package/dist/config/schema/mcp.js +46 -52
- package/dist/config/schemas.d.ts +375 -525
- package/dist/config/schemas.js +397 -397
- package/dist/config/validate.d.ts +1 -1
- package/dist/config/validate.js +236 -201
- package/dist/context/repo-map.js +102 -119
- package/dist/credentials/broker.d.ts +6 -8
- package/dist/credentials/broker.js +17 -16
- package/dist/credentials/codex-config.js +15 -19
- package/dist/credentials/file-targets.js +9 -15
- package/dist/credentials/local-codex-auth-sync.js +55 -58
- package/dist/credentials/opencode-config.js +28 -32
- package/dist/credentials/runner.js +13 -13
- package/dist/effect-sync-errors.js +28 -0
- package/dist/factory/create-experiment.js +38 -42
- package/dist/factory/exec.js +10 -12
- package/dist/factory/git-credentials.js +4 -4
- package/dist/factory/stamp-answers.js +10 -11
- package/dist/factory/template-update.js +65 -44
- package/dist/factory-lane.d.ts +26 -40
- package/dist/factory-lane.js +26 -25
- package/dist/gates.js +3 -3
- package/dist/git-remote-url.js +17 -19
- package/dist/hooks.d.ts +26 -25
- package/dist/hooks.js +20 -22
- package/dist/index.d.ts +1 -1
- package/dist/index.js +21 -35
- package/dist/install-commands/claude-code.js +96 -92
- package/dist/install-commands/host-selection.js +3 -6
- package/dist/install-commands/opencode.js +263 -259
- package/dist/install-commands/planner.js +159 -180
- package/dist/install-commands/result-format.js +1 -3
- package/dist/install-commands/shared.js +25 -42
- package/dist/install-commands/writer.js +22 -25
- package/dist/install-commands.js +8 -8
- package/dist/jscpd-output.js +29 -0
- package/dist/json-config-merge.js +14 -20
- package/dist/json-line-values.js +17 -6
- package/dist/loop/argo-poll.js +52 -71
- package/dist/loop/backlog-records.js +1 -3
- package/dist/loop/controller-deps.js +146 -159
- package/dist/loop/controller.js +162 -186
- package/dist/loop/gh-checks.js +62 -61
- package/dist/loop/gh-runner.js +22 -25
- package/dist/loop/loop-command.js +66 -58
- package/dist/loop/loop-controller-entrypoint.js +28 -30
- package/dist/loop/merge.js +36 -40
- package/dist/mcp/gateway-config.js +25 -29
- package/dist/mcp/gateway-doctor.js +104 -116
- package/dist/mcp/gateway-reconcile.js +17 -22
- package/dist/mcp/gateway-runtime.js +1 -3
- package/dist/mcp/host-config.js +37 -40
- package/dist/mcp/host-renderers.js +10 -18
- package/dist/mcp/repo-local-backends.js +50 -54
- package/dist/mcp/toolhive-vmcp.js +39 -39
- package/dist/model-resolver.js +29 -33
- package/dist/moka-global-config.d.ts +78 -54
- package/dist/moka-global-config.js +90 -92
- package/dist/moka-submit.d.ts +2163 -864
- package/dist/moka-submit.js +97 -99
- package/dist/opencode-project-config.js +34 -40
- package/dist/package-assets.js +1 -3
- package/dist/path-refs.js +2 -2
- package/dist/pipeline-init.js +25 -25
- package/dist/pipeline-runtime.d.ts +11 -11
- package/dist/pipeline-runtime.js +49 -50
- package/dist/planned-node.js +6 -3
- package/dist/planning/compile.d.ts +3 -3
- package/dist/planning/compile.js +140 -139
- package/dist/planning/dependency-refs.js +5 -5
- package/dist/planning/generate.d.ts +1293 -1293
- package/dist/planning/generate.js +305 -314
- package/dist/planning/graph.js +131 -149
- package/dist/remote/argo/model.d.ts +103 -121
- package/dist/remote/argo/model.js +205 -197
- package/dist/remote/argo/policy.js +39 -47
- package/dist/remote/argo/storage.js +81 -85
- package/dist/remote/submit/argo-submission.js +53 -58
- package/dist/remote/submit/compilation.js +46 -49
- package/dist/remote/submit/event-boundary.js +62 -76
- package/dist/remote/submit/hook-events.d.ts +5 -0
- package/dist/remote/submit/io.js +40 -43
- package/dist/remote/submit/options.d.ts +50 -0
- package/dist/remote/submit/options.js +27 -0
- package/dist/remote/submit/service.js +45 -49
- package/dist/run-control/command-context.js +6 -8
- package/dist/run-control/commands.js +10 -10
- package/dist/run-control/contracts.d.ts +40 -100
- package/dist/run-control/contracts.js +56 -69
- package/dist/run-control/detach.js +66 -72
- package/dist/run-control/file-errors.js +1 -3
- package/dist/run-control/logical-segment.js +3 -3
- package/dist/run-control/next-node.js +66 -78
- package/dist/run-control/postgres/postgres-run-control-store.js +195 -224
- package/dist/run-control/resume-command.js +33 -41
- package/dist/run-control/run-artifacts-command.js +83 -105
- package/dist/run-control/run-command-domain.js +7 -11
- package/dist/run-control/run-control-store.js +9 -9
- package/dist/run-control/run-query-command.js +73 -100
- package/dist/run-control/run-record.js +2 -2
- package/dist/run-control/run-state-lock.js +5 -5
- package/dist/run-control/runtime-event-projection.js +38 -50
- package/dist/run-control/runtime-reporter.js +84 -102
- package/dist/run-control/stop-command.js +42 -53
- package/dist/run-control/store-fs-effects.js +3 -1
- package/dist/run-control/store-manifest.js +38 -13
- package/dist/run-control/store-paths.js +3 -3
- package/dist/run-control/store.js +1 -1
- package/dist/run-control/submit-result.js +21 -21
- package/dist/run-control/supervisor.js +77 -68
- package/dist/run-control/workspace.js +2 -2
- package/dist/run-state/git-refs.js +257 -307
- package/dist/runner/opencode-excludes.js +4 -4
- package/dist/runner/subprocess-result.js +28 -37
- package/dist/runner/subprocess.js +41 -41
- package/dist/runner/timeouts.js +14 -13
- package/dist/runner-command/dynamic-command.js +46 -39
- package/dist/runner-command/finalize.js +174 -153
- package/dist/runner-command/lifecycle-context.js +112 -130
- package/dist/runner-command/lifecycle.js +77 -71
- package/dist/runner-command/pre-schedule.js +201 -222
- package/dist/runner-command/run.js +432 -447
- package/dist/runner-command/schedule-source-options.js +8 -10
- package/dist/runner-command/select-ready-wave.js +38 -29
- package/dist/runner-command/task-descriptor.js +11 -17
- package/dist/runner-command-contract.d.ts +147 -156
- package/dist/runner-command-contract.js +401 -410
- package/dist/runner-event-schema.d.ts +364 -504
- package/dist/runner-event-schema.js +187 -175
- package/dist/runner-event-sink.js +37 -43
- package/dist/runner-output.js +6 -6
- package/dist/runner.d.ts +56 -36
- package/dist/runner.js +175 -127
- package/dist/runtime/actor-ids.js +2 -2
- package/dist/runtime/agent-node/agent-node.js +99 -111
- package/dist/runtime/agent-node/handoff-finalization.js +23 -24
- package/dist/runtime/agent-node/model-selection.js +19 -22
- package/dist/runtime/agent-node/output-finalization.js +174 -205
- package/dist/runtime/agent-node/prompt-rendering.js +207 -251
- package/dist/runtime/agent-node/session-execution.js +34 -38
- package/dist/runtime/builtins/builtins.js +212 -284
- package/dist/runtime/changed-files/changed-files.js +26 -34
- package/dist/runtime/command-executor/command-executor.js +31 -23
- package/dist/runtime/config-error.js +1 -3
- package/dist/runtime/context/context.js +35 -37
- package/dist/runtime/contracts/index.d.ts +1 -1
- package/dist/runtime/detached-race.js +11 -14
- package/dist/runtime/drain-merge/drain-merge.js +137 -163
- package/dist/runtime/durable-store/acquisition.js +5 -3
- package/dist/runtime/durable-store/durable-store.d.ts +1 -1
- package/dist/runtime/durable-store/postgres/migrate-substrate.js +36 -33
- package/dist/runtime/durable-store/postgres/postgres-store.js +17 -18
- package/dist/runtime/events/events.js +255 -323
- package/dist/runtime/gates/adjudication/llm-judge.js +21 -24
- package/dist/runtime/gates/adjudication/structured-claim.js +15 -16
- package/dist/runtime/gates/adjudicator/adjudicator.js +27 -27
- package/dist/runtime/gates/adjudicator/index.js +2 -2
- package/dist/runtime/gates/contract.js +5 -9
- package/dist/runtime/gates/gates.js +9 -8
- package/dist/runtime/gates/kinds/acceptance/acceptance.js +66 -70
- package/dist/runtime/gates/kinds/acceptance/index.js +2 -2
- package/dist/runtime/gates/kinds/artifact/artifact.js +4 -4
- package/dist/runtime/gates/kinds/artifact/index.js +2 -2
- package/dist/runtime/gates/kinds/builtin/builtin.js +4 -4
- package/dist/runtime/gates/kinds/builtin/index.js +2 -2
- package/dist/runtime/gates/kinds/changed-files/changed-files.js +31 -35
- package/dist/runtime/gates/kinds/changed-files/index.js +2 -2
- package/dist/runtime/gates/kinds/command/command.js +3 -3
- package/dist/runtime/gates/kinds/command/index.js +2 -2
- package/dist/runtime/gates/kinds/json-schema/index.js +2 -2
- package/dist/runtime/gates/kinds/json-schema/json-schema.js +7 -6
- package/dist/runtime/gates/kinds/verdict/index.js +2 -2
- package/dist/runtime/gates/kinds/verdict/verdict.js +3 -3
- package/dist/runtime/gates/orchestrator.js +72 -86
- package/dist/runtime/gates/registry.js +1 -3
- package/dist/runtime/handoff.d.ts +1 -1
- package/dist/runtime/handoff.js +43 -46
- package/dist/runtime/hooks/command-hook.js +57 -71
- package/dist/runtime/hooks/context.js +21 -25
- package/dist/runtime/hooks/events.js +84 -100
- package/dist/runtime/hooks/execution.js +6 -12
- package/dist/runtime/hooks/hooks.js +34 -23
- package/dist/runtime/hooks/invocation.js +23 -29
- package/dist/runtime/hooks/module-hook.js +35 -35
- package/dist/runtime/hooks/policy.js +32 -29
- package/dist/runtime/hooks/results.js +56 -66
- package/dist/runtime/journal-acquisition.d.ts +1 -1
- package/dist/runtime/journal-acquisition.js +14 -14
- package/dist/runtime/json-validation/json-validation.js +50 -72
- package/dist/runtime/local-scheduler.js +46 -48
- package/dist/runtime/node-execution.js +375 -446
- package/dist/runtime/node-protocol/node-protocol.js +36 -79
- package/dist/runtime/node-state-store.d.ts +1 -1
- package/dist/runtime/node-state-store.js +13 -57
- package/dist/runtime/node-state-tracker.js +46 -54
- package/dist/runtime/open-pull-request/open-pull-request.js +143 -187
- package/dist/runtime/opencode-adapter.js +23 -24
- package/dist/runtime/opencode-agent-name.js +6 -6
- package/dist/runtime/opencode-runtime.js +92 -92
- package/dist/runtime/opencode-server.js +39 -53
- package/dist/runtime/opencode-session-executor.js +315 -334
- package/dist/runtime/parallel-node/parallel-node.js +122 -134
- package/dist/runtime/parallel-worktrees/parallel-worktrees.js +90 -73
- package/dist/runtime/protected-paths/protected-paths.js +70 -71
- package/dist/runtime/remediation/remediation.js +202 -231
- package/dist/runtime/retry.js +8 -10
- package/dist/runtime/run-journal.js +7 -7
- package/dist/runtime/runtime-results.js +54 -69
- package/dist/runtime/scheduled-dependencies.d.ts +1 -1
- package/dist/runtime/scheduled-dependencies.js +59 -74
- package/dist/runtime/scheduler.js +177 -202
- package/dist/runtime/services/agent-node-runtime-service.js +3 -3
- package/dist/runtime/services/backlog-service.js +8 -14
- package/dist/runtime/services/command-executor-service.js +1 -1
- package/dist/runtime/services/config-io-service.js +24 -21
- package/dist/runtime/services/drain-merge-git-service.js +1 -1
- package/dist/runtime/services/file-system-service.js +9 -7
- package/dist/runtime/services/git-porcelain-service.js +6 -6
- package/dist/runtime/services/kubernetes-argo-service.d.ts +10 -2
- package/dist/runtime/services/kubernetes-argo-service.js +90 -84
- package/dist/runtime/services/mcp-gateway-service.js +82 -81
- package/dist/runtime/services/open-pull-request-git-service.js +1 -3
- package/dist/runtime/services/opencode-runtime-server-service.js +10 -12
- package/dist/runtime/services/opencode-sdk-service.js +7 -7
- package/dist/runtime/services/repo-io-service.js +10 -12
- package/dist/runtime/services/run-journal-file-service.js +2 -2
- package/dist/runtime/services/runner-command-io-service.js +48 -52
- package/dist/runtime/services/runner-event-sink-http-service.js +31 -39
- package/dist/runtime/step/step-node.js +15 -15
- package/dist/runtime/workflow-execution.js +55 -57
- package/dist/runtime/workflow-lifecycle.js +81 -101
- package/dist/safe-json.js +16 -16
- package/dist/schedule/backlog-context.js +120 -116
- package/dist/schedule/baseline.js +249 -255
- package/dist/schedule/passes/coverage.js +63 -68
- package/dist/schedule/passes/drain-merge.js +34 -40
- package/dist/schedule/passes/ids.js +15 -17
- package/dist/schedule/passes/models.js +40 -37
- package/dist/schedule/passes/open-pull-request.js +12 -18
- package/dist/schedule/passes/references.js +18 -22
- package/dist/schedule/prompts.js +134 -141
- package/dist/schedule/scheduling-roles.js +8 -14
- package/dist/schema-boundary.d.ts +1 -0
- package/dist/schema-boundary.js +145 -0
- package/dist/serialized-write-queue.js +2 -2
- package/dist/standard-output-schemas.js +61 -59
- package/dist/strings.js +12 -12
- package/dist/task-ref.js +5 -5
- package/dist/tickets/apply-ticket-plan.js +51 -61
- package/dist/tickets/backlog-task-store.d.ts +13 -22
- package/dist/tickets/backlog-task-store.js +80 -94
- package/dist/tickets/completion/complete-ticket.js +53 -59
- package/dist/tickets/ticket-graph-dto.d.ts +24 -47
- package/dist/tickets/ticket-graph-dto.js +40 -40
- package/dist/tickets/ticket-graph.d.ts +7 -1
- package/dist/tickets/ticket-graph.js +36 -50
- package/dist/tickets/ticket-plan-command-args.js +6 -10
- package/dist/tickets/ticket-plan-render.js +10 -16
- package/dist/tickets/ticket-plan.d.ts +31 -40
- package/dist/tickets/ticket-plan.js +97 -77
- package/dist/tickets/ticket-selection.d.ts +1 -1
- package/dist/tickets/ticket-selection.js +37 -52
- package/dist/tickets/ticket-task-index.js +13 -17
- package/dist/tickets/validation-error-format.js +3 -10
- package/dist/token-estimator.js +12 -7
- package/dist/unknown-fields.js +21 -0
- package/dist/workflow-submit-contract.d.ts +9 -9
- package/dist/workflow-submit-contract.js +10 -9
- package/docs/adr-opencode-first-goal-loop-runtime.md +11 -11
- package/docs/config-architecture.md +13 -13
- package/docs/mcp-host-isolation.md +1 -0
- package/docs/moka-orchestrator-design.md +3 -3
- package/docs/operator-guide.md +1 -1
- package/docs/runtime-actor-model.md +18 -18
- package/docs/slash-command-adapter-contract.md +3 -3
- package/package.json +73 -76
- package/dist/config/schema/reference-validation.js +0 -83
package/dist/planning/graph.js
CHANGED
|
@@ -6,18 +6,16 @@ import { Graph, alg } from "@dagrejs/graphlib";
|
|
|
6
6
|
* containers (e.g. parallel children). Nodes without children are returned
|
|
7
7
|
* as-is.
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
});
|
|
14
|
-
}
|
|
9
|
+
const flattenNodes = (nodes, childrenOf) => nodes.flatMap((node) => {
|
|
10
|
+
const children = childrenOf(node);
|
|
11
|
+
return children !== void 0 && children.length > 0 ? [node, ...flattenNodes(children, childrenOf)] : [node];
|
|
12
|
+
});
|
|
15
13
|
/**
|
|
16
14
|
* Build an index mapping each `need` id to the (flat) nodes that declare it as a
|
|
17
15
|
* dependency. The input is expected to already be flattened by the caller so
|
|
18
16
|
* that the resulting index spans the whole graph.
|
|
19
17
|
*/
|
|
20
|
-
|
|
18
|
+
const dependentsByNeed = (nodes) => {
|
|
21
19
|
const index = /* @__PURE__ */ new Map();
|
|
22
20
|
for (const node of nodes) for (const need of node.needs ?? []) {
|
|
23
21
|
const dependents = index.get(need) ?? [];
|
|
@@ -25,81 +23,48 @@ function dependentsByNeed(nodes) {
|
|
|
25
23
|
index.set(need, dependents);
|
|
26
24
|
}
|
|
27
25
|
return index;
|
|
28
|
-
}
|
|
29
|
-
|
|
26
|
+
};
|
|
27
|
+
const addDependencyGraphNodes = (graph, nodes, options) => {
|
|
28
|
+
for (const [index, node] of nodes.entries()) graph.setNode(node.id, options.valueOf(node, index));
|
|
29
|
+
};
|
|
30
|
+
const declaredDependencyIds = (node, nodeIds, options) => [...options.dependenciesOf(node) ?? []].filter((dependencyId) => nodeIds.has(dependencyId));
|
|
31
|
+
const addDependencyGraphEdges = (graph, nodes, nodeIds, options) => {
|
|
32
|
+
for (const node of nodes) for (const dependencyId of declaredDependencyIds(node, nodeIds, options)) graph.setEdge(dependencyId, node.id);
|
|
33
|
+
};
|
|
34
|
+
const createDependencyGraph = (nodes, options) => {
|
|
30
35
|
const nodeIds = new Set(nodes.map((node) => node.id));
|
|
31
36
|
const graph = new Graph({ directed: true });
|
|
32
37
|
addDependencyGraphNodes(graph, nodes, options);
|
|
33
38
|
addDependencyGraphEdges(graph, nodes, nodeIds, options);
|
|
34
39
|
return graph;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
for (const node of nodes) for (const dependencyId of declaredDependencyIds(node, nodeIds, options)) graph.setEdge(dependencyId, node.id);
|
|
41
|
-
}
|
|
42
|
-
function declaredDependencyIds(node, nodeIds, options) {
|
|
43
|
-
return [...options.dependenciesOf(node) ?? []].filter((dependencyId) => nodeIds.has(dependencyId));
|
|
44
|
-
}
|
|
45
|
-
function dependencyPredecessorIds(graph, nodeId) {
|
|
46
|
-
return graph.predecessors(nodeId) ?? [];
|
|
47
|
-
}
|
|
48
|
-
function dependencyGraphNodeIds(graph) {
|
|
49
|
-
return graph.nodes();
|
|
50
|
-
}
|
|
51
|
-
function dependencyGraphHasNode(graph, nodeId) {
|
|
52
|
-
return graph.hasNode(nodeId);
|
|
53
|
-
}
|
|
54
|
-
function dependencyGraphValue(graph, nodeId) {
|
|
40
|
+
};
|
|
41
|
+
const dependencyPredecessorIds = (graph, nodeId) => graph.predecessors(nodeId) ?? [];
|
|
42
|
+
const dependencyGraphNodeIds = (graph) => graph.nodes();
|
|
43
|
+
const dependencyGraphHasNode = (graph, nodeId) => graph.hasNode(nodeId);
|
|
44
|
+
const dependencyGraphValue = (graph, nodeId) => {
|
|
55
45
|
if (!dependencyGraphHasNode(graph, nodeId)) return;
|
|
56
46
|
return graph.node(nodeId);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
to: edge.w
|
|
65
|
-
}));
|
|
66
|
-
}
|
|
67
|
-
function descendantGraphValues(graph, rootId) {
|
|
47
|
+
};
|
|
48
|
+
const successorIds = (graph, nodeId) => graph.successors(nodeId) ?? [];
|
|
49
|
+
const graphEdgeIds = (graph) => graph.edges().map((edge) => ({
|
|
50
|
+
from: edge.v,
|
|
51
|
+
to: edge.w
|
|
52
|
+
}));
|
|
53
|
+
const descendantGraphValues = (graph, rootId) => {
|
|
68
54
|
if (!graph.hasNode(rootId)) return [];
|
|
69
|
-
return alg.preorder(graph, rootId).slice(1).map((id) => graph.node(id)).filter((node) =>
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
function topologicalDependencyOrder(graph) {
|
|
75
|
-
const visited = /* @__PURE__ */ new Set();
|
|
76
|
-
const inStack = /* @__PURE__ */ new Set();
|
|
77
|
-
const results = [];
|
|
78
|
-
for (const sink of graph.sinks()) visitForTopologicalOrder(sink, graph, visited, inStack, results);
|
|
79
|
-
if (visited.size !== graph.nodeCount()) throw new Error("workflow graph contains a dependency cycle");
|
|
80
|
-
return results;
|
|
81
|
-
}
|
|
82
|
-
function dependencyBatches(graph, nodeIds = graph.nodes(), compareIds = compareStrings) {
|
|
83
|
-
const remaining = new Set(nodeIds);
|
|
84
|
-
const batches = [];
|
|
85
|
-
while (remaining.size > 0) {
|
|
86
|
-
const ready = [...remaining].filter((id) => dependencyPredecessorIds(graph, id).every((dependencyId) => !remaining.has(dependencyId))).sort(compareIds);
|
|
87
|
-
if (ready.length === 0) return [];
|
|
88
|
-
batches.push(ready);
|
|
89
|
-
for (const id of ready) remaining.delete(id);
|
|
90
|
-
}
|
|
91
|
-
return batches;
|
|
92
|
-
}
|
|
93
|
-
function terminalDependencyItems(items, keyOf, dependenciesOf) {
|
|
55
|
+
return alg.preorder(graph, rootId).slice(1).map((id) => graph.node(id)).filter((node) => node !== void 0);
|
|
56
|
+
};
|
|
57
|
+
const dependencyCycleIds = (graph) => alg.findCycles(graph);
|
|
58
|
+
const terminalDependencyItems = (items, keyOf, dependenciesOf) => {
|
|
94
59
|
const dependedOn = new Set(items.flatMap((item) => dependenciesOf(item) ?? []));
|
|
95
60
|
return items.filter((item) => !dependedOn.has(keyOf(item)));
|
|
96
|
-
}
|
|
61
|
+
};
|
|
97
62
|
/**
|
|
98
63
|
* Breadth-first search over the dependents index to determine whether any node
|
|
99
64
|
* transitively reachable downstream of `nodeId` satisfies `matches`. Cycle-safe
|
|
100
65
|
* via a visited set.
|
|
101
66
|
*/
|
|
102
|
-
|
|
67
|
+
const hasReachableDependent = (nodeId, index, matches) => {
|
|
103
68
|
const visited = /* @__PURE__ */ new Set();
|
|
104
69
|
const queue = [...index.get(nodeId) ?? []];
|
|
105
70
|
while (queue.length > 0) {
|
|
@@ -110,18 +75,66 @@ function hasReachableDependent(nodeId, index, matches) {
|
|
|
110
75
|
queue.push(...index.get(node.id) ?? []);
|
|
111
76
|
}
|
|
112
77
|
return false;
|
|
113
|
-
}
|
|
78
|
+
};
|
|
114
79
|
/**
|
|
115
80
|
* Recursively find a node by id within a node tree, descending into children
|
|
116
81
|
* via the caller-supplied accessor. Returns `undefined` when absent.
|
|
117
82
|
*/
|
|
118
|
-
|
|
83
|
+
const findNode = (nodes, nodeId, childrenOf) => {
|
|
119
84
|
for (const node of nodes) {
|
|
120
85
|
if (node.id === nodeId) return node;
|
|
121
86
|
const child = findNode(childrenOf(node) ?? [], nodeId, childrenOf);
|
|
122
|
-
if (child) return child;
|
|
87
|
+
if (child !== void 0) return child;
|
|
123
88
|
}
|
|
124
|
-
}
|
|
89
|
+
};
|
|
90
|
+
const markVisiting = (nodeId, visitState) => {
|
|
91
|
+
visitState.state.set(nodeId, "visiting");
|
|
92
|
+
visitState.pathIndex.set(nodeId, visitState.path.length);
|
|
93
|
+
visitState.path.push(nodeId);
|
|
94
|
+
};
|
|
95
|
+
const markDone = (nodeId, visitState) => {
|
|
96
|
+
visitState.state.set(nodeId, "done");
|
|
97
|
+
visitState.pathIndex.delete(nodeId);
|
|
98
|
+
visitState.path.pop();
|
|
99
|
+
};
|
|
100
|
+
const recordCycle = (nodeId, visitState) => {
|
|
101
|
+
const startIndex = visitState.pathIndex.get(nodeId);
|
|
102
|
+
if (startIndex === void 0) return;
|
|
103
|
+
const cycle = visitState.path.slice(startIndex);
|
|
104
|
+
const key = [...cycle].toSorted().join("\0");
|
|
105
|
+
if (visitState.cycleKeys.has(key)) return;
|
|
106
|
+
visitState.cycleKeys.add(key);
|
|
107
|
+
visitState.cycles.push(cycle);
|
|
108
|
+
};
|
|
109
|
+
const visitForCycles = (startId, visitState) => {
|
|
110
|
+
const frames = [{
|
|
111
|
+
index: 0,
|
|
112
|
+
nodeId: startId
|
|
113
|
+
}];
|
|
114
|
+
markVisiting(startId, visitState);
|
|
115
|
+
while (frames.length > 0) {
|
|
116
|
+
const frame = frames.at(-1);
|
|
117
|
+
if (!frame) return;
|
|
118
|
+
const dependentId = (visitState.adjacency.get(frame.nodeId) ?? [])[frame.index];
|
|
119
|
+
if (!dependentId) {
|
|
120
|
+
markDone(frame.nodeId, visitState);
|
|
121
|
+
frames.pop();
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
frame.index += 1;
|
|
125
|
+
const dependentState = visitState.state.get(dependentId);
|
|
126
|
+
if (dependentState === "visiting") {
|
|
127
|
+
recordCycle(dependentId, visitState);
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
if (dependentState === "done") continue;
|
|
131
|
+
markVisiting(dependentId, visitState);
|
|
132
|
+
frames.push({
|
|
133
|
+
index: 0,
|
|
134
|
+
nodeId: dependentId
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
};
|
|
125
138
|
/**
|
|
126
139
|
* Find all dependency cycles in a flat node list using an iterative DFS over the
|
|
127
140
|
* dependents-by-need graph. Each cycle is returned once (canonicalized by its
|
|
@@ -132,7 +145,7 @@ function findNode(nodes, nodeId, childrenOf) {
|
|
|
132
145
|
* The traversal is iterative (an explicit frame stack) rather than recursive so
|
|
133
146
|
* that deep generated workflow chains cannot overflow the call stack.
|
|
134
147
|
*/
|
|
135
|
-
|
|
148
|
+
const findDependencyCycles = (nodes) => {
|
|
136
149
|
const nodeIds = new Set(nodes.map((node) => node.id));
|
|
137
150
|
const index = dependentsByNeed(nodes);
|
|
138
151
|
const adjacency = /* @__PURE__ */ new Map();
|
|
@@ -154,82 +167,13 @@ function findDependencyCycles(nodes) {
|
|
|
154
167
|
});
|
|
155
168
|
}
|
|
156
169
|
return cycles;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
const frames = [{
|
|
160
|
-
index: 0,
|
|
161
|
-
nodeId: startId
|
|
162
|
-
}];
|
|
163
|
-
markVisiting(startId, visitState);
|
|
164
|
-
while (frames.length > 0) {
|
|
165
|
-
const frame = frames.at(-1);
|
|
166
|
-
if (!frame) return;
|
|
167
|
-
const dependentId = (visitState.adjacency.get(frame.nodeId) ?? [])[frame.index];
|
|
168
|
-
if (!dependentId) {
|
|
169
|
-
markDone(frame.nodeId, visitState);
|
|
170
|
-
frames.pop();
|
|
171
|
-
continue;
|
|
172
|
-
}
|
|
173
|
-
frame.index += 1;
|
|
174
|
-
const dependentState = visitState.state.get(dependentId);
|
|
175
|
-
if (dependentState === "visiting") {
|
|
176
|
-
recordCycle(dependentId, visitState);
|
|
177
|
-
continue;
|
|
178
|
-
}
|
|
179
|
-
if (dependentState === "done") continue;
|
|
180
|
-
markVisiting(dependentId, visitState);
|
|
181
|
-
frames.push({
|
|
182
|
-
index: 0,
|
|
183
|
-
nodeId: dependentId
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
function markVisiting(nodeId, visitState) {
|
|
188
|
-
visitState.state.set(nodeId, "visiting");
|
|
189
|
-
visitState.pathIndex.set(nodeId, visitState.path.length);
|
|
190
|
-
visitState.path.push(nodeId);
|
|
191
|
-
}
|
|
192
|
-
function markDone(nodeId, visitState) {
|
|
193
|
-
visitState.state.set(nodeId, "done");
|
|
194
|
-
visitState.pathIndex.delete(nodeId);
|
|
195
|
-
visitState.path.pop();
|
|
196
|
-
}
|
|
197
|
-
function recordCycle(nodeId, visitState) {
|
|
198
|
-
const startIndex = visitState.pathIndex.get(nodeId);
|
|
199
|
-
if (startIndex === void 0) return;
|
|
200
|
-
const cycle = visitState.path.slice(startIndex);
|
|
201
|
-
const key = [...cycle].sort().join("\0");
|
|
202
|
-
if (visitState.cycleKeys.has(key)) return;
|
|
203
|
-
visitState.cycleKeys.add(key);
|
|
204
|
-
visitState.cycles.push(cycle);
|
|
205
|
-
}
|
|
206
|
-
function visitForTopologicalOrder(startId, graph, visited, inStack, results) {
|
|
207
|
-
const frames = [];
|
|
208
|
-
pushTopologicalFrame(startId, graph, visited, inStack, frames);
|
|
209
|
-
while (frames.length > 0) visitTopologicalFrame(graph, visited, inStack, results, frames);
|
|
210
|
-
}
|
|
211
|
-
function visitTopologicalFrame(graph, visited, inStack, results, frames) {
|
|
212
|
-
const frame = frames.at(-1);
|
|
213
|
-
if (!frame) return;
|
|
214
|
-
const predecessorId = frame.predecessors[frame.index];
|
|
215
|
-
if (!predecessorId) {
|
|
216
|
-
completeTopologicalFrame(frame, inStack, results, frames);
|
|
217
|
-
return;
|
|
218
|
-
}
|
|
219
|
-
frame.index += 1;
|
|
220
|
-
visitTopologicalPredecessor(predecessorId, graph, visited, inStack, frames);
|
|
221
|
-
}
|
|
222
|
-
function completeTopologicalFrame(frame, inStack, results, frames) {
|
|
170
|
+
};
|
|
171
|
+
const completeTopologicalFrame = (frame, inStack, results, frames) => {
|
|
223
172
|
inStack.delete(frame.nodeId);
|
|
224
173
|
results.push(frame.nodeId);
|
|
225
174
|
frames.pop();
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
if (inStack.has(predecessorId)) throw new Error("workflow graph contains a dependency cycle");
|
|
229
|
-
if (visited.has(predecessorId)) return;
|
|
230
|
-
pushTopologicalFrame(predecessorId, graph, visited, inStack, frames);
|
|
231
|
-
}
|
|
232
|
-
function pushTopologicalFrame(nodeId, graph, visited, inStack, frames) {
|
|
175
|
+
};
|
|
176
|
+
const pushTopologicalFrame = (nodeId, graph, visited, inStack, frames) => {
|
|
233
177
|
visited.add(nodeId);
|
|
234
178
|
inStack.add(nodeId);
|
|
235
179
|
frames.push({
|
|
@@ -237,9 +181,47 @@ function pushTopologicalFrame(nodeId, graph, visited, inStack, frames) {
|
|
|
237
181
|
nodeId,
|
|
238
182
|
predecessors: dependencyPredecessorIds(graph, nodeId)
|
|
239
183
|
});
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
184
|
+
};
|
|
185
|
+
const visitTopologicalPredecessor = (predecessorId, graph, visited, inStack, frames) => {
|
|
186
|
+
if (inStack.has(predecessorId)) throw new Error("workflow graph contains a dependency cycle");
|
|
187
|
+
if (visited.has(predecessorId)) return;
|
|
188
|
+
pushTopologicalFrame(predecessorId, graph, visited, inStack, frames);
|
|
189
|
+
};
|
|
190
|
+
const visitTopologicalFrame = (graph, visited, inStack, results, frames) => {
|
|
191
|
+
const frame = frames.at(-1);
|
|
192
|
+
if (!frame) return;
|
|
193
|
+
const predecessorId = frame.predecessors[frame.index];
|
|
194
|
+
if (!predecessorId) {
|
|
195
|
+
completeTopologicalFrame(frame, inStack, results, frames);
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
frame.index += 1;
|
|
199
|
+
visitTopologicalPredecessor(predecessorId, graph, visited, inStack, frames);
|
|
200
|
+
};
|
|
201
|
+
const visitForTopologicalOrder = (startId, graph, visited, inStack, results) => {
|
|
202
|
+
const frames = [];
|
|
203
|
+
pushTopologicalFrame(startId, graph, visited, inStack, frames);
|
|
204
|
+
while (frames.length > 0) visitTopologicalFrame(graph, visited, inStack, results, frames);
|
|
205
|
+
};
|
|
206
|
+
const topologicalDependencyOrder = (graph) => {
|
|
207
|
+
const visited = /* @__PURE__ */ new Set();
|
|
208
|
+
const inStack = /* @__PURE__ */ new Set();
|
|
209
|
+
const results = [];
|
|
210
|
+
for (const sink of graph.sinks()) visitForTopologicalOrder(sink, graph, visited, inStack, results);
|
|
211
|
+
if (visited.size !== graph.nodeCount()) throw new Error("workflow graph contains a dependency cycle");
|
|
212
|
+
return results;
|
|
213
|
+
};
|
|
214
|
+
const compareStrings = (left, right) => left.localeCompare(right);
|
|
215
|
+
const dependencyBatches = (graph, nodeIds = graph.nodes(), compareIds = compareStrings) => {
|
|
216
|
+
const remaining = new Set(nodeIds);
|
|
217
|
+
const batches = [];
|
|
218
|
+
while (remaining.size > 0) {
|
|
219
|
+
const ready = [...remaining].filter((id) => dependencyPredecessorIds(graph, id).every((dependencyId) => !remaining.has(dependencyId))).toSorted(compareIds);
|
|
220
|
+
if (ready.length === 0) return [];
|
|
221
|
+
batches.push(ready);
|
|
222
|
+
for (const id of ready) remaining.delete(id);
|
|
223
|
+
}
|
|
224
|
+
return batches;
|
|
225
|
+
};
|
|
244
226
|
//#endregion
|
|
245
227
|
export { createDependencyGraph, dependencyBatches, dependencyCycleIds, dependencyGraphHasNode, dependencyGraphNodeIds, dependencyGraphValue, dependencyPredecessorIds, dependentsByNeed, descendantGraphValues, findDependencyCycles, findNode, flattenNodes, graphEdgeIds, hasReachableDependent, successorIds, terminalDependencyItems, topologicalDependencyOrder };
|
|
@@ -1,128 +1,110 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Schema from "effect/Schema";
|
|
2
2
|
|
|
3
3
|
//#region src/remote/argo/model.d.ts
|
|
4
|
-
declare const argoWorkflowTtlStrategySchema:
|
|
5
|
-
secondsAfterCompletion:
|
|
6
|
-
secondsAfterFailure:
|
|
7
|
-
secondsAfterSuccess:
|
|
8
|
-
}
|
|
9
|
-
declare const argoWorkflowPodGcSchema:
|
|
10
|
-
deleteDelayDuration:
|
|
11
|
-
labelSelector:
|
|
12
|
-
matchExpressions:
|
|
13
|
-
key:
|
|
14
|
-
operator:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
NotIn: "NotIn";
|
|
19
|
-
}>;
|
|
20
|
-
values: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
21
|
-
}, z.core.$strict>>>;
|
|
22
|
-
matchLabels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
23
|
-
}, z.core.$strict>>;
|
|
24
|
-
strategy: z.ZodOptional<z.ZodEnum<{
|
|
25
|
-
OnPodCompletion: "OnPodCompletion";
|
|
26
|
-
OnPodSuccess: "OnPodSuccess";
|
|
27
|
-
OnWorkflowCompletion: "OnWorkflowCompletion";
|
|
28
|
-
OnWorkflowSuccess: "OnWorkflowSuccess";
|
|
4
|
+
declare const argoWorkflowTtlStrategySchema: Schema.Struct<{
|
|
5
|
+
readonly secondsAfterCompletion: Schema.optional<Schema.Number>;
|
|
6
|
+
readonly secondsAfterFailure: Schema.optional<Schema.Number>;
|
|
7
|
+
readonly secondsAfterSuccess: Schema.optional<Schema.Number>;
|
|
8
|
+
}>;
|
|
9
|
+
declare const argoWorkflowPodGcSchema: Schema.Struct<{
|
|
10
|
+
readonly deleteDelayDuration: Schema.optional<Schema.NonEmptyString>;
|
|
11
|
+
readonly labelSelector: Schema.optional<Schema.Struct<{
|
|
12
|
+
readonly matchExpressions: Schema.optional<Schema.mutable<Schema.$Array<Schema.Struct<{
|
|
13
|
+
readonly key: Schema.NonEmptyString;
|
|
14
|
+
readonly operator: Schema.Literals<readonly ["In", "NotIn", "Exists", "DoesNotExist"]>;
|
|
15
|
+
readonly values: Schema.optional<Schema.mutable<Schema.$Array<Schema.String>>>;
|
|
16
|
+
}>>>>;
|
|
17
|
+
readonly matchLabels: Schema.optional<Schema.$Record<Schema.NonEmptyString, Schema.String>>;
|
|
29
18
|
}>>;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
eventAuthSecretKey: z.ZodOptional<z.ZodString>;
|
|
44
|
-
eventAuthSecretName: z.ZodOptional<z.ZodString>;
|
|
45
|
-
generateName: z.ZodOptional<z.ZodString>;
|
|
46
|
-
gitCredentialsSecretName: z.ZodOptional<z.ZodString>;
|
|
47
|
-
githubAuthSecretName: z.ZodOptional<z.ZodString>;
|
|
48
|
-
image: z.ZodDefault<z.ZodString>;
|
|
49
|
-
imagePullPolicy: z.ZodDefault<z.ZodEnum<{
|
|
50
|
-
Always: "Always";
|
|
51
|
-
IfNotPresent: "IfNotPresent";
|
|
52
|
-
Never: "Never";
|
|
19
|
+
readonly strategy: Schema.optional<Schema.Literals<readonly ["OnPodCompletion", "OnPodSuccess", "OnWorkflowCompletion", "OnWorkflowSuccess"]>>;
|
|
20
|
+
}>;
|
|
21
|
+
declare const buildRunnerArgoWorkflowOptionsSchema: Schema.Struct<{
|
|
22
|
+
readonly activeDeadlineSeconds: Schema.optional<Schema.Number>;
|
|
23
|
+
readonly annotations: Schema.withDecodingDefault<Schema.$Record<Schema.NonEmptyString, Schema.UndefinedOr<Schema.NonEmptyString>>, never>;
|
|
24
|
+
readonly brokerAuth: Schema.Struct<{
|
|
25
|
+
readonly secretKey: Schema.withDecodingDefault<Schema.NonEmptyString, never>;
|
|
26
|
+
readonly secretName: Schema.NonEmptyString;
|
|
27
|
+
readonly url: Schema.withDecodingDefault<Schema.String, never>;
|
|
28
|
+
}>;
|
|
29
|
+
readonly dbAuth: Schema.optional<Schema.Struct<{
|
|
30
|
+
readonly secretKey: Schema.withDecodingDefault<Schema.NonEmptyString, never>;
|
|
31
|
+
readonly secretName: Schema.NonEmptyString;
|
|
53
32
|
}>>;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
limits: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
67
|
-
requests: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
68
|
-
}, z.core.$strict>>;
|
|
69
|
-
serviceAccountName: z.ZodDefault<z.ZodString>;
|
|
70
|
-
ttlStrategy: z.ZodOptional<z.ZodObject<{
|
|
71
|
-
secondsAfterCompletion: z.ZodOptional<z.ZodNumber>;
|
|
72
|
-
secondsAfterFailure: z.ZodOptional<z.ZodNumber>;
|
|
73
|
-
secondsAfterSuccess: z.ZodOptional<z.ZodNumber>;
|
|
74
|
-
}, z.core.$strict>>;
|
|
75
|
-
scheduleConfigMapKey: z.ZodDefault<z.ZodString>;
|
|
76
|
-
scheduleConfigMapName: z.ZodString;
|
|
77
|
-
taskDescriptorConfigMapName: z.ZodString;
|
|
78
|
-
}, z.core.$strict>;
|
|
79
|
-
declare const buildDynamicRunnerArgoWorkflowOptionsSchema: z.ZodObject<{
|
|
80
|
-
activeDeadlineSeconds: z.ZodOptional<z.ZodNumber>;
|
|
81
|
-
annotations: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodString>>>;
|
|
82
|
-
brokerAuth: z.ZodObject<{
|
|
83
|
-
secretKey: z.ZodDefault<z.ZodString>;
|
|
84
|
-
secretName: z.ZodString;
|
|
85
|
-
url: z.ZodDefault<z.ZodString>;
|
|
86
|
-
}, z.core.$strict>;
|
|
87
|
-
dbAuth: z.ZodOptional<z.ZodObject<{
|
|
88
|
-
secretKey: z.ZodDefault<z.ZodString>;
|
|
89
|
-
secretName: z.ZodString;
|
|
90
|
-
}, z.core.$strict>>;
|
|
91
|
-
eventAuthSecretKey: z.ZodOptional<z.ZodString>;
|
|
92
|
-
eventAuthSecretName: z.ZodOptional<z.ZodString>;
|
|
93
|
-
generateName: z.ZodOptional<z.ZodString>;
|
|
94
|
-
gitCredentialsSecretName: z.ZodOptional<z.ZodString>;
|
|
95
|
-
githubAuthSecretName: z.ZodOptional<z.ZodString>;
|
|
96
|
-
image: z.ZodDefault<z.ZodString>;
|
|
97
|
-
imagePullPolicy: z.ZodDefault<z.ZodEnum<{
|
|
98
|
-
Always: "Always";
|
|
99
|
-
IfNotPresent: "IfNotPresent";
|
|
100
|
-
Never: "Never";
|
|
33
|
+
readonly eventAuthSecretKey: Schema.optional<Schema.NonEmptyString>;
|
|
34
|
+
readonly eventAuthSecretName: Schema.optional<Schema.NonEmptyString>;
|
|
35
|
+
readonly generateName: Schema.optional<Schema.NonEmptyString>;
|
|
36
|
+
readonly gitCredentialsSecretName: Schema.optional<Schema.NonEmptyString>;
|
|
37
|
+
readonly githubAuthSecretName: Schema.optional<Schema.NonEmptyString>;
|
|
38
|
+
readonly image: Schema.withDecodingDefault<Schema.NonEmptyString, never>;
|
|
39
|
+
readonly imagePullPolicy: Schema.withDecodingDefault<Schema.Literals<readonly ["Always", "IfNotPresent", "Never"]>, never>;
|
|
40
|
+
readonly imagePullSecretName: Schema.optional<Schema.NonEmptyString>;
|
|
41
|
+
readonly labels: Schema.withDecodingDefault<Schema.$Record<Schema.NonEmptyString, Schema.UndefinedOr<Schema.NonEmptyString>>, never>;
|
|
42
|
+
readonly mcpGatewayAuth: Schema.optional<Schema.Struct<{
|
|
43
|
+
readonly secretKey: Schema.withDecodingDefault<Schema.NonEmptyString, never>;
|
|
44
|
+
readonly secretName: Schema.NonEmptyString;
|
|
101
45
|
}>>;
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
46
|
+
readonly name: Schema.optional<Schema.NonEmptyString>;
|
|
47
|
+
readonly namespace: Schema.NonEmptyString;
|
|
48
|
+
readonly npmRegistryAuthSecretName: Schema.optional<Schema.NonEmptyString>;
|
|
49
|
+
readonly payloadConfigMapKey: Schema.withDecodingDefault<Schema.NonEmptyString, never>;
|
|
50
|
+
readonly payloadConfigMapName: Schema.NonEmptyString;
|
|
51
|
+
readonly resources: Schema.optional<Schema.Struct<{
|
|
52
|
+
readonly limits: Schema.optional<Schema.$Record<Schema.String, Schema.String>>;
|
|
53
|
+
readonly requests: Schema.optional<Schema.$Record<Schema.String, Schema.String>>;
|
|
54
|
+
}>>;
|
|
55
|
+
readonly serviceAccountName: Schema.withDecodingDefault<Schema.NonEmptyString, never>;
|
|
56
|
+
readonly ttlStrategy: Schema.optional<Schema.Struct<{
|
|
57
|
+
readonly secondsAfterCompletion: Schema.optional<Schema.Number>;
|
|
58
|
+
readonly secondsAfterFailure: Schema.optional<Schema.Number>;
|
|
59
|
+
readonly secondsAfterSuccess: Schema.optional<Schema.Number>;
|
|
60
|
+
}>>;
|
|
61
|
+
readonly scheduleConfigMapKey: Schema.withDecodingDefault<Schema.NonEmptyString, never>;
|
|
62
|
+
readonly scheduleConfigMapName: Schema.NonEmptyString;
|
|
63
|
+
readonly taskDescriptorConfigMapName: Schema.NonEmptyString;
|
|
64
|
+
}>;
|
|
65
|
+
declare const buildDynamicRunnerArgoWorkflowOptionsSchema: Schema.Struct<{
|
|
66
|
+
readonly activeDeadlineSeconds: Schema.optional<Schema.Number>;
|
|
67
|
+
readonly annotations: Schema.withDecodingDefault<Schema.$Record<Schema.NonEmptyString, Schema.UndefinedOr<Schema.NonEmptyString>>, never>;
|
|
68
|
+
readonly brokerAuth: Schema.Struct<{
|
|
69
|
+
readonly secretKey: Schema.withDecodingDefault<Schema.NonEmptyString, never>;
|
|
70
|
+
readonly secretName: Schema.NonEmptyString;
|
|
71
|
+
readonly url: Schema.withDecodingDefault<Schema.String, never>;
|
|
72
|
+
}>;
|
|
73
|
+
readonly dbAuth: Schema.optional<Schema.Struct<{
|
|
74
|
+
readonly secretKey: Schema.withDecodingDefault<Schema.NonEmptyString, never>;
|
|
75
|
+
readonly secretName: Schema.NonEmptyString;
|
|
76
|
+
}>>;
|
|
77
|
+
readonly eventAuthSecretKey: Schema.optional<Schema.NonEmptyString>;
|
|
78
|
+
readonly eventAuthSecretName: Schema.optional<Schema.NonEmptyString>;
|
|
79
|
+
readonly generateName: Schema.optional<Schema.NonEmptyString>;
|
|
80
|
+
readonly gitCredentialsSecretName: Schema.optional<Schema.NonEmptyString>;
|
|
81
|
+
readonly githubAuthSecretName: Schema.optional<Schema.NonEmptyString>;
|
|
82
|
+
readonly image: Schema.withDecodingDefault<Schema.NonEmptyString, never>;
|
|
83
|
+
readonly imagePullPolicy: Schema.withDecodingDefault<Schema.Literals<readonly ["Always", "IfNotPresent", "Never"]>, never>;
|
|
84
|
+
readonly imagePullSecretName: Schema.optional<Schema.NonEmptyString>;
|
|
85
|
+
readonly labels: Schema.withDecodingDefault<Schema.$Record<Schema.NonEmptyString, Schema.UndefinedOr<Schema.NonEmptyString>>, never>;
|
|
86
|
+
readonly mcpGatewayAuth: Schema.optional<Schema.Struct<{
|
|
87
|
+
readonly secretKey: Schema.withDecodingDefault<Schema.NonEmptyString, never>;
|
|
88
|
+
readonly secretName: Schema.NonEmptyString;
|
|
89
|
+
}>>;
|
|
90
|
+
readonly name: Schema.optional<Schema.NonEmptyString>;
|
|
91
|
+
readonly namespace: Schema.NonEmptyString;
|
|
92
|
+
readonly npmRegistryAuthSecretName: Schema.optional<Schema.NonEmptyString>;
|
|
93
|
+
readonly payloadConfigMapKey: Schema.withDecodingDefault<Schema.NonEmptyString, never>;
|
|
94
|
+
readonly payloadConfigMapName: Schema.NonEmptyString;
|
|
95
|
+
readonly resources: Schema.optional<Schema.Struct<{
|
|
96
|
+
readonly limits: Schema.optional<Schema.$Record<Schema.String, Schema.String>>;
|
|
97
|
+
readonly requests: Schema.optional<Schema.$Record<Schema.String, Schema.String>>;
|
|
98
|
+
}>>;
|
|
99
|
+
readonly serviceAccountName: Schema.withDecodingDefault<Schema.NonEmptyString, never>;
|
|
100
|
+
readonly ttlStrategy: Schema.optional<Schema.Struct<{
|
|
101
|
+
readonly secondsAfterCompletion: Schema.optional<Schema.Number>;
|
|
102
|
+
readonly secondsAfterFailure: Schema.optional<Schema.Number>;
|
|
103
|
+
readonly secondsAfterSuccess: Schema.optional<Schema.Number>;
|
|
104
|
+
}>>;
|
|
105
|
+
readonly workflowId: Schema.NonEmptyString;
|
|
106
|
+
}>;
|
|
107
|
+
type ArgoWorkflowPodGC = typeof argoWorkflowPodGcSchema.Type;
|
|
108
|
+
type ArgoWorkflowTtlStrategy = typeof argoWorkflowTtlStrategySchema.Type;
|
|
127
109
|
//#endregion
|
|
128
110
|
export { ArgoWorkflowPodGC, ArgoWorkflowTtlStrategy, argoWorkflowPodGcSchema, argoWorkflowTtlStrategySchema, buildDynamicRunnerArgoWorkflowOptionsSchema, buildRunnerArgoWorkflowOptionsSchema };
|