@@ -54,12 +54,27 @@ export function CheckForUpdates(): $CancellablePromise<$models.UpdateCheckResult
5454
5555/**
5656 * ClearKeybinding removes commandID's override, if any, reverting it to
57- * its frontend-declared default binding.
57+ * its frontend-declared default binding. Returns the persist error
58+ * (docs/goals/0025 item 1) rather than swallowing it, and restores the
59+ * removed override in memory if the save failed, so a user who thinks
60+ * they cleared a binding doesn't have it silently come back after a
61+ * restart while the UI shows it as already cleared.
5862 */
5963export function ClearKeybinding ( commandID : string ) : $CancellablePromise < void > {
6064 return $Call . ByID ( 3036020909 , commandID ) ;
6165}
6266
67+ /**
68+ * DismissApprovalPrompt hides the floating approval prompt and applies
69+ * the same focus-yield mitigation DismissPanel already uses -- called
70+ * by the prompt's own frontend once the last pending item resolves (or
71+ * there's nothing left to show on mount), the DismissPanel-equivalent
72+ * RPC for this window.
73+ */
74+ export function DismissApprovalPrompt ( ) : $CancellablePromise < void > {
75+ return $Call . ByID ( 2270399157 ) ;
76+ }
77+
6378/**
6479 * DismissPanel hides the Quick Panel and applies the focus-yield
6580 * mitigation -- the bound RPC the panel's own frontend calls after a
@@ -71,6 +86,30 @@ export function DismissPanel(): $CancellablePromise<void> {
7186 return $Call . ByID ( 3877156882 ) ;
7287}
7388
89+ /**
90+ * ForwardPendingApproval fires the configured cross-device forward for
91+ * one new pending item -- fire-and-forget: it returns immediately, and
92+ * a delivery failure is only slog-logged, never surfaced back to the
93+ * caller or allowed to block anything. App.tsx's own per-new-item loop
94+ * calls this alongside NotifyPendingApproval, unconditionally --
95+ * unlike the presence gate, forwarding doesn't depend on local
96+ * focus/idle at all, since the whole point is reaching the owner when
97+ * there may be no local Mac attention to gate on in the first place.
98+ */
99+ export function ForwardPendingApproval ( id : string , description : string , kind : string ) : $CancellablePromise < void > {
100+ return $Call . ByID ( 4270514639 , id , description , kind ) ;
101+ }
102+
103+ /**
104+ * GetAttentionIdleThreshold returns the configured idle-seconds
105+ * threshold: the presence gate below treats the user as away once
106+ * idletime.Seconds() reaches this, even while the window is focused --
107+ * the fix for the focused-but-idle suppression case.
108+ */
109+ export function GetAttentionIdleThreshold ( ) : $CancellablePromise < number > {
110+ return $Call . ByID ( 420254759 ) ;
111+ }
112+
74113/**
75114 * GetBuildInfo reports which commit this running instance was actually
76115 * built from (settingsservice_buildinfo.go) -- surfaced in the footer
@@ -82,6 +121,21 @@ export function GetBuildInfo(): $CancellablePromise<$models.BuildInfo> {
82121 return $Call . ByID ( 2673585232 ) ;
83122}
84123
124+ /**
125+ * GetForwardApprovalsEnabled reports whether the forward is armed.
126+ */
127+ export function GetForwardApprovalsEnabled ( ) : $CancellablePromise < boolean > {
128+ return $Call . ByID ( 3422319504 ) ;
129+ }
130+
131+ /**
132+ * GetForwardApprovalsRequestID returns the configured HTTPRequest's ID
133+ * (empty means unconfigured).
134+ */
135+ export function GetForwardApprovalsRequestID ( ) : $CancellablePromise < string > {
136+ return $Call . ByID ( 1205123449 ) ;
137+ }
138+
85139/**
86140 * GetLaunchAtLogin queries the real OS state (System Events' login
87141 * items list) rather than a persisted preference -- authoritative even
@@ -169,16 +223,23 @@ export function ListWorkflowMinutesSaved(): $CancellablePromise<{ [_ in string]?
169223}
170224
171225/**
172- * NotifyPendingApproval sends an actionable OS notification for a new
173- * pending item (docs/adr/0032 §3). kind "mcp-write" gets Approve/Deny
174- * action buttons resolving directly via ResolveMCPWrite; any other kind
175- * (a guardrail/human-review park) gets a plain notification whose
176- * default click shows+focuses the window instead -- typed input may be
177- * required to resolve those, so blind approval from a notification
178- * isn't offered.
226+ * NotifyPendingApproval sends an actionable OS notification AND shows
227+ * the floating approval prompt (docs/goals/0023 item 1) for a new
228+ * pending item (docs/adr/0032 §3), but ONLY when isAway(focused) says
229+ * the user is away -- the single decision point both surfaces share, so
230+ * "notify" and "show the floating prompt" can never disagree about
231+ * presence. focused is the caller's own document.hasFocus() reading
232+ * (App.tsx) -- only the browser context knows that; everything else
233+ * about presence (idle time, the threshold) is resolved in isAway.
234+ *
235+ * kind "mcp-write" gets Approve/Deny action buttons resolving directly
236+ * via ResolveMCPWrite; any other kind (a guardrail/human-review park)
237+ * gets a plain notification whose default click shows+focuses the main
238+ * window instead -- typed input may be required to resolve those, so
239+ * blind approval from a notification isn't offered.
179240 */
180- export function NotifyPendingApproval ( id : string , description : string , kind : string ) : $CancellablePromise < void > {
181- return $Call . ByID ( 99139683 , id , description , kind ) ;
241+ export function NotifyPendingApproval ( id : string , description : string , kind : string , focused : boolean ) : $CancellablePromise < void > {
242+ return $Call . ByID ( 99139683 , id , description , kind , focused ) ;
182243}
183244
184245/**
@@ -243,6 +304,36 @@ export function RestoreSummonHotkey(): $CancellablePromise<void> {
243304 return $Call . ByID ( 442997791 ) ;
244305}
245306
307+ /**
308+ * SetAttentionIdleThreshold persists seconds (a non-positive value
309+ * resets to the default, mirroring a cleared Settings field rather than
310+ * persisting a nonsensical threshold), returning the persist error --
311+ * same reasoning as every other settings toggle in this package: a
312+ * save that silently didn't take effect leaves the user believing a
313+ * threshold applies when it doesn't.
314+ */
315+ export function SetAttentionIdleThreshold ( seconds : number ) : $CancellablePromise < void > {
316+ return $Call . ByID ( 454955395 , seconds ) ;
317+ }
318+
319+ /**
320+ * SetForwardApprovalsEnabled persists the toggle, returning the persist
321+ * error (same reasoning as every other settings toggle here: a save
322+ * that silently didn't take effect leaves the user believing the
323+ * forward is armed when it isn't, or vice versa).
324+ */
325+ export function SetForwardApprovalsEnabled ( enabled : boolean ) : $CancellablePromise < void > {
326+ return $Call . ByID ( 1952175932 , enabled ) ;
327+ }
328+
329+ /**
330+ * SetForwardApprovalsRequestID persists which Configure-authored
331+ * HTTPRequest to forward pending-approval events through.
332+ */
333+ export function SetForwardApprovalsRequestID ( id : string ) : $CancellablePromise < void > {
334+ return $Call . ByID ( 60838469 , id ) ;
335+ }
336+
246337/**
247338 * SetKeybinding overrides commandID's binding to mods+key, rejecting a
248339 * combo already claimed by another command's override, or by a
@@ -265,10 +356,24 @@ export function SetLaunchAtLogin(enabled: boolean): $CancellablePromise<void> {
265356 return $Call . ByID ( 2080722787 , enabled ) ;
266357}
267358
359+ /**
360+ * SetMCPWriteApprovalRequired returns the persist error, same reasoning
361+ * as SetMCPWriteEnabled -- relaxing this to "unattended" (required =
362+ * false) failing to save silently is a security-relevant gap;
363+ * re-tightening it (required = true) failing to save silently would be
364+ * worse (the user believes approval is required again when it isn't).
365+ */
268366export function SetMCPWriteApprovalRequired ( required : boolean ) : $CancellablePromise < void > {
269367 return $Call . ByID ( 4059084081 , required ) ;
270368}
271369
370+ /**
371+ * SetMCPWriteEnabled returns the persist error (docs/goals/0025 item 1)
372+ * rather than swallowing it -- this is a security-relevant toggle
373+ * (whether an external MCP client may write to this instance at all);
374+ * a click that silently failed to take effect is exactly the kind of
375+ * gap §8's fail-safe posture exists to prevent.
376+ */
272377export function SetMCPWriteEnabled ( enabled : boolean ) : $CancellablePromise < void > {
273378 return $Call . ByID ( 213255560 , enabled ) ;
274379}
@@ -361,6 +466,9 @@ export function SuspendMenuAccelerators(): $CancellablePromise<void> {
361466
362467/**
363468 * UnassignSummonHotkey removes the app-level summon hotkey, if any.
469+ * Returns the persist error (docs/goals/0025 item 1) rather than
470+ * swallowing it, restoring the in-memory record on failure so it
471+ * matches what's still on disk.
364472 */
365473export function UnassignSummonHotkey ( ) : $CancellablePromise < void > {
366474 return $Call . ByID ( 2578647287 ) ;
0 commit comments