pinecall 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -6
- package/dist/cli/agent-files.d.ts +6 -0
- package/dist/cli/agent-files.d.ts.map +1 -0
- package/dist/cli/agent-files.js +40 -0
- package/dist/cli/agent-files.js.map +1 -0
- package/dist/cli/agent-lines.d.ts +23 -0
- package/dist/cli/agent-lines.d.ts.map +1 -0
- package/dist/cli/agent-lines.js +109 -0
- package/dist/cli/agent-lines.js.map +1 -0
- package/dist/cli/agent-processes.d.ts +13 -0
- package/dist/cli/agent-processes.d.ts.map +1 -0
- package/dist/cli/agent-processes.js +34 -0
- package/dist/cli/agent-processes.js.map +1 -0
- package/dist/cli/agent-versions.d.ts +12 -0
- package/dist/cli/agent-versions.d.ts.map +1 -0
- package/dist/cli/agent-versions.js +70 -0
- package/dist/cli/agent-versions.js.map +1 -0
- package/dist/cli/agent.d.ts +77 -0
- package/dist/cli/agent.d.ts.map +1 -0
- package/dist/cli/agent.js +186 -0
- package/dist/cli/agent.js.map +1 -0
- package/dist/cli/chat.d.ts +2 -2
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +12 -24
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/client-for.d.ts +6 -0
- package/dist/cli/client-for.d.ts.map +1 -0
- package/dist/cli/client-for.js +7 -0
- package/dist/cli/client-for.js.map +1 -0
- package/dist/cli/connected.d.ts +4 -4
- package/dist/cli/connected.d.ts.map +1 -1
- package/dist/cli/connected.js +2 -2
- package/dist/cli/connected.js.map +1 -1
- package/dist/cli/dotenv.d.ts +24 -0
- package/dist/cli/dotenv.d.ts.map +1 -0
- package/dist/cli/dotenv.js +69 -0
- package/dist/cli/dotenv.js.map +1 -0
- package/dist/cli/env.d.ts +21 -37
- package/dist/cli/env.d.ts.map +1 -1
- package/dist/cli/env.js +35 -68
- package/dist/cli/env.js.map +1 -1
- package/dist/cli/eval.d.ts +2 -1
- package/dist/cli/eval.d.ts.map +1 -1
- package/dist/cli/eval.js +5 -4
- package/dist/cli/eval.js.map +1 -1
- package/dist/cli/groups.d.ts.map +1 -1
- package/dist/cli/groups.js +0 -1
- package/dist/cli/groups.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +25 -30
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lexicon.d.ts +14 -0
- package/dist/cli/lexicon.d.ts.map +1 -0
- package/dist/cli/lexicon.js +123 -0
- package/dist/cli/lexicon.js.map +1 -0
- package/dist/cli/line.js +6 -6
- package/dist/cli/line.js.map +1 -1
- package/dist/cli/linking.d.ts +13 -0
- package/dist/cli/linking.d.ts.map +1 -0
- package/dist/cli/linking.js +103 -0
- package/dist/cli/linking.js.map +1 -0
- package/dist/cli/load.js +1 -1
- package/dist/cli/load.js.map +1 -1
- package/dist/cli/login.d.ts +5 -11
- package/dist/cli/login.d.ts.map +1 -1
- package/dist/cli/login.js +31 -140
- package/dist/cli/login.js.map +1 -1
- package/dist/cli/memory-policy.d.ts +9 -0
- package/dist/cli/memory-policy.d.ts.map +1 -0
- package/dist/cli/memory-policy.js +79 -0
- package/dist/cli/memory-policy.js.map +1 -0
- package/dist/cli/memory.d.ts.map +1 -1
- package/dist/cli/memory.js +9 -1
- package/dist/cli/memory.js.map +1 -1
- package/dist/cli/pipeline.d.ts +2 -0
- package/dist/cli/pipeline.d.ts.map +1 -1
- package/dist/cli/pipeline.js +18 -76
- package/dist/cli/pipeline.js.map +1 -1
- package/dist/cli/serve/server.d.ts +1 -1
- package/dist/cli/serve/server.d.ts.map +1 -1
- package/dist/cli/serve/server.js +3 -2
- package/dist/cli/serve/server.js.map +1 -1
- package/dist/cli/serve/sidecar.js +1 -1
- package/dist/cli/serve/sidecar.js.map +1 -1
- package/dist/cli/serve.d.ts +1 -1
- package/dist/cli/serve.d.ts.map +1 -1
- package/dist/cli/serve.js +5 -5
- package/dist/cli/serve.js.map +1 -1
- package/dist/cli/signed-in.d.ts +36 -0
- package/dist/cli/signed-in.d.ts.map +1 -0
- package/dist/cli/signed-in.js +60 -0
- package/dist/cli/signed-in.js.map +1 -0
- package/dist/cli/simulate.d.ts.map +1 -1
- package/dist/cli/simulate.js +7 -6
- package/dist/cli/simulate.js.map +1 -1
- package/dist/cli/{run-console.d.ts → start-console.d.ts} +2 -2
- package/dist/cli/start-console.d.ts.map +1 -0
- package/dist/cli/{run-console.js → start-console.js} +3 -3
- package/dist/cli/start-console.js.map +1 -0
- package/dist/cli/{run-screens.d.ts → start-screens.d.ts} +2 -2
- package/dist/cli/start-screens.d.ts.map +1 -0
- package/dist/cli/{run-screens.js → start-screens.js} +24 -5
- package/dist/cli/start-screens.js.map +1 -0
- package/dist/cli/{run.d.ts → start.d.ts} +3 -3
- package/dist/cli/start.d.ts.map +1 -0
- package/dist/cli/{run.js → start.js} +31 -35
- package/dist/cli/start.js.map +1 -0
- package/dist/cli/supervise.d.ts +1 -1
- package/dist/cli/supervise.d.ts.map +1 -1
- package/dist/cli/supervise.js +1 -1
- package/dist/cli/supervise.js.map +1 -1
- package/dist/cli/testing/gateway.d.ts +3 -0
- package/dist/cli/testing/gateway.d.ts.map +1 -1
- package/dist/cli/testing/gateway.js +2 -4
- package/dist/cli/testing/gateway.js.map +1 -1
- package/dist/cli/tuned.d.ts +8 -0
- package/dist/cli/tuned.d.ts.map +1 -0
- package/dist/cli/tuned.js +66 -0
- package/dist/cli/tuned.js.map +1 -0
- package/dist/cli/ui/chatting.d.ts +1 -1
- package/dist/cli/ui/chatting.d.ts.map +1 -1
- package/dist/cli/ui/chatting.js +11 -10
- package/dist/cli/ui/chatting.js.map +1 -1
- package/dist/cli/ui/console/assets/index-DmN15Axn.css +1 -0
- package/dist/cli/ui/console/assets/index-aGyMCQUH.js +106 -0
- package/dist/cli/ui/console/index.html +2 -2
- package/dist/cli/ui/doors.d.ts +2 -2
- package/dist/cli/ui/doors.d.ts.map +1 -1
- package/dist/cli/ui/doors.js +2 -2
- package/dist/cli/ui/doors.js.map +1 -1
- package/dist/cli/ui/drifting.d.ts +1 -1
- package/dist/cli/ui/drifting.js +1 -1
- package/dist/cli/ui/knowing.d.ts +1 -1
- package/dist/cli/ui/knowing.js +3 -3
- package/dist/cli/ui/knowing.js.map +1 -1
- package/dist/cli/ui/promoting.d.ts +1 -1
- package/dist/cli/ui/promoting.js +1 -1
- package/dist/cli/ui/remembering.d.ts +1 -1
- package/dist/cli/ui/remembering.js +3 -3
- package/dist/cli/ui/remembering.js.map +1 -1
- package/dist/cli/ui/reproducing.d.ts +1 -1
- package/dist/cli/ui/reproducing.js +1 -1
- package/dist/cli/ui/simulating.d.ts +1 -1
- package/dist/cli/ui/simulating.js +4 -4
- package/dist/cli/ui/simulating.js.map +1 -1
- package/dist/cli/ui/testing.d.ts +1 -1
- package/dist/cli/ui/testing.js +3 -3
- package/dist/cli/ui/testing.js.map +1 -1
- package/dist/cli/whoami.d.ts +6 -2
- package/dist/cli/whoami.d.ts.map +1 -1
- package/dist/cli/whoami.js +6 -5
- package/dist/cli/whoami.js.map +1 -1
- package/dist/cli/world.d.ts +14 -24
- package/dist/cli/world.d.ts.map +1 -1
- package/dist/cli/world.js +21 -36
- package/dist/cli/world.js.map +1 -1
- package/dist/client/agent.d.ts +2 -1
- package/dist/client/agent.d.ts.map +1 -1
- package/dist/client/agent.js +3 -2
- package/dist/client/agent.js.map +1 -1
- package/dist/client/client.d.ts +17 -2
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +44 -2
- package/dist/client/client.js.map +1 -1
- package/dist/client/connection.d.ts +3 -0
- package/dist/client/connection.d.ts.map +1 -1
- package/dist/client/connection.js +2 -1
- package/dist/client/connection.js.map +1 -1
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/observe.d.ts +3 -0
- package/dist/client/observe.d.ts.map +1 -1
- package/dist/client/observe.js +2 -1
- package/dist/client/observe.js.map +1 -1
- package/dist/client/signed.d.ts +15 -0
- package/dist/client/signed.d.ts.map +1 -0
- package/dist/client/signed.js +19 -0
- package/dist/client/signed.js.map +1 -0
- package/dist/client/testing/gateway.d.ts +5 -0
- package/dist/client/testing/gateway.d.ts.map +1 -1
- package/dist/client/testing/gateway.js +10 -0
- package/dist/client/testing/gateway.js.map +1 -1
- package/dist/views/render.d.ts +1 -1
- package/dist/views/render.js +1 -1
- package/package.json +2 -2
- package/dist/cli/config.d.ts +0 -16
- package/dist/cli/config.d.ts.map +0 -1
- package/dist/cli/config.js +0 -125
- package/dist/cli/config.js.map +0 -1
- package/dist/cli/credentials.d.ts +0 -41
- package/dist/cli/credentials.d.ts.map +0 -1
- package/dist/cli/credentials.js +0 -98
- package/dist/cli/credentials.js.map +0 -1
- package/dist/cli/gateway.d.ts +0 -12
- package/dist/cli/gateway.d.ts.map +0 -1
- package/dist/cli/gateway.js +0 -67
- package/dist/cli/gateway.js.map +0 -1
- package/dist/cli/keys.d.ts +0 -28
- package/dist/cli/keys.d.ts.map +0 -1
- package/dist/cli/keys.js +0 -137
- package/dist/cli/keys.js.map +0 -1
- package/dist/cli/profiles.d.ts +0 -122
- package/dist/cli/profiles.d.ts.map +0 -1
- package/dist/cli/profiles.js +0 -312
- package/dist/cli/profiles.js.map +0 -1
- package/dist/cli/run-console.d.ts.map +0 -1
- package/dist/cli/run-console.js.map +0 -1
- package/dist/cli/run-screens.d.ts.map +0 -1
- package/dist/cli/run-screens.js.map +0 -1
- package/dist/cli/run.d.ts.map +0 -1
- package/dist/cli/run.js.map +0 -1
- package/dist/cli/ui/console/assets/index-DhcpHPdk.js +0 -102
- package/dist/cli/ui/console/assets/index-iylvEP0_.css +0 -1
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/** `pinecall lexicon`: the org's words — how the voice says them, what the ears must know — versioned. */
|
|
2
|
+
import { parseArgs } from "node:util";
|
|
3
|
+
import { theDoor } from "./env.js";
|
|
4
|
+
import { dayAndTime } from "./knowledge.js";
|
|
5
|
+
import { asked } from "./testing/gateway.js";
|
|
6
|
+
import { refusal } from "./whoami.js";
|
|
7
|
+
const USAGE = [
|
|
8
|
+
"usage: pinecall lexicon [--json]",
|
|
9
|
+
" pinecall lexicon add <word> --say '…' [--team] [--note '…']",
|
|
10
|
+
" pinecall lexicon hear <word> [<word> …] [--team] [--note '…']",
|
|
11
|
+
" pinecall lexicon rm <word> [<word> …] [--team]",
|
|
12
|
+
" pinecall lexicon history [--team]",
|
|
13
|
+
].join("\n");
|
|
14
|
+
const LEXICON = "/v1/lexicon";
|
|
15
|
+
export const group = {
|
|
16
|
+
purpose: "the org's words: how the voice says them and what the ears must know, shared by every agent",
|
|
17
|
+
usage: `${USAGE}
|
|
18
|
+
|
|
19
|
+
The lexicon is the org's and not one agent's: a brand, a surname, an acronym is the same word
|
|
20
|
+
whichever agent says it, and it is laid over every agent's own says and hears — the org's word
|
|
21
|
+
wins where both say the same one. add says how a word is spoken; hear names the words the ears
|
|
22
|
+
must know; rm takes words out of both. Whole and versioned like the settings: the corner is
|
|
23
|
+
yours (--team: the org's own), and a save over a corner that moved is told so.
|
|
24
|
+
|
|
25
|
+
A supervisor's or a manager's key opens this door: the person who hears a word said wrong forty
|
|
26
|
+
times a day fixes it, without a developer and without a deploy — with --prod, in production,
|
|
27
|
+
when their org lets them act there.`,
|
|
28
|
+
run,
|
|
29
|
+
};
|
|
30
|
+
export async function run(argv, how = {}) {
|
|
31
|
+
const out = how.out ?? process.stdout;
|
|
32
|
+
const err = how.err ?? process.stderr;
|
|
33
|
+
const { values, positionals } = parseArgs({
|
|
34
|
+
args: argv,
|
|
35
|
+
allowPositionals: true,
|
|
36
|
+
options: {
|
|
37
|
+
json: { type: "boolean", default: false },
|
|
38
|
+
team: { type: "boolean", default: false },
|
|
39
|
+
say: { type: "string" },
|
|
40
|
+
note: { type: "string" },
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
const door = theDoor(how.env ?? process.env, err);
|
|
44
|
+
if (door === undefined)
|
|
45
|
+
return 2;
|
|
46
|
+
const [verb, ...words] = positionals;
|
|
47
|
+
const team = values.team === true;
|
|
48
|
+
try {
|
|
49
|
+
if (verb === undefined)
|
|
50
|
+
return said(await asked(door, LEXICON), values.json === true, out);
|
|
51
|
+
if (verb === "add" && words[0] !== undefined && values.say !== undefined) {
|
|
52
|
+
return said(await changed(door, team, values.note, (words_) => ({ ...words_, said: { ...words_.said, [words[0]]: values.say } })), values.json === true, out);
|
|
53
|
+
}
|
|
54
|
+
if (verb === "hear" && words.length > 0) {
|
|
55
|
+
return said(await changed(door, team, values.note, (words_) => ({ ...words_, heard: [...new Set([...words_.heard, ...words])] })), values.json === true, out);
|
|
56
|
+
}
|
|
57
|
+
if (verb === "rm" && words.length > 0) {
|
|
58
|
+
return said(await changed(door, team, values.note, (words_) => ({
|
|
59
|
+
said: Object.fromEntries(Object.entries(words_.said).filter(([word]) => !words.includes(word))),
|
|
60
|
+
heard: words_.heard.filter((word) => !words.includes(word)),
|
|
61
|
+
})), values.json === true, out);
|
|
62
|
+
}
|
|
63
|
+
if (verb === "history")
|
|
64
|
+
return await history(door, team, out);
|
|
65
|
+
}
|
|
66
|
+
catch (refused) {
|
|
67
|
+
err.write(`${refusal(refused)}\n`);
|
|
68
|
+
return 1;
|
|
69
|
+
}
|
|
70
|
+
err.write(`${USAGE}\n`);
|
|
71
|
+
return 2;
|
|
72
|
+
}
|
|
73
|
+
function wordsOf(body) {
|
|
74
|
+
return { said: Object.fromEntries((body?.said ?? []).map((one) => [one.word, one.spoken])), heard: [...(body?.heard ?? [])] };
|
|
75
|
+
}
|
|
76
|
+
function bodyOf(words) {
|
|
77
|
+
return { said: Object.entries(words.said).map(([word, spoken]) => ({ word, spoken })), heard: words.heard };
|
|
78
|
+
}
|
|
79
|
+
// Read the corner's own row, change it, and send it whole with the version it was read at.
|
|
80
|
+
async function changed(door, team, note, change) {
|
|
81
|
+
const standing = await asked(door, LEXICON);
|
|
82
|
+
const row = team ? standing.team : (standing.yours ?? standing.team);
|
|
83
|
+
return await asked(door, LEXICON, {
|
|
84
|
+
method: "PUT",
|
|
85
|
+
body: { lexicon: bodyOf(change(wordsOf(row?.lexicon))), if_version: team ? (standing.team?.version ?? null) : (standing.yours?.version ?? null), note: note ?? null, team },
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
async function history(door, team, out) {
|
|
89
|
+
const kept = await asked(door, `${LEXICON}/history?team=${team}`);
|
|
90
|
+
out.write(`lexicon · ${kept.world} · ${kept.holder === "" ? "the org's own corner" : `corner ${kept.holder}`}\n`);
|
|
91
|
+
if (kept.rows.length === 0)
|
|
92
|
+
out.write(" nothing set yet\n");
|
|
93
|
+
for (const row of kept.rows)
|
|
94
|
+
out.write(` ${rowLine(row)} said ${row.lexicon.said.length} · heard ${row.lexicon.heard.length}\n`);
|
|
95
|
+
return 0;
|
|
96
|
+
}
|
|
97
|
+
function rowLine(row) {
|
|
98
|
+
const said = [`v${row.version}`, row.author, dayAndTime(row.set_at)];
|
|
99
|
+
if (row.note !== null)
|
|
100
|
+
said.push(`"${row.note}"`);
|
|
101
|
+
return said.join(" · ");
|
|
102
|
+
}
|
|
103
|
+
function said(answer, asJson, out) {
|
|
104
|
+
out.write(asJson ? `${JSON.stringify(answer)}\n` : `${linesOf(answer).join("\n")}\n`);
|
|
105
|
+
return 0;
|
|
106
|
+
}
|
|
107
|
+
/** The page: what the corner reads, then which version each corner is at. */
|
|
108
|
+
export function linesOf(answer) {
|
|
109
|
+
const read = answer.yours ?? answer.team;
|
|
110
|
+
const lines = [`lexicon · ${answer.world}${answer.yours === null ? "" : " · your corner"}`];
|
|
111
|
+
if (read === null)
|
|
112
|
+
lines.push(" nothing set: every agent says its own words");
|
|
113
|
+
else {
|
|
114
|
+
const spoken = read.lexicon.said.map((one) => `${one.word} → "${one.spoken}"`).join(" · ");
|
|
115
|
+
lines.push(` said ${spoken || "—"}`);
|
|
116
|
+
lines.push(` heard ${read.lexicon.heard.join(" · ") || "—"}`);
|
|
117
|
+
}
|
|
118
|
+
lines.push("");
|
|
119
|
+
const corners = [["yours", answer.yours], ["team", answer.team], ["production", answer.production]];
|
|
120
|
+
lines.push(` ${corners.map(([name, row]) => `${name}: ${row === null ? "nothing set" : rowLine(row)}`).join(" · ")}`);
|
|
121
|
+
return lines;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=lexicon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lexicon.js","sourceRoot":"","sources":["../../src/cli/lexicon.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/line.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** `pinecall line`: whose terminal a call at this agent's number rings in, and the claim that takes it. */
|
|
2
|
-
import {
|
|
2
|
+
import { keepCalling } from "./signed-in.js";
|
|
3
3
|
import { theDoor } from "./env.js";
|
|
4
4
|
import { load } from "./load.js";
|
|
5
5
|
import { oneHome } from "./home.js";
|
|
@@ -9,7 +9,7 @@ const USAGE = "usage: pinecall line [from <+number> | forget | claim | release]
|
|
|
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
|
-
// claims anything — the first `pinecall
|
|
12
|
+
// claims anything — the first `pinecall start` takes it. See the runtime's docs/protocol/gateway-api.md.
|
|
13
13
|
export const group = {
|
|
14
14
|
purpose: "which phone is yours, and whose terminal anybody else's call rings in",
|
|
15
15
|
usage: `${USAGE}
|
|
@@ -21,7 +21,7 @@ export const group = {
|
|
|
21
21
|
reaches your own agent — on the number your customers call, in production, as much as on a
|
|
22
22
|
sandbox one: while you are running the agent your phone reaches your copy, and everybody else
|
|
23
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
|
|
24
|
+
remembered for this gateway and re-sent by every \`pinecall start\`, each time it connects.
|
|
25
25
|
\`forget\` undoes it.
|
|
26
26
|
|
|
27
27
|
\`claim\` and \`release\` are the fallback, for a call from a number nobody said was theirs — a
|
|
@@ -47,13 +47,13 @@ export async function run(argv, out = process.stdout) {
|
|
|
47
47
|
return 2;
|
|
48
48
|
}
|
|
49
49
|
const said = await callsFrom(door, number);
|
|
50
|
-
|
|
50
|
+
keepCalling(door.url, number);
|
|
51
51
|
out.write(`${calling(said.calling)}\n`);
|
|
52
52
|
return 0;
|
|
53
53
|
}
|
|
54
54
|
if (verb === "forget") {
|
|
55
55
|
const said = await forgetCallsFrom(door);
|
|
56
|
-
|
|
56
|
+
keepCalling(door.url, undefined);
|
|
57
57
|
out.write(`${forgotten(said.forgot)}\n`);
|
|
58
58
|
return 0;
|
|
59
59
|
}
|
|
@@ -118,7 +118,7 @@ const FROM = "/v1/line/from";
|
|
|
118
118
|
*/
|
|
119
119
|
export function describing(said) {
|
|
120
120
|
if (!said.held)
|
|
121
|
-
return `nobody is answering ${said.agent}:
|
|
121
|
+
return `nobody is answering ${said.agent}: run \`pinecall start\``;
|
|
122
122
|
// Yours by number beats yours by line, and is said first: it is the one that needs no upkeep.
|
|
123
123
|
const mine = said.calling.length > 0 ? `your calls from ${said.calling.join(", ")}` : undefined;
|
|
124
124
|
if (said.yours) {
|
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,
|
|
1
|
+
{"version":3,"file":"line.js","sourceRoot":"","sources":["../../src/cli/line.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAI3G,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,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,yGAAyG;AACzG,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,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9B,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,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACjC,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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** `pinecall link`: this project's folder tied to one of your orgs — your key for it, written to its `.env`. */
|
|
2
|
+
import type { Group } from "./groups.js";
|
|
3
|
+
import { type Signing } from "./login.js";
|
|
4
|
+
export declare const group: Group;
|
|
5
|
+
/** What link can be told besides the argv. Tests only: where it writes, and how it asks. */
|
|
6
|
+
export interface Linking extends Signing {
|
|
7
|
+
from?: string;
|
|
8
|
+
/** Which of these orgs, when there are several and nobody said. A test answers instead of a person. */
|
|
9
|
+
choose?: (slugs: string[]) => Promise<string | undefined>;
|
|
10
|
+
}
|
|
11
|
+
/** Sign in if needed, pick the org, mint the key there, and write it into the project's `.env`. */
|
|
12
|
+
export declare function link(argv: string[], how?: Linking): Promise<number>;
|
|
13
|
+
//# sourceMappingURL=linking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linking.d.ts","sourceRoot":"","sources":["../../src/cli/linking.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAQhH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAO3D,eAAO,MAAM,KAAK,EAAE,KAgBnB,CAAC;AAWF,4FAA4F;AAC5F,MAAM,WAAW,OAAQ,SAAQ,OAAO;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uGAAuG;IACvG,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC3D;AAED,mGAAmG;AACnG,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA2C7E"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/** `pinecall link`: this project's folder tied to one of your orgs — your key for it, written to its `.env`. */
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { createInterface } from "node:readline/promises";
|
|
4
|
+
import { parseArgs } from "node:util";
|
|
5
|
+
import { DOTENV, ignoredByGit, writeDotenv } from "./dotenv.js";
|
|
6
|
+
import { CLOUD_URL, KEY_VARIABLE, URL_VARIABLE } from "./env.js";
|
|
7
|
+
import { signedInThrough } from "./login.js";
|
|
8
|
+
import { pinecallHome, signedIn } from "./signed-in.js";
|
|
9
|
+
import { asked } from "./testing/gateway.js";
|
|
10
|
+
import { refusal } from "./whoami.js";
|
|
11
|
+
const USAGE = "usage: pinecall link [--org <slug>] [--gateway <url>]";
|
|
12
|
+
export const group = {
|
|
13
|
+
purpose: "this project's folder to one of your orgs: your key, in its .env",
|
|
14
|
+
usage: `${USAGE}
|
|
15
|
+
|
|
16
|
+
Run in the project's folder. Signs this machine in through a browser when it is not, asks
|
|
17
|
+
which of your orgs this project is — --org names it — and writes your key for that org into
|
|
18
|
+
./.env as PINECALL_KEY (and PINECALL_URL when the gateway is not ${CLOUD_URL}). Every verb run
|
|
19
|
+
in this folder, or under it, reads it from there: a project of another org is another folder
|
|
20
|
+
with its own .env, and nothing is ever switched.
|
|
21
|
+
|
|
22
|
+
The key is yours: your role decides what it may do, and --prod reaches production while your
|
|
23
|
+
org lets you act there. A server does not link: a server's token from Tokens, in its secrets.
|
|
24
|
+
|
|
25
|
+
--org <slug> which org, when you belong to several and do not want to be asked
|
|
26
|
+
--gateway <url> another gateway than the one this machine last signed in to`,
|
|
27
|
+
run: link,
|
|
28
|
+
};
|
|
29
|
+
/** Sign in if needed, pick the org, mint the key there, and write it into the project's `.env`. */
|
|
30
|
+
export async function link(argv, how = {}) {
|
|
31
|
+
const out = how.out ?? process.stdout;
|
|
32
|
+
const err = how.err ?? process.stderr;
|
|
33
|
+
const { values } = parseArgs({
|
|
34
|
+
args: argv,
|
|
35
|
+
options: { org: { type: "string" }, gateway: { type: "string" } },
|
|
36
|
+
});
|
|
37
|
+
const home = pinecallHome(how.env ?? process.env);
|
|
38
|
+
const session = signedIn(values.gateway, home);
|
|
39
|
+
const url = session?.url ?? values.gateway ?? CLOUD_URL;
|
|
40
|
+
const key = session?.key ?? (await signedInThrough(url, how, out, err));
|
|
41
|
+
if (key === null)
|
|
42
|
+
return 1;
|
|
43
|
+
const door = { url, apiKey: key };
|
|
44
|
+
let orgs;
|
|
45
|
+
try {
|
|
46
|
+
orgs = (await asked(door, "/v1/login/orgs")).orgs.filter((org) => org.member !== false);
|
|
47
|
+
}
|
|
48
|
+
catch (refused) {
|
|
49
|
+
err.write(`${refusal(refused)}\n`);
|
|
50
|
+
return 1;
|
|
51
|
+
}
|
|
52
|
+
const chosen = await theOrg(orgs, values.org, how);
|
|
53
|
+
if (chosen === undefined) {
|
|
54
|
+
const slugs = orgs.map(slugOf);
|
|
55
|
+
err.write(`${values.org === undefined ? "which org is this project?" : `you are no member of ${values.org}:`} --org ${slugs.join(" | ")}\n`);
|
|
56
|
+
return 2;
|
|
57
|
+
}
|
|
58
|
+
let theirs;
|
|
59
|
+
try {
|
|
60
|
+
theirs = chosen.here ? key : (await asked(door, "/v1/login/org", { method: "POST", body: { org: chosen.org } })).key;
|
|
61
|
+
}
|
|
62
|
+
catch (refused) {
|
|
63
|
+
err.write(`${refusal(refused)}\n`);
|
|
64
|
+
return 1;
|
|
65
|
+
}
|
|
66
|
+
const file = join(how.from ?? process.cwd(), DOTENV);
|
|
67
|
+
const written = { [KEY_VARIABLE]: theirs };
|
|
68
|
+
if (url !== CLOUD_URL)
|
|
69
|
+
written[URL_VARIABLE] = url;
|
|
70
|
+
writeDotenv(file, written);
|
|
71
|
+
out.write(`▸ ${slugOf(chosen)} · ${Object.keys(written).join(" and ")} written to ${DOTENV}\n`);
|
|
72
|
+
// A key committed is a key published: said every time, until the project's .gitignore says so.
|
|
73
|
+
if (!ignoredByGit(file))
|
|
74
|
+
err.write(`git would commit ${DOTENV}: add it to .gitignore before a commit carries your key\n`);
|
|
75
|
+
return 0;
|
|
76
|
+
}
|
|
77
|
+
/** The org named, the only one there is, or the one the person picks; undefined when none fits. */
|
|
78
|
+
async function theOrg(orgs, named, how) {
|
|
79
|
+
if (named !== undefined)
|
|
80
|
+
return orgs.find((org) => org.slug === named || org.org === named);
|
|
81
|
+
if (orgs.length <= 1)
|
|
82
|
+
return orgs[0];
|
|
83
|
+
const picked = await (how.choose ?? askTheTerminal)(orgs.map(slugOf));
|
|
84
|
+
return orgs.find((org) => slugOf(org) === picked);
|
|
85
|
+
}
|
|
86
|
+
/** A numbered list on a terminal; nothing picked when there is no terminal to ask. */
|
|
87
|
+
async function askTheTerminal(slugs) {
|
|
88
|
+
if (process.stdin.isTTY !== true)
|
|
89
|
+
return undefined;
|
|
90
|
+
const asking = createInterface({ input: process.stdin, output: process.stdout });
|
|
91
|
+
try {
|
|
92
|
+
slugs.forEach((slug, at) => process.stdout.write(` ${at + 1}. ${slug}\n`));
|
|
93
|
+
const answer = (await asking.question("which org is this project? ")).trim();
|
|
94
|
+
return slugs[Number(answer) - 1] ?? slugs.find((slug) => slug === answer);
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
asking.close();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function slugOf(org) {
|
|
101
|
+
return org.slug ?? org.org;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=linking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linking.js","sourceRoot":"","sources":["../../src/cli/linking.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/load.js
CHANGED
|
@@ -15,7 +15,7 @@ import { groundingOf } from "../runtime/grounding.js";
|
|
|
15
15
|
export const DEFAULT_AGENTS = ["agent.tsx", "agent.ts"];
|
|
16
16
|
let registered = false;
|
|
17
17
|
/** Register tsx, once per process: the tenant writes .ts and .tsx and never a build step. */
|
|
18
|
-
// `pinecall
|
|
18
|
+
// `pinecall start` on a fresh clone must work with `pnpm i` and nothing else. Registering is done
|
|
19
19
|
// once per process and only when a tenant's file is actually loaded, so `pinecall <planned group>`
|
|
20
20
|
// pays nothing for it. Exported because a persona is a tenant's .ts file too — cli/testing/caller.ts.
|
|
21
21
|
export async function useTypeScript() {
|
package/dist/cli/load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/cli/load.ts"],"names":[],"mappings":"AAAA,wGAAwG;AAExG,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAqB,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAStD;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,UAAU,CAAU,CAAC;AAEjE,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,6FAA6F;AAC7F,
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/cli/load.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/login.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** `pinecall login [gateway]`: signed in through a browser,
|
|
1
|
+
/** `pinecall login [gateway]`: this machine signed in through a browser, as a person, for `link` to mint from. */
|
|
2
2
|
import type { Group } from "./groups.js";
|
|
3
3
|
export declare const group: Group;
|
|
4
4
|
/** What login can be told besides the argv. Tests only: where to print, and how time passes. */
|
|
@@ -12,19 +12,13 @@ export interface Signing {
|
|
|
12
12
|
every?: number;
|
|
13
13
|
until?: number;
|
|
14
14
|
}
|
|
15
|
-
/** Sign in through a browser
|
|
15
|
+
/** Sign this machine in through a browser; the key is proved before it is kept. */
|
|
16
16
|
export declare function login(argv: string[], how?: Signing): Promise<number>;
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* A URL nobody typed is the cloud's, and that is said OUT LOUD before anything is kept: a person
|
|
21
|
-
* who meant their own box has to be able to see that this one was assumed, in the line above the
|
|
22
|
-
* link, rather than discovering it in `pinecall whoami` tomorrow.
|
|
18
|
+
* The browser's dance, the key proved, and this machine signed in: what `login` is and what
|
|
19
|
+
* `link` does first on a machine that never signed in. The key, or null once the refusal was said.
|
|
23
20
|
*/
|
|
24
|
-
export declare function
|
|
25
|
-
url: string;
|
|
26
|
-
assumed?: string;
|
|
27
|
-
};
|
|
21
|
+
export declare function signedInThrough(url: string, how: Signing, out: NodeJS.WritableStream, err: NodeJS.WritableStream): Promise<string | null>;
|
|
28
22
|
/** Where the person signs this terminal in: the gateway's own page, carrying the word. */
|
|
29
23
|
export declare function signingIn(gateway: string, code: string): string;
|
|
30
24
|
//# sourceMappingURL=login.d.ts.map
|
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,
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/cli/login.ts"],"names":[],"mappings":"AAAA,kHAAkH;AAOlH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAczC,eAAO,MAAM,KAAK,EAAE,KAgBnB,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,mFAAmF;AACnF,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAO9E;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,MAAM,CAAC,cAAc,EAC1B,GAAG,EAAE,MAAM,CAAC,cAAc,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAexB;AAgCD,0FAA0F;AAC1F,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/D"}
|