pinecall 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -5
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +4 -2
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +30 -7
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/env.d.ts +4 -4
- package/dist/cli/env.d.ts.map +1 -1
- package/dist/cli/env.js +11 -8
- package/dist/cli/env.js.map +1 -1
- package/dist/cli/gateway.d.ts +12 -0
- package/dist/cli/gateway.d.ts.map +1 -0
- package/dist/cli/gateway.js +63 -0
- package/dist/cli/gateway.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +10 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/knowledge.d.ts.map +1 -1
- package/dist/cli/knowledge.js +6 -3
- package/dist/cli/knowledge.js.map +1 -1
- package/dist/cli/line.d.ts.map +1 -1
- package/dist/cli/line.js +9 -6
- package/dist/cli/line.js.map +1 -1
- package/dist/cli/login.d.ts +1 -1
- package/dist/cli/login.d.ts.map +1 -1
- package/dist/cli/login.js +87 -10
- package/dist/cli/login.js.map +1 -1
- package/dist/cli/profiles.d.ts +24 -2
- package/dist/cli/profiles.d.ts.map +1 -1
- package/dist/cli/profiles.js +36 -0
- package/dist/cli/profiles.js.map +1 -1
- package/dist/cli/prompt.d.ts.map +1 -1
- package/dist/cli/prompt.js +2 -1
- package/dist/cli/prompt.js.map +1 -1
- package/dist/cli/run-console.d.ts +15 -0
- package/dist/cli/run-console.d.ts.map +1 -0
- package/dist/cli/run-console.js +49 -0
- package/dist/cli/run-console.js.map +1 -0
- package/dist/cli/run-screens.d.ts +1 -0
- package/dist/cli/run-screens.d.ts.map +1 -1
- package/dist/cli/run-screens.js +1 -1
- package/dist/cli/run-screens.js.map +1 -1
- package/dist/cli/run.d.ts +4 -5
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +73 -46
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/serve/server.d.ts +35 -0
- package/dist/cli/serve/server.d.ts.map +1 -0
- package/dist/cli/serve/server.js +199 -0
- package/dist/cli/serve/server.js.map +1 -0
- package/dist/cli/serve/sidecar.d.ts +31 -0
- package/dist/cli/serve/sidecar.d.ts.map +1 -0
- package/dist/cli/serve/sidecar.js +74 -0
- package/dist/cli/serve/sidecar.js.map +1 -0
- package/dist/cli/serve.d.ts +14 -0
- package/dist/cli/serve.d.ts.map +1 -0
- package/dist/cli/serve.js +81 -0
- package/dist/cli/serve.js.map +1 -0
- package/dist/cli/signup.d.ts.map +1 -1
- package/dist/cli/signup.js +7 -3
- package/dist/cli/signup.js.map +1 -1
- package/dist/cli/testing/reproduction.d.ts +6 -1
- package/dist/cli/testing/reproduction.d.ts.map +1 -1
- package/dist/cli/testing/reproduction.js +11 -1
- package/dist/cli/testing/reproduction.js.map +1 -1
- package/dist/cli/ui/admin/assets/{index-DotmbMtQ.js → index-BpdIOuyO.js} +1 -1
- package/dist/cli/ui/admin/index.html +1 -1
- package/dist/cli/ui/console/assets/index-C7LdwphQ.css +1 -0
- package/dist/cli/ui/console/assets/index-DTMBzpRG.js +102 -0
- package/dist/cli/ui/console/favicon.png +0 -0
- package/dist/cli/ui/console/index.html +4 -4
- package/dist/cli/ui/console/pinecall-logo.png +0 -0
- package/dist/cli/ui/console/pinecall-mark.png +0 -0
- package/dist/client/client.d.ts +6 -0
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +20 -0
- package/dist/client/client.js.map +1 -1
- package/package.json +2 -2
- package/dist/cli/ui/console/assets/index-BVvP6fgr.js +0 -100
- package/dist/cli/ui/console/assets/index-DPF4-rtt.css +0 -1
package/dist/cli/line.js
CHANGED
|
@@ -5,28 +5,31 @@ import { load } from "./load.js";
|
|
|
5
5
|
import { oneHome } from "./home.js";
|
|
6
6
|
import { slugOf } from "../runtime/connect.js";
|
|
7
7
|
import { asked } from "./testing/gateway.js";
|
|
8
|
-
const USAGE = "usage: pinecall line [from <+number> | forget | claim | release] [agent.tsx]";
|
|
8
|
+
const USAGE = "usage: pinecall line [from <+number> | forget | claim | release] [agent.tsx] [--agent <name>]";
|
|
9
9
|
// A number exists once in a world, so it rings in one place. In production that place is the box
|
|
10
10
|
// and there is nothing to decide; in the sandbox an org shares ONE number and three developers
|
|
11
11
|
// may be running the same agent, so which terminal it rings in is claimed out loud. Alone nobody
|
|
12
12
|
// claims anything — the first `pinecall run` takes it. See the runtime's docs/protocol/gateway-api.md.
|
|
13
13
|
export const group = {
|
|
14
|
-
purpose: "whose terminal
|
|
14
|
+
purpose: "which phone is yours, and whose terminal anybody else's call rings in",
|
|
15
15
|
usage: `${USAGE}
|
|
16
16
|
|
|
17
17
|
With nothing after it: who is answering this agent's number right now, and who else is running
|
|
18
18
|
it and could take it.
|
|
19
19
|
|
|
20
20
|
\`from <+number>\` is the one you want. Say which phone is YOURS, once, and every call you make
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
reaches your own agent — on the number your customers call, in production, as much as on a
|
|
22
|
+
sandbox one: while you are running the agent your phone reaches your copy, and everybody else
|
|
23
|
+
reaches production. No claim, no coordination, three of you testing at the same time. It is
|
|
24
|
+
remembered for this gateway and re-sent by every \`pinecall run\`, each time it connects.
|
|
25
|
+
\`forget\` undoes it.
|
|
24
26
|
|
|
25
27
|
\`claim\` and \`release\` are the fallback, for a call from a number nobody said was theirs — a
|
|
26
28
|
customer, a colleague's phone. The first terminal to hold the agent has it; alone, you never
|
|
27
29
|
need either word.
|
|
28
30
|
|
|
29
|
-
The agent is the one in this directory
|
|
31
|
+
The agent is the one in this directory; at the root of a project of several, \`claim\`,
|
|
32
|
+
\`release\` and the bare \`line\` take --agent <name>. \`from\` and \`forget\` are about your phone.`,
|
|
30
33
|
run,
|
|
31
34
|
};
|
|
32
35
|
const VERBS = new Set(["from", "forget", "claim", "release"]);
|
package/dist/cli/line.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line.js","sourceRoot":"","sources":["../../src/cli/line.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAI3G,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAa,MAAM,sBAAsB,CAAC;AAExD,MAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"line.js","sourceRoot":"","sources":["../../src/cli/line.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAI3G,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAa,MAAM,sBAAsB,CAAC;AAExD,MAAM,KAAK,GAAG,+FAA+F,CAAC;AAE9G,iGAAiG;AACjG,+FAA+F;AAC/F,iGAAiG;AACjG,uGAAuG;AACvG,MAAM,CAAC,MAAM,KAAK,GAAU;IAC1B,OAAO,EAAE,uEAAuE;IAChF,KAAK,EAAE,GAAG,KAAK;;;;;;;;;;;;;;;;;uGAiBsF;IACrG,GAAG;CACJ,CAAC;AAEF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAc,EAAE,GAAG,GAA0B,OAAO,CAAC,MAAM;IACnF,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAEjC,8FAA8F;IAC9F,8DAA8D;IAC9D,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;YACnC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3C,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzB,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC5B,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,4FAA4F;IAC5F,gCAAgC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClF,MAAM,IAAI,GACR,IAAI,KAAK,OAAO;QACd,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;QAC3B,CAAC,CAAC,IAAI,KAAK,SAAS;YAClB,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;YAC5B,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,GAAG,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,kGAAkG;AAClG,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAU,EAAE,MAAc;IACxD,OAAO,MAAM,KAAK,CAAwB,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAU;IAC9C,OAAO,MAAM,KAAK,CAAuB,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,OAAO,CAAC,OAAiB;IACvC,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC;QACzB,CAAC,CAAC,cAAc,OAAO,CAAC,CAAC,CAAC,sBAAsB;QAChD,CAAC,CAAC,cAAc,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC;AAC7D,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,SAAS,CAAC,OAAiB;IACzC,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC;QACzB,CAAC,CAAC,sCAAsC;QACxC,CAAC,CAAC,cAAc,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC;AACvE,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAU,EAAE,IAAY;IACpD,OAAO,MAAM,KAAK,CAAU,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,iDAAiD;AACjD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAU,EAAE,IAAY;IACpD,OAAO,MAAM,KAAK,CAAU,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAU,EAAE,IAAY;IACrD,OAAO,MAAM,KAAK,CAAU,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO,cAAc,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AACvD,CAAC;AAED,gGAAgG;AAChG,oCAAoC;AACpC,MAAM,IAAI,GAAG,eAAe,CAAC;AAE7B;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,uBAAuB,IAAI,CAAC,KAAK,0BAA0B,CAAC;IACnF,8FAA8F;IAC9F,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAChG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACxE,OAAO,CAAC,wBAAwB,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;IACzC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,GAAG,MAAM,aAAa,IAAI,EAAE,CAAC;IAC5D,OAAO,GAAG,MAAM,8EAA8E,CAAC;AACjG,CAAC;AAED,qFAAqF;AACrF,SAAS,KAAK,CAAC,IAAa;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;IAChC,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/F,CAAC;AAED,mFAAmF;AACnF,SAAS,OAAO,CAAC,IAAa;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,mBAAmB,CAAC,CAAC;IACzE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9E,CAAC"}
|
package/dist/cli/login.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export declare function login(argv: string[], how?: Signing): Promise<number>;
|
|
|
21
21
|
* who meant their own box has to be able to see that this one was assumed, in the line above the
|
|
22
22
|
* link, rather than discovering it in `pinecall whoami` tomorrow.
|
|
23
23
|
*/
|
|
24
|
-
export declare function theGateway(named: string | undefined): {
|
|
24
|
+
export declare function theGateway(named: string | undefined, home?: string): {
|
|
25
25
|
url: string;
|
|
26
26
|
assumed?: string;
|
|
27
27
|
};
|
package/dist/cli/login.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/cli/login.ts"],"names":[],"mappings":"AAAA,yGAAyG;AASzG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAczC,eAAO,MAAM,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/cli/login.ts"],"names":[],"mappings":"AAAA,yGAAyG;AASzG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAczC,eAAO,MAAM,KAAK,EAAE,KAwBnB,CAAC;AAEF,gGAAgG;AAChG,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,+FAA+F;IAC/F,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,8FAA8F;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qGAAqG;AACrG,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAyC9E;AAiHD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAQtG;AAED,0FAA0F;AAC1F,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/D"}
|
package/dist/cli/login.js
CHANGED
|
@@ -3,12 +3,12 @@ import { hostname } from "node:os";
|
|
|
3
3
|
import { parseArgs } from "node:util";
|
|
4
4
|
import { openInABrowser } from "./browser.js";
|
|
5
5
|
import { pinecallHome, writeGateway } from "./credentials.js";
|
|
6
|
-
import { nameFor, readConfig, writeProfile } from "./profiles.js";
|
|
6
|
+
import { activate, chosenGateway, nameFor, nameForOrg, readConfig, writeProfile } from "./profiles.js";
|
|
7
7
|
import { CLOUD_URL } from "./env.js";
|
|
8
8
|
import { aLineOfStdin } from "./secret.js";
|
|
9
9
|
import { asked } from "./testing/gateway.js";
|
|
10
10
|
import { orgOf, refusal, whoIs } from "./whoami.js";
|
|
11
|
-
const USAGE = "usage: pinecall login [gateway-url] [--key-stdin]";
|
|
11
|
+
const USAGE = "usage: pinecall login [gateway-url] [--as <profile>] [--key-stdin]";
|
|
12
12
|
// How often the terminal asks, and for how long. The gateway's word lives ten minutes, so this
|
|
13
13
|
// gives up a little after it does rather than polling a word that cannot come back.
|
|
14
14
|
const EVERY_MS = 2_000;
|
|
@@ -23,10 +23,14 @@ export const group = {
|
|
|
23
23
|
it is revoked on its own from the Keys screen. Nothing types a password into a shell, and the
|
|
24
24
|
day your org signs in with Google this verb does not change.
|
|
25
25
|
|
|
26
|
-
With no URL it is
|
|
26
|
+
With no URL it is the gateway this machine is pointed at — ${CLOUD_URL} until \`pinecall gateway
|
|
27
|
+
<url>\` says otherwise — and it says which one out loud before anything is kept.
|
|
27
28
|
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
One login keeps everything you hold: a profile per org you belong to, named after the org,
|
|
30
|
+
each with your key in BOTH worlds. The sandbox one is in hand, so \`pinecall run\` and \`pinecall
|
|
31
|
+
chat\` answer in a world of your own and never in the one your customers call; \`pinecall use
|
|
32
|
+
<org>\` moves between orgs and \`pinecall use <org> production\` looks at production. --as keeps
|
|
33
|
+
ONE profile under a name of yours instead.
|
|
30
34
|
|
|
31
35
|
--key-stdin reads a KEY from one line of stdin instead, for a machine: a server, a CI job, a
|
|
32
36
|
container. That is what \`pinecall keys issue\` mints, and it writes the same profile — so a
|
|
@@ -44,7 +48,7 @@ export async function login(argv, how = {}) {
|
|
|
44
48
|
allowPositionals: true,
|
|
45
49
|
options: { "key-stdin": { type: "boolean", default: false }, as: { type: "string" } },
|
|
46
50
|
});
|
|
47
|
-
const { url, assumed } = theGateway(positionals[0]);
|
|
51
|
+
const { url, assumed } = theGateway(positionals[0], pinecallHome(how.env ?? process.env));
|
|
48
52
|
if (assumed !== undefined)
|
|
49
53
|
out.write(`${assumed}\n`);
|
|
50
54
|
const key = values["key-stdin"] === true ? (await aLineOfStdin()).trim() : await throughABrowser(url, how, out, err);
|
|
@@ -73,11 +77,81 @@ export async function login(argv, how = {}) {
|
|
|
73
77
|
// now, and `credentials` is what v1's CLI on this same machine still reads. The second write
|
|
74
78
|
// goes with the second half of this change.
|
|
75
79
|
const name = values.as ?? nameFor(url, readConfig(home));
|
|
76
|
-
|
|
80
|
+
const kept = await everyOrgOfTheirs({ url, apiKey: key }, who, values.as ?? name, values.as !== undefined, home);
|
|
77
81
|
writeGateway(url, { api_key: key, org: orgOf(who) }, home);
|
|
78
|
-
|
|
82
|
+
for (const line of kept)
|
|
83
|
+
out.write(`${line}\n`);
|
|
79
84
|
return 0;
|
|
80
85
|
}
|
|
86
|
+
// What a person held was ONE key: the sandbox of whichever org of theirs was oldest. A second org,
|
|
87
|
+
// or a look at production, meant logging in again with a flag nobody could guess. The gateway
|
|
88
|
+
// mints the rest from the key in hand (POST /v1/login/org, POST /v1/login/env), so the login does
|
|
89
|
+
// it here, once: a profile per org, both worlds in each, and `pinecall use` is the whole of moving.
|
|
90
|
+
/** Every org this key's person belongs to, kept as a profile each, with the keys of both worlds. */
|
|
91
|
+
async function everyOrgOfTheirs(door, who, fallback, named, home) {
|
|
92
|
+
const world = who.env;
|
|
93
|
+
// `--as` names ONE profile, and a machine key names nobody: both keep exactly the key in hand.
|
|
94
|
+
const mine = named ? [] : await theirOrgs(door);
|
|
95
|
+
if (mine.length === 0) {
|
|
96
|
+
const keys = await bothWorlds(door, world);
|
|
97
|
+
writeProfile(fallback, { url: door.url, key: door.apiKey, keys, org: orgOf(who), env: who.env }, home);
|
|
98
|
+
return [`▸ ${fallback} · ${door.url} · org ${orgOf(who)} · ${worldsIn(keys, world)}`];
|
|
99
|
+
}
|
|
100
|
+
const said = [];
|
|
101
|
+
let here;
|
|
102
|
+
for (const org of mine) {
|
|
103
|
+
const key = org.here ? door.apiKey : await inThatOrg(door, org.org);
|
|
104
|
+
if (key === null)
|
|
105
|
+
continue;
|
|
106
|
+
const name = nameForOrg(org.slug ?? org.org, door.url, readConfig(home));
|
|
107
|
+
const keys = await bothWorlds({ url: door.url, apiKey: key }, world);
|
|
108
|
+
writeProfile(name, { url: door.url, key, keys, org: org.slug ?? org.org, env: who.env }, home);
|
|
109
|
+
if (org.here)
|
|
110
|
+
here = name;
|
|
111
|
+
said.push(`${org.here ? "▸" : " "} ${name} · ${door.url} · ${worldsIn(keys, world)}`);
|
|
112
|
+
}
|
|
113
|
+
// The org they signed in to is the one in hand; the rest are a `pinecall use` away.
|
|
114
|
+
if (here !== undefined)
|
|
115
|
+
activate(here, home);
|
|
116
|
+
if (said.length > 1)
|
|
117
|
+
said.push(" `pinecall use <org>` moves between them; `pinecall use <org> production` looks at production");
|
|
118
|
+
return said;
|
|
119
|
+
}
|
|
120
|
+
/** The orgs the person holds a key in, or none for a machine key and for a gateway without the door. */
|
|
121
|
+
async function theirOrgs(door) {
|
|
122
|
+
try {
|
|
123
|
+
return (await asked(door, "/v1/login/orgs", { method: "GET" })).orgs.filter((org) => org.member !== false);
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return [];
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/** The same person's key in another org of theirs, or null when the gateway would not mint one. */
|
|
130
|
+
async function inThatOrg(door, org) {
|
|
131
|
+
try {
|
|
132
|
+
return (await asked(door, "/v1/login/org", { method: "POST", body: { org } })).key;
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/** This key and its sibling in the other world, when the gateway mints one for this person. */
|
|
139
|
+
async function bothWorlds(door, world) {
|
|
140
|
+
const other = world === "sandbox" ? "production" : "sandbox";
|
|
141
|
+
const keys = { [world]: door.apiKey };
|
|
142
|
+
try {
|
|
143
|
+
keys[other] = (await asked(door, "/v1/login/env", { method: "POST", body: { env: other } })).key;
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
// A machine key opens one world and may not mint the other: the profile holds what there is.
|
|
147
|
+
}
|
|
148
|
+
return keys;
|
|
149
|
+
}
|
|
150
|
+
// The world in hand first and marked, so the line reads as where the next verb goes.
|
|
151
|
+
function worldsIn(keys, inHand) {
|
|
152
|
+
const other = inHand === "sandbox" ? "production" : "sandbox";
|
|
153
|
+
return keys[other] === undefined ? inHand : `${inHand} (and ${other})`;
|
|
154
|
+
}
|
|
81
155
|
/**
|
|
82
156
|
* The dance: a word this terminal asks for, a link the person opens, and the key left behind.
|
|
83
157
|
*
|
|
@@ -110,12 +184,15 @@ async function throughABrowser(url, how, out, err) {
|
|
|
110
184
|
* who meant their own box has to be able to see that this one was assumed, in the line above the
|
|
111
185
|
* link, rather than discovering it in `pinecall whoami` tomorrow.
|
|
112
186
|
*/
|
|
113
|
-
export function theGateway(named) {
|
|
187
|
+
export function theGateway(named, home) {
|
|
114
188
|
if (named !== undefined)
|
|
115
189
|
return { url: named };
|
|
190
|
+
const chosen = chosenGateway(home);
|
|
191
|
+
if (chosen !== undefined)
|
|
192
|
+
return { url: chosen, assumed: `gateway ${chosen} (this machine's, from \`pinecall gateway\`)` };
|
|
116
193
|
return {
|
|
117
194
|
url: CLOUD_URL,
|
|
118
|
-
assumed: `gateway ${CLOUD_URL} (the default — \`pinecall
|
|
195
|
+
assumed: `gateway ${CLOUD_URL} (the default — \`pinecall gateway <url>\` for your own box)`,
|
|
119
196
|
};
|
|
120
197
|
}
|
|
121
198
|
/** Where the person signs this terminal in: the gateway's own page, carrying the word. */
|
package/dist/cli/login.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/cli/login.ts"],"names":[],"mappings":"AAAA,yGAAyG;AAEzG,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/cli/login.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/profiles.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
/** ~/.pinecall/config.json: the gateways this machine knows, by name, and which one is in hand. */
|
|
2
|
-
/**
|
|
2
|
+
/** The two worlds of an org, as a profile names them. */
|
|
3
|
+
export type World = "sandbox" | "production";
|
|
4
|
+
/** The same person's key in each world of one org, as the login minted them. */
|
|
5
|
+
export type Keys = Partial<Record<World, string>>;
|
|
6
|
+
/** One org on one gateway: where it is, the keys that open it, and which world is in hand. */
|
|
3
7
|
export interface Profile {
|
|
4
8
|
url: string;
|
|
9
|
+
/** The key every verb uses: the one of the world `env` names. */
|
|
5
10
|
key: string;
|
|
11
|
+
/** Both worlds' keys, so moving between them is `pinecall use` and never a second login. */
|
|
12
|
+
keys?: Keys;
|
|
6
13
|
/** The org the key belongs to, as `whoami` last said it. A label, never a check. */
|
|
7
14
|
org?: string;
|
|
8
15
|
/** The world it opens, likewise: printed, never trusted over what the gateway says. */
|
|
@@ -10,9 +17,11 @@ export interface Profile {
|
|
|
10
17
|
/** The phone this person calls FROM, so a ring in the sandbox reaches their own agent. */
|
|
11
18
|
calling?: string;
|
|
12
19
|
}
|
|
13
|
-
/** The file: every profile by name,
|
|
20
|
+
/** The file: every profile by name, the one a verb uses when nobody names another, and the gateway this machine was pointed at. */
|
|
14
21
|
export interface Config {
|
|
15
22
|
active?: string;
|
|
23
|
+
/** Where `pinecall login` goes when nobody names a URL: `pinecall gateway <url>` writes it. */
|
|
24
|
+
gateway?: string;
|
|
16
25
|
profiles: Record<string, Profile>;
|
|
17
26
|
}
|
|
18
27
|
/**
|
|
@@ -37,12 +46,25 @@ export declare function withoutTheProfileFlag(argv: readonly string[]): string[]
|
|
|
37
46
|
export declare function theChosenProfile(): string | undefined;
|
|
38
47
|
/** The profile a verb runs on: the one named, or the active one, or nothing at all. */
|
|
39
48
|
export declare function profileFor(named: string | undefined, home?: string): Profile | undefined;
|
|
49
|
+
/** The gateway this machine was pointed at, or nothing — and then it is the cloud's. */
|
|
50
|
+
export declare function chosenGateway(home?: string): string | undefined;
|
|
51
|
+
/** Point this machine at a gateway, so `pinecall login` and every verb with no key go there. */
|
|
52
|
+
export declare function chooseGateway(url: string, home?: string): void;
|
|
40
53
|
/** Which profile is in hand, for a line that says where a verb is about to go. */
|
|
41
54
|
export declare function activeName(home?: string): string | undefined;
|
|
42
55
|
/** Keep one profile and make it the active one: what `pinecall login` does when it has a key. */
|
|
43
56
|
export declare function writeProfile(name: string, profile: Profile, home?: string): void;
|
|
44
57
|
/** Make a profile that is already there the active one. False when there is no such name. */
|
|
45
58
|
export declare function activate(name: string, home?: string): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Move a profile to one of its worlds, with the key the login already minted for it.
|
|
61
|
+
*
|
|
62
|
+
* A person holds a key in each world of an org, and used to hold only the sandbox one: looking at
|
|
63
|
+
* production from a terminal meant a second profile nobody knew how to make.
|
|
64
|
+
*/
|
|
65
|
+
export declare function inWorld(name: string, world: World, home?: string): "moved" | "unknown" | "nokey";
|
|
66
|
+
/** A name for an org's profile: its slug, and the gateway's host beside it when another gateway took the slug. */
|
|
67
|
+
export declare function nameForOrg(slug: string, url: string, config: Config): string;
|
|
46
68
|
/**
|
|
47
69
|
* Forget a gateway. False when there is no such name, so a typo is never silence.
|
|
48
70
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/cli/profiles.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAanG,
|
|
1
|
+
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/cli/profiles.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/profiles.js
CHANGED
|
@@ -81,6 +81,14 @@ export function profileFor(named, home = pinecallHome()) {
|
|
|
81
81
|
const name = named ?? config.active;
|
|
82
82
|
return name === undefined ? undefined : config.profiles[name];
|
|
83
83
|
}
|
|
84
|
+
/** The gateway this machine was pointed at, or nothing — and then it is the cloud's. */
|
|
85
|
+
export function chosenGateway(home = pinecallHome()) {
|
|
86
|
+
return readConfig(home).gateway;
|
|
87
|
+
}
|
|
88
|
+
/** Point this machine at a gateway, so `pinecall login` and every verb with no key go there. */
|
|
89
|
+
export function chooseGateway(url, home = pinecallHome()) {
|
|
90
|
+
writeConfig({ ...readConfig(home), gateway: url }, home);
|
|
91
|
+
}
|
|
84
92
|
/** Which profile is in hand, for a line that says where a verb is about to go. */
|
|
85
93
|
export function activeName(home = pinecallHome()) {
|
|
86
94
|
return readConfig(home).active;
|
|
@@ -101,6 +109,32 @@ export function activate(name, home = pinecallHome()) {
|
|
|
101
109
|
writeConfig(config, home);
|
|
102
110
|
return true;
|
|
103
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Move a profile to one of its worlds, with the key the login already minted for it.
|
|
114
|
+
*
|
|
115
|
+
* A person holds a key in each world of an org, and used to hold only the sandbox one: looking at
|
|
116
|
+
* production from a terminal meant a second profile nobody knew how to make.
|
|
117
|
+
*/
|
|
118
|
+
export function inWorld(name, world, home = pinecallHome()) {
|
|
119
|
+
const config = readConfig(home);
|
|
120
|
+
const profile = config.profiles[name];
|
|
121
|
+
if (profile === undefined)
|
|
122
|
+
return "unknown";
|
|
123
|
+
const key = profile.keys?.[world];
|
|
124
|
+
if (key === undefined)
|
|
125
|
+
return "nokey";
|
|
126
|
+
config.profiles[name] = { ...profile, key, env: world };
|
|
127
|
+
config.active = name;
|
|
128
|
+
writeConfig(config, home);
|
|
129
|
+
return "moved";
|
|
130
|
+
}
|
|
131
|
+
/** A name for an org's profile: its slug, and the gateway's host beside it when another gateway took the slug. */
|
|
132
|
+
export function nameForOrg(slug, url, config) {
|
|
133
|
+
const held = config.profiles[slug];
|
|
134
|
+
if (held === undefined || normalised(held.url) === normalised(url))
|
|
135
|
+
return slug;
|
|
136
|
+
return `${slug}@${new URL(url).host}`;
|
|
137
|
+
}
|
|
104
138
|
/**
|
|
105
139
|
* Forget a gateway. False when there is no such name, so a typo is never silence.
|
|
106
140
|
*
|
|
@@ -184,6 +218,8 @@ function parsedConfig(home) {
|
|
|
184
218
|
const config = { profiles: profiles };
|
|
185
219
|
if (typeof read["active"] === "string")
|
|
186
220
|
config.active = read["active"];
|
|
221
|
+
if (typeof read["gateway"] === "string")
|
|
222
|
+
config.gateway = read["gateway"];
|
|
187
223
|
return config;
|
|
188
224
|
}
|
|
189
225
|
// A missing file, an unreadable one and a broken one are all the same answer: nothing. A config
|
package/dist/cli/profiles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/cli/profiles.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAEnG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE7E,2FAA2F;AAC3F,MAAM,cAAc,GAAG,KAAK,CAAC;AAC7B,MAAM,SAAS,GAAG,KAAK,CAAC;AAExB,MAAM,MAAM,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/cli/profiles.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAEnG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE7E,2FAA2F;AAC3F,MAAM,cAAc,GAAG,KAAK,CAAC;AAC7B,MAAM,SAAS,GAAG,KAAK,CAAC;AAExB,MAAM,MAAM,GAAG,aAAa,CAAC;AA+B7B;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,IAAI,GAAW,YAAY,EAAE;IACtD,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,MAAM,GAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG;YACtC,GAAG;YACH,GAAG,EAAE,GAAG,CAAC,OAAO;YAChB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;SAC/D,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrD,2FAA2F;IAC3F,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;IAClE,IAAI,IAAI,KAAK,SAAS;QAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,6FAA6F;AAC7F,kGAAkG;AAClG,gGAAgG;AAChG,6EAA6E;AAC7E,IAAI,MAA0B,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAuB;IAC3D,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAE,CAAC;QACvB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACtB,EAAE,IAAI,CAAC,CAAC;QACV,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACzC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,gBAAgB;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,UAAU,CAAC,KAAyB,EAAE,IAAI,GAAW,YAAY,EAAE;IACjF,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC;IACpC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,aAAa,CAAC,IAAI,GAAW,YAAY,EAAE;IACzD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AAClC,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,IAAI,GAAW,YAAY,EAAE;IACtE,WAAW,CAAC,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,UAAU,CAAC,IAAI,GAAW,YAAY,EAAE;IACtD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AACjC,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAAgB,EAAE,IAAI,GAAW,YAAY,EAAE;IACxF,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAChC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAI,GAAW,YAAY,EAAE;IAClE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,KAAY,EAAE,IAAI,GAAW,YAAY,EAAE;IAC/E,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IACxD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,GAAW,EAAE,MAAc;IAClE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAChF,OAAO,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,IAAI,GAAW,YAAY,EAAE;IAChE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAClE,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IACnF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,WAAW,CAAC,IAAI,GAAW,YAAY,EAAE;IACvD,OAAO,UAAU,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC;AACvD,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,SAAS,CAAC,MAA0B,EAAE,IAAI,GAAW,YAAY,EAAE;IACjF,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,gBAAgB,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC;IACjD,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5E,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7F,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,KAAK,CACnB,IAAY,EACZ,MAAwB,EACxB,IAAI,GAAW,YAAY,EAAE,EAC7B,KAAK,GAAG,KAAK;IAEb,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxC,yFAAyF;IACzF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,MAAM,EAAc,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;IACvF,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,GAAW,EAAE,MAAc;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAW,EAAE,CACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;IACnG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAClC,KAAK,IAAI,EAAE,GAAG,CAAC,GAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;YAAE,OAAO,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,MAAc;IACvD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC;AACxG,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QACnC,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,OAAO,CAAC;QACnF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IACnG,MAAM,MAAM,GAAW,EAAE,QAAQ,EAAE,QAAmC,EAAE,CAAC;IACzE,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ;QAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvE,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ;QAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gGAAgG;AAChG,kGAAkG;AAClG,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,CAAC;QACH,MAAM,IAAI,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3E,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACtE,CAAC,CAAE,IAAgC;YACnC,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,IAAY;IAC/C,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACjF,6FAA6F;IAC7F,2CAA2C;IAC3C,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC7B,CAAC"}
|
package/dist/cli/prompt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/cli/prompt.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAKnG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AASzC,eAAO,MAAM,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/cli/prompt.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAKnG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AASzC,eAAO,MAAM,KAAK,EAAE,KAanB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,GAAG,CACvB,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,GAAE,MAAM,CAAC,cAA+B,EAC3C,GAAG,GAAE,MAAM,CAAC,cAA+B,GAC1C,OAAO,CAAC,MAAM,CAAC,CAejB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAO5E"}
|
package/dist/cli/prompt.js
CHANGED
|
@@ -7,13 +7,14 @@ import { instanceFor, load } from "./load.js";
|
|
|
7
7
|
import { AGENT_FLAG, oneHome } from "./home.js";
|
|
8
8
|
export const group = {
|
|
9
9
|
purpose: "the exact prompt a state would produce, offline",
|
|
10
|
-
usage: `usage: pinecall prompt [agent.tsx] --state <file> [--case n]
|
|
10
|
+
usage: `usage: pinecall prompt [agent.tsx] --state <file> [--case n] [--agent <name>]
|
|
11
11
|
|
|
12
12
|
The three regions of the prompt as the model would receive them — the static prefix, the
|
|
13
13
|
history, the dynamic blocks at the end — and under them the stage and the tools that stage
|
|
14
14
|
shows. No gateway, no key, no call: the class is loaded here and put in the state the file
|
|
15
15
|
describes, so this answers in the time it takes to save the file.
|
|
16
16
|
|
|
17
|
+
--agent <name> which agent of a project of several, by its file's name or its slug
|
|
17
18
|
--state file a goldens file: an array of cases, each with its own \`state\`, or one object
|
|
18
19
|
--case n which case of that file, when it holds several (default 0)`,
|
|
19
20
|
run,
|
package/dist/cli/prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/cli/prompt.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAEnG,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOhD,MAAM,CAAC,MAAM,KAAK,GAAU;IAC1B,OAAO,EAAE,iDAAiD;IAC1D,KAAK,EAAE
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/cli/prompt.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAEnG,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOhD,MAAM,CAAC,MAAM,KAAK,GAAU;IAC1B,OAAO,EAAE,iDAAiD;IAC1D,KAAK,EAAE;;;;;;;;;6EASoE;IAC3E,GAAG;CACJ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CACvB,IAAc,EACd,GAAG,GAA0B,OAAO,CAAC,MAAM,EAC3C,GAAG,GAA0B,OAAO,CAAC,MAAM;IAE3C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;QACxC,IAAI,EAAE,IAAI;QACV,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,UAAU,EAAE;KAChF,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,GAAG,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC3D,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxF,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,GAAG,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,KAAyB;IAChE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAkB,CAAC;IACvE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,gBAAgB,KAAK,EAAE,CAAC,CAAC;IAC1E,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** The `console` line `pinecall run` prints: where a person looks at what this process is running. */
|
|
2
|
+
import { type Door } from "./testing/gateway.js";
|
|
3
|
+
/** `where` when the key opens production: the console is the gateway's own page. */
|
|
4
|
+
export declare const HOSTED = "hosted";
|
|
5
|
+
/** `where` when the key opens the sandbox and no `pinecall serve` is up on this machine. */
|
|
6
|
+
export declare const NOWHERE = "nowhere";
|
|
7
|
+
/** Where the gateway's console of this agent is, with the code that signs the browser in. */
|
|
8
|
+
export declare function consoleUrl(gateway: string, slug: string, code: string): string;
|
|
9
|
+
/** Where this machine's console of this agent is: nothing to sign in to, so nothing in the URL. */
|
|
10
|
+
export declare function localUrl(sidecar: string, slug: string): string;
|
|
11
|
+
/** Why the console line has no URL in it, in words that name the next move. */
|
|
12
|
+
export declare function whyNoConsole(refused: unknown): string;
|
|
13
|
+
/** The line under `connected`: the console's URL, or the verb that opens one. */
|
|
14
|
+
export declare function consoleLine(door: Door, slug: string, where: string): Promise<string>;
|
|
15
|
+
//# sourceMappingURL=run-console.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-console.d.ts","sourceRoot":"","sources":["../../src/cli/run-console.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAEtG,OAAO,EAAkB,KAAK,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAKjE,oFAAoF;AACpF,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,4FAA4F;AAC5F,eAAO,MAAM,OAAO,YAAY,CAAC;AAMjC,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,mGAAmG;AACnG,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9D;AAQD,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAKrD;AAKD,iFAAiF;AACjF,wBAAsB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS1F"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** The `console` line `pinecall run` prints: where a person looks at what this process is running. */
|
|
2
|
+
import { asked, Refused } from "./testing/gateway.js";
|
|
3
|
+
// What a gateway answers for a path no router of its declared.
|
|
4
|
+
const NO_SUCH_DOOR = 404;
|
|
5
|
+
/** `where` when the key opens production: the console is the gateway's own page. */
|
|
6
|
+
export const HOSTED = "hosted";
|
|
7
|
+
/** `where` when the key opens the sandbox and no `pinecall serve` is up on this machine. */
|
|
8
|
+
export const NOWHERE = "nowhere";
|
|
9
|
+
// Production's console is the gateway's page at `/a/<agent>`, and it holds a key of its own — never
|
|
10
|
+
// this process's. So this process mints a one-use code standing for its key (five minutes, once)
|
|
11
|
+
// and prints the URL that carries it; the page spends it for a key of the tab's own. A gateway
|
|
12
|
+
// that refuses the code is one line, and the app runs on.
|
|
13
|
+
/** Where the gateway's console of this agent is, with the code that signs the browser in. */
|
|
14
|
+
export function consoleUrl(gateway, slug, code) {
|
|
15
|
+
return `${gateway.replace(/\/$/, "")}/a/${encodeURIComponent(slug)}?login=${encodeURIComponent(code)}`;
|
|
16
|
+
}
|
|
17
|
+
/** Where this machine's console of this agent is: nothing to sign in to, so nothing in the URL. */
|
|
18
|
+
export function localUrl(sidecar, slug) {
|
|
19
|
+
return `${sidecar.replace(/\/$/, "")}/a/${encodeURIComponent(slug)}`;
|
|
20
|
+
}
|
|
21
|
+
// A 404 at this door means the gateway has no such door, which means it is OLDER than this CLI —
|
|
22
|
+
// a long-running dev gateway is the usual way to meet it, since nothing restarts one for you. A
|
|
23
|
+
// status is not a thing a person can act on, so the sentence says the cause and the fix instead.
|
|
24
|
+
const OLDER_GATEWAY = "this gateway has no login-code door, so it is older than this CLI. Restart it: it serves the console too, and that will be stale as well.";
|
|
25
|
+
/** Why the console line has no URL in it, in words that name the next move. */
|
|
26
|
+
export function whyNoConsole(refused) {
|
|
27
|
+
if (refused instanceof Refused) {
|
|
28
|
+
return refused.status === NO_SUCH_DOOR ? OLDER_GATEWAY : `the gateway answered ${refused.status}`;
|
|
29
|
+
}
|
|
30
|
+
return refused instanceof Error ? refused.message : String(refused);
|
|
31
|
+
}
|
|
32
|
+
// The sandbox is watched on this machine and production on the gateway: two consoles, and this
|
|
33
|
+
// line is where a person learns which one is theirs right now. `where` is a sidecar's URL, or
|
|
34
|
+
// HOSTED, or NOWHERE.
|
|
35
|
+
/** The line under `connected`: the console's URL, or the verb that opens one. */
|
|
36
|
+
export async function consoleLine(door, slug, where) {
|
|
37
|
+
if (where === NOWHERE)
|
|
38
|
+
return "console `pinecall serve` opens it on this machine (or `pinecall run --serve`)";
|
|
39
|
+
if (where !== HOSTED)
|
|
40
|
+
return `console ${localUrl(where, slug)}`;
|
|
41
|
+
try {
|
|
42
|
+
const minted = await asked(door, "/v1/login/codes", { method: "POST", body: {} });
|
|
43
|
+
return `console ${consoleUrl(door.url, slug, minted.code)} (opens within five minutes, once)`;
|
|
44
|
+
}
|
|
45
|
+
catch (refused) {
|
|
46
|
+
return `console not available: ${whyNoConsole(refused)}`;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=run-console.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-console.js","sourceRoot":"","sources":["../../src/cli/run-console.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAEtG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAa,MAAM,sBAAsB,CAAC;AAEjE,+DAA+D;AAC/D,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB,oFAAoF;AACpF,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;AAE/B,4FAA4F;AAC5F,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AAEjC,oGAAoG;AACpG,iGAAiG;AACjG,+FAA+F;AAC/F,0DAA0D;AAC1D,6FAA6F;AAC7F,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,IAAY,EAAE,IAAY;IACpE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,UAAU,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;AACzG,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,IAAY;IACpD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;AACvE,CAAC;AAED,iGAAiG;AACjG,gGAAgG;AAChG,iGAAiG;AACjG,MAAM,aAAa,GACjB,2IAA2I,CAAC;AAE9I,+EAA+E;AAC/E,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,wBAAwB,OAAO,CAAC,MAAM,EAAE,CAAC;IACpG,CAAC;IACD,OAAO,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACtE,CAAC;AAED,+FAA+F;AAC/F,8FAA8F;AAC9F,sBAAsB;AACtB,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAU,EAAE,IAAY,EAAE,KAAa;IACvE,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,gFAAgF,CAAC;IAC/G,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,YAAY,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAmB,IAAI,EAAE,iBAAiB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACpG,OAAO,YAAY,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC;IACnG,CAAC;IAAC,OAAO,OAAO,EAAE,CAAC;QACjB,OAAO,2BAA2B,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5D,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-screens.d.ts","sourceRoot":"","sources":["../../src/cli/run-screens.ts"],"names":[],"mappings":"AAAA,oHAAoH;AAEpH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAW/D,0FAA0F;AAC1F,MAAM,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;AAK3E,wBAAsB,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK1E;AAED,iGAAiG;AACjG,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAChC;AAKD,wBAAsB,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBvF;AAeD,iGAAiG;AACjG,wBAAsB,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CA8C5F;AAED,gGAAgG;AAChG,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,IAAI,MAAM,CAAC;CAClB"}
|
|
1
|
+
{"version":3,"file":"run-screens.d.ts","sourceRoot":"","sources":["../../src/cli/run-screens.ts"],"names":[],"mappings":"AAAA,oHAAoH;AAEpH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAW/D,0FAA0F;AAC1F,MAAM,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;AAK3E,wBAAsB,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK1E;AAED,iGAAiG;AACjG,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAChC;AAKD,wBAAsB,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBvF;AAeD,iGAAiG;AACjG,wBAAsB,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CA8C5F;AAED,gGAAgG;AAChG,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,IAAI,MAAM,CAAC;CAClB;AAqBD,wBAAgB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAKvC"}
|
package/dist/cli/run-screens.js
CHANGED
|
@@ -125,7 +125,7 @@ function onKey(handle) {
|
|
|
125
125
|
}
|
|
126
126
|
// The verb ends when the process is signalled, not when a promise settles: it registers an
|
|
127
127
|
// agent and then has nothing left to do but stay reachable.
|
|
128
|
-
function forever() {
|
|
128
|
+
export function forever() {
|
|
129
129
|
return new Promise((done) => {
|
|
130
130
|
process.once("SIGINT", () => done());
|
|
131
131
|
process.once("SIGTERM", () => done());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-screens.js","sourceRoot":"","sources":["../../src/cli/run-screens.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"run-screens.js","sourceRoot":"","sources":["../../src/cli/run-screens.ts"],"names":[],"mappings":"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"}
|