@code-yeongyu/senpi-agent-core 2026.10.21-3 → 2026.10.23-1

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.
@@ -88,7 +88,7 @@ class StreamIdleTimeoutError extends Error {
88
88
  // retried instead of dead-ending the session.
89
89
  export class StreamStartTimeoutError extends Error {
90
90
  constructor(timeoutMs) {
91
- super(`Provider stream start timed out after ${timeoutMs}ms (raise streamStartTimeoutMs — retry.provider.streamStartTimeoutMs in senpi settings; 0 disables)`);
91
+ super(`Provider stream start timed out after ${timeoutMs}ms (raise streamStartTimeoutMs: retry.provider.streamStartTimeoutMs in senpi settings; 0 disables)`);
92
92
  this.name = "StreamStartTimeoutError";
93
93
  }
94
94
  }
package/dist/agent.d.ts CHANGED
@@ -155,8 +155,10 @@ export declare class Agent {
155
155
  clearAllQueues(): void;
156
156
  /** Returns true when either queue still contains pending messages. */
157
157
  hasQueuedMessages(): boolean;
158
- /** Preview the messages selected for the next turn without consuming them. */
159
- peekQueuedMessages(): AgentMessage[];
158
+ /** Preview next-turn messages, or both queues with { all: true }, without consuming them. */
159
+ peekQueuedMessages(options?: {
160
+ all?: boolean;
161
+ }): AgentMessage[];
160
162
  /** Active abort signal for the current run, if any. */
161
163
  get signal(): AbortSignal | undefined;
162
164
  /** Abort the current run, if one is active. */
package/dist/agent.js CHANGED
@@ -236,9 +236,11 @@ export class Agent {
236
236
  hasQueuedMessages() {
237
237
  return this.steeringQueue.hasItems() || this.followUpQueue.hasItems();
238
238
  }
239
- /** Preview the messages selected for the next turn without consuming them. */
240
- peekQueuedMessages() {
239
+ /** Preview next-turn messages, or both queues with { all: true }, without consuming them. */
240
+ peekQueuedMessages(options) {
241
241
  const steering = this.steeringQueue.peek();
242
+ if (options?.all)
243
+ return [...steering, ...this.followUpQueue.peek()];
242
244
  return steering.length > 0 ? steering : this.followUpQueue.peek();
243
245
  }
244
246
  /** Active abort signal for the current run, if any. */
@@ -334,6 +334,7 @@ export class Harness {
334
334
  routes.set(key, doc);
335
335
  }
336
336
  }
337
+ // oxlint-disable-next-line eslint/prefer-const -- a closure reads it; const would throw in the TDZ if that closure ran before the assignment, so the rewrite is reviewed separately
337
338
  let token;
338
339
  token = {
339
340
  id,
@@ -28,6 +28,7 @@ export function addUsage(left, right) {
28
28
  cacheWrite: left.cost.cacheWrite + right.cost.cacheWrite,
29
29
  total: left.cost.total + right.cost.total,
30
30
  },
31
+ ...(left.costUnknown || right.costUnknown ? { costUnknown: true } : {}),
31
32
  };
32
33
  }
33
34
  //# sourceMappingURL=usage.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/senpi-agent-core",
3
- "version": "2026.10.21-3",
3
+ "version": "2026.10.23-1",
4
4
  "description": "General-purpose agent with transport abstraction, state management, and attachment support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -62,8 +62,8 @@
62
62
  },
63
63
  "dependencies": {
64
64
  "@earendil-works/chord": "0.99.1",
65
- "@earendil-works/pi-ai": "npm:@code-yeongyu/senpi-ai@2026.10.21-3",
66
- "@earendil-works/pi-telemetry": "npm:@code-yeongyu/senpi-telemetry@2026.10.21-3",
65
+ "@earendil-works/pi-ai": "npm:@code-yeongyu/senpi-ai@2026.10.23-1",
66
+ "@earendil-works/pi-telemetry": "npm:@code-yeongyu/senpi-telemetry@2026.10.23-1",
67
67
  "diff": "9.0.0",
68
68
  "ignore": "7.0.9",
69
69
  "typebox": "1.3.34",