@openagt/servers 0.0.1 → 0.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/dist/cli.d.ts +4 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +19 -12
- package/dist/cli.js.map +1 -1
- package/dist/dashboard/dashboard.css +1 -1
- package/dist/dashboard/dashboard.js +244 -179
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +6 -4
- package/dist/install.js.map +1 -1
- package/dist/logins.d.ts +11 -0
- package/dist/logins.d.ts.map +1 -1
- package/dist/logins.js +55 -16
- package/dist/logins.js.map +1 -1
- package/dist/steps.d.ts +15 -0
- package/dist/steps.d.ts.map +1 -1
- package/dist/steps.js +87 -0
- package/dist/steps.js.map +1 -1
- package/dist/store.d.ts +13 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +24 -1
- package/dist/store.js.map +1 -1
- package/package.json +1 -1
package/dist/install.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,KAAK,IAAI,EAAgB,MAAM,UAAU,CAAA;AAEtF,OAAO,
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,KAAK,IAAI,EAAgB,MAAM,UAAU,CAAA;AAEtF,OAAO,EAAsD,KAAK,MAAM,EAAkB,MAAM,YAAY,CAAA;AAE5G;;;;;;;GAOG;AAEH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,qCAAqC;IACrC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,sEAAsE;AACtE,qBAAa,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDjE;AAED,MAAM,MAAM,IAAI,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAQ5F;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,EAAE,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,IAAI,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAejH"}
|
package/dist/install.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { giveGithub, noteGithub } from './logins.js';
|
|
2
2
|
import { lastLines, openSession, withAdvice } from './ssh.js';
|
|
3
3
|
import { SERVER_USER, STEPS, linkScript } from './steps.js';
|
|
4
|
-
import { BEAT_MS, changeServer, doorUrl, working } from './store.js';
|
|
4
|
+
import { BEAT_MS, changeServer, doorUrl, heartbeat, working } from './store.js';
|
|
5
5
|
/** Refused: the server's install already runs, in another process. */
|
|
6
6
|
export class AlreadyWorking extends Error {
|
|
7
7
|
constructor(address) {
|
|
@@ -30,7 +30,7 @@ export async function install(opts) {
|
|
|
30
30
|
});
|
|
31
31
|
if (!server)
|
|
32
32
|
throw new Error(`no server at ${address}`);
|
|
33
|
-
const beating =
|
|
33
|
+
const beating = heartbeat(beat, opts.beatMs ?? BEAT_MS);
|
|
34
34
|
let session;
|
|
35
35
|
try {
|
|
36
36
|
session = await openSession(server, { ...(opts.exec ? { exec: opts.exec } : {}), ...(opts.signal ? { signal: opts.signal } : {}) });
|
|
@@ -58,7 +58,7 @@ export async function install(opts) {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
finally {
|
|
61
|
-
|
|
61
|
+
await beating.stop();
|
|
62
62
|
await change(kept => {
|
|
63
63
|
if (!mine(kept))
|
|
64
64
|
return;
|
|
@@ -71,6 +71,8 @@ export async function install(opts) {
|
|
|
71
71
|
await session?.close();
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
+
/** How long a link may be: a door's link is its address, a code and a key's mark, and a page draws it as a QR code. */
|
|
75
|
+
const LINK_MAX = 512;
|
|
74
76
|
/** How long the server gets to answer with a link: less than a page's command has, so the line is always hung up. */
|
|
75
77
|
const LINK_TIMEOUT_MS = 20_000;
|
|
76
78
|
/**
|
|
@@ -86,7 +88,7 @@ export async function askLink(server, opts = {}) {
|
|
|
86
88
|
return { ok: false, error: withAdvice(server, lastLines(said) || 'The server did not answer.') };
|
|
87
89
|
try {
|
|
88
90
|
const { url, expires } = JSON.parse(said.out.trim().split('\n').at(-1) ?? '');
|
|
89
|
-
if (typeof url === 'string' && typeof expires === 'string' && new URL(url).origin === doorUrl(server.address))
|
|
91
|
+
if (typeof url === 'string' && url.length <= LINK_MAX && typeof expires === 'string' && Number.isFinite(Date.parse(expires)) && new URL(url).origin === doorUrl(server.address))
|
|
90
92
|
return { ok: true, url, expires };
|
|
91
93
|
}
|
|
92
94
|
catch {
|
package/dist/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAA2B,MAAM,UAAU,CAAA;AACtF,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAe,MAAM,YAAY,CAAA;AACxE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAA+B,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|
package/dist/logins.d.ts
CHANGED
|
@@ -32,12 +32,21 @@ export type GithubGiven = {
|
|
|
32
32
|
});
|
|
33
33
|
/** Copy this computer's GitHub login to the server on a line that is already open. */
|
|
34
34
|
export declare function giveGithub(session: Session, run?: Exec): Promise<GithubGiven>;
|
|
35
|
+
/**
|
|
36
|
+
* Have the server get a GitHub login of its own, on a line that is already open: the server asks
|
|
37
|
+
* GitHub, GitHub answers with a code, `show` puts the code before the person, and the server
|
|
38
|
+
* waits until the person has typed it at GitHub and said yes there. No login passes through this
|
|
39
|
+
* computer.
|
|
40
|
+
*/
|
|
41
|
+
export declare function askGithub(session: Session, show: (code: string) => Promise<unknown>): Promise<GithubGiven>;
|
|
35
42
|
/** Write down how a copy of the GitHub login went. */
|
|
36
43
|
export declare function noteGithub(kept: Server, given: GithubGiven): void;
|
|
37
44
|
/** The login among what Claude Code showed, once all of it is there. */
|
|
38
45
|
export declare function mintedIn(shown: string): string | undefined;
|
|
39
46
|
/** Why Claude Code ended without a login, from what it showed: its last lines, never a part of a login. */
|
|
40
47
|
export declare function notMinted(shown: string): string;
|
|
48
|
+
/** Which process the lent terminal's first program said it is, once its whole line is there: half a number names another process. */
|
|
49
|
+
export declare function startedAs(shown: string): number | undefined;
|
|
41
50
|
export interface MintOptions {
|
|
42
51
|
signal?: AbortSignal;
|
|
43
52
|
/** How long the person has to say yes in the browser. */
|
|
@@ -67,6 +76,8 @@ export interface Job {
|
|
|
67
76
|
kind: LoginKind;
|
|
68
77
|
/** Take the login off the server, where otherwise the server is given one. */
|
|
69
78
|
remove: boolean;
|
|
79
|
+
/** GitHub: the server gets a login of its own, with a code a person types at GitHub, where otherwise this computer's is copied. */
|
|
80
|
+
own?: boolean;
|
|
70
81
|
}
|
|
71
82
|
export interface LoginOptions extends Job {
|
|
72
83
|
env: NodeJS.ProcessEnv;
|
package/dist/logins.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logins.d.ts","sourceRoot":"","sources":["../src/logins.ts"],"names":[],"mappings":"AACA,OAAO,EAAuD,KAAK,IAAI,EAAa,KAAK,OAAO,EAAE,MAAM,UAAU,CAAA;AAElH,OAAO,
|
|
1
|
+
{"version":3,"file":"logins.d.ts","sourceRoot":"","sources":["../src/logins.ts"],"names":[],"mappings":"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"}
|
package/dist/logins.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
2
|
import { exec as ownExec, lastLines, openSession, withAdvice } from './ssh.js';
|
|
3
|
-
import { LOGIN_TIMEOUT_MS, claudeLoginScript, claudeLogoutScript, githubLoginScript, githubLogoutScript } from './steps.js';
|
|
4
|
-
import { BEAT_MS, atWork, changeServer, isAccount } from './store.js';
|
|
3
|
+
import { GITHUB_CODE_TIMEOUT_MS, LOGIN_TIMEOUT_MS, claudeLoginScript, claudeLogoutScript, githubCodeScript, githubLoginScript, githubLogoutScript, githubWaitScript } from './steps.js';
|
|
4
|
+
import { BEAT_MS, atWork, changeServer, heartbeat, isAccount, isGithubCode } from './store.js';
|
|
5
5
|
/** How long one of this computer's own commands gets to answer. */
|
|
6
6
|
const OWN_TIMEOUT_MS = 15_000;
|
|
7
7
|
/** Why this computer's `gh` gave nothing, in words: never its own, which could hold what it was asked for. */
|
|
@@ -26,8 +26,8 @@ export function scrubbed(text, login) {
|
|
|
26
26
|
return login ? text.replaceAll(login, '•••') : text;
|
|
27
27
|
}
|
|
28
28
|
/** Run a login's script on the server. What comes back never holds the login. */
|
|
29
|
-
async function send(session, { as, script }, login = '') {
|
|
30
|
-
const said = await session.run(as, script,
|
|
29
|
+
async function send(session, { as, script }, login = '', timeoutMs = LOGIN_TIMEOUT_MS) {
|
|
30
|
+
const said = await session.run(as, script, timeoutMs);
|
|
31
31
|
const clean = { out: scrubbed(said.out, login), err: scrubbed(said.err, login) };
|
|
32
32
|
return said.code === 0 ? { ok: true, out: clean.out } : { ok: false, error: lastLines(clean) || 'The server did not answer.' };
|
|
33
33
|
}
|
|
@@ -42,6 +42,28 @@ export async function giveGithub(session, run = ownExec) {
|
|
|
42
42
|
const account = sent.out.trim().split('\n').at(-1)?.trim();
|
|
43
43
|
return isAccount(account) ? { ok: true, account } : { ok: false, error: 'The server took the login and did not say whose it is.', reached: true };
|
|
44
44
|
}
|
|
45
|
+
/** What the server answers once its `gh` waits for a code: the process, the file it writes to, and the code. */
|
|
46
|
+
const ASKING = /^(\d{1,10}) (\/[A-Za-z0-9._/-]{1,200}) (\S+)$/;
|
|
47
|
+
/**
|
|
48
|
+
* Have the server get a GitHub login of its own, on a line that is already open: the server asks
|
|
49
|
+
* GitHub, GitHub answers with a code, `show` puts the code before the person, and the server
|
|
50
|
+
* waits until the person has typed it at GitHub and said yes there. No login passes through this
|
|
51
|
+
* computer.
|
|
52
|
+
*/
|
|
53
|
+
export async function askGithub(session, show) {
|
|
54
|
+
const asked = await send(session, githubCodeScript());
|
|
55
|
+
if (!asked.ok)
|
|
56
|
+
return { ...asked, reached: true };
|
|
57
|
+
const [, pid, log, code] = ASKING.exec(asked.out.trim().split('\n').at(-1) ?? '') ?? [];
|
|
58
|
+
if (pid === undefined || log === undefined || !isGithubCode(code))
|
|
59
|
+
return { ok: false, error: 'The server answered something else than a code from GitHub.', reached: true };
|
|
60
|
+
await show(code);
|
|
61
|
+
const sent = await send(session, githubWaitScript(pid, log), '', GITHUB_CODE_TIMEOUT_MS);
|
|
62
|
+
if (!sent.ok)
|
|
63
|
+
return { ...sent, reached: true };
|
|
64
|
+
const account = sent.out.trim().split('\n').at(-1)?.trim();
|
|
65
|
+
return isAccount(account) ? { ok: true, account } : { ok: false, error: 'The server has a login and did not say whose it is.', reached: true };
|
|
66
|
+
}
|
|
45
67
|
/** What is known of a login beyond a try: since when it is there, and whose it is. */
|
|
46
68
|
const known = (login) => ({ ...(login?.since ? { since: login.since } : {}), ...(login?.account ? { account: login.account } : {}) });
|
|
47
69
|
/** Write down how a copy of the GitHub login went. */
|
|
@@ -52,12 +74,18 @@ export function noteGithub(kept, given) {
|
|
|
52
74
|
else
|
|
53
75
|
kept.github = { ...(given.reached ? {} : known(kept.github)), failed: given.error };
|
|
54
76
|
}
|
|
55
|
-
/** What Claude Code writes before and after the login it made, and what such a login reads as. */
|
|
56
|
-
const MINTED = /Your
|
|
77
|
+
/** What Claude Code writes before and after the login it made, and what such a login reads as. The gap between two words is of any width. */
|
|
78
|
+
const MINTED = /Your\s+OAuth\s+token[^\n]*:\s*(sk-ant-[A-Za-z0-9_-]{40,400})\s+Store\s+this\s+token\s+securely/;
|
|
57
79
|
/** What a terminal is told beside words: colours, where the cursor goes, a link's address. */
|
|
58
80
|
const TERMINAL = /\x1b\[[0-?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)|\x1b[@-Z\\-_]/g;
|
|
59
|
-
/**
|
|
60
|
-
const
|
|
81
|
+
/** A colour: the one thing a terminal is told that leaves the words on its two sides together. */
|
|
82
|
+
const COLOUR = /\x1b\[[0-9;:]*m/g;
|
|
83
|
+
/**
|
|
84
|
+
* The words Claude Code showed, without what only a terminal reads. A colour goes; anything else
|
|
85
|
+
* a terminal is told is a gap: Claude Code's screen puts a word at its column where a plain line
|
|
86
|
+
* holds a space, and a login the cursor moved in is not one login.
|
|
87
|
+
*/
|
|
88
|
+
const words = (shown) => shown.replace(COLOUR, '').replace(TERMINAL, ' ').replaceAll('\r', '\n');
|
|
61
89
|
/** The login among what Claude Code showed, once all of it is there. */
|
|
62
90
|
export function mintedIn(shown) {
|
|
63
91
|
return MINTED.exec(words(shown))?.[1];
|
|
@@ -65,16 +93,21 @@ export function mintedIn(shown) {
|
|
|
65
93
|
/** Why Claude Code ended without a login, from what it showed: its last lines, never a part of a login. */
|
|
66
94
|
export function notMinted(shown) {
|
|
67
95
|
const text = words(shown);
|
|
68
|
-
|
|
96
|
+
// However the screen was drawn: where a login or its heading shows, none of the screen is told.
|
|
97
|
+
if (/YourOAuthtoken|sk-ant-/.test(text.replace(/\s/g, '')))
|
|
69
98
|
return 'Claude Code made a login, and this OpenAgent could not read it off what Claude Code showed.';
|
|
70
|
-
const lines = [...new Set(text.split('\n').map(line => line.trim()).filter(line => line && !STARTED_AS.test(line)))];
|
|
99
|
+
const lines = [...new Set(text.split('\n').map(line => line.trim().replace(/\s+/g, ' ')).filter(line => line && !STARTED_AS.test(line)))];
|
|
71
100
|
return ['Claude Code ended without a login.', ...lines.slice(-5)].join('\n');
|
|
72
101
|
}
|
|
102
|
+
/** Which process the lent terminal's first program said it is, once its whole line is there: half a number names another process. */
|
|
103
|
+
export function startedAs(shown) {
|
|
104
|
+
return Number(/^started as (\d+)\n/m.exec(words(shown))?.[1]) || undefined;
|
|
105
|
+
}
|
|
73
106
|
const MINT_TIMEOUT_MS = 10 * 60_000;
|
|
74
107
|
/** How much of what Claude Code showed is kept: its end, where the login is. */
|
|
75
108
|
const SHOWN = 256 * 1024;
|
|
76
109
|
/** The line the lent terminal's first program writes of itself, before it becomes Claude Code. */
|
|
77
|
-
const STARTED_AS = /^started as
|
|
110
|
+
const STARTED_AS = /^started as \d+$/;
|
|
78
111
|
/**
|
|
79
112
|
* Make a Claude login that lasts a year, with Claude Code's own `claude setup-token`: it opens
|
|
80
113
|
* this computer's browser, the person says yes there, and it shows the login once. It keeps
|
|
@@ -122,7 +155,7 @@ export const mintClaude = ({ signal, timeoutMs = MINT_TIMEOUT_MS, command = 'cla
|
|
|
122
155
|
const read = (said) => {
|
|
123
156
|
shown = (shown + said).slice(-SHOWN);
|
|
124
157
|
// Read once, as it comes: it is the first thing written, and a long wait scrolls it out of what is kept.
|
|
125
|
-
lentTo ??=
|
|
158
|
+
lentTo ??= startedAs(shown);
|
|
126
159
|
const login = mintedIn(shown);
|
|
127
160
|
if (login)
|
|
128
161
|
end({ ok: true, login });
|
|
@@ -140,8 +173,8 @@ export class AlreadyAtWork extends Error {
|
|
|
140
173
|
}
|
|
141
174
|
}
|
|
142
175
|
/** Open a line to the server, meet it, and do `work` on it; a server that cannot be met is told with what to do about it. */
|
|
143
|
-
async function onServer(server, run, work) {
|
|
144
|
-
const session = await openSession(server, run ? { exec: run } : {});
|
|
176
|
+
async function onServer(server, run, work, signal) {
|
|
177
|
+
const session = await openSession(server, { ...(run ? { exec: run } : {}), ...(signal ? { signal } : {}) });
|
|
145
178
|
try {
|
|
146
179
|
const met = await session.meet();
|
|
147
180
|
if (!met.ok)
|
|
@@ -174,7 +207,7 @@ export async function changeLogin(opts) {
|
|
|
174
207
|
});
|
|
175
208
|
if (!server)
|
|
176
209
|
throw new Error(`no server at ${address}`);
|
|
177
|
-
const beating =
|
|
210
|
+
const beating = heartbeat(() => changeServer(env, address, kept => void (mine(kept) && (kept[kind].worker = beat()))), opts.beatMs ?? BEAT_MS);
|
|
178
211
|
const failed = (error) => (kept) => void (kept[kind] = { ...known(kept[kind]), failed: error });
|
|
179
212
|
let after = failed('The work stopped before it ended.');
|
|
180
213
|
try {
|
|
@@ -182,6 +215,12 @@ export async function changeLogin(opts) {
|
|
|
182
215
|
const gone = await onServer(server, opts.exec, session => send(session, kind === 'github' ? githubLogoutScript() : claudeLogoutScript()));
|
|
183
216
|
after = gone.ok ? kept => void delete kept[kind] : failed(gone.error);
|
|
184
217
|
}
|
|
218
|
+
else if (kind === 'github' && opts.own) {
|
|
219
|
+
// The wait for the person is cut when this process is told to stop: a second press asks the server anew.
|
|
220
|
+
const shown = (code) => changeServer(env, address, kept => void (mine(kept) && Object.assign(kept.github, { asking: true, code })));
|
|
221
|
+
const given = await onServer(server, opts.exec, session => askGithub(session, shown), opts.signal);
|
|
222
|
+
after = kept => noteGithub(kept, given);
|
|
223
|
+
}
|
|
185
224
|
else if (kind === 'github') {
|
|
186
225
|
const given = await onServer(server, opts.exec, session => giveGithub(session, opts.exec));
|
|
187
226
|
after = kept => noteGithub(kept, given);
|
|
@@ -197,7 +236,7 @@ export async function changeLogin(opts) {
|
|
|
197
236
|
}
|
|
198
237
|
}
|
|
199
238
|
finally {
|
|
200
|
-
|
|
239
|
+
await beating.stop();
|
|
201
240
|
// One that was started over is another process's by now: nothing of it is this one's to write.
|
|
202
241
|
await changeServer(env, address, kept => void (mine(kept) && after(kept))).catch(() => { });
|
|
203
242
|
}
|
package/dist/logins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logins.js","sourceRoot":"","sources":["../src/logins.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"logins.js","sourceRoot":"","sources":["../src/logins.ts"],"names":[],"mappings":"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"}
|
package/dist/steps.d.ts
CHANGED
|
@@ -50,6 +50,21 @@ export declare const LOGIN_TIMEOUT_MS: number;
|
|
|
50
50
|
* it is on no command line, and no program the script starts finds it among what it was given.
|
|
51
51
|
*/
|
|
52
52
|
export declare function githubLoginScript(login: string): LoginScript;
|
|
53
|
+
/** How long a person has to type the code at GitHub: GitHub's own limit is fifteen minutes. */
|
|
54
|
+
export declare const GITHUB_CODE_TIMEOUT_MS: number;
|
|
55
|
+
/**
|
|
56
|
+
* Have the server ask GitHub for a login of its own: its `gh` is started and left waiting, and
|
|
57
|
+
* GitHub answers with a short code that a person types at github.com/login/device. The script
|
|
58
|
+
* prints `<process> <file> <code>` and ends; {@link githubWaitScript} sees the rest. One that
|
|
59
|
+
* still waits from an earlier press is ended first. The login the server had goes, as with a
|
|
60
|
+
* copy: the server has one GitHub login, the last one asked for.
|
|
61
|
+
*/
|
|
62
|
+
export declare function githubCodeScript(): LoginScript;
|
|
63
|
+
/**
|
|
64
|
+
* Wait until the server's `gh` has its answer from GitHub, for the code {@link githubCodeScript}
|
|
65
|
+
* printed, and say whose login it is. All of it or none, as with a copy.
|
|
66
|
+
*/
|
|
67
|
+
export declare function githubWaitScript(pid: string, log: string): LoginScript;
|
|
53
68
|
/** Take the GitHub login off the server. */
|
|
54
69
|
export declare function githubLogoutScript(): LoginScript;
|
|
55
70
|
/**
|
package/dist/steps.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../src/steps.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,QAAQ,YAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAU,CAAA;AACpG,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9C,oCAAoC;AACpC,MAAM,WAAW,KAAK;IACpB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAA;IACf,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,GAAG,WAAW,CAAA;IACxB,4FAA4F;IAC5F,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;CAC7B;AAED,iEAAiE;AACjE,eAAO,MAAM,WAAW,cAAc,CAAA;AAOtC,8LAA8L;AAC9L,eAAO,MAAM,WAAW,8BAA8B,CAAA;AAOtD,gEAAgE;AAChE,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5C;AAgDD,8IAA8I;AAC9I,eAAO,MAAM,YAAY,yfAiBE,CAAA;AAE3B,eAAO,MAAM,KAAK,EAAE,SAAS,OAAO,EAqMnC,CAAA;AAED,kHAAkH;AAClH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,uFAAuF;AACvF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,oGAAoG;AACpG,eAAO,MAAM,gBAAgB,QAAa,CAAA;AAM1C;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../src/steps.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,QAAQ,YAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAU,CAAA;AACpG,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9C,oCAAoC;AACpC,MAAM,WAAW,KAAK;IACpB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAA;IACf,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,GAAG,WAAW,CAAA;IACxB,4FAA4F;IAC5F,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;CAC7B;AAED,iEAAiE;AACjE,eAAO,MAAM,WAAW,cAAc,CAAA;AAOtC,8LAA8L;AAC9L,eAAO,MAAM,WAAW,8BAA8B,CAAA;AAOtD,gEAAgE;AAChE,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5C;AAgDD,8IAA8I;AAC9I,eAAO,MAAM,YAAY,yfAiBE,CAAA;AAE3B,eAAO,MAAM,KAAK,EAAE,SAAS,OAAO,EAqMnC,CAAA;AAED,kHAAkH;AAClH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,uFAAuF;AACvF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,oGAAoG;AACpG,eAAO,MAAM,gBAAgB,QAAa,CAAA;AAM1C;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAoB5D;AAED,+FAA+F;AAC/F,eAAO,MAAM,sBAAsB,QAAc,CAAA;AAqBjD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,CAgC9C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CA8BtE;AAED,4CAA4C;AAC5C,wBAAgB,kBAAkB,IAAI,WAAW,CAahD;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CA8B5D;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,IAAI,WAAW,CAchD"}
|
package/dist/steps.js
CHANGED
|
@@ -268,6 +268,7 @@ export function githubLoginScript(login) {
|
|
|
268
268
|
as: SERVER_USER,
|
|
269
269
|
script: script(SERVER_USER, { LOGIN: login }, `
|
|
270
270
|
${GH_OWN}
|
|
271
|
+
${GH_STOP_ASKING}
|
|
271
272
|
rm -f ${GH_FILE}
|
|
272
273
|
given() {
|
|
273
274
|
printf '%s\\n' "$LOGIN" | gh auth login --hostname github.com --git-protocol https --with-token &&
|
|
@@ -279,12 +280,98 @@ export function githubLoginScript(login) {
|
|
|
279
280
|
`),
|
|
280
281
|
};
|
|
281
282
|
}
|
|
283
|
+
/** How long a person has to type the code at GitHub: GitHub's own limit is fifteen minutes. */
|
|
284
|
+
export const GITHUB_CODE_TIMEOUT_MS = 16 * MINUTE;
|
|
285
|
+
/** Where the server's `gh` writes while it waits for the code to be typed, and the one that waits right now. */
|
|
286
|
+
const GH_ASKING = '"$HOME/.cache/openagent-github-login"';
|
|
287
|
+
/** Whether the process `$1` is a `gh` that asks GitHub for a login: a number kept in a file may be another process's by now. */
|
|
288
|
+
const GH_IS_ASKING = `asking() { ps -o args= -p "$1" 2>/dev/null | grep -q 'gh auth login'; }`;
|
|
289
|
+
/**
|
|
290
|
+
* End the server's `gh` that still waits for a code, when one does, and forget it: every script
|
|
291
|
+
* that changes the server's GitHub login starts with this, so a code from an earlier press brings
|
|
292
|
+
* nothing once the login was asked for anew, copied or taken off, and its wait changes nothing.
|
|
293
|
+
*/
|
|
294
|
+
const GH_STOP_ASKING = `${GH_IS_ASKING}
|
|
295
|
+
waiting=$(cat ${GH_ASKING}.pid 2>/dev/null || true)
|
|
296
|
+
case "$waiting" in
|
|
297
|
+
'' | *[!0-9]*) ;;
|
|
298
|
+
*) if asking "$waiting"; then kill "$waiting" 2>/dev/null || true; fi ;;
|
|
299
|
+
esac
|
|
300
|
+
rm -f ${GH_ASKING}.pid`;
|
|
301
|
+
/**
|
|
302
|
+
* Have the server ask GitHub for a login of its own: its `gh` is started and left waiting, and
|
|
303
|
+
* GitHub answers with a short code that a person types at github.com/login/device. The script
|
|
304
|
+
* prints `<process> <file> <code>` and ends; {@link githubWaitScript} sees the rest. One that
|
|
305
|
+
* still waits from an earlier press is ended first. The login the server had goes, as with a
|
|
306
|
+
* copy: the server has one GitHub login, the last one asked for.
|
|
307
|
+
*/
|
|
308
|
+
export function githubCodeScript() {
|
|
309
|
+
return {
|
|
310
|
+
as: SERVER_USER,
|
|
311
|
+
script: script(SERVER_USER, {}, `
|
|
312
|
+
${GH_OWN}
|
|
313
|
+
command -v gh >/dev/null || fail "gh is not on this server yet. Press Update on its row first."
|
|
314
|
+
mkdir -p "$HOME/.cache"
|
|
315
|
+
${GH_STOP_ASKING}
|
|
316
|
+
rm -f ${GH_FILE}
|
|
317
|
+
log=$(umask 077; mktemp ${GH_ASKING}.XXXXXX)
|
|
318
|
+
nohup setsid gh auth login --hostname github.com --git-protocol https --web >"$log" 2>&1 &
|
|
319
|
+
pid=$!
|
|
320
|
+
echo "$pid" > ${GH_ASKING}.pid
|
|
321
|
+
for _ in $(seq 1 150); do
|
|
322
|
+
grep -q 'one-time code' "$log" && break
|
|
323
|
+
asking "$pid" || break
|
|
324
|
+
sleep 0.2
|
|
325
|
+
done
|
|
326
|
+
code=$(grep -oE 'one-time code: [A-Z0-9]{4}-[A-Z0-9]{4}' "$log" | head -n 1 | awk '{print $NF}' || true)
|
|
327
|
+
if [ -z "$code" ]; then
|
|
328
|
+
kill "$pid" 2>/dev/null || true
|
|
329
|
+
tail -n 5 "$log" >&2
|
|
330
|
+
rm -f "$log" ${GH_ASKING}.pid
|
|
331
|
+
fail "GitHub gave the server no code."
|
|
332
|
+
fi
|
|
333
|
+
echo "$pid $log $code"
|
|
334
|
+
`),
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Wait until the server's `gh` has its answer from GitHub, for the code {@link githubCodeScript}
|
|
339
|
+
* printed, and say whose login it is. All of it or none, as with a copy.
|
|
340
|
+
*/
|
|
341
|
+
export function githubWaitScript(pid, log) {
|
|
342
|
+
return {
|
|
343
|
+
as: SERVER_USER,
|
|
344
|
+
script: script(SERVER_USER, { PID: pid, LOG: log }, `
|
|
345
|
+
${GH_OWN}
|
|
346
|
+
${GH_IS_ASKING}
|
|
347
|
+
while asking "$PID"; do sleep 1; done
|
|
348
|
+
# Asked for anew, copied or taken off in the meantime: the server's login is that change's to say, and none of it is this wait's.
|
|
349
|
+
if [ "$(cat ${GH_ASKING}.pid 2>/dev/null || true)" != "$PID" ]; then
|
|
350
|
+
rm -f "$LOG"
|
|
351
|
+
fail "The login was asked for anew, or changed another way, before the code was typed."
|
|
352
|
+
fi
|
|
353
|
+
rm -f ${GH_ASKING}.pid
|
|
354
|
+
# The login the server had was taken off before GitHub was asked: one that is there now came from GitHub.
|
|
355
|
+
given() {
|
|
356
|
+
gh auth setup-git --hostname github.com &&
|
|
357
|
+
gh api --hostname github.com user --jq .login
|
|
358
|
+
}
|
|
359
|
+
if ! given; then
|
|
360
|
+
grep -v 'one-time code' "$LOG" | tail -n 3 >&2 || true
|
|
361
|
+
rm -f "$LOG" ${GH_FILE}
|
|
362
|
+
fail "No login came from GitHub: the code was not typed in time, or it was refused."
|
|
363
|
+
fi
|
|
364
|
+
rm -f "$LOG"
|
|
365
|
+
`),
|
|
366
|
+
};
|
|
367
|
+
}
|
|
282
368
|
/** Take the GitHub login off the server. */
|
|
283
369
|
export function githubLogoutScript() {
|
|
284
370
|
return {
|
|
285
371
|
as: SERVER_USER,
|
|
286
372
|
script: script(SERVER_USER, {}, `
|
|
287
373
|
${GH_OWN}
|
|
374
|
+
${GH_STOP_ASKING}
|
|
288
375
|
rm -f ${GH_FILE}
|
|
289
376
|
`),
|
|
290
377
|
};
|
package/dist/steps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../src/steps.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../src/steps.ts"],"names":[],"mappings":"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"}
|
package/dist/store.d.ts
CHANGED
|
@@ -39,8 +39,10 @@ export interface Login {
|
|
|
39
39
|
failed?: string;
|
|
40
40
|
/** The process that changes the login right now, and when it last said it still does. */
|
|
41
41
|
worker?: Worker;
|
|
42
|
-
/**
|
|
42
|
+
/** That process waits for the person: for a yes in this computer's browser (Claude), or for a code typed at GitHub. */
|
|
43
43
|
asking?: boolean;
|
|
44
|
+
/** GitHub: the code the person types at github.com/login/device while the server waits for it. It is no login: it says which waiting server a person's yes is for. */
|
|
45
|
+
code?: string;
|
|
44
46
|
}
|
|
45
47
|
export interface Server {
|
|
46
48
|
/** The server's number or name: what a person typed, and what its certificate is for. */
|
|
@@ -76,9 +78,19 @@ export declare function addressOf(said: string): string | undefined;
|
|
|
76
78
|
export declare const isUser: (said: unknown) => said is string;
|
|
77
79
|
/** Whether `said` is a version npm keeps a package under. */
|
|
78
80
|
export declare const isVersion: (said: unknown) => said is string;
|
|
81
|
+
/** Whether `said` reads as the code GitHub gives a device to show: two groups of four. */
|
|
82
|
+
export declare const isGithubCode: (said: unknown) => said is string;
|
|
79
83
|
/** How often the install's process says it still works, and after how long of silence it is taken for gone. */
|
|
80
84
|
export declare const BEAT_MS = 10000;
|
|
81
85
|
export declare const SILENT_MS = 45000;
|
|
86
|
+
/**
|
|
87
|
+
* Say again and again that a work is alive: `beat` every `everyMs`, one at a time, a failed one
|
|
88
|
+
* left at that. `stop` ends it and waits for the one on its way: a beat changes the file, and
|
|
89
|
+
* one that landed after the work's own last word would write when the work has ended.
|
|
90
|
+
*/
|
|
91
|
+
export declare function heartbeat(beat: () => Promise<unknown>, everyMs: number): {
|
|
92
|
+
stop(): Promise<void>;
|
|
93
|
+
};
|
|
82
94
|
/**
|
|
83
95
|
* Whether the server's install runs right now: its process is there, and said so a moment ago.
|
|
84
96
|
* The process's number alone is no proof: one that died without a word (a laptop that was
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,YAAY,CAAA;AAElD;;;;;;;;GAQG;AAEH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEjE,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,SAAS,CAAA;IAChB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,iCAAiC;AACjC,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAA;CACb;AAED,0CAA0C;AAC1C,eAAO,MAAM,WAAW,YAAI,QAAQ,EAAE,QAAQ,CAAU,CAAA;AACxD,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAEpD;;;GAGG;AACH,MAAM,WAAW,KAAK;IACpB,4GAA4G;IAC5G,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/store.js
CHANGED
|
@@ -36,9 +36,31 @@ export function addressOf(said) {
|
|
|
36
36
|
export const isUser = (said) => typeof said === 'string' && /^[a-z_][a-z0-9_-]{0,31}$/.test(said);
|
|
37
37
|
/** Whether `said` is a version npm keeps a package under. */
|
|
38
38
|
export const isVersion = (said) => typeof said === 'string' && said.length <= 64 && /^\d+\.\d+\.\d+(-[0-9A-Za-z.-]+)?$/.test(said);
|
|
39
|
+
/** Whether `said` reads as the code GitHub gives a device to show: two groups of four. */
|
|
40
|
+
export const isGithubCode = (said) => typeof said === 'string' && /^[A-Z0-9]{4}-[A-Z0-9]{4}$/.test(said);
|
|
39
41
|
/** How often the install's process says it still works, and after how long of silence it is taken for gone. */
|
|
40
42
|
export const BEAT_MS = 10_000;
|
|
41
43
|
export const SILENT_MS = 45_000;
|
|
44
|
+
/**
|
|
45
|
+
* Say again and again that a work is alive: `beat` every `everyMs`, one at a time, a failed one
|
|
46
|
+
* left at that. `stop` ends it and waits for the one on its way: a beat changes the file, and
|
|
47
|
+
* one that landed after the work's own last word would write when the work has ended.
|
|
48
|
+
*/
|
|
49
|
+
export function heartbeat(beat, everyMs) {
|
|
50
|
+
let onItsWay;
|
|
51
|
+
const timer = setInterval(() => {
|
|
52
|
+
onItsWay ??= Promise.resolve()
|
|
53
|
+
.then(beat)
|
|
54
|
+
.catch(() => { })
|
|
55
|
+
.then(() => void (onItsWay = undefined));
|
|
56
|
+
}, everyMs);
|
|
57
|
+
return {
|
|
58
|
+
stop: async () => {
|
|
59
|
+
clearInterval(timer);
|
|
60
|
+
await onItsWay;
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
42
64
|
/**
|
|
43
65
|
* Whether the server's install runs right now: its process is there, and said so a moment ago.
|
|
44
66
|
* The process's number alone is no proof: one that died without a word (a laptop that was
|
|
@@ -69,7 +91,7 @@ function readWorker(value) {
|
|
|
69
91
|
function readLogin(value) {
|
|
70
92
|
if (!value || typeof value !== 'object')
|
|
71
93
|
return undefined;
|
|
72
|
-
const { since, account, wanted, failed, worker, asking } = value;
|
|
94
|
+
const { since, account, wanted, failed, worker, asking, code } = value;
|
|
73
95
|
const login = {
|
|
74
96
|
...(typeof since === 'string' && !Number.isNaN(Date.parse(since)) ? { since } : {}),
|
|
75
97
|
...(isAccount(account) ? { account } : {}),
|
|
@@ -77,6 +99,7 @@ function readLogin(value) {
|
|
|
77
99
|
...(typeof failed === 'string' && failed ? { failed: failed.slice(-MAX_SAID) } : {}),
|
|
78
100
|
...(readWorker(worker) ?? {}),
|
|
79
101
|
...(asking === true ? { asking } : {}),
|
|
102
|
+
...(isGithubCode(code) ? { code } : {}),
|
|
80
103
|
};
|
|
81
104
|
return Object.keys(login).length ? login : undefined;
|
|
82
105
|
}
|