@openagt/servers 0.0.2 → 0.0.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/dist/cli.d.ts +3 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +9 -8
- package/dist/cli.js.map +1 -1
- package/dist/dashboard/dashboard.css +1 -1
- package/dist/dashboard/dashboard.js +90 -75
- package/dist/install.d.ts +9 -0
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +18 -2
- package/dist/install.js.map +1 -1
- package/dist/steps.d.ts +11 -2
- package/dist/steps.d.ts.map +1 -1
- package/dist/steps.js +28 -1
- package/dist/steps.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { type LoginKind, type StepState } from './store.js';
|
|
|
6
6
|
* it went: 0 for a result, 1 for a refusal or a failure, 2 for a command that could not be read.
|
|
7
7
|
* The same contract as the other packages' commands, so a person and a dashboard read it the same way.
|
|
8
8
|
*/
|
|
9
|
-
export declare const USAGE = "usage: servers <command>\n\n status the servers this computer installed OpenAgent on, how far each install is, and\n which logins each was given\n connect <address> <user> <version> [github]\n install OpenAgent at this version on the server at this number or name, logging in\n over SSH as this user (root, or one that becomes root without a password) with this\n computer's own SSH keys; run again, it goes on where it failed, and brings a server\n that fell behind to this version; with \"github\", this computer's GitHub login is\n copied to the server once it is installed\n link <address> a link the server's door gives for a new machine, once, for five minutes\n added <address> the server is among OpenAgent's machines: nothing is left to add\n github the GitHub account gh is logged in to on this computer: whose login a copy would be,\n or why there is none to copy\n login <address> github copy this computer's GitHub login to the server, over SSH\n login <address> github own have the server get a GitHub login of its own: GitHub gives a code, status tells\n it, and you type it at github.com/login/device; run again while it waits, it\n asks anew\n login <address> claude make a Claude login for the server: this computer's browser asks you once, the\n login lasts a year and goes to the server over SSH; this computer's own Claude\n login is never read; run again while the browser waits, it asks anew\n logout <address> github|claude delete that login on the server; the login itself is not ended by this\n forget <address> take the server off this list; nothing is changed on the server\n work <address> <version> the install's own process, started by connect\n login-work <address> github|claude [own]\n the process that gives the server a login, started by login\n logout-work <address> github|claude the process that takes a login off the server, started by logout";
|
|
9
|
+
export declare const USAGE = "usage: servers <command>\n\n status the servers this computer installed OpenAgent on, how far each install is, and\n which logins each was given; and whether this computer is itself such a server\n connect <address> <user> <version> [github]\n install OpenAgent at this version on the server at this number or name, logging in\n over SSH as this user (root, or one that becomes root without a password) with this\n computer's own SSH keys; run again, it goes on where it failed, and brings a server\n that fell behind to this version; with \"github\", this computer's GitHub login is\n copied to the server once it is installed\n link <address> a link the server's door gives for a new machine, once, for five minutes\n added <address> the server is among OpenAgent's machines: nothing is left to add\n github the GitHub account gh is logged in to on this computer: whose login a copy would be,\n or why there is none to copy\n login <address> github copy this computer's GitHub login to the server, over SSH\n login <address> github own have the server get a GitHub login of its own: GitHub gives a code, status tells\n it, and you type it at github.com/login/device; run again while it waits, it\n asks anew\n login <address> claude make a Claude login for the server: this computer's browser asks you once, the\n login lasts a year and goes to the server over SSH; this computer's own Claude\n login is never read; run again while the browser waits, it asks anew\n logout <address> github|claude delete that login on the server; the login itself is not ended by this\n forget <address> take the server off this list; nothing is changed on the server\n work <address> <version> the install's own process, started by connect\n login-work <address> github|claude [own]\n the process that gives the server a login, started by login\n logout-work <address> github|claude the process that takes a login off the server, started by logout";
|
|
10
10
|
export interface CliIO {
|
|
11
11
|
env: NodeJS.ProcessEnv;
|
|
12
12
|
stdout: (line: string) => void;
|
|
@@ -63,6 +63,8 @@ export interface ServerStatus {
|
|
|
63
63
|
}
|
|
64
64
|
export interface Status {
|
|
65
65
|
servers: ServerStatus[];
|
|
66
|
+
/** This computer is itself a server OpenAgent was installed on. */
|
|
67
|
+
server?: true;
|
|
66
68
|
}
|
|
67
69
|
export declare function runCli(args: string[], io: CliIO): Promise<number>;
|
|
68
70
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgD,KAAK,IAAI,EAAE,MAAM,aAAa,CAAA;AACrF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAEpC,OAAO,EAA8H,KAAK,SAAS,EAAe,KAAK,SAAS,EAAc,MAAM,YAAY,CAAA;AAEhN;;;;GAIG;AAEH,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgD,KAAK,IAAI,EAAE,MAAM,aAAa,CAAA;AACrF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAEpC,OAAO,EAA8H,KAAK,SAAS,EAAe,KAAK,SAAS,EAAc,MAAM,YAAY,CAAA;AAEhN;;;;GAIG;AAEH,eAAO,MAAM,KAAK,2hFA0BsF,CAAA;AAExG,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;IACtB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,wFAAwF;IACxF,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,+EAA+E;IAC/E,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,0IAA0I;IAC1I,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,MAAM,CAAA;IACvC,oEAAoE;IACpE,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAID,mHAAmH;AACnH,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,KAAK,EAAE,OAAO,CAAA;IACd,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAA;IAChB,qHAAqH;IACrH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,8FAA8F;IAC9F,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACvE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,mEAAmE;IACnE,MAAM,CAAC,EAAE,IAAI,CAAA;CACd;AAkKD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAsFvE"}
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
2
|
import { AlreadyWorking, askLink, install } from './install.js';
|
|
3
3
|
import { AlreadyAtWork, changeLogin, ownGithubAccount } from './logins.js';
|
|
4
|
-
import { STEPS } from './steps.js';
|
|
4
|
+
import { SERVER_MARK, STEPS } from './steps.js';
|
|
5
5
|
import { LOGIN_KINDS, Unreadable, addressOf, atWork, doorUrl, freshSteps, isUser, isVersion, readStore, update, working } from './store.js';
|
|
6
6
|
/**
|
|
7
7
|
* The command line: JSON on stdout, one line for a person on stderr, and the exit code says how
|
|
@@ -11,7 +11,7 @@ import { LOGIN_KINDS, Unreadable, addressOf, atWork, doorUrl, freshSteps, isUser
|
|
|
11
11
|
export const USAGE = `usage: servers <command>
|
|
12
12
|
|
|
13
13
|
status the servers this computer installed OpenAgent on, how far each install is, and
|
|
14
|
-
which logins each was given
|
|
14
|
+
which logins each was given; and whether this computer is itself such a server
|
|
15
15
|
connect <address> <user> <version> [github]
|
|
16
16
|
install OpenAgent at this version on the server at this number or name, logging in
|
|
17
17
|
over SSH as this user (root, or one that becomes root without a password) with this
|
|
@@ -52,8 +52,9 @@ function loginOf(kind, login, installing) {
|
|
|
52
52
|
...(login?.failed ? { said: login.failed } : {}),
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
|
-
function statusOf(store) {
|
|
55
|
+
function statusOf(store, env) {
|
|
56
56
|
return {
|
|
57
|
+
...(env[SERVER_MARK] === '1' ? { server: true } : {}),
|
|
57
58
|
servers: store.servers.map(server => {
|
|
58
59
|
const busy = working(server);
|
|
59
60
|
return {
|
|
@@ -130,7 +131,7 @@ async function connect(io, said) {
|
|
|
130
131
|
delete server.worker;
|
|
131
132
|
});
|
|
132
133
|
}
|
|
133
|
-
return statusOf(await readStore(io.env));
|
|
134
|
+
return statusOf(await readStore(io.env), io.env);
|
|
134
135
|
}
|
|
135
136
|
/** The saved server at what a person typed, or a refusal. */
|
|
136
137
|
async function saved(io, said) {
|
|
@@ -189,7 +190,7 @@ async function changeLoginOf(io, said, kind, remove, own = false) {
|
|
|
189
190
|
delete login.worker;
|
|
190
191
|
});
|
|
191
192
|
}
|
|
192
|
-
return statusOf(await readStore(io.env));
|
|
193
|
+
return statusOf(await readStore(io.env), io.env);
|
|
193
194
|
}
|
|
194
195
|
/** Run `work` until it ends, or until this process is told to stop. */
|
|
195
196
|
async function untilStopped(io, work) {
|
|
@@ -223,7 +224,7 @@ export async function runCli(args, io) {
|
|
|
223
224
|
case 'status':
|
|
224
225
|
if (rest.length)
|
|
225
226
|
break;
|
|
226
|
-
return print(statusOf(await readStore(io.env)));
|
|
227
|
+
return print(statusOf(await readStore(io.env), io.env));
|
|
227
228
|
case 'connect': {
|
|
228
229
|
const [address, user, version, github] = rest;
|
|
229
230
|
if (rest.length < 3 || rest.length > 4 || !address || !user || !version || (rest.length === 4 && github !== 'github'))
|
|
@@ -249,7 +250,7 @@ export async function runCli(args, io) {
|
|
|
249
250
|
if (server)
|
|
250
251
|
server.adding = false;
|
|
251
252
|
});
|
|
252
|
-
return print(statusOf(await readStore(io.env)));
|
|
253
|
+
return print(statusOf(await readStore(io.env), io.env));
|
|
253
254
|
}
|
|
254
255
|
case 'github': {
|
|
255
256
|
if (rest.length)
|
|
@@ -280,7 +281,7 @@ export async function runCli(args, io) {
|
|
|
280
281
|
throw new Refused(`A login of ${at} is being changed right now: wait until it ends`);
|
|
281
282
|
store.servers = store.servers.filter(candidate => candidate.address !== at);
|
|
282
283
|
});
|
|
283
|
-
return print(statusOf(await readStore(io.env)));
|
|
284
|
+
return print(statusOf(await readStore(io.env), io.env));
|
|
284
285
|
}
|
|
285
286
|
case 'work': {
|
|
286
287
|
const [address, version] = rest;
|
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":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAa,MAAM,aAAa,CAAA;AAErF,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAuE,MAAM,YAAY,CAAA;AAEhN;;;;GAIG;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;wGA0BmF,CAAA;AAgBxG,MAAM,OAAQ,SAAQ,KAAK;CAAG;AA8C9B,gEAAgE;AAChE,MAAM,eAAe,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAA;AAE9C,SAAS,OAAO,CAAC,IAAe,EAAE,KAAwB,EAAE,UAAmB;IAC7E,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,KAAK,SAAS,CAAA;IACxC,OAAO;QACL,KAAK;QACL,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,UAAU,CAAC;QACxE,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/G,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAM,CAAC,KAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,KAAK,IAAI,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAM,CAAC,KAAM,CAAC,GAAG,eAAe,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpH,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjD,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAY,EAAE,GAAsB;IACpD,OAAO;QACL,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAClC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;YAC5B,OAAO;gBACL,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC5B,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;oBACjC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAE,CAAA;oBACjE,wFAAwF;oBACxF,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI;wBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAiB,EAAE,IAAI,EAAE,6CAA6C,EAAE,CAAA;oBAC1I,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;gBACpF,CAAC,CAAC;gBACF,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;aAC3G,CAAA;QACH,CAAC,CAAC;KACH,CAAA;AACH,CAAC;AAED,qHAAqH;AACrH,SAAS,SAAS,CAAC,KAAe,EAAE,GAAsB;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7G,wFAAwF;IACxF,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC7B,KAAK,CAAC,KAAK,EAAE,CAAA;IACb,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,OAAO,CAAC,+BAA+B,CAAC,CAAA;IAC/E,OAAO,KAAK,CAAC,GAAG,CAAA;AAClB,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,EAAS,EAAE,IAAyE;IACzG,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvC,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,mCAAmC,CAAC,CAAA;IAChG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,qBAAqB,CAAC,CAAA;IAC5E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,gCAAgC,CAAC,CAAA;IAChG,6FAA6F;IAC7F,iFAAiF;IACjF,MAAM,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,CAAA;QACtE,IAAI,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,OAAO,CAAC,mCAAmC,OAAO,YAAY,CAAC,CAAA;QACtG,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,OAAO,CAAC,cAAc,OAAO,iDAAiD,CAAC,CAAA;QACvH,MAAM,KAAK,GAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;QACtN,IAAI,KAAK;YAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;;YACjC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,mGAAmG;QACnG,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,OAAO,CAAE,CAAA;QAC9E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAA;QAC9C,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;;YAC/I,OAAO,MAAM,CAAC,MAAM,CAAA;IAC3B,CAAC,CAAC,CAAA;IACF,IAAI,MAA0B,CAAA;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;IACjG,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE;YAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,OAAO,CAAC,CAAA;YAC7E,uGAAuG;YACvG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG;gBAAE,OAAM;YACzD,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAA;;gBACpF,OAAO,MAAM,CAAC,MAAM,CAAA;QAC3B,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;AAClD,CAAC;AAED,6DAA6D;AAC7D,KAAK,UAAU,KAAK,CAAC,EAAS,EAAE,IAAY;IAC1C,MAAM,MAAM,GAAG,CAAC,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IACzG,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAA;IACtD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,+FAA+F;AAC/F,KAAK,UAAU,KAAK,CAAC,EAAS,EAAE,IAAY;IAC1C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IACpC,IAAI,OAAO,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,OAAO,CAAC,mCAAmC,MAAM,CAAC,OAAO,YAAY,CAAC,CAAA;IACrG,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,IAAwB,EAAqB,EAAE,CAAE,WAAiC,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;AAEvH,qEAAqE;AACrE,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;AAEpG;;;;;GAKG;AACH,KAAK,UAAU,aAAa,CAAC,EAAS,EAAE,IAAY,EAAE,IAAe,EAAE,MAAe,EAAE,GAAG,GAAG,KAAK;IACjG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE;QAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,OAAO,CAAE,CAAA;QAC9E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAClC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,KAAM,CAAC,MAAM,KAAK,IAAI,CAAC;YAAE,MAAM,IAAI,OAAO,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAA;QAC3G,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAA;QACvL,OAAO,IAAI,CAAC,CAAC,CAAC,KAAM,CAAC,MAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;IAC9C,CAAC,CAAC,CAAA;IACF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;IACH,CAAC;IACD,IAAI,MAA0B,CAAA;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACjJ,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE;YAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YACpF,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG;gBAAE,OAAM;YACvD,IAAI,MAAM,KAAK,SAAS;gBAAE,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAA;;gBACnF,OAAO,KAAK,CAAC,MAAM,CAAA;QAC1B,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;AAClD,CAAC;AAED,uEAAuE;AACvE,KAAK,UAAU,YAAY,CAAC,EAAS,EAAE,IAA4C;IACjF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,IAAI,GAAG,GAAS,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;IAC3C,IAAI,EAAE,CAAC,MAAM;QAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;SACnE,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAC/B,CAAC;IACD,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO;YAAE,IAAI,EAAE,CAAA;QAC9B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAC/B,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC3B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAc,EAAE,EAAS;IACpD,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;IAC/B,MAAM,KAAK,GAAG,CAAC,KAAc,EAAU,EAAE;QACvC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAChC,OAAO,CAAC,CAAA;IACV,CAAC,CAAA;IACD,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;IACnE,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,QAAQ;gBACX,IAAI,IAAI,CAAC,MAAM;oBAAE,MAAK;gBACtB,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;YACzD,KAAK,SAAS,EAAE,CAAC;gBACf,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;gBAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,QAAQ,CAAC;oBAAE,MAAK;gBAC5H,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAA;YAC1F,CAAC;YACD,KAAK,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;gBACtB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO;oBAAE,MAAK;gBACxC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;gBACtF,IAAI,CAAC,IAAI,CAAC,EAAE;oBAAE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC3C,OAAO,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;YACxD,CAAC;YACD,KAAK,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;gBACtB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO;oBAAE,MAAK;gBACxC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;gBAChD,MAAM,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE;oBAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,EAAE,CAAC,CAAA;oBACxE,IAAI,MAAM;wBAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAA;gBACnC,CAAC,CAAC,CAAA;gBACF,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;YACzD,CAAC;YACD,KAAK,QAAQ,EAAE,CAAC;gBACd,IAAI,IAAI,CAAC,MAAM;oBAAE,MAAK;gBACtB,mFAAmF;gBACnF,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;gBAC3C,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;YAC1E,CAAC;YACD,KAAK,OAAO,CAAC;YACb,KAAK,QAAQ,EAAE,CAAC;gBACd,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;gBACjC,iEAAiE;gBACjE,MAAM,QAAQ,GAAG,OAAO,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ,IAAI,GAAG,KAAK,KAAK,CAAA;gBAC1E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBAAE,MAAK;gBAC1E,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;YACtF,CAAC;YACD,KAAK,QAAQ,EAAE,CAAC;gBACd,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;gBACtB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO;oBAAE,MAAK;gBACxC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;gBAChD,MAAM,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE;oBAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,EAAE,CAAC,CAAA;oBACxE,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;wBAAE,MAAM,IAAI,OAAO,CAAC,mCAAmC,EAAE,gCAAgC,CAAC,CAAA;oBACvH,IAAI,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;wBAAE,MAAM,IAAI,OAAO,CAAC,cAAc,EAAE,iDAAiD,CAAC,CAAA;oBACpH,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,EAAE,CAAC,CAAA;gBAC7E,CAAC,CAAC,CAAA;gBACF,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;YACzD,CAAC;YACD,KAAK,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;gBAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO;oBAAE,MAAK;gBACpD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;oBAAE,MAAM,IAAI,OAAO,CAAC,GAAG,OAAO,gCAAgC,CAAC,CAAA;gBACtF,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;gBAChD,MAAM,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;gBACpF,OAAO,CAAC,CAAA;YACV,CAAC;YACD,KAAK,YAAY,CAAC;YAClB,KAAK,aAAa,EAAE,CAAC;gBACnB,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;gBACjC,MAAM,QAAQ,GAAG,OAAO,KAAK,YAAY,IAAI,IAAI,KAAK,QAAQ,IAAI,GAAG,KAAK,KAAK,CAAA;gBAC/E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBAAE,MAAK;gBAC1E,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;gBAChD,MAAM,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,KAAK,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC9K,OAAO,CAAC,CAAA;YACV,CAAC;YACD,QAAQ;QACV,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,GAAG,YAAY,OAAO,IAAI,GAAG,YAAY,UAAU,IAAI,GAAG,YAAY,cAAc,IAAI,GAAG,YAAY,aAAa,CAAC;YAAE,MAAM,GAAG,CAAA;QACtI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACtB,OAAO,CAAC,CAAA;IACV,CAAC;IACD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAChB,OAAO,CAAC,CAAA;AACV,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--radius-md:.375rem}}@layer utilities{.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.flex{display:flex}.inline-block{display:inline-block}.w-4{width:calc(var(--spacing) * 4)}.w-32{width:calc(var(--spacing) * 32)}.min-w-0{min-width:0}.min-w-40{min-width:calc(var(--spacing) * 40)}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--border)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-border{border-color:var(--border)}.bg-background{background-color:var(--background)}.p-2{padding:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.font-mono{font-family:var(--font-mono)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.whitespace-pre-wrap{white-space:pre-wrap}.text-danger{color:var(--danger)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--radius-md:.375rem}}@layer utilities{.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.flex{display:flex}.inline-block{display:inline-block}.w-4{width:calc(var(--spacing) * 4)}.w-32{width:calc(var(--spacing) * 32)}.min-w-0{min-width:0}.min-w-40{min-width:calc(var(--spacing) * 40)}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--border)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-border{border-color:var(--border)}.bg-background{background-color:var(--background)}.p-2{padding:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.font-mono{font-family:var(--font-mono)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.whitespace-pre-wrap{white-space:pre-wrap}.text-danger{color:var(--danger)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
|
|
3
3
|
/*$vite$:1*/
|
|
@@ -98,33 +98,40 @@ async function v(e, t, n) {
|
|
|
98
98
|
value: i
|
|
99
99
|
};
|
|
100
100
|
}
|
|
101
|
-
|
|
101
|
+
function y(e) {
|
|
102
|
+
let t = g(e);
|
|
103
|
+
return t && {
|
|
104
|
+
servers: t,
|
|
105
|
+
isServer: e.server === !0
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
var b = (e) => v(e, ["status"], y), x = (e, t, n, r, i = !1) => v(e, [
|
|
102
109
|
"connect",
|
|
103
110
|
t,
|
|
104
111
|
n,
|
|
105
112
|
r,
|
|
106
113
|
...i ? ["github"] : []
|
|
107
114
|
], g);
|
|
108
|
-
function
|
|
115
|
+
function S(e) {
|
|
109
116
|
if (!e || typeof e != "object") return;
|
|
110
117
|
let { account: t, problem: n } = e, [r, i] = [p(t), p(n)];
|
|
111
118
|
return r ? { account: r } : i ? { problem: i } : void 0;
|
|
112
119
|
}
|
|
113
|
-
var
|
|
120
|
+
var ee = (e) => v(e, ["github"], S), C = (e, t, n, r = !1) => v(e, [
|
|
114
121
|
"login",
|
|
115
122
|
t,
|
|
116
123
|
n,
|
|
117
124
|
...r ? ["own"] : []
|
|
118
|
-
], g),
|
|
125
|
+
], g), w = (e, t, n) => v(e, [
|
|
119
126
|
"logout",
|
|
120
127
|
t,
|
|
121
128
|
n
|
|
122
|
-
], g),
|
|
129
|
+
], g), T = (e, t) => v(e, ["link", t], _), te = (e, t) => v(e, ["added", t], g), ne = (e, t) => v(e, ["forget", t], g), E = void 0, D = 5 * 6e4, O = void 0, k = void 0, A = (e) => e === void 0 ? "" : new Date(e).toLocaleDateString(void 0, {
|
|
123
130
|
day: "numeric",
|
|
124
131
|
month: "short",
|
|
125
132
|
year: "numeric"
|
|
126
133
|
});
|
|
127
|
-
function
|
|
134
|
+
function j({ label: e, words: t, said: n, children: r }) {
|
|
128
135
|
return /* @__PURE__ */ f("li", {
|
|
129
136
|
"aria-label": e,
|
|
130
137
|
className: "space-y-1",
|
|
@@ -141,18 +148,18 @@ function k({ label: e, words: t, said: n, children: r }) {
|
|
|
141
148
|
})]
|
|
142
149
|
});
|
|
143
150
|
}
|
|
144
|
-
var
|
|
151
|
+
var M = {
|
|
145
152
|
waiting: "○",
|
|
146
153
|
running: "…",
|
|
147
154
|
done: "✓",
|
|
148
155
|
failed: "✕"
|
|
149
|
-
},
|
|
156
|
+
}, N = {
|
|
150
157
|
waiting: "not started",
|
|
151
158
|
running: "running",
|
|
152
159
|
done: "done",
|
|
153
160
|
failed: "failed"
|
|
154
|
-
},
|
|
155
|
-
function
|
|
161
|
+
}, P = (e, t) => Object.fromEntries(Object.entries(e).filter(([e]) => e !== t));
|
|
162
|
+
function F(e, t) {
|
|
156
163
|
let n = (e) => {
|
|
157
164
|
let t = /^(\d+)\.(\d+)\.(\d+)/.exec(e);
|
|
158
165
|
return t ? t.slice(1).map(Number) : void 0;
|
|
@@ -161,26 +168,34 @@ function ae(e, t) {
|
|
|
161
168
|
for (let e = 0; e < 3; e++) if (r[e] !== i[e]) return r[e] < i[e];
|
|
162
169
|
return !1;
|
|
163
170
|
}
|
|
164
|
-
function
|
|
165
|
-
let
|
|
171
|
+
function I({ everyMs: e = 3e3 }) {
|
|
172
|
+
let t = o(), { value: n, reload: r } = s(() => b(t), E, e, []), i = l(void 0);
|
|
173
|
+
return n?.ok && (i.current = n.value.isServer), n === void 0 || i.current === !0 ? null : /* @__PURE__ */ d(L, {
|
|
174
|
+
read: n,
|
|
175
|
+
reload: r,
|
|
176
|
+
everyMs: e
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
function L({ read: a, reload: p, everyMs: m }) {
|
|
180
|
+
let h = o(), { value: g, reload: _ } = s(() => h.machines(), O, Math.max(m, 1e4), []), { value: v } = s(() => ee(h), k, Math.max(m, 5 * 6e4), []), y = v?.ok && "account" in v.value ? v.value.account : void 0, b = v === void 0 || y !== void 0 ? void 0 : v.ok ? "problem" in v.value ? v.value.problem : void 0 : v.error, [S, E] = u(""), [I, L] = u("root"), [R, re] = u(!1), [z, B] = u(!1), [V, H] = u(), [U, W] = u({}), G = l(/* @__PURE__ */ new Set()), [K, q] = u(), J = a.ok ? a.value.servers : [], Y = (e, t = g) => t?.machines.find((t) => t.url === e.url), X = (e) => !e.working && e.steps.every((e) => e.state === "done"), Z = async (e) => {
|
|
166
181
|
B(!0), H(void 0);
|
|
167
182
|
let t = await e();
|
|
168
|
-
return t.ok || H(t.error), await
|
|
169
|
-
}, Q = async (e, t, n = !1) => !g || g.version === "unknown" ? (H("This computer could not say which OpenAgent it runs."), !1) : (W((t) =>
|
|
183
|
+
return t.ok || H(t.error), await p().catch(() => {}), B(!1), t.ok;
|
|
184
|
+
}, Q = async (e, t, n = !1) => !g || g.version === "unknown" ? (H("This computer could not say which OpenAgent it runs."), !1) : (W((t) => P(t, e)), Z(() => x(h, e, t, g.version, n))), $ = async (e) => {
|
|
170
185
|
if (G.current.has(e.address)) return;
|
|
171
|
-
G.current.add(e.address), W((t) =>
|
|
186
|
+
G.current.add(e.address), W((t) => P(t, e.address));
|
|
172
187
|
let t = (t) => W((n) => ({
|
|
173
188
|
...n,
|
|
174
189
|
[e.address]: t
|
|
175
190
|
}));
|
|
176
191
|
try {
|
|
177
|
-
if (Y(e, await
|
|
178
|
-
let n = await
|
|
192
|
+
if (Y(e, await h.machines())?.version === void 0) {
|
|
193
|
+
let n = await T(h, e.address), r = n.ok ? await h.addMachine(n.value.url, e.address) : n;
|
|
179
194
|
if (!r.ok) return t(r.error);
|
|
180
195
|
}
|
|
181
|
-
let n = await
|
|
196
|
+
let n = await te(h, e.address);
|
|
182
197
|
if (!n.ok) return t(n.error);
|
|
183
|
-
await Promise.all([
|
|
198
|
+
await Promise.all([p(), _()]).catch(() => {});
|
|
184
199
|
} catch (e) {
|
|
185
200
|
t(e instanceof Error ? e.message : String(e));
|
|
186
201
|
} finally {
|
|
@@ -194,9 +209,9 @@ function M({ everyMs: a = 3e3 }) {
|
|
|
194
209
|
let e = setTimeout(() => q(void 0), Math.min(D, Math.max(0, Date.parse(K.expires) - Date.now())));
|
|
195
210
|
return () => clearTimeout(e);
|
|
196
211
|
}, [K]);
|
|
197
|
-
let
|
|
212
|
+
let ie = async (e) => {
|
|
198
213
|
B(!0), H(void 0), q(void 0);
|
|
199
|
-
let t = await
|
|
214
|
+
let t = await T(h, e.address);
|
|
200
215
|
t.ok ? q({
|
|
201
216
|
...t.value,
|
|
202
217
|
address: e.address
|
|
@@ -208,7 +223,7 @@ function M({ everyMs: a = 3e3 }) {
|
|
|
208
223
|
children: [
|
|
209
224
|
/* @__PURE__ */ f("form", {
|
|
210
225
|
onSubmit: (e) => {
|
|
211
|
-
e.preventDefault(), !(!
|
|
226
|
+
e.preventDefault(), !(!S.trim() || !I.trim()) && Q(S.trim(), I.trim(), R && y !== void 0).then((e) => e && E(""));
|
|
212
227
|
},
|
|
213
228
|
className: "flex flex-wrap items-end gap-2 py-3",
|
|
214
229
|
children: [
|
|
@@ -217,22 +232,22 @@ function M({ everyMs: a = 3e3 }) {
|
|
|
217
232
|
children: [/* @__PURE__ */ d("span", { children: "The server's address" }), /* @__PURE__ */ d(n, {
|
|
218
233
|
"aria-label": "The server's address",
|
|
219
234
|
placeholder: "203.0.113.5",
|
|
220
|
-
value:
|
|
221
|
-
onChange: (e) =>
|
|
235
|
+
value: S,
|
|
236
|
+
onChange: (e) => E(e.target.value)
|
|
222
237
|
})]
|
|
223
238
|
}),
|
|
224
239
|
/* @__PURE__ */ f("label", {
|
|
225
240
|
className: "w-32 space-y-1 text-xs text-muted-foreground",
|
|
226
241
|
children: [/* @__PURE__ */ d("span", { children: "User name" }), /* @__PURE__ */ d(n, {
|
|
227
242
|
"aria-label": "User name",
|
|
228
|
-
value:
|
|
229
|
-
onChange: (e) =>
|
|
243
|
+
value: I,
|
|
244
|
+
onChange: (e) => L(e.target.value)
|
|
230
245
|
})]
|
|
231
246
|
}),
|
|
232
247
|
/* @__PURE__ */ d(e, {
|
|
233
248
|
size: "sm",
|
|
234
249
|
type: "submit",
|
|
235
|
-
disabled: z || !g || !
|
|
250
|
+
disabled: z || !g || !S.trim() || !I.trim(),
|
|
236
251
|
children: "Connect"
|
|
237
252
|
})
|
|
238
253
|
]
|
|
@@ -242,17 +257,17 @@ function M({ everyMs: a = 3e3 }) {
|
|
|
242
257
|
children: [/* @__PURE__ */ f("label", {
|
|
243
258
|
className: "flex items-start gap-2 text-xs",
|
|
244
259
|
children: [/* @__PURE__ */ d(t, {
|
|
245
|
-
checked:
|
|
246
|
-
onCheckedChange: (e) =>
|
|
247
|
-
disabled: z ||
|
|
260
|
+
checked: R && y !== void 0,
|
|
261
|
+
onCheckedChange: (e) => re(e === !0),
|
|
262
|
+
disabled: z || y === void 0,
|
|
248
263
|
className: "mt-0.5",
|
|
249
264
|
"aria-label": "Copy my GitHub login to the server"
|
|
250
265
|
}), /* @__PURE__ */ f("span", { children: [
|
|
251
|
-
|
|
266
|
+
y === void 0 ? "Copy my GitHub login to the server." : `Copy my GitHub login (${y}) to the server.`,
|
|
252
267
|
" ",
|
|
253
268
|
/* @__PURE__ */ d("span", {
|
|
254
269
|
className: "text-muted-foreground",
|
|
255
|
-
children:
|
|
270
|
+
children: b ?? "It can do there all it can do here, and every agent that runs on the server works with it. It goes there at the install's end, to a server met for the first time too, whose key is taken as it is."
|
|
256
271
|
})
|
|
257
272
|
] })]
|
|
258
273
|
}), /* @__PURE__ */ d("p", {
|
|
@@ -264,7 +279,7 @@ function M({ everyMs: a = 3e3 }) {
|
|
|
264
279
|
"aria-label": "Servers",
|
|
265
280
|
className: "divide-y divide-border",
|
|
266
281
|
children: J.map((t) => {
|
|
267
|
-
let n = Y(t), i = !t.working && t.steps.some((e) => e.state === "failed"), a = n?.version !== void 0 && g !== void 0 &&
|
|
282
|
+
let n = Y(t), i = !t.working && t.steps.some((e) => e.state === "failed"), a = n?.version !== void 0 && g !== void 0 && F(n.version, g.version), o = !t.working && !i && t.steps.some((e) => e.state === "waiting"), s = U[t.address], { github: c, claude: l } = t.logins;
|
|
268
283
|
return /* @__PURE__ */ f("li", {
|
|
269
284
|
"aria-label": t.address,
|
|
270
285
|
className: "space-y-2 py-3",
|
|
@@ -283,21 +298,21 @@ function M({ everyMs: a = 3e3 }) {
|
|
|
283
298
|
}), /* @__PURE__ */ f("div", {
|
|
284
299
|
className: "flex gap-2",
|
|
285
300
|
children: [
|
|
286
|
-
a && !t.working && !i && /* @__PURE__ */ d(e, {
|
|
301
|
+
(a || o) && !t.working && !i && /* @__PURE__ */ d(e, {
|
|
287
302
|
size: "sm",
|
|
288
|
-
disabled: z,
|
|
303
|
+
disabled: z || !g,
|
|
289
304
|
"aria-label": `Update ${t.address}`,
|
|
290
305
|
onClick: () => void Q(t.address, t.user),
|
|
291
306
|
children: "Update"
|
|
292
307
|
}),
|
|
293
308
|
i && /* @__PURE__ */ d(e, {
|
|
294
309
|
size: "sm",
|
|
295
|
-
disabled: z,
|
|
310
|
+
disabled: z || !g,
|
|
296
311
|
"aria-label": `Try ${t.address} again`,
|
|
297
|
-
onClick: () => void Q(t.address, t.user,
|
|
312
|
+
onClick: () => void Q(t.address, t.user, c.wanted === !0),
|
|
298
313
|
children: "Try again"
|
|
299
314
|
}),
|
|
300
|
-
X(t) && n?.version === void 0 && (
|
|
315
|
+
X(t) && n?.version === void 0 && (s !== void 0 || !t.adding) && /* @__PURE__ */ d(e, {
|
|
301
316
|
size: "sm",
|
|
302
317
|
variant: "outline",
|
|
303
318
|
disabled: z,
|
|
@@ -310,7 +325,7 @@ function M({ everyMs: a = 3e3 }) {
|
|
|
310
325
|
variant: "outline",
|
|
311
326
|
disabled: z,
|
|
312
327
|
"aria-label": `Add a device to ${t.address}`,
|
|
313
|
-
onClick: () => void
|
|
328
|
+
onClick: () => void ie(t),
|
|
314
329
|
children: "Add device"
|
|
315
330
|
}),
|
|
316
331
|
!t.working && /* @__PURE__ */ d(e, {
|
|
@@ -319,7 +334,7 @@ function M({ everyMs: a = 3e3 }) {
|
|
|
319
334
|
disabled: z,
|
|
320
335
|
"aria-label": `Remove ${t.address}`,
|
|
321
336
|
title: "Takes the server off this list. Nothing is changed on the server: its logins stay there until you remove them.",
|
|
322
|
-
onClick: () => void Z(() =>
|
|
337
|
+
onClick: () => void Z(() => ne(h, t.address)),
|
|
323
338
|
children: "Remove"
|
|
324
339
|
})
|
|
325
340
|
]
|
|
@@ -359,14 +374,14 @@ function M({ everyMs: a = 3e3 }) {
|
|
|
359
374
|
className: "space-y-1 text-xs",
|
|
360
375
|
children: [
|
|
361
376
|
t.steps.map((e) => /* @__PURE__ */ f("li", {
|
|
362
|
-
"aria-label": `${e.label}: ${
|
|
377
|
+
"aria-label": `${e.label}: ${N[e.state]}`,
|
|
363
378
|
children: [
|
|
364
379
|
/* @__PURE__ */ f("span", {
|
|
365
380
|
className: e.state === "failed" ? "text-danger" : e.state === "waiting" ? "text-muted-foreground" : void 0,
|
|
366
381
|
children: [/* @__PURE__ */ d("span", {
|
|
367
382
|
"aria-hidden": !0,
|
|
368
383
|
className: "inline-block w-4",
|
|
369
|
-
children:
|
|
384
|
+
children: M[e.state]
|
|
370
385
|
}), e.label]
|
|
371
386
|
}),
|
|
372
387
|
e.id === "login" && e.state === "done" && t.fingerprint !== void 0 && /* @__PURE__ */ d("span", {
|
|
@@ -386,22 +401,22 @@ function M({ everyMs: a = 3e3 }) {
|
|
|
386
401
|
children: [/* @__PURE__ */ d("span", {
|
|
387
402
|
"aria-hidden": !0,
|
|
388
403
|
className: "inline-block w-4",
|
|
389
|
-
children:
|
|
404
|
+
children: M[t.steps.every((e) => e.state === "done") ? "running" : "waiting"]
|
|
390
405
|
}), "Your GitHub login"]
|
|
391
406
|
}),
|
|
392
407
|
X(t) && /* @__PURE__ */ f("li", {
|
|
393
|
-
"aria-label": `Among your machines: ${n ? "done" :
|
|
408
|
+
"aria-label": `Among your machines: ${n ? "done" : s === void 0 ? t.adding ? "running" : "not started" : "failed"}`,
|
|
394
409
|
children: [/* @__PURE__ */ f("span", {
|
|
395
|
-
className: n ? void 0 :
|
|
410
|
+
className: n ? void 0 : s === void 0 ? "text-muted-foreground" : "text-danger",
|
|
396
411
|
children: [/* @__PURE__ */ d("span", {
|
|
397
412
|
"aria-hidden": !0,
|
|
398
413
|
className: "inline-block w-4",
|
|
399
|
-
children:
|
|
414
|
+
children: M[n ? "done" : s === void 0 ? t.adding ? "running" : "waiting" : "failed"]
|
|
400
415
|
}), "Among your machines"]
|
|
401
|
-
}),
|
|
416
|
+
}), s !== void 0 && !n && /* @__PURE__ */ d("pre", {
|
|
402
417
|
role: "alert",
|
|
403
418
|
className: "mt-1 ml-4 overflow-x-auto whitespace-pre-wrap rounded-md border border-border bg-background p-2 font-mono text-foreground",
|
|
404
|
-
children:
|
|
419
|
+
children: s
|
|
405
420
|
})]
|
|
406
421
|
})
|
|
407
422
|
]
|
|
@@ -409,65 +424,65 @@ function M({ everyMs: a = 3e3 }) {
|
|
|
409
424
|
X(t) && /* @__PURE__ */ f("ul", {
|
|
410
425
|
"aria-label": `The logins on ${t.address}`,
|
|
411
426
|
className: "space-y-2 border-t border-border pt-2 text-xs",
|
|
412
|
-
children: [/* @__PURE__ */ f(
|
|
427
|
+
children: [/* @__PURE__ */ f(j, {
|
|
413
428
|
label: "GitHub",
|
|
414
|
-
words:
|
|
415
|
-
said:
|
|
429
|
+
words: c.asking && c.code !== void 0 ? `GitHub: type the code ${c.code} at github.com/login/device, and say yes there.` : c.working ? "GitHub: one moment, the server is being told." : c.there ? `GitHub: logged in as ${c.account ?? "you"} since ${A(c.since)}.` : c.said === void 0 ? "GitHub: no login on the server." : "GitHub: the last try did not go through.",
|
|
430
|
+
said: c.working ? void 0 : c.said,
|
|
416
431
|
children: [
|
|
417
432
|
/* @__PURE__ */ d(e, {
|
|
418
433
|
size: "sm",
|
|
419
434
|
variant: "outline",
|
|
420
|
-
disabled: z ||
|
|
435
|
+
disabled: z || c.working || y === void 0,
|
|
421
436
|
"aria-label": `Copy my GitHub login to ${t.address}`,
|
|
422
|
-
title:
|
|
423
|
-
onClick: () => void Z(() =>
|
|
424
|
-
children:
|
|
437
|
+
title: y === void 0 ? b : `Copies the login of ${y} from this computer to the server, over SSH.`,
|
|
438
|
+
onClick: () => void Z(() => C(h, t.address, "github")),
|
|
439
|
+
children: c.there ? "Copy again" : "Copy my login"
|
|
425
440
|
}),
|
|
426
441
|
/* @__PURE__ */ d(e, {
|
|
427
442
|
size: "sm",
|
|
428
443
|
variant: "outline",
|
|
429
|
-
disabled: z ||
|
|
444
|
+
disabled: z || c.working && c.asking !== !0,
|
|
430
445
|
"aria-label": `Log in to GitHub for ${t.address}`,
|
|
431
446
|
title: "The server asks GitHub for a login of its own. GitHub gives a short code: you type it at github.com/login/device and say yes there. This computer's own GitHub login is not touched, and the login the server had is replaced.",
|
|
432
|
-
onClick: () => void Z(() =>
|
|
433
|
-
children:
|
|
447
|
+
onClick: () => void Z(() => C(h, t.address, "github", !0)),
|
|
448
|
+
children: c.asking ? "Start over" : "Log in to GitHub"
|
|
434
449
|
}),
|
|
435
|
-
|
|
450
|
+
c.asking && c.code !== void 0 && /* @__PURE__ */ d("a", {
|
|
436
451
|
href: "https://github.com/login/device",
|
|
437
452
|
target: "_blank",
|
|
438
453
|
rel: "noreferrer",
|
|
439
454
|
className: "self-center underline",
|
|
440
455
|
children: "Open GitHub"
|
|
441
456
|
}),
|
|
442
|
-
(
|
|
457
|
+
(c.there || c.said !== void 0) && !c.working && /* @__PURE__ */ d(e, {
|
|
443
458
|
size: "sm",
|
|
444
459
|
variant: "outline",
|
|
445
460
|
disabled: z,
|
|
446
461
|
"aria-label": `Remove the GitHub login from ${t.address}`,
|
|
447
462
|
title: "Deletes the login on the server. The login itself is not ended by this: a copied one is this computer's own and stays good. To end one everywhere, take it back on github.com.",
|
|
448
|
-
onClick: () => void Z(() =>
|
|
463
|
+
onClick: () => void Z(() => w(h, t.address, "github")),
|
|
449
464
|
children: "Remove"
|
|
450
465
|
})
|
|
451
466
|
]
|
|
452
|
-
}), /* @__PURE__ */ f(
|
|
467
|
+
}), /* @__PURE__ */ f(j, {
|
|
453
468
|
label: "Claude",
|
|
454
|
-
words:
|
|
455
|
-
said:
|
|
469
|
+
words: l.asking ? "Claude: say yes in the page this computer's browser opened." : l.working ? "Claude: one moment, the server is being told." : l.there ? `Claude: logged in since ${A(l.since)}, good until about ${A(l.ends)}.` : l.said === void 0 ? "Claude: not logged in on the server." : "Claude: the last try did not go through.",
|
|
470
|
+
said: l.working ? void 0 : l.said,
|
|
456
471
|
children: [/* @__PURE__ */ d(e, {
|
|
457
472
|
size: "sm",
|
|
458
|
-
variant:
|
|
459
|
-
disabled: z ||
|
|
473
|
+
variant: l.there || l.working ? "outline" : "default",
|
|
474
|
+
disabled: z || l.working && l.asking !== !0,
|
|
460
475
|
"aria-label": `Log in to Claude for ${t.address}`,
|
|
461
476
|
title: "Opens this computer's browser, where you say yes once. The login is made for this server alone and lasts a year; this computer's own Claude login is not touched.",
|
|
462
|
-
onClick: () => void Z(() =>
|
|
463
|
-
children:
|
|
464
|
-
}), (
|
|
477
|
+
onClick: () => void Z(() => C(h, t.address, "claude")),
|
|
478
|
+
children: l.asking ? "Start over" : l.there ? "Log in again" : "Log in to Claude"
|
|
479
|
+
}), (l.there || l.said !== void 0) && !l.working && /* @__PURE__ */ d(e, {
|
|
465
480
|
size: "sm",
|
|
466
481
|
variant: "outline",
|
|
467
482
|
disabled: z,
|
|
468
483
|
"aria-label": `Remove the Claude login from ${t.address}`,
|
|
469
484
|
title: "Deletes the login on the server and starts OpenAgent there again without it. An agent at work there keeps it until it ends. The login itself stays good until its year is over.",
|
|
470
|
-
onClick: () => void Z(() =>
|
|
485
|
+
onClick: () => void Z(() => w(h, t.address, "claude")),
|
|
471
486
|
children: "Remove"
|
|
472
487
|
})]
|
|
473
488
|
})]
|
|
@@ -476,10 +491,10 @@ function M({ everyMs: a = 3e3 }) {
|
|
|
476
491
|
}, t.address);
|
|
477
492
|
})
|
|
478
493
|
}),
|
|
479
|
-
|
|
494
|
+
!a.ok && /* @__PURE__ */ d("p", {
|
|
480
495
|
role: "alert",
|
|
481
496
|
className: "py-3 text-xs text-danger",
|
|
482
|
-
children: `The servers could not be read: ${
|
|
497
|
+
children: `The servers could not be read: ${a.error}`
|
|
483
498
|
}),
|
|
484
499
|
V !== void 0 && /* @__PURE__ */ d("p", {
|
|
485
500
|
role: "alert",
|
|
@@ -491,13 +506,13 @@ function M({ everyMs: a = 3e3 }) {
|
|
|
491
506
|
}
|
|
492
507
|
//#endregion
|
|
493
508
|
//#region dashboard/index.tsx
|
|
494
|
-
var
|
|
509
|
+
var R = a({
|
|
495
510
|
settings: [{
|
|
496
511
|
id: "servers",
|
|
497
512
|
order: 20,
|
|
498
|
-
Section: () => /* @__PURE__ */ d(
|
|
513
|
+
Section: () => /* @__PURE__ */ d(I, {})
|
|
499
514
|
}],
|
|
500
515
|
stylesheet: "dashboard.css"
|
|
501
516
|
});
|
|
502
517
|
//#endregion
|
|
503
|
-
export {
|
|
518
|
+
export { R as default };
|
package/dist/install.d.ts
CHANGED
|
@@ -23,6 +23,15 @@ export interface InstallOptions {
|
|
|
23
23
|
export declare class AlreadyWorking extends Error {
|
|
24
24
|
constructor(address: string);
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* This computer's own name and email in git, each when it has one: what the person commits as
|
|
28
|
+
* in a folder that says nothing else, so git is asked outside every folder. A server's git
|
|
29
|
+
* that has none gets them.
|
|
30
|
+
*/
|
|
31
|
+
export declare function ownGitIdentity(exec?: Exec): Promise<{
|
|
32
|
+
name?: string;
|
|
33
|
+
email?: string;
|
|
34
|
+
}>;
|
|
26
35
|
export declare function install(opts: InstallOptions): Promise<void>;
|
|
27
36
|
export type Link = {
|
|
28
37
|
ok: true;
|
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,
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AACA,OAAO,EAAwD,KAAK,IAAI,EAAgB,MAAM,UAAU,CAAA;AAExG,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;AAKD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,GAAE,IAAe,GAAG,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAOtG;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDjE;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,5 +1,5 @@
|
|
|
1
1
|
import { giveGithub, noteGithub } from './logins.js';
|
|
2
|
-
import { lastLines, openSession, withAdvice } from './ssh.js';
|
|
2
|
+
import { exec as realExec, lastLines, openSession, withAdvice } from './ssh.js';
|
|
3
3
|
import { SERVER_USER, STEPS, linkScript } from './steps.js';
|
|
4
4
|
import { BEAT_MS, changeServer, doorUrl, heartbeat, working } from './store.js';
|
|
5
5
|
/** Refused: the server's install already runs, in another process. */
|
|
@@ -8,6 +8,21 @@ export class AlreadyWorking extends Error {
|
|
|
8
8
|
super(`OpenAgent is being installed on ${address} right now`);
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
+
/** How long this computer's git gets to say a name. */
|
|
12
|
+
const GIT_TIMEOUT_MS = 10_000;
|
|
13
|
+
/**
|
|
14
|
+
* This computer's own name and email in git, each when it has one: what the person commits as
|
|
15
|
+
* in a folder that says nothing else, so git is asked outside every folder. A server's git
|
|
16
|
+
* that has none gets them.
|
|
17
|
+
*/
|
|
18
|
+
export async function ownGitIdentity(exec = realExec) {
|
|
19
|
+
const own = async (key) => {
|
|
20
|
+
const said = await exec('git', ['-C', '/', 'config', '--get', key], '', { timeoutMs: GIT_TIMEOUT_MS });
|
|
21
|
+
return said.code === 0 && said.out.trim() ? said.out.trim() : undefined;
|
|
22
|
+
};
|
|
23
|
+
const [name, email] = [await own('user.name'), await own('user.email')];
|
|
24
|
+
return { ...(name !== undefined ? { name } : {}), ...(email !== undefined ? { email } : {}) };
|
|
25
|
+
}
|
|
11
26
|
export async function install(opts) {
|
|
12
27
|
const { env, address, version } = opts;
|
|
13
28
|
const change = (apply) => changeServer(env, address, apply);
|
|
@@ -34,6 +49,7 @@ export async function install(opts) {
|
|
|
34
49
|
let session;
|
|
35
50
|
try {
|
|
36
51
|
session = await openSession(server, { ...(opts.exec ? { exec: opts.exec } : {}), ...(opts.signal ? { signal: opts.signal } : {}) });
|
|
52
|
+
const facts = { address, version, ...(await ownGitIdentity(opts.exec)) };
|
|
37
53
|
for (const step of STEPS) {
|
|
38
54
|
await set(step.id, 'running');
|
|
39
55
|
const login = step.id === 'login';
|
|
@@ -44,7 +60,7 @@ export async function install(opts) {
|
|
|
44
60
|
if (met.fingerprint)
|
|
45
61
|
await change(kept => void (kept.fingerprint = met.fingerprint));
|
|
46
62
|
}
|
|
47
|
-
const said = await session.run(step.as, step.script(
|
|
63
|
+
const said = await session.run(step.as, step.script(facts), step.timeoutMs);
|
|
48
64
|
if (said.code !== 0) {
|
|
49
65
|
const words = lastLines(said) || 'The step ended without a word.';
|
|
50
66
|
return void (await set(step.id, 'failed', login ? withAdvice(server, words) : words));
|
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;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|
package/dist/steps.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* `root` is only who installs. What runs afterwards runs as the server's own user `openagent`:
|
|
7
7
|
* the programs are root's, so an agent that works there cannot change OpenAgent itself.
|
|
8
8
|
*/
|
|
9
|
-
export declare const STEP_IDS: readonly ['login', 'user', 'tools', 'openagent', 'agent', 'service', 'door'];
|
|
9
|
+
export declare const STEP_IDS: readonly ['login', 'user', 'tools', 'name', 'openagent', 'agent', 'service', 'door'];
|
|
10
10
|
export type StepId = (typeof STEP_IDS)[number];
|
|
11
11
|
/** What a script is written for. */
|
|
12
12
|
export interface Facts {
|
|
@@ -14,6 +14,10 @@ export interface Facts {
|
|
|
14
14
|
address: string;
|
|
15
15
|
/** The OpenAgent the server gets: the one that runs on this computer. */
|
|
16
16
|
version: string;
|
|
17
|
+
/** This computer's own name in git, when it has one. */
|
|
18
|
+
name?: string;
|
|
19
|
+
/** This computer's own email in git, when it has one. */
|
|
20
|
+
email?: string;
|
|
17
21
|
}
|
|
18
22
|
export interface StepDef {
|
|
19
23
|
id: StepId;
|
|
@@ -30,8 +34,13 @@ export declare const SERVER_USER = "openagent";
|
|
|
30
34
|
export declare const CLAUDE_FILE = "/etc/openagent/claude.env";
|
|
31
35
|
/** `value` as one word of a shell script, whatever it holds. */
|
|
32
36
|
export declare function quoted(value: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* What the service says to the OpenAgent it starts: this computer is a server one was installed
|
|
39
|
+
* on. Servers are connected from a person's own computer, so a server's own page offers none.
|
|
40
|
+
*/
|
|
41
|
+
export declare const SERVER_MARK = "OPENAGENT_SERVER";
|
|
33
42
|
/** What the service file holds. `KillMode=process`: a run is a process of its own and goes on when OpenAgent starts again, as on a laptop. */
|
|
34
|
-
export declare const SERVICE_UNIT = "[Unit]\nDescription=OpenAgent\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nUser=openagent\nWorkingDirectory=/home/openagent\nEnvironment=PATH=/home/openagent/.local/bin:/opt/openagent/node/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\nEnvironmentFile=-/etc/openagent/claude.env\nExecStart=/opt/openagent/node/bin/openagent\nRestart=always\nRestartSec=5\nKillMode=process\nAmbientCapabilities=CAP_NET_BIND_SERVICE\n\n[Install]\nWantedBy=multi-user.target";
|
|
43
|
+
export declare const SERVICE_UNIT = "[Unit]\nDescription=OpenAgent\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nUser=openagent\nWorkingDirectory=/home/openagent\nEnvironment=PATH=/home/openagent/.local/bin:/opt/openagent/node/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\nEnvironment=OPENAGENT_SERVER=1\nEnvironmentFile=-/etc/openagent/claude.env\nExecStart=/opt/openagent/node/bin/openagent\nRestart=always\nRestartSec=5\nKillMode=process\nAmbientCapabilities=CAP_NET_BIND_SERVICE\n\n[Install]\nWantedBy=multi-user.target";
|
|
35
44
|
export declare const STEPS: readonly StepDef[];
|
|
36
45
|
/** The script that asks the server's door for a link a new machine gets in with. Run as the server's own user. */
|
|
37
46
|
export declare function linkScript(): string;
|
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;
|
|
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,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAU,CAAA;AAC5G,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;IACf,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;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;;;GAGG;AACH,eAAO,MAAM,WAAW,qBAAqB,CAAA;AAE7C,8IAA8I;AAC9I,eAAO,MAAM,YAAY,yhBAkBE,CAAA;AAE3B,eAAO,MAAM,KAAK,EAAE,SAAS,OAAO,EA+NnC,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
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* `root` is only who installs. What runs afterwards runs as the server's own user `openagent`:
|
|
7
7
|
* the programs are root's, so an agent that works there cannot change OpenAgent itself.
|
|
8
8
|
*/
|
|
9
|
-
export const STEP_IDS = ['login', 'user', 'tools', 'openagent', 'agent', 'service', 'door'];
|
|
9
|
+
export const STEP_IDS = ['login', 'user', 'tools', 'name', 'openagent', 'agent', 'service', 'door'];
|
|
10
10
|
/** The server's user everything runs as once it is installed. */
|
|
11
11
|
export const SERVER_USER = 'openagent';
|
|
12
12
|
/** Where the install keeps what it brings: Node, and OpenAgent inside it. */
|
|
@@ -65,6 +65,11 @@ const STARTED = `
|
|
|
65
65
|
return 1
|
|
66
66
|
}`;
|
|
67
67
|
const NOT_STARTED = 'fail "OpenAgent did not start on this server."';
|
|
68
|
+
/**
|
|
69
|
+
* What the service says to the OpenAgent it starts: this computer is a server one was installed
|
|
70
|
+
* on. Servers are connected from a person's own computer, so a server's own page offers none.
|
|
71
|
+
*/
|
|
72
|
+
export const SERVER_MARK = 'OPENAGENT_SERVER';
|
|
68
73
|
/** What the service file holds. `KillMode=process`: a run is a process of its own and goes on when OpenAgent starts again, as on a laptop. */
|
|
69
74
|
export const SERVICE_UNIT = `[Unit]
|
|
70
75
|
Description=OpenAgent
|
|
@@ -75,6 +80,7 @@ Wants=network-online.target
|
|
|
75
80
|
User=${SERVER_USER}
|
|
76
81
|
WorkingDirectory=/home/${SERVER_USER}
|
|
77
82
|
Environment=PATH=/home/${SERVER_USER}/.local/bin:${ROOT}/node/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
83
|
+
Environment=${SERVER_MARK}=1
|
|
78
84
|
EnvironmentFile=-${CLAUDE_FILE}
|
|
79
85
|
ExecStart=${ROOT}/node/bin/openagent
|
|
80
86
|
Restart=always
|
|
@@ -175,6 +181,27 @@ export const STEPS = [
|
|
|
175
181
|
fi
|
|
176
182
|
browser || fail "Chrome was installed, and it does not start on this server."
|
|
177
183
|
fi
|
|
184
|
+
`),
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
id: 'name',
|
|
188
|
+
label: 'Your name and email for git',
|
|
189
|
+
as: 'openagent',
|
|
190
|
+
timeoutMs: 2 * MINUTE,
|
|
191
|
+
script: ({ name = '', email = '' }) => script('openagent', { NAME: name, EMAIL: email }, `
|
|
192
|
+
# A run's record and an agent's work are commits, and git makes none without a name and an email.
|
|
193
|
+
# Only what the server's git lacks is given: what someone set there stays. Nothing is written until both are sure.
|
|
194
|
+
# Asked outside every folder: what a project's own git says is that project's alone.
|
|
195
|
+
has() { [ -n "$(cd / && git config --get "$1" || true)" ]; }
|
|
196
|
+
none() {
|
|
197
|
+
fail "The server's git has no $1, and this computer's git has none to give: nothing an agent does there could be saved. Give this computer both, then try again:
|
|
198
|
+
git config --global user.name 'Your Name'
|
|
199
|
+
git config --global user.email 'you@example.com'"
|
|
200
|
+
}
|
|
201
|
+
has user.name || [ -n "$NAME" ] || none name
|
|
202
|
+
has user.email || [ -n "$EMAIL" ] || none email
|
|
203
|
+
has user.name || git config --global -- user.name "$NAME"
|
|
204
|
+
has user.email || git config --global -- user.email "$EMAIL"
|
|
178
205
|
`),
|
|
179
206
|
},
|
|
180
207
|
{
|
package/dist/steps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../src/steps.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../src/steps.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAU,CAAA;AAyB5G,iEAAiE;AACjE,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAA;AAEtC,6EAA6E;AAC7E,MAAM,IAAI,GAAG,gBAAgB,CAAA;AAC7B,gGAAgG;AAChG,MAAM,SAAS,GAAG,EAAE,CAAA;AAEpB,8LAA8L;AAC9L,MAAM,CAAC,MAAM,WAAW,GAAG,2BAA2B,CAAA;AACtD,4FAA4F;AAC5F,MAAM,WAAW,GAAG,yBAAyB,CAAA;AAE7C,wEAAwE;AACxE,MAAM,IAAI,GAAG,GAAG,IAAI,kBAAkB,IAAI,iGAAiG,CAAA;AAE3I,gEAAgE;AAChE,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAA;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,IAAI,GAAG,6BAA6B,CAAA;AAE1C;;;;;;;GAOG;AACH,SAAS,MAAM,CAAC,EAAiB,EAAE,IAA4B,EAAE,IAAY;IAC3E,MAAM,MAAM,GAAG,8DAA8D,CAAA;IAC7E,OAAO;QACL,mBAAmB;QACnB,WAAW;QACX,uCAAuC;QACvC,gBAAgB,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,IAAI,aAAa,MAAM,EAAE,GAAG;QACzF,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1E,mCAAmC;QACnC,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,EAAE,8FAA8F,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5I,UAAU;QACV,IAAI,CAAC,IAAI,EAAE;QACX,GAAG;QACH,iBAAiB;QACjB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,MAAM,MAAM,GAAG,MAAM,CAAA;AAErB,kJAAkJ;AAClJ,MAAM,OAAO,GAAG;;;;;;;;IAQZ,CAAA;AACJ,MAAM,WAAW,GAAG,gDAAgD,CAAA;AAEpE;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAA;AAE7C,8IAA8I;AAC9I,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;OAMrB,WAAW;yBACO,WAAW;yBACX,WAAW,eAAe,IAAI;cACzC,WAAW;mBACN,WAAW;YAClB,IAAI;;;;;;;2BAOW,CAAA;AAE3B,MAAM,CAAC,MAAM,KAAK,GAAuB;IACvC;QACE,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,QAAQ;QACf,EAAE,EAAE,MAAM;QACV,SAAS,EAAE,CAAC,GAAG,MAAM;QACrB,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CACJ,MAAM,EACN,EAAE,EACF;;;;;;;;;;;;gBAYQ,WAAW;;;;CAI1B,CACM;KACJ;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,YAAY,WAAW,EAAE;QAChC,EAAE,EAAE,MAAM;QACV,SAAS,EAAE,CAAC,GAAG,MAAM;QACrB,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CACJ,MAAM,EACN,EAAE,EACF;OACD,WAAW,+DAA+D,WAAW;CAC3F,CACM;KACJ;IACD;QACE,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,0BAA0B;QACjC,EAAE,EAAE,MAAM;QACV,SAAS,EAAE,EAAE,GAAG,MAAM;QACtB,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CACJ,MAAM,EACN,EAAE,EACF;;;;;;;;;;;;;;;;;;;WAmBG,IAAI;oBACK,SAAS;;;2CAGc,SAAS;;;uDAGG,SAAS;;;aAGnD,IAAI;eACF,IAAI;;+BAEY,IAAI;aACtB,IAAI;SACR,IAAI,aAAa,IAAI;YAClB,IAAI;;uCAEuB,IAAI;;;;;;;;;;;;;;;;CAgB1C,CACM;KACJ;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,6BAA6B;QACpC,EAAE,EAAE,WAAW;QACf,SAAS,EAAE,CAAC,GAAG,MAAM;QACrB,MAAM,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,EAAE,CACpC,MAAM,CACJ,WAAW,EACX,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAC5B;;;;;;;;;;;;;;CAcP,CACM;KACJ;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,WAAW;QAClB,EAAE,EAAE,MAAM;QACV,SAAS,EAAE,EAAE,GAAG,MAAM;QACtB,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACtB,MAAM,CACJ,MAAM,EACN,EAAE,OAAO,EAAE,OAAO,EAAE,EACpB;;WAEG,IAAI,+BAA+B,IAAI;;MAE5C,IAAI;YACE,IAAI;;WAEL,IAAI;CACd,CACM;KACJ;IACD;QACE,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,aAAa;QACpB,EAAE,EAAE,WAAW;QACf,SAAS,EAAE,EAAE,GAAG,MAAM;QACtB,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CACJ,WAAW,EACX,EAAE,EACF;;;;CAIP,CACM;KACJ;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,aAAa;QACpB,EAAE,EAAE,MAAM;QACV,SAAS,EAAE,CAAC,GAAG,MAAM;QACrB,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CACJ,MAAM,EACN,EAAE,IAAI,EAAE,YAAY,EAAE,EACtB,GAAG,OAAO;;;;;YAKN,IAAI;;;;;;;;YAQJ,IAAI;;YAEJ,IAAI;;eAED,WAAW;CACzB,CACM;KACJ;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,UAAU;QACjB,EAAE,EAAE,WAAW;QACf,SAAS,EAAE,CAAC,GAAG,MAAM;QACrB,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACtB,MAAM,CACJ,WAAW,EACX,EAAE,OAAO,EAAE,OAAO,EAAE,EACpB;qBACa,IAAI;;IAErB,IAAI;;;;;;IAMJ,IAAI;;CAEP,CACM;KACJ;CACF,CAAA;AAED,kHAAkH;AAClH,MAAM,UAAU,UAAU;IACxB,OAAO,MAAM,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,IAAI,QAAQ,CAAC,CAAA;AACrD,CAAC;AAQD,oGAAoG;AACpG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAG,MAAM,CAAA;AAE1C,uIAAuI;AACvI,MAAM,MAAM,GAAG,2DAA2D,CAAA;AAC1E,MAAM,OAAO,GAAG,8BAA8B,CAAA;AAE9C;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO;QACL,EAAE,EAAE,WAAW;QACf,MAAM,EAAE,MAAM,CACZ,WAAW,EACX,EAAE,KAAK,EAAE,KAAK,EAAE,EAChB;IACF,MAAM;IACN,cAAc;UACR,OAAO;;;;;;;qBAOI,OAAO;CAC3B,CACI;KACF,CAAA;AACH,CAAC;AAED,+FAA+F;AAC/F,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,MAAM,CAAA;AAEjD,gHAAgH;AAChH,MAAM,SAAS,GAAG,uCAAuC,CAAA;AAEzD,gIAAgI;AAChI,MAAM,YAAY,GAAG,yEAAyE,CAAA;AAE9F;;;;GAIG;AACH,MAAM,cAAc,GAAG,GAAG,YAAY;kBACpB,SAAS;;;;;UAKjB,SAAS,MAAM,CAAA;AAEzB;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,EAAE,EAAE,WAAW;QACf,MAAM,EAAE,MAAM,CACZ,WAAW,EACX,EAAE,EACF;IACF,MAAM;;;IAGN,cAAc;UACR,OAAO;4BACW,SAAS;;;kBAGnB,SAAS;;;;;;;;;;mBAUR,SAAS;;;;CAI3B,CACI;KACF,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,GAAW;IACvD,OAAO;QACL,EAAE,EAAE,WAAW;QACf,MAAM,EAAE,MAAM,CACZ,WAAW,EACX,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EACtB;IACF,MAAM;IACN,YAAY;;;gBAGA,SAAS;;;;UAIf,SAAS;;;;;;;;mBAQA,OAAO;;;;CAIzB,CACI;KACF,CAAA;AACH,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,EAAE,EAAE,WAAW;QACf,MAAM,EAAE,MAAM,CACZ,WAAW,EACX,EAAE,EACF;IACF,MAAM;IACN,cAAc;UACR,OAAO;CAChB,CACI;KACF,CAAA;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO;QACL,EAAE,EAAE,MAAM;QACV,MAAM,EAAE,MAAM,CACZ,MAAM,EACN,EAAE,KAAK,EAAE,KAAK,EAAE,EAChB,GAAG,OAAO;;;WAGL,WAAW,mCAAmC,WAAW,sBAAsB,WAAW,UAAU,WAAW;;iCAEzF,WAAW;UAClC,WAAW;WACV,WAAW,eAAe,WAAW,IAAI,WAAW;0BACrC,WAAW,sBAAsB,WAAW;OAC/D,WAAW,QAAQ,WAAW;;;oGAG+D,WAAW;;;;cAIjG,WAAW,mBAAmB,WAAW,QAAQ,WAAW,gBAAgB,WAAW;;;;UAI3F,WAAW;CACpB,CACI;KACF,CAAA;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,EAAE,EAAE,MAAM;QACV,MAAM,EAAE,MAAM,CACZ,MAAM,EACN,EAAE,EACF,GAAG,OAAO;SACP,WAAW;UACV,WAAW,IAAI,WAAW;;eAErB,WAAW;CACzB,CACI;KACF,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openagt/servers",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "Connect your VPS: give a server's address and a user name, and OpenAgent installs itself there over SSH, with this computer's own SSH keys. The server then starts OpenAgent by itself, opens its door over HTTPS, and is a machine a run can be sent to. The server gets its two logins from this computer, over SSH: your GitHub login, copied when you tick it, and a Claude login made for it with claude setup-token. It brings the Servers section of the dashboard's Settings page.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|