@ai-sdk/harness-claude-code 1.0.116 → 1.0.118
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/CHANGELOG.md +22 -0
- package/dist/bridge/index.mjs +41 -3
- package/dist/bridge/index.mjs.map +1 -1
- package/dist/index.d.ts +400 -0
- package/dist/index.js +1 -1
- package/package.json +3 -3
- package/src/bridge/create-emit-stream-event.ts +56 -3
package/dist/index.js
CHANGED
|
@@ -442,7 +442,7 @@ var inboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
442
442
|
]);
|
|
443
443
|
|
|
444
444
|
// src/version.ts
|
|
445
|
-
var VERSION = true ? "1.0.
|
|
445
|
+
var VERSION = true ? "1.0.118" : "0.0.0-test";
|
|
446
446
|
|
|
447
447
|
// src/claude-code-harness.ts
|
|
448
448
|
var CLAUDE_CODE_CLIENT_APP = `ai-sdk/harness-claude-code/${VERSION}`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/harness-claude-code",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.118",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@ai-sdk/harness": "1.0.
|
|
30
|
-
"@ai-sdk/provider-utils": "5.0.
|
|
29
|
+
"@ai-sdk/harness": "1.0.114",
|
|
30
|
+
"@ai-sdk/provider-utils": "5.0.43",
|
|
31
31
|
"ws": "^8.21.0"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
@@ -21,6 +21,7 @@ export type ClaudeMessage = {
|
|
|
21
21
|
event?: {
|
|
22
22
|
type?: string;
|
|
23
23
|
index?: number;
|
|
24
|
+
usage?: Record<string, unknown>;
|
|
24
25
|
content_block?: {
|
|
25
26
|
type?: string;
|
|
26
27
|
id?: string;
|
|
@@ -72,6 +73,8 @@ export type ClaudeStreamEventState = {
|
|
|
72
73
|
partialBlocks: Map<number, PartialBlock>;
|
|
73
74
|
stepUsage: Record<string, unknown> | undefined;
|
|
74
75
|
pendingStepToolUseIds: Set<string>;
|
|
76
|
+
pendingStepAssistantUsage: Record<string, unknown> | undefined;
|
|
77
|
+
pendingStepDeltaUsage: Record<string, unknown> | undefined;
|
|
75
78
|
pendingStepUsage: Record<string, unknown> | undefined;
|
|
76
79
|
stepOpen: boolean;
|
|
77
80
|
/*
|
|
@@ -97,6 +100,8 @@ export function createClaudeStreamEventState(): ClaudeStreamEventState {
|
|
|
97
100
|
partialBlocks: new Map(),
|
|
98
101
|
stepUsage: undefined,
|
|
99
102
|
pendingStepToolUseIds: new Set(),
|
|
103
|
+
pendingStepAssistantUsage: undefined,
|
|
104
|
+
pendingStepDeltaUsage: undefined,
|
|
100
105
|
pendingStepUsage: undefined,
|
|
101
106
|
stepOpen: false,
|
|
102
107
|
mcpToolUseIds: new Set(),
|
|
@@ -228,7 +233,7 @@ export function createEmitStreamEvent({
|
|
|
228
233
|
}
|
|
229
234
|
|
|
230
235
|
if (type === 'assistant' && msg.message?.content) {
|
|
231
|
-
const usage =
|
|
236
|
+
const usage = toUsageRecord(msg.message.usage);
|
|
232
237
|
const toolUseIds: string[] = [];
|
|
233
238
|
let opensStep = false;
|
|
234
239
|
for (const block of msg.message.content) {
|
|
@@ -274,7 +279,10 @@ export function createEmitStreamEvent({
|
|
|
274
279
|
}
|
|
275
280
|
if (opensStep || toolUseIds.length === 0) {
|
|
276
281
|
state.stepOpen = true;
|
|
277
|
-
if (usage)
|
|
282
|
+
if (usage) {
|
|
283
|
+
state.pendingStepAssistantUsage = usage;
|
|
284
|
+
updatePendingStepUsage(state);
|
|
285
|
+
}
|
|
278
286
|
}
|
|
279
287
|
return;
|
|
280
288
|
}
|
|
@@ -360,6 +368,8 @@ export function emitFinishStep({
|
|
|
360
368
|
usage: usage ?? defaultUsage(),
|
|
361
369
|
});
|
|
362
370
|
state.stepUsage = usage ?? state.stepUsage;
|
|
371
|
+
state.pendingStepAssistantUsage = undefined;
|
|
372
|
+
state.pendingStepDeltaUsage = undefined;
|
|
363
373
|
state.pendingStepUsage = undefined;
|
|
364
374
|
state.pendingStepToolUseIds = new Set();
|
|
365
375
|
state.stepOpen = false;
|
|
@@ -412,7 +422,21 @@ function handleStreamEvent({
|
|
|
412
422
|
send: Emit;
|
|
413
423
|
toCommonName: (nativeName: string) => string;
|
|
414
424
|
}): void {
|
|
415
|
-
if (!event
|
|
425
|
+
if (!event) return;
|
|
426
|
+
|
|
427
|
+
if (event.type === 'message_delta') {
|
|
428
|
+
const usage = toUsageRecord(event.usage);
|
|
429
|
+
if (usage) {
|
|
430
|
+
state.pendingStepDeltaUsage = mergeNonNullUsage(
|
|
431
|
+
state.pendingStepDeltaUsage,
|
|
432
|
+
usage,
|
|
433
|
+
);
|
|
434
|
+
updatePendingStepUsage(state);
|
|
435
|
+
}
|
|
436
|
+
return;
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
if (typeof event.index !== 'number') return;
|
|
416
440
|
const index = event.index;
|
|
417
441
|
const partialBlocks = state.partialBlocks;
|
|
418
442
|
|
|
@@ -502,6 +526,35 @@ function handleStreamEvent({
|
|
|
502
526
|
}
|
|
503
527
|
}
|
|
504
528
|
|
|
529
|
+
function toUsageRecord(usage: unknown): Record<string, unknown> | undefined {
|
|
530
|
+
return usage != null && typeof usage === 'object'
|
|
531
|
+
? (usage as Record<string, unknown>)
|
|
532
|
+
: undefined;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
function mergeNonNullUsage(
|
|
536
|
+
current: Record<string, unknown> | undefined,
|
|
537
|
+
update: Record<string, unknown>,
|
|
538
|
+
): Record<string, unknown> {
|
|
539
|
+
const merged = { ...current };
|
|
540
|
+
for (const [key, value] of Object.entries(update)) {
|
|
541
|
+
if (value != null) {
|
|
542
|
+
merged[key] = value;
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
return merged;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
function updatePendingStepUsage(state: ClaudeStreamEventState): void {
|
|
549
|
+
const assistantUsage = state.pendingStepAssistantUsage;
|
|
550
|
+
const deltaUsage = state.pendingStepDeltaUsage;
|
|
551
|
+
state.pendingStepUsage = mapUsage(
|
|
552
|
+
assistantUsage || deltaUsage
|
|
553
|
+
? { ...assistantUsage, ...deltaUsage }
|
|
554
|
+
: undefined,
|
|
555
|
+
);
|
|
556
|
+
}
|
|
557
|
+
|
|
505
558
|
function isTextEntry(entry: unknown): entry is { text?: unknown } {
|
|
506
559
|
return entry != null && typeof entry === 'object' && 'text' in entry;
|
|
507
560
|
}
|