summaryrefslogtreecommitdiffhomepage
path: root/packages/kernel/src/host/version.ts
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-27 01:12:40 +0900
committerAdam Malczewski <[email protected]>2026-06-27 01:12:40 +0900
commit98b0638838a8e754927d8c030ce8bded18d63e7d (patch)
tree0d4e21c3d4792fcd77e1040373b260e38efa34ce /packages/kernel/src/host/version.ts
parentd92a4af6191d7d20acf861adf605ad0227b6b287 (diff)
parent61e45e60d699ed1ca46f94a8f181c92a940317c6 (diff)
downloaddispatch-98b0638838a8e754927d8c030ce8bded18d63e7d.tar.gz
dispatch-98b0638838a8e754927d8c030ce8bded18d63e7d.zip
Merge branch 'dev' into feature/heartbeat
# Conflicts: # packages/host-bin/package.json # packages/host-bin/src/main.ts # packages/session-orchestrator/src/orchestrator.ts # packages/system-prompt/src/service.test.ts # packages/system-prompt/src/service.ts # packages/system-prompt/src/types.ts # packages/transport-contract/package.json # packages/transport-http/package.json # packages/transport-http/src/app.test.ts # packages/transport-http/src/app.ts # packages/transport-http/src/extension.ts # packages/transport-http/tsconfig.json # tsconfig.json
Diffstat (limited to 'packages/kernel/src/host/version.ts')
-rw-r--r--packages/kernel/src/host/version.ts82
1 files changed, 41 insertions, 41 deletions
diff --git a/packages/kernel/src/host/version.ts b/packages/kernel/src/host/version.ts
index 0d62a3b..eb9ac16 100644
--- a/packages/kernel/src/host/version.ts
+++ b/packages/kernel/src/host/version.ts
@@ -1,52 +1,52 @@
interface SemVer {
- readonly major: number;
- readonly minor: number;
- readonly patch: number;
+ readonly major: number;
+ readonly minor: number;
+ readonly patch: number;
}
function parseSemVer(version: string): SemVer {
- const match = version.match(/^(\d+)\.(\d+)\.(\d+)$/);
- if (!match) throw new Error(`Invalid semver: "${version}"`);
- return {
- major: Number(match[1]),
- minor: Number(match[2]),
- patch: Number(match[3]),
- };
+ const match = version.match(/^(\d+)\.(\d+)\.(\d+)$/);
+ if (!match) throw new Error(`Invalid semver: "${version}"`);
+ return {
+ major: Number(match[1]),
+ minor: Number(match[2]),
+ patch: Number(match[3]),
+ };
}
function gte(a: SemVer, b: SemVer): boolean {
- if (a.major !== b.major) return a.major > b.major;
- if (a.minor !== b.minor) return a.minor > b.minor;
- return a.patch >= b.patch;
+ if (a.major !== b.major) return a.major > b.major;
+ if (a.minor !== b.minor) return a.minor > b.minor;
+ return a.patch >= b.patch;
}
export function isApiVersionCompatible(range: string, kernelVersion: string): boolean {
- if (range === "*") return true;
-
- const kernel = parseSemVer(kernelVersion);
-
- if (range.startsWith("^")) {
- const min = parseSemVer(range.slice(1));
- if (!gte(kernel, min)) return false;
- if (min.major === 0) {
- return kernel.major === 0 && kernel.minor === min.minor;
- }
- return kernel.major === min.major;
- }
-
- if (range.startsWith("~")) {
- const min = parseSemVer(range.slice(1));
- if (!gte(kernel, min)) return false;
- return kernel.major === min.major && kernel.minor === min.minor;
- }
-
- if (range.startsWith(">=")) {
- const min = parseSemVer(range.slice(2));
- return gte(kernel, min);
- }
-
- const exact = parseSemVer(range);
- return (
- kernel.major === exact.major && kernel.minor === exact.minor && kernel.patch === exact.patch
- );
+ if (range === "*") return true;
+
+ const kernel = parseSemVer(kernelVersion);
+
+ if (range.startsWith("^")) {
+ const min = parseSemVer(range.slice(1));
+ if (!gte(kernel, min)) return false;
+ if (min.major === 0) {
+ return kernel.major === 0 && kernel.minor === min.minor;
+ }
+ return kernel.major === min.major;
+ }
+
+ if (range.startsWith("~")) {
+ const min = parseSemVer(range.slice(1));
+ if (!gte(kernel, min)) return false;
+ return kernel.major === min.major && kernel.minor === min.minor;
+ }
+
+ if (range.startsWith(">=")) {
+ const min = parseSemVer(range.slice(2));
+ return gte(kernel, min);
+ }
+
+ const exact = parseSemVer(range);
+ return (
+ kernel.major === exact.major && kernel.minor === exact.minor && kernel.patch === exact.patch
+ );
}