init claude-code
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
/**
|
||||
* Leader Permission Bridge
|
||||
*
|
||||
* Module-level bridge that allows the REPL to register its setToolUseConfirmQueue
|
||||
* and setToolPermissionContext functions for in-process teammates to use.
|
||||
*
|
||||
* When an in-process teammate requests permissions, it uses the standard
|
||||
* ToolUseConfirm dialog rather than the worker permission badge. This bridge
|
||||
* makes the REPL's queue setter and permission context setter accessible
|
||||
* from non-React code in the in-process runner.
|
||||
*/
|
||||
|
||||
import type { ToolUseConfirm } from '../../components/permissions/PermissionRequest.js'
|
||||
import type { ToolPermissionContext } from '../../Tool.js'
|
||||
|
||||
export type SetToolUseConfirmQueueFn = (
|
||||
updater: (prev: ToolUseConfirm[]) => ToolUseConfirm[],
|
||||
) => void
|
||||
|
||||
export type SetToolPermissionContextFn = (
|
||||
context: ToolPermissionContext,
|
||||
options?: { preserveMode?: boolean },
|
||||
) => void
|
||||
|
||||
let registeredSetter: SetToolUseConfirmQueueFn | null = null
|
||||
let registeredPermissionContextSetter: SetToolPermissionContextFn | null = null
|
||||
|
||||
export function registerLeaderToolUseConfirmQueue(
|
||||
setter: SetToolUseConfirmQueueFn,
|
||||
): void {
|
||||
registeredSetter = setter
|
||||
}
|
||||
|
||||
export function getLeaderToolUseConfirmQueue(): SetToolUseConfirmQueueFn | null {
|
||||
return registeredSetter
|
||||
}
|
||||
|
||||
export function unregisterLeaderToolUseConfirmQueue(): void {
|
||||
registeredSetter = null
|
||||
}
|
||||
|
||||
export function registerLeaderSetToolPermissionContext(
|
||||
setter: SetToolPermissionContextFn,
|
||||
): void {
|
||||
registeredPermissionContextSetter = setter
|
||||
}
|
||||
|
||||
export function getLeaderSetToolPermissionContext(): SetToolPermissionContextFn | null {
|
||||
return registeredPermissionContextSetter
|
||||
}
|
||||
|
||||
export function unregisterLeaderSetToolPermissionContext(): void {
|
||||
registeredPermissionContextSetter = null
|
||||
}
|
||||
Reference in New Issue
Block a user