@posthog/agent 2.3.24 → 2.3.31

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.
@@ -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.24",
907
+ version: "2.3.31",
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) : 2e5;
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
- return [
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();