@autenai/sdk 0.4.0 → 0.5.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.
Files changed (88) hide show
  1. package/README.md +154 -0
  2. package/bin/auten.js +2 -0
  3. package/dist/cli/add-phone.d.ts +2 -0
  4. package/dist/cli/add-phone.d.ts.map +1 -0
  5. package/dist/cli/add-phone.js +254 -0
  6. package/dist/cli/add-phone.js.map +1 -0
  7. package/dist/cli/autocomplete.d.ts +31 -0
  8. package/dist/cli/autocomplete.d.ts.map +1 -0
  9. package/dist/cli/autocomplete.js +438 -0
  10. package/dist/cli/autocomplete.js.map +1 -0
  11. package/dist/cli/build-apk.d.ts +2 -0
  12. package/dist/cli/build-apk.d.ts.map +1 -0
  13. package/dist/cli/build-apk.js +97 -0
  14. package/dist/cli/build-apk.js.map +1 -0
  15. package/dist/cli/creds.d.ts +2 -0
  16. package/dist/cli/creds.d.ts.map +1 -0
  17. package/dist/cli/creds.js +147 -0
  18. package/dist/cli/creds.js.map +1 -0
  19. package/dist/cli/devices.d.ts +2 -0
  20. package/dist/cli/devices.d.ts.map +1 -0
  21. package/dist/cli/devices.js +38 -0
  22. package/dist/cli/devices.js.map +1 -0
  23. package/dist/cli/index.d.ts +2 -0
  24. package/dist/cli/index.d.ts.map +1 -0
  25. package/dist/cli/index.js +111 -0
  26. package/dist/cli/index.js.map +1 -0
  27. package/dist/cli/keys.d.ts +2 -0
  28. package/dist/cli/keys.d.ts.map +1 -0
  29. package/dist/cli/keys.js +88 -0
  30. package/dist/cli/keys.js.map +1 -0
  31. package/dist/cli/login.d.ts +2 -0
  32. package/dist/cli/login.d.ts.map +1 -0
  33. package/dist/cli/login.js +35 -0
  34. package/dist/cli/login.js.map +1 -0
  35. package/dist/cli/logo.d.ts +2 -0
  36. package/dist/cli/logo.d.ts.map +1 -0
  37. package/dist/cli/logo.js +11 -0
  38. package/dist/cli/logo.js.map +1 -0
  39. package/dist/cli/me.d.ts +2 -0
  40. package/dist/cli/me.d.ts.map +1 -0
  41. package/dist/cli/me.js +19 -0
  42. package/dist/cli/me.js.map +1 -0
  43. package/dist/cli/shell.d.ts +2 -0
  44. package/dist/cli/shell.d.ts.map +1 -0
  45. package/dist/cli/shell.js +22 -0
  46. package/dist/cli/shell.js.map +1 -0
  47. package/dist/cli/task.d.ts +2 -0
  48. package/dist/cli/task.d.ts.map +1 -0
  49. package/dist/cli/task.js +148 -0
  50. package/dist/cli/task.js.map +1 -0
  51. package/dist/cli/tasks.d.ts +2 -0
  52. package/dist/cli/tasks.d.ts.map +1 -0
  53. package/dist/cli/tasks.js +76 -0
  54. package/dist/cli/tasks.js.map +1 -0
  55. package/dist/cli/util.d.ts +46 -0
  56. package/dist/cli/util.d.ts.map +1 -0
  57. package/dist/cli/util.js +134 -0
  58. package/dist/cli/util.js.map +1 -0
  59. package/dist/package.json +56 -0
  60. package/dist/src/client.d.ts +81 -0
  61. package/dist/src/client.d.ts.map +1 -0
  62. package/dist/src/client.js +116 -0
  63. package/dist/src/client.js.map +1 -0
  64. package/dist/src/errors.d.ts +16 -0
  65. package/dist/src/errors.d.ts.map +1 -0
  66. package/dist/src/errors.js +31 -0
  67. package/dist/src/errors.js.map +1 -0
  68. package/dist/src/index.d.ts +7 -0
  69. package/dist/src/index.d.ts.map +1 -0
  70. package/dist/src/index.js +5 -0
  71. package/dist/src/index.js.map +1 -0
  72. package/dist/src/phone.d.ts +115 -0
  73. package/dist/src/phone.d.ts.map +1 -0
  74. package/dist/src/phone.js +123 -0
  75. package/dist/src/phone.js.map +1 -0
  76. package/dist/src/transport.d.ts +14 -0
  77. package/dist/src/transport.d.ts.map +1 -0
  78. package/dist/src/transport.js +71 -0
  79. package/dist/src/transport.js.map +1 -0
  80. package/dist/src/types.d.ts +138 -0
  81. package/dist/src/types.d.ts.map +1 -0
  82. package/dist/src/types.js +2 -0
  83. package/dist/src/types.js.map +1 -0
  84. package/package.json +43 -26
  85. package/dist/index.d.mts +0 -500
  86. package/dist/index.d.ts +0 -500
  87. package/dist/index.js +0 -450
  88. package/dist/index.mjs +0 -418
@@ -0,0 +1,147 @@
1
+ import { Auten } from "../src/index.js";
2
+ import { C, loadConfig, fail, ok, info, prompt, promptHidden, readRc } from "./util.js";
3
+ export async function credsCommand(argv) {
4
+ const sub = argv[0];
5
+ switch (sub) {
6
+ case "add":
7
+ case "save": return addCommand(argv.slice(1));
8
+ case "ls":
9
+ case "list": return listCommand(argv.slice(1));
10
+ case "rm":
11
+ case "delete": return rmCommand(argv.slice(1));
12
+ case "show":
13
+ case "reveal": return showCommand(argv.slice(1));
14
+ default: {
15
+ console.log(`${C.bold}auten creds${C.reset} — manage encrypted per-device credentials`);
16
+ console.log("");
17
+ console.log("Subcommands:");
18
+ console.log(` ${C.bold}add${C.reset} Save service login (interactive)`);
19
+ console.log(` ${C.bold}ls${C.reset} List saved services for a device`);
20
+ console.log(` ${C.bold}show${C.reset} Reveal a credential (passwords included)`);
21
+ console.log(` ${C.bold}rm${C.reset} Delete a credential`);
22
+ console.log("");
23
+ console.log("Common flags:");
24
+ console.log(` --device <serial> default: lastSerial from ~/.autenrc, else first online`);
25
+ }
26
+ }
27
+ }
28
+ async function resolveSerial(auten, override) {
29
+ if (override)
30
+ return override;
31
+ const rc = readRc();
32
+ if (rc.lastSerial)
33
+ return rc.lastSerial;
34
+ const fo = await auten.devices.firstOnline();
35
+ if (!fo) {
36
+ fail("No --device passed and no online phone found.");
37
+ process.exit(1);
38
+ }
39
+ return fo.serial;
40
+ }
41
+ function flagOf(argv, name) {
42
+ const i = argv.indexOf(`--${name}`);
43
+ if (i < 0)
44
+ return undefined;
45
+ return argv[i + 1];
46
+ }
47
+ /** Return positional (non-flag) args, skipping flag values too. */
48
+ function positional(argv) {
49
+ const out = [];
50
+ for (let i = 0; i < argv.length; i++) {
51
+ const a = argv[i];
52
+ if (a.startsWith("--")) {
53
+ // Skip this flag plus the next token if it isn't a flag itself.
54
+ if (i + 1 < argv.length && !argv[i + 1].startsWith("--"))
55
+ i++;
56
+ continue;
57
+ }
58
+ out.push(a);
59
+ }
60
+ return out;
61
+ }
62
+ async function addCommand(argv) {
63
+ const cfg = loadConfig();
64
+ const auten = new Auten(cfg);
65
+ const serial = await resolveSerial(auten, flagOf(argv, "device"));
66
+ const service = (flagOf(argv, "service")
67
+ ?? positional(argv)[0]
68
+ ?? await prompt("Service: ")).trim();
69
+ if (!service) {
70
+ fail("service required");
71
+ process.exit(1);
72
+ }
73
+ const username = (flagOf(argv, "username") ?? await prompt("Username/email: ")).trim();
74
+ const password = flagOf(argv, "password") ?? await promptHidden("Password: ");
75
+ const notes = flagOf(argv, "notes");
76
+ try {
77
+ await auten.phone(serial).credentials.save({
78
+ service,
79
+ username: username || undefined,
80
+ password: password || undefined,
81
+ notes: notes || undefined,
82
+ });
83
+ ok(`Saved ${C.bold}${service}${C.reset} on ${serial}.`);
84
+ }
85
+ catch (err) {
86
+ fail(err.message);
87
+ process.exit(1);
88
+ }
89
+ }
90
+ async function listCommand(argv) {
91
+ const cfg = loadConfig();
92
+ const auten = new Auten(cfg);
93
+ const serial = await resolveSerial(auten, flagOf(argv, "device"));
94
+ try {
95
+ const creds = await auten.phone(serial).credentials.list();
96
+ if (creds.length === 0) {
97
+ info(`No credentials saved for ${serial}.`);
98
+ return;
99
+ }
100
+ for (const c of creds) {
101
+ console.log(` ${C.bold}${c.service}${C.reset} ${C.dim}${c.username ?? "(no user)"} ${c.updatedAt.slice(0, 19)}${C.reset}`);
102
+ if (c.notes)
103
+ console.log(` ${C.dim}${c.notes}${C.reset}`);
104
+ }
105
+ }
106
+ catch (err) {
107
+ fail(err.message);
108
+ process.exit(1);
109
+ }
110
+ }
111
+ async function showCommand(argv) {
112
+ const cfg = loadConfig();
113
+ const auten = new Auten(cfg);
114
+ const serial = await resolveSerial(auten, flagOf(argv, "device"));
115
+ const service = flagOf(argv, "service") ?? positional(argv)[0];
116
+ if (!service) {
117
+ fail("service required");
118
+ process.exit(1);
119
+ }
120
+ try {
121
+ const data = await auten.phone(serial).credentials.reveal(service);
122
+ console.log(JSON.stringify(data, null, 2));
123
+ }
124
+ catch (err) {
125
+ fail(err.message);
126
+ process.exit(1);
127
+ }
128
+ }
129
+ async function rmCommand(argv) {
130
+ const cfg = loadConfig();
131
+ const auten = new Auten(cfg);
132
+ const serial = await resolveSerial(auten, flagOf(argv, "device"));
133
+ const service = flagOf(argv, "service") ?? positional(argv)[0];
134
+ if (!service) {
135
+ fail("service required");
136
+ process.exit(1);
137
+ }
138
+ try {
139
+ await auten.phone(serial).credentials.delete(service);
140
+ ok(`Deleted ${service}.`);
141
+ }
142
+ catch (err) {
143
+ fail(err.message);
144
+ process.exit(1);
145
+ }
146
+ }
147
+ //# sourceMappingURL=creds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creds.js","sourceRoot":"","sources":["../../cli/creds.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function devicesCommand(): Promise<void>;
2
+ //# sourceMappingURL=devices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../cli/devices.ts"],"names":[],"mappings":"AAIA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAgCpD"}
@@ -0,0 +1,38 @@
1
+ import { Auten } from "../src/index.js";
2
+ import { C, loadConfig, fail } from "./util.js";
3
+ export async function devicesCommand() {
4
+ const cfg = loadConfig();
5
+ try {
6
+ const auten = new Auten(cfg);
7
+ const list = await auten.devices.list();
8
+ if (list.length === 0) {
9
+ console.log(`${C.dim}No devices registered for this owner yet.${C.reset}`);
10
+ console.log(`${C.dim}Run \`auten add-phone\` with a phone connected via USB to add one.${C.reset}`);
11
+ return;
12
+ }
13
+ const rows = list
14
+ .slice()
15
+ .sort((a, b) => Number(b.online) - Number(a.online) || a.serial.localeCompare(b.serial))
16
+ .map((d) => ({
17
+ status: d.online ? `${C.green}online${C.reset}` : `${C.dim}offline${C.reset}`,
18
+ serial: d.serial,
19
+ model: d.model || "?",
20
+ screen: d.screenW && d.screenH ? `${d.screenW}x${d.screenH}` : "?",
21
+ lastSeen: d.lastSeenAt ? d.lastSeenAt.replace("T", " ").slice(0, 19) : "?",
22
+ }));
23
+ const cols = ["status", "serial", "model", "screen", "lastSeen"];
24
+ const stripAnsi = (s) => s.replace(/\x1b\[[0-9;]*m/g, "");
25
+ const widths = cols.map((c) => Math.max(c.length, ...rows.map((r) => stripAnsi(r[c]).length)));
26
+ const pad = (s, w) => s + " ".repeat(Math.max(0, w - stripAnsi(s).length));
27
+ console.log(cols.map((c, i) => pad(c.toUpperCase(), widths[i])).join(" "));
28
+ console.log(cols.map((_, i) => "─".repeat(widths[i])).join(" "));
29
+ for (const r of rows)
30
+ console.log(cols.map((c, i) => pad(r[c], widths[i])).join(" "));
31
+ console.log(`\n${C.dim}${list.length} device(s) total, ${list.filter((d) => d.online).length} online.${C.reset}`);
32
+ }
33
+ catch (err) {
34
+ fail(err.message);
35
+ process.exit(1);
36
+ }
37
+ }
38
+ //# sourceMappingURL=devices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devices.js","sourceRoot":"","sources":["../../cli/devices.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../cli/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Subcommand router for the `auten` CLI.
3
+ */
4
+ import { C, banner } from "./util.js";
5
+ const argv = process.argv.slice(2);
6
+ const command = argv[0];
7
+ async function main() {
8
+ switch (command) {
9
+ case "login": {
10
+ const { loginCommand } = await import("./login.js");
11
+ await loginCommand();
12
+ break;
13
+ }
14
+ case "me":
15
+ case "whoami": {
16
+ const { meCommand } = await import("./me.js");
17
+ await meCommand();
18
+ break;
19
+ }
20
+ case "devices":
21
+ case "list":
22
+ case "ls": {
23
+ const { devicesCommand } = await import("./devices.js");
24
+ await devicesCommand();
25
+ break;
26
+ }
27
+ case "task":
28
+ case "run": {
29
+ const { taskCommand } = await import("./task.js");
30
+ await taskCommand(argv.slice(1));
31
+ break;
32
+ }
33
+ case "tasks": {
34
+ const { tasksCommand } = await import("./tasks.js");
35
+ await tasksCommand(argv.slice(1));
36
+ break;
37
+ }
38
+ case "creds":
39
+ case "credentials": {
40
+ const { credsCommand } = await import("./creds.js");
41
+ await credsCommand(argv.slice(1));
42
+ break;
43
+ }
44
+ case "keys": {
45
+ const { keysCommand } = await import("./keys.js");
46
+ await keysCommand(argv.slice(1));
47
+ break;
48
+ }
49
+ case "add-phone":
50
+ case "add": {
51
+ const { addPhoneCommand } = await import("./add-phone.js");
52
+ await addPhoneCommand();
53
+ break;
54
+ }
55
+ case "build-apk":
56
+ case "build": {
57
+ const { buildApkCommand } = await import("./build-apk.js");
58
+ await buildApkCommand(argv.slice(1));
59
+ break;
60
+ }
61
+ case "version":
62
+ case "--version":
63
+ case "-v": {
64
+ const pkg = await import("../package.json", { with: { type: "json" } });
65
+ console.log(pkg.default.version);
66
+ break;
67
+ }
68
+ case undefined:
69
+ case "help":
70
+ case "--help":
71
+ case "-h": {
72
+ printUsage();
73
+ break;
74
+ }
75
+ default: {
76
+ console.error(`Unknown command: ${command}`);
77
+ printUsage();
78
+ process.exit(1);
79
+ }
80
+ }
81
+ }
82
+ function printUsage() {
83
+ banner("auten — control Android phones via the IceCode relay");
84
+ console.log("");
85
+ console.log("Account:");
86
+ console.log(` ${C.bold}auten login${C.reset} Save API key + relay URL to ~/.autenrc`);
87
+ console.log(` ${C.bold}auten me${C.reset} Show whoami + counts for the calling key`);
88
+ console.log(` ${C.bold}auten keys${C.reset} Manage API keys (ls / create / revoke)`);
89
+ console.log("");
90
+ console.log("Devices:");
91
+ console.log(` ${C.bold}auten devices${C.reset} List devices belonging to your owner`);
92
+ console.log(` ${C.bold}auten add-phone${C.reset} Interactive setup for a new phone (USB)`);
93
+ console.log(` ${C.bold}auten build-apk${C.reset} Build the agent APK on the relay host`);
94
+ console.log("");
95
+ console.log("Tasks:");
96
+ console.log(` ${C.bold}auten task "<prompt>"${C.reset} Dispatch a task and follow until done`);
97
+ console.log(` ${C.bold}auten tasks${C.reset} List recent tasks`);
98
+ console.log(` ${C.bold}auten tasks <id>${C.reset} Show one task in detail`);
99
+ console.log("");
100
+ console.log("Credentials:");
101
+ console.log(` ${C.bold}auten creds add${C.reset} Save a service login (encrypted server-side)`);
102
+ console.log(` ${C.bold}auten creds ls${C.reset} List saved services`);
103
+ console.log(` ${C.bold}auten creds rm <service>${C.reset} Delete a saved service`);
104
+ console.log("");
105
+ console.log(`${C.dim}Auth: AUTEN_API_KEY env var or saved in ~/.autenrc (via login).${C.reset}`);
106
+ }
107
+ main().catch((err) => {
108
+ console.error(`\n${C.red}Fatal:${C.reset} ${err.message}`);
109
+ process.exit(1);
110
+ });
111
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function keysCommand(argv: string[]): Promise<void>;
2
+ //# sourceMappingURL=keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../cli/keys.ts"],"names":[],"mappings":"AAGA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB/D"}
@@ -0,0 +1,88 @@
1
+ import { Auten } from "../src/index.js";
2
+ import { C, loadConfig, fail, ok, info, prompt } from "./util.js";
3
+ export async function keysCommand(argv) {
4
+ const sub = argv[0];
5
+ switch (sub) {
6
+ case "ls":
7
+ case "list":
8
+ case undefined:
9
+ return listKeys();
10
+ case "create":
11
+ case "new":
12
+ case "add":
13
+ return createKey(argv.slice(1));
14
+ case "rm":
15
+ case "revoke":
16
+ case "delete":
17
+ return revokeKey(argv.slice(1));
18
+ default: {
19
+ console.log(`${C.bold}auten keys${C.reset} — manage API keys for your account`);
20
+ console.log("");
21
+ console.log("Subcommands:");
22
+ console.log(` ${C.bold}ls${C.reset} List your keys (no full secrets shown)`);
23
+ console.log(` ${C.bold}create [name]${C.reset} Mint a new key — secret printed once`);
24
+ console.log(` ${C.bold}revoke <id>${C.reset} Disable a key (invalidates instantly)`);
25
+ }
26
+ }
27
+ }
28
+ async function listKeys() {
29
+ const cfg = loadConfig();
30
+ const auten = new Auten(cfg);
31
+ try {
32
+ const keys = await auten.keys.list();
33
+ if (keys.length === 0) {
34
+ info("No keys yet.");
35
+ return;
36
+ }
37
+ for (const k of keys) {
38
+ const status = k.active ? `${C.green}active${C.reset}` : `${C.dim}revoked${C.reset}`;
39
+ const lastUsed = k.last_used_at ? k.last_used_at.slice(0, 19) : "never";
40
+ console.log(` ${status} ${C.dim}${k.id}${C.reset} ${k.name ?? "(unnamed)"} ${C.dim}${k.key_preview} used: ${lastUsed}${C.reset}`);
41
+ }
42
+ }
43
+ catch (err) {
44
+ fail(err.message);
45
+ process.exit(1);
46
+ }
47
+ }
48
+ async function createKey(argv) {
49
+ const cfg = loadConfig();
50
+ const auten = new Auten(cfg);
51
+ const name = argv.find((a) => !a.startsWith("--")) ?? (await prompt("Key name (e.g. laptop, ci): ")).trim();
52
+ const ownerFlag = argv.indexOf("--owner");
53
+ const ownerId = ownerFlag >= 0 ? argv[ownerFlag + 1] : undefined;
54
+ try {
55
+ const created = await auten.keys.create({ name: name || undefined, ownerId });
56
+ console.log("");
57
+ ok(`Key created.`);
58
+ console.log(` ${C.bold}id${C.reset} ${created.id}`);
59
+ console.log(` ${C.bold}name${C.reset} ${created.name ?? "(unnamed)"}`);
60
+ console.log(` ${C.bold}owner${C.reset} ${created.owner_id}`);
61
+ console.log("");
62
+ console.log(` ${C.bold}${C.green}${created.key}${C.reset}`);
63
+ console.log("");
64
+ console.log(`${C.yellow}Save this key now — it will never be shown again.${C.reset}`);
65
+ }
66
+ catch (err) {
67
+ fail(err.message);
68
+ process.exit(1);
69
+ }
70
+ }
71
+ async function revokeKey(argv) {
72
+ const cfg = loadConfig();
73
+ const auten = new Auten(cfg);
74
+ const id = argv[0];
75
+ if (!id) {
76
+ fail("Usage: auten keys revoke <id>");
77
+ process.exit(1);
78
+ }
79
+ try {
80
+ await auten.keys.revoke(id);
81
+ ok(`Revoked ${id}.`);
82
+ }
83
+ catch (err) {
84
+ fail(err.message);
85
+ process.exit(1);
86
+ }
87
+ }
88
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../cli/keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function loginCommand(): Promise<void>;
2
+ //# sourceMappingURL=login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../cli/login.ts"],"names":[],"mappings":"AAIA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA0BlD"}
@@ -0,0 +1,35 @@
1
+ import { Auten } from "../src/index.js";
2
+ import { AuthError } from "../src/errors.js";
3
+ import { C, banner, ok, fail, info, prompt, promptHidden, readRc, writeRc, rcPath } from "./util.js";
4
+ export async function loginCommand() {
5
+ banner("auten login");
6
+ const existing = readRc();
7
+ if (existing.apiKey) {
8
+ info(`Existing key in ${rcPath()} (ends in ...${existing.apiKey.slice(-6)})`);
9
+ }
10
+ const baseUrl = (await prompt(`Relay base URL [${existing.baseUrl || "https://relay.auten.ai"}]: `))
11
+ || existing.baseUrl
12
+ || "https://relay.auten.ai";
13
+ const apiKey = (await promptHidden("API key: ")).trim();
14
+ if (!apiKey) {
15
+ fail("No key entered.");
16
+ process.exit(1);
17
+ }
18
+ process.stdout.write(`${C.dim}Verifying...${C.reset}\n`);
19
+ try {
20
+ const auten = new Auten({ apiKey, baseUrl });
21
+ const me = await auten.me();
22
+ ok(`Authenticated as ${C.bold}${me.owner_id}${C.reset}${me.is_root ? " (root)" : ""} — ${me.device_count} device(s), ${me.task_count} task(s).`);
23
+ }
24
+ catch (err) {
25
+ if (err instanceof AuthError) {
26
+ fail(`Auth failed: ${err.message}`);
27
+ process.exit(1);
28
+ }
29
+ fail(`Verification failed: ${err.message}`);
30
+ process.exit(1);
31
+ }
32
+ writeRc({ apiKey, baseUrl });
33
+ ok(`Saved to ${rcPath()}`);
34
+ }
35
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../cli/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAErG,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,CAAC,aAAa,CAAC,CAAC;IACtB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC;IAC1B,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,MAAM,EAAE,gBAAgB,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,mBAAmB,QAAQ,CAAC,OAAO,IAAI,wBAAwB,KAAK,CAAC,CAAC;WAC/F,QAAQ,CAAC,OAAO;WAChB,wBAAwB,CAAC;IAC9B,MAAM,MAAM,GAAG,CAAC,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,IAAI,CAAC,MAAM,EAAE,CAAC;QAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAE1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7C,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,CAAC;QAC5B,EAAE,CAAC,oBAAoB,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,YAAY,eAAe,EAAE,CAAC,UAAU,WAAW,CAAC,CAAC;IACnJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QACvF,IAAI,CAAC,wBAAyB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7B,EAAE,CAAC,YAAY,MAAM,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const LOGO_LINES: string[];
2
+ //# sourceMappingURL=logo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logo.d.ts","sourceRoot":"","sources":["../../cli/logo.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,EAAE,MAAM,EAO9B,CAAC"}
@@ -0,0 +1,11 @@
1
+ // Auto-generated by tools/gen-logo.mjs — do not edit by hand.
2
+ // Source: /Users/icecode/.claude/image-cache/6ddd69a4-01db-4739-9259-0b7cd2f1fd02/6.png
3
+ export const LOGO_LINES = [
4
+ " \u001b[38;2;80;80;80m▄\u001b[0m\u001b[38;2;7;7;7m▄\u001b[0m\u001b[38;2;9;9;9m▄\u001b[0m ",
5
+ " \u001b[38;2;0;0;0m▀\u001b[0m\u001b[38;2;232;232;232m▀\u001b[0m\u001b[38;2;0;0;0m▀\u001b[0m\u001b[38;2;0;0;0m▀\u001b[0m\u001b[38;2;190;190;190;48;2;0;0;0m▀\u001b[0m ",
6
+ " \u001b[38;2;184;184;184;48;2;0;0;0m▀\u001b[0m\u001b[38;2;0;0;0;48;2;164;164;164m▀\u001b[0m\u001b[38;2;0;0;0m▀\u001b[0m\u001b[38;2;0;0;0;48;2;97;97;97m▀\u001b[0m\u001b[38;2;0;0;0m▄\u001b[0m \u001b[38;2;0;0;0;48;2;0;0;0m▀\u001b[0m\u001b[38;2;167;167;167m▀\u001b[0m\u001b[38;2;0;0;0m▀\u001b[0m\u001b[38;2;100;100;100;48;2;1;1;1m▀\u001b[0m",
7
+ " \u001b[38;2;224;224;224;48;2;19;19;19m▀\u001b[0m\u001b[38;2;0;0;0m▀\u001b[0m\u001b[38;2;218;218;218m▄\u001b[0m\u001b[38;2;0;0;0m▄\u001b[0m\u001b[38;2;122;122;122;48;2;0;0;0m▀\u001b[0m\u001b[38;2;0;0;0;48;2;13;13;13m▀\u001b[0m\u001b[38;2;0;0;0;48;2;106;106;106m▀\u001b[0m\u001b[38;2;238;238;238m▀\u001b[0m \u001b[38;2;0;0;0;48;2;0;0;0m▀\u001b[0m\u001b[38;2;14;14;14m▀\u001b[0m",
8
+ " \u001b[38;2;98;98;98m▀\u001b[0m\u001b[38;2;0;0;0m▀\u001b[0m \u001b[38;2;0;0;0;48;2;0;0;0m▀\u001b[0m \u001b[38;2;0;0;0m▀\u001b[0m\u001b[38;2;0;0;0;48;2;178;178;178m▀\u001b[0m\u001b[38;2;0;0;0;48;2;226;228;228m▀\u001b[0m\u001b[38;2;189;189;189m▀\u001b[0m ",
9
+ " \u001b[38;2;21;21;21m▀\u001b[0m\u001b[38;2;0;0;0m▀\u001b[0m\u001b[38;2;116;116;116;48;2;9;9;9m▀\u001b[0m\u001b[38;2;27;27;27m▀\u001b[0m\u001b[38;2;53;53;53;48;2;0;0;0m▀\u001b[0m "
10
+ ];
11
+ //# sourceMappingURL=logo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logo.js","sourceRoot":"","sources":["../../cli/logo.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,wFAAwF;AACxF,MAAM,CAAC,MAAM,UAAU,GAAa;IAClC,kGAAkG;IAClG,4KAA4K;IAC5K,mVAAmV;IACnV,0XAA0X;IAC1X,iQAAiQ;IACjQ,0LAA0L;CAC3L,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function meCommand(): Promise<void>;
2
+ //# sourceMappingURL=me.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"me.d.ts","sourceRoot":"","sources":["../../cli/me.ts"],"names":[],"mappings":"AAGA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAc/C"}
package/dist/cli/me.js ADDED
@@ -0,0 +1,19 @@
1
+ import { Auten } from "../src/index.js";
2
+ import { C, loadConfig, fail } from "./util.js";
3
+ export async function meCommand() {
4
+ const cfg = loadConfig();
5
+ try {
6
+ const auten = new Auten(cfg);
7
+ const me = await auten.me();
8
+ console.log(`${C.bold}Owner${C.reset} ${me.owner_id}${me.is_root ? ` ${C.yellow}(root)${C.reset}` : ""}`);
9
+ console.log(`${C.bold}Key ID${C.reset} ${me.key_id}`);
10
+ console.log(`${C.bold}Devices${C.reset} ${me.device_count}`);
11
+ console.log(`${C.bold}Tasks${C.reset} ${me.task_count}`);
12
+ console.log(`${C.bold}Relay${C.reset} ${cfg.baseUrl}`);
13
+ }
14
+ catch (err) {
15
+ fail(err.message);
16
+ process.exit(1);
17
+ }
18
+ }
19
+ //# sourceMappingURL=me.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"me.js","sourceRoot":"","sources":["../../cli/me.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/G,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,KAAK,QAAQ,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function shellCommand(): Promise<void>;
2
+ //# sourceMappingURL=shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../cli/shell.ts"],"names":[],"mappings":"AAQA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAalD"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Interactive REPL stub. The pre-v1 shell hardcoded the legacy SDK paths
3
+ * and 1100 lines of UI ceremony around them. v0.2 ships only the discrete
4
+ * commands; the full REPL will return in v0.3 once the new SDK has settled
5
+ * and we can rebuild the prompt-completer over `auten.tasks.create` etc.
6
+ */
7
+ import { C } from "./util.js";
8
+ export async function shellCommand() {
9
+ console.log(`${C.cyan}${C.bold}auten interactive shell${C.reset}`);
10
+ console.log("");
11
+ console.log(`${C.dim}The interactive shell is being rebuilt for v0.2 and will return in${C.reset}`);
12
+ console.log(`${C.dim}a future release. Use the discrete commands meanwhile:${C.reset}`);
13
+ console.log("");
14
+ console.log(` ${C.bold}auten devices${C.reset} List your phones`);
15
+ console.log(` ${C.bold}auten task "<prompt>"${C.reset} Dispatch a task`);
16
+ console.log(` ${C.bold}auten tasks${C.reset} See recent tasks`);
17
+ console.log(` ${C.bold}auten creds add${C.reset} Save a service login`);
18
+ console.log(` ${C.bold}auten keys${C.reset} Manage API keys`);
19
+ console.log("");
20
+ console.log(`${C.dim}Run \`auten help\` for the full list.${C.reset}`);
21
+ }
22
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../cli/shell.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAC;AAE9B,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,qEAAqE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,yDAAyD,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,KAAK,kCAAkC,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,wBAAwB,CAAC,CAAC,KAAK,yBAAyB,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,KAAK,oCAAoC,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,KAAK,oCAAoC,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,KAAK,oCAAoC,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,wCAAwC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACzE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function taskCommand(argv: string[]): Promise<void>;
2
+ //# sourceMappingURL=task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../cli/task.ts"],"names":[],"mappings":"AA6CA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6G/D"}