@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/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.48",
|
|
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: {
|
|
@@ -3248,12 +3248,12 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3248
3248
|
backgroundTerminals = {};
|
|
3249
3249
|
clientCapabilities;
|
|
3250
3250
|
logWriter;
|
|
3251
|
-
|
|
3251
|
+
options;
|
|
3252
3252
|
lastSentConfigOptions;
|
|
3253
|
-
constructor(client, logWriter,
|
|
3253
|
+
constructor(client, logWriter, options) {
|
|
3254
3254
|
super(client);
|
|
3255
3255
|
this.logWriter = logWriter;
|
|
3256
|
-
this.
|
|
3256
|
+
this.options = options;
|
|
3257
3257
|
this.toolUseCache = {};
|
|
3258
3258
|
this.logger = new Logger({ debug: true, prefix: "[ClaudeAcpAgent]" });
|
|
3259
3259
|
}
|
|
@@ -3300,7 +3300,6 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3300
3300
|
const sessionId = (0, import_uuid.v7)();
|
|
3301
3301
|
const permissionMode = meta?.permissionMode && TWIG_EXECUTION_MODES.includes(meta.permissionMode) ? meta.permissionMode : "default";
|
|
3302
3302
|
const mcpServers = parseMcpServers(params);
|
|
3303
|
-
const mcpMetadataPromise = fetchMcpToolMetadata(mcpServers, this.logger);
|
|
3304
3303
|
const options = buildSessionOptions({
|
|
3305
3304
|
cwd: params.cwd,
|
|
3306
3305
|
mcpServers,
|
|
@@ -3312,8 +3311,8 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3312
3311
|
sessionId,
|
|
3313
3312
|
isResume: false,
|
|
3314
3313
|
onModeChange: this.createOnModeChange(sessionId),
|
|
3315
|
-
onProcessSpawned: this.
|
|
3316
|
-
onProcessExited: this.
|
|
3314
|
+
onProcessSpawned: this.options?.onProcessSpawned,
|
|
3315
|
+
onProcessExited: this.options?.onProcessExited
|
|
3317
3316
|
});
|
|
3318
3317
|
const input = new Pushable();
|
|
3319
3318
|
const q = (0, import_claude_agent_sdk.query)({ prompt: input, options });
|
|
@@ -3334,17 +3333,14 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3334
3333
|
adapter: "claude"
|
|
3335
3334
|
});
|
|
3336
3335
|
}
|
|
3337
|
-
const
|
|
3338
|
-
|
|
3339
|
-
getAvailableSlashCommands(q),
|
|
3340
|
-
mcpMetadataPromise
|
|
3341
|
-
]);
|
|
3336
|
+
const modelOptions = await this.getModelConfigOptions();
|
|
3337
|
+
this.deferBackgroundFetches(q, sessionId, mcpServers);
|
|
3342
3338
|
session.modelId = modelOptions.currentModelId;
|
|
3343
3339
|
await this.trySetModel(q, modelOptions.currentModelId);
|
|
3344
|
-
this.
|
|
3340
|
+
const configOptions = await this.buildConfigOptions(modelOptions);
|
|
3345
3341
|
return {
|
|
3346
3342
|
sessionId,
|
|
3347
|
-
configOptions
|
|
3343
|
+
configOptions
|
|
3348
3344
|
};
|
|
3349
3345
|
}
|
|
3350
3346
|
async loadSession(params) {
|
|
@@ -3360,7 +3356,6 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3360
3356
|
return {};
|
|
3361
3357
|
}
|
|
3362
3358
|
const mcpServers = parseMcpServers(params);
|
|
3363
|
-
const mcpMetadataPromise = fetchMcpToolMetadata(mcpServers, this.logger);
|
|
3364
3359
|
const permissionMode = meta?.permissionMode && TWIG_EXECUTION_MODES.includes(meta.permissionMode) ? meta.permissionMode : "default";
|
|
3365
3360
|
const { query: q, session } = await this.initializeQuery({
|
|
3366
3361
|
cwd: params.cwd,
|
|
@@ -3374,14 +3369,9 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3374
3369
|
});
|
|
3375
3370
|
session.taskRunId = meta?.taskRunId;
|
|
3376
3371
|
this.registerPersistence(sessionId, meta);
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
]);
|
|
3381
|
-
this.sendAvailableCommandsUpdate(sessionId, slashCommands);
|
|
3382
|
-
return {
|
|
3383
|
-
configOptions: await this.buildConfigOptions()
|
|
3384
|
-
};
|
|
3372
|
+
this.deferBackgroundFetches(q, sessionId, mcpServers);
|
|
3373
|
+
const configOptions = await this.buildConfigOptions();
|
|
3374
|
+
return { configOptions };
|
|
3385
3375
|
}
|
|
3386
3376
|
async prompt(params) {
|
|
3387
3377
|
this.session.cancelled = false;
|
|
@@ -3453,8 +3443,8 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3453
3443
|
isResume: config.isResume,
|
|
3454
3444
|
additionalDirectories: config.additionalDirectories,
|
|
3455
3445
|
onModeChange: this.createOnModeChange(config.sessionId),
|
|
3456
|
-
onProcessSpawned: this.
|
|
3457
|
-
onProcessExited: this.
|
|
3446
|
+
onProcessSpawned: this.options?.onProcessSpawned,
|
|
3447
|
+
onProcessExited: this.options?.onProcessExited
|
|
3458
3448
|
});
|
|
3459
3449
|
const q = (0, import_claude_agent_sdk.query)({ prompt: input, options });
|
|
3460
3450
|
const abortController = options.abortController;
|
|
@@ -3564,6 +3554,20 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
3564
3554
|
await q.setModel(fallback);
|
|
3565
3555
|
}
|
|
3566
3556
|
}
|
|
3557
|
+
/**
|
|
3558
|
+
* Fire-and-forget: fetch slash commands and MCP tool metadata in parallel.
|
|
3559
|
+
* Both populate caches used later — neither is needed to return configOptions.
|
|
3560
|
+
*/
|
|
3561
|
+
deferBackgroundFetches(q, sessionId, mcpServers) {
|
|
3562
|
+
Promise.all([
|
|
3563
|
+
getAvailableSlashCommands(q),
|
|
3564
|
+
fetchMcpToolMetadata(mcpServers, this.logger)
|
|
3565
|
+
]).then(([slashCommands]) => {
|
|
3566
|
+
this.sendAvailableCommandsUpdate(sessionId, slashCommands);
|
|
3567
|
+
}).catch((err) => {
|
|
3568
|
+
this.logger.warn("Failed to fetch deferred session data", { err });
|
|
3569
|
+
});
|
|
3570
|
+
}
|
|
3567
3571
|
registerPersistence(sessionId, meta) {
|
|
3568
3572
|
const persistence = meta?.persistence;
|
|
3569
3573
|
if (persistence && this.logWriter) {
|