§
    ›Çj/  ã            
      óP  — U d Z ddlmZ i dd“dd“dd“dd“dd“d	d
“dd
“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“i dd“dd“dd“dd“dd“dd“d d!“d"d#“d$d#“d%d#“d&d#“d'd#“d(d#“d)d#“d*d+“d,d-“d.d-“¥i d/d-“d0d-“d1d-“d2d-“d3d-“d4d-“d5d-“d6d-“d7d-“d8d-“d9d-“d:d;“d<d;“d=d;“d>d;“d?d;“d@d;“¥i dAd;“dBd;“dCdD“dEdD“dFdD“dGdD“dHdD“dIdD“dJdD“dKdD“dLdD“dMdD“dNdD“dOdD“dPdD“dQdD“dRdD“¥dDdDdSdSdSdSdSdSdTœ¥ZdUdUdVdWdXdYœZh dZ£Zd[d\hZh d]£Z e¦   «         Z	d^e
d_<    ee¦  «        ez  ez  ez  e	z  Zd`„ ZdaS )buq  What this package deliberately does NOT do, and why - one name at a time.

â›” THIS FILE EXISTS SO A REFUSAL CAN NAME THE FEATURE. Without it an
out-of-perimeter call reaches a guid that was never created and comes back as
`no object 'artifact@3' to answer 'read'` - technically true, useless to read,
and indistinguishable from a bug in this package. With it the caller is told
that reading an artifact is tracing, that tracing is outside the automation
core, and that the refusal is a decision rather than a gap.

â›” AND IT LIVES HERE, IN THE SHIPPED PACKAGE, not in the workbench. The
perimeter was written first in a workbench script that measures how much work
is left, and that is the wrong home for it twice over: the thing that has to
REFUSE is this package, and a list kept somewhere that is never shipped is a
second copy of a fact. The workbench inventory now reads this module (rule 16).

The perimeter itself was chosen by the owner on 2026-08-27: the automation
core, with tracing, HAR, video, codegen and the recorder, `APIRequestContext`,
`CDPSession` and the clock left out. See `32-stacco-da-playwright.md` section 1.
é    )ÚannotationsÚdisposeAPIResponseÚAPIRequestContextÚfetchÚfetchLogÚfetchResponseBodyÚ
newRequestÚcancelz'artifacts: traces, videos and downloadsÚdeleteÚconnectOverCDPÚCDPÚdetachÚnewBrowserCDPSessionÚnewCDPSessionÚsendÚharCloseÚHARÚ	harExportÚ	harLookupÚharOpenÚharStartÚharUnzipÚreadzan artifact streamÚcredentialsCreateÚWebAuthnÚcredentialsDeleteÚcredentialsGetÚcredentialsInstallÚpdfÚcaptureÚclockFastForwardÚclockÚclockInstallÚclockPauseAtÚclockResumeÚclockRunForÚclockSetFixedTimeÚclockSetSystemTimeÚcreateTempFileszAthe streamed upload path - set_input_files with local paths worksÚcancelPickLocatorÚrecorderÚcreateSelectorForTestÚhideHighlightÚ	highlightÚnextÚpauseÚpickLocatorÚregisterLocatorHandlerÚrequestPauseÚresolveLocatorHandlerNoReplyÚresumeÚrunToÚunregisterLocatorHandlerÚ	closePagez=the driver's WebSocket server, which is what is being removedÚcloseServerÚconnectÚensureOpenedÚ
sendToPageÚsendToServerÚstartServerÚ
stopServerÚ__waitInfo__ÚtracingÚaddStackToTracingNoReplyÚpathAfterFinishedÚsaveAsStreamÚstartTracingÚstopTracingÚstreamÚtraceDiscardedÚtracingGroupÚtracingGroupEndÚtracingStartÚtracingStartChunkÚtracingStartedÚtracingStopÚtracingStopChunkÚvideo)ÚwriteÚzipÚscreencastChapterÚscreencastHideActionsÚscreencastRemoveOverlayÚscreencastSetOverlayVisibleÚscreencastShowActionsÚscreencastShowOverlayz*the client calls it inside context.close()z(the client sends it while tracing is offz+the client sends it at the end of a sessionz4the client annotates every wait for the trace viewer)rN   rO   rB   rH   r@   >   ÚdropÚ
setOfflineÚ setWebSocketInterceptionPatternsÚregisterSelectorEngineÚsetTestIdAttributeName>   ÚrejectÚresolveÚexposeBindingÚsetExtraHTTPHeadersÚsetÚ	WITHDRAWNc                ó`   — t                                | ¦  «        }|sdS | dz   |z   dz   |z   dz   S )zEThe sentence a caller gets, or an empty string if it is in perimeter.Ú z is part of z], which invisible_playwright does not implement: the package covers the automation core, and zX is outside it by decision, not by omission. See 32-stacco-da-playwright.md section 5.4.)ÚOUTSIDEÚget)Ú	operationÚfeatures     úXC:\Projects\Historical\venv\Lib\site-packages\invisible_playwright/_juggler/perimeter.pyÚrefusalrk   Ü   sQ   € å�kŠk˜)Ñ$Ô$€GØð ØˆrØ˜Ñ&¨Ñ0ð 4$ñ $à&-ñ.ð1KñKð Ló    N)Ú__doc__Ú
__future__r   rf   ÚCOURTESYÚNO_ENGINE_COMMANDÚFIXED_AT_BUILDÚNOT_WIRED_YETrb   rc   Ú__annotations__ÚREFUSEDrk   © rl   rj   ú<module>rv      s  ððð ð ð& #Ð "Ð "Ð "Ð "Ð "ð
^àÐ':ð^ð Ð':ð^ð Ð':ð	^ð
 Ð':ð^ð Ð':ð^ð Ð'Pð^ð Ð'Pð^ð  uð^ð  uð^ð  uð^ð  uð^ð  uð^ð"  uð#^ð$  uð%^ð&  uð'^ð(  uð)^ð*  uð+^ð ^ð,  uð-^ð0 Ð';ð1^ð4  zð5^ð6  zð7^ð8  zð9^ð:  zð;^ð> 
 yð?^ðB  wðC^ðD  wðE^ðF  wðG^ðH  wðI^ðJ  wðK^ðL  wðM^ðN  wðO^ðR Ð'jðS^ðV  zðW^ðX  zðY^ð ^ð ^ðZ  zð[^ð\  zð]^ð^  zð_^ð`  zða^ðb  zðc^ðd  zðe^ðf  zðg^ðh # zði^ðj  zðk^ðl  zðm^ðn  zðo^ðr Ð'fðs^ðt Ð'fðu^ðv Ð'fðw^ðx Ð'fðy^ðz Ð'fð{^ð| Ð'fð}^ð ^ð ^ð~ Ð'fð^ð@ Ð'fðA^ðD  yðE^ðF  yðG^ðH  yðI^ðJ  yðK^ðL  yðM^ðN  yðO^ðP  yðQ^ðR  yðS^ðT  yðU^ðV  yðW^ðX  yðY^ðZ  yð[^ð\  yð]^ð^  yð_^ð`  yða^ð ^ðb (1Ø'0ð (/Ø'.Ø'.Ø'.Ø'.Ø'.ð{^ð ^ð ^€ðR @ØDØ JØCØJðð €ð8ð ð Ð ð Øð€ð	ð 	ð 	€ðP �‘”€	Ð Ð Ð Ñ ð ˆ3ˆw‰<Œ<Ð+Ñ+¨nÑ<¸}ÑLØñ€ðLð Lð Lð Lð Lrl   