looply-cli 0.5.10 → 0.5.12
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/.src-hash +1 -1
- package/dist/autonomy-controller.d.ts +23 -1
- package/dist/autonomy-controller.d.ts.map +1 -1
- package/dist/autonomy-controller.js +50 -9
- package/dist/autonomy-controller.js.map +1 -1
- package/dist/autonomy-store.d.ts +33 -1
- package/dist/autonomy-store.d.ts.map +1 -1
- package/dist/autonomy-store.js +58 -8
- package/dist/autonomy-store.js.map +1 -1
- package/dist/autonomy-tick.d.ts +23 -1
- package/dist/autonomy-tick.d.ts.map +1 -1
- package/dist/autonomy-tick.js +80 -14
- package/dist/autonomy-tick.js.map +1 -1
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +34 -5
- package/dist/bin.js.map +1 -1
- package/dist/branch-delivery-wiring.d.ts +4 -1
- package/dist/branch-delivery-wiring.d.ts.map +1 -1
- package/dist/branch-delivery-wiring.js +39 -12
- package/dist/branch-delivery-wiring.js.map +1 -1
- package/dist/branch-delivery.d.ts +157 -8
- package/dist/branch-delivery.d.ts.map +1 -1
- package/dist/branch-delivery.js +580 -82
- package/dist/branch-delivery.js.map +1 -1
- package/dist/branch-replay.d.ts +45 -0
- package/dist/branch-replay.d.ts.map +1 -0
- package/dist/branch-replay.js +123 -0
- package/dist/branch-replay.js.map +1 -0
- package/dist/commit-ownership.d.ts +102 -0
- package/dist/commit-ownership.d.ts.map +1 -0
- package/dist/commit-ownership.js +97 -0
- package/dist/commit-ownership.js.map +1 -0
- package/dist/coordinator-state.d.ts.map +1 -1
- package/dist/coordinator-state.js +23 -1
- package/dist/coordinator-state.js.map +1 -1
- package/dist/daemon-cmd.d.ts.map +1 -1
- package/dist/daemon-cmd.js +47 -4
- package/dist/daemon-cmd.js.map +1 -1
- package/dist/deliver-cmd.d.ts +18 -0
- package/dist/deliver-cmd.d.ts.map +1 -1
- package/dist/deliver-cmd.js +71 -5
- package/dist/deliver-cmd.js.map +1 -1
- package/dist/delivery-settings-cache.d.ts +15 -1
- package/dist/delivery-settings-cache.d.ts.map +1 -1
- package/dist/delivery-settings-cache.js +31 -3
- package/dist/delivery-settings-cache.js.map +1 -1
- package/dist/environment-hold.d.ts +69 -0
- package/dist/environment-hold.d.ts.map +1 -0
- package/dist/environment-hold.js +120 -0
- package/dist/environment-hold.js.map +1 -0
- package/dist/gate.d.ts.map +1 -1
- package/dist/gate.js +15 -1
- package/dist/gate.js.map +1 -1
- package/dist/github-api.d.ts +19 -0
- package/dist/github-api.d.ts.map +1 -1
- package/dist/github-api.js +26 -0
- package/dist/github-api.js.map +1 -1
- package/dist/goal-adaptive.d.ts +1 -0
- package/dist/goal-adaptive.d.ts.map +1 -1
- package/dist/goal-adaptive.js +26 -13
- package/dist/goal-adaptive.js.map +1 -1
- package/dist/goal-compile.d.ts +37 -0
- package/dist/goal-compile.d.ts.map +1 -1
- package/dist/goal-compile.js +25 -1
- package/dist/goal-compile.js.map +1 -1
- package/dist/goal-replay.d.ts +83 -0
- package/dist/goal-replay.d.ts.map +1 -0
- package/dist/goal-replay.js +121 -0
- package/dist/goal-replay.js.map +1 -0
- package/dist/goal-reproof.d.ts +5 -0
- package/dist/goal-reproof.d.ts.map +1 -1
- package/dist/goal-reproof.js +11 -4
- package/dist/goal-reproof.js.map +1 -1
- package/dist/grant-pause.d.ts +48 -0
- package/dist/grant-pause.d.ts.map +1 -0
- package/dist/grant-pause.js +103 -0
- package/dist/grant-pause.js.map +1 -0
- package/dist/grant-reconcile.d.ts +8 -2
- package/dist/grant-reconcile.d.ts.map +1 -1
- package/dist/grant-reconcile.js +9 -2
- package/dist/grant-reconcile.js.map +1 -1
- package/dist/grant-waiting-wiring.d.ts +49 -0
- package/dist/grant-waiting-wiring.d.ts.map +1 -0
- package/dist/grant-waiting-wiring.js +77 -0
- package/dist/grant-waiting-wiring.js.map +1 -0
- package/dist/machine-run-slots.d.ts +10 -2
- package/dist/machine-run-slots.d.ts.map +1 -1
- package/dist/machine-run-slots.js +15 -4
- package/dist/machine-run-slots.js.map +1 -1
- package/dist/maintenance-cmd.d.ts +44 -0
- package/dist/maintenance-cmd.d.ts.map +1 -0
- package/dist/maintenance-cmd.js +132 -0
- package/dist/maintenance-cmd.js.map +1 -0
- package/dist/maintenance-facts.d.ts +52 -0
- package/dist/maintenance-facts.d.ts.map +1 -0
- package/dist/maintenance-facts.js +256 -0
- package/dist/maintenance-facts.js.map +1 -0
- package/dist/maintenance-tick.d.ts +51 -0
- package/dist/maintenance-tick.d.ts.map +1 -0
- package/dist/maintenance-tick.js +156 -0
- package/dist/maintenance-tick.js.map +1 -0
- package/dist/planner-timeouts.d.ts +14 -0
- package/dist/planner-timeouts.d.ts.map +1 -0
- package/dist/planner-timeouts.js +51 -0
- package/dist/planner-timeouts.js.map +1 -0
- package/dist/run-cmd.d.ts +12 -1
- package/dist/run-cmd.d.ts.map +1 -1
- package/dist/run-cmd.js +146 -10
- package/dist/run-cmd.js.map +1 -1
- package/dist/run-launcher.d.ts +3 -0
- package/dist/run-launcher.d.ts.map +1 -1
- package/dist/run-launcher.js +3 -2
- package/dist/run-launcher.js.map +1 -1
- package/dist/run-refusal-marks.d.ts +7 -1
- package/dist/run-refusal-marks.d.ts.map +1 -1
- package/dist/run-refusal-marks.js +4 -0
- package/dist/run-refusal-marks.js.map +1 -1
- package/dist/server-client.d.ts +39 -1
- package/dist/server-client.d.ts.map +1 -1
- package/dist/server-client.js +28 -0
- package/dist/server-client.js.map +1 -1
- package/dist/start-attempts.d.ts +4 -2
- package/dist/start-attempts.d.ts.map +1 -1
- package/dist/start-attempts.js +6 -1
- package/dist/start-attempts.js.map +1 -1
- package/package.json +2 -2
package/dist/deliver-cmd.js
CHANGED
|
@@ -8,6 +8,7 @@ const node_fs_1 = require("node:fs");
|
|
|
8
8
|
const node_path_1 = require("node:path");
|
|
9
9
|
const branch_delivery_1 = require("./branch-delivery");
|
|
10
10
|
const branch_delivery_wiring_1 = require("./branch-delivery-wiring");
|
|
11
|
+
const commit_ownership_1 = require("./commit-ownership");
|
|
11
12
|
const config_1 = require("./config");
|
|
12
13
|
const delivery_rules_1 = require("./delivery-rules");
|
|
13
14
|
const git_driver_1 = require("./git-driver");
|
|
@@ -20,10 +21,13 @@ function parseDeliverArgs(argv) {
|
|
|
20
21
|
const branches = [];
|
|
21
22
|
const goals = new Map();
|
|
22
23
|
let yes = false;
|
|
24
|
+
let rebuild = false;
|
|
23
25
|
for (let i = 0; i < argv.length; i++) {
|
|
24
26
|
const a = argv[i];
|
|
25
27
|
if (a === '--yes')
|
|
26
28
|
yes = true;
|
|
29
|
+
else if (a === '--rebuild')
|
|
30
|
+
rebuild = true;
|
|
27
31
|
else if (a === '--goal') {
|
|
28
32
|
const v = argv[++i];
|
|
29
33
|
const m = v === undefined ? null : /^([^=]+)=(gol_[A-Za-z0-9]+)$/.exec(v);
|
|
@@ -38,7 +42,7 @@ function parseDeliverArgs(argv) {
|
|
|
38
42
|
}
|
|
39
43
|
if (branches.length === 0)
|
|
40
44
|
return { error: 'name at least one looply/run-* branch' };
|
|
41
|
-
return { branches, goals, yes };
|
|
45
|
+
return { branches, goals, yes, rebuild };
|
|
42
46
|
}
|
|
43
47
|
function goalOf(claims, branch) {
|
|
44
48
|
for (let i = claims.length - 1; i >= 0; i--)
|
|
@@ -50,7 +54,7 @@ async function deliverCommand(argv, deps) {
|
|
|
50
54
|
const args = parseDeliverArgs(argv);
|
|
51
55
|
if ('error' in args) {
|
|
52
56
|
deps.out(`looply deliver: ${args.error}`);
|
|
53
|
-
deps.out('usage: looply deliver <looply/run-…>... [--goal <branch>=<goalId>] [--yes]');
|
|
57
|
+
deps.out('usage: looply deliver <looply/run-…>... [--goal <branch>=<goalId>] [--rebuild] [--yes]');
|
|
54
58
|
return 64;
|
|
55
59
|
}
|
|
56
60
|
const local = await deps.git.runBranches();
|
|
@@ -114,8 +118,49 @@ async function deliverCommand(argv, deps) {
|
|
|
114
118
|
failures++;
|
|
115
119
|
continue;
|
|
116
120
|
}
|
|
117
|
-
if (
|
|
118
|
-
deps.out(`
|
|
121
|
+
if (args.rebuild && goalId === null) {
|
|
122
|
+
deps.out(` REFUSED: --rebuild needs to know whose branch this is (pass --goal ${branch}=<goalId>)`);
|
|
123
|
+
failures++;
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* WHOSE COMMITS: the same attribution the daemon uses before it delivers or merges. Without
|
|
128
|
+
* --yes the rebuild is TRIED in a temporary worktree (removed again; no branch is made) so
|
|
129
|
+
* the answer says whether it would replay cleanly, not just that it would be attempted.
|
|
130
|
+
*/
|
|
131
|
+
const dependsOn = goalId === null ? [] : (deps.dependsOn?.(goalId) ?? []);
|
|
132
|
+
const plan = base === null ? null : await rebuildPreview(deps, { branch, tip, base, goalId: goalId ?? `branch:${branch}`, local, onOrigin, dependsOn, tryIt: !args.yes });
|
|
133
|
+
if (plan !== null) {
|
|
134
|
+
deps.out(` own work: ${plan.own.length} commit${plan.own.length === 1 ? '' : 's'}${plan.own.length > 0 ? ` (${plan.own.map((s) => s.slice(0, 8)).join(' ')})` : ''}`);
|
|
135
|
+
if (plan.foreignText !== null)
|
|
136
|
+
deps.out(` ${plan.foreignText}`);
|
|
137
|
+
if (plan.foreignText !== null && plan.declared.length > 0) {
|
|
138
|
+
deps.out(` kept as it is: ${plan.declared.join(', ')} ${plan.declared.length === 1 ? 'is a dependency' : 'are dependencies'} this goal declares; Looply does not merge it until that work is merged`);
|
|
139
|
+
}
|
|
140
|
+
else if (plan.foreignText !== null && plan.trial !== null) {
|
|
141
|
+
deps.out(plan.trial.ok
|
|
142
|
+
? ` would rebuild it as ${plan.solo} on ${(0, delivery_rules_1.shortBranch)(base)}: ${plan.trial.replayed} commit${plan.trial.replayed === 1 ? '' : 's'} replay cleanly (tried in a temporary worktree, now removed)${plan.trial.alreadyInBase.length > 0 ? `; ${plan.trial.alreadyInBase.length} already on ${(0, delivery_rules_1.shortBranch)(base)}` : ''}`
|
|
143
|
+
: ` cannot rebuild it without that work: ${plan.trial.because} — it would be delivered as it is, and say so`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
if (args.rebuild) {
|
|
147
|
+
const prior = goalId === null ? null : deps.store.get(goalId);
|
|
148
|
+
if (plan === null || plan.foreignText === null) {
|
|
149
|
+
deps.out(' nothing to rebuild: it holds only this goal\'s work (or its base could not be read)');
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
if (plan.declared.length > 0)
|
|
153
|
+
continue;
|
|
154
|
+
if (!args.yes) {
|
|
155
|
+
deps.out(` would push ${plan.solo} to ${delivery_rules_1.DELIVERY_REMOTE} (never forced), open a pull request into ${(0, delivery_rules_1.shortBranch)(base)}${prior?.pullNumber ? `, and close PR #${prior.pullNumber} with: "Replaced by <the new pull request>, which holds only this ticket's work."` : ''}`);
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
else if (!args.yes) {
|
|
160
|
+
const rebuilds = plan !== null && plan.foreignText !== null && plan.declared.length === 0 && plan.trial?.ok === true;
|
|
161
|
+
deps.out(rebuilds
|
|
162
|
+
? ` would push ${plan.solo} (the rebuild) to ${delivery_rules_1.DELIVERY_REMOTE} (never forced) and open a pull request into ${(0, delivery_rules_1.shortBranch)(base)}`
|
|
163
|
+
: ` would push ${tip.slice(0, 12)} to ${delivery_rules_1.DELIVERY_REMOTE} refs/heads/${branch} (never forced) and open a pull request`);
|
|
119
164
|
continue;
|
|
120
165
|
}
|
|
121
166
|
const report = await (0, branch_delivery_1.deliverBranch)({
|
|
@@ -128,6 +173,7 @@ async function deliverCommand(argv, deps) {
|
|
|
128
173
|
},
|
|
129
174
|
now: deps.now,
|
|
130
175
|
log: (line) => deps.out(` ${line}`),
|
|
176
|
+
...(deps.recordClaim ? { recordClaim: deps.recordClaim } : {}),
|
|
131
177
|
}, {
|
|
132
178
|
goalId: goalId ?? `branch:${branch}`,
|
|
133
179
|
goalText: goalId === null ? branch : deps.goalText(goalId),
|
|
@@ -137,6 +183,8 @@ async function deliverCommand(argv, deps) {
|
|
|
137
183
|
claims: deps.claims,
|
|
138
184
|
protectedBranches: deps.protectedBranches,
|
|
139
185
|
branch,
|
|
186
|
+
dependsOn,
|
|
187
|
+
...(args.rebuild ? { replace: true } : {}),
|
|
140
188
|
});
|
|
141
189
|
if (report === null || report.state === 'not-pushed')
|
|
142
190
|
failures++;
|
|
@@ -146,10 +194,26 @@ async function deliverCommand(argv, deps) {
|
|
|
146
194
|
}
|
|
147
195
|
if (!args.yes) {
|
|
148
196
|
deps.out('');
|
|
149
|
-
deps.out(
|
|
197
|
+
deps.out(args.rebuild
|
|
198
|
+
? 'Nothing was pushed, opened or closed. Run again with --yes to rebuild these branches, open their new pull requests and close the old ones.'
|
|
199
|
+
: 'Nothing was pushed. Run again with --yes to push these branches and open their pull requests.');
|
|
150
200
|
}
|
|
151
201
|
return failures === 0 ? 0 : 1;
|
|
152
202
|
}
|
|
203
|
+
/** What the daemon would make of this branch's commits, and — when asked — whether a rebuild replays. */
|
|
204
|
+
async function rebuildPreview(deps, at) {
|
|
205
|
+
const ref = await deps.git.freshBase(at.base);
|
|
206
|
+
const owned = await (0, commit_ownership_1.commitOwnership)(deps.git, { tip: at.tip, base: ref, goalId: at.goalId, claims: deps.claims, branches: at.local, onOrigin: at.onOrigin });
|
|
207
|
+
if (owned === null)
|
|
208
|
+
return null;
|
|
209
|
+
const foreign = await (0, branch_delivery_1.unmergedForeign)(deps.git, deps.store, owned.foreign);
|
|
210
|
+
const solo = `${at.branch.replace(/-solo(-\d+)?$/, '')}${commit_ownership_1.SOLO_SUFFIX}`;
|
|
211
|
+
if (foreign.length === 0)
|
|
212
|
+
return { own: owned.own, foreignText: null, declared: [], solo, trial: null };
|
|
213
|
+
const declared = [...new Set(foreign.map((f) => f.goalId).filter((g) => g !== undefined && at.dependsOn.includes(g)))];
|
|
214
|
+
const trial = declared.length === 0 && at.tryIt ? await deps.git.replay(ref, owned.own) : null;
|
|
215
|
+
return { own: owned.own, foreignText: (0, branch_delivery_1.describeForeign)(deps.store, foreign, (0, delivery_rules_1.shortBranch)(at.base)), declared, solo, trial };
|
|
216
|
+
}
|
|
153
217
|
function nodeDeliverDeps(cwd, out) {
|
|
154
218
|
const stateDir = (0, git_driver_1.projectStateDir)(cwd);
|
|
155
219
|
let config = null;
|
|
@@ -184,6 +248,8 @@ function nodeDeliverDeps(cwd, out) {
|
|
|
184
248
|
protectedBranches: config?.deliver?.protected ?? [],
|
|
185
249
|
out,
|
|
186
250
|
now: () => Date.now(),
|
|
251
|
+
dependsOn: (goalId) => (0, branch_delivery_wiring_1.mirrored)(stateDir, goalId)?.dependsOn ?? [],
|
|
252
|
+
recordClaim: (record) => void (0, lane_claims_1.recordLaneClaim)(cwd, record),
|
|
187
253
|
};
|
|
188
254
|
}
|
|
189
255
|
//# sourceMappingURL=deliver-cmd.js.map
|
package/dist/deliver-cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliver-cmd.js","sourceRoot":"","sources":["../src/deliver-cmd.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deliver-cmd.js","sourceRoot":"","sources":["../src/deliver-cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type DeliverMode, type DeployConfig } from '@looply/core';
|
|
1
|
+
import { type DeliverMode, type DeployConfig, type DeployEnvironment } from '@looply/core';
|
|
2
2
|
/**
|
|
3
3
|
* THE PROJECT'S REMOTE DELIVERY CHOICE, AS THIS MACHINE LAST HEARD IT.
|
|
4
4
|
*
|
|
@@ -14,6 +14,8 @@ export interface DeliverySettingsCache {
|
|
|
14
14
|
deliver: DeliverMode | null;
|
|
15
15
|
/** The project's deploy step as set remotely; null when none. */
|
|
16
16
|
deploy: DeployConfig | null;
|
|
17
|
+
/** The project's named environments as set remotely; absent/null when none. */
|
|
18
|
+
environments?: DeployEnvironment[] | null;
|
|
17
19
|
updatedAt: string | null;
|
|
18
20
|
fetchedAt: string;
|
|
19
21
|
}
|
|
@@ -25,6 +27,18 @@ export declare function resolveDeliverMode(local: DeliverMode | undefined, state
|
|
|
25
27
|
};
|
|
26
28
|
/** The deploy step in force: config.yaml `deliver.deploy` → the remote setting → none (null). */
|
|
27
29
|
export declare function resolveDeploy(local: DeployConfig | undefined, stateDir: string): DeployConfig | null;
|
|
30
|
+
/**
|
|
31
|
+
* The environments in force, in deploy order:
|
|
32
|
+
* config.yaml `deliver.deploy` → that one step as one unnamed environment;
|
|
33
|
+
* else the remote `environments` when set (they supersede the remote `deploy`);
|
|
34
|
+
* else the remote `deploy` as one unnamed environment;
|
|
35
|
+
* else none.
|
|
36
|
+
* An unnamed environment is named for where it goes (`heroku-qa` for a push there, else `default`)
|
|
37
|
+
* and is matched to ANY GitHub deployment of the commit, since it is the only one.
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolveEnvironments(local: DeployConfig | undefined, stateDir: string): Array<DeployEnvironment & {
|
|
40
|
+
unnamed?: true;
|
|
41
|
+
}>;
|
|
28
42
|
/** One pull: ask the server, write the cache when the answer changed. Never throws. */
|
|
29
43
|
export declare function makeDeliverySettingsPull(deps: {
|
|
30
44
|
fetch(): Promise<unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-settings-cache.d.ts","sourceRoot":"","sources":["../src/delivery-settings-cache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkD,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"delivery-settings-cache.d.ts","sourceRoot":"","sources":["../src/delivery-settings-cache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkD,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAG3I;;;;;;;;;GASG;AAEH,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,iEAAiE;IACjE,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,+EAA+E;IAC/E,YAAY,CAAC,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAC1C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CA2BxF;AAUD,iDAAiD;AACjD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,GACf;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAA;CAAE,CAKnE;AAED,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAGpG;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,YAAY,GAAG,SAAS,EAC/B,QAAQ,EAAE,MAAM,GACf,KAAK,CAAC,iBAAiB,GAAG;IAAE,OAAO,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC,CAO/C;AAED,uFAAuF;AACvF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,IAAI,MAAM,CAAC;CACf,GAAG,MAAM,OAAO,CAAC,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC,CA8CpD"}
|
|
@@ -4,6 +4,7 @@ exports.DELIVERY_SETTINGS_FILE = void 0;
|
|
|
4
4
|
exports.readDeliverySettingsCache = readDeliverySettingsCache;
|
|
5
5
|
exports.resolveDeliverMode = resolveDeliverMode;
|
|
6
6
|
exports.resolveDeploy = resolveDeploy;
|
|
7
|
+
exports.resolveEnvironments = resolveEnvironments;
|
|
7
8
|
exports.makeDeliverySettingsPull = makeDeliverySettingsPull;
|
|
8
9
|
const node_fs_1 = require("node:fs");
|
|
9
10
|
const node_path_1 = require("node:path");
|
|
@@ -25,16 +26,23 @@ function readDeliverySettingsCache(stateDir) {
|
|
|
25
26
|
const raw = JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(stateDir, exports.DELIVERY_SETTINGS_FILE), 'utf8'));
|
|
26
27
|
let deliver = null;
|
|
27
28
|
let deploy = null;
|
|
29
|
+
let environments = null;
|
|
28
30
|
if (raw['deliver'] !== null && raw['deliver'] !== undefined) {
|
|
29
|
-
const v = (0, core_1.validateDeliverySettings)({
|
|
31
|
+
const v = (0, core_1.validateDeliverySettings)({
|
|
32
|
+
deliver: raw['deliver'],
|
|
33
|
+
...(raw['deploy'] ? { deploy: raw['deploy'] } : {}),
|
|
34
|
+
...(raw['environments'] ? { environments: raw['environments'] } : {}),
|
|
35
|
+
});
|
|
30
36
|
if (!v.ok)
|
|
31
37
|
return null;
|
|
32
38
|
deliver = v.settings.deliver;
|
|
33
39
|
deploy = v.settings.deploy ?? null;
|
|
40
|
+
environments = v.settings.environments ?? null;
|
|
34
41
|
}
|
|
35
42
|
return {
|
|
36
43
|
deliver,
|
|
37
44
|
deploy,
|
|
45
|
+
environments,
|
|
38
46
|
updatedAt: typeof raw['updatedAt'] === 'string' ? raw['updatedAt'] : null,
|
|
39
47
|
fetchedAt: typeof raw['fetchedAt'] === 'string' ? raw['fetchedAt'] : '',
|
|
40
48
|
};
|
|
@@ -65,6 +73,24 @@ function resolveDeploy(local, stateDir) {
|
|
|
65
73
|
return local;
|
|
66
74
|
return readDeliverySettingsCache(stateDir)?.deploy ?? null;
|
|
67
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* The environments in force, in deploy order:
|
|
78
|
+
* config.yaml `deliver.deploy` → that one step as one unnamed environment;
|
|
79
|
+
* else the remote `environments` when set (they supersede the remote `deploy`);
|
|
80
|
+
* else the remote `deploy` as one unnamed environment;
|
|
81
|
+
* else none.
|
|
82
|
+
* An unnamed environment is named for where it goes (`heroku-qa` for a push there, else `default`)
|
|
83
|
+
* and is matched to ANY GitHub deployment of the commit, since it is the only one.
|
|
84
|
+
*/
|
|
85
|
+
function resolveEnvironments(local, stateDir) {
|
|
86
|
+
const single = (d) => d === null || d.kind === 'none' ? [] : [{ name: d.kind === 'push' ? d.remote : 'default', deploy: d, unnamed: true }];
|
|
87
|
+
if (local !== undefined)
|
|
88
|
+
return single(local);
|
|
89
|
+
const cache = readDeliverySettingsCache(stateDir);
|
|
90
|
+
if (cache?.environments && cache.environments.length > 0)
|
|
91
|
+
return cache.environments;
|
|
92
|
+
return single(cache?.deploy ?? null);
|
|
93
|
+
}
|
|
68
94
|
/** One pull: ask the server, write the cache when the answer changed. Never throws. */
|
|
69
95
|
function makeDeliverySettingsPull(deps) {
|
|
70
96
|
let failureReported = false;
|
|
@@ -91,6 +117,7 @@ function makeDeliverySettingsPull(deps) {
|
|
|
91
117
|
}
|
|
92
118
|
let deliver = null;
|
|
93
119
|
let deploy = null;
|
|
120
|
+
let environments = null;
|
|
94
121
|
if (b.settings !== null) {
|
|
95
122
|
const v = (0, core_1.validateDeliverySettings)(b.settings);
|
|
96
123
|
if (!v.ok) {
|
|
@@ -99,14 +126,15 @@ function makeDeliverySettingsPull(deps) {
|
|
|
99
126
|
}
|
|
100
127
|
deliver = v.settings.deliver;
|
|
101
128
|
deploy = v.settings.deploy ?? null;
|
|
129
|
+
environments = v.settings.environments ?? null;
|
|
102
130
|
}
|
|
103
131
|
failureReported = false;
|
|
104
132
|
const updatedAt = typeof b.updatedAt === 'string' ? b.updatedAt : null;
|
|
105
133
|
const before = readDeliverySettingsCache(deps.stateDir);
|
|
106
|
-
if (before !== null && before.deliver === deliver && JSON.stringify(before.deploy) === JSON.stringify(deploy) && before.updatedAt === updatedAt)
|
|
134
|
+
if (before !== null && before.deliver === deliver && JSON.stringify(before.deploy) === JSON.stringify(deploy) && JSON.stringify(before.environments ?? null) === JSON.stringify(environments) && before.updatedAt === updatedAt)
|
|
107
135
|
return 'unchanged';
|
|
108
136
|
try {
|
|
109
|
-
writeCache(deps.stateDir, { deliver, deploy, updatedAt, fetchedAt: new Date(deps.now()).toISOString() });
|
|
137
|
+
writeCache(deps.stateDir, { deliver, deploy, environments, updatedAt, fetchedAt: new Date(deps.now()).toISOString() });
|
|
110
138
|
}
|
|
111
139
|
catch (e) {
|
|
112
140
|
deps.log(`deliver : could not write the delivery setting cache (${e.message})`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-settings-cache.js","sourceRoot":"","sources":["../src/delivery-settings-cache.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"delivery-settings-cache.js","sourceRoot":"","sources":["../src/delivery-settings-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { type EnvironmentCode } from '@looply/core';
|
|
2
|
+
/**
|
|
3
|
+
* A GOAL HELD FOR A MACHINE FAULT, AND WHEN IT IS TRIED AGAIN.
|
|
4
|
+
*
|
|
5
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
6
|
+
* When a Start ends on an environment failure (`environment.ts` in core: a sandbox denial, an
|
|
7
|
+
* unreadable config, a missing tool, a full disk, the AI tool's limit), the controller voids that
|
|
8
|
+
* Start — it does not count against the grant — and writes this record beside the grant's
|
|
9
|
+
* receipts. While it stands, nothing more is spent: trying again on the same machine, with the
|
|
10
|
+
* same Looply and the same config, would fail the same way.
|
|
11
|
+
*
|
|
12
|
+
* It stops standing when the cause CAN have changed:
|
|
13
|
+
*
|
|
14
|
+
* - a different Looply version is running (an update landed — the 0.5.3 sandbox fix, the 0.5.8
|
|
15
|
+
* config carry: every one of 2026-10-15/16's faults was fixed by a release);
|
|
16
|
+
* - the project's config or the machine's settings changed (`configDigest`);
|
|
17
|
+
* - or simply time: a few minutes for weather (a usage limit, a spawn that lost a race), six
|
|
18
|
+
* hours for the rest, so a fault fixed some other way (disk freed, tool installed) is noticed.
|
|
19
|
+
*
|
|
20
|
+
* A planner timeout is not held at all: the next Start plans with a longer limit
|
|
21
|
+
* (`goal-compile.ts`, `compileTierFor`).
|
|
22
|
+
*
|
|
23
|
+
* ⚠️ NOT A DECISION ABOUT THE WORK. Nothing here reads a goal. It is a machine fact, like the
|
|
24
|
+
* provider-readiness hold, and like it the grant's clock stands still while it holds
|
|
25
|
+
* (`grant-pause.ts`).
|
|
26
|
+
*/
|
|
27
|
+
export declare const ENVIRONMENT_HOLD_FILE = "environment-hold.json";
|
|
28
|
+
/** A hold on weather is short; a hold on a fault that needs fixing waits for a change, or this. */
|
|
29
|
+
export declare const ENVIRONMENT_RETRY_MS: number;
|
|
30
|
+
export declare const TRANSIENT_RETRY_MS: Readonly<Partial<Record<EnvironmentCode, number>>>;
|
|
31
|
+
export interface EnvironmentHoldRecord {
|
|
32
|
+
readonly code: EnvironmentCode;
|
|
33
|
+
/** The plain reason, as the fault said it (a person reads it on the ticket). */
|
|
34
|
+
readonly reason: string;
|
|
35
|
+
/** ISO. When the fault was met. */
|
|
36
|
+
readonly since: string;
|
|
37
|
+
/** The Looply version that met it. */
|
|
38
|
+
readonly looplyVersion: string;
|
|
39
|
+
/** The config the machine had when it met it (`configDigest`). */
|
|
40
|
+
readonly configDigest: string;
|
|
41
|
+
}
|
|
42
|
+
/** Where things stand, in the controller's vocabulary: held (and why), or free to spend. */
|
|
43
|
+
export type EnvironmentHoldFact = {
|
|
44
|
+
readonly held: true;
|
|
45
|
+
readonly because: string;
|
|
46
|
+
} | {
|
|
47
|
+
readonly held: false;
|
|
48
|
+
};
|
|
49
|
+
export declare function readEnvironmentHold(stateDir: string, controllerId: string): EnvironmentHoldRecord | null;
|
|
50
|
+
export declare function writeEnvironmentHold(stateDir: string, controllerId: string, record: EnvironmentHoldRecord): void;
|
|
51
|
+
/** How long a hold of this kind stands before it is tried again regardless. */
|
|
52
|
+
export declare function retryAfterMs(code: EnvironmentCode): number;
|
|
53
|
+
/**
|
|
54
|
+
* Does the hold still stand? Pure: the caller hands it the version and digest in force now.
|
|
55
|
+
*/
|
|
56
|
+
export declare function decideEnvironmentHold(record: EnvironmentHoldRecord | null, now: {
|
|
57
|
+
readonly at: number;
|
|
58
|
+
readonly looplyVersion: string;
|
|
59
|
+
readonly configDigest: string;
|
|
60
|
+
}): EnvironmentHoldFact;
|
|
61
|
+
/** What the hold says, to a log and to the ticket: what is wrong, that nothing is lost, and when it is tried again. */
|
|
62
|
+
export declare function holdSentence(record: Pick<EnvironmentHoldRecord, 'code' | 'reason'>, retryAt: number): string;
|
|
63
|
+
/**
|
|
64
|
+
* A digest of what configures this machine's runs of this project: the project's
|
|
65
|
+
* `.looply/config.yaml` and the machine's own settings. A change to either may have fixed the
|
|
66
|
+
* fault, so it releases the hold. Unreadable files contribute nothing (absent is a state too).
|
|
67
|
+
*/
|
|
68
|
+
export declare function configDigest(projectDir: string, home?: string): string;
|
|
69
|
+
//# sourceMappingURL=environment-hold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment-hold.d.ts","sourceRoot":"","sources":["../src/environment-hold.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D,mGAAmG;AACnG,eAAO,MAAM,oBAAoB,QAAqB,CAAC;AACvD,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAIjF,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,4FAA4F;AAC5F,MAAM,MAAM,mBAAmB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC;AAM/G,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAcxG;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAMhH;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,GAAG,IAAI,EACpC,GAAG,EAAE;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC1F,mBAAmB,CAQrB;AAED,uHAAuH;AACvH,wBAAgB,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAK5G;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,GAAG,MAAM,CAWjF"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TRANSIENT_RETRY_MS = exports.ENVIRONMENT_RETRY_MS = exports.ENVIRONMENT_HOLD_FILE = void 0;
|
|
4
|
+
exports.readEnvironmentHold = readEnvironmentHold;
|
|
5
|
+
exports.writeEnvironmentHold = writeEnvironmentHold;
|
|
6
|
+
exports.retryAfterMs = retryAfterMs;
|
|
7
|
+
exports.decideEnvironmentHold = decideEnvironmentHold;
|
|
8
|
+
exports.holdSentence = holdSentence;
|
|
9
|
+
exports.configDigest = configDigest;
|
|
10
|
+
const node_crypto_1 = require("node:crypto");
|
|
11
|
+
const node_fs_1 = require("node:fs");
|
|
12
|
+
const node_os_1 = require("node:os");
|
|
13
|
+
const node_path_1 = require("node:path");
|
|
14
|
+
const core_1 = require("@looply/core");
|
|
15
|
+
/**
|
|
16
|
+
* A GOAL HELD FOR A MACHINE FAULT, AND WHEN IT IS TRIED AGAIN.
|
|
17
|
+
*
|
|
18
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
19
|
+
* When a Start ends on an environment failure (`environment.ts` in core: a sandbox denial, an
|
|
20
|
+
* unreadable config, a missing tool, a full disk, the AI tool's limit), the controller voids that
|
|
21
|
+
* Start — it does not count against the grant — and writes this record beside the grant's
|
|
22
|
+
* receipts. While it stands, nothing more is spent: trying again on the same machine, with the
|
|
23
|
+
* same Looply and the same config, would fail the same way.
|
|
24
|
+
*
|
|
25
|
+
* It stops standing when the cause CAN have changed:
|
|
26
|
+
*
|
|
27
|
+
* - a different Looply version is running (an update landed — the 0.5.3 sandbox fix, the 0.5.8
|
|
28
|
+
* config carry: every one of 2026-10-15/16's faults was fixed by a release);
|
|
29
|
+
* - the project's config or the machine's settings changed (`configDigest`);
|
|
30
|
+
* - or simply time: a few minutes for weather (a usage limit, a spawn that lost a race), six
|
|
31
|
+
* hours for the rest, so a fault fixed some other way (disk freed, tool installed) is noticed.
|
|
32
|
+
*
|
|
33
|
+
* A planner timeout is not held at all: the next Start plans with a longer limit
|
|
34
|
+
* (`goal-compile.ts`, `compileTierFor`).
|
|
35
|
+
*
|
|
36
|
+
* ⚠️ NOT A DECISION ABOUT THE WORK. Nothing here reads a goal. It is a machine fact, like the
|
|
37
|
+
* provider-readiness hold, and like it the grant's clock stands still while it holds
|
|
38
|
+
* (`grant-pause.ts`).
|
|
39
|
+
*/
|
|
40
|
+
exports.ENVIRONMENT_HOLD_FILE = 'environment-hold.json';
|
|
41
|
+
/** A hold on weather is short; a hold on a fault that needs fixing waits for a change, or this. */
|
|
42
|
+
exports.ENVIRONMENT_RETRY_MS = 6 * 60 * 60 * 1000;
|
|
43
|
+
exports.TRANSIENT_RETRY_MS = {
|
|
44
|
+
planner_timeout: 0,
|
|
45
|
+
spawn_failed: 5 * 60 * 1000,
|
|
46
|
+
provider_limit: 30 * 60 * 1000,
|
|
47
|
+
};
|
|
48
|
+
function pathFor(stateDir, controllerId) {
|
|
49
|
+
return (0, node_path_1.join)(stateDir, 'autonomy', controllerId, exports.ENVIRONMENT_HOLD_FILE);
|
|
50
|
+
}
|
|
51
|
+
function readEnvironmentHold(stateDir, controllerId) {
|
|
52
|
+
try {
|
|
53
|
+
const raw = JSON.parse((0, node_fs_1.readFileSync)(pathFor(stateDir, controllerId), 'utf8'));
|
|
54
|
+
if (!(0, core_1.isEnvironmentCode)(raw.code) || typeof raw.reason !== 'string' || typeof raw.since !== 'string')
|
|
55
|
+
return null;
|
|
56
|
+
return {
|
|
57
|
+
code: raw.code,
|
|
58
|
+
reason: raw.reason,
|
|
59
|
+
since: raw.since,
|
|
60
|
+
looplyVersion: typeof raw.looplyVersion === 'string' ? raw.looplyVersion : '',
|
|
61
|
+
configDigest: typeof raw.configDigest === 'string' ? raw.configDigest : '',
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function writeEnvironmentHold(stateDir, controllerId, record) {
|
|
69
|
+
const target = pathFor(stateDir, controllerId);
|
|
70
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(stateDir, 'autonomy', controllerId), { recursive: true });
|
|
71
|
+
const tmp = `${target}.${process.pid}.tmp`;
|
|
72
|
+
(0, node_fs_1.writeFileSync)(tmp, `${JSON.stringify(record, null, 2)}\n`, 'utf8');
|
|
73
|
+
(0, node_fs_1.renameSync)(tmp, target);
|
|
74
|
+
}
|
|
75
|
+
/** How long a hold of this kind stands before it is tried again regardless. */
|
|
76
|
+
function retryAfterMs(code) {
|
|
77
|
+
return exports.TRANSIENT_RETRY_MS[code] ?? ((0, core_1.isTransientEnvironment)(code) ? 5 * 60 * 1000 : exports.ENVIRONMENT_RETRY_MS);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Does the hold still stand? Pure: the caller hands it the version and digest in force now.
|
|
81
|
+
*/
|
|
82
|
+
function decideEnvironmentHold(record, now) {
|
|
83
|
+
if (record === null)
|
|
84
|
+
return { held: false };
|
|
85
|
+
if (record.looplyVersion !== '' && record.looplyVersion !== now.looplyVersion)
|
|
86
|
+
return { held: false };
|
|
87
|
+
if (record.configDigest !== '' && record.configDigest !== now.configDigest)
|
|
88
|
+
return { held: false };
|
|
89
|
+
const since = Date.parse(record.since);
|
|
90
|
+
const wait = retryAfterMs(record.code);
|
|
91
|
+
if (Number.isNaN(since) || now.at - since >= wait)
|
|
92
|
+
return { held: false };
|
|
93
|
+
return { held: true, because: holdSentence(record, since + wait) };
|
|
94
|
+
}
|
|
95
|
+
/** What the hold says, to a log and to the ticket: what is wrong, that nothing is lost, and when it is tried again. */
|
|
96
|
+
function holdSentence(record, retryAt) {
|
|
97
|
+
const what = (0, core_1.describeEnvironment)(record.code);
|
|
98
|
+
const detail = record.reason.replace(/\s+/g, ' ').trim().slice(0, 160);
|
|
99
|
+
const when = new Date(retryAt).toISOString().slice(11, 16);
|
|
100
|
+
return `held: ${what}${detail === '' ? '' : ` (${detail})`} — not the work; it starts again after a Looply update or a config change, or at ${when}Z`;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* A digest of what configures this machine's runs of this project: the project's
|
|
104
|
+
* `.looply/config.yaml` and the machine's own settings. A change to either may have fixed the
|
|
105
|
+
* fault, so it releases the hold. Unreadable files contribute nothing (absent is a state too).
|
|
106
|
+
*/
|
|
107
|
+
function configDigest(projectDir, home = (0, node_os_1.homedir)()) {
|
|
108
|
+
const h = (0, node_crypto_1.createHash)('sha256');
|
|
109
|
+
for (const p of [(0, node_path_1.join)(projectDir, '.looply', 'config.yaml'), (0, node_path_1.join)(home, '.looply', 'machine-settings.json')]) {
|
|
110
|
+
try {
|
|
111
|
+
h.update((0, node_fs_1.readFileSync)(p));
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
h.update('<absent>');
|
|
115
|
+
}
|
|
116
|
+
h.update('\0');
|
|
117
|
+
}
|
|
118
|
+
return h.digest('hex').slice(0, 16);
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=environment-hold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment-hold.js","sourceRoot":"","sources":["../src/environment-hold.ts"],"names":[],"mappings":";;;AA6DA,kDAcC;AAED,oDAMC;AAGD,oCAEC;AAKD,sDAWC;AAGD,oCAKC;AAOD,oCAWC;AAlID,6CAAyC;AACzC,qCAA6E;AAC7E,qCAAkC;AAClC,yCAAiC;AACjC,uCAAoH;AAEpH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEU,QAAA,qBAAqB,GAAG,uBAAuB,CAAC;AAE7D,mGAAmG;AACtF,QAAA,oBAAoB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC1C,QAAA,kBAAkB,GAAuD;IACpF,eAAe,EAAE,CAAC;IAClB,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAC3B,cAAc,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;CAC/B,CAAC;AAiBF,SAAS,OAAO,CAAC,QAAgB,EAAE,YAAoB;IACrD,OAAO,IAAA,gBAAI,EAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,6BAAqB,CAAC,CAAC;AACzE,CAAC;AAED,SAAgB,mBAAmB,CAAC,QAAgB,EAAE,YAAoB;IACxE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,CAAmC,CAAC;QAChH,IAAI,CAAC,IAAA,wBAAiB,EAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACjH,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,aAAa,EAAE,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;YAC7E,YAAY,EAAE,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;SAC3E,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,oBAAoB,CAAC,QAAgB,EAAE,YAAoB,EAAE,MAA6B;IACxG,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC/C,IAAA,mBAAS,EAAC,IAAA,gBAAI,EAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;IAC3C,IAAA,uBAAa,EAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnE,IAAA,oBAAU,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC1B,CAAC;AAED,+EAA+E;AAC/E,SAAgB,YAAY,CAAC,IAAqB;IAChD,OAAO,0BAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAA,6BAAsB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,4BAAoB,CAAC,CAAC;AAC3G,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,MAAoC,EACpC,GAA2F;IAE3F,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC5C,IAAI,MAAM,CAAC,aAAa,KAAK,EAAE,IAAI,MAAM,CAAC,aAAa,KAAK,GAAG,CAAC,aAAa;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACtG,IAAI,MAAM,CAAC,YAAY,KAAK,EAAE,IAAI,MAAM,CAAC,YAAY,KAAK,GAAG,CAAC,YAAY;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACnG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC1E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,uHAAuH;AACvH,SAAgB,YAAY,CAAC,MAAsD,EAAE,OAAe;IAClG,MAAM,IAAI,GAAG,IAAA,0BAAmB,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3D,OAAO,SAAS,IAAI,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,oFAAoF,IAAI,GAAG,CAAC;AACxJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,UAAkB,EAAE,OAAe,IAAA,iBAAO,GAAE;IACvE,MAAM,CAAC,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,CAAC,IAAA,gBAAI,EAAC,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,IAAA,gBAAI,EAAC,IAAI,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC,EAAE,CAAC;QAC7G,IAAI,CAAC;YACH,CAAC,CAAC,MAAM,CAAC,IAAA,sBAAY,EAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvB,CAAC;QACD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC"}
|
package/dist/gate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"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"}
|
package/dist/gate.js
CHANGED
|
@@ -218,7 +218,21 @@ async function runGate(input) {
|
|
|
218
218
|
continue;
|
|
219
219
|
}
|
|
220
220
|
const timeoutMs = (step.timeoutS ?? exports.DEFAULT_TIMEOUT_S) * 1000;
|
|
221
|
-
const
|
|
221
|
+
const ran = await input.runner(step.run, timeoutMs);
|
|
222
|
+
/**
|
|
223
|
+
* A STEP THAT CRASHED BEFORE IT TESTED ANYTHING COULD NOT RUN, whatever its exit code says.
|
|
224
|
+
*
|
|
225
|
+
* TAB-B-61 (2026-10-14/15): every gate died on the sandbox's `realpath` EPERM before 0.5.3,
|
|
226
|
+
* each one read as red, each round spent an attempt, and the pursuit spent its three plans on
|
|
227
|
+
* code nothing had examined. Only the shapes a TOOL RUNNER prints when it itself could not run
|
|
228
|
+
* count (`classifyGateCrash`: the sandbox denying the runner's own filesystem walk, the command
|
|
229
|
+
* not existing, a full disk) — a test that fails about permissions still fails. Such a step is
|
|
230
|
+
* `unavailable`: no digest, the gate `blocked`, and the round spends no attempt.
|
|
231
|
+
*/
|
|
232
|
+
const crashed = !ran.ok && ran.unavailable !== true && ran.timedOut !== true
|
|
233
|
+
? (0, core_1.classifyGateCrash)(ran.output, typeof ran.exitCode === 'number' ? ran.exitCode : null)
|
|
234
|
+
: null;
|
|
235
|
+
const r = crashed === null ? ran : { ...ran, unavailable: true };
|
|
222
236
|
const result = { step: step.name, ok: r.ok, ms: r.ms };
|
|
223
237
|
if (r.timedOut)
|
|
224
238
|
result.timedOut = true;
|
package/dist/gate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"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"}
|