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.
Files changed (126) hide show
  1. package/dist/.src-hash +1 -1
  2. package/dist/autonomy-controller.d.ts +23 -1
  3. package/dist/autonomy-controller.d.ts.map +1 -1
  4. package/dist/autonomy-controller.js +50 -9
  5. package/dist/autonomy-controller.js.map +1 -1
  6. package/dist/autonomy-store.d.ts +33 -1
  7. package/dist/autonomy-store.d.ts.map +1 -1
  8. package/dist/autonomy-store.js +58 -8
  9. package/dist/autonomy-store.js.map +1 -1
  10. package/dist/autonomy-tick.d.ts +23 -1
  11. package/dist/autonomy-tick.d.ts.map +1 -1
  12. package/dist/autonomy-tick.js +80 -14
  13. package/dist/autonomy-tick.js.map +1 -1
  14. package/dist/bin.d.ts.map +1 -1
  15. package/dist/bin.js +34 -5
  16. package/dist/bin.js.map +1 -1
  17. package/dist/branch-delivery-wiring.d.ts +4 -1
  18. package/dist/branch-delivery-wiring.d.ts.map +1 -1
  19. package/dist/branch-delivery-wiring.js +39 -12
  20. package/dist/branch-delivery-wiring.js.map +1 -1
  21. package/dist/branch-delivery.d.ts +157 -8
  22. package/dist/branch-delivery.d.ts.map +1 -1
  23. package/dist/branch-delivery.js +580 -82
  24. package/dist/branch-delivery.js.map +1 -1
  25. package/dist/branch-replay.d.ts +45 -0
  26. package/dist/branch-replay.d.ts.map +1 -0
  27. package/dist/branch-replay.js +123 -0
  28. package/dist/branch-replay.js.map +1 -0
  29. package/dist/commit-ownership.d.ts +102 -0
  30. package/dist/commit-ownership.d.ts.map +1 -0
  31. package/dist/commit-ownership.js +97 -0
  32. package/dist/commit-ownership.js.map +1 -0
  33. package/dist/coordinator-state.d.ts.map +1 -1
  34. package/dist/coordinator-state.js +23 -1
  35. package/dist/coordinator-state.js.map +1 -1
  36. package/dist/daemon-cmd.d.ts.map +1 -1
  37. package/dist/daemon-cmd.js +47 -4
  38. package/dist/daemon-cmd.js.map +1 -1
  39. package/dist/deliver-cmd.d.ts +18 -0
  40. package/dist/deliver-cmd.d.ts.map +1 -1
  41. package/dist/deliver-cmd.js +71 -5
  42. package/dist/deliver-cmd.js.map +1 -1
  43. package/dist/delivery-settings-cache.d.ts +15 -1
  44. package/dist/delivery-settings-cache.d.ts.map +1 -1
  45. package/dist/delivery-settings-cache.js +31 -3
  46. package/dist/delivery-settings-cache.js.map +1 -1
  47. package/dist/environment-hold.d.ts +69 -0
  48. package/dist/environment-hold.d.ts.map +1 -0
  49. package/dist/environment-hold.js +120 -0
  50. package/dist/environment-hold.js.map +1 -0
  51. package/dist/gate.d.ts.map +1 -1
  52. package/dist/gate.js +15 -1
  53. package/dist/gate.js.map +1 -1
  54. package/dist/github-api.d.ts +19 -0
  55. package/dist/github-api.d.ts.map +1 -1
  56. package/dist/github-api.js +26 -0
  57. package/dist/github-api.js.map +1 -1
  58. package/dist/goal-adaptive.d.ts +1 -0
  59. package/dist/goal-adaptive.d.ts.map +1 -1
  60. package/dist/goal-adaptive.js +26 -13
  61. package/dist/goal-adaptive.js.map +1 -1
  62. package/dist/goal-compile.d.ts +37 -0
  63. package/dist/goal-compile.d.ts.map +1 -1
  64. package/dist/goal-compile.js +25 -1
  65. package/dist/goal-compile.js.map +1 -1
  66. package/dist/goal-replay.d.ts +83 -0
  67. package/dist/goal-replay.d.ts.map +1 -0
  68. package/dist/goal-replay.js +121 -0
  69. package/dist/goal-replay.js.map +1 -0
  70. package/dist/goal-reproof.d.ts +5 -0
  71. package/dist/goal-reproof.d.ts.map +1 -1
  72. package/dist/goal-reproof.js +11 -4
  73. package/dist/goal-reproof.js.map +1 -1
  74. package/dist/grant-pause.d.ts +48 -0
  75. package/dist/grant-pause.d.ts.map +1 -0
  76. package/dist/grant-pause.js +103 -0
  77. package/dist/grant-pause.js.map +1 -0
  78. package/dist/grant-reconcile.d.ts +8 -2
  79. package/dist/grant-reconcile.d.ts.map +1 -1
  80. package/dist/grant-reconcile.js +9 -2
  81. package/dist/grant-reconcile.js.map +1 -1
  82. package/dist/grant-waiting-wiring.d.ts +49 -0
  83. package/dist/grant-waiting-wiring.d.ts.map +1 -0
  84. package/dist/grant-waiting-wiring.js +77 -0
  85. package/dist/grant-waiting-wiring.js.map +1 -0
  86. package/dist/machine-run-slots.d.ts +10 -2
  87. package/dist/machine-run-slots.d.ts.map +1 -1
  88. package/dist/machine-run-slots.js +15 -4
  89. package/dist/machine-run-slots.js.map +1 -1
  90. package/dist/maintenance-cmd.d.ts +44 -0
  91. package/dist/maintenance-cmd.d.ts.map +1 -0
  92. package/dist/maintenance-cmd.js +132 -0
  93. package/dist/maintenance-cmd.js.map +1 -0
  94. package/dist/maintenance-facts.d.ts +52 -0
  95. package/dist/maintenance-facts.d.ts.map +1 -0
  96. package/dist/maintenance-facts.js +256 -0
  97. package/dist/maintenance-facts.js.map +1 -0
  98. package/dist/maintenance-tick.d.ts +51 -0
  99. package/dist/maintenance-tick.d.ts.map +1 -0
  100. package/dist/maintenance-tick.js +156 -0
  101. package/dist/maintenance-tick.js.map +1 -0
  102. package/dist/planner-timeouts.d.ts +14 -0
  103. package/dist/planner-timeouts.d.ts.map +1 -0
  104. package/dist/planner-timeouts.js +51 -0
  105. package/dist/planner-timeouts.js.map +1 -0
  106. package/dist/run-cmd.d.ts +12 -1
  107. package/dist/run-cmd.d.ts.map +1 -1
  108. package/dist/run-cmd.js +146 -10
  109. package/dist/run-cmd.js.map +1 -1
  110. package/dist/run-launcher.d.ts +3 -0
  111. package/dist/run-launcher.d.ts.map +1 -1
  112. package/dist/run-launcher.js +3 -2
  113. package/dist/run-launcher.js.map +1 -1
  114. package/dist/run-refusal-marks.d.ts +7 -1
  115. package/dist/run-refusal-marks.d.ts.map +1 -1
  116. package/dist/run-refusal-marks.js +4 -0
  117. package/dist/run-refusal-marks.js.map +1 -1
  118. package/dist/server-client.d.ts +39 -1
  119. package/dist/server-client.d.ts.map +1 -1
  120. package/dist/server-client.js +28 -0
  121. package/dist/server-client.js.map +1 -1
  122. package/dist/start-attempts.d.ts +4 -2
  123. package/dist/start-attempts.d.ts.map +1 -1
  124. package/dist/start-attempts.js +6 -1
  125. package/dist/start-attempts.js.map +1 -1
  126. package/package.json +2 -2
@@ -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 (!args.yes) {
118
- deps.out(` would push ${tip.slice(0, 12)} to ${delivery_rules_1.DELIVERY_REMOTE} refs/heads/${branch} (never forced) and open a pull request`);
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('Nothing was pushed. Run again with --yes to push these branches and open their pull requests.');
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
@@ -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;AAGnH;;;;;;;;;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,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAoBxF;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,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,CA4CpD"}
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)({ deliver: raw['deliver'], ...(raw['deploy'] ? { deploy: raw['deploy'] } : {}) });
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":"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"}
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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"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"}
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 r = await input.runner(step.run, timeoutMs);
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":";;;AA8MA,0CAsBC;AAuBD,oCAUC;AAOD,wCAEC;AAGD,sCAIC;AAmED,8BAgBC;AAgBD,0BA+GC;AAGD,sCAEC;AA5eD,uCAMsB;AACtB,iCAAqD;AACrD,6CAMsB;AAiGT,QAAA,UAAU,GAAG,EAAE,CAAC;AAChB,QAAA,WAAW,GAAG,EAAE,CAAC;AAC9B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACU,QAAA,UAAU,GAAG,OAAO,CAAC;AA2CrB,QAAA,iBAAiB,GAAG,GAAG,CAAC;AAErC;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,KAAqB;IAChD,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAC/C,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,CAAC;IACrF,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,IAAA,qBAAc,EAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QAClF,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAgB,EAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrG,IAAI,KAAK,KAAK,SAAS;YAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,KAAqB;IACnD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAChG,IAAI,GAAG,EAAE,CAAC;YACR,OAAO;gBACL,IAAI,EAAE,kBAAU;gBAChB,MAAM,EAAE,mDAAmD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG;aAClF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAElD,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,OAAO;YACL,IAAI,EAAE,mBAAW;YACjB,MAAM,EAAE,0CAA0C;YAClD,KAAK,EAAE,UAAU;SAClB,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAQD;;;;;;;;;;;;;;GAcG;AACH,SAAgB,YAAY,CAAC,KAAqB;IAChD,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACxC,IAAI,KAAK,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrE,MAAM,UAAU,GAAqB,IAAA,4BAAe,EAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAC5E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO;QACL,MAAM,EAAE,IAAA,oCAAuB,EAAC,UAAU,CAAC;QAC3C,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACpC,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,KAAqB;IAClD,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC;AAED,iFAAiF;AACjF,SAAgB,aAAa,CAAC,IAAc,EAAE,YAA+B;IAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,kBAAW,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACxD,CAAC;AAkDD;;;;;;;GAOG;AACU,QAAA,0BAA0B,GAAG,GAAG,GAAG,IAAI,CAAC;AAErD;;;;;;GAMG;AACH,SAAgB,SAAS,CACvB,IAAY,EACZ,QAAgB;IAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,IAAI,KAAK,IAAI,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC7B,MAAM,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;IACpC,OAAO;QACL,IAAI,EACF,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,OAAO,4BAA4B;YAC3E,uBAAuB,KAAK,qBAAqB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE;QAC7E,KAAK;QACL,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC;AAWD;;;;GAIG;AACI,KAAK,UAAU,OAAO,CAAC,KAAmB;IAC/C,IAAI,IAAI,GAAgB,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,KAAK;YAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACzD,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACxC;;;;;;WAMG;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,OAAO,EAAE,CAAC;YACZ,sEAAsE;YACtE,yEAAyE;YACzE,wEAAwE;YACxE,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU;iBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC;iBACvD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;YAC5C,KAAK,CAAC,WAAW,EAAE,CAAC;gBAClB,IAAI,EAAE,kBAAU;gBAChB,OAAO,EAAE,oCAAoC;gBAC7C,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,KAAK;gBACf,yEAAyE;gBACzE,sEAAsE;gBACtE,0DAA0D;gBAC1D,WAAW,EAAE,KAAK;gBAClB,EAAE,EAAE,KAAK;gBACT,EAAE,EAAE,CAAC;gBACL,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,IAAI,CAAC,MAAM;gBACxB,eAAe,EAAE,KAAK;aACvB,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAU,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,IAAA,0BAAmB,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjD,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,OAAoB,EAAE,KAAuB,EAAc,EAAE,CACzE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAE9E,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7C,4EAA4E;YAC5E,wDAAwD;YACxD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,yBAAiB,CAAC,GAAG,IAAI,CAAC;QAC9D,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAClD,MAAM,MAAM,GAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QACvE,IAAI,CAAC,CAAC,QAAQ;YAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvC,2EAA2E;QAC3E,kEAAkE;QAClE,kCAAkC;QAClC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,kCAA0B,CAAC,CAAC;QACtE,KAAK,CAAC,WAAW,EAAE,CAAC;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,GAAG;YACjB,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;YAC5D,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,WAAW,EAAE,CAAC,CAAC,WAAW,KAAK,IAAI;YACnC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,cAAc,EACZ,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;YAChG,MAAM,EAAE,OAAO,CAAC,IAAI;YACpB,WAAW,EAAE,OAAO,CAAC,KAAK;YAC1B,eAAe,EAAE,OAAO,CAAC,SAAS;SACnC,CAAC,CAAC;QACH;;;;;;;;;;;WAWG;QACH,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,IAAI,CAAC,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YACjF,MAAM,CAAC,YAAY,GAAG,IAAA,0BAAmB,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErB;;;;;;;;WAQG;QACH,IAAI,CAAC,CAAC,WAAW,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,mEAAmE;AACnE,SAAgB,aAAa,CAAC,KAA0B;IACtD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"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"}