agyx 0.1.2 → 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/README.md +39 -14
- package/dist/src/cli.js +150 -99
- package/dist/src/cli.js.map +1 -1
- package/dist/src/color.d.ts +9 -0
- package/dist/src/color.js +28 -0
- package/dist/src/color.js.map +1 -0
- package/dist/src/config.d.ts +28 -4
- package/dist/src/config.js +89 -21
- package/dist/src/config.js.map +1 -1
- package/dist/src/coordinator.d.ts +12 -2
- package/dist/src/coordinator.js +265 -11
- package/dist/src/coordinator.js.map +1 -1
- package/dist/src/eligibility.d.ts +4 -0
- package/dist/src/eligibility.js +10 -0
- package/dist/src/eligibility.js.map +1 -0
- package/dist/src/google_auth.d.ts +1 -0
- package/dist/src/google_auth.js +42 -0
- package/dist/src/google_auth.js.map +1 -0
- package/dist/src/install.d.ts +2 -0
- package/dist/src/install.js +24 -7
- package/dist/src/install.js.map +1 -1
- package/dist/src/keychain.js +2 -2
- package/dist/src/keychain.js.map +1 -1
- package/dist/src/onboarding.d.ts +1 -0
- package/dist/src/onboarding.js +87 -0
- package/dist/src/onboarding.js.map +1 -0
- package/dist/src/profile_view.d.ts +22 -0
- package/dist/src/profile_view.js +77 -0
- package/dist/src/profile_view.js.map +1 -0
- package/dist/src/quota.d.ts +1 -0
- package/dist/src/quota.js +3 -0
- package/dist/src/quota.js.map +1 -1
- package/dist/src/selection.d.ts +1 -1
- package/dist/src/selection.js +18 -1
- package/dist/src/selection.js.map +1 -1
- package/dist/src/session.js +54 -31
- package/dist/src/session.js.map +1 -1
- package/dist/src/ui.d.ts +19 -0
- package/dist/src/ui.js +306 -0
- package/dist/src/ui.js.map +1 -0
- package/package.json +8 -1
package/README.md
CHANGED
|
@@ -18,12 +18,36 @@ agyx install
|
|
|
18
18
|
source ~/.zshrc
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
+
`agyx install` writes a shell function to your shell rc file. It does not modify
|
|
22
|
+
the already-open terminal automatically. Open a new terminal, or run the
|
|
23
|
+
displayed `source ...` command.
|
|
24
|
+
|
|
25
|
+
For the current terminal only, without reloading your shell rc file:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
eval "$(agyx shell-init)"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
If you run an interactive `agyx` command before installing the shell
|
|
32
|
+
integration, agyx asks once whether to configure `agy` as the transparent shell
|
|
33
|
+
function. If GitHub CLI (`gh`) is installed, agyx also asks once whether to star
|
|
34
|
+
the repository. Interactive prompts use Inquirer. Set `AGYX_NO_ONBOARDING=1` to
|
|
35
|
+
suppress these prompts.
|
|
36
|
+
|
|
21
37
|
The shell integration makes `agy` transparently run as:
|
|
22
38
|
|
|
23
39
|
```text
|
|
24
40
|
agyx session -- <all original agy arguments>
|
|
25
41
|
```
|
|
26
42
|
|
|
43
|
+
Verify the active terminal with:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
type agy
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Expected result: `agy` is a shell function that calls `agyx session`.
|
|
50
|
+
|
|
27
51
|
All original options are forwarded, including:
|
|
28
52
|
|
|
29
53
|
```bash
|
|
@@ -47,10 +71,10 @@ agyx save
|
|
|
47
71
|
agyx save personal
|
|
48
72
|
```
|
|
49
73
|
|
|
50
|
-
When the name is omitted, `agyx save`
|
|
51
|
-
|
|
52
|
-
local-part. Use `--email EMAIL` only when you want
|
|
53
|
-
metadata.
|
|
74
|
+
When the name is omitted, `agyx save` briefly probes `agy` authentication,
|
|
75
|
+
detects the actual keyring account email from the `agy` log, and derives a
|
|
76
|
+
profile name from the email local-part. Use `--email EMAIL` only when you want
|
|
77
|
+
to override the detected metadata.
|
|
54
78
|
|
|
55
79
|
Add another account:
|
|
56
80
|
|
|
@@ -68,7 +92,7 @@ agyx login
|
|
|
68
92
|
5. Restart every supervised session in its original terminal.
|
|
69
93
|
|
|
70
94
|
When the name is omitted, `agyx login` derives it from the OAuth email detected
|
|
71
|
-
in the `agy` log
|
|
95
|
+
in the `agy` log.
|
|
72
96
|
|
|
73
97
|
Use `--no-resume` to leave sessions paused after login.
|
|
74
98
|
|
|
@@ -82,13 +106,14 @@ agyx next
|
|
|
82
106
|
agyx status
|
|
83
107
|
```
|
|
84
108
|
|
|
85
|
-
`agyx use` without a profile opens an interactive picker.
|
|
86
|
-
|
|
109
|
+
`agyx use` without a profile opens an interactive picker. `agyx list` renders a
|
|
110
|
+
terminal table. Both show profile metadata:
|
|
87
111
|
|
|
88
112
|
- `status`: `ready`, `quota`, `disabled`, or `unknown`
|
|
89
|
-
- `reset`: relative quota reset time when it can be inferred from logs
|
|
90
|
-
- `last-
|
|
91
|
-
- `
|
|
113
|
+
- `quota-reset`: relative quota reset time when it can be inferred from logs
|
|
114
|
+
- `last-request`: when a supervised `agy` log last showed a model request
|
|
115
|
+
- `activated`: when agyx last made the profile active
|
|
116
|
+
- `switches`: how many times agyx selected the profile through login/use/next
|
|
92
117
|
|
|
93
118
|
`agyx next` uses name-sorted round-robin order, starting after the currently
|
|
94
119
|
active profile. It skips profiles marked `disabled` or currently quota
|
|
@@ -109,10 +134,10 @@ signals such as `RESOURCE_EXHAUSTED`, HTTP `429`, and `Individual quota
|
|
|
109
134
|
reached`. When a reset hint such as `Resets in 73h16m27s` is present, agyx stores
|
|
110
135
|
the inferred reset time in profile metadata.
|
|
111
136
|
|
|
112
|
-
This release records quota state and makes `agyx next` avoid
|
|
113
|
-
It does not yet perform an automatic global account switch
|
|
114
|
-
session; use `agyx next` after a quota message so the
|
|
115
|
-
through the normal pause/switch/resume transaction.
|
|
137
|
+
This release records quota state, request attempts, and makes `agyx next` avoid
|
|
138
|
+
exhausted profiles. It does not yet perform an automatic global account switch
|
|
139
|
+
from inside a running session; use `agyx next` after a quota message so the
|
|
140
|
+
switch still happens through the normal pause/switch/resume transaction.
|
|
116
141
|
|
|
117
142
|
## Security
|
|
118
143
|
|
package/dist/src/cli.js
CHANGED
|
@@ -1,32 +1,43 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { installShellIntegration, shellInit } from "./install.js";
|
|
2
|
+
import { activateProfile, loginProfile, pauseAll, resumeAll, saveCurrent, sessionRecords, switchProfile, switchToNextProfile, verifyAllProfiles, } from "./coordinator.js";
|
|
3
|
+
import { installShellIntegration, shellInit, shellIntegrationInstalled, shellIntegrationPath, } from "./install.js";
|
|
5
4
|
import { keychain } from "./keychain.js";
|
|
5
|
+
import { maybeRunOnboarding } from "./onboarding.js";
|
|
6
6
|
import { findRealAgy } from "./processes.js";
|
|
7
7
|
import { loadState, saveState, validateProfileName } from "./config.js";
|
|
8
|
-
import { effectiveProfileStatus, selectNextProfile } from "./selection.js";
|
|
9
8
|
import { supervise } from "./session.js";
|
|
9
|
+
import { confirmAction, pickProfileAction, printProfileTable, promptText } from "./ui.js";
|
|
10
10
|
const help = `agyx — multi-account session supervisor for Antigravity CLI
|
|
11
11
|
|
|
12
12
|
Usage:
|
|
13
|
-
agyx install Install
|
|
13
|
+
agyx install Install agy shell function
|
|
14
14
|
agyx session -- [agy options] Run agy under a restartable supervisor
|
|
15
15
|
agyx save [name] [--email EMAIL] Save the current Keychain account
|
|
16
16
|
agyx login [name] [--email EMAIL] [--no-resume]
|
|
17
17
|
Pause all sessions and add an account
|
|
18
18
|
agyx use [name] Switch account and resume every session
|
|
19
19
|
agyx next Rotate to the next selectable account
|
|
20
|
-
agyx list
|
|
20
|
+
agyx list [--verify] List profiles; optionally verify saved credentials
|
|
21
21
|
agyx current Print the active profile
|
|
22
22
|
agyx status List supervised terminal sessions
|
|
23
23
|
agyx pause | resume Pause or resume all supervised sessions
|
|
24
|
+
agyx rename <old> <new> Rename a saved profile
|
|
24
25
|
agyx remove <name> Delete a saved profile
|
|
25
26
|
agyx shell-init Print the shell integration function
|
|
26
27
|
agyx doctor Diagnose the installation
|
|
27
28
|
|
|
28
29
|
All arguments passed through "agy" are forwarded to the real agy executable.
|
|
29
30
|
Non-interactive --print/--prompt commands are not automatically restarted.`;
|
|
31
|
+
function printSwitchResult(result) {
|
|
32
|
+
if (result.alreadyActive) {
|
|
33
|
+
console.log(`Profile '${result.name}' is already active.`
|
|
34
|
+
+ (result.email ? ` (${result.email})` : ""));
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
console.log(`Activated profile '${result.name}'`
|
|
38
|
+
+ (result.email ? ` (${result.email})` : "")
|
|
39
|
+
+ " and resumed all sessions.");
|
|
40
|
+
}
|
|
30
41
|
function takeOption(args, name) {
|
|
31
42
|
const index = args.indexOf(name);
|
|
32
43
|
if (index < 0)
|
|
@@ -47,91 +58,91 @@ function takeOptionalName(args, usage) {
|
|
|
47
58
|
throw new Error(`Usage: ${usage}`);
|
|
48
59
|
return args.shift();
|
|
49
60
|
}
|
|
50
|
-
function
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const units = [
|
|
59
|
-
[24 * 60 * 60 * 1000, "d"],
|
|
60
|
-
[60 * 60 * 1000, "h"],
|
|
61
|
-
[60 * 1000, "m"],
|
|
62
|
-
[1000, "s"],
|
|
63
|
-
];
|
|
64
|
-
const [unitMs, suffix] = units.find(([ms]) => absolute >= ms) ?? units.at(-1);
|
|
65
|
-
const amount = Math.max(1, Math.round(absolute / unitMs));
|
|
66
|
-
return delta >= 0 ? `in ${amount}${suffix}` : `${amount}${suffix} ago`;
|
|
67
|
-
}
|
|
68
|
-
function profileStatusText(profile, now = new Date()) {
|
|
69
|
-
const status = effectiveProfileStatus(profile, now);
|
|
70
|
-
if (status === "disabled")
|
|
71
|
-
return "disabled";
|
|
72
|
-
if (status === "exhausted")
|
|
73
|
-
return "quota";
|
|
74
|
-
return profile.quotaStatus === "available" ? "ready" : "unknown";
|
|
61
|
+
async function removeProfile(name) {
|
|
62
|
+
validateProfileName(name);
|
|
63
|
+
await keychain.deleteProfile(name);
|
|
64
|
+
const state = await loadState();
|
|
65
|
+
state.profiles = state.profiles.filter((profile) => profile.name !== name);
|
|
66
|
+
if (state.activeProfile === name)
|
|
67
|
+
state.activeProfile = undefined;
|
|
68
|
+
await saveState(state);
|
|
75
69
|
}
|
|
76
|
-
function
|
|
77
|
-
const
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
70
|
+
async function renameProfile(oldNameInput, newNameInput) {
|
|
71
|
+
const oldName = validateProfileName(oldNameInput);
|
|
72
|
+
const newName = validateProfileName(newNameInput.trim());
|
|
73
|
+
if (oldName === newName)
|
|
74
|
+
return false;
|
|
75
|
+
const state = await loadState();
|
|
76
|
+
const profile = state.profiles.find((entry) => entry.name === oldName);
|
|
77
|
+
if (!profile)
|
|
78
|
+
throw new Error(`Profile not found: ${oldName}`);
|
|
79
|
+
if (state.profiles.some((entry) => entry !== profile
|
|
80
|
+
&& (entry.name === newName || entry.previousNames?.includes(newName)))) {
|
|
81
|
+
throw new Error(`Profile already exists: ${newName}`);
|
|
82
|
+
}
|
|
83
|
+
const credential = await keychain.readProfile(oldName);
|
|
84
|
+
await keychain.writeProfile(newName, credential);
|
|
85
|
+
const previousNames = new Set(profile.previousNames ?? []);
|
|
86
|
+
previousNames.delete(newName);
|
|
87
|
+
previousNames.add(oldName);
|
|
88
|
+
profile.previousNames = [...previousNames].sort();
|
|
89
|
+
profile.name = newName;
|
|
90
|
+
profile.updatedAt = new Date().toISOString();
|
|
91
|
+
if (state.activeProfile === oldName)
|
|
92
|
+
state.activeProfile = newName;
|
|
93
|
+
state.profiles.sort((left, right) => left.name.localeCompare(right.name));
|
|
94
|
+
await saveState(state);
|
|
95
|
+
await keychain.deleteProfile(oldName);
|
|
96
|
+
return true;
|
|
86
97
|
}
|
|
87
|
-
function
|
|
88
|
-
if (!
|
|
89
|
-
|
|
90
|
-
return;
|
|
98
|
+
async function confirmAndRemoveProfile(name) {
|
|
99
|
+
if (!process.stdin.isTTY || !process.stdout.isTTY) {
|
|
100
|
+
throw new Error("Refusing to delete without an interactive confirmation.");
|
|
91
101
|
}
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
102
|
+
const confirmed = await confirmAction(`Delete profile '${name}'?`, false);
|
|
103
|
+
if (!confirmed)
|
|
104
|
+
return false;
|
|
105
|
+
await removeProfile(name);
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
async function promptAndRenameProfile(name) {
|
|
109
|
+
if (!process.stdin.isTTY || !process.stdout.isTTY) {
|
|
110
|
+
throw new Error("Refusing to rename without an interactive terminal.");
|
|
96
111
|
}
|
|
112
|
+
const nextName = (await promptText(`Rename profile '${name}' to`, name))?.trim();
|
|
113
|
+
if (!nextName || nextName === name)
|
|
114
|
+
return undefined;
|
|
115
|
+
const renamed = await renameProfile(name, nextName);
|
|
116
|
+
return renamed ? nextName : undefined;
|
|
97
117
|
}
|
|
98
|
-
async function
|
|
118
|
+
async function browseProfiles(mode) {
|
|
99
119
|
if (!process.stdin.isTTY || !process.stdout.isTTY) {
|
|
120
|
+
if (mode === "list") {
|
|
121
|
+
printProfileTable(await loadState());
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
100
124
|
throw new Error("Usage: agyx use <name> or run 'agyx use' in an interactive terminal.");
|
|
101
125
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
return selectNextProfile(state).name;
|
|
109
|
-
}
|
|
110
|
-
catch {
|
|
126
|
+
let notice;
|
|
127
|
+
while (true) {
|
|
128
|
+
const state = await loadState();
|
|
129
|
+
const action = await pickProfileAction(state, mode, notice);
|
|
130
|
+
notice = undefined;
|
|
131
|
+
if (action.type === "exit")
|
|
111
132
|
return undefined;
|
|
133
|
+
if (action.type === "select")
|
|
134
|
+
return action.name;
|
|
135
|
+
if (action.type === "delete") {
|
|
136
|
+
if (await confirmAndRemoveProfile(action.name)) {
|
|
137
|
+
notice = `Removed profile '${action.name}'.`;
|
|
138
|
+
}
|
|
112
139
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
try {
|
|
119
|
-
const answer = (await interface_.question(prompt)).trim();
|
|
120
|
-
if (!answer && suggested)
|
|
121
|
-
return suggested;
|
|
122
|
-
if (!answer)
|
|
123
|
-
throw new Error("No profile selected.");
|
|
124
|
-
const index = Number(answer);
|
|
125
|
-
if (Number.isInteger(index) && index >= 1 && index <= state.profiles.length) {
|
|
126
|
-
return state.profiles[index - 1].name;
|
|
140
|
+
else if (action.type === "rename") {
|
|
141
|
+
const nextName = await promptAndRenameProfile(action.name);
|
|
142
|
+
if (nextName) {
|
|
143
|
+
notice = `Renamed profile '${action.name}' to '${nextName}'.`;
|
|
144
|
+
}
|
|
127
145
|
}
|
|
128
|
-
const profile = state.profiles.find(({ name }) => name === answer);
|
|
129
|
-
if (!profile)
|
|
130
|
-
throw new Error(`Profile not found: ${answer}`);
|
|
131
|
-
return profile.name;
|
|
132
|
-
}
|
|
133
|
-
finally {
|
|
134
|
-
interface_.close();
|
|
135
146
|
}
|
|
136
147
|
}
|
|
137
148
|
async function main() {
|
|
@@ -141,11 +152,18 @@ async function main() {
|
|
|
141
152
|
console.log(help);
|
|
142
153
|
return 0;
|
|
143
154
|
}
|
|
155
|
+
await maybeRunOnboarding(command);
|
|
144
156
|
switch (command) {
|
|
145
157
|
case "install": {
|
|
146
158
|
const path = await installShellIntegration();
|
|
147
|
-
console.log(`Installed
|
|
148
|
-
console.log("
|
|
159
|
+
console.log(`Installed agy shell function in ${path}`);
|
|
160
|
+
console.log("This does not change the current terminal automatically.");
|
|
161
|
+
console.log("Open a new terminal, or run:");
|
|
162
|
+
console.log(` source ${path}`);
|
|
163
|
+
console.log("For this terminal only, you can also run:");
|
|
164
|
+
console.log(' eval "$(agyx shell-init)"');
|
|
165
|
+
console.log("Verify with:");
|
|
166
|
+
console.log(" type agy");
|
|
149
167
|
return 0;
|
|
150
168
|
}
|
|
151
169
|
case "shell-init":
|
|
@@ -174,21 +192,46 @@ async function main() {
|
|
|
174
192
|
const name = args.shift();
|
|
175
193
|
if (args.length)
|
|
176
194
|
throw new Error("Usage: agyx use [name]");
|
|
177
|
-
const selected = name ?? await
|
|
178
|
-
|
|
179
|
-
|
|
195
|
+
const selected = name ?? await browseProfiles("use");
|
|
196
|
+
if (!selected)
|
|
197
|
+
return 0;
|
|
198
|
+
const result = await switchProfile(selected);
|
|
199
|
+
printSwitchResult(result);
|
|
180
200
|
return 0;
|
|
181
201
|
}
|
|
182
202
|
case "next": {
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
await switchProfile(name);
|
|
186
|
-
console.log(`Activated profile '${name}' and resumed all sessions.`);
|
|
203
|
+
const result = await switchToNextProfile();
|
|
204
|
+
printSwitchResult(result);
|
|
187
205
|
return 0;
|
|
188
206
|
}
|
|
189
207
|
case "list": {
|
|
190
|
-
const
|
|
191
|
-
|
|
208
|
+
const verify = takeFlag(args, "--verify");
|
|
209
|
+
if (args.length)
|
|
210
|
+
throw new Error("Usage: agyx list [--verify]");
|
|
211
|
+
const state = verify ? await verifyAllProfiles() : await loadState();
|
|
212
|
+
if (process.stdin.isTTY && process.stdout.isTTY) {
|
|
213
|
+
let notice;
|
|
214
|
+
while (true) {
|
|
215
|
+
const action = await pickProfileAction(await loadState(), "list", notice);
|
|
216
|
+
notice = undefined;
|
|
217
|
+
if (action.type === "exit")
|
|
218
|
+
break;
|
|
219
|
+
if (action.type === "delete") {
|
|
220
|
+
if (await confirmAndRemoveProfile(action.name)) {
|
|
221
|
+
notice = `Removed profile '${action.name}'.`;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
else if (action.type === "rename") {
|
|
225
|
+
const nextName = await promptAndRenameProfile(action.name);
|
|
226
|
+
if (nextName) {
|
|
227
|
+
notice = `Renamed profile '${action.name}' to '${nextName}'.`;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
printProfileTable(state);
|
|
234
|
+
}
|
|
192
235
|
return 0;
|
|
193
236
|
}
|
|
194
237
|
case "current":
|
|
@@ -216,18 +259,23 @@ async function main() {
|
|
|
216
259
|
console.log(`Resumed ${records.length} supervised session(s).`);
|
|
217
260
|
return 0;
|
|
218
261
|
}
|
|
262
|
+
case "rename": {
|
|
263
|
+
const oldName = args.shift();
|
|
264
|
+
const newName = args.shift();
|
|
265
|
+
if (!oldName || !newName || args.length) {
|
|
266
|
+
throw new Error("Usage: agyx rename <old> <new>");
|
|
267
|
+
}
|
|
268
|
+
const renamed = await renameProfile(oldName, newName);
|
|
269
|
+
console.log(renamed
|
|
270
|
+
? `Renamed profile '${oldName}' to '${newName}'.`
|
|
271
|
+
: `Profile '${oldName}' is already named '${newName}'.`);
|
|
272
|
+
return 0;
|
|
273
|
+
}
|
|
219
274
|
case "remove": {
|
|
220
275
|
const name = args.shift();
|
|
221
276
|
if (!name || args.length)
|
|
222
277
|
throw new Error("Usage: agyx remove <name>");
|
|
223
|
-
|
|
224
|
-
await keychain.deleteProfile(name);
|
|
225
|
-
const state = await loadState();
|
|
226
|
-
state.profiles = state.profiles.filter((profile) => profile.name !== name);
|
|
227
|
-
if (state.activeProfile === name)
|
|
228
|
-
state.activeProfile = undefined;
|
|
229
|
-
await saveState(state);
|
|
230
|
-
console.log(`Removed profile '${name}'.`);
|
|
278
|
+
await confirmAndRemoveProfile(name);
|
|
231
279
|
return 0;
|
|
232
280
|
}
|
|
233
281
|
case "doctor": {
|
|
@@ -235,6 +283,9 @@ async function main() {
|
|
|
235
283
|
const sessions = await sessionRecords();
|
|
236
284
|
console.log(`agy: ${await findRealAgy()}`);
|
|
237
285
|
console.log(`platform: ${process.platform}`);
|
|
286
|
+
console.log(`shell integration file: ${shellIntegrationPath()}`);
|
|
287
|
+
console.log(`shell integration installed: ${await shellIntegrationInstalled() ? "yes" : "no"}`);
|
|
288
|
+
console.log("current shell check: run `type agy` in your terminal; it should report a shell function");
|
|
238
289
|
console.log(`profiles: ${state.profiles.length}`);
|
|
239
290
|
console.log(`active profile: ${state.activeProfile ?? "unmanaged"}`);
|
|
240
291
|
console.log(`supervised sessions: ${sessions.length}`);
|
package/dist/src/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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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const color: {
|
|
2
|
+
dim: (value: string) => string;
|
|
3
|
+
red: (value: string) => string;
|
|
4
|
+
green: (value: string) => string;
|
|
5
|
+
yellow: (value: string) => string;
|
|
6
|
+
cyan: (value: string) => string;
|
|
7
|
+
gray: (value: string) => string;
|
|
8
|
+
inverse: (value: string) => string;
|
|
9
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const codes = {
|
|
2
|
+
reset: "\u001b[0m",
|
|
3
|
+
dim: "\u001b[2m",
|
|
4
|
+
red: "\u001b[31m",
|
|
5
|
+
green: "\u001b[32m",
|
|
6
|
+
yellow: "\u001b[33m",
|
|
7
|
+
cyan: "\u001b[36m",
|
|
8
|
+
gray: "\u001b[90m",
|
|
9
|
+
inverse: "\u001b[7m",
|
|
10
|
+
};
|
|
11
|
+
function enabled() {
|
|
12
|
+
return process.env.AGYX_NO_COLOR === undefined
|
|
13
|
+
&& process.env.TERM !== "dumb"
|
|
14
|
+
&& process.stdout.isTTY;
|
|
15
|
+
}
|
|
16
|
+
function wrap(code, value) {
|
|
17
|
+
return enabled() ? `${code}${value}${codes.reset}` : value;
|
|
18
|
+
}
|
|
19
|
+
export const color = {
|
|
20
|
+
dim: (value) => wrap(codes.dim, value),
|
|
21
|
+
red: (value) => wrap(codes.red, value),
|
|
22
|
+
green: (value) => wrap(codes.green, value),
|
|
23
|
+
yellow: (value) => wrap(codes.yellow, value),
|
|
24
|
+
cyan: (value) => wrap(codes.cyan, value),
|
|
25
|
+
gray: (value) => wrap(codes.gray, value),
|
|
26
|
+
inverse: (value) => wrap(codes.inverse, value),
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=color.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../src/color.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG;IACZ,KAAK,EAAE,WAAW;IAClB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,YAAY;IACjB,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,WAAW;CACZ,CAAC;AAEX,SAAS,OAAO;IACd,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,SAAS;WACzC,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM;WAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5B,CAAC;AAED,SAAS,IAAI,CAAC,IAAY,EAAE,KAAa;IACvC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;IAC9C,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;IAC9C,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;IAClD,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;IACpD,IAAI,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;IAChD,IAAI,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;IAChD,OAAO,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;CACvD,CAAC"}
|
package/dist/src/config.d.ts
CHANGED
|
@@ -1,15 +1,25 @@
|
|
|
1
1
|
export interface ProfileRecord {
|
|
2
2
|
name: string;
|
|
3
|
+
previousNames?: string[];
|
|
3
4
|
email?: string;
|
|
4
5
|
createdAt: string;
|
|
5
6
|
updatedAt: string;
|
|
6
7
|
authenticatedAt?: string;
|
|
7
8
|
lastActivatedAt?: string;
|
|
9
|
+
lastRequestAt?: string;
|
|
8
10
|
lastSuccessfulRequestAt?: string;
|
|
9
11
|
lastQuotaErrorAt?: string;
|
|
10
12
|
quotaResetAt?: string;
|
|
11
13
|
quotaStatus?: "unknown" | "available" | "exhausted";
|
|
12
14
|
lastQuotaReason?: string;
|
|
15
|
+
credentialStatus?: "unknown" | "verified" | "mismatch" | "error";
|
|
16
|
+
verifiedEmail?: string;
|
|
17
|
+
credentialVerifiedAt?: string;
|
|
18
|
+
credentialMismatchAt?: string;
|
|
19
|
+
credentialError?: string;
|
|
20
|
+
eligibilityStatus?: "unknown" | "eligible" | "ineligible";
|
|
21
|
+
lastEligibilityErrorAt?: string;
|
|
22
|
+
eligibilityReason?: string;
|
|
13
23
|
selectionCount?: number;
|
|
14
24
|
disabled?: boolean;
|
|
15
25
|
priority?: number;
|
|
@@ -18,29 +28,43 @@ export interface State {
|
|
|
18
28
|
version: 1;
|
|
19
29
|
activeProfile?: string;
|
|
20
30
|
realAgyPath?: string;
|
|
31
|
+
onboarding?: {
|
|
32
|
+
shellIntegrationPromptedAt?: string;
|
|
33
|
+
shellIntegrationInstalledAt?: string;
|
|
34
|
+
githubStarPromptedAt?: string;
|
|
35
|
+
githubStarredAt?: string;
|
|
36
|
+
};
|
|
21
37
|
profiles: ProfileRecord[];
|
|
22
38
|
}
|
|
23
39
|
export declare const configDir: string;
|
|
24
40
|
export declare const runtimeDir: string;
|
|
25
41
|
export declare const logDir: string;
|
|
26
42
|
export declare const statePath: string;
|
|
27
|
-
export declare const googleAccountsPath: string;
|
|
28
43
|
export declare function ensureDirectories(): Promise<void>;
|
|
29
44
|
export declare function loadState(): Promise<State>;
|
|
30
45
|
export declare function saveState(state: State): Promise<void>;
|
|
31
|
-
export declare function upsertProfile(name: string, email: string | undefined, makeActive: boolean): Promise<void>;
|
|
32
|
-
export declare function markProfileActivated(state: State, name: string, now?: Date): void;
|
|
46
|
+
export declare function upsertProfile(name: string, email: string | undefined, makeActive: boolean, countActivation?: boolean): Promise<void>;
|
|
47
|
+
export declare function markProfileActivated(state: State, name: string, now?: Date, incrementSelection?: boolean): void;
|
|
48
|
+
export declare function markProfileRequest(state: State, name: string, now?: Date): void;
|
|
33
49
|
export declare function markProfileQuotaExhausted(state: State, name: string, event: {
|
|
34
50
|
reason: string;
|
|
35
51
|
resetAt?: string;
|
|
36
52
|
}, now?: Date): void;
|
|
53
|
+
export declare function markProfileCredentialVerified(state: State, name: string, actualEmail: string, now?: Date): void;
|
|
54
|
+
export declare function markProfileCredentialMismatch(state: State, name: string, actualEmail: string | undefined, expectedEmail: string | undefined, now?: Date): void;
|
|
55
|
+
export declare function markProfileIneligible(state: State, name: string, event: {
|
|
56
|
+
reason: string;
|
|
57
|
+
}, now?: Date): void;
|
|
37
58
|
export declare function recordProfileQuotaExhausted(name: string, event: {
|
|
38
59
|
reason: string;
|
|
39
60
|
resetAt?: string;
|
|
40
61
|
}): Promise<void>;
|
|
62
|
+
export declare function recordProfileRequest(name: string, now?: Date): Promise<void>;
|
|
63
|
+
export declare function recordProfileIneligible(name: string, event: {
|
|
64
|
+
reason: string;
|
|
65
|
+
}): Promise<void>;
|
|
41
66
|
export declare function cleanupRuntimeFile(path: string): Promise<void>;
|
|
42
67
|
export declare function validateProfileName(name: string): string;
|
|
43
68
|
export declare function profileNameFromEmail(email: string): string;
|
|
44
69
|
export declare function uniqueProfileName(baseName: string, state: State): string;
|
|
45
|
-
export declare function readActiveGoogleAccountEmail(): Promise<string | undefined>;
|
|
46
70
|
export declare function ensureParent(path: string): Promise<void>;
|