@posthog/agent 2.3.126 → 2.3.137
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 +57 -29
- package/dist/agent.js.map +1 -1
- package/dist/posthog-api.js +1 -1
- package/dist/posthog-api.js.map +1 -1
- package/dist/server/agent-server.d.ts +1 -0
- package/dist/server/agent-server.js +71 -37
- package/dist/server/agent-server.js.map +1 -1
- package/dist/server/bin.cjs +71 -37
- package/dist/server/bin.cjs.map +1 -1
- package/package.json +1 -1
- package/src/adapters/claude/claude-agent.ts +72 -38
- package/src/adapters/claude/types.ts +2 -0
- package/src/server/agent-server.ts +15 -8
- package/src/server/question-relay.test.ts +65 -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.137",
|
|
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: {
|
|
@@ -4631,42 +4631,70 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
4631
4631
|
isResume ? "Session query initialized, awaiting resumption" : "Session query initialized, awaiting initialization",
|
|
4632
4632
|
{ sessionId, taskId, taskRunId: meta?.taskRunId }
|
|
4633
4633
|
);
|
|
4634
|
-
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
|
|
4639
|
-
if (result.result === "timeout") {
|
|
4640
|
-
throw new Error(
|
|
4641
|
-
`Session ${isResume ? forkSession ? "fork" : "resumption" : "initialization"} timed out for sessionId=${sessionId}`
|
|
4634
|
+
if (isResume) {
|
|
4635
|
+
try {
|
|
4636
|
+
const result = await withTimeout(
|
|
4637
|
+
q.initializationResult(),
|
|
4638
|
+
SESSION_VALIDATION_TIMEOUT_MS
|
|
4642
4639
|
);
|
|
4640
|
+
if (result.result === "timeout") {
|
|
4641
|
+
throw new Error(
|
|
4642
|
+
`Session ${forkSession ? "fork" : "resumption"} timed out for sessionId=${sessionId}`
|
|
4643
|
+
);
|
|
4644
|
+
}
|
|
4645
|
+
} catch (err) {
|
|
4646
|
+
settingsManager.dispose();
|
|
4647
|
+
if (err instanceof Error && err.message === "Query closed before response received") {
|
|
4648
|
+
throw import_sdk2.RequestError.resourceNotFound(sessionId);
|
|
4649
|
+
}
|
|
4650
|
+
this.logger.error(
|
|
4651
|
+
forkSession ? "Session fork failed" : "Session resumption failed",
|
|
4652
|
+
{
|
|
4653
|
+
sessionId,
|
|
4654
|
+
taskId,
|
|
4655
|
+
taskRunId: meta?.taskRunId,
|
|
4656
|
+
error: err instanceof Error ? err.message : String(err)
|
|
4657
|
+
}
|
|
4658
|
+
);
|
|
4659
|
+
throw err;
|
|
4643
4660
|
}
|
|
4644
|
-
}
|
|
4645
|
-
|
|
4646
|
-
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
|
|
4650
|
-
|
|
4651
|
-
{
|
|
4661
|
+
}
|
|
4662
|
+
const initPromise = !isResume ? withTimeout(q.initializationResult(), SESSION_VALIDATION_TIMEOUT_MS) : void 0;
|
|
4663
|
+
const [modelOptions] = await Promise.all([
|
|
4664
|
+
this.getModelConfigOptions(
|
|
4665
|
+
settingsManager.getSettings().model || meta?.model || void 0
|
|
4666
|
+
),
|
|
4667
|
+
...meta?.taskRunId ? [
|
|
4668
|
+
this.client.extNotification("_posthog/sdk_session", {
|
|
4669
|
+
taskRunId: meta.taskRunId,
|
|
4670
|
+
sessionId,
|
|
4671
|
+
adapter: "claude"
|
|
4672
|
+
})
|
|
4673
|
+
] : []
|
|
4674
|
+
]);
|
|
4675
|
+
if (initPromise) {
|
|
4676
|
+
try {
|
|
4677
|
+
const initResult = await initPromise;
|
|
4678
|
+
if (initResult.result === "timeout") {
|
|
4679
|
+
settingsManager.dispose();
|
|
4680
|
+
throw new Error(
|
|
4681
|
+
`Session initialization timed out for sessionId=${sessionId}`
|
|
4682
|
+
);
|
|
4683
|
+
}
|
|
4684
|
+
} catch (err) {
|
|
4685
|
+
settingsManager.dispose();
|
|
4686
|
+
this.logger.error("Session initialization failed", {
|
|
4652
4687
|
sessionId,
|
|
4653
4688
|
taskId,
|
|
4654
4689
|
taskRunId: meta?.taskRunId,
|
|
4655
4690
|
error: err instanceof Error ? err.message : String(err)
|
|
4656
|
-
}
|
|
4657
|
-
|
|
4658
|
-
|
|
4659
|
-
}
|
|
4660
|
-
if (meta?.taskRunId) {
|
|
4661
|
-
await this.client.extNotification("_posthog/sdk_session", {
|
|
4662
|
-
taskRunId: meta.taskRunId,
|
|
4663
|
-
sessionId,
|
|
4664
|
-
adapter: "claude"
|
|
4665
|
-
});
|
|
4691
|
+
});
|
|
4692
|
+
throw err;
|
|
4693
|
+
}
|
|
4666
4694
|
}
|
|
4667
4695
|
const settingsModel = settingsManager.getSettings().model;
|
|
4668
|
-
const
|
|
4669
|
-
const resolvedModelId = settingsModel || modelOptions.currentModelId;
|
|
4696
|
+
const metaModel = meta?.model;
|
|
4697
|
+
const resolvedModelId = settingsModel || metaModel || modelOptions.currentModelId;
|
|
4670
4698
|
session.modelId = resolvedModelId;
|
|
4671
4699
|
session.lastContextWindowSize = this.getContextWindowForModel(resolvedModelId);
|
|
4672
4700
|
const resolvedSdkModel = toSdkModelId(resolvedModelId);
|
|
@@ -11908,6 +11936,11 @@ var AgentServer = class _AgentServer {
|
|
|
11908
11936
|
// causing a second session to be created and duplicate Slack messages to be sent.
|
|
11909
11937
|
initializationPromise = null;
|
|
11910
11938
|
pendingEvents = [];
|
|
11939
|
+
detachSseController(controller) {
|
|
11940
|
+
if (this.session?.sseController === controller) {
|
|
11941
|
+
this.session.sseController = null;
|
|
11942
|
+
}
|
|
11943
|
+
}
|
|
11911
11944
|
emitConsoleLog = (level, _scope, message, data) => {
|
|
11912
11945
|
if (!this.session) return;
|
|
11913
11946
|
const formatted = data !== void 0 ? `${message} ${JSON.stringify(data)}` : message;
|
|
@@ -11968,18 +12001,15 @@ var AgentServer = class _AgentServer {
|
|
|
11968
12001
|
|
|
11969
12002
|
`)
|
|
11970
12003
|
);
|
|
11971
|
-
} catch
|
|
11972
|
-
this.
|
|
11973
|
-
"SSE send failed (stream may be closed)",
|
|
11974
|
-
error
|
|
11975
|
-
);
|
|
12004
|
+
} catch {
|
|
12005
|
+
this.detachSseController(sseController);
|
|
11976
12006
|
}
|
|
11977
12007
|
},
|
|
11978
12008
|
close: () => {
|
|
11979
12009
|
try {
|
|
11980
12010
|
controller.close();
|
|
11981
|
-
} catch
|
|
11982
|
-
this.
|
|
12011
|
+
} catch {
|
|
12012
|
+
this.detachSseController(sseController);
|
|
11983
12013
|
}
|
|
11984
12014
|
}
|
|
11985
12015
|
};
|
|
@@ -12984,7 +13014,11 @@ Important:
|
|
|
12984
13014
|
}
|
|
12985
13015
|
}
|
|
12986
13016
|
sendSseEvent(controller, data) {
|
|
12987
|
-
|
|
13017
|
+
try {
|
|
13018
|
+
controller.send(data);
|
|
13019
|
+
} catch {
|
|
13020
|
+
this.detachSseController(controller);
|
|
13021
|
+
}
|
|
12988
13022
|
}
|
|
12989
13023
|
};
|
|
12990
13024
|
|