@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
package/dist/index.js
CHANGED
|
@@ -1174,7 +1174,7 @@ import { v7 as uuidv7 } from "uuid";
|
|
|
1174
1174
|
// package.json
|
|
1175
1175
|
var package_default = {
|
|
1176
1176
|
name: "@posthog/agent",
|
|
1177
|
-
version: "2.1.
|
|
1177
|
+
version: "2.1.48",
|
|
1178
1178
|
repository: "https://github.com/PostHog/twig",
|
|
1179
1179
|
description: "TypeScript agent framework wrapping Claude Agent SDK with Git-based task execution for PostHog",
|
|
1180
1180
|
exports: {
|
|
@@ -3291,12 +3291,12 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3291
3291
|
backgroundTerminals = {};
|
|
3292
3292
|
clientCapabilities;
|
|
3293
3293
|
logWriter;
|
|
3294
|
-
|
|
3294
|
+
options;
|
|
3295
3295
|
lastSentConfigOptions;
|
|
3296
|
-
constructor(client, logWriter,
|
|
3296
|
+
constructor(client, logWriter, options) {
|
|
3297
3297
|
super(client);
|
|
3298
3298
|
this.logWriter = logWriter;
|
|
3299
|
-
this.
|
|
3299
|
+
this.options = options;
|
|
3300
3300
|
this.toolUseCache = {};
|
|
3301
3301
|
this.logger = new Logger({ debug: true, prefix: "[ClaudeAcpAgent]" });
|
|
3302
3302
|
}
|
|
@@ -3343,7 +3343,6 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3343
3343
|
const sessionId = uuidv7();
|
|
3344
3344
|
const permissionMode = meta?.permissionMode && TWIG_EXECUTION_MODES.includes(meta.permissionMode) ? meta.permissionMode : "default";
|
|
3345
3345
|
const mcpServers = parseMcpServers(params);
|
|
3346
|
-
const mcpMetadataPromise = fetchMcpToolMetadata(mcpServers, this.logger);
|
|
3347
3346
|
const options = buildSessionOptions({
|
|
3348
3347
|
cwd: params.cwd,
|
|
3349
3348
|
mcpServers,
|
|
@@ -3355,8 +3354,8 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3355
3354
|
sessionId,
|
|
3356
3355
|
isResume: false,
|
|
3357
3356
|
onModeChange: this.createOnModeChange(sessionId),
|
|
3358
|
-
onProcessSpawned: this.
|
|
3359
|
-
onProcessExited: this.
|
|
3357
|
+
onProcessSpawned: this.options?.onProcessSpawned,
|
|
3358
|
+
onProcessExited: this.options?.onProcessExited
|
|
3360
3359
|
});
|
|
3361
3360
|
const input = new Pushable();
|
|
3362
3361
|
const q = query({ prompt: input, options });
|
|
@@ -3377,17 +3376,14 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3377
3376
|
adapter: "claude"
|
|
3378
3377
|
});
|
|
3379
3378
|
}
|
|
3380
|
-
const
|
|
3381
|
-
|
|
3382
|
-
getAvailableSlashCommands(q),
|
|
3383
|
-
mcpMetadataPromise
|
|
3384
|
-
]);
|
|
3379
|
+
const modelOptions = await this.getModelConfigOptions();
|
|
3380
|
+
this.deferBackgroundFetches(q, sessionId, mcpServers);
|
|
3385
3381
|
session.modelId = modelOptions.currentModelId;
|
|
3386
3382
|
await this.trySetModel(q, modelOptions.currentModelId);
|
|
3387
|
-
this.
|
|
3383
|
+
const configOptions = await this.buildConfigOptions(modelOptions);
|
|
3388
3384
|
return {
|
|
3389
3385
|
sessionId,
|
|
3390
|
-
configOptions
|
|
3386
|
+
configOptions
|
|
3391
3387
|
};
|
|
3392
3388
|
}
|
|
3393
3389
|
async loadSession(params) {
|
|
@@ -3403,7 +3399,6 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3403
3399
|
return {};
|
|
3404
3400
|
}
|
|
3405
3401
|
const mcpServers = parseMcpServers(params);
|
|
3406
|
-
const mcpMetadataPromise = fetchMcpToolMetadata(mcpServers, this.logger);
|
|
3407
3402
|
const permissionMode = meta?.permissionMode && TWIG_EXECUTION_MODES.includes(meta.permissionMode) ? meta.permissionMode : "default";
|
|
3408
3403
|
const { query: q, session } = await this.initializeQuery({
|
|
3409
3404
|
cwd: params.cwd,
|
|
@@ -3417,14 +3412,9 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3417
3412
|
});
|
|
3418
3413
|
session.taskRunId = meta?.taskRunId;
|
|
3419
3414
|
this.registerPersistence(sessionId, meta);
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
|
|
3423
|
-
]);
|
|
3424
|
-
this.sendAvailableCommandsUpdate(sessionId, slashCommands);
|
|
3425
|
-
return {
|
|
3426
|
-
configOptions: await this.buildConfigOptions()
|
|
3427
|
-
};
|
|
3415
|
+
this.deferBackgroundFetches(q, sessionId, mcpServers);
|
|
3416
|
+
const configOptions = await this.buildConfigOptions();
|
|
3417
|
+
return { configOptions };
|
|
3428
3418
|
}
|
|
3429
3419
|
async prompt(params) {
|
|
3430
3420
|
this.session.cancelled = false;
|
|
@@ -3496,8 +3486,8 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3496
3486
|
isResume: config.isResume,
|
|
3497
3487
|
additionalDirectories: config.additionalDirectories,
|
|
3498
3488
|
onModeChange: this.createOnModeChange(config.sessionId),
|
|
3499
|
-
onProcessSpawned: this.
|
|
3500
|
-
onProcessExited: this.
|
|
3489
|
+
onProcessSpawned: this.options?.onProcessSpawned,
|
|
3490
|
+
onProcessExited: this.options?.onProcessExited
|
|
3501
3491
|
});
|
|
3502
3492
|
const q = query({ prompt: input, options });
|
|
3503
3493
|
const abortController = options.abortController;
|
|
@@ -3607,6 +3597,20 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3607
3597
|
await q.setModel(fallback);
|
|
3608
3598
|
}
|
|
3609
3599
|
}
|
|
3600
|
+
/**
|
|
3601
|
+
* Fire-and-forget: fetch slash commands and MCP tool metadata in parallel.
|
|
3602
|
+
* Both populate caches used later — neither is needed to return configOptions.
|
|
3603
|
+
*/
|
|
3604
|
+
deferBackgroundFetches(q, sessionId, mcpServers) {
|
|
3605
|
+
Promise.all([
|
|
3606
|
+
getAvailableSlashCommands(q),
|
|
3607
|
+
fetchMcpToolMetadata(mcpServers, this.logger)
|
|
3608
|
+
]).then(([slashCommands]) => {
|
|
3609
|
+
this.sendAvailableCommandsUpdate(sessionId, slashCommands);
|
|
3610
|
+
}).catch((err) => {
|
|
3611
|
+
this.logger.warn("Failed to fetch deferred session data", { err });
|
|
3612
|
+
});
|
|
3613
|
+
}
|
|
3610
3614
|
registerPersistence(sessionId, meta) {
|
|
3611
3615
|
const persistence = meta?.persistence;
|
|
3612
3616
|
if (persistence && this.logWriter) {
|