clawmoney 0.10.13 → 0.10.14
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/provider.js +29 -8
- package/dist/relay/types.d.ts +7 -2
- package/package.json +1 -1
package/dist/relay/provider.js
CHANGED
|
@@ -89,29 +89,50 @@ 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, session_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 or direct 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
|
-
const args = buildCliArgs(cliType, prompt, session_id, max_budget_usd);
|
|
114
|
+
const args = buildCliArgs(cliType, prompt, session_id, max_budget_usd, model);
|
|
97
115
|
const raw = await spawnCli(cliType, args);
|
|
98
116
|
const parsed = parseCliOutput(cliType, raw);
|
|
117
|
+
const answer = parsed.text.replace(/\n/g, " ").slice(0, 80);
|
|
118
|
+
logger.info(` │ Answer: ${answer}`);
|
|
119
|
+
logger.info(` └─ Tokens: ${parsed.usage.input_tokens} in / ${parsed.usage.output_tokens} out`);
|
|
99
120
|
return {
|
|
100
121
|
event: "relay_response",
|
|
101
122
|
request_id,
|
|
102
|
-
|
|
123
|
+
content: parsed.text,
|
|
103
124
|
session_id: parsed.sessionId || undefined,
|
|
104
125
|
usage: parsed.usage,
|
|
105
|
-
model_used: parsed.model ||
|
|
126
|
+
model_used: parsed.model || model,
|
|
106
127
|
cost_usd: parsed.costUsd || undefined,
|
|
107
128
|
};
|
|
108
129
|
}
|
|
109
130
|
catch (err) {
|
|
110
|
-
logger.error(`
|
|
131
|
+
logger.error(` └─ ERROR: ${err instanceof Error ? err.message : err}`);
|
|
111
132
|
return {
|
|
112
133
|
event: "relay_response",
|
|
113
134
|
request_id,
|
|
114
|
-
|
|
135
|
+
content: "",
|
|
115
136
|
error: err instanceof Error ? err.message : "Unknown execution error",
|
|
116
137
|
};
|
|
117
138
|
}
|
|
@@ -152,7 +173,7 @@ export function runRelayProvider(cliOverride) {
|
|
|
152
173
|
wsClient.send({
|
|
153
174
|
event: "relay_response",
|
|
154
175
|
request_id: request.request_id,
|
|
155
|
-
|
|
176
|
+
content: "",
|
|
156
177
|
error: "Provider is at maximum capacity. Please try again later.",
|
|
157
178
|
});
|
|
158
179
|
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;
|