@walkhi/code-relax 0.1.0-beta.19 → 0.1.0-beta.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.
@@ -266,8 +266,10 @@ export function connectBridgeRelay({ relayUrl, hostKey, bridgeUrl, bridgeToken,
266
266
  const turnKind = usage.created ? 'start' : response.body?.usage?.kind;
267
267
  send(remote, { type: 'usage-message', session: message.session, requestId: response.id,
268
268
  threadId, messageKey: usage.messageKey, turnId, turnKind,
269
- completed: completedTurns.has(`${threadId}:${turnId}`), observerReady: turnObserverReady });
270
- if (turnKind === 'start' && typeof turnId === 'string' && !completedTurns.has(`${threadId}:${turnId}`)) {
269
+ completed: completedTurns.has(`${threadId}:${turnId}`), observerReady: turnObserverReady,
270
+ active: activeTurns.get(threadId) === turnId });
271
+ if (['start', 'steer'].includes(turnKind) && typeof turnId === 'string' &&
272
+ !completedTurns.has(`${threadId}:${turnId}`)) {
271
273
  trackedTurns.set(threadId, turnId); saveTrackedTurns();
272
274
  if (turnObserverReady && !activeTurns.has(threadId)) queueTurnResync(threadId, turnId);
273
275
  }
@@ -507,16 +507,19 @@ export async function startSelfRelay({ port = 0, hostKey = secret(), pairingTtlM
507
507
  try {
508
508
  await meter.action(arm, room.id, arm.clientId, 'message', message.messageKey);
509
509
  diagnostics?.record('message-counted', 'confirmed');
510
- if (message.turnKind === 'start' && plainText(message.threadId, 80, false) && plainText(message.turnId, 80, false)) {
510
+ if (['start', 'steer'].includes(message.turnKind) &&
511
+ plainText(message.threadId, 80, false) && plainText(message.turnId, 80, false)) {
511
512
  const key = `${message.threadId}:${message.turnId}`;
512
- if (key.length <= 128 && !room.usageTasks.has(key)) {
513
- const task = { userId: arm.userId, clientId: arm.clientId };
514
- await meter.action(task, room.id, arm.clientId, 'turn', key);
515
- diagnostics?.record('turn-counted', 'confirmed');
516
- if (message.observerReady === true) {
517
- await meter.pulse(task, true, room.id, arm.clientId, key);
518
- if (message.completed) await meter.pulse(task, false, room.id, arm.clientId);
519
- else room.usageTasks.set(key, task);
513
+ if (key.length <= 128) {
514
+ const counted = await meter.action(arm, room.id, arm.clientId, 'turn', key);
515
+ if (counted) diagnostics?.record('turn-counted', 'confirmed');
516
+ if (!room.usageTasks.has(key) && message.observerReady === true && message.completed !== true &&
517
+ (message.turnKind === 'start' || message.active === true)) {
518
+ const task = await meter.turnOrigin(room.id, key);
519
+ if (task) {
520
+ await meter.pulse(task, true, room.id, task.clientId, key);
521
+ room.usageTasks.set(key, task);
522
+ }
520
523
  }
521
524
  }
522
525
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@walkhi/code-relax",
3
- "version": "0.1.0-beta.19",
3
+ "version": "0.1.0-beta.20",
4
4
  "license": "UNLICENSED",
5
5
  "type": "module",
6
6
  "scripts": {