sleev 0.0.12 → 0.0.13

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 (143) hide show
  1. package/README.md +19 -39
  2. package/dist/auth/browser.d.ts +12 -0
  3. package/dist/auth/browser.js +33 -24
  4. package/dist/auth/browser.js.map +1 -0
  5. package/dist/auth/firebase-tokens.d.ts +39 -0
  6. package/dist/auth/firebase-tokens.js +173 -0
  7. package/dist/auth/firebase-tokens.js.map +1 -0
  8. package/dist/auth/firebase.d.ts +17 -0
  9. package/dist/auth/firebase.js +55 -0
  10. package/dist/auth/firebase.js.map +1 -0
  11. package/dist/auth/login.d.ts +22 -0
  12. package/dist/auth/login.js +31 -28
  13. package/dist/auth/login.js.map +1 -0
  14. package/dist/auth/loopback.d.ts +19 -0
  15. package/dist/auth/loopback.js +114 -44
  16. package/dist/auth/loopback.js.map +1 -0
  17. package/dist/auth/schema.d.ts +26 -0
  18. package/dist/auth/schema.js +59 -17
  19. package/dist/auth/schema.js.map +1 -0
  20. package/dist/auth/token.d.ts +19 -0
  21. package/dist/auth/token.js +53 -0
  22. package/dist/auth/token.js.map +1 -0
  23. package/dist/auth/verify.d.ts +6 -0
  24. package/dist/auth/verify.js +22 -0
  25. package/dist/auth/verify.js.map +1 -0
  26. package/dist/cli.d.ts +8 -0
  27. package/dist/cli.js +245 -59
  28. package/dist/cli.js.map +1 -0
  29. package/dist/config/paths.d.ts +12 -0
  30. package/dist/config/paths.js +34 -0
  31. package/dist/config/paths.js.map +1 -0
  32. package/dist/config/store.d.ts +63 -0
  33. package/dist/config/store.js +270 -0
  34. package/dist/config/store.js.map +1 -0
  35. package/dist/control/local-installations.d.ts +13 -0
  36. package/dist/control/local-installations.js +37 -0
  37. package/dist/control/local-installations.js.map +1 -0
  38. package/dist/daemon/config.d.ts +10 -0
  39. package/dist/daemon/config.js +52 -0
  40. package/dist/daemon/config.js.map +1 -0
  41. package/dist/daemon/controller.d.ts +29 -0
  42. package/dist/daemon/controller.js +34 -0
  43. package/dist/daemon/controller.js.map +1 -0
  44. package/dist/daemon/health.d.ts +8 -0
  45. package/dist/daemon/health.js +47 -0
  46. package/dist/daemon/health.js.map +1 -0
  47. package/dist/daemon/start.d.ts +5 -0
  48. package/dist/daemon/start.js +24 -0
  49. package/dist/daemon/start.js.map +1 -0
  50. package/dist/daemon/systemd.d.ts +35 -0
  51. package/dist/daemon/systemd.js +181 -0
  52. package/dist/daemon/systemd.js.map +1 -0
  53. package/dist/gateway/acquire.d.ts +14 -0
  54. package/dist/gateway/acquire.js +112 -0
  55. package/dist/gateway/acquire.js.map +1 -0
  56. package/dist/gateway/manifest.d.ts +26 -0
  57. package/dist/gateway/manifest.js +98 -0
  58. package/dist/gateway/manifest.js.map +1 -0
  59. package/dist/gateway/platform.d.ts +5 -0
  60. package/dist/gateway/platform.js +27 -0
  61. package/dist/gateway/platform.js.map +1 -0
  62. package/dist/harness/claude.d.ts +8 -0
  63. package/dist/{apps → harness}/claude.js +28 -28
  64. package/dist/harness/claude.js.map +1 -0
  65. package/dist/harness/codex.d.ts +10 -0
  66. package/dist/{apps → harness}/codex.js +50 -45
  67. package/dist/harness/codex.js.map +1 -0
  68. package/dist/harness/index.d.ts +13 -0
  69. package/dist/harness/index.js +63 -0
  70. package/dist/harness/index.js.map +1 -0
  71. package/dist/harness/opencode-config.d.ts +8 -0
  72. package/dist/{apps → harness}/opencode-config.js +116 -83
  73. package/dist/harness/opencode-config.js.map +1 -0
  74. package/dist/harness/opencode.d.ts +14 -0
  75. package/dist/harness/opencode.js +50 -0
  76. package/dist/harness/opencode.js.map +1 -0
  77. package/dist/harness/providers.d.ts +8 -0
  78. package/dist/harness/providers.js +30 -0
  79. package/dist/harness/providers.js.map +1 -0
  80. package/dist/harness/types.d.ts +14 -0
  81. package/dist/harness/types.js +2 -0
  82. package/dist/harness/types.js.map +1 -0
  83. package/dist/product.d.ts +12 -0
  84. package/dist/product.js +53 -10
  85. package/dist/product.js.map +1 -0
  86. package/dist/tui/clipboard.d.ts +1 -0
  87. package/dist/tui/clipboard.js +48 -0
  88. package/dist/tui/clipboard.js.map +1 -0
  89. package/dist/tui/openTuiApp.d.ts +1 -0
  90. package/dist/tui/openTuiApp.js +1436 -0
  91. package/dist/tui/openTuiApp.js.map +1 -0
  92. package/dist/tui/pages/flow-screen.d.ts +50 -0
  93. package/dist/tui/pages/flow-screen.js +435 -0
  94. package/dist/tui/pages/flow-screen.js.map +1 -0
  95. package/dist/tui/pages/footer.d.ts +7 -0
  96. package/dist/tui/pages/footer.js +14 -0
  97. package/dist/tui/pages/footer.js.map +1 -0
  98. package/dist/tui/pages/home-screen.d.ts +19 -0
  99. package/dist/tui/pages/home-screen.js +89 -0
  100. package/dist/tui/pages/home-screen.js.map +1 -0
  101. package/dist/tui/pages/index.d.ts +17 -0
  102. package/dist/tui/pages/index.js +11 -0
  103. package/dist/tui/pages/index.js.map +1 -0
  104. package/dist/tui/pages/local-setup-screen.d.ts +23 -0
  105. package/dist/tui/pages/local-setup-screen.js +134 -0
  106. package/dist/tui/pages/local-setup-screen.js.map +1 -0
  107. package/dist/tui/pages/location-card.d.ts +19 -0
  108. package/dist/tui/pages/location-card.js +116 -0
  109. package/dist/tui/pages/location-card.js.map +1 -0
  110. package/dist/tui/pages/menu-screen.d.ts +24 -0
  111. package/dist/tui/pages/menu-screen.js +117 -0
  112. package/dist/tui/pages/menu-screen.js.map +1 -0
  113. package/dist/tui/pages/session-grid.d.ts +23 -0
  114. package/dist/tui/pages/session-grid.js +552 -0
  115. package/dist/tui/pages/session-grid.js.map +1 -0
  116. package/dist/tui/pages/setup-screen.d.ts +15 -0
  117. package/dist/tui/pages/setup-screen.js +80 -0
  118. package/dist/tui/pages/setup-screen.js.map +1 -0
  119. package/dist/tui/pages/terminal-log.d.ts +14 -0
  120. package/dist/tui/pages/terminal-log.js +104 -0
  121. package/dist/tui/pages/terminal-log.js.map +1 -0
  122. package/dist/tui/pages/welcome-screen.d.ts +16 -0
  123. package/dist/tui/pages/welcome-screen.js +80 -0
  124. package/dist/tui/pages/welcome-screen.js.map +1 -0
  125. package/dist/tui/saved-tokens.d.ts +10 -0
  126. package/dist/tui/saved-tokens.js +104 -0
  127. package/dist/tui/saved-tokens.js.map +1 -0
  128. package/dist/tui/theme.d.ts +25 -0
  129. package/dist/tui/theme.js +27 -0
  130. package/dist/tui/theme.js.map +1 -0
  131. package/package.json +55 -38
  132. package/dist/apps/opencode.js +0 -158
  133. package/dist/apps.js +0 -148
  134. package/dist/auth/command.js +0 -109
  135. package/dist/auth/index.js +0 -2
  136. package/dist/auth/validation.js +0 -27
  137. package/dist/credentials/index.js +0 -3
  138. package/dist/credentials/schema.js +0 -63
  139. package/dist/credentials/store.js +0 -52
  140. package/dist/harnesses.js +0 -66
  141. package/dist/index.js +0 -3
  142. package/dist/providers.js +0 -30
  143. package/dist/terminal.js +0 -55
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/harness/claude.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
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,16 +1,12 @@
1
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
- import { field, success } from '../terminal.js';
6
- const PROVIDER = 'sleev';
7
- const HARNESS = 'codex cli';
8
- const OLD_HARNESS = 'codex';
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";
9
8
  export async function setupCodex(auth, path = codexPath()) {
10
- const result = await patchCodex(auth, path);
11
- success(process.stdout, 'Configured Codex');
12
- field(process.stdout, 'config', result.path);
13
- return result;
9
+ return patchCodex(auth, path);
14
10
  }
15
11
  export async function patchCodex(auth, path = codexPath()) {
16
12
  const existing = await readText(path);
@@ -26,21 +22,25 @@ export async function unpatchCodex(path = codexPath()) {
26
22
  await writeText(path, config);
27
23
  }
28
24
  export function codexPath(env = process.env) {
29
- return join(env.CODEX_HOME || join(homedir(), '.codex'), 'config.toml');
25
+ return join(env.CODEX_HOME || join(homedir(), ".codex"), "config.toml");
30
26
  }
31
27
  export function patchCodexConfig(input, auth) {
32
28
  const previous = previousProvider(input);
33
- const stale = removeTable(removeTable(input.trimEnd(), table(PROVIDER)), 'sleev.codex');
34
- const clean = removeRootKey(stale, 'model_provider');
35
- const root = insertRootKey(clean.trimEnd(), 'model_provider', PROVIDER);
36
- const meta = previous ? `\n\n[sleev.codex]\nprevious_model_provider = "${toml(previous)}"` : '';
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
+ : "";
37
35
  return `${patchProvider(root, auth).trimEnd()}${meta}\n`;
38
36
  }
39
37
  export function unpatchCodexConfig(input) {
40
38
  const previous = backup(input);
41
- const provider = rootString(input, 'model_provider') ?? 'openai';
42
- const clean = removeTable(removeTable(removeRootKey(input.trimEnd(), 'model_provider'), table(PROVIDER)), 'sleev.codex');
43
- const restored = previous ? insertRootKey(clean.trimEnd(), 'model_provider', previous) : clean;
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
44
  const config = provider === PROVIDER ? restored : removeSleevKeys(input, provider);
45
45
  return `${config.trimEnd()}\n`;
46
46
  }
@@ -48,14 +48,14 @@ function insertRootKey(input, key, value) {
48
48
  const line = `${key} = "${toml(value)}"`;
49
49
  if (input.length === 0)
50
50
  return line;
51
- const lines = input.split('\n');
51
+ const lines = input.split("\n");
52
52
  const index = lines.findIndex((item) => /^\s*\[/.test(item));
53
53
  if (index === -1)
54
54
  return `${input}\n${line}`;
55
- return [...lines.slice(0, index), line, '', ...lines.slice(index)].join('\n');
55
+ return [...lines.slice(0, index), line, "", ...lines.slice(index)].join("\n");
56
56
  }
57
57
  function removeRootKey(input, key) {
58
- const lines = input.split('\n');
58
+ const lines = input.split("\n");
59
59
  const next = [];
60
60
  let root = true;
61
61
  let skipped = false;
@@ -73,10 +73,10 @@ function removeRootKey(input, key) {
73
73
  skipped = false;
74
74
  next.push(line);
75
75
  }
76
- return next.join('\n');
76
+ return next.join("\n");
77
77
  }
78
78
  function removeTable(input, name) {
79
- const lines = input.split('\n');
79
+ const lines = input.split("\n");
80
80
  const next = [];
81
81
  let skip = false;
82
82
  const header = new RegExp(`^\\s*\\[\\s*${escape(name)}(?:\\.|\\s*\\])`);
@@ -90,16 +90,16 @@ function removeTable(input, name) {
90
90
  if (!skip)
91
91
  next.push(line);
92
92
  }
93
- return next.join('\n');
93
+ return next.join("\n");
94
94
  }
95
95
  function patchProvider(input, auth) {
96
- return `${input.trimEnd()}\n\n[${table(PROVIDER)}]\nname = "Sleev"\n${providerKeys(auth).join('\n')}`;
96
+ return `${input.trimEnd()}\n\n[${table(PROVIDER)}]\nname = "Sleev"\n${providerKeys(auth).join("\n")}`;
97
97
  }
98
98
  function providerKeys(auth) {
99
99
  return [
100
100
  `base_url = "${toml(baseUrl(auth.proxyUrl))}"`,
101
101
  'wire_api = "responses"',
102
- '',
102
+ "",
103
103
  `[${table(PROVIDER)}.http_headers]`,
104
104
  `"sleeve-token" = "${toml(auth.token)}"`,
105
105
  '"sleeve-provider" = "openai"',
@@ -107,14 +107,14 @@ function providerKeys(auth) {
107
107
  ];
108
108
  }
109
109
  function removeSleevKeys(input, provider) {
110
- const lines = input.split('\n');
110
+ const lines = input.split("\n");
111
111
  const header = new RegExp(`^\\s*\\[\\s*${escape(table(provider))}\\s*\\]\\s*(#.*)?$`);
112
112
  const index = lines.findIndex((line) => header.test(line));
113
113
  if (index === -1)
114
114
  return input;
115
115
  const current = [];
116
116
  for (let i = index + 1; i < lines.length; i += 1) {
117
- const line = lines[i] ?? '';
117
+ const line = lines[i] ?? "";
118
118
  if (/^\s*\[/.test(line))
119
119
  break;
120
120
  current.push(line);
@@ -128,23 +128,23 @@ function removeSleevKeys(input, provider) {
128
128
  return true;
129
129
  return !/^\s*(base_url|wire_api|http_headers)\s*=/.test(line);
130
130
  })
131
- .join('\n');
131
+ .join("\n");
132
132
  }
133
133
  function previousProvider(input) {
134
- const current = rootString(input, 'model_provider');
134
+ const current = rootString(input, "model_provider");
135
135
  return backup(input) ?? (current && current !== PROVIDER ? current : null);
136
136
  }
137
137
  function backup(input) {
138
- return tableString(input, 'sleev.codex', 'previous_model_provider');
138
+ return tableString(input, "sleev.codex", "previous_model_provider");
139
139
  }
140
140
  function tableString(input, name, key) {
141
- const lines = input.split('\n');
141
+ const lines = input.split("\n");
142
142
  const header = new RegExp(`^\\s*\\[\\s*${escape(name)}\\s*\\]\\s*(#.*)?$`);
143
143
  const index = lines.findIndex((line) => header.test(line));
144
144
  if (index === -1)
145
145
  return null;
146
146
  for (let i = index + 1; i < lines.length; i += 1) {
147
- const line = lines[i] ?? '';
147
+ const line = lines[i] ?? "";
148
148
  if (/^\s*\[/.test(line))
149
149
  return null;
150
150
  const match = new RegExp(`^\\s*${escape(key)}\\s*=\\s*(["'])([^"']+)\\1`).exec(line);
@@ -154,7 +154,7 @@ function tableString(input, name, key) {
154
154
  return null;
155
155
  }
156
156
  function rootString(input, key) {
157
- const lines = input.split('\n');
157
+ const lines = input.split("\n");
158
158
  for (const line of lines) {
159
159
  if (/^\s*\[/.test(line))
160
160
  return null;
@@ -166,26 +166,29 @@ function rootString(input, key) {
166
166
  }
167
167
  async function readText(path) {
168
168
  try {
169
- return await readFile(path, 'utf8');
169
+ return await readFile(path, "utf8");
170
170
  }
171
171
  catch (err) {
172
- if (code(err) === 'ENOENT')
173
- return '';
172
+ if (code(err) === "ENOENT")
173
+ return "";
174
174
  throw err;
175
175
  }
176
176
  }
177
177
  function toml(value) {
178
- return value.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n');
178
+ return value
179
+ .replace(/\\/g, "\\\\")
180
+ .replace(/"/g, '\\"')
181
+ .replace(/\n/g, "\\n");
179
182
  }
180
183
  function escape(value) {
181
- return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
184
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
182
185
  }
183
186
  function trim(url) {
184
- return url.replace(/\/+$/, '');
187
+ return url.replace(/\/+$/, "");
185
188
  }
186
189
  function baseUrl(url) {
187
190
  const clean = trim(url);
188
- if (clean.endsWith('/v1'))
191
+ if (clean.endsWith("/v1"))
189
192
  return clean;
190
193
  return `${clean}/v1`;
191
194
  }
@@ -193,7 +196,8 @@ function table(provider) {
193
196
  return `model_providers.${provider}`;
194
197
  }
195
198
  function owned(line) {
196
- return line.includes(`"sleeve-harness" = "${HARNESS}"`) || line.includes(`"sleeve-harness" = "${OLD_HARNESS}"`);
199
+ return (line.includes(`"sleeve-harness" = "${HARNESS}"`) ||
200
+ line.includes(`"sleeve-harness" = "${OLD_HARNESS}"`));
197
201
  }
198
202
  async function writeText(path, config) {
199
203
  await mkdir(dirname(path), { recursive: true, mode: 0o700 });
@@ -201,8 +205,9 @@ async function writeText(path, config) {
201
205
  await chmod(path, 0o600);
202
206
  }
203
207
  function code(err) {
204
- if (typeof err !== 'object' || err === null || !('code' in err))
208
+ if (typeof err !== "object" || err === null || !("code" in err))
205
209
  return undefined;
206
210
  const value = err.code;
207
- return typeof value === 'string' ? value : undefined;
211
+ return typeof value === "string" ? value : undefined;
208
212
  }
213
+ //# sourceMappingURL=codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/harness/codex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
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;
@@ -0,0 +1,63 @@
1
+ // Harness setup coordinates local tool config patchers for onboarding.
2
+ import { setupClaude, unpatchClaude } from "./claude.js";
3
+ import { setupCodex, unpatchCodex } from "./codex.js";
4
+ import { setupOpenCode, unpatchOpenCode } from "./opencode.js";
5
+ export const HARNESSES = [
6
+ {
7
+ id: "opencode",
8
+ label: "opencode",
9
+ command: "opencode",
10
+ setup: setupOpenCode,
11
+ unpatch: unpatchOpenCode,
12
+ },
13
+ {
14
+ id: "claude-code",
15
+ label: "claude code",
16
+ command: "claude",
17
+ setup: setupClaude,
18
+ unpatch: unpatchClaude,
19
+ },
20
+ {
21
+ id: "codex",
22
+ label: "codex",
23
+ command: "codex",
24
+ setup: setupCodex,
25
+ unpatch: unpatchCodex,
26
+ },
27
+ ];
28
+ export async function setupHarnesses(auth, ids) {
29
+ const configured = [];
30
+ for (const harness of HARNESSES) {
31
+ if (!ids.includes(harness.id))
32
+ continue;
33
+ const result = await harness.setup(auth);
34
+ if (result === null)
35
+ continue;
36
+ configured.push(harness.id);
37
+ }
38
+ return { ids: configured, label: harnessLabels(configured) };
39
+ }
40
+ export async function unpatchHarnesses() {
41
+ const failures = [];
42
+ await Promise.all(HARNESSES.map(async (harness) => {
43
+ try {
44
+ await harness.unpatch();
45
+ }
46
+ catch (err) {
47
+ failures.push(`${harness.label}: ${message(err)}`);
48
+ }
49
+ }));
50
+ return { failures };
51
+ }
52
+ export function harnessLabels(ids) {
53
+ if (ids.length === 0)
54
+ return "none";
55
+ const labels = ids.map((id) => HARNESSES.find((harness) => harness.id === id)?.label ?? id);
56
+ return labels.join(", ");
57
+ }
58
+ function message(err) {
59
+ if (err instanceof Error && err.message)
60
+ return err.message;
61
+ return String(err);
62
+ }
63
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/harness/index.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAc/D,MAAM,CAAC,MAAM,SAAS,GAAuB;IACzC;QACI,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,eAAe;KAC3B;IACD;QACI,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,aAAa;KACzB;IACD;QACI,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,YAAY;KACxB;CACJ,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,IAAiB,EACjB,GAAyB;IAEzB,MAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAAE,SAAS;QACxC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,MAAM,KAAK,IAAI;YAAE,SAAS;QAC9B,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,OAAO,CAAC,GAAG,CACb,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC5B,IAAI,CAAC;YACD,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;IACL,CAAC,CAAC,CACL,CAAC;IACF,OAAO,EAAE,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAyB;IACnD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACpC,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAClB,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CACtE,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,OAAO,CAAC,GAAY;IACzB,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC5D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type ProviderId } from "./providers.js";
2
+ import type { HarnessAuth } from "./types.js";
3
+ export declare function patchOpenCodeConfig(auth: HarnessAuth, path?: string, provider?: ProviderId): Promise<string>;
4
+ export declare function unpatchOpenCodeConfig(path?: string): Promise<string | null>;
5
+ export declare function openCodePath(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): string;
6
+ export declare function openCodeJsoncPath(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): string;
7
+ export declare function openCodeAuthPath(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): string;
8
+ export declare function resolveOpenCodePath(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): Promise<string>;