sleev 0.0.13 → 0.0.15

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 (133) hide show
  1. package/README.md +9 -8
  2. package/bin/sleev.js +84 -0
  3. package/package.json +37 -55
  4. package/postinstall.mjs +66 -0
  5. package/dist/auth/browser.d.ts +0 -12
  6. package/dist/auth/browser.js +0 -89
  7. package/dist/auth/browser.js.map +0 -1
  8. package/dist/auth/firebase-tokens.d.ts +0 -39
  9. package/dist/auth/firebase-tokens.js +0 -173
  10. package/dist/auth/firebase-tokens.js.map +0 -1
  11. package/dist/auth/firebase.d.ts +0 -17
  12. package/dist/auth/firebase.js +0 -55
  13. package/dist/auth/firebase.js.map +0 -1
  14. package/dist/auth/login.d.ts +0 -22
  15. package/dist/auth/login.js +0 -58
  16. package/dist/auth/login.js.map +0 -1
  17. package/dist/auth/loopback.d.ts +0 -19
  18. package/dist/auth/loopback.js +0 -204
  19. package/dist/auth/loopback.js.map +0 -1
  20. package/dist/auth/schema.d.ts +0 -26
  21. package/dist/auth/schema.js +0 -88
  22. package/dist/auth/schema.js.map +0 -1
  23. package/dist/auth/token.d.ts +0 -19
  24. package/dist/auth/token.js +0 -53
  25. package/dist/auth/token.js.map +0 -1
  26. package/dist/auth/verify.d.ts +0 -6
  27. package/dist/auth/verify.js +0 -22
  28. package/dist/auth/verify.js.map +0 -1
  29. package/dist/cli.d.ts +0 -8
  30. package/dist/cli.js +0 -255
  31. package/dist/cli.js.map +0 -1
  32. package/dist/config/paths.d.ts +0 -12
  33. package/dist/config/paths.js +0 -34
  34. package/dist/config/paths.js.map +0 -1
  35. package/dist/config/store.d.ts +0 -63
  36. package/dist/config/store.js +0 -270
  37. package/dist/config/store.js.map +0 -1
  38. package/dist/control/local-installations.d.ts +0 -13
  39. package/dist/control/local-installations.js +0 -37
  40. package/dist/control/local-installations.js.map +0 -1
  41. package/dist/daemon/config.d.ts +0 -10
  42. package/dist/daemon/config.js +0 -52
  43. package/dist/daemon/config.js.map +0 -1
  44. package/dist/daemon/controller.d.ts +0 -29
  45. package/dist/daemon/controller.js +0 -34
  46. package/dist/daemon/controller.js.map +0 -1
  47. package/dist/daemon/health.d.ts +0 -8
  48. package/dist/daemon/health.js +0 -47
  49. package/dist/daemon/health.js.map +0 -1
  50. package/dist/daemon/start.d.ts +0 -5
  51. package/dist/daemon/start.js +0 -24
  52. package/dist/daemon/start.js.map +0 -1
  53. package/dist/daemon/systemd.d.ts +0 -35
  54. package/dist/daemon/systemd.js +0 -181
  55. package/dist/daemon/systemd.js.map +0 -1
  56. package/dist/gateway/acquire.d.ts +0 -14
  57. package/dist/gateway/acquire.js +0 -112
  58. package/dist/gateway/acquire.js.map +0 -1
  59. package/dist/gateway/manifest.d.ts +0 -26
  60. package/dist/gateway/manifest.js +0 -98
  61. package/dist/gateway/manifest.js.map +0 -1
  62. package/dist/gateway/platform.d.ts +0 -5
  63. package/dist/gateway/platform.js +0 -27
  64. package/dist/gateway/platform.js.map +0 -1
  65. package/dist/harness/claude.d.ts +0 -8
  66. package/dist/harness/claude.js +0 -151
  67. package/dist/harness/claude.js.map +0 -1
  68. package/dist/harness/codex.d.ts +0 -10
  69. package/dist/harness/codex.js +0 -213
  70. package/dist/harness/codex.js.map +0 -1
  71. package/dist/harness/index.d.ts +0 -13
  72. package/dist/harness/index.js +0 -63
  73. package/dist/harness/index.js.map +0 -1
  74. package/dist/harness/opencode-config.d.ts +0 -8
  75. package/dist/harness/opencode-config.js +0 -301
  76. package/dist/harness/opencode-config.js.map +0 -1
  77. package/dist/harness/opencode.d.ts +0 -14
  78. package/dist/harness/opencode.js +0 -50
  79. package/dist/harness/opencode.js.map +0 -1
  80. package/dist/harness/providers.d.ts +0 -8
  81. package/dist/harness/providers.js +0 -30
  82. package/dist/harness/providers.js.map +0 -1
  83. package/dist/harness/types.d.ts +0 -14
  84. package/dist/harness/types.js +0 -2
  85. package/dist/harness/types.js.map +0 -1
  86. package/dist/product.d.ts +0 -12
  87. package/dist/product.js +0 -70
  88. package/dist/product.js.map +0 -1
  89. package/dist/tui/clipboard.d.ts +0 -1
  90. package/dist/tui/clipboard.js +0 -48
  91. package/dist/tui/clipboard.js.map +0 -1
  92. package/dist/tui/openTuiApp.d.ts +0 -1
  93. package/dist/tui/openTuiApp.js +0 -1436
  94. package/dist/tui/openTuiApp.js.map +0 -1
  95. package/dist/tui/pages/flow-screen.d.ts +0 -50
  96. package/dist/tui/pages/flow-screen.js +0 -435
  97. package/dist/tui/pages/flow-screen.js.map +0 -1
  98. package/dist/tui/pages/footer.d.ts +0 -7
  99. package/dist/tui/pages/footer.js +0 -14
  100. package/dist/tui/pages/footer.js.map +0 -1
  101. package/dist/tui/pages/home-screen.d.ts +0 -19
  102. package/dist/tui/pages/home-screen.js +0 -89
  103. package/dist/tui/pages/home-screen.js.map +0 -1
  104. package/dist/tui/pages/index.d.ts +0 -17
  105. package/dist/tui/pages/index.js +0 -11
  106. package/dist/tui/pages/index.js.map +0 -1
  107. package/dist/tui/pages/local-setup-screen.d.ts +0 -23
  108. package/dist/tui/pages/local-setup-screen.js +0 -134
  109. package/dist/tui/pages/local-setup-screen.js.map +0 -1
  110. package/dist/tui/pages/location-card.d.ts +0 -19
  111. package/dist/tui/pages/location-card.js +0 -116
  112. package/dist/tui/pages/location-card.js.map +0 -1
  113. package/dist/tui/pages/menu-screen.d.ts +0 -24
  114. package/dist/tui/pages/menu-screen.js +0 -117
  115. package/dist/tui/pages/menu-screen.js.map +0 -1
  116. package/dist/tui/pages/session-grid.d.ts +0 -23
  117. package/dist/tui/pages/session-grid.js +0 -552
  118. package/dist/tui/pages/session-grid.js.map +0 -1
  119. package/dist/tui/pages/setup-screen.d.ts +0 -15
  120. package/dist/tui/pages/setup-screen.js +0 -80
  121. package/dist/tui/pages/setup-screen.js.map +0 -1
  122. package/dist/tui/pages/terminal-log.d.ts +0 -14
  123. package/dist/tui/pages/terminal-log.js +0 -104
  124. package/dist/tui/pages/terminal-log.js.map +0 -1
  125. package/dist/tui/pages/welcome-screen.d.ts +0 -16
  126. package/dist/tui/pages/welcome-screen.js +0 -80
  127. package/dist/tui/pages/welcome-screen.js.map +0 -1
  128. package/dist/tui/saved-tokens.d.ts +0 -10
  129. package/dist/tui/saved-tokens.js +0 -104
  130. package/dist/tui/saved-tokens.js.map +0 -1
  131. package/dist/tui/theme.d.ts +0 -25
  132. package/dist/tui/theme.js +0 -27
  133. package/dist/tui/theme.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"acquire.js","sourceRoot":"","sources":["../../src/gateway/acquire.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import { type GatewayPlatform } from "./platform.js";
2
- export type ArtifactRef = {
3
- url: string;
4
- sha256: string;
5
- size: number;
6
- };
7
- export type ReleaseManifest = {
8
- channel: string;
9
- version: string;
10
- commit: string;
11
- publishedAt: string;
12
- artifacts: Partial<Record<GatewayPlatform, ArtifactRef>>;
13
- };
14
- export declare function manifestUrl(base: string, channel: string): string;
15
- export declare function parseManifest(value: unknown): ReleaseManifest;
16
- export type ResolvedRelease = {
17
- version: string;
18
- platform: GatewayPlatform;
19
- artifact: ArtifactRef;
20
- };
21
- export declare function resolveLatestRelease(deps?: {
22
- fetchImpl?: typeof fetch;
23
- platform?: GatewayPlatform;
24
- env?: NodeJS.ProcessEnv;
25
- }): Promise<ResolvedRelease>;
26
- export declare function assertTrustedArtifactUrl(artifactUrl: string, baseUrl: string): void;
@@ -1,98 +0,0 @@
1
- // Reads the channel manifest — the always-latest pointer published by the
2
- // gateway release workflow at <base>/gateway/<channel>.json.
3
- import { gatewayUpdates } from "../product.js";
4
- import { currentPlatformKey } from "./platform.js";
5
- export function manifestUrl(base, channel) {
6
- return `${base.replace(/\/+$/, "")}/gateway/${channel}.json`;
7
- }
8
- // Strict parse: the manifest is remote input, so validate every field we
9
- // rely on rather than trusting its shape.
10
- export function parseManifest(value) {
11
- if (!isRecord(value)) {
12
- throw new Error("Gateway manifest is not a JSON object.");
13
- }
14
- const channel = str(value.channel, "channel");
15
- const version = str(value.version, "version");
16
- const commit = str(value.commit, "commit");
17
- const publishedAt = str(value.publishedAt, "publishedAt");
18
- if (!isRecord(value.artifacts)) {
19
- throw new Error("Gateway manifest is missing 'artifacts'.");
20
- }
21
- const artifacts = {};
22
- for (const platform of ["linux-x64"]) {
23
- const entry = value.artifacts[platform];
24
- if (entry === undefined)
25
- continue;
26
- if (!isRecord(entry)) {
27
- throw new Error(`Gateway manifest artifact ${platform} is invalid.`);
28
- }
29
- const size = entry.size;
30
- if (typeof size !== "number" || !Number.isInteger(size) || size <= 0) {
31
- throw new Error(`Gateway manifest artifact ${platform} has an invalid size.`);
32
- }
33
- artifacts[platform] = {
34
- url: str(entry.url, `artifacts.${platform}.url`),
35
- sha256: str(entry.sha256, `artifacts.${platform}.sha256`),
36
- size,
37
- };
38
- }
39
- return { channel, version, commit, publishedAt, artifacts };
40
- }
41
- // Fetches the channel manifest and resolves the artifact for this host.
42
- export async function resolveLatestRelease(deps = {}) {
43
- const fetchImpl = deps.fetchImpl ?? fetch;
44
- const platform = deps.platform ?? currentPlatformKey();
45
- const { baseUrl, channel } = gatewayUpdates(deps.env);
46
- const url = manifestUrl(baseUrl, channel);
47
- const response = await fetchImpl(url);
48
- if (!response.ok) {
49
- throw new Error(`Could not fetch gateway manifest (${url}): HTTP ${response.status}.`);
50
- }
51
- const manifest = parseManifest(await response.json().catch(() => null));
52
- const artifact = manifest.artifacts[platform];
53
- if (!artifact) {
54
- throw new Error(`Gateway release ${manifest.version} has no ${platform} build.`);
55
- }
56
- // The manifest is remote input and the artifact it points at is later
57
- // executed. size/sha256 come from the same manifest, so that check is
58
- // self-referential — pin the download to the trusted release base so a
59
- // tampered manifest cannot redirect it off-origin.
60
- assertTrustedArtifactUrl(artifact.url, baseUrl);
61
- return { version: manifest.version, platform, artifact };
62
- }
63
- // Throws unless `artifactUrl` lives under `baseUrl`: same origin, same
64
- // scheme, and within the base path. URL parsing normalizes `..`/`.`
65
- // segments, so a path-traversal pathname fails the prefix check.
66
- export function assertTrustedArtifactUrl(artifactUrl, baseUrl) {
67
- let artifact;
68
- try {
69
- artifact = new URL(artifactUrl);
70
- }
71
- catch {
72
- throw new Error(`Gateway manifest artifact URL is not a valid URL: ${artifactUrl}.`);
73
- }
74
- // baseUrl is already validated by gatewayUpdates(); http is only its
75
- // scheme for a local dev override.
76
- const base = new URL(baseUrl);
77
- if (base.protocol === "https:" && artifact.protocol !== "https:") {
78
- throw new Error(`Gateway manifest artifact URL must use https: ${artifactUrl}.`);
79
- }
80
- const basePath = base.pathname.replace(/\/+$/, "");
81
- const withinBase = artifact.origin === base.origin &&
82
- (artifact.pathname === basePath ||
83
- artifact.pathname.startsWith(`${basePath}/`));
84
- if (!withinBase) {
85
- throw new Error(`Gateway manifest artifact URL ${artifactUrl} is not under the ` +
86
- `trusted release base ${baseUrl}.`);
87
- }
88
- }
89
- function isRecord(value) {
90
- return typeof value === "object" && value !== null && !Array.isArray(value);
91
- }
92
- function str(value, field) {
93
- if (typeof value !== "string" || !value) {
94
- throw new Error(`Gateway manifest field '${field}' is missing.`);
95
- }
96
- return value;
97
- }
98
- //# sourceMappingURL=manifest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/gateway/manifest.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,6DAA6D;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAwB,MAAM,eAAe,CAAC;AAgBzE,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,OAAe;IACrD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,OAAO,OAAO,CAAC;AACjE,CAAC;AAED,yEAAyE;AACzE,0CAA0C;AAC1C,MAAM,UAAU,aAAa,CAAC,KAAc;IACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,SAAS,GAAkD,EAAE,CAAC;IACpE,KAAK,MAAM,QAAQ,IAAI,CAAC,WAAW,CAAU,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACX,6BAA6B,QAAQ,cAAc,CACtD,CAAC;QACN,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CACX,6BAA6B,QAAQ,uBAAuB,CAC/D,CAAC;QACN,CAAC;QACD,SAAS,CAAC,QAAQ,CAAC,GAAG;YAClB,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,QAAQ,MAAM,CAAC;YAChD,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,QAAQ,SAAS,CAAC;YACzD,IAAI;SACP,CAAC;IACN,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AAChE,CAAC;AAQD,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,OAII,EAAE;IAEN,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,kBAAkB,EAAE,CAAC;IACvD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEtD,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACX,qCAAqC,GAAG,WAAW,QAAQ,CAAC,MAAM,GAAG,CACxE,CAAC;IACN,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACX,mBAAmB,QAAQ,CAAC,OAAO,WAAW,QAAQ,SAAS,CAClE,CAAC;IACN,CAAC;IACD,sEAAsE;IACtE,sEAAsE;IACtE,uEAAuE;IACvE,mDAAmD;IACnD,wBAAwB,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAChD,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC7D,CAAC;AAED,uEAAuE;AACvE,oEAAoE;AACpE,iEAAiE;AACjE,MAAM,UAAU,wBAAwB,CACpC,WAAmB,EACnB,OAAe;IAEf,IAAI,QAAa,CAAC;IAClB,IAAI,CAAC;QACD,QAAQ,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,IAAI,KAAK,CACX,qDAAqD,WAAW,GAAG,CACtE,CAAC;IACN,CAAC;IACD,qEAAqE;IACrE,mCAAmC;IACnC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CACX,iDAAiD,WAAW,GAAG,CAClE,CAAC;IACN,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,UAAU,GACZ,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAC/B,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ;YAC3B,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACX,iCAAiC,WAAW,oBAAoB;YAC5D,wBAAwB,OAAO,GAAG,CACzC,CAAC;IACN,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,GAAG,CAAC,KAAc,EAAE,KAAa;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,eAAe,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -1,5 +0,0 @@
1
- export type GatewayPlatform = "linux-x64";
2
- export declare function currentPlatformKey(platform?: NodeJS.Platform, arch?: string): GatewayPlatform;
3
- export declare function archiveExtension(_platform: GatewayPlatform): "tar.gz";
4
- export declare function archivedBinaryCandidates(platform: GatewayPlatform): string[];
5
- export declare function installedBinaryName(_platform: GatewayPlatform): string;
@@ -1,27 +0,0 @@
1
- // Maps the host to a published gateway artifact. Linux-only for now: the
2
- // release workflow builds just linux-x64. macOS/Windows are planned; until
3
- // then non-Linux hosts fail clearly rather than silently mis-resolving.
4
- import os from "node:os";
5
- export function currentPlatformKey(platform = os.platform(), arch = os.arch()) {
6
- if (platform === "linux" && arch === "x64")
7
- return "linux-x64";
8
- throw new Error(`No Sleeve gateway binary is available for ${platform}-${arch}. ` +
9
- "Only linux-x64 is supported right now (macOS/Windows planned).");
10
- }
11
- // Archive container the workflow publishes (tar.gz on Linux).
12
- export function archiveExtension(_platform) {
13
- return "tar.gz";
14
- }
15
- // Candidate names of the executable *inside* the archive, in priority order.
16
- // Releases publish `sleeve-gateway-linux-x64` going forward; older published
17
- // releases still contain `sleeve-proxy-linux-x64` (the channel manifest only
18
- // ever points at the latest, but we stay tolerant across the rename so
19
- // acquisition keeps working during the transition).
20
- export function archivedBinaryCandidates(platform) {
21
- return [`sleeve-gateway-${platform}`, `sleeve-proxy-${platform}`];
22
- }
23
- // Installed executable filename (platform-stable; version lives in the path).
24
- export function installedBinaryName(_platform) {
25
- return "sleeve-gateway";
26
- }
27
- //# sourceMappingURL=platform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/gateway/platform.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,2EAA2E;AAC3E,wEAAwE;AACxE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIzB,MAAM,UAAU,kBAAkB,CAC9B,WAA4B,EAAE,CAAC,QAAQ,EAAE,EACzC,OAAe,EAAE,CAAC,IAAI,EAAE;IAExB,IAAI,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,WAAW,CAAC;IAC/D,MAAM,IAAI,KAAK,CACX,6CAA6C,QAAQ,IAAI,IAAI,IAAI;QAC7D,gEAAgE,CACvE,CAAC;AACN,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,gBAAgB,CAAC,SAA0B;IACvD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,uEAAuE;AACvE,oDAAoD;AACpD,MAAM,UAAU,wBAAwB,CAAC,QAAyB;IAC9D,OAAO,CAAC,kBAAkB,QAAQ,EAAE,EAAE,gBAAgB,QAAQ,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,mBAAmB,CAAC,SAA0B;IAC1D,OAAO,gBAAgB,CAAC;AAC5B,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { HarnessAuth } from "./types.js";
2
- export type ClaudePatchResult = {
3
- path: string;
4
- };
5
- export declare function setupClaude(auth: HarnessAuth, path?: string): Promise<ClaudePatchResult>;
6
- export declare function patchClaude(auth: HarnessAuth, path?: string): Promise<ClaudePatchResult>;
7
- export declare function unpatchClaude(path?: string): Promise<void>;
8
- export declare function claudePath(env?: NodeJS.ProcessEnv): string;
@@ -1,151 +0,0 @@
1
- // Claude Code setup owns global settings patching for the Anthropic-compatible proxy.
2
- import { chmod, mkdir, readFile, writeFile } from "node:fs/promises";
3
- import { homedir } from "node:os";
4
- import { dirname, join } from "node:path";
5
- const BASE = "ANTHROPIC_BASE_URL";
6
- const CUSTOM = "ANTHROPIC_CUSTOM_HEADERS";
7
- const HARNESS = "claude code";
8
- const OLD_HARNESS = "claude-code";
9
- export async function setupClaude(auth, path = claudePath()) {
10
- return patchClaude(auth, path);
11
- }
12
- export async function patchClaude(auth, path = claudePath()) {
13
- const existing = await readJson(path);
14
- const config = patchConfig(existing, auth);
15
- await writeJson(path, config);
16
- return { path };
17
- }
18
- export async function unpatchClaude(path = claudePath()) {
19
- const existing = await readExistingJson(path);
20
- if (!existing)
21
- return;
22
- const env = object(existing.env);
23
- if (typeof env.ANTHROPIC_CUSTOM_HEADERS !== "string")
24
- return;
25
- if (!patched(env))
26
- return;
27
- await writeJson(path, removeBackup({ ...existing, env: restoreEnv(env, backup(existing)) }));
28
- }
29
- export function claudePath(env = process.env) {
30
- return join(env.CLAUDE_CONFIG_DIR || join(homedir(), ".claude"), "settings.json");
31
- }
32
- function patchConfig(input, auth) {
33
- const env = object(input.env);
34
- const previous = backup(input) ?? backupEnv(env);
35
- return {
36
- ...withBackup(input, previous),
37
- env: {
38
- ...env,
39
- [BASE]: trim(auth.proxyUrl),
40
- [CUSTOM]: headers(auth),
41
- },
42
- };
43
- }
44
- function headers(auth) {
45
- return [
46
- `sleeve-token: ${auth.token}`,
47
- "sleeve-provider: anthropic",
48
- `sleeve-harness: ${HARNESS}`,
49
- ].join("\n");
50
- }
51
- function backup(input) {
52
- const sleev = object(input.sleev);
53
- const claude = object(sleev.claudeCode);
54
- if (!("previousEnv" in claude))
55
- return null;
56
- return object(claude.previousEnv);
57
- }
58
- function backupEnv(env) {
59
- if (patched(env))
60
- return {};
61
- const previous = {};
62
- if (BASE in env)
63
- previous[BASE] = env[BASE];
64
- if (CUSTOM in env)
65
- previous[CUSTOM] = env[CUSTOM];
66
- return previous;
67
- }
68
- function withBackup(input, previous) {
69
- const sleev = object(input.sleev);
70
- return {
71
- ...input,
72
- sleev: {
73
- ...sleev,
74
- claudeCode: {
75
- previousEnv: previous,
76
- },
77
- },
78
- };
79
- }
80
- function removeBackup(input) {
81
- const sleev = object(input.sleev);
82
- const { claudeCode: _claude, ...rest } = sleev;
83
- if (Object.keys(rest).length > 0)
84
- return { ...input, sleev: rest };
85
- const { sleev: _sleev, ...config } = input;
86
- return config;
87
- }
88
- function restoreEnv(env, previous) {
89
- const { [BASE]: _base, [CUSTOM]: _headers, ...rest } = env;
90
- const restored = { ...rest };
91
- if (!previous)
92
- return restored;
93
- if (BASE in previous)
94
- restored[BASE] = previous[BASE];
95
- if (CUSTOM in previous)
96
- restored[CUSTOM] = previous[CUSTOM];
97
- return restored;
98
- }
99
- function patched(env) {
100
- const value = env[CUSTOM];
101
- if (typeof value !== "string")
102
- return false;
103
- return (value.includes(`sleeve-harness: ${HARNESS}`) ||
104
- value.includes(`sleeve-harness: ${OLD_HARNESS}`));
105
- }
106
- async function writeJson(path, config) {
107
- await mkdir(dirname(path), { recursive: true, mode: 0o700 });
108
- await writeFile(path, `${JSON.stringify(config, null, 2)}\n`, {
109
- mode: 0o600,
110
- });
111
- await chmod(path, 0o600);
112
- }
113
- async function readJson(path) {
114
- try {
115
- const raw = await readFile(path, "utf8");
116
- const parsed = JSON.parse(raw);
117
- return object(parsed);
118
- }
119
- catch (err) {
120
- if (code(err) === "ENOENT")
121
- return {};
122
- throw err;
123
- }
124
- }
125
- async function readExistingJson(path) {
126
- try {
127
- const raw = await readFile(path, "utf8");
128
- const parsed = JSON.parse(raw);
129
- return object(parsed);
130
- }
131
- catch (err) {
132
- if (code(err) === "ENOENT")
133
- return null;
134
- throw err;
135
- }
136
- }
137
- function object(value) {
138
- if (typeof value !== "object" || value === null || Array.isArray(value))
139
- return {};
140
- return value;
141
- }
142
- function trim(url) {
143
- return url.replace(/\/+$/, "");
144
- }
145
- function code(err) {
146
- if (typeof err !== "object" || err === null || !("code" in err))
147
- return undefined;
148
- const value = err.code;
149
- return typeof value === "string" ? value : undefined;
150
- }
151
- //# sourceMappingURL=claude.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/harness/claude.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { HarnessAuth } from "./types.js";
2
- export type CodexPatchResult = {
3
- path: string;
4
- };
5
- export declare function setupCodex(auth: HarnessAuth, path?: string): Promise<CodexPatchResult>;
6
- export declare function patchCodex(auth: HarnessAuth, path?: string): Promise<CodexPatchResult>;
7
- export declare function unpatchCodex(path?: string): Promise<void>;
8
- export declare function codexPath(env?: NodeJS.ProcessEnv): string;
9
- export declare function patchCodexConfig(input: string, auth: HarnessAuth): string;
10
- export declare function unpatchCodexConfig(input: string): string;
@@ -1,213 +0,0 @@
1
- // Codex setup owns global TOML patching for the OpenAI-compatible proxy provider.
2
- import { chmod, mkdir, readFile, writeFile } from "node:fs/promises";
3
- import { homedir } from "node:os";
4
- import { dirname, join } from "node:path";
5
- const PROVIDER = "sleev";
6
- const HARNESS = "codex cli";
7
- const OLD_HARNESS = "codex";
8
- export async function setupCodex(auth, path = codexPath()) {
9
- return patchCodex(auth, path);
10
- }
11
- export async function patchCodex(auth, path = codexPath()) {
12
- const existing = await readText(path);
13
- const config = patchCodexConfig(existing, auth);
14
- await writeText(path, config);
15
- return { path };
16
- }
17
- export async function unpatchCodex(path = codexPath()) {
18
- const existing = await readText(path);
19
- if (!existing)
20
- return;
21
- const config = unpatchCodexConfig(existing);
22
- await writeText(path, config);
23
- }
24
- export function codexPath(env = process.env) {
25
- return join(env.CODEX_HOME || join(homedir(), ".codex"), "config.toml");
26
- }
27
- export function patchCodexConfig(input, auth) {
28
- const previous = previousProvider(input);
29
- const stale = removeTable(removeTable(input.trimEnd(), table(PROVIDER)), "sleev.codex");
30
- const clean = removeRootKey(stale, "model_provider");
31
- const root = insertRootKey(clean.trimEnd(), "model_provider", PROVIDER);
32
- const meta = previous
33
- ? `\n\n[sleev.codex]\nprevious_model_provider = "${toml(previous)}"`
34
- : "";
35
- return `${patchProvider(root, auth).trimEnd()}${meta}\n`;
36
- }
37
- export function unpatchCodexConfig(input) {
38
- const previous = backup(input);
39
- const provider = rootString(input, "model_provider") ?? "openai";
40
- const clean = removeTable(removeTable(removeRootKey(input.trimEnd(), "model_provider"), table(PROVIDER)), "sleev.codex");
41
- const restored = previous
42
- ? insertRootKey(clean.trimEnd(), "model_provider", previous)
43
- : clean;
44
- const config = provider === PROVIDER ? restored : removeSleevKeys(input, provider);
45
- return `${config.trimEnd()}\n`;
46
- }
47
- function insertRootKey(input, key, value) {
48
- const line = `${key} = "${toml(value)}"`;
49
- if (input.length === 0)
50
- return line;
51
- const lines = input.split("\n");
52
- const index = lines.findIndex((item) => /^\s*\[/.test(item));
53
- if (index === -1)
54
- return `${input}\n${line}`;
55
- return [...lines.slice(0, index), line, "", ...lines.slice(index)].join("\n");
56
- }
57
- function removeRootKey(input, key) {
58
- const lines = input.split("\n");
59
- const next = [];
60
- let root = true;
61
- let skipped = false;
62
- for (const line of lines) {
63
- if (/^\s*\[/.test(line))
64
- root = false;
65
- if (root && new RegExp(`^\\s*${escape(key)}\\s*=`).test(line)) {
66
- skipped = true;
67
- continue;
68
- }
69
- if (skipped && root && /^\s*$/.test(line)) {
70
- skipped = false;
71
- continue;
72
- }
73
- skipped = false;
74
- next.push(line);
75
- }
76
- return next.join("\n");
77
- }
78
- function removeTable(input, name) {
79
- const lines = input.split("\n");
80
- const next = [];
81
- let skip = false;
82
- const header = new RegExp(`^\\s*\\[\\s*${escape(name)}(?:\\.|\\s*\\])`);
83
- for (const line of lines) {
84
- if (header.test(line)) {
85
- skip = true;
86
- continue;
87
- }
88
- if (skip && /^\s*\[/.test(line))
89
- skip = header.test(line);
90
- if (!skip)
91
- next.push(line);
92
- }
93
- return next.join("\n");
94
- }
95
- function patchProvider(input, auth) {
96
- return `${input.trimEnd()}\n\n[${table(PROVIDER)}]\nname = "Sleev"\n${providerKeys(auth).join("\n")}`;
97
- }
98
- function providerKeys(auth) {
99
- return [
100
- `base_url = "${toml(baseUrl(auth.proxyUrl))}"`,
101
- 'wire_api = "responses"',
102
- "",
103
- `[${table(PROVIDER)}.http_headers]`,
104
- `"sleeve-token" = "${toml(auth.token)}"`,
105
- '"sleeve-provider" = "openai"',
106
- `"sleeve-harness" = "${HARNESS}"`,
107
- ];
108
- }
109
- function removeSleevKeys(input, provider) {
110
- const lines = input.split("\n");
111
- const header = new RegExp(`^\\s*\\[\\s*${escape(table(provider))}\\s*\\]\\s*(#.*)?$`);
112
- const index = lines.findIndex((line) => header.test(line));
113
- if (index === -1)
114
- return input;
115
- const current = [];
116
- for (let i = index + 1; i < lines.length; i += 1) {
117
- const line = lines[i] ?? "";
118
- if (/^\s*\[/.test(line))
119
- break;
120
- current.push(line);
121
- }
122
- if (!current.some((line) => owned(line)))
123
- return input;
124
- return lines
125
- .filter((line, i) => {
126
- const inside = i > index && !/^\s*\[/.test(line);
127
- if (!inside)
128
- return true;
129
- return !/^\s*(base_url|wire_api|http_headers)\s*=/.test(line);
130
- })
131
- .join("\n");
132
- }
133
- function previousProvider(input) {
134
- const current = rootString(input, "model_provider");
135
- return backup(input) ?? (current && current !== PROVIDER ? current : null);
136
- }
137
- function backup(input) {
138
- return tableString(input, "sleev.codex", "previous_model_provider");
139
- }
140
- function tableString(input, name, key) {
141
- const lines = input.split("\n");
142
- const header = new RegExp(`^\\s*\\[\\s*${escape(name)}\\s*\\]\\s*(#.*)?$`);
143
- const index = lines.findIndex((line) => header.test(line));
144
- if (index === -1)
145
- return null;
146
- for (let i = index + 1; i < lines.length; i += 1) {
147
- const line = lines[i] ?? "";
148
- if (/^\s*\[/.test(line))
149
- return null;
150
- const match = new RegExp(`^\\s*${escape(key)}\\s*=\\s*(["'])([^"']+)\\1`).exec(line);
151
- if (match?.[2])
152
- return match[2];
153
- }
154
- return null;
155
- }
156
- function rootString(input, key) {
157
- const lines = input.split("\n");
158
- for (const line of lines) {
159
- if (/^\s*\[/.test(line))
160
- return null;
161
- const match = new RegExp(`^\\s*${escape(key)}\\s*=\\s*(["'])([^"']+)\\1`).exec(line);
162
- if (match?.[2])
163
- return match[2];
164
- }
165
- return null;
166
- }
167
- async function readText(path) {
168
- try {
169
- return await readFile(path, "utf8");
170
- }
171
- catch (err) {
172
- if (code(err) === "ENOENT")
173
- return "";
174
- throw err;
175
- }
176
- }
177
- function toml(value) {
178
- return value
179
- .replace(/\\/g, "\\\\")
180
- .replace(/"/g, '\\"')
181
- .replace(/\n/g, "\\n");
182
- }
183
- function escape(value) {
184
- return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
185
- }
186
- function trim(url) {
187
- return url.replace(/\/+$/, "");
188
- }
189
- function baseUrl(url) {
190
- const clean = trim(url);
191
- if (clean.endsWith("/v1"))
192
- return clean;
193
- return `${clean}/v1`;
194
- }
195
- function table(provider) {
196
- return `model_providers.${provider}`;
197
- }
198
- function owned(line) {
199
- return (line.includes(`"sleeve-harness" = "${HARNESS}"`) ||
200
- line.includes(`"sleeve-harness" = "${OLD_HARNESS}"`));
201
- }
202
- async function writeText(path, config) {
203
- await mkdir(dirname(path), { recursive: true, mode: 0o700 });
204
- await writeFile(path, config, { mode: 0o600 });
205
- await chmod(path, 0o600);
206
- }
207
- function code(err) {
208
- if (typeof err !== "object" || err === null || !("code" in err))
209
- return undefined;
210
- const value = err.code;
211
- return typeof value === "string" ? value : undefined;
212
- }
213
- //# sourceMappingURL=codex.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/harness/codex.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import type { Harness, HarnessAuth, HarnessId } from "./types.js";
2
- export type { HarnessAuth, HarnessId } from "./types.js";
3
- export type HarnessSetupResult = {
4
- ids: HarnessId[];
5
- label: string;
6
- };
7
- export type HarnessCleanupResult = {
8
- failures: string[];
9
- };
10
- export declare const HARNESSES: readonly Harness[];
11
- export declare function setupHarnesses(auth: HarnessAuth, ids: readonly HarnessId[]): Promise<HarnessSetupResult>;
12
- export declare function unpatchHarnesses(): Promise<HarnessCleanupResult>;
13
- export declare function harnessLabels(ids: readonly HarnessId[]): string;