clawmoney 0.10.13 → 0.10.15
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/relay/executor.js +1 -1
- package/dist/relay/provider.js +30 -8
- package/dist/relay/types.d.ts +7 -2
- package/package.json +1 -1
package/dist/relay/executor.js
CHANGED
|
@@ -12,7 +12,7 @@ const DEFAULT_TIMEOUT_MS = 120_000;
|
|
|
12
12
|
// ── Spawn CLI process ──
|
|
13
13
|
export function spawnCli(cliType, args, timeoutMs = DEFAULT_TIMEOUT_MS) {
|
|
14
14
|
return new Promise((resolve, reject) => {
|
|
15
|
-
logger.info(`
|
|
15
|
+
logger.info(` │ Exec: ${cliType} ${args.slice(0, 3).join(" ")}...`);
|
|
16
16
|
const child = spawn(cliType, args, {
|
|
17
17
|
stdio: ["ignore", "pipe", "pipe"],
|
|
18
18
|
timeout: timeoutMs,
|
package/dist/relay/provider.js
CHANGED
|
@@ -89,29 +89,51 @@ function loadRelayConfig(cliOverride) {
|
|
|
89
89
|
};
|
|
90
90
|
}
|
|
91
91
|
// ── Request handler ──
|
|
92
|
+
function messagesToPrompt(messages) {
|
|
93
|
+
return messages.map((m) => String(m.content ?? "")).join("\n");
|
|
94
|
+
}
|
|
92
95
|
async function executeRelayRequest(request, config) {
|
|
93
|
-
const { request_id,
|
|
94
|
-
const cliType = config.relay.cli_type;
|
|
96
|
+
const { request_id, max_budget_usd } = request;
|
|
97
|
+
const cliType = request.cli_type ?? config.relay.cli_type;
|
|
98
|
+
const model = request.model ?? config.relay.model;
|
|
99
|
+
// Build prompt from messages (no --resume, full history as prompt)
|
|
100
|
+
const prompt = request.messages
|
|
101
|
+
? messagesToPrompt(request.messages)
|
|
102
|
+
: request.prompt ?? "";
|
|
103
|
+
const lastUserMsg = request.messages
|
|
104
|
+
? [...request.messages].reverse().find((m) => m.role === "user")?.content ?? ""
|
|
105
|
+
: prompt;
|
|
106
|
+
const turns = request.messages
|
|
107
|
+
? request.messages.filter((m) => m.role === "user").length
|
|
108
|
+
: 1;
|
|
109
|
+
logger.info(` ┌─ Request ${request_id.slice(0, 8)}`);
|
|
110
|
+
logger.info(` │ CLI: ${cliType} / ${model}`);
|
|
111
|
+
logger.info(` │ Turns: ${turns}`);
|
|
112
|
+
logger.info(` │ Prompt: ${String(lastUserMsg).slice(0, 80)}`);
|
|
95
113
|
try {
|
|
96
|
-
|
|
114
|
+
// No session_id — each request is stateless, full history in prompt
|
|
115
|
+
const args = buildCliArgs(cliType, prompt, undefined, max_budget_usd, model);
|
|
97
116
|
const raw = await spawnCli(cliType, args);
|
|
98
117
|
const parsed = parseCliOutput(cliType, raw);
|
|
118
|
+
const answer = parsed.text.replace(/\n/g, " ").slice(0, 80);
|
|
119
|
+
logger.info(` │ Answer: ${answer}`);
|
|
120
|
+
logger.info(` └─ Tokens: ${parsed.usage.input_tokens} in / ${parsed.usage.output_tokens} out`);
|
|
99
121
|
return {
|
|
100
122
|
event: "relay_response",
|
|
101
123
|
request_id,
|
|
102
|
-
|
|
124
|
+
content: parsed.text,
|
|
103
125
|
session_id: parsed.sessionId || undefined,
|
|
104
126
|
usage: parsed.usage,
|
|
105
|
-
model_used: parsed.model ||
|
|
127
|
+
model_used: parsed.model || model,
|
|
106
128
|
cost_usd: parsed.costUsd || undefined,
|
|
107
129
|
};
|
|
108
130
|
}
|
|
109
131
|
catch (err) {
|
|
110
|
-
logger.error(`
|
|
132
|
+
logger.error(` └─ ERROR: ${err instanceof Error ? err.message : err}`);
|
|
111
133
|
return {
|
|
112
134
|
event: "relay_response",
|
|
113
135
|
request_id,
|
|
114
|
-
|
|
136
|
+
content: "",
|
|
115
137
|
error: err instanceof Error ? err.message : "Unknown execution error",
|
|
116
138
|
};
|
|
117
139
|
}
|
|
@@ -152,7 +174,7 @@ export function runRelayProvider(cliOverride) {
|
|
|
152
174
|
wsClient.send({
|
|
153
175
|
event: "relay_response",
|
|
154
176
|
request_id: request.request_id,
|
|
155
|
-
|
|
177
|
+
content: "",
|
|
156
178
|
error: "Provider is at maximum capacity. Please try again later.",
|
|
157
179
|
});
|
|
158
180
|
return;
|
package/dist/relay/types.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
export interface RelayRequest {
|
|
2
2
|
event: "relay_request";
|
|
3
3
|
request_id: string;
|
|
4
|
-
prompt
|
|
4
|
+
prompt?: string;
|
|
5
|
+
messages?: Array<{
|
|
6
|
+
role: string;
|
|
7
|
+
content: string;
|
|
8
|
+
}>;
|
|
9
|
+
cli_type?: string;
|
|
5
10
|
session_id?: string;
|
|
6
11
|
model?: string;
|
|
7
12
|
max_budget_usd?: number;
|
|
@@ -20,7 +25,7 @@ export type RelayIncomingEvent = RelayRequest | RelayConnectedEvent | RelayError
|
|
|
20
25
|
export interface RelayResponse {
|
|
21
26
|
event: "relay_response";
|
|
22
27
|
request_id: string;
|
|
23
|
-
|
|
28
|
+
content: string;
|
|
24
29
|
session_id?: string;
|
|
25
30
|
usage?: {
|
|
26
31
|
input_tokens: number;
|