@kici-dev/engine 0.1.16 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/approval/types.js +1 -1
- package/dist/audit/access-log-policy.js +3 -1
- package/dist/audit/activity.js +1 -1
- package/dist/audit/retention-policy.js +5 -1
- package/dist/bundler/index.js +1 -1
- package/dist/bundler/rolldown-config.js +1 -1
- package/dist/env/environment-allowlist.d.ts +1 -1
- package/dist/env/environment-allowlist.js +13 -2
- package/dist/environment/index.js +1 -1
- package/dist/environment/scope-resolver.js +1 -1
- package/dist/environment/types.js +1 -1
- package/dist/fanout/materialize.d.ts +123 -0
- package/dist/fanout/materialize.js +176 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.js +9 -7
- package/dist/labels/compile.d.ts +40 -0
- package/dist/labels/compile.js +91 -0
- package/dist/labels-match.d.ts +32 -0
- package/dist/labels-match.js +55 -0
- package/dist/labels.js +1 -1
- package/dist/matrix/expand.d.ts +48 -0
- package/dist/matrix/expand.js +72 -0
- package/dist/matrix/format.d.ts +10 -0
- package/dist/matrix/format.js +20 -0
- package/dist/metrics/catalog-policy.js +8 -3
- package/dist/metrics/metric-catalog.generated.d.ts +11 -1
- package/dist/metrics/metric-catalog.generated.js +14 -2
- package/dist/protocol/analytics-events.js +1 -1
- package/dist/protocol/cluster-name.js +1 -1
- package/dist/protocol/dashboard-global-workflows.js +1 -1
- package/dist/protocol/dashboard-write-operations.js +1 -1
- package/dist/protocol/event-log-payload.js +1 -1
- package/dist/protocol/messages/access-log.d.ts +15 -5
- package/dist/protocol/messages/access-log.js +3 -1
- package/dist/protocol/messages/actor.js +1 -1
- package/dist/protocol/messages/auth.d.ts +1 -0
- package/dist/protocol/messages/auth.js +11 -2
- package/dist/protocol/messages/browser.js +1 -1
- package/dist/protocol/messages/capabilities.js +1 -1
- package/dist/protocol/messages/common.js +1 -1
- package/dist/protocol/messages/dashboard-global-workflows.js +1 -1
- package/dist/protocol/messages/dashboard.d.ts +985 -57
- package/dist/protocol/messages/dashboard.js +368 -13
- package/dist/protocol/messages/event-log.js +1 -1
- package/dist/protocol/messages/execution-status.d.ts +13 -1
- package/dist/protocol/messages/execution-status.js +13 -3
- package/dist/protocol/messages/join.js +1 -1
- package/dist/protocol/messages/log-pull.js +1 -1
- package/dist/protocol/messages/observe.d.ts +1 -0
- package/dist/protocol/messages/oidc-token-relay.d.ts +31 -0
- package/dist/protocol/messages/oidc-token-relay.js +34 -0
- package/dist/protocol/messages/orchestrator-agent.d.ts +56 -0
- package/dist/protocol/messages/orchestrator-agent.js +47 -2
- package/dist/protocol/messages/peer.d.ts +48 -0
- package/dist/protocol/messages/peer.js +12 -1
- package/dist/protocol/messages/platform-orchestrator.d.ts +171 -4
- package/dist/protocol/messages/platform-orchestrator.js +1 -1
- package/dist/protocol/messages/run-events.js +1 -1
- package/dist/protocol/messages/scaler-event.js +1 -1
- package/dist/protocol/messages/source-registration.d.ts +7 -6
- package/dist/protocol/messages/source-registration.js +7 -6
- package/dist/protocol/version.js +1 -1
- package/dist/provenance/bundle.d.ts +54 -0
- package/dist/provenance/bundle.js +53 -0
- package/dist/provenance/dsse.d.ts +39 -0
- package/dist/provenance/dsse.js +53 -0
- package/dist/provenance/schema.js +1 -1
- package/dist/provenance/verify.d.ts +71 -0
- package/dist/provenance/verify.js +135 -0
- package/dist/provider/changed-files-fetcher.js +1 -1
- package/dist/provider/check-run-conclusion.js +1 -1
- package/dist/provider/check-status-poster.js +1 -1
- package/dist/provider/clone-token-provider.js +1 -1
- package/dist/provider/contributor-resolver.js +1 -1
- package/dist/provider/index.js +1 -1
- package/dist/provider/lock-file-fetcher.js +1 -1
- package/dist/provider/lock-file-parse-error.js +3 -1
- package/dist/provider/repo-url-builder.js +1 -1
- package/dist/provider/types.d.ts +2 -2
- package/dist/provider/types.js +1 -1
- package/dist/provider/webhook-normalizer.js +1 -1
- package/dist/registration/registerable-trigger-type.js +1 -1
- package/dist/scaler/resource-types.js +1 -1
- package/dist/scaler/scaler-backend-type.js +1 -1
- package/dist/secrets/index.js +1 -1
- package/dist/secrets/types.js +1 -1
- package/dist/state-machine/index.js +1 -1
- package/dist/state-machine/machine.js +1 -1
- package/dist/state-machine/types.js +1 -1
- package/dist/trigger/decision-trace.js +1 -1
- package/dist/trigger/jsonpath-matcher.js +1 -1
- package/dist/trigger/matcher.js +1 -1
- package/dist/trigger/trigger-event-type.js +1 -1
- package/dist/trigger/types.d.ts +76 -3
- package/dist/trigger/types.js +33 -5
- package/dist/webhook/signature.js +1 -1
- package/dist/ws/close-codes.js +1 -1
- package/dist/ws/rate-limiter.js +3 -1
- package/dist/ws/ws-like.js +1 -1
- package/package.json +26 -3
- package/sbom.spdx.json +85 -10
- package/dist/protocol/messages/observe.js +0 -70
- package/dist/protocol/messages/test-run.js +0 -52
- /package/dist/{chunk-gOLHoazu.js → chunk-BTugEXQM.js} +0 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import "../chunk-BTugEXQM.js";
|
|
2
|
+
import picomatch from "picomatch";
|
|
3
|
+
import safeRegex from "safe-regex";
|
|
4
|
+
//#region src/labels/compile.ts
|
|
5
|
+
/**
|
|
6
|
+
* Reject a ReDoS-prone regex. `safe-regex` is a star-height heuristic — the
|
|
7
|
+
* orchestrator is single-tenant, so a slipped-through pattern only stalls the
|
|
8
|
+
* author's own orchestrator. Globs are linear by construction but pass through
|
|
9
|
+
* here for uniformity.
|
|
10
|
+
*/
|
|
11
|
+
function assertSafeRegex(source, flags, ctx) {
|
|
12
|
+
if (!safeRegex(new RegExp(source, flags))) throw new Error(`${ctx}: regex /${source}/${flags} is ReDoS-prone — rejected`);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Convert one author selector element into a `LabelMatcher`.
|
|
16
|
+
* - `RegExp` → regex matcher (source + flags captured verbatim).
|
|
17
|
+
* - string that picomatch detects as a glob → regex via `picomatch.makeRe`.
|
|
18
|
+
* - any other string → exact.
|
|
19
|
+
* `ctx` is a human label (e.g. "job 'web' runsOn") used in ReDoS errors.
|
|
20
|
+
*/
|
|
21
|
+
function toLabelMatcher(el, ctx) {
|
|
22
|
+
if (el instanceof RegExp) {
|
|
23
|
+
assertSafeRegex(el.source, el.flags, ctx);
|
|
24
|
+
return {
|
|
25
|
+
kind: "regex",
|
|
26
|
+
source: el.source,
|
|
27
|
+
flags: el.flags
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
if (picomatch.scan(el).isGlob) {
|
|
31
|
+
const re = picomatch.makeRe(el);
|
|
32
|
+
if (!(re instanceof RegExp)) throw new Error(`${ctx}: glob '${el}' is not a valid pattern`);
|
|
33
|
+
assertSafeRegex(re.source, re.flags, ctx);
|
|
34
|
+
return {
|
|
35
|
+
kind: "regex",
|
|
36
|
+
source: re.source,
|
|
37
|
+
flags: re.flags
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
kind: "exact",
|
|
42
|
+
value: el
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const asArray = (v) => Array.isArray(v) ? v : [v];
|
|
46
|
+
/** Normalize a `runsOn` author value into include + exclude matchers. */
|
|
47
|
+
function normalizeRunsOnToMatchers(runsOn, ctx) {
|
|
48
|
+
if (typeof runsOn === "string" || runsOn instanceof RegExp) return {
|
|
49
|
+
include: [toLabelMatcher(runsOn, ctx)],
|
|
50
|
+
exclude: []
|
|
51
|
+
};
|
|
52
|
+
if (Array.isArray(runsOn)) return {
|
|
53
|
+
include: runsOn.map((e) => toLabelMatcher(e, ctx)),
|
|
54
|
+
exclude: []
|
|
55
|
+
};
|
|
56
|
+
const sel = runsOn;
|
|
57
|
+
return {
|
|
58
|
+
include: asArray(sel.labels).map((e) => toLabelMatcher(e, ctx)),
|
|
59
|
+
exclude: sel.exclude ? asArray(sel.exclude).map((e) => toLabelMatcher(e, ctx)) : []
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/** Normalize a `runsOnAll` author value into include groups + exclude matchers. */
|
|
63
|
+
function normalizeRunsOnAllToMatchers(input, ctx) {
|
|
64
|
+
if (typeof input === "string" || input instanceof RegExp) return {
|
|
65
|
+
include: [[toLabelMatcher(input, ctx)]],
|
|
66
|
+
exclude: []
|
|
67
|
+
};
|
|
68
|
+
if (Array.isArray(input)) {
|
|
69
|
+
const include = [];
|
|
70
|
+
const exclude = [];
|
|
71
|
+
for (const entry of input) if (typeof entry === "string" && entry.startsWith("!")) exclude.push(toLabelMatcher(entry.slice(1), ctx));
|
|
72
|
+
else include.push(toLabelMatcher(entry, ctx));
|
|
73
|
+
return {
|
|
74
|
+
include: include.length ? [include] : [],
|
|
75
|
+
exclude
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
const obj = input;
|
|
79
|
+
return {
|
|
80
|
+
include: obj.include.map((g) => g.all.map((e) => toLabelMatcher(e, ctx))),
|
|
81
|
+
exclude: (obj.exclude ?? []).map((e) => toLabelMatcher(e, ctx))
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/** Re-validate every regex matcher in a parsed lock selector (orchestrator lock-load). */
|
|
85
|
+
function assertMatchersSafe(matchers, ctx) {
|
|
86
|
+
for (const m of matchers) if (m.kind === "regex") assertSafeRegex(m.source, m.flags, ctx);
|
|
87
|
+
}
|
|
88
|
+
//#endregion
|
|
89
|
+
export { assertMatchersSafe, assertSafeRegex, normalizeRunsOnAllToMatchers, normalizeRunsOnToMatchers, toLabelMatcher };
|
|
90
|
+
|
|
91
|
+
//# sourceMappingURL=compile.js.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* A single label selector element after compilation. Globs are converted to
|
|
4
|
+
* regex at compile time, so the lock file only ever carries `exact` or `regex`.
|
|
5
|
+
* This module is browser-safe (pure `RegExp`, zod only) and lives in the engine
|
|
6
|
+
* barrel; glob conversion and the ReDoS gate live in the Node-only
|
|
7
|
+
* `@kici-dev/engine/labels/compile` subpath.
|
|
8
|
+
*/
|
|
9
|
+
export declare const LabelMatcher: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
10
|
+
kind: z.ZodLiteral<"exact">;
|
|
11
|
+
value: z.ZodString;
|
|
12
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
13
|
+
kind: z.ZodLiteral<"regex">;
|
|
14
|
+
source: z.ZodString;
|
|
15
|
+
flags: z.ZodString;
|
|
16
|
+
}, z.core.$strip>], "kind">;
|
|
17
|
+
export type LabelMatcher = z.infer<typeof LabelMatcher>;
|
|
18
|
+
/** Compile (and cache) the `RegExp` for a regex matcher. */
|
|
19
|
+
export declare function compileRegexMatcher(m: {
|
|
20
|
+
source: string;
|
|
21
|
+
flags: string;
|
|
22
|
+
}): RegExp;
|
|
23
|
+
/** Whether a single label string satisfies the matcher. */
|
|
24
|
+
export declare function matcherMatches(m: LabelMatcher, label: string): boolean;
|
|
25
|
+
/** Whether some label in the set satisfies the matcher. */
|
|
26
|
+
export declare function matcherSatisfiedBy(m: LabelMatcher, labels: ReadonlySet<string>): boolean;
|
|
27
|
+
/** Split a matcher list into exact label strings and the remaining regex matchers. */
|
|
28
|
+
export declare function partitionMatchers(ms: readonly LabelMatcher[]): {
|
|
29
|
+
exact: string[];
|
|
30
|
+
regex: LabelMatcher[];
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=labels-match.d.ts.map
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import "./chunk-BTugEXQM.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
//#region src/labels-match.ts
|
|
4
|
+
/**
|
|
5
|
+
* A single label selector element after compilation. Globs are converted to
|
|
6
|
+
* regex at compile time, so the lock file only ever carries `exact` or `regex`.
|
|
7
|
+
* This module is browser-safe (pure `RegExp`, zod only) and lives in the engine
|
|
8
|
+
* barrel; glob conversion and the ReDoS gate live in the Node-only
|
|
9
|
+
* `@kici-dev/engine/labels/compile` subpath.
|
|
10
|
+
*/
|
|
11
|
+
const LabelMatcher = z.discriminatedUnion("kind", [z.object({
|
|
12
|
+
kind: z.literal("exact"),
|
|
13
|
+
value: z.string()
|
|
14
|
+
}), z.object({
|
|
15
|
+
kind: z.literal("regex"),
|
|
16
|
+
source: z.string(),
|
|
17
|
+
flags: z.string()
|
|
18
|
+
})]);
|
|
19
|
+
const regexCache = /* @__PURE__ */ new Map();
|
|
20
|
+
/** Compile (and cache) the `RegExp` for a regex matcher. */
|
|
21
|
+
function compileRegexMatcher(m) {
|
|
22
|
+
const key = `${m.flags} ${m.source}`;
|
|
23
|
+
let re = regexCache.get(key);
|
|
24
|
+
if (!re) {
|
|
25
|
+
re = new RegExp(m.source, m.flags);
|
|
26
|
+
regexCache.set(key, re);
|
|
27
|
+
}
|
|
28
|
+
return re;
|
|
29
|
+
}
|
|
30
|
+
/** Whether a single label string satisfies the matcher. */
|
|
31
|
+
function matcherMatches(m, label) {
|
|
32
|
+
return m.kind === "exact" ? label === m.value : compileRegexMatcher(m).test(label);
|
|
33
|
+
}
|
|
34
|
+
/** Whether some label in the set satisfies the matcher. */
|
|
35
|
+
function matcherSatisfiedBy(m, labels) {
|
|
36
|
+
if (m.kind === "exact") return labels.has(m.value);
|
|
37
|
+
const re = compileRegexMatcher(m);
|
|
38
|
+
for (const label of labels) if (re.test(label)) return true;
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
/** Split a matcher list into exact label strings and the remaining regex matchers. */
|
|
42
|
+
function partitionMatchers(ms) {
|
|
43
|
+
const exact = [];
|
|
44
|
+
const regex = [];
|
|
45
|
+
for (const m of ms) if (m.kind === "exact") exact.push(m.value);
|
|
46
|
+
else regex.push(m);
|
|
47
|
+
return {
|
|
48
|
+
exact,
|
|
49
|
+
regex
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
export { LabelMatcher, compileRegexMatcher, matcherMatches, matcherSatisfiedBy, partitionMatchers };
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=labels-match.js.map
|
package/dist/labels.js
CHANGED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/** Single-dimension static matrix: array of values */
|
|
2
|
+
export type StaticMatrixArray = string[];
|
|
3
|
+
/** Multi-dimensional static matrix: named dimensions with values */
|
|
4
|
+
export type StaticMatrixObject = Record<string, string[]>;
|
|
5
|
+
/** Include entries for adding specific matrix combinations */
|
|
6
|
+
export type MatrixInclude = Record<string, string>;
|
|
7
|
+
/** Exclude entries for removing specific matrix combinations */
|
|
8
|
+
export type MatrixExclude = Record<string, string>;
|
|
9
|
+
/**
|
|
10
|
+
* Matrix values as exposed to steps.
|
|
11
|
+
* Single-dimension: {value: 'linux'}
|
|
12
|
+
* Multi-dimensional: {os: 'linux', node: '18'}
|
|
13
|
+
*/
|
|
14
|
+
export interface MatrixValues {
|
|
15
|
+
/** Single-dimension: the value */
|
|
16
|
+
value?: string;
|
|
17
|
+
/** Multi-dimensional: named properties */
|
|
18
|
+
[dimension: string]: string | undefined;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Compute the cartesian product of the given value sets in row-major order.
|
|
22
|
+
* An empty set list yields a single empty tuple; any empty set yields no tuples.
|
|
23
|
+
*/
|
|
24
|
+
export declare function cartesianProduct<T>(sets: T[][]): T[][];
|
|
25
|
+
/**
|
|
26
|
+
* Expand single-dimension matrix (array form) to MatrixValues array.
|
|
27
|
+
* Each value becomes {value: string}.
|
|
28
|
+
*/
|
|
29
|
+
export declare function expandSingleDimension(matrix: StaticMatrixArray): MatrixValues[];
|
|
30
|
+
/**
|
|
31
|
+
* Expand multi-dimensional matrix (object form) to MatrixValues array.
|
|
32
|
+
* Computes the cartesian product of all dimensions.
|
|
33
|
+
* Dimension names are sorted for deterministic output.
|
|
34
|
+
*/
|
|
35
|
+
export declare function expandMultiDimension(matrix: StaticMatrixObject): MatrixValues[];
|
|
36
|
+
/**
|
|
37
|
+
* Unified expand function that dispatches to single or multi-dimensional expansion.
|
|
38
|
+
*/
|
|
39
|
+
export declare function expandMatrix(matrix: StaticMatrixArray | StaticMatrixObject): MatrixValues[];
|
|
40
|
+
/**
|
|
41
|
+
* Apply include/exclude modifications to expanded matrix combinations.
|
|
42
|
+
* Exclude first (remove matching), then include (add new).
|
|
43
|
+
*
|
|
44
|
+
* Exclude matches if ALL specified dimensions match.
|
|
45
|
+
* Include adds new combinations if they don't already exist.
|
|
46
|
+
*/
|
|
47
|
+
export declare function applyIncludeExclude(expanded: MatrixValues[], include?: MatrixInclude[], exclude?: MatrixExclude[]): MatrixValues[];
|
|
48
|
+
//# sourceMappingURL=expand.d.ts.map
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import "../chunk-BTugEXQM.js";
|
|
2
|
+
//#region src/matrix/expand.ts
|
|
3
|
+
/**
|
|
4
|
+
* Compute the cartesian product of the given value sets in row-major order.
|
|
5
|
+
* An empty set list yields a single empty tuple; any empty set yields no tuples.
|
|
6
|
+
*/
|
|
7
|
+
function cartesianProduct(sets) {
|
|
8
|
+
return sets.reduce((acc, set) => acc.flatMap((tuple) => set.map((value) => [...tuple, value])), [[]]);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Expand single-dimension matrix (array form) to MatrixValues array.
|
|
12
|
+
* Each value becomes {value: string}.
|
|
13
|
+
*/
|
|
14
|
+
function expandSingleDimension(matrix) {
|
|
15
|
+
return matrix.map((value) => ({ value }));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Expand multi-dimensional matrix (object form) to MatrixValues array.
|
|
19
|
+
* Computes the cartesian product of all dimensions.
|
|
20
|
+
* Dimension names are sorted for deterministic output.
|
|
21
|
+
*/
|
|
22
|
+
function expandMultiDimension(matrix) {
|
|
23
|
+
const dimensions = Object.entries(matrix);
|
|
24
|
+
if (dimensions.length === 0) return [];
|
|
25
|
+
dimensions.sort((a, b) => a[0].localeCompare(b[0]));
|
|
26
|
+
const names = dimensions.map(([name]) => name);
|
|
27
|
+
return cartesianProduct(dimensions.map(([, values]) => values)).map((combo) => {
|
|
28
|
+
const result = {};
|
|
29
|
+
names.forEach((name, idx) => {
|
|
30
|
+
result[name] = combo[idx];
|
|
31
|
+
});
|
|
32
|
+
return result;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Unified expand function that dispatches to single or multi-dimensional expansion.
|
|
37
|
+
*/
|
|
38
|
+
function expandMatrix(matrix) {
|
|
39
|
+
if (Array.isArray(matrix)) return expandSingleDimension(matrix);
|
|
40
|
+
return expandMultiDimension(matrix);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Apply include/exclude modifications to expanded matrix combinations.
|
|
44
|
+
* Exclude first (remove matching), then include (add new).
|
|
45
|
+
*
|
|
46
|
+
* Exclude matches if ALL specified dimensions match.
|
|
47
|
+
* Include adds new combinations if they don't already exist.
|
|
48
|
+
*/
|
|
49
|
+
function applyIncludeExclude(expanded, include, exclude) {
|
|
50
|
+
let result = [...expanded];
|
|
51
|
+
if (exclude && exclude.length > 0) result = result.filter((combo) => {
|
|
52
|
+
return !exclude.some((excl) => {
|
|
53
|
+
const exclEntries = Object.entries(excl);
|
|
54
|
+
if (exclEntries.length === 0) return false;
|
|
55
|
+
return exclEntries.every(([key, value]) => combo[key] === value);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
if (include && include.length > 0) for (const incl of include) {
|
|
59
|
+
const inclKeys = Object.keys(incl);
|
|
60
|
+
if (inclKeys.length === 0) continue;
|
|
61
|
+
if (!result.some((combo) => {
|
|
62
|
+
const comboKeys = Object.keys(combo);
|
|
63
|
+
if (inclKeys.length !== comboKeys.length) return false;
|
|
64
|
+
return inclKeys.every((key) => combo[key] === incl[key]);
|
|
65
|
+
})) result.push(incl);
|
|
66
|
+
}
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
69
|
+
//#endregion
|
|
70
|
+
export { applyIncludeExclude, cartesianProduct, expandMatrix, expandMultiDimension, expandSingleDimension };
|
|
71
|
+
|
|
72
|
+
//# sourceMappingURL=expand.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { MatrixValues } from './expand.js';
|
|
2
|
+
/**
|
|
3
|
+
* Format matrix values into a display string for the job name.
|
|
4
|
+
* Single-dimension: "node-18"
|
|
5
|
+
* Multi-dimensional: "linux, 18"
|
|
6
|
+
*/
|
|
7
|
+
export declare function formatMatrixSuffix(matrixValues: MatrixValues): string;
|
|
8
|
+
/** Expanded child job name: `${baseName} (${suffix})`. MUST match the local executor. */
|
|
9
|
+
export declare function formatExpandedJobName(baseName: string, matrixValues: MatrixValues): string;
|
|
10
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import "../chunk-BTugEXQM.js";
|
|
2
|
+
//#region src/matrix/format.ts
|
|
3
|
+
/**
|
|
4
|
+
* Format matrix values into a display string for the job name.
|
|
5
|
+
* Single-dimension: "node-18"
|
|
6
|
+
* Multi-dimensional: "linux, 18"
|
|
7
|
+
*/
|
|
8
|
+
function formatMatrixSuffix(matrixValues) {
|
|
9
|
+
const defined = Object.entries(matrixValues).filter(([, v]) => v !== void 0);
|
|
10
|
+
if (defined.length === 1 && defined[0][0] === "value") return defined[0][1];
|
|
11
|
+
return defined.map(([, v]) => v).join(", ");
|
|
12
|
+
}
|
|
13
|
+
/** Expanded child job name: `${baseName} (${suffix})`. MUST match the local executor. */
|
|
14
|
+
function formatExpandedJobName(baseName, matrixValues) {
|
|
15
|
+
return `${baseName} (${formatMatrixSuffix(matrixValues)})`;
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { formatExpandedJobName, formatMatrixSuffix };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-BTugEXQM.js";
|
|
2
2
|
import { MetricNames, MetricService } from "./metric-catalog.generated.js";
|
|
3
3
|
//#region src/metrics/catalog-policy.ts
|
|
4
4
|
/**
|
|
@@ -138,7 +138,11 @@ const METRIC_LABEL_POLICY = {
|
|
|
138
138
|
machinePool: { maxUniqueValues: 50 }
|
|
139
139
|
},
|
|
140
140
|
kici_orch_install_secrets_decisions_total: {
|
|
141
|
-
decision: { values: [
|
|
141
|
+
decision: { values: [
|
|
142
|
+
"pass",
|
|
143
|
+
"reject",
|
|
144
|
+
"hold"
|
|
145
|
+
] },
|
|
142
146
|
reason: { values: [
|
|
143
147
|
"ok",
|
|
144
148
|
"malformed_ref",
|
|
@@ -148,7 +152,8 @@ const METRIC_LABEL_POLICY = {
|
|
|
148
152
|
"env_not_found",
|
|
149
153
|
"protection_rule_block",
|
|
150
154
|
"missing_token",
|
|
151
|
-
"missing_install_env"
|
|
155
|
+
"missing_install_env",
|
|
156
|
+
"held"
|
|
152
157
|
] }
|
|
153
158
|
},
|
|
154
159
|
kici_orch_install_secrets_npm_registry_used_total: {
|
|
@@ -19,6 +19,7 @@ export declare const MetricNames: {
|
|
|
19
19
|
readonly KICI_ORCH_BUILD_DURATION_SECONDS: "kici_orch_build_duration_seconds";
|
|
20
20
|
readonly KICI_ORCH_CONFIG_RELOAD_TOTAL: "kici_orch_config_reload_total";
|
|
21
21
|
readonly KICI_ORCH_CONFIG_VERSION: "kici_orch_config_version";
|
|
22
|
+
readonly KICI_ORCH_DECLARED_HOSTS_UNREACHABLE: "kici_orch_declared_hosts_unreachable";
|
|
22
23
|
readonly KICI_ORCH_DEDUP_HITS_TOTAL: "kici_orch_dedup_hits_total";
|
|
23
24
|
readonly KICI_ORCH_DEP_CACHE_HITS_TOTAL: "kici_orch_dep_cache_hits_total";
|
|
24
25
|
readonly KICI_ORCH_DEP_CACHE_MISSES_TOTAL: "kici_orch_dep_cache_misses_total";
|
|
@@ -128,6 +129,7 @@ export declare const MetricNames: {
|
|
|
128
129
|
readonly V8JS_MEMORY_HEAP_LIMIT: "v8js.memory.heap.limit";
|
|
129
130
|
readonly V8JS_MEMORY_HEAP_SPACE_AVAILABLE_SIZE: "v8js.memory.heap.space.available_size";
|
|
130
131
|
readonly V8JS_MEMORY_HEAP_SPACE_PHYSICAL_SIZE: "v8js.memory.heap.space.physical_size";
|
|
132
|
+
readonly V8JS_MEMORY_HEAP_SPACE_SIZE: "v8js.memory.heap.space.size";
|
|
131
133
|
readonly V8JS_MEMORY_HEAP_USED: "v8js.memory.heap.used";
|
|
132
134
|
};
|
|
133
135
|
export type MetricName = (typeof MetricNames)[keyof typeof MetricNames];
|
|
@@ -152,6 +154,7 @@ export declare const MetricLabels: {
|
|
|
152
154
|
readonly KICI_ORCH_BUILD_DURATION_SECONDS: readonly [];
|
|
153
155
|
readonly KICI_ORCH_CONFIG_RELOAD_TOTAL: readonly ["result", "source"];
|
|
154
156
|
readonly KICI_ORCH_CONFIG_VERSION: readonly [];
|
|
157
|
+
readonly KICI_ORCH_DECLARED_HOSTS_UNREACHABLE: readonly [];
|
|
155
158
|
readonly KICI_ORCH_DEDUP_HITS_TOTAL: readonly [];
|
|
156
159
|
readonly KICI_ORCH_DEP_CACHE_HITS_TOTAL: readonly [];
|
|
157
160
|
readonly KICI_ORCH_DEP_CACHE_MISSES_TOTAL: readonly [];
|
|
@@ -261,6 +264,7 @@ export declare const MetricLabels: {
|
|
|
261
264
|
readonly V8JS_MEMORY_HEAP_LIMIT: readonly ["v8js.heap.space.name", "scaler"];
|
|
262
265
|
readonly V8JS_MEMORY_HEAP_SPACE_AVAILABLE_SIZE: readonly ["v8js.heap.space.name", "scaler"];
|
|
263
266
|
readonly V8JS_MEMORY_HEAP_SPACE_PHYSICAL_SIZE: readonly ["v8js.heap.space.name", "scaler"];
|
|
267
|
+
readonly V8JS_MEMORY_HEAP_SPACE_SIZE: readonly ["v8js.heap.space.name", "scaler"];
|
|
264
268
|
readonly V8JS_MEMORY_HEAP_USED: readonly ["v8js.heap.space.name", "scaler"];
|
|
265
269
|
};
|
|
266
270
|
export declare const MetricKind: {
|
|
@@ -284,6 +288,7 @@ export declare const MetricKind: {
|
|
|
284
288
|
readonly KICI_ORCH_BUILD_DURATION_SECONDS: "histogram";
|
|
285
289
|
readonly KICI_ORCH_CONFIG_RELOAD_TOTAL: "counter";
|
|
286
290
|
readonly KICI_ORCH_CONFIG_VERSION: "observableGauge";
|
|
291
|
+
readonly KICI_ORCH_DECLARED_HOSTS_UNREACHABLE: "observableGauge";
|
|
287
292
|
readonly KICI_ORCH_DEDUP_HITS_TOTAL: "counter";
|
|
288
293
|
readonly KICI_ORCH_DEP_CACHE_HITS_TOTAL: "counter";
|
|
289
294
|
readonly KICI_ORCH_DEP_CACHE_MISSES_TOTAL: "counter";
|
|
@@ -393,6 +398,7 @@ export declare const MetricKind: {
|
|
|
393
398
|
readonly V8JS_MEMORY_HEAP_LIMIT: "gauge";
|
|
394
399
|
readonly V8JS_MEMORY_HEAP_SPACE_AVAILABLE_SIZE: "gauge";
|
|
395
400
|
readonly V8JS_MEMORY_HEAP_SPACE_PHYSICAL_SIZE: "gauge";
|
|
401
|
+
readonly V8JS_MEMORY_HEAP_SPACE_SIZE: "gauge";
|
|
396
402
|
readonly V8JS_MEMORY_HEAP_USED: "gauge";
|
|
397
403
|
};
|
|
398
404
|
export declare const MetricDescription: {
|
|
@@ -416,6 +422,7 @@ export declare const MetricDescription: {
|
|
|
416
422
|
readonly KICI_ORCH_BUILD_DURATION_SECONDS: "Duration of build agent operations in seconds";
|
|
417
423
|
readonly KICI_ORCH_CONFIG_RELOAD_TOTAL: "Total number of config reload operations";
|
|
418
424
|
readonly KICI_ORCH_CONFIG_VERSION: "Current shared config version number";
|
|
425
|
+
readonly KICI_ORCH_DECLARED_HOSTS_UNREACHABLE: "Number of declared (static) roster hosts currently unreachable";
|
|
419
426
|
readonly KICI_ORCH_DEDUP_HITS_TOTAL: "Total number of deduplication cache hits";
|
|
420
427
|
readonly KICI_ORCH_DEP_CACHE_HITS_TOTAL: "Total number of dep cache hits";
|
|
421
428
|
readonly KICI_ORCH_DEP_CACHE_MISSES_TOTAL: "Total number of dep cache misses";
|
|
@@ -431,7 +438,7 @@ export declare const MetricDescription: {
|
|
|
431
438
|
readonly KICI_ORCH_EXECUTIONS_TOTAL: "Total number of execution runs";
|
|
432
439
|
readonly KICI_ORCH_GITHUB_CHECK_RUN_TOTAL: "Total number of GitHub check run API calls";
|
|
433
440
|
readonly KICI_ORCH_INSTALL_SECRETS_CONTRIBUTOR_STRIPPED_TOTAL: "Dispatches where registry tokens were stripped because the contributor tier was not `trusted`";
|
|
434
|
-
readonly KICI_ORCH_INSTALL_SECRETS_DECISIONS_TOTAL: "Total install-secrets resolution decisions (pass / reject + reason)";
|
|
441
|
+
readonly KICI_ORCH_INSTALL_SECRETS_DECISIONS_TOTAL: "Total install-secrets resolution decisions (pass / reject / hold + reason)";
|
|
435
442
|
readonly KICI_ORCH_INSTALL_SECRETS_NPM_REGISTRY_USED_TOTAL: "Total registry / installEnv entries successfully resolved per channel / provider / scope";
|
|
436
443
|
readonly KICI_ORCH_INSTALL_SECRETS_TOKEN_RESOLUTION_DURATION_SECONDS: "Duration of per-environment secret resolution during install-secrets evaluation";
|
|
437
444
|
readonly KICI_ORCH_JOB_CONSECUTIVE_FAILURES: "Consecutive failures for each scheduled job since its last success";
|
|
@@ -525,6 +532,7 @@ export declare const MetricDescription: {
|
|
|
525
532
|
readonly V8JS_MEMORY_HEAP_LIMIT: "V8 heap size limit by heap space";
|
|
526
533
|
readonly V8JS_MEMORY_HEAP_SPACE_AVAILABLE_SIZE: "V8 available heap size by heap space";
|
|
527
534
|
readonly V8JS_MEMORY_HEAP_SPACE_PHYSICAL_SIZE: "V8 physical heap size by heap space";
|
|
535
|
+
readonly V8JS_MEMORY_HEAP_SPACE_SIZE: "V8 total heap size by heap space";
|
|
528
536
|
readonly V8JS_MEMORY_HEAP_USED: "V8 used heap size by heap space";
|
|
529
537
|
};
|
|
530
538
|
/**
|
|
@@ -555,6 +563,7 @@ export declare const MetricService: {
|
|
|
555
563
|
readonly KICI_ORCH_BUILD_DURATION_SECONDS: "orchestrator";
|
|
556
564
|
readonly KICI_ORCH_CONFIG_RELOAD_TOTAL: "orchestrator";
|
|
557
565
|
readonly KICI_ORCH_CONFIG_VERSION: "orchestrator";
|
|
566
|
+
readonly KICI_ORCH_DECLARED_HOSTS_UNREACHABLE: "orchestrator";
|
|
558
567
|
readonly KICI_ORCH_DEDUP_HITS_TOTAL: "orchestrator";
|
|
559
568
|
readonly KICI_ORCH_DEP_CACHE_HITS_TOTAL: "orchestrator";
|
|
560
569
|
readonly KICI_ORCH_DEP_CACHE_MISSES_TOTAL: "orchestrator";
|
|
@@ -664,6 +673,7 @@ export declare const MetricService: {
|
|
|
664
673
|
readonly V8JS_MEMORY_HEAP_LIMIT: "runtime";
|
|
665
674
|
readonly V8JS_MEMORY_HEAP_SPACE_AVAILABLE_SIZE: "runtime";
|
|
666
675
|
readonly V8JS_MEMORY_HEAP_SPACE_PHYSICAL_SIZE: "runtime";
|
|
676
|
+
readonly V8JS_MEMORY_HEAP_SPACE_SIZE: "runtime";
|
|
667
677
|
readonly V8JS_MEMORY_HEAP_USED: "runtime";
|
|
668
678
|
};
|
|
669
679
|
export type MetricService = (typeof MetricService)[keyof typeof MetricService];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-BTugEXQM.js";
|
|
2
2
|
//#region src/metrics/metric-catalog.generated.ts
|
|
3
3
|
const MetricNames = {
|
|
4
4
|
KICI_AGENT_CLONE_DURATION_SECONDS: "kici_agent_clone_duration_seconds",
|
|
@@ -21,6 +21,7 @@ const MetricNames = {
|
|
|
21
21
|
KICI_ORCH_BUILD_DURATION_SECONDS: "kici_orch_build_duration_seconds",
|
|
22
22
|
KICI_ORCH_CONFIG_RELOAD_TOTAL: "kici_orch_config_reload_total",
|
|
23
23
|
KICI_ORCH_CONFIG_VERSION: "kici_orch_config_version",
|
|
24
|
+
KICI_ORCH_DECLARED_HOSTS_UNREACHABLE: "kici_orch_declared_hosts_unreachable",
|
|
24
25
|
KICI_ORCH_DEDUP_HITS_TOTAL: "kici_orch_dedup_hits_total",
|
|
25
26
|
KICI_ORCH_DEP_CACHE_HITS_TOTAL: "kici_orch_dep_cache_hits_total",
|
|
26
27
|
KICI_ORCH_DEP_CACHE_MISSES_TOTAL: "kici_orch_dep_cache_misses_total",
|
|
@@ -130,6 +131,7 @@ const MetricNames = {
|
|
|
130
131
|
V8JS_MEMORY_HEAP_LIMIT: "v8js.memory.heap.limit",
|
|
131
132
|
V8JS_MEMORY_HEAP_SPACE_AVAILABLE_SIZE: "v8js.memory.heap.space.available_size",
|
|
132
133
|
V8JS_MEMORY_HEAP_SPACE_PHYSICAL_SIZE: "v8js.memory.heap.space.physical_size",
|
|
134
|
+
V8JS_MEMORY_HEAP_SPACE_SIZE: "v8js.memory.heap.space.size",
|
|
133
135
|
V8JS_MEMORY_HEAP_USED: "v8js.memory.heap.used"
|
|
134
136
|
};
|
|
135
137
|
const MetricLabels = {
|
|
@@ -153,6 +155,7 @@ const MetricLabels = {
|
|
|
153
155
|
KICI_ORCH_BUILD_DURATION_SECONDS: [],
|
|
154
156
|
KICI_ORCH_CONFIG_RELOAD_TOTAL: ["result", "source"],
|
|
155
157
|
KICI_ORCH_CONFIG_VERSION: [],
|
|
158
|
+
KICI_ORCH_DECLARED_HOSTS_UNREACHABLE: [],
|
|
156
159
|
KICI_ORCH_DEDUP_HITS_TOTAL: [],
|
|
157
160
|
KICI_ORCH_DEP_CACHE_HITS_TOTAL: [],
|
|
158
161
|
KICI_ORCH_DEP_CACHE_MISSES_TOTAL: [],
|
|
@@ -270,6 +273,7 @@ const MetricLabels = {
|
|
|
270
273
|
V8JS_MEMORY_HEAP_LIMIT: ["v8js.heap.space.name", "scaler"],
|
|
271
274
|
V8JS_MEMORY_HEAP_SPACE_AVAILABLE_SIZE: ["v8js.heap.space.name", "scaler"],
|
|
272
275
|
V8JS_MEMORY_HEAP_SPACE_PHYSICAL_SIZE: ["v8js.heap.space.name", "scaler"],
|
|
276
|
+
V8JS_MEMORY_HEAP_SPACE_SIZE: ["v8js.heap.space.name", "scaler"],
|
|
273
277
|
V8JS_MEMORY_HEAP_USED: ["v8js.heap.space.name", "scaler"]
|
|
274
278
|
};
|
|
275
279
|
const MetricKind = {
|
|
@@ -293,6 +297,7 @@ const MetricKind = {
|
|
|
293
297
|
KICI_ORCH_BUILD_DURATION_SECONDS: "histogram",
|
|
294
298
|
KICI_ORCH_CONFIG_RELOAD_TOTAL: "counter",
|
|
295
299
|
KICI_ORCH_CONFIG_VERSION: "observableGauge",
|
|
300
|
+
KICI_ORCH_DECLARED_HOSTS_UNREACHABLE: "observableGauge",
|
|
296
301
|
KICI_ORCH_DEDUP_HITS_TOTAL: "counter",
|
|
297
302
|
KICI_ORCH_DEP_CACHE_HITS_TOTAL: "counter",
|
|
298
303
|
KICI_ORCH_DEP_CACHE_MISSES_TOTAL: "counter",
|
|
@@ -402,6 +407,7 @@ const MetricKind = {
|
|
|
402
407
|
V8JS_MEMORY_HEAP_LIMIT: "gauge",
|
|
403
408
|
V8JS_MEMORY_HEAP_SPACE_AVAILABLE_SIZE: "gauge",
|
|
404
409
|
V8JS_MEMORY_HEAP_SPACE_PHYSICAL_SIZE: "gauge",
|
|
410
|
+
V8JS_MEMORY_HEAP_SPACE_SIZE: "gauge",
|
|
405
411
|
V8JS_MEMORY_HEAP_USED: "gauge"
|
|
406
412
|
};
|
|
407
413
|
const MetricDescription = {
|
|
@@ -425,6 +431,7 @@ const MetricDescription = {
|
|
|
425
431
|
KICI_ORCH_BUILD_DURATION_SECONDS: "Duration of build agent operations in seconds",
|
|
426
432
|
KICI_ORCH_CONFIG_RELOAD_TOTAL: "Total number of config reload operations",
|
|
427
433
|
KICI_ORCH_CONFIG_VERSION: "Current shared config version number",
|
|
434
|
+
KICI_ORCH_DECLARED_HOSTS_UNREACHABLE: "Number of declared (static) roster hosts currently unreachable",
|
|
428
435
|
KICI_ORCH_DEDUP_HITS_TOTAL: "Total number of deduplication cache hits",
|
|
429
436
|
KICI_ORCH_DEP_CACHE_HITS_TOTAL: "Total number of dep cache hits",
|
|
430
437
|
KICI_ORCH_DEP_CACHE_MISSES_TOTAL: "Total number of dep cache misses",
|
|
@@ -440,7 +447,7 @@ const MetricDescription = {
|
|
|
440
447
|
KICI_ORCH_EXECUTIONS_TOTAL: "Total number of execution runs",
|
|
441
448
|
KICI_ORCH_GITHUB_CHECK_RUN_TOTAL: "Total number of GitHub check run API calls",
|
|
442
449
|
KICI_ORCH_INSTALL_SECRETS_CONTRIBUTOR_STRIPPED_TOTAL: "Dispatches where registry tokens were stripped because the contributor tier was not `trusted`",
|
|
443
|
-
KICI_ORCH_INSTALL_SECRETS_DECISIONS_TOTAL: "Total install-secrets resolution decisions (pass / reject + reason)",
|
|
450
|
+
KICI_ORCH_INSTALL_SECRETS_DECISIONS_TOTAL: "Total install-secrets resolution decisions (pass / reject / hold + reason)",
|
|
444
451
|
KICI_ORCH_INSTALL_SECRETS_NPM_REGISTRY_USED_TOTAL: "Total registry / installEnv entries successfully resolved per channel / provider / scope",
|
|
445
452
|
KICI_ORCH_INSTALL_SECRETS_TOKEN_RESOLUTION_DURATION_SECONDS: "Duration of per-environment secret resolution during install-secrets evaluation",
|
|
446
453
|
KICI_ORCH_JOB_CONSECUTIVE_FAILURES: "Consecutive failures for each scheduled job since its last success",
|
|
@@ -534,6 +541,7 @@ const MetricDescription = {
|
|
|
534
541
|
V8JS_MEMORY_HEAP_LIMIT: "V8 heap size limit by heap space",
|
|
535
542
|
V8JS_MEMORY_HEAP_SPACE_AVAILABLE_SIZE: "V8 available heap size by heap space",
|
|
536
543
|
V8JS_MEMORY_HEAP_SPACE_PHYSICAL_SIZE: "V8 physical heap size by heap space",
|
|
544
|
+
V8JS_MEMORY_HEAP_SPACE_SIZE: "V8 total heap size by heap space",
|
|
537
545
|
V8JS_MEMORY_HEAP_USED: "V8 used heap size by heap space"
|
|
538
546
|
};
|
|
539
547
|
/**
|
|
@@ -564,6 +572,7 @@ const MetricService = {
|
|
|
564
572
|
KICI_ORCH_BUILD_DURATION_SECONDS: "orchestrator",
|
|
565
573
|
KICI_ORCH_CONFIG_RELOAD_TOTAL: "orchestrator",
|
|
566
574
|
KICI_ORCH_CONFIG_VERSION: "orchestrator",
|
|
575
|
+
KICI_ORCH_DECLARED_HOSTS_UNREACHABLE: "orchestrator",
|
|
567
576
|
KICI_ORCH_DEDUP_HITS_TOTAL: "orchestrator",
|
|
568
577
|
KICI_ORCH_DEP_CACHE_HITS_TOTAL: "orchestrator",
|
|
569
578
|
KICI_ORCH_DEP_CACHE_MISSES_TOTAL: "orchestrator",
|
|
@@ -673,6 +682,7 @@ const MetricService = {
|
|
|
673
682
|
V8JS_MEMORY_HEAP_LIMIT: "runtime",
|
|
674
683
|
V8JS_MEMORY_HEAP_SPACE_AVAILABLE_SIZE: "runtime",
|
|
675
684
|
V8JS_MEMORY_HEAP_SPACE_PHYSICAL_SIZE: "runtime",
|
|
685
|
+
V8JS_MEMORY_HEAP_SPACE_SIZE: "runtime",
|
|
676
686
|
V8JS_MEMORY_HEAP_USED: "runtime"
|
|
677
687
|
};
|
|
678
688
|
/** Set of every catalog metric name — O(1) membership for lint / filter UI. */
|
|
@@ -697,6 +707,7 @@ const ALL_METRIC_NAMES = [
|
|
|
697
707
|
"kici_orch_build_duration_seconds",
|
|
698
708
|
"kici_orch_config_reload_total",
|
|
699
709
|
"kici_orch_config_version",
|
|
710
|
+
"kici_orch_declared_hosts_unreachable",
|
|
700
711
|
"kici_orch_dedup_hits_total",
|
|
701
712
|
"kici_orch_dep_cache_hits_total",
|
|
702
713
|
"kici_orch_dep_cache_misses_total",
|
|
@@ -806,6 +817,7 @@ const ALL_METRIC_NAMES = [
|
|
|
806
817
|
"v8js.memory.heap.limit",
|
|
807
818
|
"v8js.memory.heap.space.available_size",
|
|
808
819
|
"v8js.memory.heap.space.physical_size",
|
|
820
|
+
"v8js.memory.heap.space.size",
|
|
809
821
|
"v8js.memory.heap.used"
|
|
810
822
|
];
|
|
811
823
|
//#endregion
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-BTugEXQM.js";
|
|
2
2
|
import { globalWorkflowSettingsSchema, globalWorkflowsGetRequestSchema, globalWorkflowsGetResponseSchema, globalWorkflowsUpdateRequestSchema, globalWorkflowsUpdateResponseSchema, repoPatternEntrySchema } from "./messages/dashboard-global-workflows.js";
|
|
3
3
|
export { globalWorkflowSettingsSchema, globalWorkflowsGetRequestSchema, globalWorkflowsGetResponseSchema, globalWorkflowsUpdateRequestSchema, globalWorkflowsUpdateResponseSchema, repoPatternEntrySchema };
|