@bluewombat/runtime 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +124 -100
- package/SPECS.md +103 -84
- package/dist/cli.js +32 -34
- package/dist/cli.js.map +1 -1
- package/dist/config/agent-shorthand.d.ts +0 -1
- package/dist/config/agent-shorthand.d.ts.map +1 -1
- package/dist/config/agent-shorthand.js +1 -9
- package/dist/config/agent-shorthand.js.map +1 -1
- package/dist/config/defaults.d.ts +0 -2
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +0 -2
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/find-config.d.ts +3 -2
- package/dist/config/find-config.d.ts.map +1 -1
- package/dist/config/find-config.js +4 -4
- package/dist/config/find-config.js.map +1 -1
- package/dist/config/home.js +2 -2
- package/dist/config/home.js.map +1 -1
- package/dist/config/load-config.d.ts +2 -2
- package/dist/config/load-config.d.ts.map +1 -1
- package/dist/config/load-config.js +46 -29
- package/dist/config/load-config.js.map +1 -1
- package/dist/config/parse-args.d.ts.map +1 -1
- package/dist/config/parse-args.js +50 -48
- package/dist/config/parse-args.js.map +1 -1
- package/dist/config/types.d.ts +40 -24
- package/dist/config/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/loop/authority.d.ts +3 -4
- package/dist/loop/authority.d.ts.map +1 -1
- package/dist/loop/authority.js +27 -22
- package/dist/loop/authority.js.map +1 -1
- package/dist/loop/context.d.ts +8 -3
- package/dist/loop/context.d.ts.map +1 -1
- package/dist/loop/deliveries.d.ts +16 -16
- package/dist/loop/deliveries.d.ts.map +1 -1
- package/dist/loop/deliveries.js +35 -187
- package/dist/loop/deliveries.js.map +1 -1
- package/dist/loop/describe.d.ts +4 -6
- package/dist/loop/describe.d.ts.map +1 -1
- package/dist/loop/describe.js +2 -2
- package/dist/loop/describe.js.map +1 -1
- package/dist/loop/drive.d.ts +4 -6
- package/dist/loop/drive.d.ts.map +1 -1
- package/dist/loop/drive.js +9 -33
- package/dist/loop/drive.js.map +1 -1
- package/dist/loop/features.d.ts +23 -0
- package/dist/loop/features.d.ts.map +1 -0
- package/dist/loop/features.js +571 -0
- package/dist/loop/features.js.map +1 -0
- package/dist/loop/journal.d.ts +1 -1
- package/dist/loop/journal.js +2 -2
- package/dist/loop/journal.js.map +1 -1
- package/dist/loop/lock.d.ts +1 -1
- package/dist/loop/lock.js +1 -1
- package/dist/loop/open-host.d.ts.map +1 -1
- package/dist/loop/open-host.js +23 -24
- package/dist/loop/open-host.js.map +1 -1
- package/dist/loop/probe.d.ts +1 -1
- package/dist/loop/probe.d.ts.map +1 -1
- package/dist/loop/probe.js +51 -22
- package/dist/loop/probe.js.map +1 -1
- package/dist/loop/process-tree.d.ts +1 -1
- package/dist/loop/process-tree.js +1 -1
- package/dist/loop/report.d.ts +9 -7
- package/dist/loop/report.d.ts.map +1 -1
- package/dist/loop/report.js +30 -99
- package/dist/loop/report.js.map +1 -1
- package/dist/loop/streams.d.ts +5 -5
- package/dist/loop/streams.d.ts.map +1 -1
- package/dist/loop/streams.js +3 -3
- package/dist/loop/streams.js.map +1 -1
- package/dist/loop/tick.d.ts +6 -4
- package/dist/loop/tick.d.ts.map +1 -1
- package/dist/loop/tick.js +50 -78
- package/dist/loop/tick.js.map +1 -1
- package/dist/loop/trace.d.ts +5 -5
- package/dist/loop/trace.d.ts.map +1 -1
- package/dist/loop/trace.js +5 -14
- package/dist/loop/trace.js.map +1 -1
- package/dist/loop/transformers.d.ts +3 -13
- package/dist/loop/transformers.d.ts.map +1 -1
- package/dist/loop/transformers.js +3 -53
- package/dist/loop/transformers.js.map +1 -1
- package/dist/loop/warm.d.ts +3 -3
- package/dist/loop/warm.js +3 -3
- package/dist/loop/work-line.d.ts +1 -1
- package/dist/operator/agent-plugins.d.ts +11 -0
- package/dist/operator/agent-plugins.d.ts.map +1 -1
- package/dist/operator/agent-plugins.js +3 -3
- package/dist/operator/agent-plugins.js.map +1 -1
- package/dist/operator/board.d.ts +3 -8
- package/dist/operator/board.d.ts.map +1 -1
- package/dist/operator/board.js +2 -11
- package/dist/operator/board.js.map +1 -1
- package/dist/operator/cancel.d.ts +2 -2
- package/dist/operator/cancel.js +6 -6
- package/dist/operator/cancel.js.map +1 -1
- package/dist/operator/doctor.d.ts +9 -0
- package/dist/operator/doctor.d.ts.map +1 -1
- package/dist/operator/doctor.js +32 -25
- package/dist/operator/doctor.js.map +1 -1
- package/dist/operator/explain.d.ts +76 -0
- package/dist/operator/explain.d.ts.map +1 -0
- package/dist/operator/explain.js +556 -0
- package/dist/operator/explain.js.map +1 -0
- package/dist/operator/film.d.ts +3 -11
- package/dist/operator/film.d.ts.map +1 -1
- package/dist/operator/film.js +8 -90
- package/dist/operator/film.js.map +1 -1
- package/dist/operator/init.d.ts.map +1 -1
- package/dist/operator/init.js +41 -49
- package/dist/operator/init.js.map +1 -1
- package/dist/operator/live.js +1 -1
- package/dist/operator/live.js.map +1 -1
- package/dist/operator/log.js +3 -4
- package/dist/operator/log.js.map +1 -1
- package/dist/operator/release.d.ts +2 -2
- package/dist/operator/release.js +7 -7
- package/dist/operator/release.js.map +1 -1
- package/dist/operator/run.d.ts +25 -0
- package/dist/operator/run.d.ts.map +1 -0
- package/dist/operator/run.js +70 -0
- package/dist/operator/run.js.map +1 -0
- package/dist/operator/setup.d.ts.map +1 -1
- package/dist/operator/setup.js +20 -16
- package/dist/operator/setup.js.map +1 -1
- package/dist/plugins/manager.d.ts +33 -2
- package/dist/plugins/manager.d.ts.map +1 -1
- package/dist/plugins/manager.js +67 -0
- package/dist/plugins/manager.js.map +1 -1
- package/package.json +15 -16
package/dist/loop/journal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/loop/journal.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/loop/journal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAM/C,MAAM,UAAU,WAAW,CAAC,UAAkB;IAC5C,OAAO,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB,EAAE,MAAkB,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;IACpF,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO;QACL,MAAM,CAAC,IAAI;YACT,MAAM,OAAO,GAA4B,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9E,cAAc,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,IAAa,EAAE,KAA8B;IACxE,OAAO;QACL,MAAM,CAAC,IAAI;YACT,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAa,EACb,OAAO,GAAG,MAAM,EAChB,MAAoB,IAAI,CAAC,GAAG;IAE5B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;IACnB,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACvC,MAAM,GAAG,CAAC,CAAC;QACX,MAAM,GAAG,GAAG,EAAE,CAAC;IACjB,CAAC,CAAC;IACF,OAAO;QACL,MAAM,CAAC,IAAI;YACT,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC1B,iEAAiE;gBACjE,MAAM,IAAI,CAAC,CAAC;gBACZ,IAAI,GAAG,EAAE,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC9B,KAAK,EAAE,CAAC;gBACV,CAAC;gBACD,OAAO;YACT,CAAC;YACD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,uEAAuE;gBACvE,uEAAuE;gBACvE,4DAA4D;gBAC5D,OAAO;YACT,CAAC;YACD,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,SAAS,aAAa,CAAC,IAA6B;IAClD,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC;AAC1F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,SAAiB;IAEjB,MAAM,IAAI,GAAG,GAAG,SAAS,GAAG,KAAK,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IACxC,MAAM,KAAK,GAA8B,EAAE,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5E,KAAK,CAAC,IAAI,CAAC,MAAiC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iFAAiF;QACnF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AAC7C,CAAC"}
|
package/dist/loop/lock.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* One `run` or `cancel` per ledger.
|
|
3
3
|
*
|
|
4
4
|
* Two processes on the same ledger both listen, both drive, and both report: the
|
|
5
|
-
* tracker hears everything twice and the
|
|
5
|
+
* tracker hears everything twice and the ticket is folded by whichever got
|
|
6
6
|
* there first. A lock file names the process that holds the ledger; a second
|
|
7
7
|
* command refuses to start, unless that process is gone.
|
|
8
8
|
*/
|
package/dist/loop/lock.js
CHANGED
|
@@ -5,7 +5,7 @@ import { PRODUCT } from "@bluewombat/manager-kit";
|
|
|
5
5
|
* One `run` or `cancel` per ledger.
|
|
6
6
|
*
|
|
7
7
|
* Two processes on the same ledger both listen, both drive, and both report: the
|
|
8
|
-
* tracker hears everything twice and the
|
|
8
|
+
* tracker hears everything twice and the ticket is folded by whichever got
|
|
9
9
|
* there first. A lock file names the process that holds the ledger; a second
|
|
10
10
|
* command refuses to start, unless that process is gone.
|
|
11
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-host.d.ts","sourceRoot":"","sources":["../../src/loop/open-host.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"open-host.d.ts","sourceRoot":"","sources":["../../src/loop/open-host.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AActD,OAAO,EAAiB,KAAK,OAAO,EAAiC,MAAM,cAAc,CAAC;AAG1F,OAAO,EAAE,KAAK,IAAI,EAAgB,MAAM,WAAW,CAAC;AAMpD,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAqBtD,kFAAkF;AAClF,MAAM,MAAM,YAAY,GAAG;IACzB,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAsB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuO3F"}
|
package/dist/loop/open-host.js
CHANGED
|
@@ -8,10 +8,11 @@ import { openWorkLedger } from "@bluewombat/work-ledger";
|
|
|
8
8
|
import { DEFAULT_PERSIST } from "../config/defaults.js";
|
|
9
9
|
import { homeOf } from "../config/home.js";
|
|
10
10
|
import { resolveIsolationStrategy } from "../plugins/isolation.js";
|
|
11
|
-
import { contextOf, loadManagerModule } from "../plugins/manager.js";
|
|
11
|
+
import { contextOf, loadManagerModule, openManagers, requestOf, } from "../plugins/manager.js";
|
|
12
12
|
import { resolvePersistModule } from "../plugins/persist.js";
|
|
13
13
|
import { openAuthority } from "./authority.js";
|
|
14
|
-
import {
|
|
14
|
+
import { releaseTicket } from "./deliveries.js";
|
|
15
|
+
import { cancelKey } from "./features.js";
|
|
15
16
|
import { coalesceQuiet, openJournalFile, stampJournal } from "./journal.js";
|
|
16
17
|
import { acquireLock } from "./lock.js";
|
|
17
18
|
import { openStreams } from "./streams.js";
|
|
@@ -20,8 +21,6 @@ import { openTrace } from "./trace.js";
|
|
|
20
21
|
import { createTransformers } from "./transformers.js";
|
|
21
22
|
import { openWarm } from "./warm.js";
|
|
22
23
|
import { inspectWorkLine, materializeWorkLine, resolveWorkLine } from "./work-line.js";
|
|
23
|
-
const DEFAULT_MAX_UNITS = 10;
|
|
24
|
-
const DEFAULT_MAX_FEATURE_BYTES = 65_536;
|
|
25
24
|
/**
|
|
26
25
|
* Which build of Host is running, for the line that opens the film.
|
|
27
26
|
*
|
|
@@ -58,19 +57,22 @@ export async function openHost(options, deps = {}) {
|
|
|
58
57
|
if (!backend.ok) {
|
|
59
58
|
throw new Error(backend.reason);
|
|
60
59
|
}
|
|
61
|
-
const
|
|
62
|
-
manager: options.manager,
|
|
63
|
-
managerOptions: options.managerOptions ?? {},
|
|
60
|
+
const common = {
|
|
64
61
|
configDir,
|
|
65
62
|
durationMs: options.timeoutMs,
|
|
66
63
|
interruptFlag,
|
|
67
64
|
env: options.env ?? process.env,
|
|
68
65
|
};
|
|
69
|
-
|
|
66
|
+
// The Authority lives with the Tickets, so that is the side that names the
|
|
67
|
+
// reference work line.
|
|
68
|
+
const trackerRequest = requestOf(options.ticketTracker, common);
|
|
69
|
+
const loaded = await loadManagerModule(trackerRequest);
|
|
70
70
|
if (!loaded.ok) {
|
|
71
71
|
throw new Error(loaded.reason);
|
|
72
72
|
}
|
|
73
|
-
const managerName = typeof options.
|
|
73
|
+
const managerName = typeof options.ticketTracker.package === "string"
|
|
74
|
+
? options.ticketTracker.package
|
|
75
|
+
: "the ticket tracker";
|
|
74
76
|
// Whose directory the work line is, settled before anything is written. A
|
|
75
77
|
// reference the manager names is read by the strategy — strictly, since the
|
|
76
78
|
// two agree on words nothing checks at compile time — and Host's copy of it
|
|
@@ -82,7 +84,7 @@ export async function openHost(options, deps = {}) {
|
|
|
82
84
|
branch: options.workLineBranch,
|
|
83
85
|
manager: managerName,
|
|
84
86
|
wantsAuthority: options.authority?.enabled === true,
|
|
85
|
-
reference: loaded.module.referenceManager?.(contextOf(
|
|
87
|
+
reference: loaded.module.referenceManager?.(contextOf(trackerRequest)),
|
|
86
88
|
strategy: resolved.strategy,
|
|
87
89
|
strategyName: resolved.specifier,
|
|
88
90
|
});
|
|
@@ -144,35 +146,30 @@ export async function openHost(options, deps = {}) {
|
|
|
144
146
|
trace,
|
|
145
147
|
journal,
|
|
146
148
|
...(streams === undefined ? {} : { streams }),
|
|
147
|
-
planner: options.planner,
|
|
148
149
|
builder: options.builder,
|
|
149
150
|
assembly: options.assembly,
|
|
150
|
-
workLineStable: stable,
|
|
151
151
|
isolation: resolved.strategy.isolation,
|
|
152
152
|
fold: resolved.strategy.fold,
|
|
153
153
|
timeoutMs: options.timeoutMs,
|
|
154
154
|
interruptFlag,
|
|
155
|
-
maxUnits: DEFAULT_MAX_UNITS,
|
|
156
|
-
maxFeatureBytes: DEFAULT_MAX_FEATURE_BYTES,
|
|
157
155
|
});
|
|
158
156
|
const hostOptions = { ...options, interruptFlag };
|
|
159
|
-
const
|
|
160
|
-
if (!
|
|
161
|
-
throw new Error(
|
|
157
|
+
const opened = await openManagers({ featureTracker: options.featureTracker, ticketTracker: options.ticketTracker }, common);
|
|
158
|
+
if (!opened.ok) {
|
|
159
|
+
throw new Error(opened.reason);
|
|
162
160
|
}
|
|
163
|
-
const
|
|
161
|
+
const { features, tickets } = opened;
|
|
164
162
|
// Declared, never inferred: a Project has an Authority because it says so,
|
|
165
163
|
// not because a directory happens to look a certain way. Disabled, the
|
|
166
|
-
// assembled
|
|
164
|
+
// assembled ticket is folded into WorkLineStable and that fold is final.
|
|
167
165
|
const wantsAuthority = options.authority?.enabled === true;
|
|
168
166
|
if (wantsAuthority && target === undefined) {
|
|
169
167
|
throw new Error('authority.enabled is true, but "workLine.branch" does not say which work line the work is offered to.');
|
|
170
168
|
}
|
|
171
169
|
const authority = wantsAuthority && options.authority !== undefined && target !== undefined
|
|
172
170
|
? openAuthority({
|
|
173
|
-
manager,
|
|
171
|
+
manager: tickets,
|
|
174
172
|
workLineStable: stable,
|
|
175
|
-
workLineTarget: target,
|
|
176
173
|
publishArgv: options.authority.publishArgv,
|
|
177
174
|
timeoutMs: options.timeoutMs,
|
|
178
175
|
refOf: resolved.strategy.refOf ?? ((id) => id),
|
|
@@ -222,7 +219,9 @@ export async function openHost(options, deps = {}) {
|
|
|
222
219
|
},
|
|
223
220
|
ledger,
|
|
224
221
|
conductor,
|
|
225
|
-
|
|
222
|
+
features,
|
|
223
|
+
tickets,
|
|
224
|
+
transformers,
|
|
226
225
|
journal,
|
|
227
226
|
...(streams === undefined ? {} : { streams }),
|
|
228
227
|
trace,
|
|
@@ -235,8 +234,8 @@ export async function openHost(options, deps = {}) {
|
|
|
235
234
|
conductor,
|
|
236
235
|
runOnce: () => runOnce(ctx),
|
|
237
236
|
run: () => run(ctx),
|
|
238
|
-
cancel: (key) =>
|
|
239
|
-
release: (key) =>
|
|
237
|
+
cancel: (key) => cancelKey(ctx, key),
|
|
238
|
+
release: (key) => releaseTicket(ctx, key),
|
|
240
239
|
// The film closes before the lock does: whoever reads it next has to be
|
|
241
240
|
// able to tell a run that ended from one whose process was killed, and the
|
|
242
241
|
// absence of this line is the only way to say the second.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-host.js","sourceRoot":"","sources":["../../src/loop/open-host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,
|
|
1
|
+
{"version":3,"file":"open-host.js","sourceRoot":"","sources":["../../src/loop/open-host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EACL,SAAS,EACT,iBAAiB,EAEjB,YAAY,EACZ,SAAS,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAgB,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAgB,MAAM,cAAc,CAAC;AACzD,OAAO,EAAa,GAAG,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAMvF;;;;;;;GAOG;AACH,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACnE,MAAM,OAAO,GAAI,MAAgC,CAAC,OAAO,CAAC;QAC1D,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAoB,EAAE,OAAqB,EAAE;IAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IACtE,MAAM,KAAK,GAAG,SAAS,CACrB,OAAO,CAAC,KAAK;QACX,CAAC,CAAC,IAAY,EAAE,EAAE;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CACL,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAC7C,OAAO,CAAC,iBAAiB,EACzB,SAAS,EACT,OAAO,CAAC,wBAAwB,CACjC,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACnE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,MAAM,GAAuD;QACjE,SAAS;QACT,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,aAAa;QACb,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG;KAChC,CAAC;IACF,2EAA2E;IAC3E,uBAAuB;IACvB,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,cAAc,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,WAAW,GACf,OAAO,OAAO,CAAC,aAAa,CAAC,OAAO,KAAK,QAAQ;QAC/C,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO;QAC/B,CAAC,CAAC,oBAAoB,CAAC;IAE3B,0EAA0E;IAC1E,4EAA4E;IAC5E,4EAA4E;IAC5E,yEAAyE;IACzE,wCAAwC;IACxC,MAAM,QAAQ,GAAG,eAAe,CAAC;QAC/B,IAAI;QACJ,MAAM,EAAE,OAAO,CAAC,cAAc;QAC9B,MAAM,EAAE,OAAO,CAAC,cAAc;QAC9B,OAAO,EAAE,WAAW;QACpB,cAAc,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI;QACnD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACtE,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,YAAY,EAAE,QAAQ,CAAC,SAAS;KACjC,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,KAAK,CAAC,qBAAqB,QAAQ,CAAC,SAAS,CAAC,OAAO,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,4EAA4E;IAC5E,uEAAuE;IACvE,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IACnF,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CACb,yBAAyB,KAAK,CAAC,MAAM,4BAA4B,MAAM,0CAA0C,CAClH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3C,6EAA6E;IAC7E,uEAAuE;IACvE,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,2EAA2E;IAC3E,sDAAsD;IACtD,MAAM,OAAO,GAAG,aAAa,CAC3B,YAAY,CAAC,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CACrF,CAAC;IACF,OAAO,CAAC,MAAM,CAAC;QACb,KAAK,EAAE,cAAc;QACrB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,WAAW,EAAE;QACtB,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,OAAO,CAAC,UAAU;QAC/B,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;KAC9E,CAAC,CAAC;IACH,2EAA2E;IAC3E,0EAA0E;IAC1E,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC;IACnD,MAAM,OAAO,GACX,WAAW,EAAE,OAAO,KAAK,IAAI;QAC3B,CAAC,CAAC,WAAW,CAAC;YACV,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;YAC7C,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAC9C,OAAO;SACR,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,YAAY,GAAG,kBAAkB,CAAC;QACtC,KAAK;QACL,OAAO;QACP,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS;QACtC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,aAAa;KACd,CAAC,CAAC;IACH,MAAM,WAAW,GAAgB,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,EAChF,MAAM,CACP,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAErC,2EAA2E;IAC3E,uEAAuE;IACvE,yEAAyE;IACzE,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3D,IAAI,cAAc,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,uGAAuG,CACxG,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GACb,cAAc,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QACvE,CAAC,CAAC,aAAa,CAAC;YACZ,OAAO,EAAE,OAAO;YAChB,cAAc,EAAE,MAAM;YACtB,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW;YAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;YAC9C,GAAG,EAAE,WAAW;YAChB,QAAQ,EACN,OAAO,CAAC,SAAS,CAAC,YAAY,KAAK,SAAS;gBAC1C,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE;YAC3E,OAAO;SACR,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAChB,0EAA0E;IAC1E,yDAAyD;IACzD,IAAI,cAAc,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,GAAG,WAAW,oIAAoI,CACnJ,CAAC;IACJ,CAAC;IACD,8EAA8E;IAC9E,mEAAmE;IACnE,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,MAAM,IAAI,GACR,OAAO,CAAC,YAAY,KAAK,SAAS;QAChC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,QAAQ,CAAC;YACP,IAAI,EAAE,OAAO,CAAC,YAAY;YAC1B,aAAa;YACb,KAAK;YACL,OAAO;SACR,CAAC,CAAC;IACT,MAAM,SAAS,GAAG,aAAa,CAAC;QAC9B,MAAM;QACN,YAAY;QACZ,cAAc,EAAE,MAAM;QACtB,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,qBAAqB,EAAE,OAAO,CAAC,SAAS;QACxC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;QAC9C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QACjD,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QAClF,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS;QACzD,mBAAmB,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,SAAS;QACvD,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;KACxC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAiB;QACxB,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE;YACR,MAAM;YACN,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;YAC3C,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;SAC3D;QACD,MAAM;QACN,SAAS;QACT,QAAQ;QACR,OAAO;QACP,YAAY;QACZ,OAAO;QACP,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7C,KAAK;QACL,OAAO;QACP,IAAI,EAAE,IAAI,GAAG,EAAE;QACf,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;KAClD,CAAC;IAEF,OAAO;QACL,MAAM;QACN,SAAS;QACT,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;QAC3B,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;QACnB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;QACpC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;QACzC,wEAAwE;QACxE,2EAA2E;QAC3E,0DAA0D;QAC1D,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5D,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/loop/probe.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { HostDeliveryInput } from "./context.js";
|
|
2
2
|
/**
|
|
3
|
-
* Ask the
|
|
3
|
+
* Ask the trackers whether what Host already holds is still there.
|
|
4
4
|
*
|
|
5
5
|
* A poll cannot see an absence: a deleted item never appears again. `gone` is
|
|
6
6
|
* the same abandon as a `cancel` delivery. `unavailable` is not.
|
package/dist/loop/probe.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../../src/loop/probe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../../src/loop/probe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAiCtD;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,iBAAiB,EACxB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAoDxB"}
|
package/dist/loop/probe.js
CHANGED
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
import { handleCancel } from "./deliveries.js";
|
|
2
|
+
import { cancelFeatureFlow } from "./features.js";
|
|
2
3
|
/**
|
|
3
4
|
* States abandon is still legal for. `merging` is the point of no return;
|
|
4
|
-
* terminal
|
|
5
|
+
* terminal ones are not holding a Project.
|
|
5
6
|
*/
|
|
6
|
-
const
|
|
7
|
+
const ABANDONABLE_TICKET = new Set([
|
|
7
8
|
"received",
|
|
8
|
-
"planning",
|
|
9
9
|
"running",
|
|
10
10
|
"escalated",
|
|
11
11
|
"integrating",
|
|
12
12
|
"submitted",
|
|
13
13
|
]);
|
|
14
|
+
const ABANDONABLE_FEATURE = new Set([
|
|
15
|
+
"waiting",
|
|
16
|
+
"open",
|
|
17
|
+
"submitted",
|
|
18
|
+
"escalated",
|
|
19
|
+
]);
|
|
14
20
|
/**
|
|
15
21
|
* Listen outcomes that never reached the tracker. Probing after one of these
|
|
16
|
-
* would read a dead token as
|
|
22
|
+
* would read a dead token as everything disappearing.
|
|
17
23
|
*/
|
|
18
24
|
const LISTEN_MISSED_SOURCE = new Set([
|
|
19
25
|
"source-lost",
|
|
@@ -21,36 +27,59 @@ const LISTEN_MISSED_SOURCE = new Set([
|
|
|
21
27
|
"invalid-invocation",
|
|
22
28
|
]);
|
|
23
29
|
/**
|
|
24
|
-
* Ask the
|
|
30
|
+
* Ask the trackers whether what Host already holds is still there.
|
|
25
31
|
*
|
|
26
32
|
* A poll cannot see an absence: a deleted item never appears again. `gone` is
|
|
27
33
|
* the same abandon as a `cancel` delivery. `unavailable` is not.
|
|
28
34
|
*/
|
|
29
35
|
export async function abandonGone(input, listenOutcome) {
|
|
30
|
-
if (
|
|
36
|
+
if (LISTEN_MISSED_SOURCE.has(listenOutcome)) {
|
|
31
37
|
return "ok";
|
|
32
38
|
}
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
const interrupted = () => input.options.interruptFlag?.interrupted === true;
|
|
40
|
+
if (input.features.probe !== undefined) {
|
|
41
|
+
for (const summary of await input.ledger.listFeatures()) {
|
|
42
|
+
if (interrupted()) {
|
|
43
|
+
return "stop";
|
|
44
|
+
}
|
|
45
|
+
if (!ABANDONABLE_FEATURE.has(summary.state)) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const outcome = await input.features.probe(summary.key);
|
|
49
|
+
if (outcome === "interrupted") {
|
|
50
|
+
return "stop";
|
|
51
|
+
}
|
|
52
|
+
if (outcome === "unavailable") {
|
|
53
|
+
input.journal.append({ event: "probed", key: summary.key, outcome });
|
|
54
|
+
}
|
|
55
|
+
if (outcome === "gone") {
|
|
56
|
+
input.journal.append({ event: "probed", key: summary.key, outcome: "gone" });
|
|
57
|
+
input.trace(`gone ${summary.key}`);
|
|
58
|
+
await cancelFeatureFlow(input, summary.key);
|
|
59
|
+
}
|
|
44
60
|
}
|
|
45
|
-
|
|
61
|
+
}
|
|
62
|
+
if (input.tickets.probe !== undefined) {
|
|
63
|
+
for (const summary of await input.ledger.list()) {
|
|
64
|
+
if (interrupted()) {
|
|
65
|
+
return "stop";
|
|
66
|
+
}
|
|
67
|
+
if (!ABANDONABLE_TICKET.has(summary.state)) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
const outcome = await input.tickets.probe(summary.key);
|
|
71
|
+
if (outcome === "interrupted") {
|
|
72
|
+
return "stop";
|
|
73
|
+
}
|
|
46
74
|
if (outcome === "unavailable") {
|
|
47
75
|
input.journal.append({ event: "probed", key: summary.key, outcome });
|
|
48
76
|
}
|
|
49
|
-
|
|
77
|
+
if (outcome === "gone") {
|
|
78
|
+
input.journal.append({ event: "probed", key: summary.key, outcome: "gone" });
|
|
79
|
+
input.trace(`gone ${summary.key}`);
|
|
80
|
+
await handleCancel({ key: summary.key, project: summary.project }, input);
|
|
81
|
+
}
|
|
50
82
|
}
|
|
51
|
-
input.journal.append({ event: "probed", key: summary.key, outcome: "gone" });
|
|
52
|
-
input.trace(`gone ${summary.key}`);
|
|
53
|
-
await handleCancel({ key: summary.key, project: summary.project }, input);
|
|
54
83
|
}
|
|
55
84
|
return "ok";
|
|
56
85
|
}
|
package/dist/loop/probe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/loop/probe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/loop/probe.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ export declare function ownGroup(): {
|
|
|
5
5
|
};
|
|
6
6
|
/**
|
|
7
7
|
* Remember a running child so it does not outlive this process: a group of its
|
|
8
|
-
* own
|
|
8
|
+
* own does not share the terminal's Ctrl-C, nor die by accident with us.
|
|
9
9
|
* Forgotten on its own once it closes.
|
|
10
10
|
*/
|
|
11
11
|
export declare function track(child: ChildProcess): void;
|
|
@@ -35,7 +35,7 @@ export function ownGroup() {
|
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* Remember a running child so it does not outlive this process: a group of its
|
|
38
|
-
* own
|
|
38
|
+
* own does not share the terminal's Ctrl-C, nor die by accident with us.
|
|
39
39
|
* Forgotten on its own once it closes.
|
|
40
40
|
*/
|
|
41
41
|
export function track(child) {
|
package/dist/loop/report.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ConductorMoment, ProjectRunResult } from "@bluewombat/conductor";
|
|
2
2
|
import type { EventFields, EventName } from "@bluewombat/manager-kit";
|
|
3
|
-
import type {
|
|
3
|
+
import type { TicketAggregate } from "@bluewombat/work-ledger";
|
|
4
4
|
import type { HostDeliveryInput } from "./context.js";
|
|
5
5
|
import type { Journal } from "./journal.js";
|
|
6
6
|
/**
|
|
@@ -8,9 +8,9 @@ import type { Journal } from "./journal.js";
|
|
|
8
8
|
* once: the id names the fact, and a pass that sees it again says nothing.
|
|
9
9
|
*/
|
|
10
10
|
export declare function reportMoment(input: HostDeliveryInput, moment: ConductorMoment): Promise<void>;
|
|
11
|
-
export declare function reportAfterRun(input: HostDeliveryInput, run: ProjectRunResult, aggregate:
|
|
12
|
-
export declare function resumePointOf(aggregate:
|
|
13
|
-
export declare function pushReport(input: Pick<HostDeliveryInput, "
|
|
11
|
+
export declare function reportAfterRun(input: HostDeliveryInput, run: ProjectRunResult, aggregate: TicketAggregate): Promise<void>;
|
|
12
|
+
export declare function resumePointOf(aggregate: TicketAggregate): "running" | "integrating";
|
|
13
|
+
export declare function pushReport(input: Pick<HostDeliveryInput, "features" | "tickets" | "reported" | "journal"> & {
|
|
14
14
|
said?: Set<string>;
|
|
15
15
|
}, report: {
|
|
16
16
|
event: EventName;
|
|
@@ -18,9 +18,11 @@ export declare function pushReport(input: Pick<HostDeliveryInput, "manager" | "r
|
|
|
18
18
|
project: string;
|
|
19
19
|
fields: EventFields;
|
|
20
20
|
eventId?: string;
|
|
21
|
-
}
|
|
21
|
+
},
|
|
22
|
+
/** Whose Thread it goes to: a Ticket's tracker by default, a Feature's manager when named. */
|
|
23
|
+
to?: "tickets" | "features"): Promise<void>;
|
|
22
24
|
/**
|
|
23
25
|
* One Host line per Project we drove: the outcome, and a heartbeat while it waits.
|
|
24
26
|
*/
|
|
25
|
-
export declare function
|
|
27
|
+
export declare function journalTicket(journal: Journal, outcome: string, aggregate: TicketAggregate, said?: Set<string>): void;
|
|
26
28
|
//# sourceMappingURL=report.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/loop/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/loop/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAM5C;;;GAGG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CA+Ff;AAiID,wBAAgB,aAAa,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS,GAAG,aAAa,CAWnF;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,GAAG;IAChF,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACpB,EACD,MAAM,EAAE;IACN,KAAK,EAAE,SAAS,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,8FAA8F;AAC9F,EAAE,GAAE,SAAS,GAAG,UAAsB,GACrC,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,eAAe,EAC1B,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACjB,IAAI,CA0CN"}
|