@sofer_agent/cli 0.3.2 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +4 -3
- package/dist/chat.js.map +1 -1
- package/dist/tui.d.ts +9 -2
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +42 -8
- package/dist/tui.js.map +1 -1
- package/package.json +1 -1
- package/src/chat.ts +4 -3
- package/src/tui.ts +47 -9
package/dist/chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAIA,qDAAqD;AACrD,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAIA,qDAAqD;AACrD,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBjD"}
|
package/dist/chat.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { loadConfig, SoferAgent } from "@sofer_agent/core";
|
|
2
2
|
import { requireSecrets } from "./secrets.js";
|
|
3
3
|
import { SoferTui } from "./tui.js";
|
|
4
4
|
/** Interactive chat TUI with promus-style polish. */
|
|
5
5
|
export async function chatCommand() {
|
|
6
6
|
const config = loadConfig();
|
|
7
7
|
const agent = await SoferAgent.create(config, requireSecrets());
|
|
8
|
-
const tui = new SoferTui(agent);
|
|
8
|
+
const tui = new SoferTui(agent, config);
|
|
9
9
|
await tui.run(async (line, signal) => {
|
|
10
10
|
try {
|
|
11
|
-
const { text } = await agent.chat(line, signal);
|
|
11
|
+
const { text, turnUsage } = await agent.chat(line, signal);
|
|
12
12
|
tui.addMessage("agent", text);
|
|
13
|
+
tui.setInfo({ lastTurnIn: turnUsage.inputTokens, lastTurnOut: turnUsage.outputTokens });
|
|
13
14
|
}
|
|
14
15
|
catch (e) {
|
|
15
16
|
if (signal?.aborted) {
|
package/dist/chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,qDAAqD;AACrD,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAEhE,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,qDAAqD;AACrD,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAEhE,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAExC,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3D,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC9B,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;QAC1F,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QACD,GAAG,CAAC,MAAM,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/tui.d.ts
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
import type { SoferAgent } from "@sofer_agent/core";
|
|
1
|
+
import type { SoferAgent, SoferConfig } from "@sofer_agent/core";
|
|
2
2
|
export interface ChatLine {
|
|
3
3
|
role: "you" | "agent" | "system" | "error";
|
|
4
4
|
text: string;
|
|
5
5
|
}
|
|
6
|
+
export interface TuiInfo {
|
|
7
|
+
lastTurnIn: number;
|
|
8
|
+
lastTurnOut: number;
|
|
9
|
+
}
|
|
6
10
|
export declare class SoferTui {
|
|
7
11
|
private readonly agent;
|
|
12
|
+
private readonly config;
|
|
8
13
|
private state;
|
|
9
14
|
private inputBuf;
|
|
10
15
|
private cursor;
|
|
@@ -18,11 +23,13 @@ export declare class SoferTui {
|
|
|
18
23
|
private spinnerTimer;
|
|
19
24
|
private turnStartedAt;
|
|
20
25
|
private abortCtrl;
|
|
26
|
+
private info;
|
|
21
27
|
private resolve;
|
|
22
28
|
private onLine;
|
|
23
|
-
constructor(agent: SoferAgent);
|
|
29
|
+
constructor(agent: SoferAgent, config: SoferConfig);
|
|
24
30
|
private measure;
|
|
25
31
|
addMessage(role: ChatLine["role"], text: string): void;
|
|
32
|
+
setInfo(info: Partial<TuiInfo>): void;
|
|
26
33
|
private startSpinner;
|
|
27
34
|
private stopSpinner;
|
|
28
35
|
/** Start the interactive TUI loop. */
|
package/dist/tui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUjE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3C,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,QAAQ;IAuBjB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAvBzB,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,aAAa,CAAK;IAE1B,OAAO,CAAC,SAAS,CAAgC;IAEjD,OAAO,CAAC,IAAI,CAA8C;IAE1D,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,MAAM,CAAwE;gBAGnE,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW;IAGtC,OAAO,CAAC,OAAO;IAOf,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAItD,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI;IAIrC,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,WAAW;IASnB,sCAAsC;IAChC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAevF,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,WAAW,CA4CjB;YAEY,MAAM;IA2BpB,OAAO,CAAC,YAAY,CAGlB;IAEF,MAAM,IAAI,IAAI;IASd,OAAO,CAAC,UAAU;IAsDlB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,GAAG;IAQX,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,YAAY;CAgCrB"}
|
package/dist/tui.js
CHANGED
|
@@ -7,6 +7,7 @@ const SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧",
|
|
|
7
7
|
const SPINNER_MS = 80;
|
|
8
8
|
export class SoferTui {
|
|
9
9
|
agent;
|
|
10
|
+
config;
|
|
10
11
|
state = [];
|
|
11
12
|
inputBuf = "";
|
|
12
13
|
cursor = 0;
|
|
@@ -22,11 +23,14 @@ export class SoferTui {
|
|
|
22
23
|
turnStartedAt = 0;
|
|
23
24
|
// interrupt
|
|
24
25
|
abortCtrl = null;
|
|
26
|
+
// sidebar info
|
|
27
|
+
info = { lastTurnIn: 0, lastTurnOut: 0 };
|
|
25
28
|
// callbacks
|
|
26
29
|
resolve = null;
|
|
27
30
|
onLine = null;
|
|
28
|
-
constructor(agent) {
|
|
31
|
+
constructor(agent, config) {
|
|
29
32
|
this.agent = agent;
|
|
33
|
+
this.config = config;
|
|
30
34
|
}
|
|
31
35
|
measure() {
|
|
32
36
|
this.columns = process.stdout.columns ?? 80;
|
|
@@ -37,6 +41,9 @@ export class SoferTui {
|
|
|
37
41
|
addMessage(role, text) {
|
|
38
42
|
this.state.push({ role, text });
|
|
39
43
|
}
|
|
44
|
+
setInfo(info) {
|
|
45
|
+
Object.assign(this.info, info);
|
|
46
|
+
}
|
|
40
47
|
startSpinner() {
|
|
41
48
|
if (this.spinnerTimer)
|
|
42
49
|
return;
|
|
@@ -256,19 +263,34 @@ export class SoferTui {
|
|
|
256
263
|
return ` ${padded} `;
|
|
257
264
|
}
|
|
258
265
|
buildSidebar(width) {
|
|
259
|
-
const { agent } = this;
|
|
266
|
+
const { agent, config, info } = this;
|
|
260
267
|
const addr = `${agent.address.slice(0, 6)}…${agent.address.slice(-4)}`;
|
|
268
|
+
const hbar = "─".repeat(width);
|
|
269
|
+
const thinBar = "·".repeat(width);
|
|
261
270
|
const totalIn = agent.usage.tokens.inputTokens;
|
|
262
271
|
const totalOut = agent.usage.tokens.outputTokens;
|
|
263
272
|
const cost = agent.usage.costUsd.toFixed(4);
|
|
264
273
|
return [
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
274
|
+
hbar,
|
|
275
|
+
`\x1b[1;36m${agent.name}\x1b[0m`,
|
|
276
|
+
`\x1b[90m${addr}\x1b[0m`,
|
|
268
277
|
"",
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
278
|
+
`\x1b[90mnetwork\x1b[0m ${config.network}`,
|
|
279
|
+
`\x1b[90mmodel\x1b[0m ${shortModel(config.brain.model)}`,
|
|
280
|
+
thinBar,
|
|
281
|
+
`\x1b[90mlast turn\x1b[0m`,
|
|
282
|
+
` in ${info.lastTurnIn}`,
|
|
283
|
+
` out ${info.lastTurnOut}`,
|
|
284
|
+
`\x1b[90mtotal\x1b[0m`,
|
|
285
|
+
` in ${totalIn}`,
|
|
286
|
+
` out ${totalOut}`,
|
|
287
|
+
`\x1b[90mcost\x1b[0m \x1b[33m$${cost}\x1b[0m`,
|
|
288
|
+
thinBar,
|
|
289
|
+
`\x1b[90maddress\x1b[0m`,
|
|
290
|
+
` ${agent.address.slice(0, 16)}`,
|
|
291
|
+
` ${agent.address.slice(16, 32)}`,
|
|
292
|
+
` ${agent.address.slice(32)}`,
|
|
293
|
+
hbar,
|
|
272
294
|
];
|
|
273
295
|
}
|
|
274
296
|
}
|
|
@@ -324,4 +346,16 @@ function formatElapsed(ms) {
|
|
|
324
346
|
const s = sec % 60;
|
|
325
347
|
return `${m}m${String(s).padStart(2, "0")}s`;
|
|
326
348
|
}
|
|
349
|
+
function shortModel(model) {
|
|
350
|
+
const m = model.toLowerCase();
|
|
351
|
+
if (m.includes("sonnet"))
|
|
352
|
+
return "Sonnet 4";
|
|
353
|
+
if (m.includes("haiku"))
|
|
354
|
+
return "Haiku";
|
|
355
|
+
if (m.includes("opus"))
|
|
356
|
+
return "Opus 4";
|
|
357
|
+
if (m.includes("fable"))
|
|
358
|
+
return "Fable 5";
|
|
359
|
+
return model.length > 14 ? `${model.slice(0, 13)}…` : model;
|
|
360
|
+
}
|
|
327
361
|
//# sourceMappingURL=tui.js.map
|
package/dist/tui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/chat.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { loadConfig, SoferAgent } from "@sofer_agent/core";
|
|
2
2
|
import { requireSecrets } from "./secrets.js";
|
|
3
3
|
import { SoferTui } from "./tui.js";
|
|
4
4
|
|
|
@@ -7,12 +7,13 @@ export async function chatCommand(): Promise<void> {
|
|
|
7
7
|
const config = loadConfig();
|
|
8
8
|
const agent = await SoferAgent.create(config, requireSecrets());
|
|
9
9
|
|
|
10
|
-
const tui = new SoferTui(agent);
|
|
10
|
+
const tui = new SoferTui(agent, config);
|
|
11
11
|
|
|
12
12
|
await tui.run(async (line, signal) => {
|
|
13
13
|
try {
|
|
14
|
-
const { text } = await agent.chat(line, signal);
|
|
14
|
+
const { text, turnUsage } = await agent.chat(line, signal);
|
|
15
15
|
tui.addMessage("agent", text);
|
|
16
|
+
tui.setInfo({ lastTurnIn: turnUsage.inputTokens, lastTurnOut: turnUsage.outputTokens });
|
|
16
17
|
} catch (e) {
|
|
17
18
|
if (signal?.aborted) {
|
|
18
19
|
tui.addMessage("system", "turn interrupted (esc).");
|
package/src/tui.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SoferAgent } from "@sofer_agent/core";
|
|
1
|
+
import type { SoferAgent, SoferConfig } from "@sofer_agent/core";
|
|
2
2
|
|
|
3
3
|
const SIDEBAR_W = 26;
|
|
4
4
|
const MIN_CHAT_W = 30;
|
|
@@ -13,6 +13,11 @@ export interface ChatLine {
|
|
|
13
13
|
text: string;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
export interface TuiInfo {
|
|
17
|
+
lastTurnIn: number;
|
|
18
|
+
lastTurnOut: number;
|
|
19
|
+
}
|
|
20
|
+
|
|
16
21
|
export class SoferTui {
|
|
17
22
|
private state: ChatLine[] = [];
|
|
18
23
|
private inputBuf = "";
|
|
@@ -29,11 +34,16 @@ export class SoferTui {
|
|
|
29
34
|
private turnStartedAt = 0;
|
|
30
35
|
// interrupt
|
|
31
36
|
private abortCtrl: AbortController | null = null;
|
|
37
|
+
// sidebar info
|
|
38
|
+
private info: TuiInfo = { lastTurnIn: 0, lastTurnOut: 0 };
|
|
32
39
|
// callbacks
|
|
33
40
|
private resolve: (() => void) | null = null;
|
|
34
41
|
private onLine: ((line: string, signal?: AbortSignal) => Promise<void>) | null = null;
|
|
35
42
|
|
|
36
|
-
constructor(
|
|
43
|
+
constructor(
|
|
44
|
+
private readonly agent: SoferAgent,
|
|
45
|
+
private readonly config: SoferConfig,
|
|
46
|
+
) {}
|
|
37
47
|
|
|
38
48
|
private measure(): void {
|
|
39
49
|
this.columns = process.stdout.columns ?? 80;
|
|
@@ -46,6 +56,10 @@ export class SoferTui {
|
|
|
46
56
|
this.state.push({ role, text });
|
|
47
57
|
}
|
|
48
58
|
|
|
59
|
+
setInfo(info: Partial<TuiInfo>): void {
|
|
60
|
+
Object.assign(this.info, info);
|
|
61
|
+
}
|
|
62
|
+
|
|
49
63
|
private startSpinner(): void {
|
|
50
64
|
if (this.spinnerTimer) return;
|
|
51
65
|
this.status = "thinking";
|
|
@@ -281,20 +295,35 @@ export class SoferTui {
|
|
|
281
295
|
}
|
|
282
296
|
|
|
283
297
|
private buildSidebar(width: number): string[] {
|
|
284
|
-
const { agent } = this;
|
|
298
|
+
const { agent, config, info } = this;
|
|
285
299
|
const addr = `${agent.address.slice(0, 6)}…${agent.address.slice(-4)}`;
|
|
300
|
+
const hbar = "─".repeat(width);
|
|
301
|
+
const thinBar = "·".repeat(width);
|
|
286
302
|
const totalIn = agent.usage.tokens.inputTokens;
|
|
287
303
|
const totalOut = agent.usage.tokens.outputTokens;
|
|
288
304
|
const cost = agent.usage.costUsd.toFixed(4);
|
|
289
305
|
|
|
290
306
|
return [
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
307
|
+
hbar,
|
|
308
|
+
`\x1b[1;36m${agent.name}\x1b[0m`,
|
|
309
|
+
`\x1b[90m${addr}\x1b[0m`,
|
|
294
310
|
"",
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
311
|
+
`\x1b[90mnetwork\x1b[0m ${config.network}`,
|
|
312
|
+
`\x1b[90mmodel\x1b[0m ${shortModel(config.brain.model)}`,
|
|
313
|
+
thinBar,
|
|
314
|
+
`\x1b[90mlast turn\x1b[0m`,
|
|
315
|
+
` in ${info.lastTurnIn}`,
|
|
316
|
+
` out ${info.lastTurnOut}`,
|
|
317
|
+
`\x1b[90mtotal\x1b[0m`,
|
|
318
|
+
` in ${totalIn}`,
|
|
319
|
+
` out ${totalOut}`,
|
|
320
|
+
`\x1b[90mcost\x1b[0m \x1b[33m$${cost}\x1b[0m`,
|
|
321
|
+
thinBar,
|
|
322
|
+
`\x1b[90maddress\x1b[0m`,
|
|
323
|
+
` ${agent.address.slice(0, 16)}`,
|
|
324
|
+
` ${agent.address.slice(16, 32)}`,
|
|
325
|
+
` ${agent.address.slice(32)}`,
|
|
326
|
+
hbar,
|
|
298
327
|
];
|
|
299
328
|
}
|
|
300
329
|
}
|
|
@@ -351,3 +380,12 @@ function formatElapsed(ms: number): string {
|
|
|
351
380
|
const s = sec % 60;
|
|
352
381
|
return `${m}m${String(s).padStart(2, "0")}s`;
|
|
353
382
|
}
|
|
383
|
+
|
|
384
|
+
function shortModel(model: string): string {
|
|
385
|
+
const m = model.toLowerCase();
|
|
386
|
+
if (m.includes("sonnet")) return "Sonnet 4";
|
|
387
|
+
if (m.includes("haiku")) return "Haiku";
|
|
388
|
+
if (m.includes("opus")) return "Opus 4";
|
|
389
|
+
if (m.includes("fable")) return "Fable 5";
|
|
390
|
+
return model.length > 14 ? `${model.slice(0, 13)}…` : model;
|
|
391
|
+
}
|