@posthog/agent 2.3.171 → 2.3.172
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/permissions/permission-options.js +19 -0
- package/dist/adapters/claude/permissions/permission-options.js.map +1 -1
- package/dist/adapters/claude/tools.js +19 -0
- package/dist/adapters/claude/tools.js.map +1 -1
- package/dist/agent.js +78 -9
- package/dist/agent.js.map +1 -1
- package/dist/execution-mode.d.ts +7 -2
- package/dist/execution-mode.js +25 -0
- package/dist/execution-mode.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 +78 -9
- package/dist/server/agent-server.js.map +1 -1
- package/dist/server/bin.cjs +78 -9
- package/dist/server/bin.cjs.map +1 -1
- package/package.json +1 -1
- package/src/adapters/codex/codex-agent.ts +24 -3
- package/src/adapters/codex/codex-client.ts +47 -4
- package/src/adapters/codex/session-state.ts +5 -1
- package/src/execution-mode.ts +37 -1
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.172",
|
|
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: {
|
|
@@ -3006,6 +3006,26 @@ var CODE_EXECUTION_MODES = [
|
|
|
3006
3006
|
function getAvailableModes() {
|
|
3007
3007
|
return IS_ROOT ? availableModes.filter((m) => m.id !== "bypassPermissions") : availableModes;
|
|
3008
3008
|
}
|
|
3009
|
+
var CODEX_NATIVE_MODES = ["auto", "read-only", "full-access"];
|
|
3010
|
+
var codexModes = [
|
|
3011
|
+
{
|
|
3012
|
+
id: "read-only",
|
|
3013
|
+
name: "Read Only",
|
|
3014
|
+
description: "Read-only access, no file modifications"
|
|
3015
|
+
},
|
|
3016
|
+
{
|
|
3017
|
+
id: "auto",
|
|
3018
|
+
name: "Auto",
|
|
3019
|
+
description: "Standard behavior, prompts for dangerous operations"
|
|
3020
|
+
}
|
|
3021
|
+
];
|
|
3022
|
+
if (ALLOW_BYPASS) {
|
|
3023
|
+
codexModes.push({
|
|
3024
|
+
id: "full-access",
|
|
3025
|
+
name: "Full Access",
|
|
3026
|
+
description: "Auto-accept all permission requests"
|
|
3027
|
+
});
|
|
3028
|
+
}
|
|
3009
3029
|
|
|
3010
3030
|
// src/adapters/claude/tools.ts
|
|
3011
3031
|
var READ_TOOLS = /* @__PURE__ */ new Set(["Read", "NotebookRead"]);
|
|
@@ -5005,13 +5025,48 @@ var ClaudeAcpAgent = class extends BaseAcpAgent {
|
|
|
5005
5025
|
var import_sdk3 = require("@agentclientprotocol/sdk");
|
|
5006
5026
|
|
|
5007
5027
|
// src/adapters/codex/codex-client.ts
|
|
5028
|
+
var AUTO_APPROVED_KINDS = {
|
|
5029
|
+
auto: /* @__PURE__ */ new Set(["read", "search", "fetch", "think"]),
|
|
5030
|
+
"read-only": /* @__PURE__ */ new Set(["read", "search", "fetch", "think"]),
|
|
5031
|
+
"full-access": /* @__PURE__ */ new Set([
|
|
5032
|
+
"read",
|
|
5033
|
+
"edit",
|
|
5034
|
+
"delete",
|
|
5035
|
+
"move",
|
|
5036
|
+
"search",
|
|
5037
|
+
"execute",
|
|
5038
|
+
"think",
|
|
5039
|
+
"fetch",
|
|
5040
|
+
"switch_mode",
|
|
5041
|
+
"other"
|
|
5042
|
+
])
|
|
5043
|
+
};
|
|
5044
|
+
function shouldAutoApprove(mode, kind) {
|
|
5045
|
+
if (mode === "full-access") return true;
|
|
5046
|
+
if (!kind) return false;
|
|
5047
|
+
return AUTO_APPROVED_KINDS[mode]?.has(kind) ?? false;
|
|
5048
|
+
}
|
|
5008
5049
|
function createCodexClient(upstreamClient, logger, sessionState, callbacks) {
|
|
5009
5050
|
const terminalHandles = /* @__PURE__ */ new Map();
|
|
5010
5051
|
return {
|
|
5011
5052
|
async requestPermission(params) {
|
|
5012
|
-
|
|
5013
|
-
|
|
5014
|
-
|
|
5053
|
+
const kind = params.toolCall?.kind;
|
|
5054
|
+
if (shouldAutoApprove(sessionState.permissionMode, kind)) {
|
|
5055
|
+
logger.debug("Auto-approving permission", {
|
|
5056
|
+
mode: sessionState.permissionMode,
|
|
5057
|
+
kind,
|
|
5058
|
+
toolCallId: params.toolCall?.toolCallId
|
|
5059
|
+
});
|
|
5060
|
+
const allowOption = params.options?.find(
|
|
5061
|
+
(o) => o.kind === "allow_once" || o.kind === "allow_always"
|
|
5062
|
+
);
|
|
5063
|
+
return {
|
|
5064
|
+
outcome: {
|
|
5065
|
+
outcome: "selected",
|
|
5066
|
+
optionId: allowOption?.optionId ?? "allow"
|
|
5067
|
+
}
|
|
5068
|
+
};
|
|
5069
|
+
}
|
|
5015
5070
|
return upstreamClient.requestPermission(params);
|
|
5016
5071
|
},
|
|
5017
5072
|
async sessionUpdate(params) {
|
|
@@ -5094,7 +5149,7 @@ function createSessionState(sessionId, cwd, opts) {
|
|
|
5094
5149
|
return {
|
|
5095
5150
|
sessionId,
|
|
5096
5151
|
cwd,
|
|
5097
|
-
modeId: opts?.modeId ?? "
|
|
5152
|
+
modeId: opts?.modeId ?? "auto",
|
|
5098
5153
|
modelId: opts?.modelId,
|
|
5099
5154
|
configOptions: [],
|
|
5100
5155
|
accumulatedUsage: {
|
|
@@ -5103,6 +5158,7 @@ function createSessionState(sessionId, cwd, opts) {
|
|
|
5103
5158
|
cachedReadTokens: 0,
|
|
5104
5159
|
cachedWriteTokens: 0
|
|
5105
5160
|
},
|
|
5161
|
+
permissionMode: opts?.permissionMode ?? "auto",
|
|
5106
5162
|
cancelled: false,
|
|
5107
5163
|
taskRunId: opts?.taskRunId,
|
|
5108
5164
|
taskId: opts?.taskId
|
|
@@ -5297,6 +5353,12 @@ function spawnCodexProcess(options) {
|
|
|
5297
5353
|
}
|
|
5298
5354
|
|
|
5299
5355
|
// src/adapters/codex/codex-agent.ts
|
|
5356
|
+
function toPermissionMode(mode) {
|
|
5357
|
+
if (mode && CODEX_NATIVE_MODES.includes(mode)) {
|
|
5358
|
+
return mode;
|
|
5359
|
+
}
|
|
5360
|
+
return "auto";
|
|
5361
|
+
}
|
|
5300
5362
|
var CodexAcpAgent = class extends BaseAcpAgent {
|
|
5301
5363
|
adapterName = "codex";
|
|
5302
5364
|
codexProcess;
|
|
@@ -5329,7 +5391,7 @@ var CodexAcpAgent = class extends BaseAcpAgent {
|
|
|
5329
5391
|
this.sessionState ?? {
|
|
5330
5392
|
sessionId: "",
|
|
5331
5393
|
cwd: "",
|
|
5332
|
-
modeId: "
|
|
5394
|
+
modeId: "auto",
|
|
5333
5395
|
configOptions: [],
|
|
5334
5396
|
accumulatedUsage: {
|
|
5335
5397
|
inputTokens: 0,
|
|
@@ -5337,6 +5399,7 @@ var CodexAcpAgent = class extends BaseAcpAgent {
|
|
|
5337
5399
|
cachedReadTokens: 0,
|
|
5338
5400
|
cachedWriteTokens: 0
|
|
5339
5401
|
},
|
|
5402
|
+
permissionMode: "auto",
|
|
5340
5403
|
cancelled: false
|
|
5341
5404
|
}
|
|
5342
5405
|
),
|
|
@@ -5375,7 +5438,8 @@ var CodexAcpAgent = class extends BaseAcpAgent {
|
|
|
5375
5438
|
taskRunId: meta?.taskRunId,
|
|
5376
5439
|
taskId: meta?.taskId ?? meta?.persistence?.taskId,
|
|
5377
5440
|
modeId: response.modes?.currentModeId ?? "default",
|
|
5378
|
-
modelId: response.models?.currentModelId
|
|
5441
|
+
modelId: response.models?.currentModelId,
|
|
5442
|
+
permissionMode: toPermissionMode(meta?.permissionMode)
|
|
5379
5443
|
});
|
|
5380
5444
|
this.sessionId = response.sessionId;
|
|
5381
5445
|
this.sessionState.configOptions = response.configOptions ?? [];
|
|
@@ -5499,9 +5563,14 @@ var CodexAcpAgent = class extends BaseAcpAgent {
|
|
|
5499
5563
|
await this.codexConnection.cancel(params);
|
|
5500
5564
|
}
|
|
5501
5565
|
async setSessionMode(params) {
|
|
5502
|
-
const
|
|
5566
|
+
const permissionMode = toPermissionMode(params.modeId);
|
|
5567
|
+
const response = await this.codexConnection.setSessionMode({
|
|
5568
|
+
...params,
|
|
5569
|
+
modeId: permissionMode
|
|
5570
|
+
});
|
|
5503
5571
|
if (this.sessionState) {
|
|
5504
|
-
this.sessionState.modeId =
|
|
5572
|
+
this.sessionState.modeId = permissionMode;
|
|
5573
|
+
this.sessionState.permissionMode = permissionMode;
|
|
5505
5574
|
}
|
|
5506
5575
|
return response ?? {};
|
|
5507
5576
|
}
|