@posthog/agent 2.1.29 → 2.1.45
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/adapters/claude/permissions/permission-options.js +1 -1
- package/dist/adapters/claude/permissions/permission-options.js.map +1 -1
- package/dist/adapters/claude/tools.js +1 -1
- package/dist/adapters/claude/tools.js.map +1 -1
- package/dist/agent.js +38 -21
- package/dist/agent.js.map +1 -1
- package/dist/gateway-models.js +21 -2
- package/dist/gateway-models.js.map +1 -1
- package/dist/index.js +44 -27
- package/dist/index.js.map +1 -1
- package/dist/server/agent-server.js +35 -27
- package/dist/server/agent-server.js.map +1 -1
- package/dist/server/bin.cjs +29 -21
- package/dist/server/bin.cjs.map +1 -1
- package/package.json +3 -3
- package/src/adapters/claude/claude-agent.ts +23 -11
- package/src/adapters/claude/session/options.ts +3 -7
- package/src/adapters/claude/tools.ts +1 -1
- package/src/gateway-models.ts +42 -2
package/dist/server/bin.cjs
CHANGED
|
@@ -1175,7 +1175,7 @@ var import_uuid = require("uuid");
|
|
|
1175
1175
|
// package.json
|
|
1176
1176
|
var package_default = {
|
|
1177
1177
|
name: "@posthog/agent",
|
|
1178
|
-
version: "2.1.
|
|
1178
|
+
version: "2.1.45",
|
|
1179
1179
|
repository: "https://github.com/PostHog/twig",
|
|
1180
1180
|
description: "TypeScript agent framework wrapping Claude Agent SDK with Git-based task execution for PostHog",
|
|
1181
1181
|
exports: {
|
|
@@ -1306,11 +1306,16 @@ function unreachable(value, logger) {
|
|
|
1306
1306
|
// src/gateway-models.ts
|
|
1307
1307
|
var DEFAULT_GATEWAY_MODEL = "claude-opus-4-6";
|
|
1308
1308
|
var BLOCKED_MODELS = /* @__PURE__ */ new Set(["gpt-5-mini", "openai/gpt-5-mini"]);
|
|
1309
|
+
var CACHE_TTL = 10 * 60 * 1e3;
|
|
1310
|
+
var gatewayModelsCache = null;
|
|
1309
1311
|
async function fetchGatewayModels(options) {
|
|
1310
1312
|
const gatewayUrl = options?.gatewayUrl ?? process.env.ANTHROPIC_BASE_URL;
|
|
1311
1313
|
if (!gatewayUrl) {
|
|
1312
1314
|
return [];
|
|
1313
1315
|
}
|
|
1316
|
+
if (gatewayModelsCache && gatewayModelsCache.url === gatewayUrl && Date.now() < gatewayModelsCache.expiry) {
|
|
1317
|
+
return gatewayModelsCache.models;
|
|
1318
|
+
}
|
|
1314
1319
|
const modelsUrl = `${gatewayUrl}/v1/models`;
|
|
1315
1320
|
try {
|
|
1316
1321
|
const response = await fetch(modelsUrl);
|
|
@@ -1318,8 +1323,13 @@ async function fetchGatewayModels(options) {
|
|
|
1318
1323
|
return [];
|
|
1319
1324
|
}
|
|
1320
1325
|
const data = await response.json();
|
|
1321
|
-
const models = data.data ?? [];
|
|
1322
|
-
|
|
1326
|
+
const models = (data.data ?? []).filter((m) => !BLOCKED_MODELS.has(m.id));
|
|
1327
|
+
gatewayModelsCache = {
|
|
1328
|
+
models,
|
|
1329
|
+
expiry: Date.now() + CACHE_TTL,
|
|
1330
|
+
url: gatewayUrl
|
|
1331
|
+
};
|
|
1332
|
+
return models;
|
|
1323
1333
|
} catch {
|
|
1324
1334
|
return [];
|
|
1325
1335
|
}
|
|
@@ -2600,7 +2610,7 @@ var BASH_TOOLS = /* @__PURE__ */ new Set([
|
|
|
2600
2610
|
]);
|
|
2601
2611
|
var SEARCH_TOOLS = /* @__PURE__ */ new Set(["Glob", "Grep", "LS"]);
|
|
2602
2612
|
var WEB_TOOLS = /* @__PURE__ */ new Set(["WebSearch", "WebFetch"]);
|
|
2603
|
-
var AGENT_TOOLS = /* @__PURE__ */ new Set(["Task", "TodoWrite"]);
|
|
2613
|
+
var AGENT_TOOLS = /* @__PURE__ */ new Set(["Task", "TodoWrite", "Skill"]);
|
|
2604
2614
|
var BASE_ALLOWED_TOOLS = [
|
|
2605
2615
|
...READ_TOOLS,
|
|
2606
2616
|
...SEARCH_TOOLS,
|
|
@@ -3227,12 +3237,8 @@ function clearStatsigCache() {
|
|
|
3227
3237
|
process.env.CLAUDE_CONFIG_DIR || path2.join(os2.homedir(), ".claude"),
|
|
3228
3238
|
"statsig"
|
|
3229
3239
|
);
|
|
3230
|
-
|
|
3231
|
-
|
|
3232
|
-
fs.rmSync(statsigPath, { recursive: true, force: true });
|
|
3233
|
-
}
|
|
3234
|
-
} catch {
|
|
3235
|
-
}
|
|
3240
|
+
fs.rm(statsigPath, { recursive: true, force: true }, () => {
|
|
3241
|
+
});
|
|
3236
3242
|
}
|
|
3237
3243
|
|
|
3238
3244
|
// src/adapters/claude/claude-agent.ts
|
|
@@ -3294,7 +3300,7 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3294
3300
|
const sessionId = (0, import_uuid.v7)();
|
|
3295
3301
|
const permissionMode = meta?.permissionMode && TWIG_EXECUTION_MODES.includes(meta.permissionMode) ? meta.permissionMode : "default";
|
|
3296
3302
|
const mcpServers = parseMcpServers(params);
|
|
3297
|
-
|
|
3303
|
+
const mcpMetadataPromise = fetchMcpToolMetadata(mcpServers, this.logger);
|
|
3298
3304
|
const options = buildSessionOptions({
|
|
3299
3305
|
cwd: params.cwd,
|
|
3300
3306
|
mcpServers,
|
|
@@ -3328,13 +3334,14 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3328
3334
|
adapter: "claude"
|
|
3329
3335
|
});
|
|
3330
3336
|
}
|
|
3331
|
-
const modelOptions = await
|
|
3337
|
+
const [modelOptions, slashCommands] = await Promise.all([
|
|
3338
|
+
this.getModelConfigOptions(),
|
|
3339
|
+
getAvailableSlashCommands(q),
|
|
3340
|
+
mcpMetadataPromise
|
|
3341
|
+
]);
|
|
3332
3342
|
session.modelId = modelOptions.currentModelId;
|
|
3333
3343
|
await this.trySetModel(q, modelOptions.currentModelId);
|
|
3334
|
-
this.sendAvailableCommandsUpdate(
|
|
3335
|
-
sessionId,
|
|
3336
|
-
await getAvailableSlashCommands(q)
|
|
3337
|
-
);
|
|
3344
|
+
this.sendAvailableCommandsUpdate(sessionId, slashCommands);
|
|
3338
3345
|
return {
|
|
3339
3346
|
sessionId,
|
|
3340
3347
|
configOptions: await this.buildConfigOptions(modelOptions)
|
|
@@ -3353,7 +3360,7 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3353
3360
|
return {};
|
|
3354
3361
|
}
|
|
3355
3362
|
const mcpServers = parseMcpServers(params);
|
|
3356
|
-
|
|
3363
|
+
const mcpMetadataPromise = fetchMcpToolMetadata(mcpServers, this.logger);
|
|
3357
3364
|
const permissionMode = meta?.permissionMode && TWIG_EXECUTION_MODES.includes(meta.permissionMode) ? meta.permissionMode : "default";
|
|
3358
3365
|
const { query: q, session } = await this.initializeQuery({
|
|
3359
3366
|
cwd: params.cwd,
|
|
@@ -3367,10 +3374,11 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3367
3374
|
});
|
|
3368
3375
|
session.taskRunId = meta?.taskRunId;
|
|
3369
3376
|
this.registerPersistence(sessionId, meta);
|
|
3370
|
-
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
);
|
|
3377
|
+
const [slashCommands] = await Promise.all([
|
|
3378
|
+
getAvailableSlashCommands(q),
|
|
3379
|
+
mcpMetadataPromise
|
|
3380
|
+
]);
|
|
3381
|
+
this.sendAvailableCommandsUpdate(sessionId, slashCommands);
|
|
3374
3382
|
return {
|
|
3375
3383
|
configOptions: await this.buildConfigOptions()
|
|
3376
3384
|
};
|