Skip to content

Commit 6e63413

Browse files
authored
Move auto-approval from ChatView to Task (#9157)
1 parent 23856a5 commit 6e63413

File tree

21 files changed

+952
-4493
lines changed

21 files changed

+952
-4493
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// pnpm --filter @roo-code/types test src/__tests__/message.test.ts
2+
3+
import { clineAsks, isIdleAsk, isInteractiveAsk, isResumableAsk, isNonBlockingAsk } from "../message.js"
4+
5+
describe("ask messages", () => {
6+
test("all ask messages are classified", () => {
7+
for (const ask of clineAsks) {
8+
expect(
9+
isIdleAsk(ask) || isInteractiveAsk(ask) || isResumableAsk(ask) || isNonBlockingAsk(ask),
10+
`${ask} is not classified`,
11+
).toBe(true)
12+
}
13+
})
14+
})

packages/types/src/message.ts

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -43,25 +43,6 @@ export const clineAsks = [
4343
export const clineAskSchema = z.enum(clineAsks)
4444

4545
export type ClineAsk = z.infer<typeof clineAskSchema>
46-
47-
// Needs classification:
48-
// - `followup`
49-
50-
/**
51-
* NonBlockingAsk
52-
*
53-
* Asks that should not block task execution. These are informational or optional
54-
* asks where the task can proceed even without an immediate user response.
55-
*/
56-
57-
export const nonBlockingAsks = ["command_output"] as const satisfies readonly ClineAsk[]
58-
59-
export type NonBlockingAsk = (typeof nonBlockingAsks)[number]
60-
61-
export function isNonBlockingAsk(ask: ClineAsk): ask is NonBlockingAsk {
62-
return (nonBlockingAsks as readonly ClineAsk[]).includes(ask)
63-
}
64-
6546
/**
6647
* IdleAsk
6748
*
@@ -116,6 +97,21 @@ export function isInteractiveAsk(ask: ClineAsk): ask is InteractiveAsk {
11697
return (interactiveAsks as readonly ClineAsk[]).includes(ask)
11798
}
11899

100+
/**
101+
* NonBlockingAsk
102+
*
103+
* Asks that are not associated with an actual approval, and are only used
104+
* to update chat messages.
105+
*/
106+
107+
export const nonBlockingAsks = ["command_output"] as const satisfies readonly ClineAsk[]
108+
109+
export type NonBlockingAsk = (typeof nonBlockingAsks)[number]
110+
111+
export function isNonBlockingAsk(ask: ClineAsk): ask is NonBlockingAsk {
112+
return (nonBlockingAsks as readonly ClineAsk[]).includes(ask)
113+
}
114+
119115
/**
120116
* ClineSay
121117
*/

pnpm-lock.yaml

Lines changed: 10 additions & 19 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/core/task/AutoApprovalHandler.ts renamed to src/core/auto-approval/AutoApprovalHandler.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { GlobalState, ClineMessage, ClineAsk } from "@roo-code/types"
2+
23
import { getApiMetrics } from "../../shared/getApiMetrics"
34
import { ClineAskResponse } from "../../shared/WebviewMessage"
45

src/core/task/__tests__/AutoApprovalHandler.spec.ts renamed to src/core/auto-approval/__tests__/AutoApprovalHandler.spec.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { GlobalState, ClineMessage } from "@roo-code/types"
22

33
import { AutoApprovalHandler } from "../AutoApprovalHandler"
44

5-
// Mock getApiMetrics
65
vi.mock("../../../shared/getApiMetrics", () => ({
76
getApiMetrics: vi.fn(),
87
}))

0 commit comments

Comments
 (0)