init
This commit is contained in:
commit
ec53fcbe95
1905 changed files with 513762 additions and 0 deletions
54
utils/swarm/leaderPermissionBridge.ts
Normal file
54
utils/swarm/leaderPermissionBridge.ts
Normal file
|
|
@ -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
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue