pinecall 0.5.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/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.d.ts +1 -1
- package/dist/cli/agent.d.ts.map +1 -1
- package/dist/cli/agent.js +11 -17
- package/dist/cli/agent.js.map +1 -1
- package/dist/cli/start-screens.d.ts.map +1 -1
- package/dist/cli/start-screens.js +21 -2
- package/dist/cli/start-screens.js.map +1 -1
- package/dist/cli/ui/console/assets/index-aGyMCQUH.js +106 -0
- package/dist/cli/ui/console/index.html +1 -1
- package/dist/client/agent.d.ts +1 -0
- package/dist/client/agent.d.ts.map +1 -1
- package/dist/client/agent.js +1 -0
- package/dist/client/agent.js.map +1 -1
- package/dist/client/client.d.ts +8 -1
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +39 -0
- package/dist/client/client.js.map +1 -1
- 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/package.json +2 -2
- package/dist/cli/ui/console/assets/index--8qx-Pi4.js +0 -106
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** `pinecall agent list` and `agent stop`: which processes hold the org's agents, where they run, and stopping one. */
|
|
2
|
+
import type { AppProcess } from "@pinecall/protocol";
|
|
3
|
+
import { type Door } from "./testing/gateway.js";
|
|
4
|
+
/** Every app connected in the key's world: one line each, the agents it holds and where it runs. */
|
|
5
|
+
export declare function listed(door: Door, out: NodeJS.WritableStream): Promise<number>;
|
|
6
|
+
/**
|
|
7
|
+
* One app stopped: its socket is closed with the stop code, and a pinecall that hears it exits
|
|
8
|
+
* instead of dialling back. A supervisor that restarts whatever exits starts it again.
|
|
9
|
+
*/
|
|
10
|
+
export declare function stopped(door: Door, app: string | undefined, out: NodeJS.WritableStream, err: NodeJS.WritableStream): Promise<number>;
|
|
11
|
+
/** The line: which app, its agents, whose corner, the machine and address, the SDK, since when. */
|
|
12
|
+
export declare function lineOf(app: AppProcess): string;
|
|
13
|
+
//# sourceMappingURL=agent-processes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-processes.d.ts","sourceRoot":"","sources":["../../src/cli/agent-processes.ts"],"names":[],"mappings":"AAAA,uHAAuH;AAEvH,OAAO,KAAK,EAAW,UAAU,EAAc,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAS,KAAK,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAExD,oGAAoG;AACpG,wBAAsB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAQpF;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ1I;AAED,mGAAmG;AACnG,wBAAgB,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAK9C"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** `pinecall agent list` and `agent stop`: which processes hold the org's agents, where they run, and stopping one. */
|
|
2
|
+
import { asked } from "./testing/gateway.js";
|
|
3
|
+
/** Every app connected in the key's world: one line each, the agents it holds and where it runs. */
|
|
4
|
+
export async function listed(door, out) {
|
|
5
|
+
const { apps } = await asked(door, "/v1/apps");
|
|
6
|
+
if (apps.length === 0) {
|
|
7
|
+
out.write("no app is connected here: `pinecall start` holds a project's agents\n");
|
|
8
|
+
return 0;
|
|
9
|
+
}
|
|
10
|
+
for (const app of apps)
|
|
11
|
+
out.write(`${lineOf(app)}\n`);
|
|
12
|
+
return 0;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* One app stopped: its socket is closed with the stop code, and a pinecall that hears it exits
|
|
16
|
+
* instead of dialling back. A supervisor that restarts whatever exits starts it again.
|
|
17
|
+
*/
|
|
18
|
+
export async function stopped(door, app, out, err) {
|
|
19
|
+
if (app === undefined) {
|
|
20
|
+
err.write("usage: pinecall agent stop <app> — the app is the first column of `pinecall agent list`\n");
|
|
21
|
+
return 2;
|
|
22
|
+
}
|
|
23
|
+
const answer = await asked(door, `/v1/apps/${encodeURIComponent(app)}/stop`, { method: "POST" });
|
|
24
|
+
out.write(`stopped ${answer.app}: its agents are free — a supervisor that restarts it (systemd, pm2) starts it again\n`);
|
|
25
|
+
return 0;
|
|
26
|
+
}
|
|
27
|
+
/** The line: which app, its agents, whose corner, the machine and address, the SDK, since when. */
|
|
28
|
+
export function lineOf(app) {
|
|
29
|
+
const whose = app.holder === null ? "the org's" : (app.holder.name ?? app.holder.holder ?? "");
|
|
30
|
+
const where = `${app.host ?? "an unnamed host"}${app.address === null ? "" : ` (${app.address})`}`;
|
|
31
|
+
const since = new Date(app.connected_at * 1000).toISOString().slice(0, 16).replace("T", " ");
|
|
32
|
+
return `${app.app} ${app.agents.join(", ") || "no agent yet"} ${whose} · ${where} · ${app.sdk ?? "an unknown sdk"} · since ${since}`;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=agent-processes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-processes.js","sourceRoot":"","sources":["../../src/cli/agent-processes.ts"],"names":[],"mappings":"AAAA,uHAAuH;AAIvH,OAAO,EAAE,KAAK,EAAa,MAAM,sBAAsB,CAAC;AAExD,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAU,EAAE,GAA0B;IACjE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAU,IAAI,EAAE,UAAU,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACnF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAU,EAAE,GAAuB,EAAE,GAA0B,EAAE,GAA0B;IACvH,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;QACvG,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAa,IAAI,EAAE,YAAY,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7G,GAAG,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,GAAG,wFAAwF,CAAC,CAAC;IACzH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,MAAM,CAAC,GAAe;IACpC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,iBAAiB,GAAG,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;IACnG,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7F,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,KAAK,KAAK,MAAM,KAAK,MAAM,GAAG,CAAC,GAAG,IAAI,gBAAgB,YAAY,KAAK,EAAE,CAAC;AACzI,CAAC"}
|
package/dist/cli/agent.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** `pinecall agent`: what the org set over the class — yours, the team's, production's — and
|
|
1
|
+
/** `pinecall agent`: what the org set over the class — yours, the team's, production's — setting it, and the processes that hold it. */
|
|
2
2
|
import { parseArgs } from "node:util";
|
|
3
3
|
import type { TuningBody } from "@pinecall/protocol";
|
|
4
4
|
import type { Group } from "./groups.js";
|
package/dist/cli/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/cli/agent.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/cli/agent.ts"],"names":[],"mappings":"AAAA,wIAAwI;AAExI,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAgBzC,eAAO,MAAM,KAAK,EAAE,KA8BnB,CAAC;AAEF,qGAAqG;AACrG,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;CACzB;AAED,oGAAoG;AACpG,eAAO,MAAM,OAAO;aAClB,KAAK;iBAAI,IAAI,EAAE,QAAQ;;aACvB,IAAI;iBAAI,IAAI,EAAE,SAAS;iBAAE,OAAO;;aAChC,IAAI;iBAAI,IAAI,EAAE,SAAS;iBAAE,OAAO;;aAChC,IAAI;iBAAI,IAAI,EAAE,QAAQ;;aACtB,KAAK;iBAAI,IAAI,EAAE,QAAQ;;aACvB,GAAG;iBAAI,IAAI,EAAE,QAAQ;;aACrB,WAAW;iBAAI,IAAI,EAAE,QAAQ;;aAC7B,GAAG;iBAAI,IAAI,EAAE,QAAQ;;aACrB,GAAG;iBAAI,IAAI,EAAE,QAAQ;;aACrB,QAAQ;iBAAI,IAAI,EAAE,QAAQ;;aAC1B,KAAK;iBAAI,IAAI,EAAE,QAAQ;;aACvB,MAAM;iBAAI,IAAI,EAAE,QAAQ;;aACxB,gBAAgB;iBAAI,IAAI,EAAE,QAAQ;;aAClC,wBAAwB;iBAAI,IAAI,EAAE,QAAQ;;aAC1C,QAAQ;iBAAI,IAAI,EAAE,QAAQ;iBAAE,QAAQ;;aACpC,MAAM;iBAAI,IAAI,EAAE,QAAQ;iBAAE,QAAQ;;aAClC,OAAO;iBAAI,IAAI,EAAE,QAAQ;;CACjB,CAAC;AAEX,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC;IAAE,OAAO,EAAE,OAAO,OAAO,CAAC;IAAC,gBAAgB,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAEhH,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAmC5E;AA8BD,mGAAmG;AACnG,wBAAgB,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAuB9E"}
|
package/dist/cli/agent.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
/** `pinecall agent`: what the org set over the class — yours, the team's, production's — and
|
|
1
|
+
/** `pinecall agent`: what the org set over the class — yours, the team's, production's — setting it, and the processes that hold it. */
|
|
2
2
|
import { parseArgs } from "node:util";
|
|
3
3
|
import { FIELDS, linesOf, readSettings, settingsPath, WIRE } from "./agent-lines.js";
|
|
4
4
|
import { filesRun } from "./agent-files.js";
|
|
5
|
+
import { listed, stopped } from "./agent-processes.js";
|
|
5
6
|
import { versionsRun } from "./agent-versions.js";
|
|
6
7
|
import { theDoor } from "./env.js";
|
|
7
8
|
import { agentOfThisDirectory, notASlug } from "./load.js";
|
|
@@ -9,7 +10,7 @@ import { asked } from "./testing/gateway.js";
|
|
|
9
10
|
import { refusal } from "./whoami.js";
|
|
10
11
|
const USAGE = [
|
|
11
12
|
"usage: pinecall agent [--agent <slug>] [--json]",
|
|
12
|
-
" pinecall agent list",
|
|
13
|
+
" pinecall agent list · stop <app>",
|
|
13
14
|
" pinecall agent set [--voice x] [--tts x] [--tts-model x] [--stt x] [--llm x] [--greeting '…' | --reply '…']",
|
|
14
15
|
" [--hangup '…'] [--endpointing-ms n] [--min-interruption-words n]",
|
|
15
16
|
" [--remember '…' …] [--forget '…' …] [--team] [--note '…']",
|
|
@@ -18,7 +19,7 @@ const USAGE = [
|
|
|
18
19
|
" pinecall agent pull [--team] · push <file> [--team]",
|
|
19
20
|
].join("\n");
|
|
20
21
|
export const group = {
|
|
21
|
-
purpose: "what the org set over the class — yours, the team's, production's — and
|
|
22
|
+
purpose: "what the org set over the class — yours, the team's, production's — setting it, and the processes that hold it",
|
|
22
23
|
usage: `${USAGE}
|
|
23
24
|
|
|
24
25
|
With nothing after it: the agent's settings as your key sees them, three corners side by side —
|
|
@@ -42,7 +43,10 @@ export const group = {
|
|
|
42
43
|
pull prints the corner's config as JSON; push sends a file as the next version, --team to the
|
|
43
44
|
team's corner.
|
|
44
45
|
|
|
45
|
-
list prints
|
|
46
|
+
list prints every process holding this org's agents in the world asked — one line an app: its id,
|
|
47
|
+
the agents it holds, whose corner, the machine and the address it connected from, the SDK, and
|
|
48
|
+
since when. stop <app> closes that app's socket; a pinecall that hears it exits instead of
|
|
49
|
+
dialling back, so its agents are free — though a supervisor (systemd, pm2) starts it again.`,
|
|
46
50
|
run,
|
|
47
51
|
};
|
|
48
52
|
/** Every flag the sub-verbs take, declared once: parseArgs is strict, and one table is one seam. */
|
|
@@ -75,7 +79,9 @@ export async function run(argv, how = {}) {
|
|
|
75
79
|
const [verb, ...rest] = positionals;
|
|
76
80
|
try {
|
|
77
81
|
if (verb === "list")
|
|
78
|
-
return await
|
|
82
|
+
return await listed(door, out);
|
|
83
|
+
if (verb === "stop")
|
|
84
|
+
return await stopped(door, rest[0], out, err);
|
|
79
85
|
const aFile = notASlug(values.agent);
|
|
80
86
|
if (aFile !== undefined) {
|
|
81
87
|
err.write(`${aFile}\n`);
|
|
@@ -108,18 +114,6 @@ export async function run(argv, how = {}) {
|
|
|
108
114
|
return 2;
|
|
109
115
|
}
|
|
110
116
|
// ── the verbs ───────────────────────────────────────────────────────────────────
|
|
111
|
-
async function list(door, out) {
|
|
112
|
-
const held = await asked(door, "/v1/agents");
|
|
113
|
-
if (held.agents.length === 0) {
|
|
114
|
-
out.write("no agent is held here: `pinecall start` holds one\n");
|
|
115
|
-
return 0;
|
|
116
|
-
}
|
|
117
|
-
for (const one of held.agents) {
|
|
118
|
-
const whose = one.holder === null || one.holder === undefined ? "the org's own" : (one.holder.name ?? one.holder.holder ?? "");
|
|
119
|
-
out.write(`${one.slug} ${one.channels.join(", ") || "no doors"} ${whose}\n`);
|
|
120
|
-
}
|
|
121
|
-
return 0;
|
|
122
|
-
}
|
|
123
117
|
// The door takes the WHOLE set with the version it was read at, so what this command line did
|
|
124
118
|
// not name is read back off the corner's own row and sent again: `set --llm x` must not quietly
|
|
125
119
|
// take the voice out of the row. The corner written is yours, or the team's with --team.
|
package/dist/cli/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/cli/agent.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/cli/agent.ts"],"names":[],"mappings":"AAAA,wIAAwI;AAExI,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAc,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAa,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,KAAK,GAAG;IACZ,iDAAiD;IACjD,yCAAyC;IACzC,oHAAoH;IACpH,4FAA4F;IAC5F,qFAAqF;IACrF,4GAA4G;IAC5G,yGAAyG;IACzG,4DAA4D;CAC7D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,KAAK,GAAU;IAC1B,OAAO,EAAE,gHAAgH;IACzH,KAAK,EAAE,GAAG,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;8FA0B6E;IAC5F,GAAG;CACJ,CAAC;AASF,oGAAoG;AACpG,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;IACzC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;IACzC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACvB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC/B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACvB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACvB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,wBAAwB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC5C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC5C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;CACnB,CAAC;AAIX,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAc,EAAE,GAAG,GAAY,EAAE;IACzD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IACtC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACpG,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,WAAW,CAAC;IACpC,IAAI,CAAC;QACH,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACpD,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;YACxB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC;QAC7D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,wDAAwD,CAAC,CAAC;YAC5E,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC;QACvG,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC;QAClG,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1H,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACjE,OAAO,MAAM,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3G,CAAC;IAAC,OAAO,OAAO,EAAE,CAAC;QACjB,6FAA6F;QAC7F,6EAA6E;QAC7E,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;IACxB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,mFAAmF;AAEnF,8FAA8F;AAC9F,gGAAgG;AAChG,yFAAyF;AACzF,KAAK,UAAU,GAAG,CAAC,IAAU,EAAE,KAAa,EAAE,MAAa;IACzD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IAClE,MAAM,MAAM,GAAe,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;IAC3F,OAAO,MAAM,KAAK,CAAe,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE;QAC1D,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;KAC1G,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,IAAU,EAAE,KAAa,EAAE,KAAe,EAAE,IAAa;IAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,MAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACtF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACxG,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IAClD,MAAM,MAAM,GAAe,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;IAChF,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAa,CAAC,CAAC,CAAC;IAC7D,OAAO,MAAM,KAAK,CAAe,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE;QAC1D,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE;KAC/H,CAAC,CAAC;AACL,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,KAAK,CAAC,MAAa,EAAE,QAAoB;IACvD,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAU,EAAE,CAAC;QACzE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAG,MAAkC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAC1F,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;SACzE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/E,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,MAAM,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACzE,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACzD,IAAI,WAAW,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACrD,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3C,IAAI,WAAW,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;QACxE,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;IACtE,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjE,MAAM,CAAC,MAAM,GAAG;YACd,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE;YAC5D,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE;SACvD,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,QAAQ,CAAC,IAAwB;IACxC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;IAC9F,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,IAAI,CAAC,KAAa,EAAE,MAAoB,EAAE,MAAe,EAAE,GAA0B;IAC5F,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7F,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-screens.d.ts","sourceRoot":"","sources":["../../src/cli/start-screens.ts"],"names":[],"mappings":"AAAA,sHAAsH;AAEtH,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,
|
|
1
|
+
{"version":3,"file":"start-screens.d.ts","sourceRoot":"","sources":["../../src/cli/start-screens.ts"],"names":[],"mappings":"AAAA,sHAAsH;AAEtH,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,CAqD5F;AAED,gGAAgG;AAChG,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,IAAI,MAAM,CAAC;CAClB;AAiCD,wBAAgB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAKvC"}
|
|
@@ -11,7 +11,7 @@ const KEYS = "keys: p pause · c clear · e events · s prompt · q quit";
|
|
|
11
11
|
export async function stream(pc, listen) {
|
|
12
12
|
listen((event) => process.stdout.write(`${JSON.stringify(event)}\n`));
|
|
13
13
|
await pc.connect();
|
|
14
|
-
await
|
|
14
|
+
await held(pc);
|
|
15
15
|
return 0;
|
|
16
16
|
}
|
|
17
17
|
// The default: the same lines the view would have grown, appended, with nothing that moves
|
|
@@ -38,7 +38,7 @@ export async function plain(pc, agents, url) {
|
|
|
38
38
|
for (const said of await agent.after())
|
|
39
39
|
process.stdout.write(`${prefix(agent.slug)}${said}\n`);
|
|
40
40
|
}
|
|
41
|
-
await
|
|
41
|
+
await held(pc);
|
|
42
42
|
return 0;
|
|
43
43
|
}
|
|
44
44
|
// What one event added, so the plain log prints the line the view would have grown and not the
|
|
@@ -82,6 +82,7 @@ export async function live(pc, listen, watching) {
|
|
|
82
82
|
await pc.connect();
|
|
83
83
|
const timer = setInterval(paint, FRAME_MS);
|
|
84
84
|
paint();
|
|
85
|
+
let why;
|
|
85
86
|
await new Promise((done) => {
|
|
86
87
|
const stop = onKey((key) => {
|
|
87
88
|
if (key === "q" || key === "\u0003") {
|
|
@@ -101,9 +102,16 @@ export async function live(pc, listen, watching) {
|
|
|
101
102
|
prompt = prompt === undefined ? watching.prompt() : undefined;
|
|
102
103
|
dirty = true;
|
|
103
104
|
});
|
|
105
|
+
pc.onStopped((said) => {
|
|
106
|
+
why = said;
|
|
107
|
+
stop();
|
|
108
|
+
done();
|
|
109
|
+
});
|
|
104
110
|
});
|
|
105
111
|
clearInterval(timer);
|
|
106
112
|
process.stdout.write(CLEAR);
|
|
113
|
+
if (why !== undefined)
|
|
114
|
+
process.stderr.write(`${why}\n`);
|
|
107
115
|
return 0;
|
|
108
116
|
}
|
|
109
117
|
// Raw mode is how a single keypress arrives without an enter; a terminal that has no tty (a pipe,
|
|
@@ -123,6 +131,17 @@ function onKey(handle) {
|
|
|
123
131
|
input.pause();
|
|
124
132
|
};
|
|
125
133
|
}
|
|
134
|
+
// `start` ends on a signal, or when a member of the org stops the app from `pinecall agent stop` or
|
|
135
|
+
// the console: then it says who, and exits instead of dialling back.
|
|
136
|
+
function held(pc) {
|
|
137
|
+
return new Promise((done) => {
|
|
138
|
+
pc.onStopped((why) => {
|
|
139
|
+
process.stderr.write(`${why}\n`);
|
|
140
|
+
done();
|
|
141
|
+
});
|
|
142
|
+
void forever().then(done);
|
|
143
|
+
});
|
|
144
|
+
}
|
|
126
145
|
// The verb ends when the process is signalled, not when a promise settles: it registers an
|
|
127
146
|
// agent and then has nothing left to do but stay reachable.
|
|
128
147
|
export function forever() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-screens.js","sourceRoot":"","sources":["../../src/cli/start-screens.ts"],"names":[],"mappings":"AAAA,sHAAsH;AAGtH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAe,MAAM,WAAW,CAAC;AAEjE,uGAAuG;AACvG,iGAAiG;AACjG,gFAAgF;AAChF,MAAM,QAAQ,GAAG,GAAG,CAAC;AAErB,MAAM,KAAK,GAAG,sBAAsB,CAAC;AACrC,MAAM,IAAI,GAAG,wDAAwD,CAAC;AAMtE,4FAA4F;AAC5F,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,EAAY,EAAE,MAAc;IACvD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;IACnB,MAAM,
|
|
1
|
+
{"version":3,"file":"start-screens.js","sourceRoot":"","sources":["../../src/cli/start-screens.ts"],"names":[],"mappings":"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"}
|