clawmoney 0.10.19 → 0.10.20
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 +10 -5
- package/dist/relay/types.d.ts +5 -1
- package/package.json +1 -1
package/dist/relay/provider.js
CHANGED
|
@@ -97,7 +97,9 @@ async function executeRelayRequest(request, config) {
|
|
|
97
97
|
const { request_id, max_budget_usd } = request;
|
|
98
98
|
const cliType = request.cli_type ?? config.relay.cli_type;
|
|
99
99
|
const model = request.model ?? config.relay.model;
|
|
100
|
-
|
|
100
|
+
const stateful = request.stateful ?? false;
|
|
101
|
+
const cliSessionId = request.cli_session_id ?? undefined;
|
|
102
|
+
// Build prompt from messages
|
|
101
103
|
const prompt = request.messages
|
|
102
104
|
? messagesToPrompt(request.messages)
|
|
103
105
|
: request.prompt ?? "";
|
|
@@ -107,14 +109,17 @@ async function executeRelayRequest(request, config) {
|
|
|
107
109
|
const turns = request.messages
|
|
108
110
|
? request.messages.filter((m) => m.role === "user").length
|
|
109
111
|
: 1;
|
|
112
|
+
const modeLabel = stateful
|
|
113
|
+
? (cliSessionId ? `stateful[resume ${cliSessionId.slice(0, 8)}]` : "stateful[new]")
|
|
114
|
+
: "stateless";
|
|
110
115
|
logger.info(` ┌─ Request ${request_id.slice(0, 8)}`);
|
|
111
|
-
logger.info(` │ CLI: ${cliType} / ${model}`);
|
|
116
|
+
logger.info(` │ CLI: ${cliType} / ${model} (${modeLabel})`);
|
|
112
117
|
logger.info(` │ Turns: ${turns}`);
|
|
113
118
|
logger.info(` │ Prompt: ${String(lastUserMsg).slice(0, 80)}`);
|
|
114
119
|
try {
|
|
115
|
-
// No session_id — each request is stateless, full history in prompt
|
|
116
120
|
const startMs = Date.now();
|
|
117
|
-
|
|
121
|
+
// In stateful mode, pass cli_session_id so buildCliArgs adds --resume
|
|
122
|
+
const args = buildCliArgs(cliType, prompt, cliSessionId, max_budget_usd, model);
|
|
118
123
|
const raw = await spawnCli(cliType, args);
|
|
119
124
|
const elapsedMs = Date.now() - startMs;
|
|
120
125
|
const parsed = parseCliOutput(cliType, raw);
|
|
@@ -132,7 +137,7 @@ async function executeRelayRequest(request, config) {
|
|
|
132
137
|
event: "relay_response",
|
|
133
138
|
request_id,
|
|
134
139
|
content: parsed.text,
|
|
135
|
-
|
|
140
|
+
cli_session_id: parsed.sessionId || undefined,
|
|
136
141
|
usage: parsed.usage,
|
|
137
142
|
model_used: parsed.model || model,
|
|
138
143
|
cost_usd: parsed.costUsd || undefined,
|
package/dist/relay/types.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export interface RelayRequest {
|
|
|
8
8
|
}>;
|
|
9
9
|
cli_type?: string;
|
|
10
10
|
session_id?: string;
|
|
11
|
+
cli_session_id?: string | null;
|
|
12
|
+
stateful?: boolean;
|
|
11
13
|
model?: string;
|
|
12
14
|
max_budget_usd?: number;
|
|
13
15
|
}
|
|
@@ -27,10 +29,12 @@ export interface RelayResponse {
|
|
|
27
29
|
request_id: string;
|
|
28
30
|
content: string;
|
|
29
31
|
session_id?: string;
|
|
32
|
+
cli_session_id?: string;
|
|
30
33
|
usage?: {
|
|
31
34
|
input_tokens: number;
|
|
32
35
|
output_tokens: number;
|
|
33
|
-
|
|
36
|
+
cache_creation_tokens?: number;
|
|
37
|
+
cache_read_tokens?: number;
|
|
34
38
|
};
|
|
35
39
|
model_used?: string;
|
|
36
40
|
cost_usd?: number;
|