@posthog/agent 2.3.24 → 2.3.43
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/session/jsonl-hydration.js +14 -1
- package/dist/adapters/claude/session/jsonl-hydration.js.map +1 -1
- package/dist/agent.js +97 -26
- 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 +86 -12
- package/dist/server/agent-server.js.map +1 -1
- package/dist/server/bin.cjs +86 -12
- package/dist/server/bin.cjs.map +1 -1
- package/dist/types.d.ts +1 -0
- package/package.json +3 -3
- package/src/adapters/claude/claude-agent.ts +67 -12
- package/src/adapters/claude/session/jsonl-hydration.ts +6 -1
- package/src/adapters/claude/session/models.ts +50 -0
- package/src/agent.ts +5 -5
- package/src/gateway-models.ts +15 -18
- package/src/types.ts +1 -0
package/dist/server/bin.cjs
CHANGED
|
@@ -904,7 +904,7 @@ var import_hono = require("hono");
|
|
|
904
904
|
// package.json
|
|
905
905
|
var package_default = {
|
|
906
906
|
name: "@posthog/agent",
|
|
907
|
-
version: "2.3.
|
|
907
|
+
version: "2.3.43",
|
|
908
908
|
repository: "https://github.com/PostHog/code",
|
|
909
909
|
description: "TypeScript agent framework wrapping Claude Agent SDK with Git-based task execution for PostHog",
|
|
910
910
|
exports: {
|
|
@@ -3455,6 +3455,40 @@ var GATEWAY_TO_SDK_MODEL = {
|
|
|
3455
3455
|
function toSdkModelId(modelId) {
|
|
3456
3456
|
return GATEWAY_TO_SDK_MODEL[modelId] ?? modelId;
|
|
3457
3457
|
}
|
|
3458
|
+
var MODELS_WITH_1M_CONTEXT = /* @__PURE__ */ new Set([
|
|
3459
|
+
"claude-opus-4-6",
|
|
3460
|
+
"claude-sonnet-4-6"
|
|
3461
|
+
]);
|
|
3462
|
+
function supports1MContext(modelId) {
|
|
3463
|
+
return MODELS_WITH_1M_CONTEXT.has(modelId);
|
|
3464
|
+
}
|
|
3465
|
+
function getDefaultContextWindow(modelId) {
|
|
3466
|
+
return supports1MContext(modelId) ? 1e6 : 2e5;
|
|
3467
|
+
}
|
|
3468
|
+
var MODELS_WITH_EFFORT = /* @__PURE__ */ new Set([
|
|
3469
|
+
"claude-opus-4-5",
|
|
3470
|
+
"claude-opus-4-6",
|
|
3471
|
+
"claude-sonnet-4-6"
|
|
3472
|
+
]);
|
|
3473
|
+
var MODELS_WITH_MAX_EFFORT = /* @__PURE__ */ new Set(["claude-opus-4-6"]);
|
|
3474
|
+
function supportsEffort(modelId) {
|
|
3475
|
+
return MODELS_WITH_EFFORT.has(modelId);
|
|
3476
|
+
}
|
|
3477
|
+
function supportsMaxEffort(modelId) {
|
|
3478
|
+
return MODELS_WITH_MAX_EFFORT.has(modelId);
|
|
3479
|
+
}
|
|
3480
|
+
function getEffortOptions(modelId) {
|
|
3481
|
+
if (!supportsEffort(modelId)) return null;
|
|
3482
|
+
const options = [
|
|
3483
|
+
{ value: "low", name: "Low" },
|
|
3484
|
+
{ value: "medium", name: "Medium" },
|
|
3485
|
+
{ value: "high", name: "High" }
|
|
3486
|
+
];
|
|
3487
|
+
if (supportsMaxEffort(modelId)) {
|
|
3488
|
+
options.push({ value: "max", name: "Max" });
|
|
3489
|
+
}
|
|
3490
|
+
return options;
|
|
3491
|
+
}
|
|
3458
3492
|
|
|
3459
3493
|
// src/adapters/claude/session/options.ts
|
|
3460
3494
|
var import_node_child_process = require("child_process");
|
|
@@ -4124,7 +4158,7 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
4124
4158
|
const contextWindows = Object.values(message.modelUsage).map(
|
|
4125
4159
|
(m) => m.contextWindow
|
|
4126
4160
|
);
|
|
4127
|
-
const contextWindowSize = contextWindows.length > 0 ? Math.min(...contextWindows) :
|
|
4161
|
+
const contextWindowSize = contextWindows.length > 0 ? Math.min(...contextWindows) : getDefaultContextWindow(this.session.modelId ?? "");
|
|
4128
4162
|
if (lastAssistantTotalUsage !== null) {
|
|
4129
4163
|
await this.client.sessionUpdate({
|
|
4130
4164
|
sessionId: params.sessionId,
|
|
@@ -4244,6 +4278,7 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
4244
4278
|
const sdkModelId = toSdkModelId(params.modelId);
|
|
4245
4279
|
await this.session.query.setModel(sdkModelId);
|
|
4246
4280
|
this.session.modelId = params.modelId;
|
|
4281
|
+
this.rebuildEffortConfigOption(params.modelId);
|
|
4247
4282
|
await this.updateConfigOption("model", params.modelId);
|
|
4248
4283
|
return {};
|
|
4249
4284
|
}
|
|
@@ -4281,6 +4316,7 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
4281
4316
|
const sdkModelId = toSdkModelId(params.value);
|
|
4282
4317
|
await this.session.query.setModel(sdkModelId);
|
|
4283
4318
|
this.session.modelId = params.value;
|
|
4319
|
+
this.rebuildEffortConfigOption(params.value);
|
|
4284
4320
|
} else if (params.configId === "effort") {
|
|
4285
4321
|
const newEffort = params.value;
|
|
4286
4322
|
this.session.effort = newEffort;
|
|
@@ -4510,7 +4546,7 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
4510
4546
|
name: mode.name,
|
|
4511
4547
|
description: mode.description ?? void 0
|
|
4512
4548
|
}));
|
|
4513
|
-
|
|
4549
|
+
const configOptions = [
|
|
4514
4550
|
{
|
|
4515
4551
|
id: "mode",
|
|
4516
4552
|
name: "Approval Preset",
|
|
@@ -4528,22 +4564,60 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
4528
4564
|
options: modelOptions.options,
|
|
4529
4565
|
category: "model",
|
|
4530
4566
|
description: "Choose which model Claude should use"
|
|
4531
|
-
}
|
|
4532
|
-
|
|
4567
|
+
}
|
|
4568
|
+
];
|
|
4569
|
+
const effortOptions = getEffortOptions(modelOptions.currentModelId);
|
|
4570
|
+
if (effortOptions) {
|
|
4571
|
+
configOptions.push({
|
|
4533
4572
|
id: "effort",
|
|
4534
4573
|
name: "Effort",
|
|
4535
4574
|
type: "select",
|
|
4536
4575
|
currentValue: currentEffort,
|
|
4537
|
-
options:
|
|
4538
|
-
{ value: "low", name: "Low" },
|
|
4539
|
-
{ value: "medium", name: "Medium" },
|
|
4540
|
-
{ value: "high", name: "High" },
|
|
4541
|
-
{ value: "max", name: "Max" }
|
|
4542
|
-
],
|
|
4576
|
+
options: effortOptions,
|
|
4543
4577
|
category: "thought_level",
|
|
4544
4578
|
description: "Controls how much effort Claude puts into its response"
|
|
4579
|
+
});
|
|
4580
|
+
}
|
|
4581
|
+
return configOptions;
|
|
4582
|
+
}
|
|
4583
|
+
rebuildEffortConfigOption(modelId) {
|
|
4584
|
+
const effortOptions = getEffortOptions(modelId);
|
|
4585
|
+
const existingEffort = this.session.configOptions.find(
|
|
4586
|
+
(o) => o.id === "effort"
|
|
4587
|
+
);
|
|
4588
|
+
if (!effortOptions) {
|
|
4589
|
+
this.session.configOptions = this.session.configOptions.filter(
|
|
4590
|
+
(o) => o.id !== "effort"
|
|
4591
|
+
);
|
|
4592
|
+
if (this.session.effort) {
|
|
4593
|
+
this.session.effort = void 0;
|
|
4594
|
+
this.session.queryOptions.effort = void 0;
|
|
4545
4595
|
}
|
|
4546
|
-
|
|
4596
|
+
return;
|
|
4597
|
+
}
|
|
4598
|
+
const currentValue = existingEffort?.currentValue ?? "high";
|
|
4599
|
+
const isValidValue = effortOptions.some((o) => o.value === currentValue);
|
|
4600
|
+
const resolvedValue = isValidValue ? currentValue : "high";
|
|
4601
|
+
if (resolvedValue !== currentValue && this.session.effort) {
|
|
4602
|
+
this.session.effort = resolvedValue;
|
|
4603
|
+
this.session.queryOptions.effort = resolvedValue;
|
|
4604
|
+
}
|
|
4605
|
+
const effortConfig = {
|
|
4606
|
+
id: "effort",
|
|
4607
|
+
name: "Effort",
|
|
4608
|
+
type: "select",
|
|
4609
|
+
currentValue: resolvedValue,
|
|
4610
|
+
options: effortOptions,
|
|
4611
|
+
category: "thought_level",
|
|
4612
|
+
description: "Controls how much effort Claude puts into its response"
|
|
4613
|
+
};
|
|
4614
|
+
if (existingEffort) {
|
|
4615
|
+
this.session.configOptions = this.session.configOptions.map(
|
|
4616
|
+
(o) => o.id === "effort" ? effortConfig : o
|
|
4617
|
+
);
|
|
4618
|
+
} else {
|
|
4619
|
+
this.session.configOptions.push(effortConfig);
|
|
4620
|
+
}
|
|
4547
4621
|
}
|
|
4548
4622
|
async sendAvailableCommandsUpdate() {
|
|
4549
4623
|
const commands = await this.session.query.supportedCommands();
|