mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-10-07 02:58:15 +00:00
Add taskCreated event to API and subscribe to Cline events earlier (#1942)
* Cline events are subscribed earlier, added `taskCreated` event to API * Probably fix the ClineProvider test
This commit is contained in:
parent
953a9c777a
commit
fdcc679f9f
5 changed files with 11 additions and 4 deletions
|
|
@ -115,6 +115,7 @@ export type ClineOptions = {
|
|||
rootTask?: Cline
|
||||
parentTask?: Cline
|
||||
taskNumber?: number
|
||||
onCreated?: (cline: Cline) => void
|
||||
}
|
||||
|
||||
export class Cline extends EventEmitter<ClineEvents> {
|
||||
|
|
@ -192,6 +193,7 @@ export class Cline extends EventEmitter<ClineEvents> {
|
|||
rootTask,
|
||||
parentTask,
|
||||
taskNumber,
|
||||
onCreated,
|
||||
}: ClineOptions) {
|
||||
super()
|
||||
|
||||
|
|
@ -235,6 +237,8 @@ export class Cline extends EventEmitter<ClineEvents> {
|
|||
Experiments.isEnabled(experiments ?? {}, EXPERIMENT_IDS.MULTI_SEARCH_AND_REPLACE),
|
||||
)
|
||||
|
||||
onCreated?.(this)
|
||||
|
||||
if (startTask) {
|
||||
if (task || images) {
|
||||
this.startTask(task, images)
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ import { getWorkspacePath } from "../../utils/path"
|
|||
*/
|
||||
|
||||
export type ClineProviderEvents = {
|
||||
clineAdded: [cline: Cline]
|
||||
clineCreated: [cline: Cline]
|
||||
}
|
||||
|
||||
export class ClineProvider extends EventEmitter<ClineProviderEvents> implements vscode.WebviewViewProvider {
|
||||
|
|
@ -144,8 +144,6 @@ export class ClineProvider extends EventEmitter<ClineProviderEvents> implements
|
|||
// Add this cline instance into the stack that represents the order of all the called tasks.
|
||||
this.clineStack.push(cline)
|
||||
|
||||
this.emit("clineAdded", cline)
|
||||
|
||||
// Ensure getState() resolves correctly.
|
||||
const state = await this.getState()
|
||||
|
||||
|
|
@ -496,6 +494,7 @@ export class ClineProvider extends EventEmitter<ClineProviderEvents> implements
|
|||
rootTask: this.clineStack.length > 0 ? this.clineStack[0] : undefined,
|
||||
parentTask,
|
||||
taskNumber: this.clineStack.length + 1,
|
||||
onCreated: (cline) => this.emit("clineCreated", cline),
|
||||
})
|
||||
|
||||
await this.addClineToStack(cline)
|
||||
|
|
@ -561,6 +560,7 @@ export class ClineProvider extends EventEmitter<ClineProviderEvents> implements
|
|||
rootTask: historyItem.rootTask,
|
||||
parentTask: historyItem.parentTask,
|
||||
taskNumber: historyItem.number,
|
||||
onCreated: (cline) => this.emit("clineCreated", cline),
|
||||
})
|
||||
|
||||
await this.addClineToStack(cline)
|
||||
|
|
|
|||
|
|
@ -870,6 +870,7 @@ describe("ClineProvider", () => {
|
|||
rootTask: undefined,
|
||||
parentTask: undefined,
|
||||
taskNumber: 1,
|
||||
onCreated: expect.any(Function),
|
||||
})
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ export class API extends EventEmitter<RooCodeEvents> implements RooCodeAPI {
|
|||
this.history = new MessageHistory()
|
||||
this.tokenUsage = {}
|
||||
|
||||
this.provider.on("clineAdded", (cline) => {
|
||||
this.provider.on("clineCreated", (cline) => {
|
||||
cline.on("message", (message) => this.emit("message", { taskId: cline.taskId, ...message }))
|
||||
cline.on("taskStarted", () => this.emit("taskStarted", cline.taskId))
|
||||
cline.on("taskPaused", () => this.emit("taskPaused", cline.taskId))
|
||||
|
|
@ -28,6 +28,7 @@ export class API extends EventEmitter<RooCodeEvents> implements RooCodeAPI {
|
|||
cline.on("taskAskResponded", () => this.emit("taskAskResponded", cline.taskId))
|
||||
cline.on("taskAborted", () => this.emit("taskAborted", cline.taskId))
|
||||
cline.on("taskSpawned", (taskId) => this.emit("taskSpawned", cline.taskId, taskId))
|
||||
this.emit("taskCreated", cline.taskId)
|
||||
})
|
||||
|
||||
this.on("message", ({ taskId, action, message }) => {
|
||||
|
|
|
|||
1
src/exports/roo-code.d.ts
vendored
1
src/exports/roo-code.d.ts
vendored
|
|
@ -11,6 +11,7 @@ export interface TokenUsage {
|
|||
|
||||
export interface RooCodeEvents {
|
||||
message: [{ taskId: string; action: "created" | "updated"; message: ClineMessage }]
|
||||
taskCreated: [taskId: string]
|
||||
taskStarted: [taskId: string]
|
||||
taskPaused: [taskId: string]
|
||||
taskUnpaused: [taskId: string]
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue