@townco/agent 0.1.78 → 0.1.79

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.
@@ -13,6 +13,7 @@ export interface ContextSize {
13
13
  toolResultsTokens: number;
14
14
  totalEstimated: number;
15
15
  llmReportedInputTokens?: number | undefined;
16
+ modelContextWindow?: number;
16
17
  }
17
18
  /**
18
19
  * Calculate the full context size by counting ALL tokens in the provided messages.
@@ -30,5 +31,7 @@ export interface ContextSize {
30
31
  * @param llmReportedTokens - From API usage_metadata.input_tokens
31
32
  * @param toolOverheadTokens - Pre-calculated tool overhead (built-in/custom/filesystem tool definitions + TODO instructions)
32
33
  * @param mcpOverheadTokens - Pre-calculated MCP tool overhead (MCP tool definitions)
34
+ * @param modelContextWindow - Model's max context window size
35
+ * @param excludeToolResults - When true, don't count toolResultsTokens (use at turn end since tool results aren't sent in subsequent turns)
33
36
  */
34
- export declare function calculateContextSize(messages: SessionMessage[], systemPrompt?: string, llmReportedTokens?: number, toolOverheadTokens?: number, mcpOverheadTokens?: number): ContextSize;
37
+ export declare function calculateContextSize(messages: SessionMessage[], systemPrompt?: string, llmReportedTokens?: number, toolOverheadTokens?: number, mcpOverheadTokens?: number, modelContextWindow?: number, excludeToolResults?: boolean): ContextSize;
@@ -43,8 +43,10 @@ function countContentBlock(block) {
43
43
  * @param llmReportedTokens - From API usage_metadata.input_tokens
44
44
  * @param toolOverheadTokens - Pre-calculated tool overhead (built-in/custom/filesystem tool definitions + TODO instructions)
45
45
  * @param mcpOverheadTokens - Pre-calculated MCP tool overhead (MCP tool definitions)
46
+ * @param modelContextWindow - Model's max context window size
47
+ * @param excludeToolResults - When true, don't count toolResultsTokens (use at turn end since tool results aren't sent in subsequent turns)
46
48
  */
47
- export function calculateContextSize(messages, systemPrompt, llmReportedTokens, toolOverheadTokens, mcpOverheadTokens) {
49
+ export function calculateContextSize(messages, systemPrompt, llmReportedTokens, toolOverheadTokens, mcpOverheadTokens, modelContextWindow, excludeToolResults) {
48
50
  const systemPromptTokens = systemPrompt ? countTokens(systemPrompt) : 0;
49
51
  const toolOverheadTokensEstimate = toolOverheadTokens ?? 0;
50
52
  const mcpOverheadTokensEstimate = mcpOverheadTokens ?? 0;
@@ -63,7 +65,10 @@ export function calculateContextSize(messages, systemPrompt, llmReportedTokens,
63
65
  else if (message.role === "assistant") {
64
66
  assistantMessagesTokens += counts.textTokens;
65
67
  toolInputTokens += counts.toolInputTokens;
66
- toolResultsTokens += counts.toolResultTokens;
68
+ // Only count tool results if not excluded (at turn end, tool results won't be sent again)
69
+ if (!excludeToolResults) {
70
+ toolResultsTokens += counts.toolResultTokens;
71
+ }
67
72
  }
68
73
  }
69
74
  }
@@ -91,5 +96,8 @@ export function calculateContextSize(messages, systemPrompt, llmReportedTokens,
91
96
  if (llmReportedTokens !== undefined) {
92
97
  result.llmReportedInputTokens = llmReportedTokens;
93
98
  }
99
+ if (modelContextWindow !== undefined) {
100
+ result.modelContextWindow = modelContextWindow;
101
+ }
94
102
  return result;
95
103
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@townco/agent",
3
- "version": "0.1.78",
3
+ "version": "0.1.79",
4
4
  "type": "module",
5
5
  "module": "index.ts",
6
6
  "files": [
@@ -79,11 +79,11 @@
79
79
  "@opentelemetry/sdk-trace-base": "^1.28.0",
80
80
  "@opentelemetry/sdk-trace-node": "^1.28.0",
81
81
  "@opentelemetry/semantic-conventions": "^1.28.0",
82
- "@townco/core": "0.0.51",
83
- "@townco/gui-template": "0.1.70",
84
- "@townco/tsconfig": "0.1.70",
85
- "@townco/tui-template": "0.1.70",
86
- "@townco/ui": "0.1.73",
82
+ "@townco/core": "0.0.52",
83
+ "@townco/gui-template": "0.1.71",
84
+ "@townco/tsconfig": "0.1.71",
85
+ "@townco/tui-template": "0.1.71",
86
+ "@townco/ui": "0.1.74",
87
87
  "exa-js": "^2.0.0",
88
88
  "hono": "^4.10.4",
89
89
  "langchain": "^1.0.3",