cuelo 0.10.112 → 0.10.113
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/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +43 -43
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/subagents/eta/route.js +1 -1
- package/.next/server/app/api/updates/apply/route.js +2 -2
- package/.next/server/app/api/updates/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/page.js +4 -4
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/recover/page_client-reference-manifest.js +1 -1
- package/.next/server/app/recover.html +1 -1
- package/.next/server/app/recover.rsc +2 -2
- package/.next/server/app/recover.segments/_full.segment.rsc +2 -2
- package/.next/server/app/recover.segments/_head.segment.rsc +1 -1
- package/.next/server/app/recover.segments/_index.segment.rsc +2 -2
- package/.next/server/app/recover.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/recover.segments/recover/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/recover.segments/recover.segment.rsc +1 -1
- package/.next/server/app-paths-manifest.json +43 -43
- package/.next/server/chunks/205.js +1 -1
- package/.next/server/chunks/4975.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/app/{layout-115531088b56e5b8.js → layout-f65c6505ac7e4f7b.js} +1 -1
- package/.next/static/chunks/app/{page-eebad992b39604fe.js → page-20cef200caf67724.js} +2 -2
- package/.next/trace +108 -108
- package/.next/trace-build +1 -1
- package/Tools/CUELO_Setup/files/native-runtime-patch.js +1 -1
- package/Tools/OMP_Global_Config/agent/AGENTS.md +1 -13
- package/Tools/OMP_Global_Config/agent/RULES.md +2 -3
- package/Tools/OMP_Global_Config/agent/extensions/command-guard/task-guard.ts +2 -2
- package/Tools/OMP_Global_Config/agent/prompt-copies/AGENTS.en.md +2 -14
- package/Tools/OMP_Global_Config/agent/prompt-copies/RULES.en.md +3 -4
- package/Tools/OMP_Global_Config/agent/rules/deploy-ops.md +1 -2
- package/Tools/OMP_Global_Config/agent/rules/omp-harness.md +2 -0
- package/package.json +1 -1
- package/Tools/OMP_Global_Config/agent/tools/ci-chain/index.ts +0 -1085
- package/Tools/OMP_Global_Config/agent/tools/ci-chain/paths-filter.ts +0 -130
- /package/.next/static/{fFliQjzM2o72M2-5A4USH → -U-IFRIKLIBm-XAbrl-sF}/_buildManifest.js +0 -0
- /package/.next/static/{fFliQjzM2o72M2-5A4USH → -U-IFRIKLIBm-XAbrl-sF}/_ssgManifest.js +0 -0
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GitHub Actions `on.push.paths` / `paths-ignore` filter, evaluated locally.
|
|
3
|
-
*
|
|
4
|
-
* ci_chain uses it to tell "the push has no run because every changed file is filtered out" apart from "the run has
|
|
5
|
-
* not appeared yet". A pattern or filter this module does not fully understand is reported as `undefined` or thrown,
|
|
6
|
-
* and the caller then treats the push as one that does run, so a misread never turns a missing run into a pass.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
export interface PushPathsFilter {
|
|
10
|
-
/** Patterns of `on.push.paths` (with `!` re-exclusions), in order; absent when the workflow has none. */
|
|
11
|
-
paths?: string[];
|
|
12
|
-
/** Patterns of `on.push.paths-ignore`; absent when the workflow has none. */
|
|
13
|
-
pathsIgnore?: string[];
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const UNSUPPORTED_PATTERN_CHARS = /[?+[\]\\]/;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* `*` is any run of characters except `/`; a `**` segment is any run of whole segments; a pattern matches the whole path.
|
|
20
|
-
* `**` is modelled only as a whole segment (`a/**`, `**\/b`, `**`): `a**`, `***` and the like are refused, because their
|
|
21
|
-
* GitHub meaning is not one this module can state with certainty.
|
|
22
|
-
*/
|
|
23
|
-
export function globToRegExp(pattern: string): RegExp {
|
|
24
|
-
const segments = pattern.split("/");
|
|
25
|
-
if (UNSUPPORTED_PATTERN_CHARS.test(pattern) || segments.some((segment) => segment.includes("**") && segment !== "**")) {
|
|
26
|
-
throw new Error(`unsupported path pattern: ${pattern}`);
|
|
27
|
-
}
|
|
28
|
-
let source = "";
|
|
29
|
-
segments.forEach((segment, index) => {
|
|
30
|
-
const last = index === segments.length - 1;
|
|
31
|
-
if (segment === "**") {
|
|
32
|
-
// A trailing `**` takes everything below; a leading or inner one takes zero or more whole segments.
|
|
33
|
-
source += last ? ".*" : "(?:.*/)?";
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
source += segment
|
|
37
|
-
.split("*")
|
|
38
|
-
.map((part) => part.replace(/[.^${}()|]/g, "\\$&"))
|
|
39
|
-
.join("[^/]*");
|
|
40
|
-
if (!last) source += "/";
|
|
41
|
-
});
|
|
42
|
-
return new RegExp(`^${source}$`);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
function stringList(value: unknown): string[] | undefined {
|
|
46
|
-
if (!Array.isArray(value) || value.some((item) => typeof item !== "string")) return undefined;
|
|
47
|
-
return value as string[];
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function asRecord(value: unknown): Record<string, unknown> | undefined {
|
|
51
|
-
return typeof value === "object" && value !== null && !Array.isArray(value) ? Object.fromEntries(Object.entries(value)) : undefined;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function yamlParser(): ((text: string) => unknown) | undefined {
|
|
55
|
-
// Bun.YAML exists only under the Bun runtime this tool runs in; its types are not part of this project's globals.
|
|
56
|
-
const bun: unknown = Reflect.get(globalThis, "Bun");
|
|
57
|
-
if (typeof bun !== "object" || bun === null || !("YAML" in bun)) return undefined;
|
|
58
|
-
const yaml: unknown = bun.YAML;
|
|
59
|
-
if (typeof yaml !== "object" || yaml === null || !("parse" in yaml) || typeof yaml.parse !== "function") return undefined;
|
|
60
|
-
const parse = yaml.parse.bind(yaml);
|
|
61
|
-
return (text) => parse(text);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Reads the push trigger's path filter from a workflow file. Returns `null` when the workflow has no push trigger,
|
|
66
|
-
* an empty object when the push trigger has no path filter, and `undefined` when the file cannot be understood.
|
|
67
|
-
*/
|
|
68
|
-
export function parsePushPathsFilter(workflowText: string): PushPathsFilter | null | undefined {
|
|
69
|
-
const parse = yamlParser();
|
|
70
|
-
if (!parse) return undefined;
|
|
71
|
-
let parsed: unknown;
|
|
72
|
-
try {
|
|
73
|
-
parsed = parse(workflowText);
|
|
74
|
-
} catch {
|
|
75
|
-
return undefined;
|
|
76
|
-
}
|
|
77
|
-
const doc = asRecord(parsed);
|
|
78
|
-
if (!doc) return undefined;
|
|
79
|
-
// YAML 1.1 parsers read the bare key `on` as boolean true.
|
|
80
|
-
const trigger = "on" in doc ? doc.on : doc.true;
|
|
81
|
-
if (typeof trigger === "string") return trigger === "push" ? {} : null;
|
|
82
|
-
if (Array.isArray(trigger)) return trigger.includes("push") ? {} : null;
|
|
83
|
-
const events = asRecord(trigger);
|
|
84
|
-
if (!events) return undefined;
|
|
85
|
-
if (!("push" in events)) return null;
|
|
86
|
-
if (events.push === null || events.push === undefined) return {};
|
|
87
|
-
const config = asRecord(events.push);
|
|
88
|
-
if (!config) return undefined;
|
|
89
|
-
const filter: PushPathsFilter = {};
|
|
90
|
-
if ("paths" in config) {
|
|
91
|
-
const paths = stringList(config.paths);
|
|
92
|
-
// GitHub refuses a `paths` list that has only `!` patterns: it must hold at least one positive pattern.
|
|
93
|
-
if (!paths || paths.length === 0 || paths.every((pattern) => pattern.startsWith("!"))) return undefined;
|
|
94
|
-
filter.paths = paths;
|
|
95
|
-
}
|
|
96
|
-
if ("paths-ignore" in config) {
|
|
97
|
-
const ignore = stringList(config["paths-ignore"]);
|
|
98
|
-
if (!ignore || ignore.length === 0) return undefined;
|
|
99
|
-
filter.pathsIgnore = ignore;
|
|
100
|
-
}
|
|
101
|
-
// GitHub rejects a push trigger that has both filters; a file that does is not one this module can reason about.
|
|
102
|
-
if (filter.paths && filter.pathsIgnore) return undefined;
|
|
103
|
-
return filter;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/** True when a push whose diff is exactly `changed` starts the workflow. Throws on a pattern it cannot evaluate. */
|
|
107
|
-
export function pushStartsWorkflow(filter: PushPathsFilter, changed: string[]): boolean {
|
|
108
|
-
if (changed.length === 0) return true;
|
|
109
|
-
if (filter.pathsIgnore) {
|
|
110
|
-
if (filter.pathsIgnore.some((pattern) => pattern.startsWith("!"))) {
|
|
111
|
-
throw new Error("paths-ignore with a ! pattern is not supported");
|
|
112
|
-
}
|
|
113
|
-
const ignore = filter.pathsIgnore.map(globToRegExp);
|
|
114
|
-
return changed.some((path) => !ignore.some((re) => re.test(path)));
|
|
115
|
-
}
|
|
116
|
-
if (filter.paths) {
|
|
117
|
-
// Patterns apply in order: a later `!` removes a path, a later positive pattern brings it back.
|
|
118
|
-
const steps = filter.paths.map((pattern) =>
|
|
119
|
-
pattern.startsWith("!") ? { negate: true, re: globToRegExp(pattern.slice(1)) } : { negate: false, re: globToRegExp(pattern) },
|
|
120
|
-
);
|
|
121
|
-
return changed.some((path) => {
|
|
122
|
-
let included = false;
|
|
123
|
-
for (const step of steps) {
|
|
124
|
-
if (step.re.test(path)) included = !step.negate;
|
|
125
|
-
}
|
|
126
|
-
return included;
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
return true;
|
|
130
|
-
}
|
|
File without changes
|
|
File without changes
|