wire up /agent/execute and /agent/stop endpoints
- Add runSessionAgent: streaming variant of runAgent that PATCHes VIBN DB after every LLM turn and tool call so frontend can poll live output - Track changed files from write_file / replace_in_file tool calls - Add /agent/execute: receives sessionId + giteaRepo + task, clones repo, scopes workspace to appPath, runs Coder agent async (returns 202 immediately) - Add /agent/stop: sets stopped flag; agent checks between turns and exits cleanly - Agent does NOT commit on completion — leaves changes for user review/approval Made-with: Cursor
This commit is contained in:
28
dist/agent-session-runner.d.ts
vendored
Normal file
28
dist/agent-session-runner.d.ts
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
/**
|
||||
* agent-session-runner.ts
|
||||
*
|
||||
* Streaming variant of runAgent wired to a VIBN agent_sessions row.
|
||||
* After every LLM turn + tool call, it PATCHes the session in the VIBN DB
|
||||
* so the frontend can poll (and later WebSocket) the live output.
|
||||
*
|
||||
* Key differences from runAgent:
|
||||
* - Accepts an `emit` callback instead of updating job-store
|
||||
* - Accepts an `isStopped` check so the frontend can cancel mid-run
|
||||
* - Tracks which files were written/modified for the changed_files panel
|
||||
* - Calls vibn-frontend's PATCH /api/projects/[id]/agent/sessions/[sid]
|
||||
*/
|
||||
import { AgentConfig } from './agents';
|
||||
import { ToolContext } from './tools';
|
||||
export interface OutputLine {
|
||||
ts: string;
|
||||
type: 'step' | 'stdout' | 'stderr' | 'info' | 'error' | 'done';
|
||||
text: string;
|
||||
}
|
||||
export interface SessionRunOptions {
|
||||
sessionId: string;
|
||||
projectId: string;
|
||||
vibnApiUrl: string;
|
||||
appPath: string;
|
||||
isStopped: () => boolean;
|
||||
}
|
||||
export declare function runSessionAgent(config: AgentConfig, task: string, ctx: ToolContext, opts: SessionRunOptions): Promise<void>;
|
||||
Reference in New Issue
Block a user