|
58 | 58 | ], |
59 | 59 | "rules": [ |
60 | 60 | "Use broker identities such as work-main or qa-generic when account state is needed.", |
61 | | - "Use auth_request for login or password handoff; auth_request returns lease_control by default.", |
62 | | - "Use lease_control_request when an already-leased browser hits a human challenge or login prompt that must be handled in the current tab.", |
| 61 | + "Use auth_request for login or password handoff; auth_request returns a real /auth/<token> portal by default.", |
| 62 | + "Use lease_control_request only when an already-leased browser needs human current-tab control without credential entry.", |
63 | 63 | "Use OpenBrowser wrappers instead of aiming custom scripts directly at raw pool CDP ports.", |
64 | 64 | "For chat/editor submission, prefer broker keyboard tools over DOM fill because modern editors maintain internal state.", |
65 | 65 | "For Slack header/tab controls, dismiss open ReactModal/popovers with Escape before selector clicks.", |
|
118 | 118 | "notes": [ |
119 | 119 | "The CLI talks to the local broker API and reads the local server-side API key file when needed.", |
120 | 120 | "Use open --control for simple 'open this for me' requests; it returns a verified control URL in one command.", |
121 | | - "openbrowser auth returns an interactive lease-control URL by default. Use --mode vnc only for the legacy full-login-view fallback.", |
| 121 | + "openbrowser auth returns a real /auth/<token> login portal by default. Use open --control or lease-control for current-tab control links.", |
122 | 122 | "Use it for status, docs, auth handoffs, active lease-control links, and quick smoke checks.", |
123 | 123 | "Use Broker MCP directly for normal click/type/screenshot workflows when tools are available.", |
124 | 124 | ], |
|
127 | 127 | "title": "Human Auth Handoff", |
128 | 128 | "steps": [ |
129 | 129 | "When an agent hits a login wall, call auth_request with owner, url, reason, and identity_id.", |
130 | | - "auth_request returns lease_control by default: a broker lease is opened or reused, navigated to the requested URL when safe, verified with a compact snapshot, and exposed through the normal control portal.", |
131 | | - "If the requested identity is already leased, auth_request returns lease_control for that active browser instead of opening a competing Chrome profile.", |
132 | | - "If the active leased browser is on a different host than the requested URL, auth_request returns takeover_required=true and does not navigate the active browser.", |
133 | | - "If no identity_id is supplied, auth_request opens a neutral broker browser and returns a warning instead of using a personal authenticated profile.", |
134 | | - "Send the returned portal_url to the human operator only after checking status, current_url/navigation, snapshot, and takeover_required.", |
135 | | - "Use mode=vnc only when the legacy full-login-view fallback is explicitly needed.", |
136 | | - "During legacy VNC identity auth, the broker pauses the matching pool slot with a maintenance marker so headless Chrome cannot re-lock the profile.", |
| 130 | + "auth_request returns a real /auth/<token> login portal by default. Send this link when the user must sign in, enter a password, use a passkey, solve 2FA, or complete a provider login flow.", |
| 131 | + "If the requested identity is already leased, do not convert login auth into lease-control. Release your own stale lease first, or wait if another agent owns the lease.", |
| 132 | + "Use lease_control_request only when the user explicitly needs to control an already-open current tab, not for credential entry.", |
| 133 | + "If no identity_id is supplied, auth_request creates a neutral auth portal and does not use a personal authenticated profile.", |
| 134 | + "Send the returned portal_url only when it starts with /auth/ and not /auth/lease-control/ for login tasks.", |
| 135 | + "Use mode=lease_control only for the explicit current-tab fallback. Do not use it for login.", |
| 136 | + "During identity auth, the broker pauses the matching pool slot with a maintenance marker so headless Chrome cannot re-lock the profile.", |
137 | 137 | "If the identity has proxy_ref, the legacy temporary auth Chrome also uses that proxy through ax-proxy-forwarder.", |
138 | | - "If a legacy VNC identity auth handoff is refused before VNC starts, the temporary VNC password file is removed.", |
139 | | - "When legacy VNC completion runs, the broker stops VNC/websockify/Chrome/Xvfb helper processes and removes the temporary password file.", |
140 | | - "After a lease-control handoff, continue from the same lease_id/current tab. Do not create a second lease or navigate away from a meaningful page.", |
| 138 | + "If an identity auth handoff is refused before VNC starts, the temporary VNC password file is removed.", |
| 139 | + "When auth completion runs, the broker stops VNC/websockify/Chrome/Xvfb helper processes and removes the temporary password file.", |
| 140 | + "After auth completion, lease the same identity, snapshot first, and continue from the authenticated state. After lease-control, continue from the same lease_id/current tab.", |
141 | 141 | "After browser work, confirm state with snapshot or screenshot and run broker_audit.", |
142 | 142 | ], |
143 | 143 | "examples": [ |
144 | 144 | {"tool": "auth_request", "args": {"owner": "agent-name", "url": "https://example.com/login", "reason": "profile_login", "identity_id": "work-main"}}, |
145 | | - {"tool": "auth_request", "args": {"owner": "agent-name", "url": "https://example.com/login", "reason": "legacy_vnc_login", "identity_id": "work-main", "mode": "vnc"}}, |
146 | 145 | {"tool": "lease_control_request", "args": {"owner": "agent-name", "lease_id": "<lease_id>", "ttl_seconds": 900}}, |
147 | 146 | ], |
148 | 147 | }, |
|
0 commit comments