tokenmaxxing 1.0.0 → 1.0.2
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.
- package/package.json +1 -1
- package/src/cli/codexadd.ts +9 -6
- package/src/cli/serve.ts +7 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tokenmaxxing",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Automatic Claude Code account switching: pool multiple accounts and hot-swap when quota fills, resuming your session on the fresh account.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
package/src/cli/codexadd.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
// `tokenmaxxing add --codex` - register an ADDITIONAL codex account. Runs
|
|
2
|
-
// `codex login` inside a throwaway CODEX_HOME pinned to
|
|
3
|
-
// storage (auto mode would keyring-namespace the login on
|
|
4
|
-
// nothing harvestable), then parks the resulting auth.json
|
|
5
|
-
// OWN identity and indexes it. The primary login is never
|
|
2
|
+
// `codex login --device-auth` inside a throwaway CODEX_HOME pinned to
|
|
3
|
+
// file-mode credential storage (auto mode would keyring-namespace the login on
|
|
4
|
+
// macOS and leave nothing harvestable), then parks the resulting auth.json
|
|
5
|
+
// under the token's OWN identity and indexes it. The primary login is never
|
|
6
|
+
// touched. Device auth is the default (user decision 2026-07-20): the browser
|
|
7
|
+
// flow binds localhost on the machine running the command, so it dead-ends
|
|
8
|
+
// over ssh; the device code works from any browser.
|
|
6
9
|
|
|
7
10
|
import { mkdirSync, rmSync } from "node:fs";
|
|
8
11
|
import { join } from "node:path";
|
|
@@ -31,11 +34,11 @@ export async function cmdCodexAdd(): Promise<number> {
|
|
|
31
34
|
writeFileAtomic(join(onboardDir, "config.toml"), 'cli_auth_credentials_store = "file"\n');
|
|
32
35
|
|
|
33
36
|
console.log(c.cyan("Opening an isolated codex login - your primary login is untouched."));
|
|
34
|
-
console.log(c.dim("
|
|
37
|
+
console.log(c.dim("Open the URL codex prints, enter the code, and sign in with the account to add; the command exits once you're in."));
|
|
35
38
|
console.log();
|
|
36
39
|
|
|
37
40
|
const savedTermios = saveTermios();
|
|
38
|
-
const p = Bun.spawn([real, "login"], {
|
|
41
|
+
const p = Bun.spawn([real, "login", "--device-auth"], {
|
|
39
42
|
stdin: "inherit",
|
|
40
43
|
stdout: "inherit",
|
|
41
44
|
stderr: "inherit",
|
package/src/cli/serve.ts
CHANGED
|
@@ -54,14 +54,18 @@ const SERVE_USAGE = "usage: tokenmaxxing serve [setup | link <channel-id> <repo>
|
|
|
54
54
|
* Scopes/events verified against docs.slack.dev 2026-07-18: a channel-thread
|
|
55
55
|
* relay plus Slack's Agent messaging experience (agent_view + assistant:write
|
|
56
56
|
* power the DM assistant surface and typing status; channel-thread streaming
|
|
57
|
-
* works without them, verified live).
|
|
58
|
-
*
|
|
57
|
+
* works without them, verified live). agent_view is an OBJECT whose required
|
|
58
|
+
* field is agent_description (max 300 chars; docs.slack.dev app-manifest
|
|
59
|
+
* reference, re-verified 2026-07-20) - a bare `agent_view: true` is rejected
|
|
60
|
+
* with "Must provide an object". Changing scopes on an existing app requires
|
|
61
|
+
* reinstalling it to the workspace. */
|
|
59
62
|
const APP_MANIFEST = `display_information:
|
|
60
63
|
name: tokenmaxxing
|
|
61
64
|
description: bridges Slack threads to Claude Code sessions
|
|
62
65
|
|
|
63
66
|
features:
|
|
64
|
-
agent_view:
|
|
67
|
+
agent_view:
|
|
68
|
+
agent_description: bridges Slack threads to Claude Code sessions
|
|
65
69
|
bot_user:
|
|
66
70
|
display_name: tokenmaxxing
|
|
67
71
|
always_online: true
|