teamclaws 1.0.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pairing.js","sourceRoot":"","sources":["../src/pairing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,324 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { execFile as execFileCallback } from "node:child_process";
3
+ import { chmod, lstat, mkdir, open, readFile, readdir, rename, rm, stat, unlink, } from "node:fs/promises";
4
+ import { homedir, tmpdir } from "node:os";
5
+ import { basename, dirname, join } from "node:path";
6
+ import { promisify } from "node:util";
7
+ import { TeamClawsError } from "./errors.js";
8
+ import { normalizeUuid, parseLoginCredential, parseStatusWorkspaceCredential, parseWorkspaceCredential, } from "./validation.js";
9
+ const execFile = promisify(execFileCallback);
10
+ const SYSTEM_SID = "S-1-5-18";
11
+ const MAX_WORKSPACE_CREDENTIAL_FILES = 256;
12
+ const UUID_CREDENTIAL_NAME = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\.json$/iu;
13
+ export class CredentialStore {
14
+ root;
15
+ loginPath;
16
+ workspaceDirectory;
17
+ platform;
18
+ constructor(options = {}) {
19
+ this.root = options.root ?? defaultRoot();
20
+ this.loginPath = join(this.root, "cli-auth.json");
21
+ this.workspaceDirectory = join(this.root, "clawgate-devices");
22
+ this.platform = options.platform ?? process.platform;
23
+ }
24
+ async readLogin() {
25
+ const value = await this.readJsonIfPresent(this.loginPath);
26
+ return value === undefined ? undefined : parseLoginCredential(value);
27
+ }
28
+ async writeLogin(credential) {
29
+ await this.writePrivateJson(this.loginPath, credential);
30
+ }
31
+ async removeLogin() {
32
+ await unlink(this.loginPath).catch((error) => {
33
+ if (error.code !== "ENOENT")
34
+ throw storageError();
35
+ });
36
+ }
37
+ workspacePath(serverId) {
38
+ return join(this.workspaceDirectory, `${normalizeUuid(serverId)}.json`);
39
+ }
40
+ async readWorkspace(serverId) {
41
+ const value = await this.readJsonIfPresent(this.workspacePath(serverId));
42
+ return value === undefined ? undefined : parseWorkspaceCredential(value);
43
+ }
44
+ async readWorkspaceForStatus(serverId) {
45
+ const normalized = normalizeUuid(serverId);
46
+ const value = await this.readJsonIfPresent(this.workspacePath(normalized));
47
+ return value === undefined
48
+ ? undefined
49
+ : parseStatusWorkspaceCredential(value, normalized);
50
+ }
51
+ async findWorkspace(target) {
52
+ if ("server_id" in target)
53
+ return this.readWorkspaceForStatus(target.server_id);
54
+ const origin = new URL(target.workspace_url).origin;
55
+ let names;
56
+ try {
57
+ await this.assertPrivateDirectory(this.workspaceDirectory);
58
+ names = await readdir(this.workspaceDirectory);
59
+ }
60
+ catch (error) {
61
+ if (error.code === "ENOENT")
62
+ return undefined;
63
+ if (error instanceof TeamClawsError)
64
+ throw error;
65
+ throw storageError();
66
+ }
67
+ if (names.length > MAX_WORKSPACE_CREDENTIAL_FILES)
68
+ throw storageError();
69
+ const matches = [];
70
+ for (const name of names.sort()) {
71
+ if (!UUID_CREDENTIAL_NAME.test(name))
72
+ continue;
73
+ const credential = await this.readWorkspaceForStatus(name.slice(0, -5));
74
+ if (credential?.origin === origin)
75
+ matches.push(credential);
76
+ }
77
+ if (matches.length > 1) {
78
+ throw new TeamClawsError("ambiguous_workspace_credential", "More than one saved credential matches this workspace.", { exitCode: 9 });
79
+ }
80
+ return matches[0];
81
+ }
82
+ async writeWorkspace(credential) {
83
+ await this.ensurePrivateDirectory(this.workspaceDirectory);
84
+ const path = this.workspacePath(credential.server_id);
85
+ await this.writePrivateJson(path, credential);
86
+ return path;
87
+ }
88
+ async removeWorkspace(serverId) {
89
+ await unlink(this.workspacePath(serverId)).catch((error) => {
90
+ if (error.code !== "ENOENT")
91
+ throw storageError();
92
+ });
93
+ }
94
+ async readJsonIfPresent(path) {
95
+ try {
96
+ await this.assertRegularPrivateFile(path);
97
+ const text = await readFile(path, "utf8");
98
+ return JSON.parse(text);
99
+ }
100
+ catch (error) {
101
+ if (error.code === "ENOENT")
102
+ return undefined;
103
+ if (error instanceof TeamClawsError)
104
+ throw error;
105
+ throw new TeamClawsError("invalid_credential_file", "The local TeamClaws credential file could not be read safely.", { exitCode: 9 });
106
+ }
107
+ }
108
+ async writePrivateJson(path, value) {
109
+ await this.ensurePrivateDirectory(dirname(path));
110
+ const temporaryPath = join(dirname(path), `.${basename(path)}.${randomUUID()}.tmp`);
111
+ let handle;
112
+ try {
113
+ handle = await open(temporaryPath, "wx", 0o600);
114
+ await handle.writeFile(`${JSON.stringify(value)}\n`, {
115
+ encoding: "utf8",
116
+ });
117
+ await handle.sync();
118
+ await handle.close();
119
+ handle = undefined;
120
+ await this.protectFile(temporaryPath);
121
+ await rename(temporaryPath, path);
122
+ await this.protectFile(path);
123
+ await this.flushDirectory(dirname(path));
124
+ }
125
+ catch (error) {
126
+ await handle?.close().catch(() => undefined);
127
+ await unlink(temporaryPath).catch(() => undefined);
128
+ if (error instanceof TeamClawsError)
129
+ throw error;
130
+ throw storageError();
131
+ }
132
+ }
133
+ async ensurePrivateDirectory(path) {
134
+ const parent = dirname(path);
135
+ if (path !== this.root && parent !== path && parent.startsWith(this.root)) {
136
+ await this.ensurePrivateDirectory(parent);
137
+ }
138
+ await mkdir(path, { recursive: true, mode: 0o700 });
139
+ const info = await lstat(path);
140
+ if (!info.isDirectory() || info.isSymbolicLink())
141
+ throw storageError();
142
+ if (this.platform === "win32")
143
+ await protectWindowsPath(path, true);
144
+ else {
145
+ await chmod(path, 0o700);
146
+ const checked = await stat(path);
147
+ if ((checked.mode & 0o777) !== 0o700)
148
+ throw storageError();
149
+ if (typeof process.getuid === "function" &&
150
+ checked.uid !== process.getuid())
151
+ throw storageError();
152
+ }
153
+ }
154
+ async protectFile(path) {
155
+ const info = await lstat(path);
156
+ if (!info.isFile() || info.isSymbolicLink())
157
+ throw storageError();
158
+ if (this.platform === "win32")
159
+ await protectWindowsPath(path, false);
160
+ else {
161
+ await chmod(path, 0o600);
162
+ const checked = await stat(path);
163
+ if ((checked.mode & 0o777) !== 0o600)
164
+ throw storageError();
165
+ if (typeof process.getuid === "function" &&
166
+ checked.uid !== process.getuid())
167
+ throw storageError();
168
+ }
169
+ }
170
+ async assertRegularPrivateFile(path) {
171
+ const info = await lstat(path);
172
+ if (!info.isFile() || info.isSymbolicLink())
173
+ throw storageError();
174
+ if (this.platform === "win32")
175
+ await verifyWindowsPath(path);
176
+ else {
177
+ if ((info.mode & 0o077) !== 0)
178
+ throw storageError();
179
+ if (typeof process.getuid === "function" && info.uid !== process.getuid())
180
+ throw storageError();
181
+ }
182
+ }
183
+ async assertPrivateDirectory(path) {
184
+ const info = await lstat(path);
185
+ if (!info.isDirectory() || info.isSymbolicLink())
186
+ throw storageError();
187
+ if (this.platform === "win32")
188
+ await verifyWindowsPath(path);
189
+ else {
190
+ if ((info.mode & 0o077) !== 0)
191
+ throw storageError();
192
+ if (typeof process.getuid === "function" && info.uid !== process.getuid())
193
+ throw storageError();
194
+ }
195
+ }
196
+ async flushDirectory(path) {
197
+ if (this.platform === "win32")
198
+ return;
199
+ const handle = await open(path, "r");
200
+ try {
201
+ await handle.sync();
202
+ }
203
+ finally {
204
+ await handle.close();
205
+ }
206
+ }
207
+ }
208
+ function defaultRoot() {
209
+ if (process.platform === "win32") {
210
+ const profile = process.env.USERPROFILE;
211
+ if (!profile)
212
+ throw storageError();
213
+ return join(profile, ".teamclaws");
214
+ }
215
+ return join(homedir(), ".teamclaws");
216
+ }
217
+ async function protectWindowsPath(path, directory) {
218
+ const userSid = await currentWindowsSid();
219
+ const inheritance = directory ? "(OI)(CI)F" : "F";
220
+ try {
221
+ await execFile("icacls.exe", [path, "/inheritance:r", "/q"]);
222
+ await execFile("icacls.exe", [
223
+ path,
224
+ "/grant:r",
225
+ `*${userSid}:${inheritance}`,
226
+ `*${SYSTEM_SID}:${inheritance}`,
227
+ "/q",
228
+ ]);
229
+ const current = await readWindowsAcl(path);
230
+ for (const trustee of current.trustees) {
231
+ if (trustee !== userSid && trustee !== SYSTEM_SID) {
232
+ await execFile("icacls.exe", [
233
+ path,
234
+ "/remove:g",
235
+ `*${trustee}`,
236
+ "/remove:d",
237
+ `*${trustee}`,
238
+ "/q",
239
+ ]);
240
+ }
241
+ }
242
+ await verifyWindowsPath(path, userSid);
243
+ }
244
+ catch (error) {
245
+ if (error instanceof TeamClawsError)
246
+ throw error;
247
+ throw storageError();
248
+ }
249
+ }
250
+ async function verifyWindowsPath(path, knownUserSid) {
251
+ const userSid = knownUserSid ?? (await currentWindowsSid());
252
+ const acl = await readWindowsAcl(path);
253
+ if (!isPrivateWindowsAcl(acl, userSid)) {
254
+ throw storageError();
255
+ }
256
+ }
257
+ export function isPrivateWindowsAcl(acl, userSid) {
258
+ const allowed = new Set([userSid, SYSTEM_SID]);
259
+ return (acl.protected &&
260
+ acl.trustees.length === 2 &&
261
+ acl.trustees.every((trustee) => allowed.has(trustee)));
262
+ }
263
+ async function readWindowsAcl(path) {
264
+ const aclPath = join(tmpdir(), `teamclaws-acl-${randomUUID()}.txt`);
265
+ try {
266
+ await execFile("icacls.exe", [path, "/save", aclPath, "/c", "/q"]);
267
+ const buffer = await readFile(aclPath);
268
+ const text = decodeWindowsText(buffer);
269
+ return parseWindowsAclText(text);
270
+ }
271
+ finally {
272
+ await rm(aclPath, { force: true }).catch(() => undefined);
273
+ }
274
+ }
275
+ export function parseWindowsAclText(text) {
276
+ const descriptor = text.split(/\r?\n/u).find((line) => line.includes("D:")) ?? "";
277
+ const daclStart = descriptor.indexOf("D:");
278
+ if (daclStart < 0)
279
+ return { protected: false, trustees: [] };
280
+ const daclBodyStart = daclStart + 2;
281
+ const saclStart = descriptor.indexOf("S:", daclBodyStart);
282
+ const dacl = descriptor.slice(daclBodyStart, saclStart < 0 ? undefined : saclStart);
283
+ const firstAce = dacl.indexOf("(");
284
+ const controlFlags = dacl.slice(0, firstAce < 0 ? undefined : firstAce);
285
+ const trustees = [...dacl.matchAll(/;;;([^;)]+)\)/gu)].map((match) => match[1] === "SY" ? SYSTEM_SID : (match[1] ?? ""));
286
+ return {
287
+ protected: controlFlags.includes("P"),
288
+ trustees: [...new Set(trustees)],
289
+ };
290
+ }
291
+ async function currentWindowsSid() {
292
+ try {
293
+ const { stdout } = await execFile("whoami.exe", ["/user", "/fo", "csv", "/nh"], {
294
+ encoding: "utf8",
295
+ });
296
+ const match = stdout.match(/"(S-\d(?:-\d+)+)"/u);
297
+ if (!match?.[1])
298
+ throw storageError();
299
+ return match[1];
300
+ }
301
+ catch (error) {
302
+ if (error instanceof TeamClawsError)
303
+ throw error;
304
+ throw storageError();
305
+ }
306
+ }
307
+ export function decodeWindowsText(buffer) {
308
+ const hasLittleEndianBom = buffer[0] === 0xff && buffer[1] === 0xfe;
309
+ if (buffer[0] === 0xfe && buffer[1] === 0xff)
310
+ throw storageError();
311
+ const contents = hasLittleEndianBom ? buffer.subarray(2) : buffer;
312
+ if (contents.length === 0 || contents.length % 2 !== 0)
313
+ throw storageError();
314
+ const text = contents.toString("utf16le");
315
+ if (text.includes("\u0000") ||
316
+ text.includes("\ufffd") ||
317
+ !text.split(/\r?\n/u).some((line) => line.includes("D:")))
318
+ throw storageError();
319
+ return text;
320
+ }
321
+ function storageError() {
322
+ return new TeamClawsError("credential_storage_failed", "TeamClaws could not protect the local credential file.", { exitCode: 9 });
323
+ }
324
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}