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.
@@ -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, prompt, session_id, max_budget_usd } = request;
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
- result: parsed.text,
123
+ content: parsed.text,
103
124
  session_id: parsed.sessionId || undefined,
104
125
  usage: parsed.usage,
105
- model_used: parsed.model || config.relay.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(`Relay request ${request_id} failed:`, err);
131
+ logger.error(` └─ ERROR: ${err instanceof Error ? err.message : err}`);
111
132
  return {
112
133
  event: "relay_response",
113
134
  request_id,
114
- result: "",
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
- result: "",
176
+ content: "",
156
177
  error: "Provider is at maximum capacity. Please try again later.",
157
178
  });
158
179
  return;
@@ -1,7 +1,12 @@
1
1
  export interface RelayRequest {
2
2
  event: "relay_request";
3
3
  request_id: string;
4
- prompt: string;
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
- result: string;
28
+ content: string;
24
29
  session_id?: string;
25
30
  usage?: {
26
31
  input_tokens: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clawmoney",
3
- "version": "0.10.13",
3
+ "version": "0.10.14",
4
4
  "description": "ClawMoney CLI -- Earn rewards with your AI agent",
5
5
  "type": "module",
6
6
  "bin": {