@posthog/agent 2.3.31 → 2.3.46
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/dist/agent.js +16 -15
- package/dist/agent.js.map +1 -1
- package/dist/gateway-models.d.ts +3 -3
- package/dist/gateway-models.js +8 -11
- package/dist/gateway-models.js.map +1 -1
- package/dist/posthog-api.js +1 -1
- package/dist/posthog-api.js.map +1 -1
- package/dist/server/agent-server.js +5 -1
- package/dist/server/agent-server.js.map +1 -1
- package/dist/server/bin.cjs +5 -1
- package/dist/server/bin.cjs.map +1 -1
- package/dist/types.d.ts +1 -0
- package/package.json +1 -1
- package/src/adapters/claude/claude-agent.ts +5 -0
- package/src/adapters/claude/types.ts +4 -0
- package/src/agent.ts +5 -5
- package/src/gateway-models.ts +15 -18
- package/src/types.ts +1 -0
package/dist/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -346,6 +346,11 @@ export class ClaudeAcpAgent extends BaseAcpAgent {
|
|
|
346
346
|
? Math.min(...contextWindows)
|
|
347
347
|
: getDefaultContextWindow(this.session.modelId ?? "");
|
|
348
348
|
|
|
349
|
+
this.session.contextSize = contextWindowSize;
|
|
350
|
+
if (lastAssistantTotalUsage !== null) {
|
|
351
|
+
this.session.contextUsed = lastAssistantTotalUsage;
|
|
352
|
+
}
|
|
353
|
+
|
|
349
354
|
// Send usage_update notification
|
|
350
355
|
if (lastAssistantTotalUsage !== null) {
|
|
351
356
|
await this.client.sessionUpdate({
|
|
@@ -53,6 +53,10 @@ export type Session = BaseSession & {
|
|
|
53
53
|
effort?: EffortLevel;
|
|
54
54
|
configOptions: SessionConfigOption[];
|
|
55
55
|
accumulatedUsage: AccumulatedUsage;
|
|
56
|
+
/** Latest context window usage (total tokens from last assistant message) */
|
|
57
|
+
contextUsed?: number;
|
|
58
|
+
/** Context window size in tokens */
|
|
59
|
+
contextSize?: number;
|
|
56
60
|
promptRunning: boolean;
|
|
57
61
|
pendingMessages: Map<string, PendingMessage>;
|
|
58
62
|
nextPendingOrder: number;
|
package/src/agent.ts
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
BLOCKED_MODELS,
|
|
7
7
|
DEFAULT_GATEWAY_MODEL,
|
|
8
|
-
|
|
8
|
+
fetchModelsList,
|
|
9
9
|
} from "./gateway-models";
|
|
10
10
|
import { PostHogAPIClient, type TaskRunUpdate } from "./posthog-api";
|
|
11
11
|
import { SessionLogWriter } from "./session-log-writer";
|
|
@@ -45,7 +45,7 @@ export class Agent {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
private _configureLlmGateway(
|
|
48
|
+
private _configureLlmGateway(overrideUrl?: string): {
|
|
49
49
|
gatewayUrl: string;
|
|
50
50
|
apiKey: string;
|
|
51
51
|
} | null {
|
|
@@ -54,7 +54,7 @@ export class Agent {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
try {
|
|
57
|
-
const gatewayUrl = this.posthogAPI.getLlmGatewayUrl();
|
|
57
|
+
const gatewayUrl = overrideUrl ?? this.posthogAPI.getLlmGatewayUrl();
|
|
58
58
|
const apiKey = this.posthogAPI.getApiKey();
|
|
59
59
|
|
|
60
60
|
process.env.OPENAI_BASE_URL = `${gatewayUrl}/v1`;
|
|
@@ -74,7 +74,7 @@ export class Agent {
|
|
|
74
74
|
taskRunId: string,
|
|
75
75
|
options: TaskExecutionOptions = {},
|
|
76
76
|
): Promise<InProcessAcpConnection> {
|
|
77
|
-
const gatewayConfig = this._configureLlmGateway(options.
|
|
77
|
+
const gatewayConfig = this._configureLlmGateway(options.gatewayUrl);
|
|
78
78
|
this.logger.info("Configured LLM gateway", {
|
|
79
79
|
adapter: options.adapter,
|
|
80
80
|
});
|
|
@@ -86,7 +86,7 @@ export class Agent {
|
|
|
86
86
|
? options.model
|
|
87
87
|
: undefined;
|
|
88
88
|
if (options.adapter === "codex" && gatewayConfig) {
|
|
89
|
-
const models = await
|
|
89
|
+
const models = await fetchModelsList({
|
|
90
90
|
gatewayUrl: gatewayConfig.gatewayUrl,
|
|
91
91
|
});
|
|
92
92
|
const codexModelIds = models
|
package/src/gateway-models.ts
CHANGED
|
@@ -19,7 +19,7 @@ export const DEFAULT_GATEWAY_MODEL = "claude-opus-4-6";
|
|
|
19
19
|
|
|
20
20
|
export const BLOCKED_MODELS = new Set(["gpt-5-mini", "openai/gpt-5-mini"]);
|
|
21
21
|
|
|
22
|
-
type
|
|
22
|
+
type ModelsListResponse =
|
|
23
23
|
| {
|
|
24
24
|
data?: Array<{ id?: string; owned_by?: string }>;
|
|
25
25
|
models?: Array<{ id?: string; owned_by?: string }>;
|
|
@@ -79,53 +79,50 @@ export function isAnthropicModel(model: GatewayModel): boolean {
|
|
|
79
79
|
return model.id.startsWith("claude-") || model.id.startsWith("anthropic/");
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
export interface
|
|
82
|
+
export interface ModelInfo {
|
|
83
83
|
id: string;
|
|
84
84
|
owned_by?: string;
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
let
|
|
88
|
-
models:
|
|
87
|
+
let modelsListCache: {
|
|
88
|
+
models: ModelInfo[];
|
|
89
89
|
expiry: number;
|
|
90
90
|
url: string;
|
|
91
91
|
} | null = null;
|
|
92
92
|
|
|
93
|
-
export async function
|
|
93
|
+
export async function fetchModelsList(
|
|
94
94
|
options?: FetchGatewayModelsOptions,
|
|
95
|
-
): Promise<
|
|
95
|
+
): Promise<ModelInfo[]> {
|
|
96
96
|
const gatewayUrl = options?.gatewayUrl ?? process.env.ANTHROPIC_BASE_URL;
|
|
97
97
|
if (!gatewayUrl) {
|
|
98
98
|
return [];
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
if (
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
Date.now() <
|
|
102
|
+
modelsListCache &&
|
|
103
|
+
modelsListCache.url === gatewayUrl &&
|
|
104
|
+
Date.now() < modelsListCache.expiry
|
|
105
105
|
) {
|
|
106
|
-
return
|
|
106
|
+
return modelsListCache.models;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
try {
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
base.search = "";
|
|
113
|
-
base.hash = "";
|
|
114
|
-
const response = await fetch(base.toString());
|
|
110
|
+
const modelsUrl = `${gatewayUrl}/v1/models`;
|
|
111
|
+
const response = await fetch(modelsUrl);
|
|
115
112
|
if (!response.ok) {
|
|
116
113
|
return [];
|
|
117
114
|
}
|
|
118
|
-
const data = (await response.json()) as
|
|
115
|
+
const data = (await response.json()) as ModelsListResponse;
|
|
119
116
|
const models = Array.isArray(data)
|
|
120
117
|
? data
|
|
121
118
|
: (data.data ?? data.models ?? []);
|
|
122
|
-
const results:
|
|
119
|
+
const results: ModelInfo[] = [];
|
|
123
120
|
for (const model of models) {
|
|
124
121
|
const id = model?.id ? String(model.id) : "";
|
|
125
122
|
if (!id) continue;
|
|
126
123
|
results.push({ id, owned_by: model?.owned_by });
|
|
127
124
|
}
|
|
128
|
-
|
|
125
|
+
modelsListCache = {
|
|
129
126
|
models: results,
|
|
130
127
|
expiry: Date.now() + CACHE_TTL,
|
|
131
128
|
url: gatewayUrl,
|
package/src/types.ts
CHANGED