@posthog/agent 1.30.0 → 2.0.1
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/LICENSE +1 -1
- package/README.md +221 -219
- package/dist/adapters/claude/conversion/tool-use-to-acp.d.ts +21 -0
- package/dist/adapters/claude/conversion/tool-use-to-acp.js +547 -0
- package/dist/adapters/claude/conversion/tool-use-to-acp.js.map +1 -0
- package/dist/adapters/claude/permissions/permission-options.d.ts +13 -0
- package/dist/adapters/claude/permissions/permission-options.js +117 -0
- package/dist/adapters/claude/permissions/permission-options.js.map +1 -0
- package/dist/adapters/claude/questions/utils.d.ts +132 -0
- package/dist/adapters/claude/questions/utils.js +63 -0
- package/dist/adapters/claude/questions/utils.js.map +1 -0
- package/dist/adapters/claude/tools.d.ts +18 -0
- package/dist/adapters/claude/tools.js +95 -0
- package/dist/adapters/claude/tools.js.map +1 -0
- package/dist/agent-DBQY1BfC.d.ts +123 -0
- package/dist/agent.d.ts +5 -0
- package/dist/agent.js +3656 -0
- package/dist/agent.js.map +1 -0
- package/dist/claude-cli/cli.js +3695 -2746
- package/dist/claude-cli/vendor/ripgrep/COPYING +3 -0
- package/dist/claude-cli/vendor/ripgrep/arm64-darwin/rg +0 -0
- package/dist/claude-cli/vendor/ripgrep/arm64-darwin/ripgrep.node +0 -0
- package/dist/claude-cli/vendor/ripgrep/arm64-linux/rg +0 -0
- package/dist/claude-cli/vendor/ripgrep/arm64-linux/ripgrep.node +0 -0
- package/dist/claude-cli/vendor/ripgrep/x64-darwin/rg +0 -0
- package/dist/claude-cli/vendor/ripgrep/x64-darwin/ripgrep.node +0 -0
- package/dist/claude-cli/vendor/ripgrep/x64-linux/rg +0 -0
- package/dist/claude-cli/vendor/ripgrep/x64-linux/ripgrep.node +0 -0
- package/dist/claude-cli/vendor/ripgrep/x64-win32/rg.exe +0 -0
- package/dist/claude-cli/vendor/ripgrep/x64-win32/ripgrep.node +0 -0
- package/dist/gateway-models.d.ts +24 -0
- package/dist/gateway-models.js +93 -0
- package/dist/gateway-models.js.map +1 -0
- package/dist/index.d.ts +172 -1203
- package/dist/index.js +3704 -6826
- package/dist/index.js.map +1 -1
- package/dist/logger-DDBiMOOD.d.ts +24 -0
- package/dist/posthog-api.d.ts +40 -0
- package/dist/posthog-api.js +175 -0
- package/dist/posthog-api.js.map +1 -0
- package/dist/server/agent-server.d.ts +41 -0
- package/dist/server/agent-server.js +4451 -0
- package/dist/server/agent-server.js.map +1 -0
- package/dist/server/bin.d.ts +1 -0
- package/dist/server/bin.js +4507 -0
- package/dist/server/bin.js.map +1 -0
- package/dist/types.d.ts +129 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/package.json +66 -14
- package/src/acp-extensions.ts +93 -61
- package/src/adapters/acp-connection.ts +494 -0
- package/src/adapters/base-acp-agent.ts +150 -0
- package/src/adapters/claude/claude-agent.ts +596 -0
- package/src/adapters/claude/conversion/acp-to-sdk.ts +102 -0
- package/src/adapters/claude/conversion/sdk-to-acp.ts +571 -0
- package/src/adapters/claude/conversion/tool-use-to-acp.ts +618 -0
- package/src/adapters/claude/hooks.ts +64 -0
- package/src/adapters/claude/mcp/tool-metadata.ts +102 -0
- package/src/adapters/claude/permissions/permission-handlers.ts +433 -0
- package/src/adapters/claude/permissions/permission-options.ts +103 -0
- package/src/adapters/claude/plan/utils.ts +56 -0
- package/src/adapters/claude/questions/utils.ts +92 -0
- package/src/adapters/claude/session/commands.ts +38 -0
- package/src/adapters/claude/session/mcp-config.ts +37 -0
- package/src/adapters/claude/session/models.ts +12 -0
- package/src/adapters/claude/session/options.ts +236 -0
- package/src/adapters/claude/tool-meta.ts +143 -0
- package/src/adapters/claude/tools.ts +53 -611
- package/src/adapters/claude/types.ts +61 -0
- package/src/adapters/codex/spawn.ts +130 -0
- package/src/agent.ts +97 -734
- package/src/execution-mode.ts +43 -0
- package/src/gateway-models.ts +135 -0
- package/src/index.ts +79 -0
- package/src/otel-log-writer.test.ts +105 -0
- package/src/otel-log-writer.ts +94 -0
- package/src/posthog-api.ts +75 -235
- package/src/resume.ts +115 -0
- package/src/sagas/apply-snapshot-saga.test.ts +690 -0
- package/src/sagas/apply-snapshot-saga.ts +88 -0
- package/src/sagas/capture-tree-saga.test.ts +892 -0
- package/src/sagas/capture-tree-saga.ts +141 -0
- package/src/sagas/resume-saga.test.ts +558 -0
- package/src/sagas/resume-saga.ts +332 -0
- package/src/sagas/test-fixtures.ts +250 -0
- package/src/server/agent-server.test.ts +220 -0
- package/src/server/agent-server.ts +748 -0
- package/src/server/bin.ts +88 -0
- package/src/server/jwt.ts +65 -0
- package/src/server/schemas.ts +47 -0
- package/src/server/types.ts +13 -0
- package/src/server/utils/retry.test.ts +122 -0
- package/src/server/utils/retry.ts +61 -0
- package/src/server/utils/sse-parser.test.ts +93 -0
- package/src/server/utils/sse-parser.ts +46 -0
- package/src/session-log-writer.test.ts +140 -0
- package/src/session-log-writer.ts +137 -0
- package/src/test/assertions.ts +114 -0
- package/src/test/controllers/sse-controller.ts +107 -0
- package/src/test/fixtures/api.ts +111 -0
- package/src/test/fixtures/config.ts +33 -0
- package/src/test/fixtures/notifications.ts +92 -0
- package/src/test/mocks/claude-sdk.ts +251 -0
- package/src/test/mocks/msw-handlers.ts +48 -0
- package/src/test/setup.ts +114 -0
- package/src/test/wait.ts +41 -0
- package/src/tree-tracker.ts +173 -0
- package/src/types.ts +51 -154
- package/src/utils/acp-content.ts +58 -0
- package/src/utils/async-mutex.test.ts +104 -0
- package/src/utils/async-mutex.ts +31 -0
- package/src/utils/common.ts +15 -0
- package/src/utils/gateway.ts +9 -6
- package/src/utils/logger.ts +0 -30
- package/src/utils/streams.ts +220 -0
- package/CLAUDE.md +0 -331
- package/dist/templates/plan-template.md +0 -41
- package/src/adapters/claude/claude.ts +0 -1543
- package/src/adapters/claude/mcp-server.ts +0 -810
- package/src/adapters/claude/utils.ts +0 -267
- package/src/agents/execution.ts +0 -37
- package/src/agents/planning.ts +0 -60
- package/src/agents/research.ts +0 -160
- package/src/file-manager.ts +0 -306
- package/src/git-manager.ts +0 -577
- package/src/prompt-builder.ts +0 -499
- package/src/schemas.ts +0 -241
- package/src/session-store.ts +0 -259
- package/src/task-manager.ts +0 -163
- package/src/template-manager.ts +0 -236
- package/src/templates/plan-template.md +0 -41
- package/src/todo-manager.ts +0 -180
- package/src/tools/registry.ts +0 -129
- package/src/tools/types.ts +0 -127
- package/src/utils/tapped-stream.ts +0 -60
- package/src/workflow/config.ts +0 -53
- package/src/workflow/steps/build.ts +0 -135
- package/src/workflow/steps/finalize.ts +0 -241
- package/src/workflow/steps/plan.ts +0 -167
- package/src/workflow/steps/research.ts +0 -223
- package/src/workflow/types.ts +0 -62
- package/src/workflow/utils.ts +0 -53
- package/src/worktree-manager.ts +0 -928
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { mkdir, rm, writeFile } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { Saga } from "@posthog/shared";
|
|
4
|
+
import { ApplyTreeSaga as GitApplyTreeSaga } from "@twig/git/sagas/tree";
|
|
5
|
+
import type { PostHogAPIClient } from "../posthog-api.js";
|
|
6
|
+
import type { TreeSnapshot } from "../types.js";
|
|
7
|
+
|
|
8
|
+
export interface ApplySnapshotInput {
|
|
9
|
+
snapshot: TreeSnapshot;
|
|
10
|
+
repositoryPath: string;
|
|
11
|
+
apiClient: PostHogAPIClient;
|
|
12
|
+
taskId: string;
|
|
13
|
+
runId: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface ApplySnapshotOutput {
|
|
17
|
+
treeHash: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export class ApplySnapshotSaga extends Saga<
|
|
21
|
+
ApplySnapshotInput,
|
|
22
|
+
ApplySnapshotOutput
|
|
23
|
+
> {
|
|
24
|
+
private archivePath: string | null = null;
|
|
25
|
+
|
|
26
|
+
protected async execute(
|
|
27
|
+
input: ApplySnapshotInput,
|
|
28
|
+
): Promise<ApplySnapshotOutput> {
|
|
29
|
+
const { snapshot, repositoryPath, apiClient, taskId, runId } = input;
|
|
30
|
+
const tmpDir = join(repositoryPath, ".posthog", "tmp");
|
|
31
|
+
|
|
32
|
+
if (!snapshot.archiveUrl) {
|
|
33
|
+
throw new Error("Cannot apply snapshot: no archive URL");
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
await this.step({
|
|
37
|
+
name: "create_tmp_dir",
|
|
38
|
+
execute: () => mkdir(tmpDir, { recursive: true }),
|
|
39
|
+
rollback: async () => {},
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
this.archivePath = join(tmpDir, `${snapshot.treeHash}.tar.gz`);
|
|
43
|
+
await this.step({
|
|
44
|
+
name: "download_archive",
|
|
45
|
+
execute: async () => {
|
|
46
|
+
const arrayBuffer = await apiClient.downloadArtifact(
|
|
47
|
+
taskId,
|
|
48
|
+
runId,
|
|
49
|
+
snapshot.archiveUrl!,
|
|
50
|
+
);
|
|
51
|
+
if (!arrayBuffer) {
|
|
52
|
+
throw new Error("Failed to download archive");
|
|
53
|
+
}
|
|
54
|
+
const base64Content = Buffer.from(arrayBuffer).toString("utf-8");
|
|
55
|
+
const binaryContent = Buffer.from(base64Content, "base64");
|
|
56
|
+
await writeFile(this.archivePath!, binaryContent);
|
|
57
|
+
},
|
|
58
|
+
rollback: async () => {
|
|
59
|
+
if (this.archivePath) {
|
|
60
|
+
await rm(this.archivePath, { force: true }).catch(() => {});
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
const gitApplySaga = new GitApplyTreeSaga(this.log);
|
|
66
|
+
const applyResult = await gitApplySaga.run({
|
|
67
|
+
baseDir: repositoryPath,
|
|
68
|
+
treeHash: snapshot.treeHash,
|
|
69
|
+
baseCommit: snapshot.baseCommit,
|
|
70
|
+
changes: snapshot.changes,
|
|
71
|
+
archivePath: this.archivePath,
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
if (!applyResult.success) {
|
|
75
|
+
throw new Error(`Failed to apply tree: ${applyResult.error}`);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
await rm(this.archivePath, { force: true }).catch(() => {});
|
|
79
|
+
|
|
80
|
+
this.log.info("Tree snapshot applied", {
|
|
81
|
+
treeHash: snapshot.treeHash,
|
|
82
|
+
totalChanges: snapshot.changes.length,
|
|
83
|
+
deletedFiles: snapshot.changes.filter((c) => c.status === "D").length,
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
return { treeHash: snapshot.treeHash };
|
|
87
|
+
}
|
|
88
|
+
}
|