@posthog/agent 2.1.45 → 2.1.48
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 +29 -25
- package/dist/agent.js.map +1 -1
- package/dist/index.js +29 -25
- package/dist/index.js.map +1 -1
- package/dist/server/agent-server.js +29 -25
- package/dist/server/agent-server.js.map +1 -1
- package/dist/server/bin.cjs +29 -25
- package/dist/server/bin.cjs.map +1 -1
- package/package.json +3 -3
- package/src/adapters/claude/claude-agent.ts +41 -32
|
@@ -1183,7 +1183,7 @@ import { v7 as uuidv7 } from "uuid";
|
|
|
1183
1183
|
// package.json
|
|
1184
1184
|
var package_default = {
|
|
1185
1185
|
name: "@posthog/agent",
|
|
1186
|
-
version: "2.1.
|
|
1186
|
+
version: "2.1.48",
|
|
1187
1187
|
repository: "https://github.com/PostHog/twig",
|
|
1188
1188
|
description: "TypeScript agent framework wrapping Claude Agent SDK with Git-based task execution for PostHog",
|
|
1189
1189
|
exports: {
|
|
@@ -3256,12 +3256,12 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3256
3256
|
backgroundTerminals = {};
|
|
3257
3257
|
clientCapabilities;
|
|
3258
3258
|
logWriter;
|
|
3259
|
-
|
|
3259
|
+
options;
|
|
3260
3260
|
lastSentConfigOptions;
|
|
3261
|
-
constructor(client, logWriter,
|
|
3261
|
+
constructor(client, logWriter, options) {
|
|
3262
3262
|
super(client);
|
|
3263
3263
|
this.logWriter = logWriter;
|
|
3264
|
-
this.
|
|
3264
|
+
this.options = options;
|
|
3265
3265
|
this.toolUseCache = {};
|
|
3266
3266
|
this.logger = new Logger({ debug: true, prefix: "[ClaudeAcpAgent]" });
|
|
3267
3267
|
}
|
|
@@ -3308,7 +3308,6 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3308
3308
|
const sessionId = uuidv7();
|
|
3309
3309
|
const permissionMode = meta?.permissionMode && TWIG_EXECUTION_MODES.includes(meta.permissionMode) ? meta.permissionMode : "default";
|
|
3310
3310
|
const mcpServers = parseMcpServers(params);
|
|
3311
|
-
const mcpMetadataPromise = fetchMcpToolMetadata(mcpServers, this.logger);
|
|
3312
3311
|
const options = buildSessionOptions({
|
|
3313
3312
|
cwd: params.cwd,
|
|
3314
3313
|
mcpServers,
|
|
@@ -3320,8 +3319,8 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3320
3319
|
sessionId,
|
|
3321
3320
|
isResume: false,
|
|
3322
3321
|
onModeChange: this.createOnModeChange(sessionId),
|
|
3323
|
-
onProcessSpawned: this.
|
|
3324
|
-
onProcessExited: this.
|
|
3322
|
+
onProcessSpawned: this.options?.onProcessSpawned,
|
|
3323
|
+
onProcessExited: this.options?.onProcessExited
|
|
3325
3324
|
});
|
|
3326
3325
|
const input = new Pushable();
|
|
3327
3326
|
const q = query({ prompt: input, options });
|
|
@@ -3342,17 +3341,14 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3342
3341
|
adapter: "claude"
|
|
3343
3342
|
});
|
|
3344
3343
|
}
|
|
3345
|
-
const
|
|
3346
|
-
|
|
3347
|
-
getAvailableSlashCommands(q),
|
|
3348
|
-
mcpMetadataPromise
|
|
3349
|
-
]);
|
|
3344
|
+
const modelOptions = await this.getModelConfigOptions();
|
|
3345
|
+
this.deferBackgroundFetches(q, sessionId, mcpServers);
|
|
3350
3346
|
session.modelId = modelOptions.currentModelId;
|
|
3351
3347
|
await this.trySetModel(q, modelOptions.currentModelId);
|
|
3352
|
-
this.
|
|
3348
|
+
const configOptions = await this.buildConfigOptions(modelOptions);
|
|
3353
3349
|
return {
|
|
3354
3350
|
sessionId,
|
|
3355
|
-
configOptions
|
|
3351
|
+
configOptions
|
|
3356
3352
|
};
|
|
3357
3353
|
}
|
|
3358
3354
|
async loadSession(params) {
|
|
@@ -3368,7 +3364,6 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3368
3364
|
return {};
|
|
3369
3365
|
}
|
|
3370
3366
|
const mcpServers = parseMcpServers(params);
|
|
3371
|
-
const mcpMetadataPromise = fetchMcpToolMetadata(mcpServers, this.logger);
|
|
3372
3367
|
const permissionMode = meta?.permissionMode && TWIG_EXECUTION_MODES.includes(meta.permissionMode) ? meta.permissionMode : "default";
|
|
3373
3368
|
const { query: q, session } = await this.initializeQuery({
|
|
3374
3369
|
cwd: params.cwd,
|
|
@@ -3382,14 +3377,9 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3382
3377
|
});
|
|
3383
3378
|
session.taskRunId = meta?.taskRunId;
|
|
3384
3379
|
this.registerPersistence(sessionId, meta);
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
]);
|
|
3389
|
-
this.sendAvailableCommandsUpdate(sessionId, slashCommands);
|
|
3390
|
-
return {
|
|
3391
|
-
configOptions: await this.buildConfigOptions()
|
|
3392
|
-
};
|
|
3380
|
+
this.deferBackgroundFetches(q, sessionId, mcpServers);
|
|
3381
|
+
const configOptions = await this.buildConfigOptions();
|
|
3382
|
+
return { configOptions };
|
|
3393
3383
|
}
|
|
3394
3384
|
async prompt(params) {
|
|
3395
3385
|
this.session.cancelled = false;
|
|
@@ -3461,8 +3451,8 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3461
3451
|
isResume: config.isResume,
|
|
3462
3452
|
additionalDirectories: config.additionalDirectories,
|
|
3463
3453
|
onModeChange: this.createOnModeChange(config.sessionId),
|
|
3464
|
-
onProcessSpawned: this.
|
|
3465
|
-
onProcessExited: this.
|
|
3454
|
+
onProcessSpawned: this.options?.onProcessSpawned,
|
|
3455
|
+
onProcessExited: this.options?.onProcessExited
|
|
3466
3456
|
});
|
|
3467
3457
|
const q = query({ prompt: input, options });
|
|
3468
3458
|
const abortController = options.abortController;
|
|
@@ -3572,6 +3562,20 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3572
3562
|
await q.setModel(fallback);
|
|
3573
3563
|
}
|
|
3574
3564
|
}
|
|
3565
|
+
/**
|
|
3566
|
+
* Fire-and-forget: fetch slash commands and MCP tool metadata in parallel.
|
|
3567
|
+
* Both populate caches used later — neither is needed to return configOptions.
|
|
3568
|
+
*/
|
|
3569
|
+
deferBackgroundFetches(q, sessionId, mcpServers) {
|
|
3570
|
+
Promise.all([
|
|
3571
|
+
getAvailableSlashCommands(q),
|
|
3572
|
+
fetchMcpToolMetadata(mcpServers, this.logger)
|
|
3573
|
+
]).then(([slashCommands]) => {
|
|
3574
|
+
this.sendAvailableCommandsUpdate(sessionId, slashCommands);
|
|
3575
|
+
}).catch((err) => {
|
|
3576
|
+
this.logger.warn("Failed to fetch deferred session data", { err });
|
|
3577
|
+
});
|
|
3578
|
+
}
|
|
3575
3579
|
registerPersistence(sessionId, meta) {
|
|
3576
3580
|
const persistence = meta?.persistence;
|
|
3577
3581
|
if (persistence && this.logWriter) {
|