5cec57e06d
Testing / remote-protocol-compat (0.9.3) (push) Successful in 40s
Testing / remote-protocol-compat (0.9.5) (push) Successful in 38s
Testing / test (push) Failing after 1m3s
Package Extension / package-extension (push) Successful in 29s
Build & Publish Package / publish (push) Successful in 33s
- Add safe-by-default policy gates for raw command surfaces: command, script, and serve-http /command. - Require explicit opt-ins for page reads, browser control, and high-risk commands such as dom.eval, storage.*, and screenshots. - Remove all cookies support from CLI, SDK, extension commands, permissions, constants, docs, and tests. - Add diagnostic, events, watch, workspace, remote, raw command, script, HTTP gateway, tree-view, session import/export, and extension info/capability commands. - Add Chrome Web Store packaging that strips manifest.key while keeping local packages with a stable native-messaging extension ID. - Bump browser-cli and extension version to 0.14.1 and cover the new behavior with pytest and extension packaging tests. BREAKING CHANGE: cookies commands and the b.cookies SDK namespace have been removed; generic raw command execution now blocks non-safe commands unless explicitly allowed.
22 lines
922 B
TypeScript
22 lines
922 B
TypeScript
import type { CommandArgs, Serializable } from '../types';
|
|
import type { JobManager } from './JobManager';
|
|
|
|
export type CommandRun = (args: CommandArgs) => Promise<Serializable> | Serializable;
|
|
export interface CommandSpec { background?: boolean; run: CommandRun; }
|
|
export type CommandEntry = CommandRun | CommandSpec;
|
|
|
|
/** Shared state handed to every command group at construction. */
|
|
export interface CommandContext { jobs: JobManager; }
|
|
|
|
/**
|
|
* A command group bundles a set of related subcommands. `commands` is keyed by
|
|
* the FULL command id (e.g. "tabs.close") so groups spanning multiple
|
|
* namespaces (dom/extract/page, storage, session/clients) register
|
|
* uniformly. `namespace` is documentation/grouping only.
|
|
*/
|
|
export abstract class CommandGroup {
|
|
constructor(protected readonly ctx: CommandContext) {}
|
|
abstract readonly namespace: string;
|
|
abstract readonly commands: Record<string, CommandEntry>;
|
|
}
|