@posthog/agent 1.10.0 → 1.12.0
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/README.md +26 -65
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/src/adapters/types.d.ts +1 -1
- package/dist/src/agent.d.ts +5 -13
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +300 -187
- package/dist/src/agent.js.map +1 -1
- package/dist/src/agents/execution.d.ts +1 -1
- package/dist/src/agents/execution.js +2 -2
- package/dist/src/agents/execution.js.map +1 -1
- package/dist/src/agents/research.d.ts +2 -0
- package/dist/src/agents/research.d.ts.map +1 -0
- package/dist/src/agents/research.js +105 -0
- package/dist/src/agents/research.js.map +1 -0
- package/dist/src/file-manager.d.ts +19 -0
- package/dist/src/file-manager.d.ts.map +1 -1
- package/dist/src/file-manager.js +39 -0
- package/dist/src/file-manager.js.map +1 -1
- package/dist/src/git-manager.d.ts +4 -0
- package/dist/src/git-manager.d.ts.map +1 -1
- package/dist/src/git-manager.js +42 -1
- package/dist/src/git-manager.js.map +1 -1
- package/dist/src/posthog-api.d.ts +0 -8
- package/dist/src/posthog-api.d.ts.map +1 -1
- package/dist/src/posthog-api.js +0 -32
- package/dist/src/posthog-api.js.map +1 -1
- package/dist/src/prompt-builder.d.ts +1 -0
- package/dist/src/prompt-builder.d.ts.map +1 -1
- package/dist/src/prompt-builder.js +40 -0
- package/dist/src/prompt-builder.js.map +1 -1
- package/dist/src/structured-extraction.d.ts +22 -0
- package/dist/src/structured-extraction.d.ts.map +1 -0
- package/dist/src/structured-extraction.js +136 -0
- package/dist/src/structured-extraction.js.map +1 -0
- package/dist/src/task-progress-reporter.d.ts +0 -6
- package/dist/src/task-progress-reporter.d.ts.map +1 -1
- package/dist/src/task-progress-reporter.js +2 -26
- package/dist/src/task-progress-reporter.js.map +1 -1
- package/dist/src/template-manager.d.ts.map +1 -1
- package/dist/src/template-manager.js +26 -4
- package/dist/src/template-manager.js.map +1 -1
- package/dist/src/types.d.ts +7 -4
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +0 -1
- package/dist/src/types.js.map +1 -1
- package/package.json +5 -5
- package/src/adapters/types.ts +1 -1
- package/src/agent.ts +326 -195
- package/src/agents/execution.ts +2 -2
- package/src/agents/research.ts +103 -0
- package/src/file-manager.ts +64 -0
- package/src/git-manager.ts +53 -1
- package/src/posthog-api.ts +0 -40
- package/src/prompt-builder.ts +53 -0
- package/src/structured-extraction.ts +167 -0
- package/src/task-progress-reporter.ts +2 -34
- package/src/template-manager.ts +35 -5
- package/src/types.ts +8 -7
- package/dist/src/agent-registry.d.ts +0 -16
- package/dist/src/agent-registry.d.ts.map +0 -1
- package/dist/src/agent-registry.js +0 -56
- package/dist/src/agent-registry.js.map +0 -1
- package/dist/src/stage-executor.d.ts +0 -19
- package/dist/src/stage-executor.d.ts.map +0 -1
- package/dist/src/stage-executor.js +0 -135
- package/dist/src/stage-executor.js.map +0 -1
- package/dist/src/workflow-registry.d.ts +0 -11
- package/dist/src/workflow-registry.d.ts.map +0 -1
- package/dist/src/workflow-registry.js +0 -27
- package/dist/src/workflow-registry.js.map +0 -1
- package/dist/src/workflow-types.d.ts +0 -45
- package/dist/src/workflow-types.d.ts.map +0 -1
- package/src/agent-registry.ts +0 -59
- package/src/stage-executor.ts +0 -160
- package/src/workflow-registry.ts +0 -30
- package/src/workflow-types.ts +0 -52
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# PostHog Agent SDK
|
|
2
2
|
|
|
3
|
-
TypeScript agent framework that wraps the Claude Agent SDK for PostHog's Array desktop app. Features a Git-based
|
|
3
|
+
TypeScript agent framework that wraps the Claude Agent SDK for PostHog's Array desktop app. Features a Git-based task execution system that stores task artifacts alongside your code.
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
@@ -11,9 +11,9 @@ bun run example
|
|
|
11
11
|
|
|
12
12
|
## Key Features
|
|
13
13
|
|
|
14
|
-
- **Git-Based
|
|
14
|
+
- **Git-Based Task Execution**: Plans and artifacts stored in `.posthog/` folders and committed to Git
|
|
15
15
|
- **PostHog Integration**: Fetches existing tasks from PostHog API
|
|
16
|
-
- **
|
|
16
|
+
- **3-Phase Execution**: Research → Plan → Build with automatic progression
|
|
17
17
|
- **Branch Management**: Automatic branch creation for planning and implementation
|
|
18
18
|
- **Progress Tracking**: Execution status stored in PostHog `TaskRun` records for easy polling
|
|
19
19
|
|
|
@@ -35,12 +35,14 @@ const agent = new Agent({
|
|
|
35
35
|
},
|
|
36
36
|
});
|
|
37
37
|
|
|
38
|
-
// Run
|
|
38
|
+
// Run a task
|
|
39
39
|
const taskId = "task_abc123";
|
|
40
|
-
const
|
|
41
|
-
|
|
40
|
+
const task = await agent.getPostHogClient()?.fetchTask(taskId);
|
|
41
|
+
|
|
42
|
+
await agent.runTask(task, {
|
|
42
43
|
repositoryPath: "/path/to/repo",
|
|
43
44
|
permissionMode: PermissionMode.ACCEPT_EDITS,
|
|
45
|
+
isCloudMode: false,
|
|
44
46
|
autoProgress: true,
|
|
45
47
|
});
|
|
46
48
|
```
|
|
@@ -54,32 +56,13 @@ const agent = new Agent({
|
|
|
54
56
|
});
|
|
55
57
|
```
|
|
56
58
|
|
|
57
|
-
##
|
|
58
|
-
|
|
59
|
-
Each task execution creates Git branches:
|
|
60
|
-
|
|
61
|
-
1. **Planning**: `posthog/task-{id}-planning` - Contains plan in `.posthog/{id}/plan.md`
|
|
62
|
-
2. **Implementation**: `posthog/task-{id}-implementation` - Contains code changes
|
|
63
|
-
|
|
64
|
-
## Manual Stages and Resume
|
|
65
|
-
|
|
66
|
-
- Manual stages (no agent, or `is_manual_only`) are stop-points: the SDK will not auto-advance.
|
|
67
|
-
- On manual stages, a PR is opened by default for human review (configurable per stage with `openPullRequest`).
|
|
59
|
+
## Task Execution
|
|
68
60
|
|
|
69
|
-
|
|
61
|
+
Each task execution creates Git branches and follows a 3-phase approach:
|
|
70
62
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
permissionMode: PermissionMode.ACCEPT_EDITS,
|
|
75
|
-
resumeFromCurrentStage: true,
|
|
76
|
-
autoProgress: true, // ignored on manual stages
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
// Or explicitly progress via API then resume
|
|
80
|
-
await agent.progressToNextStage(taskId);
|
|
81
|
-
await agent.runWorkflow(taskId, workflowId, { resumeFromCurrentStage: true });
|
|
82
|
-
```
|
|
63
|
+
1. **Research Phase**: Analyzes the codebase and may generate clarifying questions
|
|
64
|
+
2. **Planning Phase**: Creates an implementation plan in `.posthog/{id}/plan.md` on branch `posthog/task-{id}-planning`
|
|
65
|
+
3. **Build Phase**: Implements code changes on branch `posthog/task-{id}-implementation`
|
|
83
66
|
|
|
84
67
|
## File System
|
|
85
68
|
|
|
@@ -90,6 +73,7 @@ your-repo/
|
|
|
90
73
|
│ ├── .gitignore
|
|
91
74
|
│ └── {task-id}/
|
|
92
75
|
│ ├── plan.md
|
|
76
|
+
│ ├── questions.json (if research phase generated questions)
|
|
93
77
|
│ └── context.md (optional)
|
|
94
78
|
└── (your code)
|
|
95
79
|
```
|
|
@@ -111,12 +95,12 @@ const poller = setInterval(async () => {
|
|
|
111
95
|
new Date(b.created_at).getTime() - new Date(a.created_at).getTime()
|
|
112
96
|
)[0];
|
|
113
97
|
if (latestRun) {
|
|
114
|
-
renderProgress(latestRun.status, latestRun.log
|
|
98
|
+
renderProgress(latestRun.status, latestRun.log);
|
|
115
99
|
}
|
|
116
100
|
}, 3000);
|
|
117
101
|
|
|
118
102
|
try {
|
|
119
|
-
await agent.
|
|
103
|
+
await agent.runTask(task, { repositoryPath: repoPath });
|
|
120
104
|
} finally {
|
|
121
105
|
clearInterval(poller);
|
|
122
106
|
}
|
|
@@ -141,46 +125,23 @@ function handleLiveEvent(event: AgentEvent) {
|
|
|
141
125
|
## Requirements
|
|
142
126
|
|
|
143
127
|
- Bun runtime
|
|
144
|
-
- Git repository
|
|
128
|
+
- Git repository
|
|
145
129
|
- PostHog API access
|
|
146
130
|
- Claude API access via `@anthropic-ai/claude-agent-sdk`
|
|
147
131
|
|
|
132
|
+
## Configuration Options
|
|
148
133
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
You can customize behavior per workflow stage using `stageOverrides`, and pass low-level model options using `queryOverrides`.
|
|
134
|
+
You can customize behavior using `TaskExecutionOptions`:
|
|
152
135
|
|
|
153
136
|
```ts
|
|
154
|
-
await agent.
|
|
137
|
+
await agent.runTask(task, {
|
|
155
138
|
repositoryPath: "/path/to/repo",
|
|
156
|
-
//
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
plan: {
|
|
163
|
-
permissionMode: PermissionMode.PLAN,
|
|
164
|
-
createPlanningBranch: true,
|
|
165
|
-
// Only applied during the planning stage
|
|
166
|
-
queryOverrides: { temperature: 0.2 }
|
|
167
|
-
},
|
|
168
|
-
build: {
|
|
169
|
-
createImplementationBranch: true,
|
|
170
|
-
openPullRequest: false,
|
|
171
|
-
// Inject custom MCP servers or any other query option
|
|
172
|
-
queryOverrides: {
|
|
173
|
-
mcpServers: {
|
|
174
|
-
// example: override or add servers
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
},
|
|
178
|
-
complete: {
|
|
179
|
-
// ensure a PR is opened at the end regardless of edits
|
|
180
|
-
openPullRequest: true
|
|
181
|
-
}
|
|
139
|
+
permissionMode: PermissionMode.ACCEPT_EDITS, // or PLAN, DEFAULT, BYPASS
|
|
140
|
+
isCloudMode: false, // local execution with pauses between phases
|
|
141
|
+
autoProgress: true, // automatically progress through phases
|
|
142
|
+
queryOverrides: {
|
|
143
|
+
model: 'claude-sonnet-4-5-20250929',
|
|
144
|
+
temperature: 0.7
|
|
182
145
|
}
|
|
183
146
|
});
|
|
184
147
|
```
|
|
185
|
-
|
|
186
|
-
Precedence for query options: base defaults in the SDK < global `queryOverrides` < per-stage `stageOverrides[stageKey].queryOverrides`.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export { Agent, } from './src/agent.js';
|
|
2
2
|
export { PermissionMode, } from './src/types.js';
|
|
3
3
|
export type { Task, TaskRun, SupportingFile, ExecutionResult, AgentConfig, McpServerConfig, AgentEvent } from './src/types.js';
|
|
4
|
-
export type { WorkflowDefinition, WorkflowStage, WorkflowExecutionOptions, AgentDefinition } from './src/workflow-types.js';
|
|
5
4
|
export { Logger, LogLevel, } from './src/utils/logger.js';
|
|
6
5
|
export type { LoggerConfig } from './src/utils/logger.js';
|
|
6
|
+
export type { ExtractedQuestion, ExtractedQuestionWithAnswer, StructuredExtractor } from './src/structured-extraction.js';
|
|
7
|
+
export type { QuestionData, AnswerData, QuestionsFile } from './src/file-manager.js';
|
|
7
8
|
export type { ProviderAdapter } from './src/adapters/types.js';
|
|
8
9
|
export { ClaudeAdapter } from './src/adapters/claude/claude-adapter.js';
|
|
9
10
|
export type { Tool, ToolCategory, KnownTool, ReadTool, WriteTool, EditTool, GlobTool, NotebookEditTool, BashTool, BashOutputTool, KillShellTool, WebFetchTool, WebSearchTool, GrepTool, TaskTool, TodoWriteTool, ExitPlanModeTool, SlashCommandTool, } from './src/tools/types.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,GACR,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACH,cAAc,GACjB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACR,IAAI,EACJ,OAAO,EACP,cAAc,EACd,eAAe,EACf,WAAW,EACX,eAAe,EACf,UAAU,EACb,MAAM,gBAAgB,CAAC;AAExB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,GACR,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACH,cAAc,GACjB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACR,IAAI,EACJ,OAAO,EACP,cAAc,EACd,eAAe,EACf,WAAW,EACX,eAAe,EACf,UAAU,EACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACH,MAAM,EACN,QAAQ,GACX,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACR,YAAY,EACf,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACR,iBAAiB,EACjB,2BAA2B,EAC3B,mBAAmB,EACtB,MAAM,gCAAgC,CAAC;AAGxC,YAAY,EACR,YAAY,EACZ,UAAU,EACV,aAAa,EAChB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAGxE,YAAY,EACR,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,aAAa,EACb,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -16,7 +16,7 @@ export interface ProviderAdapter {
|
|
|
16
16
|
transform(sdkMessage: unknown): AgentEvent | null;
|
|
17
17
|
/**
|
|
18
18
|
* Create a standardized status event.
|
|
19
|
-
* Used for
|
|
19
|
+
* Used for task phase transitions and other status updates.
|
|
20
20
|
*/
|
|
21
21
|
createStatusEvent(phase: string, additionalData?: any): StatusEvent;
|
|
22
22
|
/**
|
package/dist/src/agent.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Task, ExecutionResult, AgentConfig } from './types.js';
|
|
2
|
-
import type { WorkflowDefinition, WorkflowStage, WorkflowExecutionOptions } from './workflow-types.js';
|
|
3
2
|
import { PostHogAPIClient } from './posthog-api.js';
|
|
3
|
+
import { type ExtractedQuestion, type ExtractedQuestionWithAnswer } from './structured-extraction.js';
|
|
4
4
|
export declare class Agent {
|
|
5
5
|
private workingDirectory;
|
|
6
6
|
private onEvent?;
|
|
@@ -11,10 +11,9 @@ export declare class Agent {
|
|
|
11
11
|
private templateManager;
|
|
12
12
|
private adapter;
|
|
13
13
|
private logger;
|
|
14
|
-
private agentRegistry;
|
|
15
|
-
private workflowRegistry;
|
|
16
|
-
private stageExecutor;
|
|
17
14
|
private progressReporter;
|
|
15
|
+
private promptBuilder;
|
|
16
|
+
private extractor?;
|
|
18
17
|
private mcpServers?;
|
|
19
18
|
debug: boolean;
|
|
20
19
|
constructor(config?: AgentConfig);
|
|
@@ -26,12 +25,7 @@ export declare class Agent {
|
|
|
26
25
|
* Configure LLM gateway environment variables for Claude Code CLI
|
|
27
26
|
*/
|
|
28
27
|
private _configureLlmGateway;
|
|
29
|
-
|
|
30
|
-
task: Task;
|
|
31
|
-
workflow: WorkflowDefinition;
|
|
32
|
-
}>;
|
|
33
|
-
executeStage(task: Task, stage: WorkflowStage, options?: WorkflowExecutionOptions): Promise<void>;
|
|
34
|
-
progressToNextStage(taskId: string, currentStageKey?: string): Promise<void>;
|
|
28
|
+
runTask(taskOrId: Task | string, options?: import('./types.js').TaskExecutionOptions): Promise<void>;
|
|
35
29
|
run(prompt: string, options?: {
|
|
36
30
|
repositoryPath?: string;
|
|
37
31
|
permissionMode?: import('./types.js').PermissionMode;
|
|
@@ -43,14 +37,13 @@ export declare class Agent {
|
|
|
43
37
|
repository?: string;
|
|
44
38
|
organization?: string;
|
|
45
39
|
origin_product?: string;
|
|
46
|
-
workflow?: string;
|
|
47
|
-
current_stage?: string;
|
|
48
40
|
}): Promise<Task[]>;
|
|
49
41
|
writeTaskFile(taskId: string, fileName: string, content: string, type?: 'plan' | 'context' | 'reference' | 'output'): Promise<void>;
|
|
50
42
|
readTaskFile(taskId: string, fileName: string): Promise<string | null>;
|
|
51
43
|
getTaskFiles(taskId: string): Promise<any[]>;
|
|
52
44
|
writePlan(taskId: string, plan: string): Promise<void>;
|
|
53
45
|
readPlan(taskId: string): Promise<string | null>;
|
|
46
|
+
extractQuestionsFromResearch(taskId: string, includeAnswers?: boolean): Promise<ExtractedQuestion[] | ExtractedQuestionWithAnswer[]>;
|
|
54
47
|
createPlanningBranch(taskId: string): Promise<string>;
|
|
55
48
|
commitPlan(taskId: string, taskTitle: string): Promise<string>;
|
|
56
49
|
createImplementationBranch(taskId: string, planningBranchName?: string): Promise<string>;
|
|
@@ -64,5 +57,4 @@ export declare class Agent {
|
|
|
64
57
|
}
|
|
65
58
|
export { PermissionMode } from './types.js';
|
|
66
59
|
export type { Task, SupportingFile, ExecutionResult, AgentConfig } from './types.js';
|
|
67
|
-
export type { WorkflowDefinition, WorkflowStage, WorkflowExecutionOptions } from './workflow-types.js';
|
|
68
60
|
//# sourceMappingURL=agent.d.ts.map
|
package/dist/src/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAc,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
|