mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-16 13:01:33 +00:00
* fix(security): serialize exec approval mutations * fix(security): preserve additive approval writes * test(cli): expect normalized approval shape * fix(security): preserve exec approval compatibility * test(security): exercise locked approval initialization * test(security): mock serialized approval helpers * test(exec): derive enforced command path from plan * fix(gateway): always return approval CAS conflicts * fix(macos): serialize exec approvals writes * fix(security): repair approval build errors * fix(security): serialize exec approval mutations * fix(security): fail closed on approval persistence errors * test(security): cover detached approval persistence failures * fix(security): harden exec approval state * style(macos): format exec approval sources * fix(security): complete exec approval hardening Co-authored-by: Coy Geek <65363919+coygeek@users.noreply.github.com> * fix(macos): preserve approved login-shell semantics * fix(macos): keep login shell approvals one-shot * fix(security): linearize exec authorization Co-authored-by: Coy Geek <65363919+coygeek@users.noreply.github.com> * fix(security): preserve durable approval basis Co-authored-by: Coy Geek <65363919+coygeek@users.noreply.github.com> * fix(security): bind exec grants to current policy Co-authored-by: Coy Geek <65363919+coygeek@users.noreply.github.com> * test(security): fix exec revocation fixtures * test(security): align gateway approval fixtures * fix(macos): return approval decisions * chore(i18n): sync native approval strings * test(security): align approval hardening fixtures * test(node): authorize completed event fixture * test(security): fix approval decision fixtures * test(security): await durable approval visibility * fix(exec): preserve concurrent approval grants * fix(exec): address exact-head CI failures * fix(exec): preserve concurrent approval promotions * fix(exec): make Swift shutdown state explicit * test(macos): handle approval read failures * fix(macos): harden approval socket paths * fix(macos): preserve exact shell payload bytes * test(macos): make approval fixtures explicit * test(macos): fix approval suite compilation * fix(macos): bound approval socket JSONL reads * chore: move exec approval note to release process * chore: move exec approval note to release process --------- Co-authored-by: Coy Geek <65363919+coygeek@users.noreply.github.com>
76 lines
2.1 KiB
TypeScript
76 lines
2.1 KiB
TypeScript
/** Shared node-host request, result, event, and approval-bin provider contracts. */
|
|
import type { SkillBinTrustEntry, SystemRunApprovalPlan } from "../infra/exec-approvals.js";
|
|
|
|
/**
|
|
* Shared request/result/event types for node-host command execution.
|
|
*
|
|
* These contracts are consumed by Gateway invoke handling, approval planning,
|
|
* and node-host event emission.
|
|
*/
|
|
/** Input payload for a node-host system.run invocation. */
|
|
export type SystemRunParams = {
|
|
command: string[];
|
|
rawCommand?: string | null;
|
|
systemRunPlan?: SystemRunApprovalPlan | null;
|
|
cwd?: string | null;
|
|
env?: Record<string, string>;
|
|
timeoutMs?: number | null;
|
|
needsScreenRecording?: boolean | null;
|
|
agentId?: string | null;
|
|
sessionKey?: string | null;
|
|
approved?: boolean | null;
|
|
approvalDecision?: string | null;
|
|
approvalSource?: string | null;
|
|
runId?: string | null;
|
|
suppressNotifyOnExit?: boolean | null;
|
|
};
|
|
|
|
/** Captured process result returned by system.run execution. */
|
|
export type RunResult = {
|
|
exitCode?: number;
|
|
timedOut: boolean;
|
|
success: boolean;
|
|
stdout: string;
|
|
stderr: string;
|
|
error?: string | null;
|
|
truncated: boolean;
|
|
};
|
|
|
|
/** Gateway event payload emitted for exec lifecycle notifications. */
|
|
export type ExecEventPayload = {
|
|
sessionKey: string;
|
|
runId: string;
|
|
host: string;
|
|
command?: string;
|
|
exitCode?: number;
|
|
timedOut?: boolean;
|
|
success?: boolean;
|
|
output?: string;
|
|
reason?: string;
|
|
suppressNotifyOnExit?: boolean;
|
|
};
|
|
|
|
/** Normalized exec result fields used when building finished events. */
|
|
export type ExecFinishedResult = {
|
|
stdout?: string;
|
|
stderr?: string;
|
|
error?: string | null;
|
|
exitCode?: number | null;
|
|
timedOut?: boolean;
|
|
success?: boolean;
|
|
};
|
|
|
|
/** Inputs required to emit an exec finished event. */
|
|
export type ExecFinishedEventParams = {
|
|
sessionKey: string;
|
|
runId: string;
|
|
commandText: string;
|
|
result: ExecFinishedResult;
|
|
suppressNotifyOnExit?: boolean;
|
|
};
|
|
|
|
/** Provider for trusted skill-bin entries used during approval checks. */
|
|
export type SkillBinsProvider = {
|
|
current(force?: boolean): Promise<SkillBinTrustEntry[]>;
|
|
};
|