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
package/dist/cli.js DELETED
@@ -1,255 +0,0 @@
1
- #!/usr/bin/env node
2
- import { readConfig, setGatewayConfig, signInConfig, signOutConfig, writeConfig, } from "./config/store.js";
3
- import { acquireGateway } from "./gateway/acquire.js";
4
- import { gatewayUpdates } from "./product.js";
5
- import { resolveSleevedPaths } from "./config/paths.js";
6
- import { createController } from "./daemon/controller.js";
7
- import { clearGatewayConfig } from "./daemon/config.js";
8
- import { runTui } from "./tui/openTuiApp.js";
9
- import { firebaseLogin } from "./auth/firebase.js";
10
- import { clearStoredFirebaseAuth, saveFirebaseLogin, } from "./auth/firebase-tokens.js";
11
- import { verifyFirebaseAuth } from "./auth/verify.js";
12
- import { unpatchHarnesses } from "./harness/index.js";
13
- export async function runCli(argv) {
14
- const [command, subcommand] = argv;
15
- if (command === undefined || command === "tui") {
16
- await runTui();
17
- return { exitCode: 0 };
18
- }
19
- if (command === "paths") {
20
- const paths = resolveSleevedPaths();
21
- return {
22
- exitCode: 0,
23
- output: JSON.stringify(paths, null, 2),
24
- };
25
- }
26
- if (command === "status") {
27
- const config = await readConfig();
28
- let daemon;
29
- try {
30
- daemon = await (await createController(config)).status();
31
- }
32
- catch (error) {
33
- daemon = {
34
- error: error instanceof Error
35
- ? error.message
36
- : "Daemon status unavailable.",
37
- };
38
- }
39
- return {
40
- exitCode: 0,
41
- output: JSON.stringify({ config, daemon }, null, 2),
42
- };
43
- }
44
- if (command === "init") {
45
- const config = await readConfig();
46
- await writeConfig(config);
47
- return {
48
- exitCode: 0,
49
- output: "Initialized sleeved config.",
50
- };
51
- }
52
- if (command === "auth" && subcommand === "login") {
53
- const config = await readConfig();
54
- const result = await firebaseLogin({});
55
- await saveFirebaseLogin(result);
56
- await writeConfig(signInConfig(config, {
57
- label: result.label,
58
- accountId: result.accountId,
59
- email: result.email,
60
- createdAt: new Date().toISOString(),
61
- }));
62
- return {
63
- exitCode: 0,
64
- output: `Signed in${result.email ? ` as ${result.email}` : ""}.`,
65
- };
66
- }
67
- if (command === "auth" && subcommand === "logout") {
68
- const config = await readConfig();
69
- const cleanup = await unpatchHarnesses();
70
- try {
71
- const controller = await createController(config);
72
- await controller.teardown();
73
- }
74
- catch {
75
- // Best-effort: never block sign-out on daemon teardown.
76
- }
77
- await clearStoredFirebaseAuth();
78
- await clearGatewayConfig();
79
- await writeConfig(signOutConfig(config));
80
- return {
81
- exitCode: 0,
82
- output: cleanup.failures[0]
83
- ? `Signed out. Some harness config cleanup failed: ${cleanup.failures.join("; ")}`
84
- : "Signed out.",
85
- };
86
- }
87
- if (command === "auth" && subcommand === "verify") {
88
- try {
89
- const me = await verifyFirebaseAuth();
90
- return {
91
- exitCode: 0,
92
- output: `Firebase auth OK${me.email ? ` (${me.email})` : ""}.`,
93
- };
94
- }
95
- catch (error) {
96
- return {
97
- exitCode: 1,
98
- error: error instanceof Error
99
- ? error.message
100
- : "Firebase auth verification failed.",
101
- };
102
- }
103
- }
104
- if (command === "auth" &&
105
- (subcommand === "status" || subcommand === undefined)) {
106
- const config = await readConfig();
107
- return {
108
- exitCode: 0,
109
- output: JSON.stringify({
110
- signedIn: config.auth.signedIn,
111
- email: config.auth.email,
112
- accountId: config.auth.accountId,
113
- createdAt: config.auth.createdAt,
114
- }, null, 2),
115
- };
116
- }
117
- if (command === "gateway" &&
118
- (subcommand === "install" || subcommand === "update")) {
119
- const config = await readConfig();
120
- try {
121
- const { channel } = gatewayUpdates();
122
- const installed = await acquireGateway({
123
- currentVersion: config.gateway?.version ?? null,
124
- });
125
- await writeConfig(setGatewayConfig(config, {
126
- binPath: installed.binPath,
127
- version: installed.version,
128
- channel,
129
- }));
130
- return {
131
- exitCode: 0,
132
- output: `Gateway ${installed.version} ready at ${installed.binPath}.`,
133
- };
134
- }
135
- catch (error) {
136
- return {
137
- exitCode: 1,
138
- error: error instanceof Error
139
- ? error.message
140
- : "Failed to install the gateway binary.",
141
- };
142
- }
143
- }
144
- if (command === "daemon" && subcommand === "status") {
145
- try {
146
- const controller = await createController(await readConfig());
147
- return {
148
- exitCode: 0,
149
- output: JSON.stringify(await controller.status(), null, 2),
150
- };
151
- }
152
- catch (error) {
153
- return {
154
- exitCode: 1,
155
- error: error instanceof Error
156
- ? error.message
157
- : "Daemon status unavailable.",
158
- };
159
- }
160
- }
161
- if (command === "daemon" &&
162
- (subcommand === "start" || subcommand === "restart")) {
163
- let config = await readConfig();
164
- try {
165
- // Auto-acquire the binary on first start unless a dev override
166
- // (SLEEVE_GATEWAY_BIN) is set or it's already installed.
167
- if (!config.gateway && !process.env.SLEEVE_GATEWAY_BIN?.trim()) {
168
- const { channel } = gatewayUpdates();
169
- const installed = await acquireGateway({
170
- currentVersion: null,
171
- });
172
- config = setGatewayConfig(config, {
173
- binPath: installed.binPath,
174
- version: installed.version,
175
- channel,
176
- });
177
- await writeConfig(config);
178
- }
179
- const controller = await createController(config);
180
- const status = subcommand === "restart"
181
- ? await controller.restart()
182
- : await controller.start();
183
- return {
184
- exitCode: 0,
185
- output: `Gateway daemon ${subcommand}ed via ${status.backend}: ${status.address} (healthy=${status.healthy}, configured=${status.configured ?? "n/a"}).`,
186
- };
187
- }
188
- catch (error) {
189
- return {
190
- exitCode: 1,
191
- error: error instanceof Error
192
- ? error.message
193
- : `Failed to ${subcommand} the gateway daemon.`,
194
- };
195
- }
196
- }
197
- if (command === "daemon" && subcommand === "stop") {
198
- try {
199
- const controller = await createController(await readConfig());
200
- const status = await controller.stop();
201
- return {
202
- exitCode: 0,
203
- output: status.running
204
- ? `Gateway daemon still ${status.detail ?? "running"}.`
205
- : `Gateway daemon stopped (${status.backend}).`,
206
- };
207
- }
208
- catch (error) {
209
- return {
210
- exitCode: 1,
211
- error: error instanceof Error
212
- ? error.message
213
- : "Failed to stop the gateway daemon.",
214
- };
215
- }
216
- }
217
- if (command === "setup") {
218
- return {
219
- exitCode: 2,
220
- error: "Harness setup is not implemented yet.",
221
- };
222
- }
223
- return {
224
- exitCode: 2,
225
- error: [
226
- "Usage:",
227
- " sleeved",
228
- " sleeved tui",
229
- " sleeved init",
230
- " sleeved paths",
231
- " sleeved status",
232
- " sleeved auth login",
233
- " sleeved auth status",
234
- " sleeved auth logout",
235
- " sleeved gateway install",
236
- " sleeved daemon status",
237
- " sleeved daemon start",
238
- " sleeved daemon restart",
239
- " sleeved daemon stop",
240
- " sleeved setup <harness>",
241
- ].join("\n"),
242
- };
243
- }
244
- const isEntrypoint = process.argv[1] === new URL(import.meta.url).pathname;
245
- if (isEntrypoint) {
246
- const result = await runCli(process.argv.slice(2));
247
- if (result.output) {
248
- console.log(result.output);
249
- }
250
- if (result.error) {
251
- console.error(result.error);
252
- }
253
- process.exitCode = result.exitCode;
254
- }
255
- //# sourceMappingURL=cli.js.map
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- export type SleevedPaths = {
2
- configDir: string;
3
- dataDir: string;
4
- stateDir: string;
5
- configFile: string;
6
- firebaseCredentialsFile: string;
7
- gatewayConfigFile: string;
8
- databaseFile: string;
9
- logDir: string;
10
- pidFile: string;
11
- };
12
- export declare function resolveSleevedPaths(env?: NodeJS.ProcessEnv): SleevedPaths;
@@ -1,34 +0,0 @@
1
- import os from "node:os";
2
- import path from "node:path";
3
- const APP_NAME = "sleev";
4
- export function resolveSleevedPaths(env = process.env) {
5
- const home = os.homedir();
6
- const platform = os.platform();
7
- const configBase = env.XDG_CONFIG_HOME ??
8
- (platform === "win32"
9
- ? (env.APPDATA ?? path.join(home, "AppData", "Roaming"))
10
- : path.join(home, ".config"));
11
- const dataBase = env.XDG_DATA_HOME ??
12
- (platform === "win32"
13
- ? (env.LOCALAPPDATA ?? path.join(home, "AppData", "Local"))
14
- : path.join(home, ".local", "share"));
15
- const stateBase = env.XDG_STATE_HOME ??
16
- (platform === "win32"
17
- ? (env.LOCALAPPDATA ?? path.join(home, "AppData", "Local"))
18
- : path.join(home, ".local", "state"));
19
- const configDir = path.join(configBase, APP_NAME);
20
- const dataDir = path.join(dataBase, APP_NAME);
21
- const stateDir = path.join(stateBase, APP_NAME);
22
- return {
23
- configDir,
24
- dataDir,
25
- stateDir,
26
- configFile: path.join(configDir, "config.json"),
27
- firebaseCredentialsFile: path.join(configDir, "firebase.json"),
28
- gatewayConfigFile: path.join(configDir, "gateway.json"),
29
- databaseFile: path.join(dataDir, "sleeve.sqlite"),
30
- logDir: path.join(stateDir, "logs"),
31
- pidFile: path.join(stateDir, "sleeved.pid"),
32
- };
33
- }
34
- //# sourceMappingURL=paths.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAc7B,MAAM,QAAQ,GAAG,OAAO,CAAC;AAEzB,MAAM,UAAU,mBAAmB,CAC/B,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAE/B,MAAM,UAAU,GACZ,GAAG,CAAC,eAAe;QACnB,CAAC,QAAQ,KAAK,OAAO;YACjB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACxD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAEtC,MAAM,QAAQ,GACV,GAAG,CAAC,aAAa;QACjB,CAAC,QAAQ,KAAK,OAAO;YACjB,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAE9C,MAAM,SAAS,GACX,GAAG,CAAC,cAAc;QAClB,CAAC,QAAQ,KAAK,OAAO;YACjB,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhD,OAAO;QACH,SAAS;QACT,OAAO;QACP,QAAQ;QACR,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;QAC/C,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC;QAC9D,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC;QACvD,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;QACjD,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;QACnC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC;KAC9C,CAAC;AACN,CAAC"}
@@ -1,63 +0,0 @@
1
- export type HarnessSlug = "claude-code" | "codex" | "opencode" | "gemini";
2
- export type ServiceLocation = "local" | "cloud";
3
- export type SleevedConfig = {
4
- version: 1;
5
- proxy: {
6
- host: string;
7
- port: number;
8
- };
9
- auth: {
10
- signedIn: boolean;
11
- label?: string | null;
12
- accountId?: string | null;
13
- email?: string | null;
14
- createdAt?: string;
15
- };
16
- location: {
17
- mode: ServiceLocation | null;
18
- };
19
- localInstallation: LocalInstallation | null;
20
- gateway: GatewayInstall | null;
21
- tokens: {
22
- defaultId: string | null;
23
- items: SleevedToken[];
24
- };
25
- harnesses: Partial<Record<HarnessSlug, {
26
- configured: boolean;
27
- }>>;
28
- };
29
- export type LocalInstallation = {
30
- installationId: string;
31
- credential: string;
32
- controlUrl: string;
33
- };
34
- export type GatewayInstall = {
35
- binPath: string;
36
- version: string;
37
- channel: string;
38
- };
39
- export type SleevedToken = {
40
- id: string;
41
- token: string;
42
- label: string | null;
43
- proxyUrl: string;
44
- createdAt: string;
45
- };
46
- type AuthSession = {
47
- label: string | null;
48
- accountId: string;
49
- email: string | null;
50
- createdAt: string;
51
- };
52
- export declare function defaultConfig(): SleevedConfig;
53
- export declare function signInConfig(config: SleevedConfig, session: AuthSession): SleevedConfig;
54
- export declare function signOutConfig(config: SleevedConfig): SleevedConfig;
55
- export declare function setLocalInstallationConfig(config: SleevedConfig, localInstallation: LocalInstallation | null): SleevedConfig;
56
- export declare function setGatewayConfig(config: SleevedConfig, gateway: GatewayInstall | null): SleevedConfig;
57
- export declare function setLocationConfig(config: SleevedConfig, mode: ServiceLocation): SleevedConfig;
58
- export declare function setHarnessesConfig(config: SleevedConfig, slugs: readonly HarnessSlug[]): SleevedConfig;
59
- export declare function addTokenConfig(config: SleevedConfig, token: SleevedToken): SleevedConfig;
60
- export declare function setDefaultTokenConfig(config: SleevedConfig, id: string): SleevedConfig;
61
- export declare function readConfig(): Promise<SleevedConfig>;
62
- export declare function writeConfig(config: SleevedConfig): Promise<void>;
63
- export {};
@@ -1,270 +0,0 @@
1
- // Owns persisted sleeved config shape, normalization, and state transitions.
2
- import fs from "node:fs/promises";
3
- import path from "node:path";
4
- import { resolveSleevedPaths } from "./paths.js";
5
- export function defaultConfig() {
6
- return {
7
- version: 1,
8
- proxy: {
9
- host: "127.0.0.1",
10
- port: 17321,
11
- },
12
- auth: {
13
- signedIn: false,
14
- },
15
- location: {
16
- mode: null,
17
- },
18
- localInstallation: null,
19
- gateway: null,
20
- tokens: {
21
- defaultId: null,
22
- items: [],
23
- },
24
- harnesses: {},
25
- };
26
- }
27
- export function signInConfig(config, session) {
28
- return {
29
- ...config,
30
- auth: {
31
- signedIn: true,
32
- label: session.label,
33
- accountId: session.accountId,
34
- email: session.email,
35
- createdAt: session.createdAt,
36
- },
37
- };
38
- }
39
- export function signOutConfig(config) {
40
- return {
41
- ...config,
42
- auth: {
43
- signedIn: false,
44
- },
45
- localInstallation: null,
46
- tokens: {
47
- defaultId: null,
48
- items: [],
49
- },
50
- harnesses: {},
51
- };
52
- }
53
- export function setLocalInstallationConfig(config, localInstallation) {
54
- return {
55
- ...config,
56
- localInstallation,
57
- };
58
- }
59
- export function setGatewayConfig(config, gateway) {
60
- return {
61
- ...config,
62
- gateway,
63
- };
64
- }
65
- export function setLocationConfig(config, mode) {
66
- return {
67
- ...config,
68
- location: {
69
- mode,
70
- },
71
- };
72
- }
73
- export function setHarnessesConfig(config, slugs) {
74
- return {
75
- ...config,
76
- harnesses: {
77
- ...config.harnesses,
78
- ...Object.fromEntries(slugs.map((slug) => [slug, { configured: true }])),
79
- },
80
- };
81
- }
82
- export function addTokenConfig(config, token) {
83
- const items = [
84
- token,
85
- ...config.tokens.items.filter((item) => item.id !== token.id),
86
- ];
87
- return {
88
- ...config,
89
- tokens: {
90
- defaultId: token.id,
91
- items,
92
- },
93
- };
94
- }
95
- export function setDefaultTokenConfig(config, id) {
96
- const defaultId = config.tokens.items.some((item) => item.id === id)
97
- ? id
98
- : config.tokens.defaultId;
99
- return {
100
- ...config,
101
- tokens: {
102
- ...config.tokens,
103
- defaultId,
104
- },
105
- };
106
- }
107
- export async function readConfig() {
108
- const paths = resolveSleevedPaths();
109
- try {
110
- const raw = await fs.readFile(paths.configFile, "utf8");
111
- return normalizeConfig(JSON.parse(raw));
112
- }
113
- catch (error) {
114
- if (isNotFoundError(error)) {
115
- return defaultConfig();
116
- }
117
- throw error;
118
- }
119
- }
120
- export async function writeConfig(config) {
121
- const paths = resolveSleevedPaths();
122
- await fs.mkdir(path.dirname(paths.configFile), { recursive: true });
123
- await fs.writeFile(paths.configFile, `${JSON.stringify(config, null, 2)}\n`, {
124
- mode: 0o600,
125
- });
126
- }
127
- function normalizeConfig(value) {
128
- if (!isRecord(value)) {
129
- return defaultConfig();
130
- }
131
- const defaults = defaultConfig();
132
- const proxy = isRecord(value.proxy) ? value.proxy : {};
133
- const auth = isRecord(value.auth) ? value.auth : {};
134
- const location = isRecord(value.location) ? value.location : {};
135
- const tokens = isRecord(value.tokens) ? value.tokens : {};
136
- const harnesses = isRecord(value.harnesses) ? value.harnesses : {};
137
- const accountId = nonEmptyString(auth.accountId);
138
- const signedIn = auth.signedIn === true && typeof accountId === "string";
139
- return {
140
- version: 1,
141
- proxy: {
142
- host: typeof proxy.host === "string"
143
- ? proxy.host
144
- : defaults.proxy.host,
145
- port: typeof proxy.port === "number"
146
- ? proxy.port
147
- : defaults.proxy.port,
148
- },
149
- auth: {
150
- signedIn,
151
- label: nullableString(auth.label),
152
- accountId,
153
- email: nullableString(auth.email),
154
- createdAt: typeof auth.createdAt === "string" ? auth.createdAt : undefined,
155
- },
156
- location: {
157
- mode: locationMode(location.mode),
158
- },
159
- localInstallation: normalizeLocalInstallation(value.localInstallation),
160
- gateway: normalizeGatewayInstall(value.gateway),
161
- tokens: normalizeTokens(tokens),
162
- harnesses: normalizeHarnesses(harnesses),
163
- };
164
- }
165
- function locationMode(value) {
166
- if (value === "local" || value === "cloud")
167
- return value;
168
- return null;
169
- }
170
- function normalizeGatewayInstall(value) {
171
- if (!isRecord(value))
172
- return null;
173
- const binPath = nonEmptyString(value.binPath);
174
- const version = nonEmptyString(value.version);
175
- const channel = nonEmptyString(value.channel);
176
- if (!binPath || !version || !channel)
177
- return null;
178
- return { binPath, version, channel };
179
- }
180
- function normalizeLocalInstallation(value) {
181
- if (!isRecord(value))
182
- return null;
183
- const installationId = nonEmptyString(value.installationId);
184
- const credential = nonEmptyString(value.credential);
185
- const controlUrl = nonEmptyString(value.controlUrl);
186
- if (!installationId || !credential || !controlUrl)
187
- return null;
188
- if (!credential.startsWith("slv_inst_") || !validUrl(controlUrl)) {
189
- return null;
190
- }
191
- return { installationId, credential, controlUrl };
192
- }
193
- function normalizeTokens(value) {
194
- const items = Array.isArray(value.items)
195
- ? value.items.flatMap(tokenRecord)
196
- : [];
197
- const rawDefaultId = typeof value.defaultId === "string" ? value.defaultId : null;
198
- const defaultId = items.some((item) => item.id === rawDefaultId)
199
- ? rawDefaultId
200
- : (items[0]?.id ?? null);
201
- return { defaultId, items };
202
- }
203
- function tokenRecord(value) {
204
- if (!isRecord(value))
205
- return [];
206
- const id = nonEmptyString(value.id);
207
- const token = nonEmptyString(value.token);
208
- const proxyUrl = nonEmptyString(value.proxyUrl);
209
- const createdAt = nonEmptyString(value.createdAt);
210
- if (!id || !token || !token.startsWith("slv_live_"))
211
- return [];
212
- if (!proxyUrl || !validUrl(proxyUrl))
213
- return [];
214
- if (!createdAt || Number.isNaN(Date.parse(createdAt)))
215
- return [];
216
- return [
217
- {
218
- id,
219
- token,
220
- label: nullableString(value.label) ?? null,
221
- proxyUrl,
222
- createdAt,
223
- },
224
- ];
225
- }
226
- function normalizeHarnesses(value) {
227
- const result = {};
228
- for (const slug of [
229
- "claude-code",
230
- "codex",
231
- "opencode",
232
- "gemini",
233
- ]) {
234
- const entry = value[slug];
235
- if (isRecord(entry) && typeof entry.configured === "boolean") {
236
- result[slug] = { configured: entry.configured };
237
- }
238
- }
239
- return result;
240
- }
241
- function isRecord(value) {
242
- return typeof value === "object" && value !== null && !Array.isArray(value);
243
- }
244
- function nullableString(value) {
245
- if (typeof value === "undefined")
246
- return undefined;
247
- if (value === null || typeof value === "string")
248
- return value;
249
- return undefined;
250
- }
251
- function nonEmptyString(value) {
252
- if (typeof value !== "string")
253
- return undefined;
254
- return value ? value : undefined;
255
- }
256
- function validUrl(raw) {
257
- try {
258
- const url = new URL(raw);
259
- return url.protocol === "https:" || url.protocol === "http:";
260
- }
261
- catch {
262
- return false;
263
- }
264
- }
265
- function isNotFoundError(error) {
266
- return (error instanceof Error &&
267
- "code" in error &&
268
- error.code === "ENOENT");
269
- }
270
- //# sourceMappingURL=store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/config/store.ts"],"names":[],"mappings":"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"}