@usine/server 0.3.0 → 0.4.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/LICENSE +661 -21
- package/README.md +22 -4
- package/dist/backend.d.ts +3 -1
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +5 -1
- package/dist/backend.js.map +1 -1
- package/dist/backup.d.ts +3 -3
- package/dist/backup.d.ts.map +1 -1
- package/dist/backup.js +3 -5
- package/dist/backup.js.map +1 -1
- package/dist/cli.d.ts +58 -5
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +216 -17
- package/dist/cli.js.map +1 -1
- package/dist/command.d.ts +22 -0
- package/dist/command.d.ts.map +1 -0
- package/dist/command.js +51 -0
- package/dist/command.js.map +1 -0
- package/dist/detach.d.ts +83 -0
- package/dist/detach.d.ts.map +1 -0
- package/dist/detach.js +320 -0
- package/dist/detach.js.map +1 -0
- package/dist/failure-message.d.ts +7 -1
- package/dist/failure-message.d.ts.map +1 -1
- package/dist/failure-message.js +71 -2
- package/dist/failure-message.js.map +1 -1
- package/dist/http.d.ts +14 -5
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +25 -13
- package/dist/http.js.map +1 -1
- package/dist/instance/environment.d.ts +17 -0
- package/dist/instance/environment.d.ts.map +1 -0
- package/dist/instance/environment.js +51 -0
- package/dist/instance/environment.js.map +1 -0
- package/dist/instance/id.d.ts +17 -0
- package/dist/instance/id.d.ts.map +1 -0
- package/dist/instance/id.js +35 -0
- package/dist/instance/id.js.map +1 -0
- package/dist/{instance-lock.d.ts → instance/lock.d.ts} +9 -5
- package/dist/instance/lock.d.ts.map +1 -0
- package/dist/instance/lock.js +127 -0
- package/dist/instance/lock.js.map +1 -0
- package/dist/instance/manifest.d.ts +52 -0
- package/dist/instance/manifest.d.ts.map +1 -0
- package/dist/instance/manifest.js +131 -0
- package/dist/instance/manifest.js.map +1 -0
- package/dist/instance/operator-api.d.ts +30 -0
- package/dist/instance/operator-api.d.ts.map +1 -0
- package/dist/instance/operator-api.js +47 -0
- package/dist/instance/operator-api.js.map +1 -0
- package/dist/instance/ports.d.ts +23 -0
- package/dist/instance/ports.d.ts.map +1 -0
- package/dist/instance/ports.js +81 -0
- package/dist/instance/ports.js.map +1 -0
- package/dist/instance/record.d.ts +82 -0
- package/dist/instance/record.d.ts.map +1 -0
- package/dist/instance/record.js +116 -0
- package/dist/instance/record.js.map +1 -0
- package/dist/instance/state.d.ts +45 -0
- package/dist/instance/state.d.ts.map +1 -0
- package/dist/instance/state.js +79 -0
- package/dist/instance/state.js.map +1 -0
- package/dist/instance/systemd.d.ts +36 -0
- package/dist/instance/systemd.d.ts.map +1 -0
- package/dist/instance/systemd.js +61 -0
- package/dist/instance/systemd.js.map +1 -0
- package/dist/logger.d.ts +3 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +27 -0
- package/dist/logger.js.map +1 -0
- package/dist/main.js +35 -9
- package/dist/main.js.map +1 -1
- package/dist/registry.d.ts +20 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +37 -0
- package/dist/registry.js.map +1 -0
- package/dist/restart.d.ts +19 -0
- package/dist/restart.d.ts.map +1 -0
- package/dist/restart.js +105 -0
- package/dist/restart.js.map +1 -0
- package/dist/status.d.ts +12 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +99 -0
- package/dist/status.js.map +1 -0
- package/dist/stop.d.ts +81 -0
- package/dist/stop.d.ts.map +1 -0
- package/dist/stop.js +195 -0
- package/dist/stop.js.map +1 -0
- package/dist/system-sleep.d.ts +9 -0
- package/dist/system-sleep.d.ts.map +1 -0
- package/dist/system-sleep.js +42 -0
- package/dist/system-sleep.js.map +1 -0
- package/dist/tracing.d.ts +22 -0
- package/dist/tracing.d.ts.map +1 -0
- package/dist/tracing.js +61 -0
- package/dist/tracing.js.map +1 -0
- package/dist/up.d.ts +2 -2
- package/dist/up.d.ts.map +1 -1
- package/dist/up.js +41 -16
- package/dist/up.js.map +1 -1
- package/dist/upgrade.d.ts +58 -0
- package/dist/upgrade.d.ts.map +1 -0
- package/dist/upgrade.js +237 -0
- package/dist/upgrade.js.map +1 -0
- package/dist/web/assets/CompositeItem-DU6IyNMY.js +1 -0
- package/dist/web/assets/ToolbarRootContext-Cytu6o2e.js +1 -0
- package/dist/web/assets/X.es-B7iqdxa_.js +1 -0
- package/dist/web/assets/_agent-BVKD5odk.js +1 -0
- package/dist/web/assets/_loop-BFLzamuo.js +1 -0
- package/dist/web/assets/_name-Bh4AQ9sR.js +6 -0
- package/dist/web/assets/_name-CMVsmWzq.js +1 -0
- package/dist/web/assets/_name-DCkgEma_.js +1 -0
- package/dist/web/assets/_name-Ds_pWi15.js +1 -0
- package/dist/web/assets/_number-B9aYwvcQ.js +1 -0
- package/dist/web/assets/_run-BZWt47QS.js +8 -0
- package/dist/web/assets/_worker-Dgfufm5p.js +1 -0
- package/dist/web/assets/action-rCd1FeAz.js +1 -0
- package/dist/web/assets/agents-Drbg6qpH.js +1 -0
- package/dist/web/assets/agents-_6-dEjrY.js +1 -0
- package/dist/web/assets/button-DVWXde__.js +1 -0
- package/dist/web/assets/collapsible-IOhZV1qg.js +1 -0
- package/dist/web/assets/{core-BUmsKffF.js → core-wi-Hu_JV.js} +1 -1
- package/dist/web/assets/drawer-BiqnR_8i.js +1 -0
- package/dist/web/assets/dropdown-menu-C9D1kRkO.js +1 -0
- package/dist/web/assets/edit-and-retry-BgOR6mvP.js +1 -0
- package/dist/web/assets/error-alert-9tKpTE3v.js +1 -0
- package/dist/web/assets/file-error-SjG2jLJ9.js +1 -0
- package/dist/web/assets/fill-cell-ClM88KFD.js +1 -0
- package/dist/web/assets/heading-lX1a1LNN.js +1 -0
- package/dist/web/assets/index-BymNZU1Q.js +10 -0
- package/dist/web/assets/index-Dyjfp3ET.css +2 -0
- package/dist/web/assets/label-badge-aIGT1Bry.js +1 -0
- package/dist/web/assets/list-v8WJp2Eq.js +1 -0
- package/dist/web/assets/loops-BFoFf_og.js +1 -0
- package/dist/web/assets/mark-CC3RwMy_.js +1 -0
- package/dist/web/assets/{markdown-D07-JkYB.js → markdown-BnyfnuCL.js} +4 -4
- package/dist/web/assets/matchContext-BquevSJS.js +2 -0
- package/dist/web/assets/model-BerBT6R0.js +1 -0
- package/dist/web/assets/moves-Dg9sshX5.js +1 -0
- package/dist/web/assets/overview-C_tFKGZ8.js +1 -0
- package/dist/web/assets/page-DWnGi6wA.js +301 -0
- package/dist/web/assets/project-not-found-CodaBVdu.js +1 -0
- package/dist/web/assets/pull-request-marks-DE00nqGW.js +1 -0
- package/dist/web/assets/queries-B1SHA_r4.js +1 -0
- package/dist/web/assets/reload-Dsl0zjJ7.js +1 -0
- package/dist/web/assets/repositories-BdxmD192.js +1 -0
- package/dist/web/assets/repositories-D4wYJfa_.js +1 -0
- package/dist/web/assets/route-B_gphTYG.js +1 -0
- package/dist/web/assets/route-Cc7dKnn5.js +1 -0
- package/dist/web/assets/routes-BLy5TGH_.js +65 -0
- package/dist/web/assets/run-again-BTKagSXR.js +1 -0
- package/dist/web/assets/section-B3pWIIBa.js +1 -0
- package/dist/web/assets/section-CD-MB5r3.js +1 -0
- package/dist/web/assets/section-Id99HktI.js +1 -0
- package/dist/web/assets/settings-YrDysQXW.js +1 -0
- package/dist/web/assets/slots-BraHmbNr.js +1 -0
- package/dist/web/assets/status-badge-DnvNo1tG.js +1 -0
- package/dist/web/assets/strings-CW2XaR5f.js +1 -0
- package/dist/web/assets/table-BjyI4fVI.js +1 -0
- package/dist/web/assets/tasks-DCL8kLmD.js +1 -0
- package/dist/web/assets/transcript-sxRJzx6t.js +5 -0
- package/dist/web/assets/usage-CLQJdX9-.js +1 -0
- package/dist/web/assets/use-now-0P8TUXeg.js +1 -0
- package/dist/web/assets/useAnchoredPopupScrollLock-CQ83Wy-r.js +1 -0
- package/dist/web/assets/useNavigate-BW1WdocJ.js +1 -0
- package/dist/web/assets/usePositioner-rNCxnHO-.js +1 -0
- package/dist/web/assets/useTimeout-_TcdZXP6.js +1 -0
- package/dist/web/assets/with-selector-DoElmmtd.js +1 -0
- package/dist/web/assets/workers-BH5CBOR3.js +1 -0
- package/dist/web/index.html +15 -12
- package/package.json +16 -15
- package/dist/instance-lock.d.ts.map +0 -1
- package/dist/instance-lock.js +0 -58
- package/dist/instance-lock.js.map +0 -1
- package/dist/web/assets/DialogTitle-DrHlwOSg.js +0 -1
- package/dist/web/assets/_agent-cBqm12lE.js +0 -1
- package/dist/web/assets/_loop-kf1h3qkS.js +0 -1
- package/dist/web/assets/_name-CKWcxUh0.js +0 -2
- package/dist/web/assets/_name-DCEDRHnF.js +0 -1
- package/dist/web/assets/_name-sJkGyn7O.js +0 -1
- package/dist/web/assets/_number-DbgcVg1N.js +0 -1
- package/dist/web/assets/_run-DqslP0y6.js +0 -8
- package/dist/web/assets/_worker-CH4UoJT_.js +0 -1
- package/dist/web/assets/action-DYT048Jm.js +0 -1
- package/dist/web/assets/agents-DIZolb0U.js +0 -1
- package/dist/web/assets/agents-DMhSMb9O.js +0 -1
- package/dist/web/assets/button-C4yvcSko.js +0 -2
- package/dist/web/assets/copy-BM1l6IGB.js +0 -1
- package/dist/web/assets/error-alert-BrI00JbQ.js +0 -1
- package/dist/web/assets/file-error-C--_cWuj.js +0 -1
- package/dist/web/assets/index-BljdfRBm.js +0 -10
- package/dist/web/assets/index-YKcAk3No.css +0 -2
- package/dist/web/assets/item-rBBCTV8x.js +0 -1
- package/dist/web/assets/label-badge-ohqvZnY7.js +0 -1
- package/dist/web/assets/loops-CXM3f90o.js +0 -1
- package/dist/web/assets/loops-DWLXyUPN.js +0 -1
- package/dist/web/assets/moves-RiWgdCxQ.js +0 -5
- package/dist/web/assets/operator-copy-DsM7LJx6.js +0 -301
- package/dist/web/assets/outcome-YiIf6xbJ.js +0 -5
- package/dist/web/assets/project-not-found-CQVclgb0.js +0 -1
- package/dist/web/assets/query-DWN8IHdt.js +0 -1
- package/dist/web/assets/repositories-CoTEmYmS.js +0 -1
- package/dist/web/assets/repositories-Cq7zGzNb.js +0 -1
- package/dist/web/assets/rolldown-runtime-XKyaHtl9.js +0 -1
- package/dist/web/assets/route-CE9U74a9.js +0 -1
- package/dist/web/assets/route-DNH2EwHP.js +0 -1
- package/dist/web/assets/routes-XAUJJqfj.js +0 -1
- package/dist/web/assets/run-again-DxjFCuNu.js +0 -1
- package/dist/web/assets/run-drawer-CyjxH5mf.js +0 -1
- package/dist/web/assets/section-BBnBOk-U.js +0 -1
- package/dist/web/assets/section-Cm-j3zHs.js +0 -1
- package/dist/web/assets/section-DkBCDv4D.js +0 -1
- package/dist/web/assets/settings-iZf872O5.js +0 -1
- package/dist/web/assets/status-badge-CNlyvwWL.js +0 -1
- package/dist/web/assets/table-B6NH8hTW.js +0 -1
- package/dist/web/assets/tasks-DhLW-1gg.js +0 -1
- package/dist/web/assets/usage-DPUTTLGs.js +0 -1
- package/dist/web/assets/use-now-CcFZyFvf.js +0 -1
- package/dist/web/assets/useNavigate-lXd3v3E0.js +0 -1
- package/dist/web/assets/usePositioner-WErrA3Ah.js +0 -1
- package/dist/web/assets/useScrollLock-BOb01sL8.js +0 -1
- package/dist/web/assets/useTriggerFocusGuards-B0FItfLc.js +0 -1
- package/dist/web/assets/utils-BEQKLGgi.js +0 -1
- package/dist/web/assets/with-selector-NsM_5qXG.js +0 -1
- package/dist/web/assets/workers-BgocBXT9.js +0 -1
- package/dist/web/assets/workers-Dw2uHY0Y.js +0 -1
package/dist/failure-message.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Match, Option, Schema } from "effect";
|
|
1
|
+
import { Duration, Match, Option, Schema } from "effect";
|
|
2
2
|
const messageOf = Schema.decodeUnknownOption(Schema.Struct({ message: Schema.NonEmptyString }));
|
|
3
3
|
/** Trims `text` and removes a final period, so it can end a sentence. */
|
|
4
4
|
const clause = (text) => text.trim().replace(/\.$/u, "");
|
|
@@ -24,6 +24,38 @@ const backupFailure = (failure, openHint) => {
|
|
|
24
24
|
: `Could not save the backup to ${destination} (${reason}). Check the destination path and permissions. The filesystem must support hard links.`), Match.exhaustive);
|
|
25
25
|
};
|
|
26
26
|
const holderOf = (holder) => Option.match(holder, { onNone: () => "", onSome: (pid) => ` (pid ${pid})` });
|
|
27
|
+
const runList = (runs) => `${runs.length === 1 ? "run" : "runs"} ${runs.join(", ")}`;
|
|
28
|
+
const waitingFor = (runs) => runs.length === 0 ? "" : `, waiting for the running attempts of ${runList(runs)}`;
|
|
29
|
+
/** Returns the command that starts the instance again: its systemd service's, or a background start. */
|
|
30
|
+
const startCommand = (unit) => Option.match(unit, {
|
|
31
|
+
onNone: () => "usine up --detach",
|
|
32
|
+
onSome: (service) => `systemctl start ${service}`,
|
|
33
|
+
});
|
|
34
|
+
const stopTimeout = (command, pid, timeout, runs, unit) => {
|
|
35
|
+
const still = `usine (pid ${pid}) is still stopping after ${Duration.format(timeout)}${waitingFor(runs)}. Its drain continues.`;
|
|
36
|
+
return Match.value(command).pipe(Match.when("stop", () => `${still} Run usine stop again to keep waiting, or usine stop --force to stop without waiting; the next usine up reattaches the running attempts.`), Match.when("restart", () => `usine restart started no new process: ${still} Wait for it with usine stop, then run ${startCommand(unit)}, or run usine restart --force to stop without waiting.`), Match.when("upgrade", () => `usine upgrade left the pin unchanged: ${still} Run usine upgrade again after it exits, or run usine upgrade --force to stop without waiting.`), Match.exhaustive);
|
|
37
|
+
};
|
|
38
|
+
const rollback = (failure) => [
|
|
39
|
+
`To roll back to ${failure.previous}:`,
|
|
40
|
+
`1. ${Option.match(failure.commit, {
|
|
41
|
+
onNone: () => `Set @usine/server back to ${failure.previous} in package.json.`,
|
|
42
|
+
onSome: (commit) => `Run git revert --no-edit ${commit}, or set @usine/server back to ${failure.previous} in package.json.`,
|
|
43
|
+
})}`,
|
|
44
|
+
`2. Run ${failure.packageManager} install.`,
|
|
45
|
+
...Option.toArray(Option.map(failure.backup, (backup) => `3. Move .usine/runtime.sqlite and .usine/durable.sqlite aside with their -wal and -shm files. Copy ${backup} to .usine/runtime.sqlite, and ${backup.replace(/\.sqlite$/u, ".durable.sqlite")}, if it exists, to .usine/durable.sqlite.`)),
|
|
46
|
+
`${Option.isSome(failure.backup) ? 4 : 3}. Run ${startCommand(failure.unit)}.`,
|
|
47
|
+
].join("\n");
|
|
48
|
+
const logLines = (tail) => tail === "" ? "The log is empty." : `The last lines of .usine/usine.log:\n${tail}`;
|
|
49
|
+
/** Returns where to read the output of a start that failed: the service's journal, or the log. */
|
|
50
|
+
const startOutput = (failure) => Option.match(failure.unit, {
|
|
51
|
+
onNone: () => logLines(failure.tail),
|
|
52
|
+
onSome: (unit) => `Read its output with journalctl -u ${unit}.`,
|
|
53
|
+
});
|
|
54
|
+
/** Returns where to check a start that runs but doesn't answer. */
|
|
55
|
+
const stillRuns = (failure) => Option.match(failure.unit, {
|
|
56
|
+
onNone: () => `It still runs: check .usine/usine.log, or stop it with usine stop. ${logLines(failure.tail)}`,
|
|
57
|
+
onSome: (unit) => `It still runs: check journalctl -u ${unit}, or stop it with usine stop.`,
|
|
58
|
+
});
|
|
27
59
|
/**
|
|
28
60
|
* Returns the operator message for a failed CLI command, with the file, setting, Worker, or Run at
|
|
29
61
|
* fault and the next step.
|
|
@@ -31,6 +63,7 @@ const holderOf = (holder) => Option.match(holder, { onNone: () => "", onSome: (p
|
|
|
31
63
|
export const failureMessage = (failure) => Match.valueTags(failure, {
|
|
32
64
|
CliUsageError: ({ message }) => message,
|
|
33
65
|
CliVersionError: ({ cause }) => `Could not read the installed @usine/server version${because(cause)}. Reinstall @usine/server.`,
|
|
66
|
+
EnvironmentFileError: ({ path, reason }) => `usine did nothing: could not read ${path} (${clause(reason)}). usine reads it for the variables that the environment doesn't set. Make it readable, or remove it.`,
|
|
34
67
|
RunNotFoundError: ({ runId }) => `Run ${runId} was not found.`,
|
|
35
68
|
RunExportError: ({ runId, operation, path, reason }) => `Could not ${operation} the evidence for run ${runId} at ${path} (${reason}). Check the instance database, and choose a new writable output path.`,
|
|
36
69
|
RuntimeStoreBackupError: (error) => backupFailure(error, "Run usine backup from the instance folder that contains .usine/runtime.sqlite."),
|
|
@@ -38,8 +71,12 @@ export const failureMessage = (failure) => Match.valueTags(failure, {
|
|
|
38
71
|
VolatileInstanceDirectoryError: ({ directory, root }) => `usine up did not start: ${directory} is inside ${root}, which the OS clears. The runtime store in it is the only copy of every run and transcript. Move the instance folder, or pass --allow-volatile-instance (or set USINE_ALLOW_VOLATILE_INSTANCE=1) to start anyway.`,
|
|
39
72
|
InstanceInUseError: ({ directory, holder }) => `usine up did not start: another usine process${holderOf(holder)} is running in ${directory}. It might still be finishing its attempts. Wait for it to exit, or stop it, then run usine up again.`,
|
|
40
73
|
InstanceLockError: ({ directory, reason }) => `usine up did not start: could not lock ${directory}/.usine/instance.lock (${reason}). Check that the folder is writable.`,
|
|
74
|
+
InstanceIdError: ({ operation, path, reason }) => operation === "create"
|
|
75
|
+
? `usine up did not start: could not create ${path} (${clause(reason)}). Check that the folder is writable.`
|
|
76
|
+
: `usine up did not start: could not read the instance ID in ${path} (${clause(reason)}). Restore the file, or delete it so that usine up creates a new ID. With a new ID, usine no longer removes the attempt containers that it left on SSH workers before; remove those with docker rm.`,
|
|
41
77
|
PortInUseError: ({ port, holder }) => `usine up stopped: port ${port} is already in use${holderOf(holder)}. Stop that process, or run usine up --port <port> with another port.`,
|
|
42
78
|
ServerStartError: ({ port, cause }) => `usine up stopped: could not listen on 127.0.0.1:${port}${because(cause)}. Run usine up --port <port> to use another port.`,
|
|
79
|
+
ResourceAttributesError: ({ variable, message }) => `usine up did not start: ${variable} is invalid: ${clause(message)}. Set it to comma-separated key=value pairs with percent-encoded keys and values, or unset it.`,
|
|
43
80
|
FactoryConfigError: ({ file, stage, message }) => stage === "read"
|
|
44
81
|
? `usine up did not start: could not read ${file} (${clause(message)}). Run usine up from the instance folder, which contains usine.yaml, agents/, and loops/.`
|
|
45
82
|
: `usine up did not start: ${file} is invalid (${stage}): ${clause(message)}. Fix the file and run usine up again.`,
|
|
@@ -49,10 +86,42 @@ export const failureMessage = (failure) => Match.valueTags(failure, {
|
|
|
49
86
|
CredentialUnavailableError: ({ repository, message }) => `usine up stopped: no GitHub access to "${repository}": ${clause(message)}. Check that the GitHub App is installed on "${repository}".`,
|
|
50
87
|
AppAuthenticationError: ({ message }) => `usine up stopped: the GitHub App could not authenticate: ${clause(message)}. Check USINE_GITHUB_APP_ID and USINE_GITHUB_PRIVATE_KEY, or .usine/github-app.json.`,
|
|
51
88
|
EnginePersistenceError: ({ operation, cause }) => `usine up stopped: runtime store error: could not ${operation}${because(cause)}. Check .usine/runtime.sqlite and its folder.`,
|
|
52
|
-
DurableHarnessError: ({ operation, message }) => `usine up
|
|
89
|
+
DurableHarnessError: ({ operation, message }) => `usine up did not start: durable storage error: could not ${operation} (${clause(message)}). Check .usine/durable.sqlite and its folder, then run usine up again.`,
|
|
53
90
|
AttemptCancellationError: ({ attemptId, cause }) => `usine up stopped: attempt ${attemptId} could not be canceled${because(cause)}.`,
|
|
54
91
|
RunOperationRejectedError: ({ runId, operation, state }) => `Cannot ${operation} run ${runId} while it is ${state.toLowerCase()}.`,
|
|
55
92
|
RunRetryBlockedError: ({ message }) => message,
|
|
56
93
|
RunInterventionRejectedError: ({ message }) => message,
|
|
94
|
+
SignalError: ({ pid, signal, reason }) => `Could not send ${signal} to pid ${pid} (${clause(reason)}). Run the command as the user that started usine.`,
|
|
95
|
+
StopTimeoutError: ({ command, pid, timeout, runs, unit }) => stopTimeout(command, pid, timeout, runs, unit),
|
|
96
|
+
KillTimeoutError: ({ command, pid, timeout }) => `usine (pid ${pid}) still runs ${Duration.format(timeout)} after usine ${command} sent it SIGKILL. Check the process with ps -p ${pid}, then run usine ${command} again.`,
|
|
97
|
+
InstanceNotRunningError: ({ command, directory }) => `usine ${command} did nothing: usine is not running in ${directory}. Start it with usine up --detach.`,
|
|
98
|
+
UnrecordedInstanceError: ({ command, directory, pid }) => Option.match(pid, {
|
|
99
|
+
onNone: () => `usine ${command} did nothing: a process holds ${directory}/.usine/instance.lock, but .usine/instance.pid names no running process. Wait for it to finish starting, then run usine ${command} again.`,
|
|
100
|
+
onSome: (holder) => `usine ${command} did nothing: usine (pid ${holder}) runs in ${directory} without a readable .usine/instance.json, so its port and command line are unknown. It is a usine version that doesn't write one, or it is still starting. Stop it with usine stop, then start it with usine up --detach.`,
|
|
101
|
+
}),
|
|
102
|
+
ListeningPortsError: ({ pid, reason }) => `usine restart left the instance running: usine (pid ${pid}) runs without a readable .usine/instance.json, and the ports it listens on are unknown (${clause(reason)}). usine restart can't check its running attempts or gateway variables without them. Run usine restart as the user that started usine, or stop it with usine stop, then start it with usine up --detach.`,
|
|
103
|
+
MissingEnvironmentError: ({ command, variables }) => `usine ${command} left the instance running: neither this shell nor .env sets ${variables.join(", ")}, which the new usine up reads at startup for its ${variables.length === 1 ? "gateway" : "gateways"}. The new process gets the environment of the shell that runs usine ${command}, and reads .env in the instance folder. Add ${variables.length === 1 ? "it" : "them"} to .env, then run usine ${command} again.`,
|
|
104
|
+
LiveAttemptsError: ({ command, runs }) => `usine ${command} left the instance running: ${runList(runs)} ${runs.length === 1 ? "has a running attempt" : "have running attempts"}. Wait for ${runs.length === 1 ? "it" : "them"} to end, or run usine ${command} --force to stop without waiting; the next start reattaches the attempts.`,
|
|
105
|
+
DetachedStartError: ({ outcome, pid, exit, timeout, port, log, tail }) => outcome === "exited"
|
|
106
|
+
? `usine up exited (${Option.getOrElse(exit, () => "unknown status")}) before it listened on port ${port}. ${logLines(tail)}`
|
|
107
|
+
: `usine up${holderOf(pid)} didn't answer on port ${port}, and wrote nothing to ${log} for ${Duration.format(timeout)}. It still runs. Check ${log}, or stop it with usine stop.`,
|
|
108
|
+
DetachedSpawnError: ({ command, reason }) => `Could not start ${command} in the background (${clause(reason)}).`,
|
|
109
|
+
SystemctlError: ({ command, unit, reason }) => `${command} failed (${clause(reason)}). ${unit} runs usine, so usine manages it with systemctl. Run the command as a user that may start and stop ${unit}, such as root, or let this user manage it with the polkit rule in the guide to running the orchestrator on a server.`,
|
|
110
|
+
SystemdStartError: ({ unit, outcome, state, timeout }) => outcome === "failed"
|
|
111
|
+
? `systemctl start ${unit} ran, but the service was ${state} before usine listened, and is now stopped. Read its output with journalctl -u ${unit}, then run systemctl start ${unit}.`
|
|
112
|
+
: `systemctl start ${unit} ran, but usine didn't answer within ${Duration.format(timeout)}, and the service is ${state}. Startup recovery can take minutes: follow it with journalctl -u ${unit} -f, and check it with usine status.`,
|
|
113
|
+
EngineOutsideInstanceError: ({ script, version, packaged }) => packaged
|
|
114
|
+
? `usine upgrade changed nothing: the running engine, @usine/server ${version}, runs from ${script}, outside this instance's node_modules. Update that install with its package manager, then run usine restart.`
|
|
115
|
+
: `usine upgrade changed nothing: the running engine, @usine/server ${version}, runs from ${script}, a checkout outside this instance. Pull and build that checkout (git pull, pnpm install --frozen-lockfile, pnpm build), then run usine restart.`,
|
|
116
|
+
EnginePinError: ({ path, missing, linked }) => missing
|
|
117
|
+
? `usine upgrade changed nothing: ${path} doesn't exist. usine upgrade moves the @usine/server pin of an instance that installs the engine from npm.`
|
|
118
|
+
: Option.match(linked, {
|
|
119
|
+
onNone: () => `usine upgrade changed nothing: ${path} doesn't pin @usine/server to a registry version. Add it with an exact version, such as "@usine/server": "0.3.0", and install it.`,
|
|
120
|
+
onSome: (spec) => `usine upgrade changed nothing: ${path} points @usine/server at ${spec}. Update that folder, then run usine restart.`,
|
|
121
|
+
}),
|
|
122
|
+
InstanceManifestError: ({ path, reason }) => `Could not read ${path} (${clause(reason)}). Fix the file, then run the command again.`,
|
|
123
|
+
PackageLookupError: ({ name, spec, reason }) => `Could not find ${name}@${spec} on the npm registry (${clause(reason)}). Check the version, and the registry in .npmrc.`,
|
|
124
|
+
UpgradeFileError: ({ path, reason }) => `usine upgrade stopped: could not access ${path} (${clause(reason)}).`,
|
|
125
|
+
UpgradeFailedError: (failure) => Match.value(failure.stage).pipe(Match.when("install", () => `usine upgrade could not install @usine/server ${failure.target}: ${clause(failure.reason)}. package.json and the lockfile are back at ${failure.previous}, and the instance is stopped. Run ${failure.packageManager} install, then usine up --detach.`), Match.when("start", () => `@usine/server ${failure.target} did not start: ${failure.reason}. The instance is stopped. ${startOutput(failure)}\n\n${rollback(failure)}`), Match.when("listen", () => `@usine/server ${failure.target} started, but ${failure.reason}. ${stillRuns(failure)}\n\n${rollback(failure)}`), Match.exhaustive),
|
|
57
126
|
});
|
|
58
127
|
//# sourceMappingURL=failure-message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"failure-message.js","sourceRoot":"","sources":["../src/failure-message.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"failure-message.js","sourceRoot":"","sources":["../src/failure-message.ts"],"names":[],"mappings":"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"}
|
package/dist/http.d.ts
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
|
-
import { Layer } from "effect";
|
|
2
|
-
import { HttpRouter } from "effect/
|
|
1
|
+
import { Layer, Option } from "effect";
|
|
2
|
+
import { HttpRouter } from "effect/http";
|
|
3
3
|
import { FactoryBackend } from "./backend.ts";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { type Port, type UiOrigin } from "./cli.ts";
|
|
5
|
+
/**
|
|
6
|
+
* Returns the operator API, which accepts browser requests from the UI's pages at the loopback
|
|
7
|
+
* names and at `origin`.
|
|
8
|
+
*/
|
|
9
|
+
export declare const apiRoutes: (origin: Option.Option<UiOrigin>) => Layer.Layer<never, never, HttpRouter.HttpRouter | HttpRouter.Request<"Requires", FactoryBackend>>;
|
|
10
|
+
export declare const staticRoutes: (webRoot: string) => Layer.Layer<never, never, HttpRouter.HttpRouter | HttpRouter.Request<"Error", import("effect/PlatformError").PlatformError> | HttpRouter.Request<"Requires", import("effect/http/HttpPlatform").HttpPlatform>>;
|
|
11
|
+
/**
|
|
12
|
+
* Serves the operator API and the UI on `SERVER_HOST` at `port`, for the UI's pages there and at
|
|
13
|
+
* `origin`.
|
|
14
|
+
*/
|
|
15
|
+
export declare const serverLayer: (backend: Layer.Layer<FactoryBackend>, webRoot: string, port: Port, origin: Option.Option<UiOrigin>) => Layer.Layer<never, import("effect/http/HttpServerError").ServeError, never>;
|
|
7
16
|
//# sourceMappingURL=http.d.ts.map
|
package/dist/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAWA,OAAO,EAAU,KAAK,EAAsB,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAWA,OAAO,EAAU,KAAK,EAAE,MAAM,EAAsB,MAAM,QAAQ,CAAC;AACnE,OAAO,EAAW,UAAU,EAAyC,MAAM,aAAa,CAAC;AAEzF,OAAO,EAAE,cAAc,EAAqB,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,KAAK,IAAI,EAAe,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AA6OjE;;;GAGG;AACH,eAAO,MAAM,SAAS,WAAY,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,sGAKtD,CAAC;AAEJ,eAAO,MAAM,YAAY,YAAa,MAAM,mNA2C3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,YACb,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,WAC3B,MAAM,QACT,IAAI,UACF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,gFAQhC,CAAC"}
|
package/dist/http.js
CHANGED
|
@@ -4,9 +4,9 @@ import { NodeHttpServer } from "@effect/platform-node";
|
|
|
4
4
|
import { RepositoryName } from "@usine/core/repository";
|
|
5
5
|
import { BoardMove } from "@usine/orchestrator/operator";
|
|
6
6
|
import { OperatorApi, OperatorHttpError, OperatorHttpPolicy, reloadRefusal, } from "@usine/orchestrator/operator/http";
|
|
7
|
-
import { Effect, Layer, Schema } from "effect";
|
|
8
|
-
import { Headers, HttpRouter, HttpServerRequest, HttpServerResponse } from "effect/
|
|
9
|
-
import { HttpApiBuilder, HttpApiError } from "effect/
|
|
7
|
+
import { Effect, Layer, Option, Schema } from "effect";
|
|
8
|
+
import { Headers, HttpRouter, HttpServerRequest, HttpServerResponse } from "effect/http";
|
|
9
|
+
import { HttpApiBuilder, HttpApiError } from "effect/http-api";
|
|
10
10
|
import { FactoryBackend } from "./backend.js";
|
|
11
11
|
import { SERVER_HOST } from "./cli.js";
|
|
12
12
|
const operatorFailure = (error) => {
|
|
@@ -70,25 +70,27 @@ const operatorFailure = (error) => {
|
|
|
70
70
|
};
|
|
71
71
|
const LOOPBACK_HOSTS = new Set(["127.0.0.1", "localhost", "[::1]", "::1"]);
|
|
72
72
|
/**
|
|
73
|
-
* Whether the request has a
|
|
74
|
-
* without `Origin` (curl, same-origin GETs) are allowed.
|
|
73
|
+
* Whether the request has an `Origin` other than a loopback one and `page`, which marks a
|
|
74
|
+
* cross-site request. Requests without `Origin` (curl, same-origin GETs) are allowed.
|
|
75
75
|
*/
|
|
76
|
-
const crossSiteOrigin = (request) => {
|
|
76
|
+
const crossSiteOrigin = (request, page) => {
|
|
77
77
|
const origin = request.headers.origin;
|
|
78
78
|
if (origin === undefined)
|
|
79
79
|
return false;
|
|
80
80
|
try {
|
|
81
|
-
|
|
81
|
+
const url = new URL(origin);
|
|
82
|
+
return !LOOPBACK_HOSTS.has(url.hostname) && !Option.exists(page, (o) => o === url.origin);
|
|
82
83
|
}
|
|
83
84
|
catch {
|
|
84
85
|
return true;
|
|
85
86
|
}
|
|
86
87
|
};
|
|
87
|
-
const policy = Layer.succeed(OperatorHttpPolicy)((handler, { endpoint }) => Effect.gen(function* () {
|
|
88
|
+
const policy = (page) => Layer.succeed(OperatorHttpPolicy)((handler, { endpoint }) => Effect.gen(function* () {
|
|
88
89
|
const request = yield* HttpServerRequest.HttpServerRequest;
|
|
89
|
-
if (crossSiteOrigin(request)) {
|
|
90
|
+
if (crossSiteOrigin(request, page)) {
|
|
90
91
|
yield* Effect.logWarning("Cross-site request to the operator API was refused", {
|
|
91
92
|
origin: request.headers.origin,
|
|
93
|
+
acceptedOrigin: Option.getOrUndefined(page),
|
|
92
94
|
url: request.url,
|
|
93
95
|
});
|
|
94
96
|
return yield* new OperatorHttpError({
|
|
@@ -163,8 +165,14 @@ const handlers = HttpApiBuilder.group(OperatorApi, "operator", (routes) => route
|
|
|
163
165
|
return yield* fromBackend((backend) => backend.task(repository, params.item));
|
|
164
166
|
}))
|
|
165
167
|
.handle("configuration", () => fromBackend((backend) => backend.configuration))
|
|
166
|
-
.handle("desk", () => fromBackend((backend) => backend.desk))
|
|
167
|
-
|
|
168
|
+
.handle("desk", () => fromBackend((backend) => backend.desk))
|
|
169
|
+
.handle("statistics", ({ query }) => fromBackend((backend) => backend.statistics(query.window)))
|
|
170
|
+
.handle("runStatistics", ({ query }) => fromBackend((backend) => backend.runStatistics(query.window))));
|
|
171
|
+
/**
|
|
172
|
+
* Returns the operator API, which accepts browser requests from the UI's pages at the loopback
|
|
173
|
+
* names and at `origin`.
|
|
174
|
+
*/
|
|
175
|
+
export const apiRoutes = (origin) => HttpApiBuilder.layer(OperatorApi).pipe(Layer.provide(handlers), Layer.provide(policy(origin)), Layer.provide(NodeHttpServer.layerHttpServices));
|
|
168
176
|
export const staticRoutes = (webRoot) => {
|
|
169
177
|
const assetsRoot = resolve(webRoot, "assets");
|
|
170
178
|
const applicationShell = HttpServerResponse.file(resolve(webRoot, "index.html"));
|
|
@@ -200,8 +208,12 @@ export const staticRoutes = (webRoot) => {
|
|
|
200
208
|
})),
|
|
201
209
|
]);
|
|
202
210
|
};
|
|
203
|
-
|
|
204
|
-
|
|
211
|
+
/**
|
|
212
|
+
* Serves the operator API and the UI on `SERVER_HOST` at `port`, for the UI's pages there and at
|
|
213
|
+
* `origin`.
|
|
214
|
+
*/
|
|
215
|
+
export const serverLayer = (backend, webRoot, port, origin) => {
|
|
216
|
+
const routes = Layer.mergeAll(apiRoutes(origin), staticRoutes(webRoot)).pipe(HttpRouter.provideRequest(backend));
|
|
205
217
|
return HttpRouter.serve(routes).pipe(Layer.provide(NodeHttpServer.layer(createServer, { host: SERVER_HOST, port })));
|
|
206
218
|
};
|
|
207
219
|
//# sourceMappingURL=http.js.map
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ConfigProvider, Effect, FileSystem, Schema } from "effect";
|
|
2
|
+
declare const EnvironmentFileError_base: Schema.Class<EnvironmentFileError, Schema.TaggedStruct<"EnvironmentFileError", {
|
|
3
|
+
readonly path: Schema.String;
|
|
4
|
+
readonly reason: Schema.String;
|
|
5
|
+
}>, import("effect/Cause").YieldableError>;
|
|
6
|
+
/** The instance folder's `.env` exists but couldn't be read. */
|
|
7
|
+
declare class EnvironmentFileError extends EnvironmentFileError_base {
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Returns `environment` over the variables of the instance folder's `.env`, as dotenv does: a
|
|
11
|
+
* variable that `environment` sets keeps its value, and `.env` sets the others, including a
|
|
12
|
+
* variable whose name prefixes one that `environment` sets (`TOKEN` beside `TOKEN_ID`). Returns
|
|
13
|
+
* `environment` alone if the folder has no `.env`. Doesn't change `process.env`.
|
|
14
|
+
*/
|
|
15
|
+
export declare const instanceEnvironment: (directory: string & import("effect/Brand").Brand<"InstanceDirectory">, environment: ConfigProvider.ConfigProvider) => Effect.Effect<ConfigProvider.ConfigProvider, EnvironmentFileError, FileSystem.FileSystem>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/instance/environment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;AAK5E,gEAAgE;AAChE,cAAM,oBAAqB,SAAQ,yBAEsC;CAAG;AAoC5E;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,kNAwB9B,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { ConfigProvider, Effect, FileSystem, Option, Schema } from "effect";
|
|
3
|
+
/** The instance folder's file of `KEY=value` lines that `usine` reads at startup. */
|
|
4
|
+
const ENVIRONMENT_FILE = ".env";
|
|
5
|
+
/** The instance folder's `.env` exists but couldn't be read. */
|
|
6
|
+
class EnvironmentFileError extends Schema.TaggedError("@usine/server/EnvironmentFileError")("EnvironmentFileError", { path: Schema.String, reason: Schema.String }) {
|
|
7
|
+
}
|
|
8
|
+
/** Returns the child keys of `node`: a record's keys, an array's indices, or none for a value. */
|
|
9
|
+
const childKeys = (node) => node._tag === "Record"
|
|
10
|
+
? [...node.keys]
|
|
11
|
+
: node._tag === "Array"
|
|
12
|
+
? Array.from({ length: node.length }, (_, index) => String(index))
|
|
13
|
+
: [];
|
|
14
|
+
/**
|
|
15
|
+
* Returns the node that a single variable source holding the variables of both nodes would return:
|
|
16
|
+
* `primary`'s value wins, and the children are those of both nodes.
|
|
17
|
+
*/
|
|
18
|
+
const mergeNodes = (primary, fallback) => {
|
|
19
|
+
if (primary === undefined)
|
|
20
|
+
return fallback;
|
|
21
|
+
if (fallback === undefined)
|
|
22
|
+
return primary;
|
|
23
|
+
const value = primary.value ?? fallback.value;
|
|
24
|
+
if (primary._tag === "Record" || fallback._tag === "Record") {
|
|
25
|
+
return ConfigProvider.makeRecord(new Set([...childKeys(primary), ...childKeys(fallback)]), value);
|
|
26
|
+
}
|
|
27
|
+
if (primary._tag === "Array" || fallback._tag === "Array") {
|
|
28
|
+
return ConfigProvider.makeArray(Math.max(childKeys(primary).length, childKeys(fallback).length), value);
|
|
29
|
+
}
|
|
30
|
+
return primary;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Returns `environment` over the variables of the instance folder's `.env`, as dotenv does: a
|
|
34
|
+
* variable that `environment` sets keeps its value, and `.env` sets the others, including a
|
|
35
|
+
* variable whose name prefixes one that `environment` sets (`TOKEN` beside `TOKEN_ID`). Returns
|
|
36
|
+
* `environment` alone if the folder has no `.env`. Doesn't change `process.env`.
|
|
37
|
+
*/
|
|
38
|
+
export const instanceEnvironment = Effect.fn("Instance.environment")(function* (directory, environment) {
|
|
39
|
+
const fileSystem = yield* FileSystem.FileSystem;
|
|
40
|
+
const path = join(directory, ENVIRONMENT_FILE);
|
|
41
|
+
const contents = yield* fileSystem.readFileString(path).pipe(Effect.map(Option.some), Effect.catchIf(({ reason }) => reason._tag === "NotFound", () => Effect.succeedNone), Effect.mapError(({ message }) => new EnvironmentFileError({ path, reason: message })));
|
|
42
|
+
yield* Effect.annotateCurrentSpan({ path, found: Option.isSome(contents) });
|
|
43
|
+
if (Option.isNone(contents)) {
|
|
44
|
+
yield* Effect.logDebug("The instance folder has no environment file", { path });
|
|
45
|
+
return environment;
|
|
46
|
+
}
|
|
47
|
+
yield* Effect.logDebug("Read the instance environment file", { path });
|
|
48
|
+
const file = ConfigProvider.fromDotEnvContents(contents.value);
|
|
49
|
+
return ConfigProvider.make((configPath) => Effect.zipWith(environment.load(configPath), file.load(configPath), mergeNodes));
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/instance/environment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Effect, FileSystem, Schema } from "effect";
|
|
2
|
+
import type { InstanceFiles } from "./record.ts";
|
|
3
|
+
declare const InstanceIdError_base: Schema.Class<InstanceIdError, Schema.TaggedStruct<"InstanceIdError", {
|
|
4
|
+
readonly operation: Schema.Literals<readonly ["read", "create"]>;
|
|
5
|
+
readonly path: Schema.String;
|
|
6
|
+
readonly reason: Schema.String;
|
|
7
|
+
}>, import("effect/Cause").YieldableError>;
|
|
8
|
+
/** `.usine/instance-id` couldn't be read or created, or doesn't contain an instance ID. */
|
|
9
|
+
export declare class InstanceIdError extends InstanceIdError_base {
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Returns the ID in `.usine/instance-id`, or writes a new one there if the file doesn't exist.
|
|
13
|
+
* Call it while holding the instance lock, so that no other process writes the file.
|
|
14
|
+
*/
|
|
15
|
+
export declare const instanceIdOf: (files: InstanceFiles) => Effect.Effect<string & import("effect/Brand").Brand<"InstanceId">, InstanceIdError, FileSystem.FileSystem>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/instance/id.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;;;;;;AAEjD,2FAA2F;AAC3F,qBAAa,eAAgB,SAAQ,oBAMnC;CAAG;AAIL;;;GAGG;AACH,eAAO,MAAM,YAAY,sIAuBvB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { InstanceId } from "@usine/core/instance";
|
|
2
|
+
import { Effect, FileSystem, Schema } from "effect";
|
|
3
|
+
/** `.usine/instance-id` couldn't be read or created, or doesn't contain an instance ID. */
|
|
4
|
+
export class InstanceIdError extends Schema.TaggedError("@usine/server/InstanceIdError")("InstanceIdError", {
|
|
5
|
+
operation: Schema.Literals(["read", "create"]),
|
|
6
|
+
path: Schema.String,
|
|
7
|
+
reason: Schema.String,
|
|
8
|
+
}) {
|
|
9
|
+
}
|
|
10
|
+
const InstanceIdFromText = Schema.Trim.pipe(Schema.decodeTo(InstanceId));
|
|
11
|
+
/**
|
|
12
|
+
* Returns the ID in `.usine/instance-id`, or writes a new one there if the file doesn't exist.
|
|
13
|
+
* Call it while holding the instance lock, so that no other process writes the file.
|
|
14
|
+
*/
|
|
15
|
+
export const instanceIdOf = Effect.fn("Instance.id")(function* (files) {
|
|
16
|
+
const fileSystem = yield* FileSystem.FileSystem;
|
|
17
|
+
const failure = (operation) => (error) => new InstanceIdError({ operation, path: files.id, reason: error.message });
|
|
18
|
+
if (yield* fileSystem.exists(files.id).pipe(Effect.mapError(failure("read")))) {
|
|
19
|
+
const text = yield* fileSystem.readFileString(files.id).pipe(Effect.mapError(failure("read")));
|
|
20
|
+
const instanceId = yield* Schema.decodeUnknownEffect(InstanceIdFromText)(text).pipe(Effect.mapError(failure("read")));
|
|
21
|
+
yield* Effect.annotateCurrentSpan({ instanceId });
|
|
22
|
+
yield* Effect.logDebug("Read the instance ID", { instanceId, path: files.id });
|
|
23
|
+
return instanceId;
|
|
24
|
+
}
|
|
25
|
+
const instanceId = InstanceId.make(crypto.randomUUID());
|
|
26
|
+
yield* Effect.annotateCurrentSpan({ instanceId });
|
|
27
|
+
// A rename never leaves a partial file for the next start to refuse.
|
|
28
|
+
const staging = `${files.id}.${instanceId}`;
|
|
29
|
+
yield* fileSystem
|
|
30
|
+
.writeFileString(staging, `${instanceId}\n`)
|
|
31
|
+
.pipe(Effect.andThen(fileSystem.rename(staging, files.id)), Effect.mapError(failure("create")));
|
|
32
|
+
yield* Effect.logInfo("Created the instance ID", { instanceId, path: files.id });
|
|
33
|
+
return instanceId;
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/instance/id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGpD,2FAA2F;AAC3F,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,WAAW,CACrD,+BAA+B,CAChC,CAAC,iBAAiB,EAAE;IACnB,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CAAC;CAAG;AAEL,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAEzE;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAoB;IAClF,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IAChD,MAAM,OAAO,GACX,CAAC,SAAuC,EAAE,EAAE,CAAC,CAAC,KAAmC,EAAE,EAAE,CACnF,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9E,IAAI,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACjF,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CACjC,CAAC;QACF,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAClD,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/E,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACxD,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAClD,qEAAqE;IACrE,MAAM,OAAO,GAAG,GAAG,KAAK,CAAC,EAAE,IAAI,UAAU,EAAE,CAAC;IAC5C,KAAK,CAAC,CAAC,UAAU;SACd,eAAe,CAAC,OAAO,EAAE,GAAG,UAAU,IAAI,CAAC;SAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACjF,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Effect, FileSystem,
|
|
1
|
+
import { Effect, FileSystem, Schema } from "effect";
|
|
2
|
+
import { type InstanceFiles, type InstanceRecord } from "./record.ts";
|
|
2
3
|
declare const InstanceInUseError_base: Schema.Class<InstanceInUseError, Schema.TaggedStruct<"InstanceInUseError", {
|
|
3
4
|
readonly directory: Schema.String;
|
|
4
5
|
/** The PID of the lock holder, if it could be read. */
|
|
5
|
-
readonly holder: Schema.Option<Schema.Int
|
|
6
|
+
readonly holder: Schema.Option<Schema.brand<Schema.Int, "ProcessId">>;
|
|
6
7
|
}>, import("effect/Cause").YieldableError>;
|
|
7
8
|
/** Another `usine up` has the instance lock, possibly while still draining its Attempts. */
|
|
8
9
|
export declare class InstanceInUseError extends InstanceInUseError_base {
|
|
@@ -14,10 +15,13 @@ declare const InstanceLockError_base: Schema.Class<InstanceLockError, Schema.Tag
|
|
|
14
15
|
/** The instance lock could not be created or acquired for a reason other than another holder. */
|
|
15
16
|
export declare class InstanceLockError extends InstanceLockError_base {
|
|
16
17
|
}
|
|
18
|
+
/** Returns whether a process holds the instance lock, without creating the lock file. */
|
|
19
|
+
export declare const lockHeld: (files: InstanceFiles) => Effect.Effect<boolean, InstanceLockError, FileSystem.FileSystem>;
|
|
17
20
|
/**
|
|
18
21
|
* Acquires the instance lock for the scope, so only one `usine up` opens the stores. The lock is an
|
|
19
|
-
* exclusive SQLite transaction on `.usine/instance.lock`, released by the OS on exit.
|
|
22
|
+
* exclusive SQLite transaction on `.usine/instance.lock`, released by the OS on exit. Writes
|
|
23
|
+
* `.usine/instance.pid` and `.usine/instance.json`, and removes both when the scope closes.
|
|
20
24
|
*/
|
|
21
|
-
export declare const holdInstance: (directory: string & import("effect/Brand").Brand<"InstanceDirectory"
|
|
25
|
+
export declare const holdInstance: (directory: string & import("effect/Brand").Brand<"InstanceDirectory">, record: InstanceRecord) => Effect.Effect<void, InstanceInUseError | InstanceLockError, FileSystem.FileSystem | import("effect/Scope").Scope>;
|
|
22
26
|
export {};
|
|
23
|
-
//# sourceMappingURL=
|
|
27
|
+
//# sourceMappingURL=lock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/instance/lock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,cAAc,EAMpB,MAAM,aAAa,CAAC;;;IAOnB,uDAAuD;;;AALzD,4FAA4F;AAC5F,qBAAa,kBAAmB,SAAQ,uBAMtC;CAAG;;;;;AAEL,iGAAiG;AACjG,qBAAa,iBAAkB,SAAQ,sBAEoC;CAAG;AAmB9E,yFAAyF;AACzF,eAAO,MAAM,QAAQ,4FAqBnB,CAAC;AAiDH;;;;GAIG;AACH,eAAO,MAAM,YAAY,sNA2CvB,CAAC"}
|