- vibn-events-ingest.ts + emit() dual-write with session PATCH - .env.example: VIBN_API_URL, AGENT_RUNNER_SECRET Made-with: Cursor
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
/**
|
|
* 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;
|
|
repoRoot?: string;
|
|
isStopped: () => boolean;
|
|
autoApprove?: boolean;
|
|
giteaRepo?: string;
|
|
coolifyAppUuid?: string;
|
|
coolifyApiUrl?: string;
|
|
coolifyApiToken?: string;
|
|
theiaWorkspaceSubdir?: string;
|
|
}
|
|
export declare function runSessionAgent(config: AgentConfig, task: string, ctx: ToolContext, opts: SessionRunOptions): Promise<void>;
|