@tokenfactory/acc-runner 0.45.0 → 0.46.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.
- package/dist/applied-seq-roster.d.ts +77 -0
- package/dist/applied-seq-roster.d.ts.map +1 -0
- package/dist/applied-seq-roster.js +45 -0
- package/dist/applied-seq-roster.js.map +1 -0
- package/dist/build-info.generated.d.ts +1 -1
- package/dist/build-info.generated.js +2 -2
- package/dist/chat-cancel/cancel-controller.d.ts +1 -1
- package/dist/chat-cancel/cancel-controller.js +1 -1
- package/dist/chat-cancel/index.d.ts +1 -1
- package/dist/chat-cancel/index.js +1 -1
- package/dist/machine-capabilities/redact.d.ts +1 -1
- package/dist/machine-capabilities/redact.js +2 -2
- package/dist/machine-capabilities/types.d.ts +3 -3
- package/dist/machine-capabilities/types.js +1 -1
- package/dist/machine-console/index.d.ts +4 -0
- package/dist/machine-console/index.d.ts.map +1 -1
- package/dist/machine-console/index.js +52 -0
- package/dist/machine-console/index.js.map +1 -1
- package/dist/mcp-spawn.d.ts +1 -1
- package/dist/mcp-spawn.js +1 -1
- package/dist/migration-seq-guard.d.ts +34 -5
- package/dist/migration-seq-guard.d.ts.map +1 -1
- package/dist/migration-seq-guard.js +45 -6
- package/dist/migration-seq-guard.js.map +1 -1
- package/dist/prepr-gate.d.ts +12 -1
- package/dist/prepr-gate.d.ts.map +1 -1
- package/dist/prepr-gate.js +34 -3
- package/dist/prepr-gate.js.map +1 -1
- package/dist/production-migrations/executor.d.ts +28 -0
- package/dist/production-migrations/executor.d.ts.map +1 -1
- package/dist/production-migrations/executor.js +27 -2
- package/dist/production-migrations/executor.js.map +1 -1
- package/dist/staging-migrations/executor.d.ts +16 -0
- package/dist/staging-migrations/executor.d.ts.map +1 -1
- package/dist/staging-migrations/executor.js +20 -1
- package/dist/staging-migrations/executor.js.map +1 -1
- package/dist/task-runner.d.ts.map +1 -1
- package/dist/task-runner.js +13 -2
- package/dist/task-runner.js.map +1 -1
- package/dist/user-auth/device-login.d.ts +13 -0
- package/dist/user-auth/device-login.d.ts.map +1 -1
- package/dist/user-auth/device-login.js +113 -40
- package/dist/user-auth/device-login.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,6 +2,19 @@ import { type GoTrueDeps, type StoredUserSession } from "./session.js";
|
|
|
2
2
|
export declare const DEVICE_CODE_PATH = "/api/auth/device-code";
|
|
3
3
|
/** Consecutive transient exchange failures tolerated before giving up. */
|
|
4
4
|
export declare const MAX_POLL_FAILURES = 5;
|
|
5
|
+
/**
|
|
6
|
+
* DEC-046 — how many REPLACEMENT device codes one sign-in will mint after the
|
|
7
|
+
* code on screen expires.
|
|
8
|
+
*
|
|
9
|
+
* Deliberately a separate constant from the identically-named one in
|
|
10
|
+
* `../login.ts`, not a shared import: the two device lanes are independent by
|
|
11
|
+
* design (this file's header: "`acc-runner login` is untouched by it"), and
|
|
12
|
+
* importing the runner lane here would drag execa, the keychain and the Supabase
|
|
13
|
+
* client into the person-auth path. Same policy number, stated twice on purpose —
|
|
14
|
+
* if it ever needs to be one source of truth, that is a new neutral module, not
|
|
15
|
+
* a cross-lane import.
|
|
16
|
+
*/
|
|
17
|
+
export declare const MAX_DEVICE_REMINTS = 3;
|
|
5
18
|
export interface DeviceLoginDeps extends GoTrueDeps {
|
|
6
19
|
sleep?: (ms: number) => Promise<unknown>;
|
|
7
20
|
openBrowser?: (url: string) => Promise<unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-login.d.ts","sourceRoot":"","sources":["../../src/user-auth/device-login.ts"],"names":[],"mappings":"AAqBA,OAAO,EAML,KAAK,UAAU,EACf,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AAGtB,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AAuBxD,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAwBD;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"device-login.d.ts","sourceRoot":"","sources":["../../src/user-auth/device-login.ts"],"names":[],"mappings":"AAqBA,OAAO,EAML,KAAK,UAAU,EACf,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AAGtB,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AAuBxD,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAgEpC,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAwBD;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkFxF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAahF;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBjF;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW,gCAAgC,CAAC;AAEzD,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BjF"}
|
|
@@ -24,6 +24,64 @@ import { probeUserSession, revokedMessage } from "./liveness.js";
|
|
|
24
24
|
export const DEVICE_CODE_PATH = "/api/auth/device-code";
|
|
25
25
|
/** Consecutive transient exchange failures tolerated before giving up. */
|
|
26
26
|
export const MAX_POLL_FAILURES = 5;
|
|
27
|
+
/**
|
|
28
|
+
* DEC-046 — how many REPLACEMENT device codes one sign-in will mint after the
|
|
29
|
+
* code on screen expires.
|
|
30
|
+
*
|
|
31
|
+
* Deliberately a separate constant from the identically-named one in
|
|
32
|
+
* `../login.ts`, not a shared import: the two device lanes are independent by
|
|
33
|
+
* design (this file's header: "`acc-runner login` is untouched by it"), and
|
|
34
|
+
* importing the runner lane here would drag execa, the keychain and the Supabase
|
|
35
|
+
* client into the person-auth path. Same policy number, stated twice on purpose —
|
|
36
|
+
* if it ever needs to be one source of truth, that is a new neutral module, not
|
|
37
|
+
* a cross-lane import.
|
|
38
|
+
*/
|
|
39
|
+
export const MAX_DEVICE_REMINTS = 3;
|
|
40
|
+
/**
|
|
41
|
+
* The exit after the last replacement expires. Built at throw time, not as a
|
|
42
|
+
* module constant, because `signInCommand()` is process-scoped state: the same
|
|
43
|
+
* sentence has to read `acc login` under the unified bin and
|
|
44
|
+
* `acc-runner auth login` under the alias, and a constant evaluated at import
|
|
45
|
+
* time would freeze whichever name happened to be set first.
|
|
46
|
+
*/
|
|
47
|
+
function remintsExhaustedMessage() {
|
|
48
|
+
return (`Device code expired ${MAX_DEVICE_REMINTS + 1} times without a sign-in ` +
|
|
49
|
+
`(${MAX_DEVICE_REMINTS} replacement codes were printed above, and none was entered). ` +
|
|
50
|
+
`Nothing was signed in. Run \`${signInCommand()}\` when you are ready to enter the code.`);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The "here is your code" block, extracted so a replacement reaches the screen
|
|
54
|
+
* byte-identically to the first one. DEC-046's drift list names re-minting
|
|
55
|
+
* WITHOUT printing the new code, which would leave the person typing a code the
|
|
56
|
+
* server has already forgotten.
|
|
57
|
+
*/
|
|
58
|
+
function printDeviceCode(say, start) {
|
|
59
|
+
say("");
|
|
60
|
+
say(chalk.bold("To sign in to ACC from this terminal:"));
|
|
61
|
+
say("");
|
|
62
|
+
say(` ${chalk.cyan("1.")} Visit ${chalk.underline(start.verification_url)}`);
|
|
63
|
+
say(` ${chalk.cyan("2.")} Enter code: ${chalk.bold.green(start.user_code)}`);
|
|
64
|
+
say("");
|
|
65
|
+
say(chalk.gray("Waiting for confirmation…"));
|
|
66
|
+
}
|
|
67
|
+
/** The replacement, with the one line explaining why a second code appeared. */
|
|
68
|
+
function printRemintedDeviceCode(say, start, attempt) {
|
|
69
|
+
say("");
|
|
70
|
+
say(chalk.yellow(`That code expired — codes last 10 minutes. Here is a new one (${attempt} of ${MAX_DEVICE_REMINTS}):`));
|
|
71
|
+
printDeviceCode(say, start);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Ask for a code and refuse anything that is not one. Shared by the first mint
|
|
75
|
+
* and every re-mint: a re-mint whose create call failed must abort rather than
|
|
76
|
+
* quietly keep polling the code that just expired.
|
|
77
|
+
*/
|
|
78
|
+
async function createDeviceCode(doFetch, endpoint) {
|
|
79
|
+
const created = await post(doFetch, endpoint, { action: "create" });
|
|
80
|
+
if (created.status !== 200 || !created.json.device_code) {
|
|
81
|
+
throw new Error(`Could not start device login (HTTP ${created.status}).`);
|
|
82
|
+
}
|
|
83
|
+
return created.json;
|
|
84
|
+
}
|
|
27
85
|
async function post(doFetch, url, body) {
|
|
28
86
|
const res = await doFetch(url, {
|
|
29
87
|
method: "POST",
|
|
@@ -58,56 +116,71 @@ export async function deviceLogin(deps = {}) {
|
|
|
58
116
|
const nap = deps.sleep ?? ((ms) => sleep(ms));
|
|
59
117
|
const say = deps.log ?? ((line) => console.log(line));
|
|
60
118
|
const endpoint = `${cfg.publicUrl.replace(/\/+$/, "")}${DEVICE_CODE_PATH}`;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
say(` ${chalk.cyan("1.")} Visit ${chalk.underline(start.verification_url)}`);
|
|
70
|
-
say(` ${chalk.cyan("2.")} Enter code: ${chalk.bold.green(start.user_code)}`);
|
|
71
|
-
say("");
|
|
72
|
-
say(chalk.gray("Waiting for confirmation…"));
|
|
119
|
+
// `let`, because an expiry re-mints into it (DEC-046).
|
|
120
|
+
let start = await createDeviceCode(doFetch, endpoint);
|
|
121
|
+
printDeviceCode(say, start);
|
|
122
|
+
// FIRST code only. A replacement deliberately does not re-open the browser:
|
|
123
|
+
// the person is already on the page (that is why they are waiting), and
|
|
124
|
+
// DEC-046 has the page clear and focus its field for the new code. Opening up
|
|
125
|
+
// to three more tabs on their machine is not a convenience — the runner lane
|
|
126
|
+
// makes the same call, for the same reason.
|
|
73
127
|
const openBrowser = deps.openBrowser ?? ((url) => open(url));
|
|
74
128
|
void Promise.resolve(openBrowser(start.verification_url)).catch(() => {
|
|
75
129
|
/* headless box; the printed URL is the fallback */
|
|
76
130
|
});
|
|
77
|
-
const interval = (deps.intervalSeconds ?? start.interval) * 1000;
|
|
78
131
|
const now = () => deps.now?.() ?? Date.now();
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
132
|
+
let remints = 0;
|
|
133
|
+
for (;;) {
|
|
134
|
+
const interval = (deps.intervalSeconds ?? start.interval) * 1000;
|
|
135
|
+
// Re-derived per code: a replacement carries its OWN TTL, so reusing the
|
|
136
|
+
// first code's deadline would retire a brand-new code the moment it printed.
|
|
137
|
+
const deadline = now() + (deps.timeoutSeconds ?? start.expires_in) * 1000;
|
|
138
|
+
let failures = 0;
|
|
139
|
+
let lastFailure = null;
|
|
140
|
+
// Set only by the server saying the code is spent.
|
|
141
|
+
let expired = false;
|
|
142
|
+
while (now() < deadline) {
|
|
143
|
+
await nap(interval);
|
|
144
|
+
const { status, json } = await post(doFetch, endpoint, {
|
|
145
|
+
action: "exchange",
|
|
146
|
+
device_code: start.device_code,
|
|
147
|
+
});
|
|
148
|
+
if (status !== 200 || json.status === "retry") {
|
|
149
|
+
failures += 1;
|
|
150
|
+
lastFailure = json.status === "retry" ? (json.error ?? "retry") : `HTTP ${status}`;
|
|
151
|
+
if (failures >= MAX_POLL_FAILURES) {
|
|
152
|
+
throw new Error(`Device-code exchange failed ${failures} times in a row: ${lastFailure}`);
|
|
153
|
+
}
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
failures = 0;
|
|
157
|
+
if (json.status === "expired") {
|
|
158
|
+
expired = true;
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
if (json.status === "ok") {
|
|
162
|
+
if (!json.email) {
|
|
163
|
+
throw new Error("This account has no email address, so a CLI session cannot be issued.");
|
|
164
|
+
}
|
|
165
|
+
// The grant is spent from HERE, not on the server: GoTrue records this
|
|
166
|
+
// machine's agent and address on the session row, which is what makes the
|
|
167
|
+
// session recognisable (and therefore revocable) on Settings → Sessions.
|
|
168
|
+
return verifyEmailOtp({ supabaseUrl: json.supabase_url, anonKey: json.anon_key }, { email: json.email, token: json.token }, deps);
|
|
93
169
|
}
|
|
94
|
-
continue;
|
|
95
170
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
171
|
+
// Only a SERVER-reported expiry re-mints. Running the local deadline out
|
|
172
|
+
// without ever being TOLD the code was spent is a different fact — a silent
|
|
173
|
+
// or unreachable exchange lane — and it keeps its own sentence.
|
|
174
|
+
if (!expired) {
|
|
175
|
+
throw new Error("Device code timed out before sign-in completed.");
|
|
99
176
|
}
|
|
100
|
-
if (
|
|
101
|
-
|
|
102
|
-
throw new Error("This account has no email address, so a CLI session cannot be issued.");
|
|
103
|
-
}
|
|
104
|
-
// The grant is spent from HERE, not on the server: GoTrue records this
|
|
105
|
-
// machine's agent and address on the session row, which is what makes the
|
|
106
|
-
// session recognisable (and therefore revocable) on Settings → Sessions.
|
|
107
|
-
return verifyEmailOtp({ supabaseUrl: json.supabase_url, anonKey: json.anon_key }, { email: json.email, token: json.token }, deps);
|
|
177
|
+
if (remints >= MAX_DEVICE_REMINTS) {
|
|
178
|
+
throw new Error(remintsExhaustedMessage());
|
|
108
179
|
}
|
|
180
|
+
remints += 1;
|
|
181
|
+
start = await createDeviceCode(doFetch, endpoint);
|
|
182
|
+
printRemintedDeviceCode(say, start, remints);
|
|
109
183
|
}
|
|
110
|
-
throw new Error("Device code timed out before sign-in completed.");
|
|
111
184
|
}
|
|
112
185
|
export async function authLoginCommand(deps = {}) {
|
|
113
186
|
const session = await deviceLogin(deps);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-login.js","sourceRoot":"","sources":["../../src/user-auth/device-login.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,cAAc,GAGf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAuBxD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"device-login.js","sourceRoot":"","sources":["../../src/user-auth/device-login.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,cAAc,GAGf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAuBxD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC;;;;;;GAMG;AACH,SAAS,uBAAuB;IAC9B,OAAO,CACL,uBAAuB,kBAAkB,GAAG,CAAC,2BAA2B;QACxE,IAAI,kBAAkB,gEAAgE;QACtF,gCAAgC,aAAa,EAAE,0CAA0C,CAC1F,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,GAA2B,EAAE,KAAqB;IACzE,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;IACzD,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC/E,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC/E,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,gFAAgF;AAChF,SAAS,uBAAuB,CAC9B,GAA2B,EAC3B,KAAqB,EACrB,OAAe;IAEf,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CACD,KAAK,CAAC,MAAM,CACV,iEAAiE,OAAO,OAAO,kBAAkB,IAAI,CACtG,CACF,CAAC;IACF,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,gBAAgB,CAC7B,OAAqB,EACrB,QAAgB;IAEhB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAiB,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpF,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC;AAWD,KAAK,UAAU,IAAI,CACjB,OAAqB,EACrB,GAAW,EACX,IAAa;IAEb,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE;QAC7B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,cAAc,gBAAgB,EAAE;SAC/C;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;KACjC,CAAC,CAAC;IACH,IAAI,IAAI,GAAG,EAAO,CAAC;IACnB,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;IACvC,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAwB,EAAE;IAC1D,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC;IAE3E,uDAAuD;IACvD,IAAI,KAAK,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEtD,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAE5B,4EAA4E;IAC5E,wEAAwE;IACxE,8EAA8E;IAC9E,6EAA6E;IAC7E,4CAA4C;IAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,KAAK,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACnE,mDAAmD;IACrD,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7C,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,SAAS,CAAC;QACR,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QACjE,yEAAyE;QACzE,6EAA6E;QAC7E,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAC1E,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,WAAW,GAAkB,IAAI,CAAC;QACtC,mDAAmD;QACnD,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,OAAO,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YACxB,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAmB,OAAO,EAAE,QAAQ,EAAE;gBACvE,MAAM,EAAE,UAAU;gBAClB,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,CAAC,CAAC;YACH,IAAI,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC9C,QAAQ,IAAI,CAAC,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC;gBACnF,IAAI,QAAQ,IAAI,iBAAiB,EAAE,CAAC;oBAClC,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,oBAAoB,WAAW,EAAE,CAAC,CAAC;gBAC5F,CAAC;gBACD,SAAS;YACX,CAAC;YACD,QAAQ,GAAG,CAAC,CAAC;YACb,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;YACR,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAChB,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;gBAC3F,CAAC;gBACD,uEAAuE;gBACvE,0EAA0E;gBAC1E,yEAAyE;gBACzE,OAAO,cAAc,CACnB,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,EAC1D,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EACxC,IAAI,CACL,CAAC;YACJ,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,4EAA4E;QAC5E,gEAAgE;QAChE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,OAAO,IAAI,kBAAkB,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC,CAAC;QACb,KAAK,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAClD,uBAAuB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAwB,EAAE;IAC/D,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC,CAAC;IACxE,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mDAAmD,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;IACvF,GAAG,CACD,KAAK,CAAC,IAAI,CACR,6BAA6B,OAAO,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,KAAK,CAChG,CACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAwB,EAAE;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,wBAAwB,aAAa,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IACD,GAAG,CAAC,gBAAgB,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACxD,GAAG,CAAC,wBAAwB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,gBAAgB,EAAE,CAAC;QACzB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IACD,GAAG,CACD,OAAO,CAAC,QAAQ;QACd,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC;QACzD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CACnF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAEzD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAwB,EAAE;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtB,OAAO;IACT,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;QACpC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE;YACrF,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,OAAO,CAAC,QAAQ;gBACxB,aAAa,EAAE,UAAU,OAAO,CAAC,YAAY,EAAE;gBAC/C,YAAY,EAAE,IAAI,CAAC,SAAS,IAAI,YAAY,EAAE;aAC/C;SACF,CAAC,CAAC;QACH,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC;IACD,MAAM,gBAAgB,EAAE,CAAC;IACzB,GAAG,CACD,OAAO;QACL,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC;QAC5D,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,mGAAmG,CAAC,CACtH,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tokenfactory/acc-runner",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.46.0",
|
|
4
4
|
"description": "Agent Control Center CLI (`acc`). Sign in, read the task board, ask ACC, and run agents on this machine. `acc-runner` is retained as a deprecated alias.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"private": false,
|