@ralphkrauss/codex-account-switcher 0.1.1 → 0.1.3
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/CHANGELOG.md +21 -0
- package/README.md +79 -1
- package/dist/cli.js +342 -1
- package/dist/cli.js.map +1 -1
- package/dist/hermes.d.ts +56 -0
- package/dist/hermes.js +638 -0
- package/dist/hermes.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/remote.d.ts +85 -0
- package/dist/remote.js +468 -0
- package/dist/remote.js.map +1 -0
- package/package.json +1 -1
- package/src/cli.ts +421 -0
- package/src/hermes.ts +794 -0
- package/src/index.ts +49 -0
- package/src/remote.ts +670 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.3 - 2026-06-06
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Use 1Password CLI's accepted `Secure Note` category label when creating remote sync items.
|
|
8
|
+
|
|
9
|
+
## 0.1.2 - 2026-06-06
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- `cx hermes use <account>` imports a saved Codex account into Hermes' `openai-codex` auth/config without forking Hermes.
|
|
14
|
+
- `cx hermes sync <account>` copies refreshed Hermes Codex tokens back into the selected `cx` account slot.
|
|
15
|
+
- `cx hermes status` reports Hermes Codex auth/config state without revealing token contents.
|
|
16
|
+
- `cx remote configure 1password` configures a 1Password CLI (`op`) remote backend for account sync.
|
|
17
|
+
- `cx sync push`, `cx sync pull`, and `cx sync status` sync saved account slots through 1Password secure-note items with a concealed `auth_json` field.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Documented Hermes bridging and 1Password remote sync workflows.
|
|
22
|
+
- Expanded test coverage for Hermes auth bridging and 1Password sync using fake local credentials/`op` fixtures.
|
|
23
|
+
|
|
3
24
|
## 0.1.1 - 2026-06-04
|
|
4
25
|
|
|
5
26
|
### Added
|
package/README.md
CHANGED
|
@@ -26,6 +26,7 @@ Requires Node.js 22+ and the native Codex CLI on `PATH`.
|
|
|
26
26
|
~/.codex/auth.json # Codex's live auth file
|
|
27
27
|
~/.codex/accounts/<name>.json # saved account slots
|
|
28
28
|
~/.codex/.current-account # active account marker
|
|
29
|
+
~/.codex/remote.json # optional remote sync backend config
|
|
29
30
|
```
|
|
30
31
|
|
|
31
32
|
On POSIX, newly-created directories are `0700` and credential copies are `0600` where supported.
|
|
@@ -42,6 +43,14 @@ cx login work -- --with-api-key
|
|
|
42
43
|
cx use work
|
|
43
44
|
cx run work -- exec "fix the tests"
|
|
44
45
|
cx run -- --help
|
|
46
|
+
cx hermes use work
|
|
47
|
+
cx hermes status
|
|
48
|
+
cx hermes sync work
|
|
49
|
+
cx remote configure 1password --vault Private
|
|
50
|
+
cx remote status
|
|
51
|
+
cx sync push work
|
|
52
|
+
cx sync status work
|
|
53
|
+
cx sync pull work --force
|
|
45
54
|
cx rename work work-prod
|
|
46
55
|
cx rm work-prod
|
|
47
56
|
cx doctor
|
|
@@ -74,7 +83,76 @@ Empty names, dot-only names, slashes, backslashes, spaces, unicode, and path tra
|
|
|
74
83
|
- `cx rm <active>` removes the saved slot and clears `.current-account`; it leaves live `auth.json` untouched until you switch or login.
|
|
75
84
|
- `cx save` and `cx rename` refuse overwrites unless `--force` is passed.
|
|
76
85
|
- `cx login <name>` forwards extra arguments to `codex login`, so headless flows such as `cx login personal --device-auth` work on remote machines.
|
|
77
|
-
- `cx doctor` never
|
|
86
|
+
- `cx doctor`, `cx remote status`, and `cx sync status` never print token contents.
|
|
87
|
+
|
|
88
|
+
## Hermes integration
|
|
89
|
+
|
|
90
|
+
`cx` can seed Hermes' existing `openai-codex` auth store from a saved cx account without changing or forking Hermes:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
cx hermes use work # import ~/.codex/accounts/work.json into ~/.hermes/auth.json
|
|
94
|
+
cx hermes use work --profile team # target ~/.hermes/profiles/team/auth.json
|
|
95
|
+
cx hermes use work --no-config # import auth only; leave config.yaml untouched
|
|
96
|
+
cx hermes status # show auth/config state without printing token values
|
|
97
|
+
cx hermes sync work # copy refreshed Hermes tokens back to the cx account slot
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
`cx hermes use` writes `providers.openai-codex.tokens` and a `credential_pool.openai-codex` entry labelled `cx:<account>`. By default it also sets `model.provider: openai-codex` in Hermes' `config.yaml`.
|
|
101
|
+
|
|
102
|
+
`cx hermes sync` is the manual writeback path for phase 1: if Hermes refreshes the token in `~/.hermes/auth.json`, this copies that refreshed pair back into `~/.codex/accounts/<account>.json`.
|
|
103
|
+
|
|
104
|
+
## 1Password remote sync
|
|
105
|
+
|
|
106
|
+
`cx` can sync saved account slots through 1Password using the 1Password CLI (`op`) as the remote backend. This is intended for moving Codex auth between machines without committing secrets to git or publishing them to npm.
|
|
107
|
+
|
|
108
|
+
Prerequisites:
|
|
109
|
+
|
|
110
|
+
- Install 1Password CLI v2 (`op`) on each machine.
|
|
111
|
+
- Sign in first with `op signin`, or set `OP_SERVICE_ACCOUNT_TOKEN` for non-interactive hosts such as EC2.
|
|
112
|
+
- Create or choose a vault where the items should live.
|
|
113
|
+
|
|
114
|
+
Configure once per `CODEX_HOME`:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
cx remote configure 1password --vault Private
|
|
118
|
+
cx remote configure 1password --vault Private --item-prefix codex-
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
The config is written to `~/.codex/remote.json` (or `CODEX_HOME/remote.json`) with mode `0600` where supported. It stores only backend settings such as backend, vault, and item prefix; it does not store token contents.
|
|
122
|
+
|
|
123
|
+
Check configuration and CLI availability:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
cx remote status
|
|
127
|
+
cx remote status --json
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Push a local account to 1Password:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
cx sync push work
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
This reads `~/.codex/accounts/work.json` and upserts it into item `<prefix>work` in the configured vault. The default prefix is `cx-`, so the default item title is `cx-work`.
|
|
137
|
+
|
|
138
|
+
Pull an account onto another machine:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
cx sync pull work
|
|
142
|
+
cx sync pull work --force
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
`pull` refuses to overwrite an existing local `~/.codex/accounts/work.json` unless `--force` is passed.
|
|
146
|
+
|
|
147
|
+
Compare local and remote presence without printing auth JSON:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
cx sync status
|
|
151
|
+
cx sync status work
|
|
152
|
+
cx sync status work --json
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
1Password storage details: `cx` shells out to `op` with argv arrays. Reads use `op item get <item> --vault <vault> --fields label=auth_json --reveal`. Writes use a `Secure Note` item with a concealed field named `auth_json` via `op item create ... --category "Secure Note" ... auth_json[concealed]=<json>` and `op item edit ... auth_json[concealed]=<json>`. Status commands only report presence/configuration and never reveal field contents.
|
|
78
156
|
|
|
79
157
|
## Migrating from the prototype shell function
|
|
80
158
|
|
package/dist/cli.js
CHANGED
|
@@ -2,17 +2,20 @@
|
|
|
2
2
|
import { realpathSync } from 'node:fs';
|
|
3
3
|
import { readFile } from 'node:fs/promises';
|
|
4
4
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
5
|
-
import { CxError, authFileExists, getCodexPaths, inspectDoctor, listAccounts, loginAccount, removeAccount, renameAccount, runCodex, saveAccount, useAccount, validateAccountName, } from './index.js';
|
|
5
|
+
import { CxError, authFileExists, configureOnePasswordRemote, getCodexPaths, inspectHermesStatus, inspectDoctor, inspectRemoteStatus, inspectSyncStatus, listAccounts, loginAccount, removeAccount, renameAccount, runCodex, saveAccount, syncHermesAccount, syncPullAccount, syncPushAccount, useAccount, useHermesAccount, validateAccountName, } from './index.js';
|
|
6
6
|
const PACKAGE_NAME = '@ralphkrauss/codex-account-switcher';
|
|
7
7
|
const SUBCOMMANDS = new Set([
|
|
8
8
|
'doctor',
|
|
9
|
+
'hermes',
|
|
9
10
|
'help',
|
|
10
11
|
'login',
|
|
11
12
|
'ls',
|
|
12
13
|
'rename',
|
|
14
|
+
'remote',
|
|
13
15
|
'rm',
|
|
14
16
|
'run',
|
|
15
17
|
'save',
|
|
18
|
+
'sync',
|
|
16
19
|
'use',
|
|
17
20
|
]);
|
|
18
21
|
function write(stream, text) {
|
|
@@ -41,6 +44,14 @@ Usage:
|
|
|
41
44
|
cx rename <old> <new> [--force]
|
|
42
45
|
cx rm <name>
|
|
43
46
|
cx run [name] -- [codex args...]
|
|
47
|
+
cx hermes use <account> [--profile <name>] [--no-config]
|
|
48
|
+
cx hermes sync <account> [--profile <name>]
|
|
49
|
+
cx hermes status [--profile <name>] [--json]
|
|
50
|
+
cx remote configure 1password --vault <vault> [--item-prefix <prefix>]
|
|
51
|
+
cx remote status [--json]
|
|
52
|
+
cx sync push <account>
|
|
53
|
+
cx sync pull <account> [--force]
|
|
54
|
+
cx sync status [account] [--json]
|
|
44
55
|
cx doctor [--json]
|
|
45
56
|
cx --help
|
|
46
57
|
cx --version
|
|
@@ -53,9 +64,139 @@ Data layout:
|
|
|
53
64
|
Uses CODEX_HOME when set, otherwise ~/.codex.
|
|
54
65
|
Accounts are stored as CODEX_HOME/accounts/<name>.json.
|
|
55
66
|
The active account marker is CODEX_HOME/.current-account.
|
|
67
|
+
Remote sync config is stored as CODEX_HOME/remote.json.
|
|
56
68
|
|
|
57
69
|
Account names may contain letters, numbers, dot, underscore, and dash only.`;
|
|
58
70
|
}
|
|
71
|
+
function hermesHelpText() {
|
|
72
|
+
return `Usage:
|
|
73
|
+
cx hermes use <account> [--profile <name>] [--no-config]
|
|
74
|
+
cx hermes sync <account> [--profile <name>]
|
|
75
|
+
cx hermes status [--profile <name>] [--json]
|
|
76
|
+
|
|
77
|
+
Commands:
|
|
78
|
+
use Import CODEX_HOME/accounts/<account>.json into Hermes openai-codex auth.
|
|
79
|
+
Also sets model.provider=openai-codex unless --no-config is passed.
|
|
80
|
+
sync Copy Hermes openai-codex tokens back to the cx account slot.
|
|
81
|
+
status Show the selected Hermes home, auth/config state, and linked cx account.
|
|
82
|
+
|
|
83
|
+
Paths:
|
|
84
|
+
Default Hermes home uses HERMES_HOME when set, otherwise ~/.hermes.
|
|
85
|
+
--profile <name> explicitly targets ~/.hermes/profiles/<name>.`;
|
|
86
|
+
}
|
|
87
|
+
function remoteHelpText() {
|
|
88
|
+
return `Usage:
|
|
89
|
+
cx remote configure 1password --vault <vault> [--item-prefix <prefix>]
|
|
90
|
+
cx remote status [--json]
|
|
91
|
+
|
|
92
|
+
Commands:
|
|
93
|
+
configure Store remote sync settings in CODEX_HOME/remote.json.
|
|
94
|
+
status Show configured backend/vault/prefix and whether the op CLI is available.
|
|
95
|
+
|
|
96
|
+
Notes:
|
|
97
|
+
The default 1Password item prefix is cx-. Token contents are never printed.`;
|
|
98
|
+
}
|
|
99
|
+
function syncHelpText() {
|
|
100
|
+
return `Usage:
|
|
101
|
+
cx sync push <account>
|
|
102
|
+
cx sync pull <account> [--force]
|
|
103
|
+
cx sync status [account] [--json]
|
|
104
|
+
|
|
105
|
+
Commands:
|
|
106
|
+
push Upsert CODEX_HOME/accounts/<account>.json into the configured 1Password item.
|
|
107
|
+
pull Read the configured 1Password item into CODEX_HOME/accounts/<account>.json.
|
|
108
|
+
Refuses to overwrite unless --force is passed.
|
|
109
|
+
status Compare local account-file presence with remote item presence without printing tokens.`;
|
|
110
|
+
}
|
|
111
|
+
function parseHermesArgs(command, args, allowed) {
|
|
112
|
+
let json = false;
|
|
113
|
+
let noConfig = false;
|
|
114
|
+
let profile;
|
|
115
|
+
const positionals = [];
|
|
116
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
117
|
+
const arg = args[index] ?? '';
|
|
118
|
+
if (arg === '--profile') {
|
|
119
|
+
const value = args[index + 1];
|
|
120
|
+
if (!value || value.startsWith('-')) {
|
|
121
|
+
throw new CxError(`usage: cx hermes ${command}`, 2);
|
|
122
|
+
}
|
|
123
|
+
profile = value;
|
|
124
|
+
index += 1;
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
if (arg === '--json') {
|
|
128
|
+
if (allowed.json !== true) {
|
|
129
|
+
throw new CxError(`unknown option '${arg}'`, 2);
|
|
130
|
+
}
|
|
131
|
+
json = true;
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
if (arg === '--no-config') {
|
|
135
|
+
if (allowed.noConfig !== true) {
|
|
136
|
+
throw new CxError(`unknown option '${arg}'`, 2);
|
|
137
|
+
}
|
|
138
|
+
noConfig = true;
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
if (arg.startsWith('--')) {
|
|
142
|
+
throw new CxError(`unknown option '${arg}'`, 2);
|
|
143
|
+
}
|
|
144
|
+
positionals.push(arg);
|
|
145
|
+
}
|
|
146
|
+
return { json, noConfig, ...(profile ? { profile } : {}), positionals };
|
|
147
|
+
}
|
|
148
|
+
function parseJsonArgs(args) {
|
|
149
|
+
let json = false;
|
|
150
|
+
const positionals = [];
|
|
151
|
+
for (const arg of args) {
|
|
152
|
+
if (arg === '--json') {
|
|
153
|
+
json = true;
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
if (arg.startsWith('--')) {
|
|
157
|
+
throw new CxError(`unknown option '${arg}'`, 2);
|
|
158
|
+
}
|
|
159
|
+
positionals.push(arg);
|
|
160
|
+
}
|
|
161
|
+
return { json, positionals };
|
|
162
|
+
}
|
|
163
|
+
function parseRemoteConfigureArgs(args) {
|
|
164
|
+
const [backend, ...rest] = args;
|
|
165
|
+
if (backend !== '1password') {
|
|
166
|
+
throw new CxError('usage: cx remote configure 1password --vault <vault> [--item-prefix <prefix>]', 2);
|
|
167
|
+
}
|
|
168
|
+
let vault;
|
|
169
|
+
let itemPrefix;
|
|
170
|
+
for (let index = 0; index < rest.length; index += 1) {
|
|
171
|
+
const arg = rest[index] ?? '';
|
|
172
|
+
if (arg === '--vault') {
|
|
173
|
+
const value = rest[index + 1];
|
|
174
|
+
if (!value || value.startsWith('-')) {
|
|
175
|
+
throw new CxError('usage: cx remote configure 1password --vault <vault> [--item-prefix <prefix>]', 2);
|
|
176
|
+
}
|
|
177
|
+
vault = value;
|
|
178
|
+
index += 1;
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
if (arg === '--item-prefix') {
|
|
182
|
+
const value = rest[index + 1];
|
|
183
|
+
if (!value || value.startsWith('-')) {
|
|
184
|
+
throw new CxError('usage: cx remote configure 1password --vault <vault> [--item-prefix <prefix>]', 2);
|
|
185
|
+
}
|
|
186
|
+
itemPrefix = value;
|
|
187
|
+
index += 1;
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
if (arg.startsWith('--')) {
|
|
191
|
+
throw new CxError(`unknown option '${arg}'`, 2);
|
|
192
|
+
}
|
|
193
|
+
throw new CxError('usage: cx remote configure 1password --vault <vault> [--item-prefix <prefix>]', 2);
|
|
194
|
+
}
|
|
195
|
+
if (!vault) {
|
|
196
|
+
throw new CxError('usage: cx remote configure 1password --vault <vault> [--item-prefix <prefix>]', 2);
|
|
197
|
+
}
|
|
198
|
+
return { vault, ...(itemPrefix ? { itemPrefix } : {}) };
|
|
199
|
+
}
|
|
59
200
|
function parseLoginArgs(args) {
|
|
60
201
|
let force = false;
|
|
61
202
|
let name = null;
|
|
@@ -152,6 +293,79 @@ function formatDoctor(report) {
|
|
|
152
293
|
}
|
|
153
294
|
return lines.join('\n');
|
|
154
295
|
}
|
|
296
|
+
function yesNo(value) {
|
|
297
|
+
return value ? 'yes' : 'no';
|
|
298
|
+
}
|
|
299
|
+
function formatHermesStatus(status) {
|
|
300
|
+
const tokenBits = status.hasTokens
|
|
301
|
+
? `access=${yesNo(status.hasAccessToken)}, refresh=${yesNo(status.hasRefreshToken)}`
|
|
302
|
+
: 'missing';
|
|
303
|
+
const linked = status.linkedAccounts.length === 0
|
|
304
|
+
? '(none detected)'
|
|
305
|
+
: status.linkedAccounts.join(', ');
|
|
306
|
+
const lines = [
|
|
307
|
+
'Hermes Codex integration status',
|
|
308
|
+
`profile: ${status.profile ?? 'default'}`,
|
|
309
|
+
`hermes home: ${status.hermesHome}`,
|
|
310
|
+
`auth.json: ${status.authExists ? 'present' : 'missing'}`,
|
|
311
|
+
`auth readable: ${yesNo(status.authReadable)}`,
|
|
312
|
+
`openai-codex auth: ${status.openaiCodexAuthExists ? 'present' : 'missing'}`,
|
|
313
|
+
`tokens: ${tokenBits}`,
|
|
314
|
+
`last refresh: ${status.lastRefresh ?? '(unknown)'}`,
|
|
315
|
+
`auth mode: ${status.authMode ?? '(unknown)'}`,
|
|
316
|
+
`credential pool openai-codex entries: ${status.poolEntryCount}`,
|
|
317
|
+
`linked cx account: ${linked}`,
|
|
318
|
+
`configured provider: ${status.configuredProvider ?? '(not set)'}`,
|
|
319
|
+
`config.yaml: ${status.configExists ? 'present' : 'missing'}`,
|
|
320
|
+
];
|
|
321
|
+
if (status.authError) {
|
|
322
|
+
lines.push(`auth warning: ${status.authError}`);
|
|
323
|
+
}
|
|
324
|
+
if (status.configError) {
|
|
325
|
+
lines.push(`config warning: ${status.configError}`);
|
|
326
|
+
}
|
|
327
|
+
return lines.join('\n');
|
|
328
|
+
}
|
|
329
|
+
function formatRemoteStatus(status) {
|
|
330
|
+
const lines = [
|
|
331
|
+
'Remote sync status',
|
|
332
|
+
`config: ${status.configPath}`,
|
|
333
|
+
`configured: ${yesNo(status.configured)}`,
|
|
334
|
+
`backend: ${status.backend ?? '(not configured)'}`,
|
|
335
|
+
`vault: ${status.vault ?? '(not configured)'}`,
|
|
336
|
+
`item prefix: ${status.itemPrefix ?? '(not configured)'}`,
|
|
337
|
+
`op CLI: ${status.opAvailable ? `available (${status.opPath ?? 'op'})` : 'not found'}`,
|
|
338
|
+
];
|
|
339
|
+
return lines.join('\n');
|
|
340
|
+
}
|
|
341
|
+
function remotePresenceText(status) {
|
|
342
|
+
if (status.remote.presence === 'unknown') {
|
|
343
|
+
return status.remote.error ? `unknown (${status.remote.error})` : 'unknown';
|
|
344
|
+
}
|
|
345
|
+
return status.remote.presence;
|
|
346
|
+
}
|
|
347
|
+
function formatSyncStatus(status) {
|
|
348
|
+
const lines = [
|
|
349
|
+
'Remote sync status',
|
|
350
|
+
`config: ${status.configPath}`,
|
|
351
|
+
`configured: ${yesNo(status.configured)}`,
|
|
352
|
+
`backend: ${status.backend ?? '(not configured)'}`,
|
|
353
|
+
`vault: ${status.vault ?? '(not configured)'}`,
|
|
354
|
+
`item prefix: ${status.itemPrefix ?? '(not configured)'}`,
|
|
355
|
+
`op CLI: ${status.opAvailable ? `available (${status.opPath ?? 'op'})` : 'not found'}`,
|
|
356
|
+
];
|
|
357
|
+
if (status.accounts.length === 0) {
|
|
358
|
+
lines.push('accounts: (none)');
|
|
359
|
+
return lines.join('\n');
|
|
360
|
+
}
|
|
361
|
+
lines.push('accounts:');
|
|
362
|
+
for (const account of status.accounts) {
|
|
363
|
+
lines.push(` - ${account.account}: local=${account.local.exists ? 'present' : 'missing'}, remote=${remotePresenceText(account)}`);
|
|
364
|
+
lines.push(` file: ${account.local.file}`);
|
|
365
|
+
lines.push(` item: ${account.item ?? '(unknown)'}`);
|
|
366
|
+
}
|
|
367
|
+
return lines.join('\n');
|
|
368
|
+
}
|
|
155
369
|
async function printList(io, env) {
|
|
156
370
|
write(io.stdout, formatAccounts(await listAccounts(getCodexPaths(env))));
|
|
157
371
|
}
|
|
@@ -176,6 +390,127 @@ function parseRunArgs(args) {
|
|
|
176
390
|
}
|
|
177
391
|
return { account, codexArgs };
|
|
178
392
|
}
|
|
393
|
+
async function handleHermesCommand(args, env, io) {
|
|
394
|
+
const [command, ...rest] = args;
|
|
395
|
+
if (!command || command === 'help' || command === '--help' || command === '-h') {
|
|
396
|
+
write(io.stdout, hermesHelpText());
|
|
397
|
+
return 0;
|
|
398
|
+
}
|
|
399
|
+
switch (command) {
|
|
400
|
+
case 'use': {
|
|
401
|
+
const parsed = parseHermesArgs('use <account> [--profile <name>] [--no-config]', rest, { noConfig: true });
|
|
402
|
+
requireArity('hermes use <account> [--profile <name>] [--no-config]', parsed.positionals, 1);
|
|
403
|
+
const account = parsed.positionals[0] ?? '';
|
|
404
|
+
const result = await useHermesAccount(account, {
|
|
405
|
+
env,
|
|
406
|
+
...(parsed.profile ? { profile: parsed.profile } : {}),
|
|
407
|
+
updateConfig: !parsed.noConfig,
|
|
408
|
+
});
|
|
409
|
+
write(io.stdout, `Hermes openai-codex auth now uses cx account '${result.account}'`);
|
|
410
|
+
write(io.stdout, `hermes home: ${result.hermesHome}`);
|
|
411
|
+
write(io.stdout, `auth.json: ${result.hermesAuthFile}`);
|
|
412
|
+
write(io.stdout, result.hermesConfigFile
|
|
413
|
+
? `config.yaml: ${result.hermesConfigFile} (model.provider=openai-codex)`
|
|
414
|
+
: 'config.yaml: skipped (--no-config)');
|
|
415
|
+
return 0;
|
|
416
|
+
}
|
|
417
|
+
case 'sync': {
|
|
418
|
+
const parsed = parseHermesArgs('sync <account> [--profile <name>]', rest, {});
|
|
419
|
+
requireArity('hermes sync <account> [--profile <name>]', parsed.positionals, 1);
|
|
420
|
+
const account = parsed.positionals[0] ?? '';
|
|
421
|
+
const result = await syncHermesAccount(account, {
|
|
422
|
+
env,
|
|
423
|
+
...(parsed.profile ? { profile: parsed.profile } : {}),
|
|
424
|
+
});
|
|
425
|
+
write(io.stdout, `synced Hermes openai-codex tokens to cx account '${result.account}'`);
|
|
426
|
+
write(io.stdout, `cx account file: ${result.codexAccountFile}`);
|
|
427
|
+
write(io.stdout, `hermes home: ${result.hermesHome}`);
|
|
428
|
+
return 0;
|
|
429
|
+
}
|
|
430
|
+
case 'status': {
|
|
431
|
+
const parsed = parseHermesArgs('status [--profile <name>] [--json]', rest, { json: true });
|
|
432
|
+
requireArity('hermes status [--profile <name>] [--json]', parsed.positionals, 0);
|
|
433
|
+
const status = await inspectHermesStatus({
|
|
434
|
+
env,
|
|
435
|
+
...(parsed.profile ? { profile: parsed.profile } : {}),
|
|
436
|
+
});
|
|
437
|
+
write(io.stdout, parsed.json ? JSON.stringify(status, null, 2) : formatHermesStatus(status));
|
|
438
|
+
return 0;
|
|
439
|
+
}
|
|
440
|
+
default:
|
|
441
|
+
throw new CxError(`unknown hermes command '${command}'`, 2);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
async function handleRemoteCommand(args, env, io) {
|
|
445
|
+
const [command, ...rest] = args;
|
|
446
|
+
if (!command || command === 'help' || command === '--help' || command === '-h') {
|
|
447
|
+
write(io.stdout, remoteHelpText());
|
|
448
|
+
return 0;
|
|
449
|
+
}
|
|
450
|
+
switch (command) {
|
|
451
|
+
case 'configure': {
|
|
452
|
+
const parsed = parseRemoteConfigureArgs(rest);
|
|
453
|
+
const result = await configureOnePasswordRemote(parsed, { paths: getCodexPaths(env) });
|
|
454
|
+
write(io.stdout, 'configured remote backend: 1password');
|
|
455
|
+
write(io.stdout, `config: ${result.configPath}`);
|
|
456
|
+
write(io.stdout, `vault: ${result.config.vault}`);
|
|
457
|
+
write(io.stdout, `item prefix: ${result.config.itemPrefix}`);
|
|
458
|
+
return 0;
|
|
459
|
+
}
|
|
460
|
+
case 'status': {
|
|
461
|
+
const parsed = parseJsonArgs(rest);
|
|
462
|
+
requireArity('remote status [--json]', parsed.positionals, 0);
|
|
463
|
+
const status = await inspectRemoteStatus({ env, paths: getCodexPaths(env) });
|
|
464
|
+
write(io.stdout, parsed.json ? JSON.stringify(status, null, 2) : formatRemoteStatus(status));
|
|
465
|
+
return 0;
|
|
466
|
+
}
|
|
467
|
+
default:
|
|
468
|
+
throw new CxError(`unknown remote command '${command}'`, 2);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
async function handleSyncCommand(args, env, io) {
|
|
472
|
+
const [command, ...rest] = args;
|
|
473
|
+
if (!command || command === 'help' || command === '--help' || command === '-h') {
|
|
474
|
+
write(io.stdout, syncHelpText());
|
|
475
|
+
return 0;
|
|
476
|
+
}
|
|
477
|
+
switch (command) {
|
|
478
|
+
case 'push': {
|
|
479
|
+
requireArity('sync push <account>', rest, 1);
|
|
480
|
+
const account = rest[0] ?? '';
|
|
481
|
+
const result = await syncPushAccount(account, { env, paths: getCodexPaths(env) });
|
|
482
|
+
write(io.stdout, `pushed account '${result.account}' to 1Password item '${result.item}'`);
|
|
483
|
+
write(io.stdout, `vault: ${result.vault}`);
|
|
484
|
+
write(io.stdout, `operation: ${result.operation}`);
|
|
485
|
+
return 0;
|
|
486
|
+
}
|
|
487
|
+
case 'pull': {
|
|
488
|
+
const parsed = parseForceArgs(rest);
|
|
489
|
+
requireArity('sync pull <account> [--force]', parsed.positionals, 1);
|
|
490
|
+
const account = parsed.positionals[0] ?? '';
|
|
491
|
+
const result = await syncPullAccount(account, {
|
|
492
|
+
env,
|
|
493
|
+
paths: getCodexPaths(env),
|
|
494
|
+
force: parsed.force,
|
|
495
|
+
});
|
|
496
|
+
write(io.stdout, `pulled 1Password item '${result.item}' into account '${result.account}'`);
|
|
497
|
+
write(io.stdout, `account file: ${result.accountFile}`);
|
|
498
|
+
write(io.stdout, `overwrote local account: ${yesNo(result.overwritten)}`);
|
|
499
|
+
return 0;
|
|
500
|
+
}
|
|
501
|
+
case 'status': {
|
|
502
|
+
const parsed = parseJsonArgs(rest);
|
|
503
|
+
if (parsed.positionals.length > 1) {
|
|
504
|
+
throw new CxError('usage: cx sync status [account] [--json]', 2);
|
|
505
|
+
}
|
|
506
|
+
const status = await inspectSyncStatus(parsed.positionals[0], { env, paths: getCodexPaths(env) });
|
|
507
|
+
write(io.stdout, parsed.json ? JSON.stringify(status, null, 2) : formatSyncStatus(status));
|
|
508
|
+
return 0;
|
|
509
|
+
}
|
|
510
|
+
default:
|
|
511
|
+
throw new CxError(`unknown sync command '${command}'`, 2);
|
|
512
|
+
}
|
|
513
|
+
}
|
|
179
514
|
export async function main(argv = process.argv.slice(2), env = process.env, io = { stdout: process.stdout, stderr: process.stderr }) {
|
|
180
515
|
const metadata = await readPackageMetadata();
|
|
181
516
|
const [first, ...rest] = argv;
|
|
@@ -279,6 +614,12 @@ export async function main(argv = process.argv.slice(2), env = process.env, io =
|
|
|
279
614
|
write(io.stdout, json ? JSON.stringify(report, null, 2) : formatDoctor(report));
|
|
280
615
|
return 0;
|
|
281
616
|
}
|
|
617
|
+
case 'hermes':
|
|
618
|
+
return await handleHermesCommand(rest, env, io);
|
|
619
|
+
case 'remote':
|
|
620
|
+
return await handleRemoteCommand(rest, env, io);
|
|
621
|
+
case 'sync':
|
|
622
|
+
return await handleSyncCommand(rest, env, io);
|
|
282
623
|
default:
|
|
283
624
|
throw new CxError(`unknown command '${first}'`, 2);
|
|
284
625
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/hermes.d.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export declare const HERMES_OPENAI_CODEX_PROVIDER = "openai-codex";
|
|
2
|
+
export declare const HERMES_CODEX_BASE_URL = "https://chatgpt.com/backend-api/codex";
|
|
3
|
+
export interface HermesPaths {
|
|
4
|
+
readonly home: string;
|
|
5
|
+
readonly authFile: string;
|
|
6
|
+
readonly configFile: string;
|
|
7
|
+
readonly profile: string | null;
|
|
8
|
+
}
|
|
9
|
+
export interface HermesProfileOptions {
|
|
10
|
+
readonly env?: NodeJS.ProcessEnv;
|
|
11
|
+
readonly profile?: string | null;
|
|
12
|
+
}
|
|
13
|
+
export interface HermesUseOptions extends HermesProfileOptions {
|
|
14
|
+
readonly updateConfig?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface HermesUseResult {
|
|
17
|
+
readonly account: string;
|
|
18
|
+
readonly codexAccountFile: string;
|
|
19
|
+
readonly hermesHome: string;
|
|
20
|
+
readonly hermesAuthFile: string;
|
|
21
|
+
readonly hermesConfigFile: string | null;
|
|
22
|
+
readonly profile: string | null;
|
|
23
|
+
}
|
|
24
|
+
export interface HermesSyncResult {
|
|
25
|
+
readonly account: string;
|
|
26
|
+
readonly codexAccountFile: string;
|
|
27
|
+
readonly hermesHome: string;
|
|
28
|
+
readonly hermesAuthFile: string;
|
|
29
|
+
readonly profile: string | null;
|
|
30
|
+
}
|
|
31
|
+
export interface HermesStatus {
|
|
32
|
+
readonly hermesHome: string;
|
|
33
|
+
readonly authFile: string;
|
|
34
|
+
readonly configFile: string;
|
|
35
|
+
readonly profile: string | null;
|
|
36
|
+
readonly authExists: boolean;
|
|
37
|
+
readonly authReadable: boolean;
|
|
38
|
+
readonly authError: string | null;
|
|
39
|
+
readonly openaiCodexAuthExists: boolean;
|
|
40
|
+
readonly hasTokens: boolean;
|
|
41
|
+
readonly hasAccessToken: boolean;
|
|
42
|
+
readonly hasRefreshToken: boolean;
|
|
43
|
+
readonly lastRefresh: string | null;
|
|
44
|
+
readonly authMode: string | null;
|
|
45
|
+
readonly linkedAccount: string | null;
|
|
46
|
+
readonly linkedAccounts: readonly string[];
|
|
47
|
+
readonly poolEntryCount: number;
|
|
48
|
+
readonly configuredProvider: string | null;
|
|
49
|
+
readonly configExists: boolean;
|
|
50
|
+
readonly configReadable: boolean;
|
|
51
|
+
readonly configError: string | null;
|
|
52
|
+
}
|
|
53
|
+
export declare function getHermesPaths(options?: HermesProfileOptions): HermesPaths;
|
|
54
|
+
export declare function useHermesAccount(account: string, options?: HermesUseOptions): Promise<HermesUseResult>;
|
|
55
|
+
export declare function syncHermesAccount(account: string, options?: HermesProfileOptions): Promise<HermesSyncResult>;
|
|
56
|
+
export declare function inspectHermesStatus(options?: HermesProfileOptions): Promise<HermesStatus>;
|