@polka-codes/core 0.7.14 → 0.7.16

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.
@@ -11,9 +11,11 @@ declare abstract class AgentBase {
11
11
  start(prompt: string): Promise<ExitReason>;
12
12
  step(promp: string, messages?: MessageParam[]): Promise<AssistantMessageContent[]>;
13
13
  handleStepResponse(response: AssistantMessageContent[], messages?: MessageParam[]): Promise<{
14
- replay: string;
14
+ type: "reply";
15
+ message: string;
15
16
  } | {
16
- exit: ExitReason;
17
+ type: "exit";
18
+ reason: ExitReason;
17
19
  }>;
18
20
  continueTask(userMessage: string): Promise<ExitReason>;
19
21
  protected abstract onBeforeInvokeTool(name: string, args: Record<string, string>): Promise<ToolResponse | undefined>;
@@ -22,7 +24,14 @@ declare abstract class AgentBase {
22
24
  id: string;
23
25
  info: ModelInfo;
24
26
  };
25
- get usage(): ApiUsage;
27
+ get usage(): {
28
+ messageCount: number;
29
+ inputTokens: number;
30
+ outputTokens: number;
31
+ cacheWriteTokens: number;
32
+ cacheReadTokens: number;
33
+ totalCost: number;
34
+ };
26
35
  }
27
36
  export { AgentBase }
28
37
  export { AgentBase as AgentBase_alias_1 }
@@ -2485,6 +2494,7 @@ declare class UsageMeter {
2485
2494
  provider: string;
2486
2495
  id: string;
2487
2496
  }): void;
2497
+ setUsage(usage: Partial<ApiUsage>, messageCount?: number): void;
2488
2498
  incrementMessageCount(count?: number): void;
2489
2499
  isLimitExceeded(): {
2490
2500
  messageCount: boolean;
@@ -2497,7 +2507,14 @@ declare class UsageMeter {
2497
2507
  /**
2498
2508
  * Get current usage totals
2499
2509
  */
2500
- get usage(): ApiUsage;
2510
+ get usage(): {
2511
+ messageCount: number;
2512
+ inputTokens: number;
2513
+ outputTokens: number;
2514
+ cacheWriteTokens: number;
2515
+ cacheReadTokens: number;
2516
+ totalCost: number;
2517
+ };
2501
2518
  printUsage(): void;
2502
2519
  }
2503
2520
  export { UsageMeter }
package/dist/index.js CHANGED
@@ -777,6 +777,16 @@ var UsageMeter = class {
777
777
  }
778
778
  this.#usage.totalCost += usage.totalCost ?? 0;
779
779
  }
780
+ setUsage(usage, messageCount) {
781
+ this.#usage.inputTokens = usage.inputTokens ?? this.#usage.inputTokens;
782
+ this.#usage.outputTokens = usage.outputTokens ?? this.#usage.outputTokens;
783
+ this.#usage.cacheWriteTokens = usage.cacheWriteTokens ?? this.#usage.cacheWriteTokens;
784
+ this.#usage.cacheReadTokens = usage.cacheReadTokens ?? this.#usage.cacheReadTokens;
785
+ this.#usage.totalCost = usage.totalCost ?? this.#usage.totalCost;
786
+ if (messageCount !== void 0) {
787
+ this.#messageCount = messageCount;
788
+ }
789
+ }
780
790
  incrementMessageCount(count = 1) {
781
791
  this.#messageCount += count;
782
792
  }
@@ -803,7 +813,7 @@ var UsageMeter = class {
803
813
  * Get current usage totals
804
814
  */
805
815
  get usage() {
806
- return { ...this.#usage };
816
+ return { ...this.#usage, messageCount: this.#messageCount };
807
817
  }
808
818
  printUsage() {
809
819
  const { inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens } = this.#usage;
@@ -2247,11 +2257,11 @@ ${agents}`;
2247
2257
  }
2248
2258
  const response = await this.#request(nextRequest);
2249
2259
  const resp = await this.#handleResponse(response);
2250
- if ("exit" in resp) {
2251
- this.#callback({ kind: "EndTask" /* EndTask */, agent: this, exitReason: resp.exit });
2252
- return resp.exit;
2260
+ if (resp.type === "exit") {
2261
+ this.#callback({ kind: "EndTask" /* EndTask */, agent: this, exitReason: resp.reason });
2262
+ return resp.reason;
2253
2263
  }
2254
- nextRequest = resp.replay;
2264
+ nextRequest = resp.message;
2255
2265
  }
2256
2266
  }
2257
2267
  async continueTask(userMessage) {
@@ -2323,7 +2333,7 @@ ${agents}`;
2323
2333
  if (toolReponses.length > 0) {
2324
2334
  break outer;
2325
2335
  }
2326
- return { exit: toolResp };
2336
+ return { type: "exit", reason: toolResp };
2327
2337
  case "Invalid" /* Invalid */:
2328
2338
  await this.#callback({ kind: "ToolInvalid" /* ToolInvalid */, agent: this, tool: content.name });
2329
2339
  toolReponses.push({ tool: content.name, response: toolResp.message });
@@ -2334,7 +2344,7 @@ ${agents}`;
2334
2344
  break outer;
2335
2345
  case "Interrupted" /* Interrupted */:
2336
2346
  await this.#callback({ kind: "ToolInterrupted" /* ToolInterrupted */, agent: this, tool: content.name });
2337
- return { exit: toolResp };
2347
+ return { type: "exit", reason: toolResp };
2338
2348
  case "HandOver" /* HandOver */:
2339
2349
  if (toolReponses.length > 0) {
2340
2350
  break outer;
@@ -2348,7 +2358,7 @@ ${agents}`;
2348
2358
  context: toolResp.context,
2349
2359
  files: toolResp.files
2350
2360
  });
2351
- return { exit: toolResp };
2361
+ return { type: "exit", reason: toolResp };
2352
2362
  case "Delegate" /* Delegate */:
2353
2363
  if (toolReponses.length > 0) {
2354
2364
  continue;
@@ -2362,17 +2372,17 @@ ${agents}`;
2362
2372
  context: toolResp.context,
2363
2373
  files: toolResp.files
2364
2374
  });
2365
- return { exit: toolResp };
2375
+ return { type: "exit", reason: toolResp };
2366
2376
  }
2367
2377
  break;
2368
2378
  }
2369
2379
  }
2370
2380
  }
2371
2381
  if (toolReponses.length === 0) {
2372
- return { replay: responsePrompts.requireUseTool };
2382
+ return { type: "reply", message: responsePrompts.requireUseTool };
2373
2383
  }
2374
2384
  const finalResp = toolReponses.map(({ tool, response: response2 }) => responsePrompts.toolResults(tool, response2)).join("\n\n");
2375
- return { replay: finalResp };
2385
+ return { type: "reply", message: finalResp };
2376
2386
  }
2377
2387
  async #invokeTool(name, args) {
2378
2388
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polka-codes/core",
3
- "version": "0.7.14",
3
+ "version": "0.7.16",
4
4
  "license": "AGPL-3.0",
5
5
  "author": "github@polka.codes",
6
6
  "type": "module",