pk-annotator 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +9 -9
- package/README.md +2 -2
- package/dist/overlay.mjs +3 -3
- package/dist/{pka-mcp-server-DeBVJQYE.mjs → pka-mcp-server-BhcwUcgs.mjs} +20 -3
- package/dist/pka-mcp.mjs +1 -1
- package/dist/{pka-overlay-agent-theme-DfiOu97H.mjs → pka-overlay-agent-theme-BiWi6_IJ.mjs} +1 -1
- package/dist/pka-overlay-app-DjGKtS7t.mjs +274 -0
- package/dist/pka-overlay-channel-BZI-qbPH.mjs +113 -0
- package/dist/{pka-overlay-composer-CK1sTHAv.mjs → pka-overlay-composer-DCu_eGT0.mjs} +26 -26
- package/dist/{pka-overlay-copy-BTMmwtSZ.mjs → pka-overlay-copy-B-PxSL-y.mjs} +1 -1
- package/dist/{pka-overlay-perf-panel-xd8kgxtm.mjs → pka-overlay-perf-panel-DZY5Nwil.mjs} +2 -2
- package/dist/pka-overlay-send-Cu8DXY6B.mjs +139 -0
- package/dist/pka-overlay-thread-store-C55iLxND.mjs +1 -0
- package/dist/pka.mjs +23 -4
- package/dist/{recording-82fajWWq.mjs → recording-D_Qkyq0N.mjs} +32 -9
- package/dist/vite.mjs +64 -11
- package/package.json +1 -1
- package/dist/pka-overlay-app-D-PF-HmH.mjs +0 -267
- package/dist/pka-overlay-channel-C6qfFolf.mjs +0 -113
- package/dist/pka-overlay-send-UrgGuLhh.mjs +0 -139
- package/dist/pka-overlay-thread-store-X3FM2ev_.mjs +0 -1
package/README.ko.md
CHANGED
|
@@ -75,15 +75,15 @@ claude --dangerously-load-development-channels server:pka
|
|
|
75
75
|
|
|
76
76
|
## 사용
|
|
77
77
|
|
|
78
|
-
| 그룹 | 도구
|
|
79
|
-
| --------- |
|
|
80
|
-
| 요소 선택 | 선택(Shift로 여러 개), 영역 선택,
|
|
81
|
-
| 캡처 | 스크린샷과 자르기, 영역 녹화(GIF 또는 WebM)
|
|
82
|
-
| 그리기 | 자유 그리기, 사각형, 원
|
|
83
|
-
| 디버그 | 콘솔, 네트워크, 성능
|
|
84
|
-
| 설정 | 기록, English/한국어, 종료
|
|
85
|
-
|
|
86
|
-
요소 선택과 캡처 도구는 요청 편집기를 열고, 그리기를 마치면 스크린샷 주석으로 쌓여 함께 보낼 수 있습니다. 바로 보내거나, 주석을 저장해 두었다가 한 번에 보낼 수 있습니다. 본문의 요소와 캡처 배지는 에이전트에게 `[element n]`, `[attachment n: label]` 참조로 전달됩니다. 연결된 에이전트가 없으면 보내기는 주석을 마크다운으로도 복사합니다.
|
|
78
|
+
| 그룹 | 도구 |
|
|
79
|
+
| --------- | ------------------------------------------------ |
|
|
80
|
+
| 요소 선택 | 선택(Shift로 여러 개), 영역 선택, 올가미, 텍스트 |
|
|
81
|
+
| 캡처 | 스크린샷과 자르기, 영역 녹화(GIF 또는 WebM) |
|
|
82
|
+
| 그리기 | 자유 그리기, 사각형, 원 |
|
|
83
|
+
| 디버그 | 콘솔, 네트워크, 성능 |
|
|
84
|
+
| 설정 | 기록, English/한국어, 종료 |
|
|
85
|
+
|
|
86
|
+
요소 선택과 캡처 도구는 요청 편집기를 열고, 그리기를 마치면 스크린샷 주석으로 쌓여 함께 보낼 수 있습니다. 바로 보내거나, 주석을 저장해 두었다가 한 번에 보낼 수 있습니다. 텍스트 도구는 페이지에서 드래그한 글을 강조하고, 그 문구를 요소와 함께 인용으로 보내 정확한 표현을 고치게 합니다. 본문의 요소와 캡처 배지는 에이전트에게 `[element n]`, `[attachment n: label]` 참조로 전달됩니다. 연결된 에이전트가 없으면 보내기는 주석을 마크다운으로도 복사합니다.
|
|
87
87
|
|
|
88
88
|
## CLI
|
|
89
89
|
|
package/README.md
CHANGED
|
@@ -77,13 +77,13 @@ Channels are a Claude Code research preview, and Team and Enterprise organizatio
|
|
|
77
77
|
|
|
78
78
|
| Group | Tools |
|
|
79
79
|
| -------- | --------------------------------------------------- |
|
|
80
|
-
| Pick | Select (Shift for several), Box, Lasso
|
|
80
|
+
| Pick | Select (Shift for several), Box, Lasso, Text |
|
|
81
81
|
| Capture | Screenshot with crop, area recording as GIF or WebM |
|
|
82
82
|
| Annotate | Freehand, Rectangle, Circle |
|
|
83
83
|
| Debug | Console, Network, Performance |
|
|
84
84
|
| Settings | History, English/한국어, Exit |
|
|
85
85
|
|
|
86
|
-
Pick and Capture tools open the prompt editor; a finished drawing becomes a screenshot mark stacked for Send. Send at once, or Save marks and send them together. Element and capture badges in the text become `[element n]` and `[attachment n: label]` references for the agent. Without a connected agent, Send also copies the annotation as Markdown.
|
|
86
|
+
Pick and Capture tools open the prompt editor; a finished drawing becomes a screenshot mark stacked for Send. Send at once, or Save marks and send them together. Text highlights the page text you select and sends it as a quote with its element, for fixing that exact wording. Element and capture badges in the text become `[element n]` and `[attachment n: label]` references for the agent. Without a connected agent, Send also copies the annotation as Markdown.
|
|
87
87
|
|
|
88
88
|
## CLI
|
|
89
89
|
|
package/dist/overlay.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import{captureOwnerStack as e}from"react";const t=/((?:[a-z][a-z\d+.-]*:\/\/|\/)[^\s()]*?):(\d+):\d+\)?\s*$/i,n=/^\s*at (?:async )?(.+?) \(/,r=/^([^@\s]*)@/,i=/\/node_modules\/|\/\.vite\/deps\/|\/@vite\/|\/@react-refresh/,a=/\/pka-overlay-[^/]+\.m?js$/,o=c(import.meta.url);function s(e){let i=[];for(let a of e.split(`
|
|
2
|
-
`)){let e=t.exec(a);if(e===null)continue;let o=(n.exec(a)??r.exec(a))?.[1];i.push({fn:o===void 0||o===``?void 0:o,path:c(e[1]??``),line:Number(e[2])})}return i}function c(e){return e.replace(/^[a-z][a-z\d+.-]*:\/\/[^/]*/i,``).replace(/[?#].*$/,``)}function l(e){return e.slice(0,500).replace(/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi,`<uuid>`).replace(/\b(?:0x[0-9a-f]+|(?=[0-9a-f]*\d)[0-9a-f]{8,})\b/gi,`<hex>`).replace(/\d+(?:\.\d+)?/g,`<n>`)}function u(e,t,n){let r=s(n).filter(e=>e.path!==``&&!i.test(e.path)),a=r[0];return{fingerprint:p([e,l(t),...r.slice(0,3).map(e=>`${e.path}:${e.fn??e.line}`)].join(`|`)),topFrame:a&&`${a.path}:${a.line}`}}function d(e){let t=!1;for(let n of s(e))if(a.test(n.path))t=!0;else if(n.path!==o&&!i.test(n.path))return!1;return t}function f(e,t){return p(`resource|${e}|${c(t)}`)}function p(e){let t=3735928559,n=1103547991;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r);t=Math.imul(t^i,2654435761),n=Math.imul(n^i,1597334677)}return t=Math.imul(t^t>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(t^t>>>13,3266489909),(4294967296*(2097151&n)+(t>>>0)).toString(16).padStart(14,`0`)}const m=globalThis.PerformanceObserver,h=/* @__PURE__ */ new Set,g=/* @__PURE__ */ new Set,_=/* @__PURE__ */ new WeakSet,v=/* @__PURE__ */ new WeakMap;let y=!1,b=[];function x(e){return{getEntries:()=>e,getEntriesByType:t=>e.filter(e=>e.entryType===t),getEntriesByName:(t,n)=>e.filter(e=>e.name===t&&(n===void 0||e.entryType===n))}}var S=class extends m{#e;constructor(e){let t=/* @__PURE__ */ new WeakSet;super((n,r)=>{if(!_.has(r)){e(n,r);return}let i=n.getEntries().filter(e=>!t.has(e));for(let e of i)t.add(e);i.length>0&&e(x(i),r)}),this.#e=t,b.length===0&&queueMicrotask(()=>{b=[]}),b.push(this)}observe(e={}){if((e.entryTypes??(e.type===void 0?[]:[e.type])).some(e=>e!==`resource`)&&_.add(this),v.set(this,[...v.get(this)??[],e]),y&&_.has(this)){g.add(this);return}h.add(this),super.observe(e)}takeRecords(){let e=super.takeRecords();if(!_.has(this))return e;let t=e.filter(e=>!this.#e.has(e));for(let e of t)this.#e.add(e);return t}disconnect(){h.delete(this),g.delete(this),super.disconnect()}};function C(){for(let e of b)_.add(e)}function w(){y=!0;for(let e of h)_.has(e)&&(m.prototype.disconnect.call(e),h.delete(e),g.add(e))}function T(){y=!1;for(let e of g){for(let t of v.get(e)??[])m.prototype.observe.call(e,t);h.add(e)}g.clear()}const E=2e3,D=Symbol(`no fit`);function O(e){return structuredClone(e)}function k(e,t=E){return O(e.length<=t?e:`${e.slice(0,t)}…[+${e.length-t} chars]`)}function A(e){let t=I(e,e.length,50,0,{ancestors:[],nodes:0,used:0,reserved:0},`[`,`]`,`args`);if(t===D)throw Error(`The console budget cannot hold an empty argument list`);return t}function j(e){return 8e3-e.used-e.reserved}function M(e,t,n){return t>j(e)?D:(e.used+=t,n)}function N(e,t){let n=e.charCodeAt(t);if(n===34||n===92)return[2,1];if(n<32)return[n===8||n===9||n===10||n===12||n===13?2:6,1];if(n<55296||n>57343)return[1,1];let r=e.charCodeAt(t+1);return n<=56319&&r>=56320&&r<=57343?[2,2]:[6,1]}function P(e,t){let n=j(e),r=Math.min(t.length,E),i=10+String(t.length).length,a=2,o=0,s=-1,c=0;for(;a+i<=n&&(s=o,c=a),!(o>=r||a>n);){let[e,n]=N(t,o);a+=e,o+=n}if(o>=t.length&&a<=n)return e.used+=a,O(t);if(s<0)return D;let l=`…[+${t.length-s} chars]`;return e.used+=c+l.length,O(`${t.slice(0,s)}${l}`)}function ee(e){return k(A(e).map(e=>Object.prototype.toString.call(e)===`[object String]`?String(e):JSON.stringify(e)).join(` `))}function te(e){let t=`${e.name}: ${e.message}`,n=e.stack??``;return k(n===``?t:n.startsWith(t)?n:`${t}\n${n}`)}function F(e,t,n){if(n.nodes>=1e3)return D;if(n.nodes+=1,e===null)return M(n,4,null);let r;try{r=Object.prototype.toString.call(e)}catch(e){return P(n,`[Unserializable: ${String(e)}]`)}switch(r){case`[object Undefined]`:return P(n,`[undefined]`);case`[object String]`:return P(n,String(e));case`[object Number]`:{let t=Number(e);return Number.isFinite(t)?M(n,String(t).length,t):P(n,`[${t}]`)}case`[object Boolean]`:{let t=String(e)===`true`;return M(n,t?4:5,t)}case`[object BigInt]`:return P(n,`${String(e)}n`);case`[object Symbol]`:return P(n,String(e))}return e instanceof Function?P(n,`[Function ${e.name||`(anonymous)`}]`):ne(e,t,n)}function ne(e,t,n){let r=ie(e);if(r!==void 0)return P(n,r);if(n.ancestors.includes(e))return P(n,`[Circular]`);if(t>=3)return P(n,L(e));let{used:i,reserved:a}=n;n.ancestors.push(e);try{if(Array.isArray(e))return I(e,e.length,50,t+1,n,`[`,`]`,`items`);if(e instanceof Map||e instanceof Set){let r=e instanceof Map?`[Map]`:`[Set]`,i=[],a=e.entries();for(let t=a.next();!t.done&&i.length<50;t=a.next())i.push(e instanceof Map?t.value:t.value[0]);let o=I(i,e.size,50,t+1,n,`{"${r}":[`,`]}`,`items`);return o===D?D:{[r]:o}}return re(e,t,n)}catch(e){return n.used=i,n.reserved=a,P(n,`[Unserializable: ${String(e)}]`)}finally{n.ancestors.pop()}}function I(e,t,n,r,i,a,o,s){if(a.length+o.length+40>j(i))return D;i.used+=a.length,i.reserved+=o.length+40;let c=[],l=Math.min(e.length,n);for(;c.length<l;){let t=c.length===0?0:1;if(t>j(i))break;i.used+=t;let n=F(e[c.length],r,i);if(n===D){i.used-=t;break}c.push(n)}if(i.reserved-=o.length+40,i.used+=o.length,t>c.length){let e=`[+${t-c.length} ${s}]`;i.used+=(c.length===0?0:1)+e.length+2,c.push(e)}return c}function re(e,t,n){if(42>j(n))return D;let r=Object(e),i=Object.keys(r);n.used+=1,n.reserved+=41;let a={},o=0;for(let e of i){if(o===50)break;let i=n.used,s=o===0?1:2;if(s>j(n))break;n.used+=s,n.reserved+=24;let c=P(n,e);n.reserved-=24;let l=D;if(c!==D){let i=Object.getOwnPropertyDescriptor(r,e);l=i===void 0||!(`value`in i)?P(n,`[Getter]`):F(i.value,t+1,n)}if(c===D||l===D){n.used=i;break}a[c]=l,o+=1}if(n.reserved-=41,n.used+=1,i.length>o){let e=`[+${i.length-o} keys]`;n.used+=(o===0?0:1)+4+e.length+2,a[`…`]=e}return a}function ie(e){if(e instanceof Error)return te(e);if(e instanceof Date)return Number.isNaN(e.getTime())?`[Invalid Date]`:e.toISOString();if(e instanceof RegExp)return String(e);if(globalThis.Node!==void 0&&e instanceof Node)return R(e);if(globalThis.window!==void 0&&e===globalThis.window)return`[Window]`;if(e instanceof Promise)return`[Promise]`;if(e instanceof WeakMap)return`[WeakMap]`;if(e instanceof WeakSet)return`[WeakSet]`;if(e instanceof ArrayBuffer)return`[ArrayBuffer(${e.byteLength})]`;if(ArrayBuffer.isView(e))return`[${e.constructor.name}(${e.byteLength} bytes)]`}function L(e){return Array.isArray(e)?`[Array(${e.length})]`:e instanceof Map?`[Map(${e.size})]`:e instanceof Set?`[Set(${e.size})]`:`[Object]`}function R(e){if(e instanceof Element){let t=e.id===``?``:`#${e.id}`,n=[...e.classList].slice(0,3).map(e=>`.${e}`).join(``);return`[Element ${e.localName}${t}${n}]`}return e instanceof Text?`[Text ${JSON.stringify(k(e.data,40))}]`:`[${e.nodeName}]`}const ae=8388608,oe=2e3,z=1e3,B=/auth|cookie|token|secret|session|api-?key|csrf|xsrf|passw/i,se=/token|code|state|passw|secret|key|session|auth|credential/i,V=/token|secret|passw(?:or)?d|session|cookie|authorization|api[-_ ]?key|credential/i,H=/^\s*(?:text\/(?!event-stream)|application\/(?:[\w.-]+\+)?json\b)/i,U=/^\s*text\/event-stream/i,W=/^\s*application\/(?!stream\+)(?:[\w.-]+\+)?json\s*(?:;|$)/i;let G;const ce=/* @__PURE__ */ new WeakSet;let K=!1;function le(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function ue(e){return e===void 0?{}:new Proxy(e,{get:de})}function de(e,t){return e[t]}function fe(e,t){if(e===void 0)return{headers:t};if(le(e))return{...e,headers:t};if(Object.getOwnPropertyDescriptor(e,`headers`)?.configurable!==!1)return new Proxy(e,{get:(e,n)=>n===`headers`?t:de(e,n)})}function pe(e,t,n){let r=ue(n);ce.add(r);let i=K;K=!0;try{return e(t,r)}finally{K=i}}function q(e){let t;try{t=new URL(e,location.href)}catch{return`[invalid url]`}if(t.username=``,t.password=``,me(t.searchParams)&&(t.search=t.searchParams.toString()),t.hash.includes(`=`)){let e=new URLSearchParams(t.hash.slice(1));me(e)&&(t.hash=e.toString())}return k(t.href,oe)}function me(e){let t=!1;for(let n of new Set(e.keys()))se.test(n)&&(e.set(n,`REDACTED`),t=!0);return t}function he(e){let t={},n=0;for(let[r,i]of e)if(!B.test(r)){if(n===50)break;t[r]=i.length>z?`${i.slice(0,z)}…`:i,n+=1}return t}function ge(e){if(!/^\s*[[{]/.test(e))return e;let t=!1,n;try{n=JSON.parse(e,(e,n)=>V.test(e)?(t=!0,`[redacted]`):n)}catch{return e}return t?JSON.stringify(n):e}function J(e){let t=0;for(let n=0;n<e.length;n+=1){let r=e.charCodeAt(n);r<128?t+=1:r<2048?t+=2:r>=55296&&r<=56319?(t+=4,n+=1):t+=3}return t}function _e(){let e=crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(24)),t=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``);return`00-${t.slice(0,32)}-${t.slice(32)}-01`}function ve(e){let t=e.get(`content-length`);if(t!==null&&/^\d+$/.test(t.trim()))return Number(t)}function ye(e){if(e==null)return{};if(e instanceof URLSearchParams)return{size:J(e.toString())};if(e instanceof Blob)return{size:e.size};if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))return{size:e.byteLength};if(e instanceof FormData||e instanceof ReadableStream||e instanceof Document)return{};let t=String(e);return{size:J(t),text:t}}function be(e){let t=[],n=[],r=new S(e=>a(e.getEntries()));r.observe({type:`resource`});let i=0;function a(e){for(let t of e)!(t instanceof PerformanceResourceTiming)||t.initiatorType!==`fetch`&&t.initiatorType!==`xmlhttprequest`||(n.push({name:q(t.name),timing:t}),n.length>500&&n.shift())}function o(n,r,a,o,s){let c=performance.now(),l=new URL(a,location.href),u=l.origin===location.origin,d={kind:`request`,seq:e.nextSeq(),at:(/* @__PURE__ */ new Date()).toISOString(),performanceMs:c,initiator:n,method:r.toUpperCase(),url:q(l.href),state:`pending`,stream:!1,serverFn:o.has(`x-tsr-serverfn`)||l.pathname.includes(`/_serverFn/`),requestHeaders:{},responseHeaders:{}};s&&u&&!o.has(`traceparent`)&&(d.traceparent=_e(),o.set(`traceparent`,d.traceparent)),d.requestHeaders=he(o);let f={entry:d,start:c,bodyAllowed:u&&e.bodies.some(e=>l.pathname.startsWith(e)),bodyBytes:0,timingUntil:void 0,timed:!1};return t.push(f),t.length>500&&(i-=t.shift()?.bodyBytes??0),e.added(d),e.changed(),f}function s(e,t,n){let{size:r,text:i}=ye(t);r!==void 0&&(e.entry.requestSize=r);let a=n??(i===void 0?``:`text/plain`);e.bodyAllowed&&i!==void 0&&H.test(a)&&c(e,`requestBody`,ge(i))}function c(e,n,r){let a=J(r);if(!(a>65536)){if(!t.includes(e)){e.entry[n]=r;return}for(let n of t){if(i+a<=8388608)break;n!==e&&n.bodyBytes!==0&&(delete n.entry.requestBody,delete n.entry.responseBody,i-=n.bodyBytes,n.bodyBytes=0)}i+a>8388608||(e.entry[n]=r,e.bodyBytes+=a,i+=a)}}function l(e,t,n,r){let{entry:i}=e;i.status=t,i.responseType=r,i.responseHeaders=he(n);let a=n.get(`content-type`);a!==null&&(i.contentType=a);let o=ve(n);o!==void 0&&(i.responseSize=o),a!==null&&U.test(a)&&(i.stream=!0,i.state=`open`,e.timingUntil=1/0)}function u(t,n,r){let i=performance.now();t.entry.state=n,t.entry.durationMs=Math.round(i-t.start),r!==void 0&&(t.entry.error=r),t.timingUntil=i+1e4,e.settled(t.entry),e.changed()}function d(e,t){u(e,t instanceof DOMException&&t.name===`AbortError`?`aborted`:`failed`,String(t))}function f(t,n){if(l(t,n.status,n.headers,n.type),t.entry.stream){e.changed();return}let r=t.entry.contentType??``,i=t.entry.responseSize,a=t.bodyAllowed&&n.body!==null&&H.test(r)&&(i===void 0?W.test(r):i<=65536)?n.clone().body:null;if(a===null){u(t,`done`);return}e.changed(),p(a).then(e=>{e!==void 0&&(i===void 0&&(t.entry.responseSize=e.bytes),c(t,`responseBody`,ge(e.text))),u(t,`done`)},e=>d(t,e))}async function p(t){let n=t.getReader(),r=new TextDecoder,i=``,a=0;for(;;){let t=await n.read();if(t.done)return{text:i+r.decode(),bytes:a};if(a+=t.value.byteLength,a>65536){n.cancel().catch(t=>e.fail(`response body cancel`,t));return}i+=r.decode(t.value,{stream:!0})}}let m=globalThis.fetch,h=!1,g=(t,n,r)=>{let i,a=n;try{let e=t instanceof Request,r=new Headers(n?.headers??(e?t.headers:void 0)),c=n?.method??(e?t.method:`GET`),l=fe(n,r);i=o(`fetch`,c,e?t.url:String(t),r,l!==void 0),i.entry.traceparent!==void 0&&(a=l),s(i,n?.body,r.get(`content-type`))}catch(i){return e.fail(`fetch capture`,i),pe(r,t,n)}let c;try{c=pe(r,t,a)}catch(e){throw d(i,e),e}return c.then(t=>{try{f(i,t)}catch(t){e.fail(`fetch response capture`,t)}return t},e=>{throw d(i,e),e})},_=function(e,t){let n=K||t!==void 0&&ce.has(t)?void 0:G;return n===void 0?m(e,t):n(e,t,m)};G=g,globalThis.fetch=_;let v=XMLHttpRequest.prototype,y=v.open,b=v.send,x=v.setRequestHeader,C=/* @__PURE__ */ new WeakMap,w=/* @__PURE__ */ new WeakMap,T=function(e,t,n,r,i){h||(w.get(this)?.(),C.set(this,{method:e,url:String(t),headers:new Headers})),y.call(this,e,t,n??!0,r??null,i??null)},E=function(t,n){if(x.call(this,t,n),!h)try{C.get(this)?.headers.append(t,n)}catch(t){e.fail(`XMLHttpRequest header capture`,t)}},D=function(t){let n=h?void 0:C.get(this),r;if(n!==void 0)try{r=O(this,n,t)}catch(t){e.fail(`XMLHttpRequest capture`,t)}try{b.call(this,t)}catch(e){throw r?.(e),e}};v.open=T,v.setRequestHeader=E,v.send=D;function O(t,n,r){let i=o(`xhr`,n.method,n.url,n.headers,!0);i.entry.traceparent!==void 0&&x.call(t,`traceparent`,i.entry.traceparent),s(i,r,n.headers.get(`content-type`));let a=new AbortController,c=()=>{t.readyState<XMLHttpRequest.HEADERS_RECEIVED||(t.removeEventListener(`readystatechange`,c),l(i,t.status,Se(t),t.responseType||`text`),e.changed())},u=()=>p(`abort`);function f(){a.abort(),w.get(t)===u&&w.delete(t)}function p(n){f();try{k(t,i,n)}catch(t){e.fail(`XMLHttpRequest response capture`,t)}}let m=e=>p(e.type);w.set(t,u),t.addEventListener(`readystatechange`,c,{signal:a.signal});for(let e of[`load`,`error`,`abort`,`timeout`])t.addEventListener(e,m,{signal:a.signal});return e=>{a.signal.aborted||(f(),d(i,e))}}function k(e,t,n){if(n===`abort`)return u(t,`aborted`);if(n!==`load`)return u(t,`failed`,n);t.entry.status===void 0&&l(t,e.status,Se(e),e.responseType||`text`);let r=t.entry.contentType??``;if(t.bodyAllowed&&H.test(r)&&(t.entry.responseSize??0)<=65536){let n=Ce(e);n!==void 0&&n.length<=65536&&(t.entry.responseSize??=J(n),c(t,`responseBody`,ge(n)))}u(t,`done`)}function A(){if(a(r.takeRecords()),!t.some(e=>e.timingUntil!==void 0))return!1;let i=/* @__PURE__ */ new Map;for(let e of t){if(e.timed)continue;let t=i.get(e.entry.url);t===void 0?i.set(e.entry.url,[e]):t.push(e)}let o=!1,s=0;for(;s<n.length;){let e=n[s];if(e===void 0)throw Error(`No resource timing at index ${s}`);let{name:t,timing:r}=e,a=(i.get(t)??[]).filter(e=>!e.timed&&e.start<=r.startTime+1),c;for(let e of a){let t=Math.abs(r.startTime-e.start);(c===void 0||t<Math.abs(r.startTime-c.start))&&(c=e)}if(c!==void 0&&a.some(e=>e!==c&&Math.abs(e.start-c.start)<=1)){n.splice(s,1);continue}if(c?.timingUntil===void 0){s+=1;continue}n.splice(s,1),xe(c,r),o=!0}let c=performance.now();for(let e of t)e.timingUntil===void 0||c<=e.timingUntil||(e.timingUntil=void 0,e.timed=!0);return o&&e.changed(),o}return{list:()=>t.map(e=>({...e.entry})),resolveTimings:A,untracked:(e,t)=>pe(m,e,t),restore(){h=!0,r.disconnect(),G===g&&(G=void 0),globalThis.fetch===_&&(globalThis.fetch=m),v.open===T&&(v.open=y),v.send===D&&(v.send=b),v.setRequestHeader===E&&(v.setRequestHeader=x)}}}function xe(e,t){let{entry:n}=e;e.timingUntil=void 0,e.timed=!0,t.responseEnd>0&&(n.durationMs=Math.round(t.duration)),t.transferSize>0&&(n.transferSize=t.transferSize),n.responseSize===void 0&&t.decodedBodySize>0&&(n.responseSize=t.decodedBodySize),t.serverTiming.length>0&&(n.serverTiming=t.serverTiming.map(({name:e,duration:t,description:n})=>({name:e,duration:t,description:n}))),n.state===`open`&&(n.state=`done`)}function Se(e){let t=new Headers;for(let n of e.getAllResponseHeaders().split(/\r?\n/)){let e=n.indexOf(`:`);e>0&&t.append(n.slice(0,e).trim(),n.slice(e+1).trim())}return t}function Ce(e){if(e.responseType===``||e.responseType===`text`)return e.responseText;if(e.responseType===`json`)return JSON.stringify(e.response)}const we=`pk-annotator`,Y=16e3,Te=[`log`,`info`,`warn`,`error`,`debug`],Ee=[`click`,`input`,`change`,`submit`,`keydown`];function De(e,t){let n=e.stack??``;return t===void 0?{stack:n}:{stack:n,topFrame:t}}const Oe={console:[],errors:[],groups:[],requests:[],actions:[]};function ke(){return{subscribe:()=>()=>{},snapshot:()=>Oe,clear:()=>{},markSent:()=>{},markResolved:()=>{},huntContext:e=>{throw Error(`No error group ${e}: capture is off under navigator.webdriver`)},applySymbolicated:()=>{},tap:()=>()=>{},fetch:globalThis.fetch.bind(globalThis),reactRootOptions:{},stop:()=>{}}}function Ae(e,t){e.push(t),e.length>500&&e.shift()}function je(e,t){return e instanceof Error?{type:e.name,message:k(e.message),stack:k(e.stack??``,Y)}:{type:t,message:ee([e]),stack:``}}function Me(e){let t=(e.stack??``).split(`
|
|
2
|
+
`)){let e=t.exec(a);if(e===null)continue;let o=(n.exec(a)??r.exec(a))?.[1];i.push({fn:o===void 0||o===``?void 0:o,path:c(e[1]??``),line:Number(e[2])})}return i}function c(e){return e.replace(/^[a-z][a-z\d+.-]*:\/\/[^/]*/i,``).replace(/[?#].*$/,``)}function l(e){return e.slice(0,500).replace(/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi,`<uuid>`).replace(/\b(?:0x[0-9a-f]+|(?=[0-9a-f]*\d)[0-9a-f]{8,})\b/gi,`<hex>`).replace(/\d+(?:\.\d+)?/g,`<n>`)}function u(e,t,n){let r=s(n).filter(e=>e.path!==``&&!i.test(e.path)),a=r[0];return{fingerprint:p([e,l(t),...r.slice(0,3).map(e=>`${e.path}:${e.fn??e.line}`)].join(`|`)),topFrame:a&&`${a.path}:${a.line}`}}function d(e){let t=!1;for(let n of s(e))if(a.test(n.path))t=!0;else if(n.path!==o&&!i.test(n.path))return!1;return t}function f(e,t){return p(`resource|${e}|${c(t)}`)}function p(e){let t=3735928559,n=1103547991;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r);t=Math.imul(t^i,2654435761),n=Math.imul(n^i,1597334677)}return t=Math.imul(t^t>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(t^t>>>13,3266489909),(4294967296*(2097151&n)+(t>>>0)).toString(16).padStart(14,`0`)}const m=globalThis.PerformanceObserver,h=/* @__PURE__ */ new Set,g=/* @__PURE__ */ new Set,_=/* @__PURE__ */ new WeakSet,v=/* @__PURE__ */ new WeakMap;let y=!1,b=[];function x(e){return{getEntries:()=>e,getEntriesByType:t=>e.filter(e=>e.entryType===t),getEntriesByName:(t,n)=>e.filter(e=>e.name===t&&(n===void 0||e.entryType===n))}}var S=class extends m{#e;constructor(e){let t=/* @__PURE__ */ new WeakSet;super((n,r)=>{if(!_.has(r)){e(n,r);return}let i=n.getEntries().filter(e=>!t.has(e));for(let e of i)t.add(e);i.length>0&&e(x(i),r)}),this.#e=t,b.length===0&&queueMicrotask(()=>{b=[]}),b.push(this)}observe(e={}){if((e.entryTypes??(e.type===void 0?[]:[e.type])).some(e=>e!==`resource`)&&_.add(this),v.set(this,[...v.get(this)??[],e]),y&&_.has(this)){g.add(this);return}h.add(this),super.observe(e)}takeRecords(){let e=super.takeRecords();if(!_.has(this))return e;let t=e.filter(e=>!this.#e.has(e));for(let e of t)this.#e.add(e);return t}disconnect(){h.delete(this),g.delete(this),super.disconnect()}};function C(){for(let e of b)_.add(e)}function w(){y=!0;for(let e of h)_.has(e)&&(m.prototype.disconnect.call(e),h.delete(e),g.add(e))}function T(){y=!1;for(let e of g){for(let t of v.get(e)??[])m.prototype.observe.call(e,t);h.add(e)}g.clear()}const E=2e3,D=Symbol(`no fit`);function O(e){return structuredClone(e)}function k(e,t=E){return O(e.length<=t?e:`${e.slice(0,t)}…[+${e.length-t} chars]`)}function A(e){let t=I(e,e.length,50,0,{ancestors:[],nodes:0,used:0,reserved:0},`[`,`]`,`args`);if(t===D)throw Error(`The console budget cannot hold an empty argument list`);return t}function j(e){return 8e3-e.used-e.reserved}function M(e,t,n){return t>j(e)?D:(e.used+=t,n)}function N(e,t){let n=e.charCodeAt(t);if(n===34||n===92)return[2,1];if(n<32)return[n===8||n===9||n===10||n===12||n===13?2:6,1];if(n<55296||n>57343)return[1,1];let r=e.charCodeAt(t+1);return n<=56319&&r>=56320&&r<=57343?[2,2]:[6,1]}function P(e,t){let n=j(e),r=Math.min(t.length,E),i=10+String(t.length).length,a=2,o=0,s=-1,c=0;for(;a+i<=n&&(s=o,c=a),!(o>=r||a>n);){let[e,n]=N(t,o);a+=e,o+=n}if(o>=t.length&&a<=n)return e.used+=a,O(t);if(s<0)return D;let l=`…[+${t.length-s} chars]`;return e.used+=c+l.length,O(`${t.slice(0,s)}${l}`)}function ee(e){return k(A(e).map(e=>Object.prototype.toString.call(e)===`[object String]`?String(e):JSON.stringify(e)).join(` `))}function te(e){let t=`${e.name}: ${e.message}`,n=e.stack??``;return k(n===``?t:n.startsWith(t)?n:`${t}\n${n}`)}function F(e,t,n){if(n.nodes>=1e3)return D;if(n.nodes+=1,e===null)return M(n,4,null);let r;try{r=Object.prototype.toString.call(e)}catch(e){return P(n,`[Unserializable: ${String(e)}]`)}switch(r){case`[object Undefined]`:return P(n,`[undefined]`);case`[object String]`:return P(n,String(e));case`[object Number]`:{let t=Number(e);return Number.isFinite(t)?M(n,String(t).length,t):P(n,`[${t}]`)}case`[object Boolean]`:{let t=String(e)===`true`;return M(n,t?4:5,t)}case`[object BigInt]`:return P(n,`${String(e)}n`);case`[object Symbol]`:return P(n,String(e))}return e instanceof Function?P(n,`[Function ${e.name||`(anonymous)`}]`):ne(e,t,n)}function ne(e,t,n){let r=ie(e);if(r!==void 0)return P(n,r);if(n.ancestors.includes(e))return P(n,`[Circular]`);if(t>=3)return P(n,L(e));let{used:i,reserved:a}=n;n.ancestors.push(e);try{if(Array.isArray(e))return I(e,e.length,50,t+1,n,`[`,`]`,`items`);if(e instanceof Map||e instanceof Set){let r=e instanceof Map?`[Map]`:`[Set]`,i=[],a=e.entries();for(let t=a.next();!t.done&&i.length<50;t=a.next())i.push(e instanceof Map?t.value:t.value[0]);let o=I(i,e.size,50,t+1,n,`{"${r}":[`,`]}`,`items`);return o===D?D:{[r]:o}}return re(e,t,n)}catch(e){return n.used=i,n.reserved=a,P(n,`[Unserializable: ${String(e)}]`)}finally{n.ancestors.pop()}}function I(e,t,n,r,i,a,o,s){if(a.length+o.length+40>j(i))return D;i.used+=a.length,i.reserved+=o.length+40;let c=[],l=Math.min(e.length,n);for(;c.length<l;){let t=c.length===0?0:1;if(t>j(i))break;i.used+=t;let n=F(e[c.length],r,i);if(n===D){i.used-=t;break}c.push(n)}if(i.reserved-=o.length+40,i.used+=o.length,t>c.length){let e=`[+${t-c.length} ${s}]`;i.used+=(c.length===0?0:1)+e.length+2,c.push(e)}return c}function re(e,t,n){if(42>j(n))return D;let r=Object(e),i=Object.keys(r);n.used+=1,n.reserved+=41;let a={},o=0;for(let e of i){if(o===50)break;let i=n.used,s=o===0?1:2;if(s>j(n))break;n.used+=s,n.reserved+=24;let c=P(n,e);n.reserved-=24;let l=D;if(c!==D){let i=Object.getOwnPropertyDescriptor(r,e);l=i===void 0||!(`value`in i)?P(n,`[Getter]`):F(i.value,t+1,n)}if(c===D||l===D){n.used=i;break}a[c]=l,o+=1}if(n.reserved-=41,n.used+=1,i.length>o){let e=`[+${i.length-o} keys]`;n.used+=(o===0?0:1)+4+e.length+2,a[`…`]=e}return a}function ie(e){if(e instanceof Error)return te(e);if(e instanceof Date)return Number.isNaN(e.getTime())?`[Invalid Date]`:e.toISOString();if(e instanceof RegExp)return String(e);if(globalThis.Node!==void 0&&e instanceof Node)return R(e);if(globalThis.window!==void 0&&e===globalThis.window)return`[Window]`;if(e instanceof Promise)return`[Promise]`;if(e instanceof WeakMap)return`[WeakMap]`;if(e instanceof WeakSet)return`[WeakSet]`;if(e instanceof ArrayBuffer)return`[ArrayBuffer(${e.byteLength})]`;if(ArrayBuffer.isView(e))return`[${e.constructor.name}(${e.byteLength} bytes)]`}function L(e){return Array.isArray(e)?`[Array(${e.length})]`:e instanceof Map?`[Map(${e.size})]`:e instanceof Set?`[Set(${e.size})]`:`[Object]`}function R(e){if(e instanceof Element){let t=e.id===``?``:`#${e.id}`,n=[...e.classList].slice(0,3).map(e=>`.${e}`).join(``);return`[Element ${e.localName}${t}${n}]`}return e instanceof Text?`[Text ${JSON.stringify(k(e.data,40))}]`:`[${e.nodeName}]`}const ae=8388608,oe=2e3,z=1e3,B=/auth|cookie|token|secret|session|api-?key|csrf|xsrf|passw/i,se=/token|code|state|passw|secret|key|session|auth|credential/i,V=/token|secret|passw(?:or)?d|session|cookie|authorization|api[-_ ]?key|credential/i,H=/^\s*(?:text\/(?!event-stream)|application\/(?:[\w.-]+\+)?json\b)/i,U=/^\s*text\/event-stream/i,W=/^\s*application\/(?!stream\+)(?:[\w.-]+\+)?json\s*(?:;|$)/i;let G;const ce=/* @__PURE__ */ new WeakSet;let K=!1;function le(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function ue(e){return e===void 0?{}:new Proxy(e,{get:de})}function de(e,t){return e[t]}function fe(e,t){if(e===void 0)return{headers:t};if(le(e))return{...e,headers:t};if(Object.getOwnPropertyDescriptor(e,`headers`)?.configurable!==!1)return new Proxy(e,{get:(e,n)=>n===`headers`?t:de(e,n)})}function pe(e,t,n){let r=ue(n);ce.add(r);let i=K;K=!0;try{return e(t,r)}finally{K=i}}function q(e){let t;try{t=new URL(e,location.href)}catch{return`[invalid url]`}if(t.username=``,t.password=``,me(t.searchParams)&&(t.search=t.searchParams.toString()),t.hash.includes(`=`)){let e=new URLSearchParams(t.hash.slice(1));me(e)&&(t.hash=e.toString())}return k(t.href,oe)}function me(e){let t=!1;for(let n of new Set(e.keys()))se.test(n)&&(e.set(n,`REDACTED`),t=!0);return t}function he(e){let t={},n=0;for(let[r,i]of e)if(!B.test(r)){if(n===50)break;t[r]=i.length>z?`${i.slice(0,z)}…`:i,n+=1}return t}function ge(e){if(!/^\s*[[{]/.test(e))return e;let t=!1,n;try{n=JSON.parse(e)}catch(t){if(t instanceof SyntaxError)return e;throw t}let r=[n];for(;r.length>0;){let e=r.pop();if(Array.isArray(e)){for(let t of e)r.push(t);continue}if(Object.prototype.toString.call(e)!==`[object Object]`)continue;let n=e;for(let[e,i]of Object.entries(n))V.test(e)?(n[e]=`[redacted]`,t=!0):i!==void 0&&r.push(i)}if(!t)return e;try{return JSON.stringify(n)}catch(e){if(e instanceof RangeError)return`[redacted: JSON nesting exceeds serialization limit]`;throw e}}function J(e){let t=0;for(let n=0;n<e.length;n+=1){let r=e.charCodeAt(n);r<128?t+=1:r<2048?t+=2:r>=55296&&r<=56319?(t+=4,n+=1):t+=3}return t}function _e(){let e=crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(24)),t=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``);return`00-${t.slice(0,32)}-${t.slice(32)}-01`}function ve(e){let t=e.get(`content-length`);if(t!==null&&/^\d+$/.test(t.trim()))return Number(t)}function ye(e){if(e==null)return{};if(e instanceof URLSearchParams)return{size:J(e.toString())};if(e instanceof Blob)return{size:e.size};if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))return{size:e.byteLength};if(e instanceof FormData||e instanceof ReadableStream||e instanceof Document)return{};let t=String(e);return{size:J(t),text:t}}function be(e){let t=[],n=[],r=new S(e=>a(e.getEntries()));r.observe({type:`resource`});let i=0;function a(e){for(let t of e)!(t instanceof PerformanceResourceTiming)||t.initiatorType!==`fetch`&&t.initiatorType!==`xmlhttprequest`||(n.push({name:q(t.name),timing:t}),n.length>500&&n.shift())}function o(n,r,a,o,s){let c=performance.now(),l=new URL(a,location.href),u=l.origin===location.origin,d={kind:`request`,seq:e.nextSeq(),at:(/* @__PURE__ */ new Date()).toISOString(),performanceMs:c,initiator:n,method:r.toUpperCase(),url:q(l.href),state:`pending`,stream:!1,serverFn:o.has(`x-tsr-serverfn`)||l.pathname.includes(`/_serverFn/`),requestHeaders:{},responseHeaders:{}};s&&u&&!o.has(`traceparent`)&&(d.traceparent=_e(),o.set(`traceparent`,d.traceparent)),d.requestHeaders=he(o);let f={entry:d,start:c,bodyAllowed:u&&e.bodies.some(e=>l.pathname.startsWith(e)),bodyBytes:0,timingUntil:void 0,timed:!1};return t.push(f),t.length>500&&(i-=t.shift()?.bodyBytes??0),e.added(d),e.changed(),f}function s(e,t,n){let{size:r,text:i}=ye(t);r!==void 0&&(e.entry.requestSize=r);let a=n??(i===void 0?``:`text/plain`);e.bodyAllowed&&i!==void 0&&H.test(a)&&c(e,`requestBody`,ge(i))}function c(e,n,r){let a=J(r);if(!(a>65536)){if(!t.includes(e)){e.entry[n]=r;return}for(let n of t){if(i+a<=8388608)break;n!==e&&n.bodyBytes!==0&&(delete n.entry.requestBody,delete n.entry.responseBody,i-=n.bodyBytes,n.bodyBytes=0)}i+a>8388608||(e.entry[n]=r,e.bodyBytes+=a,i+=a)}}function l(e,t,n,r){let{entry:i}=e;i.status=t,i.responseType=r,i.responseHeaders=he(n);let a=n.get(`content-type`);a!==null&&(i.contentType=a);let o=ve(n);o!==void 0&&(i.responseSize=o),a!==null&&U.test(a)&&(i.stream=!0,i.state=`open`,e.timingUntil=1/0)}function u(t,n,r){let i=performance.now();t.entry.state=n,t.entry.durationMs=Math.round(i-t.start),r!==void 0&&(t.entry.error=r),t.timingUntil=i+1e4,e.settled(t.entry),e.changed()}function d(e,t){u(e,t instanceof DOMException&&t.name===`AbortError`?`aborted`:`failed`,String(t))}function f(t,n){if(l(t,n.status,n.headers,n.type),t.entry.stream){e.changed();return}let r=t.entry.contentType??``,i=t.entry.responseSize,a=t.bodyAllowed&&n.body!==null&&H.test(r)&&(i===void 0?W.test(r):i<=65536)?n.clone().body:null;if(a===null){u(t,`done`);return}e.changed(),p(a).then(e=>{e!==void 0&&(i===void 0&&(t.entry.responseSize=e.bytes),c(t,`responseBody`,ge(e.text))),u(t,`done`)},e=>d(t,e))}async function p(t){let n=t.getReader(),r=new TextDecoder,i=``,a=0;for(;;){let t=await n.read();if(t.done)return{text:i+r.decode(),bytes:a};if(a+=t.value.byteLength,a>65536){n.cancel().catch(t=>e.fail(`response body cancel`,t));return}i+=r.decode(t.value,{stream:!0})}}let m=globalThis.fetch,h=!1,g=(t,n,r)=>{let i,a=n;try{let e=t instanceof Request,r=new Headers(n?.headers??(e?t.headers:void 0)),c=n?.method??(e?t.method:`GET`),l=fe(n,r);i=o(`fetch`,c,e?t.url:String(t),r,l!==void 0),i.entry.traceparent!==void 0&&(a=l),s(i,n?.body,r.get(`content-type`))}catch(i){return e.fail(`fetch capture`,i),pe(r,t,n)}let c;try{c=pe(r,t,a)}catch(e){throw d(i,e),e}return c.then(t=>{try{f(i,t)}catch(t){e.fail(`fetch response capture`,t)}return t},e=>{throw d(i,e),e})},_=function(e,t){let n=K||t!==void 0&&ce.has(t)?void 0:G;return n===void 0?m(e,t):n(e,t,m)};G=g,globalThis.fetch=_;let v=XMLHttpRequest.prototype,y=v.open,b=v.send,x=v.setRequestHeader,C=/* @__PURE__ */ new WeakMap,w=/* @__PURE__ */ new WeakMap,T=function(e,t,n,r,i){h||(w.get(this)?.(),C.set(this,{method:e,url:String(t),headers:new Headers})),y.call(this,e,t,n??!0,r??null,i??null)},E=function(t,n){if(x.call(this,t,n),!h)try{C.get(this)?.headers.append(t,n)}catch(t){e.fail(`XMLHttpRequest header capture`,t)}},D=function(t){let n=h?void 0:C.get(this),r;if(n!==void 0)try{r=O(this,n,t)}catch(t){e.fail(`XMLHttpRequest capture`,t)}try{b.call(this,t)}catch(e){throw r?.(e),e}};v.open=T,v.setRequestHeader=E,v.send=D;function O(t,n,r){let i=o(`xhr`,n.method,n.url,n.headers,!0);i.entry.traceparent!==void 0&&x.call(t,`traceparent`,i.entry.traceparent),s(i,r,n.headers.get(`content-type`));let a=new AbortController,c=()=>{t.readyState<XMLHttpRequest.HEADERS_RECEIVED||(t.removeEventListener(`readystatechange`,c),l(i,t.status,Se(t),t.responseType||`text`),e.changed())},u=()=>p(`abort`);function f(){a.abort(),w.get(t)===u&&w.delete(t)}function p(n){f();try{k(t,i,n)}catch(t){e.fail(`XMLHttpRequest response capture`,t)}}let m=e=>p(e.type);w.set(t,u),t.addEventListener(`readystatechange`,c,{signal:a.signal});for(let e of[`load`,`error`,`abort`,`timeout`])t.addEventListener(e,m,{signal:a.signal});return e=>{a.signal.aborted||(f(),d(i,e))}}function k(e,t,n){if(n===`abort`)return u(t,`aborted`);if(n!==`load`)return u(t,`failed`,n);t.entry.status===void 0&&l(t,e.status,Se(e),e.responseType||`text`);let r=t.entry.contentType??``;if(t.bodyAllowed&&H.test(r)&&(t.entry.responseSize??0)<=65536){let n=Ce(e);n!==void 0&&n.length<=65536&&(t.entry.responseSize??=J(n),c(t,`responseBody`,ge(n)))}u(t,`done`)}function A(){if(a(r.takeRecords()),!t.some(e=>e.timingUntil!==void 0))return!1;let i=/* @__PURE__ */ new Map;for(let e of t){if(e.timed)continue;let t=i.get(e.entry.url);t===void 0?i.set(e.entry.url,[e]):t.push(e)}let o=!1,s=0;for(;s<n.length;){let e=n[s];if(e===void 0)throw Error(`No resource timing at index ${s}`);let{name:t,timing:r}=e,a=(i.get(t)??[]).filter(e=>!e.timed&&e.start<=r.startTime+1),c;for(let e of a){let t=Math.abs(r.startTime-e.start);(c===void 0||t<Math.abs(r.startTime-c.start))&&(c=e)}if(c!==void 0&&a.some(e=>e!==c&&Math.abs(e.start-c.start)<=1)){n.splice(s,1);continue}if(c?.timingUntil===void 0){s+=1;continue}n.splice(s,1),xe(c,r),o=!0}let c=performance.now();for(let e of t)e.timingUntil===void 0||c<=e.timingUntil||(e.timingUntil=void 0,e.timed=!0);return o&&e.changed(),o}return{list:()=>t.map(e=>({...e.entry})),resolveTimings:A,untracked:(e,t)=>pe(m,e,t),restore(){h=!0,r.disconnect(),G===g&&(G=void 0),globalThis.fetch===_&&(globalThis.fetch=m),v.open===T&&(v.open=y),v.send===D&&(v.send=b),v.setRequestHeader===E&&(v.setRequestHeader=x)}}}function xe(e,t){let{entry:n}=e;e.timingUntil=void 0,e.timed=!0,t.responseEnd>0&&(n.durationMs=Math.round(t.duration)),t.transferSize>0&&(n.transferSize=t.transferSize),n.responseSize===void 0&&t.decodedBodySize>0&&(n.responseSize=t.decodedBodySize),t.serverTiming.length>0&&(n.serverTiming=t.serverTiming.map(({name:e,duration:t,description:n})=>({name:e,duration:t,description:n}))),n.state===`open`&&(n.state=`done`)}function Se(e){let t=new Headers;for(let n of e.getAllResponseHeaders().split(/\r?\n/)){let e=n.indexOf(`:`);e>0&&t.append(n.slice(0,e).trim(),n.slice(e+1).trim())}return t}function Ce(e){if(e.responseType===``||e.responseType===`text`)return e.responseText;if(e.responseType===`json`)return JSON.stringify(e.response)}const we=`pk-annotator`,Y=16e3,Te=[`log`,`info`,`warn`,`error`,`debug`],Ee=[`click`,`input`,`change`,`submit`,`keydown`];function De(e,t){let n=e.stack??``;return t===void 0?{stack:n}:{stack:n,topFrame:t}}const Oe={console:[],errors:[],groups:[],requests:[],actions:[]};function ke(){return{subscribe:()=>()=>{},snapshot:()=>Oe,clear:()=>{},markSent:()=>{},markResolved:()=>{},huntContext:e=>{throw Error(`No error group ${e}: capture is off under navigator.webdriver`)},applySymbolicated:()=>{},tap:()=>()=>{},fetch:globalThis.fetch.bind(globalThis),reactRootOptions:{},stop:()=>{}}}function Ae(e,t){e.push(t),e.length>500&&e.shift()}function je(e,t){return e instanceof Error?{type:e.name,message:k(e.message),stack:k(e.stack??``,Y)}:{type:t,message:ee([e]),stack:``}}function Me(e){let t=(e.stack??``).split(`
|
|
3
3
|
`),n=t.findIndex(e=>/:\d+:\d+\)?\s*$/.test(e));return k(t.slice(n+1).join(`
|
|
4
|
-
`),Y)}function Ne(e){let t=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=``;for(;n.length<80&&t.nextNode()!==null;)n+=` ${(t.currentNode.nodeValue??``).slice(0,80)}`;let r=n.replace(/\s+/g,` `).trim().slice(0,40);return r===``?void 0:O(r)}function Pe(e){return e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLFormElement||e instanceof HTMLElement&&e.isContentEditable}function Fe(e){let t=e.getAttribute(`aria-labelledby`),n=e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement?e.labels:null,r=(e.getAttribute(`aria-label`)??n?.[0]?.textContent??(t===null?null:document.getElementById(t)?.textContent)??e.getAttribute(`name`)??e.getAttribute(`placeholder`))?.replace(/\s+/g,` `).trim().slice(0,40);return r===void 0||r===``?void 0:O(r)}function Ie(e){let t={tag:e.localName};e.id!==``&&(t.id=e.id);let n=e.getAttribute(`data-testid`);n!==null&&(t.testId=n);let r=e.getAttribute(`data-pka-src`);r!==null&&(t.src=r);let i=e.getAttribute(`role`);i!==null&&(t.role=i);let a=Pe(e)?Fe(e):Ne(e);return a!==void 0&&(t[Pe(e)?`label`:`text`]=a),t}function Le(e,t){return e.tag===t.tag&&e.id===t.id&&e.testId===t.testId&&e.src===t.src&&e.label===t.label}function Re(e){return e instanceof HTMLMediaElement?e.currentSrc||e.src:e instanceof HTMLLinkElement?e.href:e.getAttribute(`src`)??``}function ze(e){if(navigator.webdriver)return ke();let t=0,n=0,r,i=!1,a=[],o=[],s=[],c=/* @__PURE__ */ new Map,l=/* @__PURE__ */ new WeakSet,p={console:0,network:0,errors:0},m=/* @__PURE__ */ new Set,h=/* @__PURE__ */ new Set,g=!1,_=/* @__PURE__ */ new Set,v,y=-1/0,b=[],x={log:console.log,info:console.info,warn:console.warn,error:console.error,debug:console.debug},S=x.error,C=()=>t+=1,w=()=>(/* @__PURE__ */ new Date()).toISOString();function T(e,t){S.call(console,`pk-annotator: ${e} failed`,t)}function E(e){for(let t of h)try{t(e)}catch(e){T(`recording tap`,e)}}function D(e,t){Ae(e,t),E(t)}function O(){n+=1,!(m.size===0||g)&&(g=!0,queueMicrotask(()=>{g=!1;for(let e of m)e()}))}function j(){if(v!==void 0||_.size===0||i)return;let e=Math.max(0,y+1e3-performance.now());v=setTimeout(M,e)}function M(){v=void 0,y=performance.now();let t=[];for(let e of _){if(t.length===50)break;_.delete(e);let n=c.get(e);if(n===void 0)continue;let{stack:r,topFrame:i,...a}=n.group;t.push({...a,...n.raw})}if(t.length>0)try{e.send(`pka:errors`,{groups:t})}catch(e){T(`sending error groups`,e)}j()}function N(e){_.add(e),j()}function P(){let e;for(let t of c.values())(e===void 0||t.group.lastSeq<e.group.lastSeq)&&(e=t);e!==void 0&&c.delete(e.group.fingerprint)}function F(e,t){D(o,e);let n=c.get(e.fingerprint);if(n===void 0){c.size>=200&&P();let n=De(e,t),r={fingerprint:e.fingerprint,message:e.message,type:e.type,count:1,firstSeen:e.at,lastSeen:e.at,lastSeq:e.seq,status:`open`,...n};c.set(e.fingerprint,{group:r,raw:n,opened:e,latest:{entry:e,topFrame:t}})}else{let{group:r}=n;r.count+=1,r.lastSeen=e.at,r.lastSeq=e.seq,n.latest={entry:e,topFrame:t},r.status===`cleared`&&e.seq>p.errors&&ne(n)}N(e.fingerprint),O()}function ne(e){let{group:t}=e,{entry:n,topFrame:r}=e.latest;t.status=`open`,t.message=n.message,e.raw=De(n,r),t.stack=e.raw.stack,r===void 0?delete t.topFrame:t.topFrame=r,e.opened=n}function I(e,t,n){if(d(t.stack))return;let{fingerprint:r,topFrame:i}=u(t.type,t.message,t.stack),a={kind:`error`,seq:C(),at:w(),source:e,fingerprint:r,type:t.type,message:t.message,...n};t.stack!==``&&(a.stack=t.stack),F(a,i)}function re(e,t,n){if(t instanceof Error){if(l.has(t))return;l.add(t)}I(e,je(t,n),{})}function ie(e,t,n){if(D(a,{kind:`console`,seq:C(),at:w(),level:e,args:A(t)}),O(),n===void 0)return;let r=Me(n);if(d(r))return;let i=t.find(e=>e instanceof Error);if(i!==void 0){if(l.has(i))return;l.add(i)}let o=ee(t.map(e=>e instanceof Error?e.message:e));I(`console`,{type:i?.name??`ConsoleError`,message:o,stack:i===void 0?r:te(i)},{})}let L=!1,R={...x};for(let e of Te){let t=x[e];R[e]=function(...n){if(t.apply(console,n),!(L||i)){L=!0;try{ie(e,n,e===`error`?/* @__PURE__ */ Error():void 0)}catch(e){T(`console capture`,e)}finally{L=!1}}},console[e]=R[e]}b.push(()=>{for(let e of Te)console[e]===R[e]&&(console[e]=x[e])});function ae(e){if(e instanceof ErrorEvent){let t=e.error;if(t instanceof Error)return re(`window`,t,`Error`);let n=e.filename===``?``:` at ${k(e.filename,oe)}:${e.lineno}:${e.colno}`;return I(`window`,{type:`Error`,message:k(e.message),stack:n},{})}let t=e.target;if(!(t instanceof Element)||t.closest(we)!==null)return;let n=t.localName,r=q(Re(t));F({kind:`error`,seq:C(),at:w(),source:`resource`,fingerprint:f(n,r),type:`ResourceError`,message:`<${n}> failed to load ${r}`,resource:{tag:n,url:r}},void 0)}function z(e){re(`rejection`,e.reason,`UnhandledRejection`)}addEventListener(`error`,ae,!0),addEventListener(`unhandledrejection`,z),b.push(()=>{removeEventListener(`error`,ae,!0),removeEventListener(`unhandledrejection`,z)});function B(t,n){return(r,a)=>{let o=i?null:e.captureOwnerStack?.()??null;if(S.call(console,`${n}:`,r,a.componentStack??``),i)return;if(r instanceof Error){if(l.has(r))return;l.add(r)}let s={};a.componentStack!==void 0&&(s.componentStack=k(a.componentStack,Y)),o!==null&&(s.ownerStack=k(o,Y)),I(t,je(r,`Error`),s)}}let se={onCaughtError:B(`react-caught`,`React caught an error`),onUncaughtError:B(`react-uncaught`,`Uncaught error in React`),onRecoverableError:B(`react-recoverable`,`React recovered from an error`)},V=be({bodies:e.bodies,nextSeq:C,changed:O,added:E,settled:E,fail:T});b.push(V.restore);function H(e){let t=e.target;if(!(t instanceof Element)||t.closest(we)!==null)return;let n;if(e.type===`keydown`){if(!(e instanceof KeyboardEvent)||e.key!==`Enter`&&e.key!==`Escape`)return;n=e.key}let r=e.type===`click`?t.closest(`a,button,input,select,textarea,summary,label,[role],[data-testid]`)??t:t,i=Ee.find(t=>t===e.type);if(i===void 0)return;let a=Ie(r),o=e.timeStamp,c=s.at(-1);if(i===`input`&&c?.kind===`action`&&c.type===`input`&&Le(c.target,a)){let e=c.performanceMs??o;c.durationMs=Math.max(c.durationMs??0,o-e);return}let l={kind:`action`,seq:C(),at:w(),performanceMs:o,type:i,target:a};i===`input`&&(l.durationMs=0),n!==void 0&&(l.key=n),D(s,l),O()}for(let e of Ee)document.addEventListener(e,H,{capture:!0,passive:!0});b.push(()=>{for(let e of Ee)document.removeEventListener(e,H,!0)});let U;function W(e,t){let n=q(t),r={kind:`navigation`,seq:C(),at:w(),type:e,to:n};U!==void 0&&(r.from=U),U=n,D(s,r),O()}if(W(`load`,location.href),`navigation`in globalThis){let e=e=>{W(e.navigationType,e.destination.url)};navigation.addEventListener(`navigate`,e),b.push(()=>navigation.removeEventListener(`navigate`,e))}else{let{pushState:e,replaceState:t}=history,n=function(...t){e.apply(history,t),i||W(`push`,location.href)},r=function(...e){t.apply(history,e),i||W(`replace`,location.href)};history.pushState=n,history.replaceState=r;let a=()=>W(`traverse`,location.href);addEventListener(`popstate`,a),b.push(()=>{history.pushState===n&&(history.pushState=e),history.replaceState===r&&(history.replaceState=t),removeEventListener(`popstate`,a)})}function G(e,t){e.group.status!==t&&(e.group.status=t,N(e.group.fingerprint))}return{subscribe(e){return m.add(e),()=>m.delete(e)},snapshot(){if(V.resolveTimings(),r?.version===n)return r.value;let e={console:a.filter(e=>e.seq>p.console),errors:o.filter(e=>e.seq>p.errors),groups:[...c.values()].map(e=>({...e.group})),requests:V.list().filter(e=>e.seq>p.network),actions:[...s]};return r={version:n,value:e},e},clear(e){if(p[e]=t,e===`errors`)for(let e of c.values())G(e,`cleared`);O()},markSent(e){for(let t of e){let e=c.get(t);e!==void 0&&e.group.status===`open`&&G(e,`sent`)}O()},markResolved(e,t){for(let n of e){let e=c.get(n);if(e!==void 0&&e.group.status===`sent`){if(Date.parse(e.group.lastSeen)<t){G(e,`cleared`);continue}ne(e),N(n)}}O()},huntContext(e,t=2e4){let n=c.get(e);if(n===void 0)throw Error(`No error group ${e}; it was never seen or has been evicted`);V.resolveTimings();let r=n.opened,i=Date.parse(r.at),a=e=>e.seq<=r.seq&&Date.parse(e.at)>=i-t;return{group:{...n.group},error:r,actions:s.filter(a),requests:V.list().filter(a)}},applySymbolicated(e){for(let t of e.groups){let e=c.get(t.fingerprint);e!==void 0&&(e.group.stack=t.stack,t.topFrame!==void 0&&(e.group.topFrame=t.topFrame))}O()},tap(e){return h.add(e),()=>h.delete(e)},fetch:V.untracked,reactRootOptions:se,stop(){if(!i){i=!0;for(let e of b.splice(0))e();v!==void 0&&clearTimeout(v),v=void 0,_.clear(),m.clear(),h.clear()}}}}let Be=!1;const Ve=/* @__PURE__ */ new Set;function He(e){if(Be!==e){Be=e;for(let e of Ve)e()}}function Ue(){return Be}function We(e){return Ve.add(e),()=>{Ve.delete(e)}}function Ge(){return globalThis.__PKA_ACTIVE__}function Ke(e){globalThis.__PKA_ACTIVE__=e}function qe(){let e=Ge();if(e?.capture===void 0)throw Error(`pk-annotator: getCapture() called before mount() or after Exit`);return e.capture}function Je(e,t,n,r){let i=e=>{let i=n.safeParse(e);i.success?r(i.data):console.error(`[pk-annotator] dropped an invalid ${t} message`,i.error)};return e.on(t,i),()=>e.off(t,i)}function Ye(e,t,n){e.send(t,n)}let Xe=!1;const X=/* @__PURE__ */ new Set;function Ze(e){if(e!==Xe){Xe=e;for(let e of X)e(`working`)}}function Qe(){return Xe}function $e(){for(let e of X)e(`reacted`)}function et(e){return X.add(e),()=>X.delete(e)}const tt=`capture/summary.md`;function nt(){let e=[],t=/* @__PURE__ */ new Set,n=()=>{for(let e of t)e()};return{get:()=>e,subscribe(e){return t.add(e),()=>t.delete(e)},add(t){return e=[...e.filter(e=>e.id!==t.id),t],n(),()=>{e=e.filter(e=>e!==t),n()}},remove(t){e=e.filter(e=>e.id!==t),n()},clear(){e=[],n()}}}const rt=nt(),it=nt();function at(e){return rt.add(e)}function ot(e){return it.add(e)}let st=0;const ct=/* @__PURE__ */ new Set;function lt(e){if(!Number.isInteger(e)||e<0)throw Error(`setBadge expects a non-negative integer, got ${e}`);st=e;for(let e of ct)e()}function ut(){return st}function dt(e){return ct.add(e),()=>ct.delete(e)}let ft=null;const pt=/* @__PURE__ */ new Set,mt={get:()=>ft,set(e){if(e!==ft){ft=e;for(let e of pt)e()}},subscribe(e){return pt.add(e),()=>pt.delete(e)}};function Z(e,t,...n){let r=document.createElementNS(`http://www.w3.org/2000/svg`,e);for(let[e,n]of Object.entries(t))r.setAttribute(e,String(n));return r.append(...n),r}let ht=null;const gt=/* @__PURE__ */ new Set;function _t(e){ht=e;for(let e of gt)e()}function vt(){return ht}function yt(e){return gt.add(e),()=>{gt.delete(e)}}const bt=`pk-annotator`,xt=`Alt+Shift+A`,St=`pka:corner`,Ct=`pka:sent`,wt=`pka:agent`,Tt=`pka:update`;function Q(){let e=localStorage.getItem(St);return e===`top-left`||e===`top-right`||e===`bottom-left`||e===`bottom-right`?e:`bottom-right`}function Et(e,t){return`${t<window.innerHeight/2?`top`:`bottom`}-${e<window.innerWidth/2?`left`:`right`}`}const Dt=/* @__PURE__ */ new Map([[`ArrowLeft`,e=>e.startsWith(`top`)?`top-left`:`bottom-left`],[`ArrowRight`,e=>e.startsWith(`top`)?`top-right`:`bottom-right`],[`ArrowUp`,e=>e.endsWith(`left`)?`top-left`:`top-right`],[`ArrowDown`,e=>e.endsWith(`left`)?`bottom-left`:`bottom-right`]]),Ot=()=>Z(`svg`,{class:`pka-glyph`,viewBox:`0 0 24 24`,"aria-hidden":`true`},Z(`g`,{"data-part":`orbit`},Z(`path`,{d:`M16.2 6.7A9.5 9.5 0 0 0 6.7 16.2`,fill:`none`,stroke:`currentColor`,"stroke-width":1.25,opacity:.3}),Z(`circle`,{cx:16.2,cy:6.7,r:2.1,opacity:.45}),Z(`circle`,{cx:9.48,cy:9.48,r:2.1,opacity:.75}),Z(`circle`,{cx:6.7,cy:16.2,r:2.1})),Z(`circle`,{"data-part":`core`,cx:16.2,cy:16.2,r:3.25}),Z(`path`,{"data-part":`close`,d:`M7.5 7.5l9 9M16.5 7.5l-9 9`})),kt=()=>Z(`svg`,{class:`pka-pending`,viewBox:`0 0 44 44`,"aria-hidden":`true`},Z(`circle`,{cx:22,cy:22,r:18.75,pathLength:12})),$=`cubic-bezier(0.22, 1, 0.36, 1)`,At=`
|
|
4
|
+
`),Y)}function Ne(e){let t=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=``;for(;n.length<80&&t.nextNode()!==null;)n+=` ${(t.currentNode.nodeValue??``).slice(0,80)}`;let r=n.replace(/\s+/g,` `).trim().slice(0,40);return r===``?void 0:O(r)}function Pe(e){return e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLFormElement||e instanceof HTMLElement&&e.isContentEditable}function Fe(e){let t=e.getAttribute(`aria-labelledby`),n=e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement?e.labels:null,r=(e.getAttribute(`aria-label`)??n?.[0]?.textContent??(t===null?null:document.getElementById(t)?.textContent)??e.getAttribute(`name`)??e.getAttribute(`placeholder`))?.replace(/\s+/g,` `).trim().slice(0,40);return r===void 0||r===``?void 0:O(r)}function Ie(e){let t={tag:e.localName};e.id!==``&&(t.id=e.id);let n=e.getAttribute(`data-testid`);n!==null&&(t.testId=n);let r=e.getAttribute(`data-pka-src`);r!==null&&(t.src=r);let i=e.getAttribute(`role`);i!==null&&(t.role=i);let a=Pe(e)?Fe(e):Ne(e);return a!==void 0&&(t[Pe(e)?`label`:`text`]=a),t}function Le(e,t){return e.tag===t.tag&&e.id===t.id&&e.testId===t.testId&&e.src===t.src&&e.label===t.label}function Re(e){return e instanceof HTMLMediaElement?e.currentSrc||e.src:e instanceof HTMLLinkElement?e.href:e.getAttribute(`src`)??``}function ze(e){if(navigator.webdriver)return ke();let t=0,n=0,r,i=!1,a=[],o=[],s=[],c=/* @__PURE__ */ new Map,l=/* @__PURE__ */ new WeakSet,p={console:0,network:0,errors:0},m=/* @__PURE__ */ new Set,h=/* @__PURE__ */ new Set,g=!1,_=/* @__PURE__ */ new Set,v,y=-1/0,b=[],x={log:console.log,info:console.info,warn:console.warn,error:console.error,debug:console.debug},S=x.error,C=()=>t+=1,w=()=>(/* @__PURE__ */ new Date()).toISOString();function T(e,t){S.call(console,`pk-annotator: ${e} failed`,t)}function E(e){for(let t of h)try{t(e)}catch(e){T(`recording tap`,e)}}function D(e,t){Ae(e,t),E(t)}function O(){n+=1,!(m.size===0||g)&&(g=!0,queueMicrotask(()=>{g=!1;for(let e of m)e()}))}function j(){if(v!==void 0||_.size===0||i)return;let e=Math.max(0,y+1e3-performance.now());v=setTimeout(M,e)}function M(){v=void 0,y=performance.now();let t=[];for(let e of _){if(t.length===50)break;_.delete(e);let n=c.get(e);if(n===void 0)continue;let{stack:r,topFrame:i,...a}=n.group;t.push({...a,...n.raw})}if(t.length>0)try{e.send(`pka:errors`,{groups:t})}catch(e){T(`sending error groups`,e)}j()}function N(e){_.add(e),j()}function P(){let e;for(let t of c.values())(e===void 0||t.group.lastSeq<e.group.lastSeq)&&(e=t);e!==void 0&&(c.delete(e.group.fingerprint),_.delete(e.group.fingerprint))}function F(e,t){D(o,e);let n=c.get(e.fingerprint);if(n===void 0){c.size>=200&&P();let n=De(e,t),r={fingerprint:e.fingerprint,message:e.message,type:e.type,count:1,firstSeen:e.at,lastSeen:e.at,lastSeq:e.seq,status:`open`,...n};c.set(e.fingerprint,{group:r,raw:n,opened:e,latest:{entry:e,topFrame:t}})}else{let{group:r}=n;r.count+=1,r.lastSeen=e.at,r.lastSeq=e.seq,n.latest={entry:e,topFrame:t},r.status===`cleared`&&e.seq>p.errors&&ne(n)}N(e.fingerprint),O()}function ne(e){let{group:t}=e,{entry:n,topFrame:r}=e.latest;t.status=`open`,t.message=n.message,e.raw=De(n,r),t.stack=e.raw.stack,r===void 0?delete t.topFrame:t.topFrame=r,e.opened=n}function I(e,t,n){if(d(t.stack))return;let{fingerprint:r,topFrame:i}=u(t.type,t.message,t.stack),a={kind:`error`,seq:C(),at:w(),source:e,fingerprint:r,type:t.type,message:t.message,...n};t.stack!==``&&(a.stack=t.stack),F(a,i)}function re(e,t,n){if(t instanceof Error){if(l.has(t))return;l.add(t)}I(e,je(t,n),{})}function ie(e,t,n){if(D(a,{kind:`console`,seq:C(),at:w(),level:e,args:A(t)}),O(),n===void 0)return;let r=Me(n);if(d(r))return;let i=t.find(e=>e instanceof Error);if(i!==void 0){if(l.has(i))return;l.add(i)}let o=ee(t.map(e=>e instanceof Error?e.message:e));I(`console`,{type:i?.name??`ConsoleError`,message:o,stack:i===void 0?r:te(i)},{})}let L=!1,R={...x};for(let e of Te){let t=x[e];R[e]=function(...n){if(t.apply(console,n),!(L||i)){L=!0;try{ie(e,n,e===`error`?/* @__PURE__ */ Error():void 0)}catch(e){T(`console capture`,e)}finally{L=!1}}},console[e]=R[e]}b.push(()=>{for(let e of Te)console[e]===R[e]&&(console[e]=x[e])});function ae(e){if(e instanceof ErrorEvent){let t=e.error;if(t instanceof Error)return re(`window`,t,`Error`);let n=e.filename===``?``:` at ${k(e.filename,oe)}:${e.lineno}:${e.colno}`;return I(`window`,{type:`Error`,message:k(e.message),stack:n},{})}let t=e.target;if(!(t instanceof Element)||t.closest(we)!==null)return;let n=t.localName,r=q(Re(t));F({kind:`error`,seq:C(),at:w(),source:`resource`,fingerprint:f(n,r),type:`ResourceError`,message:`<${n}> failed to load ${r}`,resource:{tag:n,url:r}},void 0)}function z(e){re(`rejection`,e.reason,`UnhandledRejection`)}addEventListener(`error`,ae,!0),addEventListener(`unhandledrejection`,z),b.push(()=>{removeEventListener(`error`,ae,!0),removeEventListener(`unhandledrejection`,z)});function B(t,n){return(r,a)=>{let o=i?null:e.captureOwnerStack?.()??null;if(S.call(console,`${n}:`,r,a.componentStack??``),i)return;if(r instanceof Error){if(l.has(r))return;l.add(r)}let s={};a.componentStack!==void 0&&(s.componentStack=k(a.componentStack,Y)),o!==null&&(s.ownerStack=k(o,Y)),I(t,je(r,`Error`),s)}}let se={onCaughtError:B(`react-caught`,`React caught an error`),onUncaughtError:B(`react-uncaught`,`Uncaught error in React`),onRecoverableError:B(`react-recoverable`,`React recovered from an error`)},V=be({bodies:e.bodies,nextSeq:C,changed:O,added:E,settled:E,fail:T});b.push(V.restore);function H(e){let t=e.target;if(!(t instanceof Element)||t.closest(we)!==null)return;let n;if(e.type===`keydown`){if(!(e instanceof KeyboardEvent)||e.key!==`Enter`&&e.key!==`Escape`)return;n=e.key}let r=e.type===`click`?t.closest(`a,button,input,select,textarea,summary,label,[role],[data-testid]`)??t:t,i=Ee.find(t=>t===e.type);if(i===void 0)return;let a=Ie(r),o=e.timeStamp,c=s.at(-1);if(i===`input`&&c?.kind===`action`&&c.type===`input`&&Le(c.target,a)){let e=c.performanceMs??o;c.durationMs=Math.max(c.durationMs??0,o-e);return}let l={kind:`action`,seq:C(),at:w(),performanceMs:o,type:i,target:a};i===`input`&&(l.durationMs=0),n!==void 0&&(l.key=n),D(s,l),O()}for(let e of Ee)document.addEventListener(e,H,{capture:!0,passive:!0});b.push(()=>{for(let e of Ee)document.removeEventListener(e,H,!0)});let U;function W(e,t){let n=q(t),r={kind:`navigation`,seq:C(),at:w(),type:e,to:n};U!==void 0&&(r.from=U),U=n,D(s,r),O()}if(W(`load`,location.href),`navigation`in globalThis){let e=e=>{W(e.navigationType,e.destination.url)};navigation.addEventListener(`navigate`,e),b.push(()=>navigation.removeEventListener(`navigate`,e))}else{let{pushState:e,replaceState:t}=history,n=function(...t){e.apply(history,t),i||W(`push`,location.href)},r=function(...e){t.apply(history,e),i||W(`replace`,location.href)};history.pushState=n,history.replaceState=r;let a=()=>W(`traverse`,location.href);addEventListener(`popstate`,a),b.push(()=>{history.pushState===n&&(history.pushState=e),history.replaceState===r&&(history.replaceState=t),removeEventListener(`popstate`,a)})}function G(e,t){e.group.status!==t&&(e.group.status=t,N(e.group.fingerprint))}return{subscribe(e){return m.add(e),()=>m.delete(e)},snapshot(){if(V.resolveTimings(),r?.version===n)return r.value;let e={console:a.filter(e=>e.seq>p.console),errors:o.filter(e=>e.seq>p.errors),groups:[...c.values()].map(e=>({...e.group})),requests:V.list().filter(e=>e.seq>p.network),actions:[...s]};return r={version:n,value:e},e},clear(e){if(p[e]=t,e===`errors`)for(let e of c.values())G(e,`cleared`);O()},markSent(e){for(let t of e){let e=c.get(t);e!==void 0&&e.group.status===`open`&&G(e,`sent`)}O()},markResolved(e,t){for(let n of e){let e=c.get(n);if(e!==void 0&&e.group.status===`sent`){if(Date.parse(e.group.lastSeen)<t){G(e,`cleared`);continue}ne(e),N(n)}}O()},huntContext(e,t=2e4){let n=c.get(e);if(n===void 0)throw Error(`No error group ${e}; it was never seen or has been evicted`);V.resolveTimings();let r=n.opened,i=Date.parse(r.at),a=e=>e.seq<=r.seq&&Date.parse(e.at)>=i-t;return{group:{...n.group},error:r,actions:s.filter(a),requests:V.list().filter(a)}},applySymbolicated(e){for(let t of e.groups){let e=c.get(t.fingerprint);e!==void 0&&(e.group.stack=t.stack,t.topFrame!==void 0&&(e.group.topFrame=t.topFrame))}O()},tap(e){return h.add(e),()=>h.delete(e)},fetch:V.untracked,reactRootOptions:se,stop(){if(!i){i=!0;for(let e of b.splice(0))e();v!==void 0&&clearTimeout(v),v=void 0,_.clear(),m.clear(),h.clear()}}}}let Be=!1;const Ve=/* @__PURE__ */ new Set;function He(e){if(Be!==e){Be=e;for(let e of Ve)e()}}function Ue(){return Be}function We(e){return Ve.add(e),()=>{Ve.delete(e)}}function Ge(){return globalThis.__PKA_ACTIVE__}function Ke(e){globalThis.__PKA_ACTIVE__=e}function qe(){let e=Ge();if(e?.capture===void 0)throw Error(`pk-annotator: getCapture() called before mount() or after Exit`);return e.capture}function Je(e,t,n,r){let i=e=>{let i=n.safeParse(e);i.success?r(i.data):console.error(`[pk-annotator] dropped an invalid ${t} message`,i.error)};return e.on(t,i),()=>e.off(t,i)}function Ye(e,t,n){e.send(t,n)}let Xe=!1;const X=/* @__PURE__ */ new Set;function Ze(e){if(e!==Xe){Xe=e;for(let e of X)e(`working`)}}function Qe(){return Xe}function $e(){for(let e of X)e(`reacted`)}function et(e){return X.add(e),()=>X.delete(e)}const tt=`capture/summary.md`;function nt(){let e=[],t=/* @__PURE__ */ new Set,n=()=>{for(let e of t)e()};return{get:()=>e,subscribe(e){return t.add(e),()=>t.delete(e)},add(t){return e=[...e.filter(e=>e.id!==t.id),t],n(),()=>{e=e.filter(e=>e!==t),n()}},remove(t){e=e.filter(e=>e.id!==t),n()},clear(){e=[],n()}}}const rt=nt(),it=nt();function at(e){return rt.add(e)}function ot(e){return it.add(e)}let st=0;const ct=/* @__PURE__ */ new Set;function lt(e){if(!Number.isInteger(e)||e<0)throw Error(`setBadge expects a non-negative integer, got ${e}`);st=e;for(let e of ct)e()}function ut(){return st}function dt(e){return ct.add(e),()=>ct.delete(e)}let ft=null;const pt=/* @__PURE__ */ new Set,mt={get:()=>ft,set(e){if(e!==ft){ft=e;for(let e of pt)e()}},subscribe(e){return pt.add(e),()=>pt.delete(e)}};function Z(e,t,...n){let r=document.createElementNS(`http://www.w3.org/2000/svg`,e);for(let[e,n]of Object.entries(t))r.setAttribute(e,String(n));return r.append(...n),r}let ht=null;const gt=/* @__PURE__ */ new Set;function _t(e){ht=e;for(let e of gt)e()}function vt(){return ht}function yt(e){return gt.add(e),()=>{gt.delete(e)}}const bt=`pk-annotator`,xt=`Alt+Shift+A`,St=`pka:corner`,Ct=`pka:sent`,wt=`pka:agent`,Tt=`pka:update`;function Q(){let e=localStorage.getItem(St);return e===`top-left`||e===`top-right`||e===`bottom-left`||e===`bottom-right`?e:`bottom-right`}function Et(e,t){return`${t<window.innerHeight/2?`top`:`bottom`}-${e<window.innerWidth/2?`left`:`right`}`}const Dt=/* @__PURE__ */ new Map([[`ArrowLeft`,e=>e.startsWith(`top`)?`top-left`:`bottom-left`],[`ArrowRight`,e=>e.startsWith(`top`)?`top-right`:`bottom-right`],[`ArrowUp`,e=>e.endsWith(`left`)?`top-left`:`top-right`],[`ArrowDown`,e=>e.endsWith(`left`)?`bottom-left`:`bottom-right`]]),Ot=()=>Z(`svg`,{class:`pka-glyph`,viewBox:`0 0 24 24`,"aria-hidden":`true`},Z(`g`,{"data-part":`orbit`},Z(`path`,{d:`M16.2 6.7A9.5 9.5 0 0 0 6.7 16.2`,fill:`none`,stroke:`currentColor`,"stroke-width":1.25,opacity:.3}),Z(`circle`,{cx:16.2,cy:6.7,r:2.1,opacity:.45}),Z(`circle`,{cx:9.48,cy:9.48,r:2.1,opacity:.75}),Z(`circle`,{cx:6.7,cy:16.2,r:2.1})),Z(`circle`,{"data-part":`core`,cx:16.2,cy:16.2,r:3.25}),Z(`path`,{"data-part":`close`,d:`M7.5 7.5l9 9M16.5 7.5l-9 9`})),kt=()=>Z(`svg`,{class:`pka-pending`,viewBox:`0 0 44 44`,"aria-hidden":`true`},Z(`circle`,{cx:22,cy:22,r:18.75,pathLength:12})),$=`cubic-bezier(0.22, 1, 0.36, 1)`,At=`
|
|
5
5
|
:host {
|
|
6
6
|
all: initial !important;
|
|
7
7
|
position: fixed !important;
|
|
@@ -217,4 +217,4 @@ import{captureOwnerStack as e}from"react";const t=/((?:[a-z][a-z\d+.-]*:\/\/|\/)
|
|
|
217
217
|
0 12px 28px -10px rgb(0 0 0 / 0.4);
|
|
218
218
|
}
|
|
219
219
|
}
|
|
220
|
-
`;function jt(e,t){let n=/* @__PURE__ */ new Set,r=matchMedia(`(prefers-color-scheme: dark)`),i=t,a=()=>i===`system`?r.matches?`dark`:`light`:i,o=a();e.setAttribute(`data-theme`,o);let s=()=>{let t=a();if(t!==o){o=t,e.setAttribute(`data-theme`,t);for(let e of n)e()}};return r.addEventListener(`change`,s),{get:()=>o,subscribe(e){return n.add(e),()=>n.delete(e)},set(e){if(e!==`light`&&e!==`dark`&&e!==`system`)throw Error(`setTheme expects "light", "dark", or "system", got ${String(e)}`);i=e,s()},stop:()=>r.removeEventListener(`change`,s)}}function Mt(e,t,n){if(document.querySelector(`pk-annotator`)!==null)throw Error(`<${bt}> is already mounted; call unmount() before mounting again`);let r=document.createElement(bt),i=r.attachShadow({mode:`open`}),a=new CSSStyleSheet;a.replaceSync(At),i.adoptedStyleSheets=[a];let o=jt(r,t),s=document.createElement(`button`);s.type=`button`,s.className=`pka-launcher`,s.dataset.corner=Q(),s.title=`Annotator (${xt} picks) · drag to move`,s.setAttribute(`aria-haspopup`,`menu`),s.setAttribute(`aria-expanded`,`false`);let c=document.createElement(`span`);c.className=`pka-count`,c.setAttribute(`aria-hidden`,`true`);let l=document.createElement(`span`);l.className=`pka-badge`,l.setAttribute(`aria-hidden`,`true`);let u=document.createElement(`span`);u.className=`pka-update`,u.setAttribute(`aria-hidden`,`true`),s.append(Ot(),kt(),c,l,u),i.append(s),document.documentElement.append(r);let d=0,f=null,p=()=>{let e=ut(),t=[`Annotator`];f!==null&&t.push(`${f} connected`),d>0&&t.push(`${d} ${d===1?`mark`:`marks`} waiting to send`),e>0&&t.push(`${e} open errors`);let n=vt();n!==null&&t.push(`update ${n.latest} available`),s.setAttribute(`aria-label`,t.join(`, `))},m=()=>{let e=ut();l.hidden=e===0,l.textContent=e>99?`99+`:String(e),p()};m();let h=dt(m),g=e=>{if(!Number.isInteger(e)||e<0)throw Error(`setMarkCount expects a non-negative integer, got ${e}`);d>0&&e>d&&(delete s.dataset.stack,s.offsetWidth,s.dataset.stack=``),d=e,e===0?delete s.dataset.count:s.dataset.count=``,e>0&&(c.textContent=e>99?`99+`:String(e)),p()},_=()=>{Qe()?s.dataset.working=``:delete s.dataset.working};_();let v=et(e=>{if(e===`working`){_();return}delete s.dataset.react,s.offsetWidth,s.dataset.react=``});s.addEventListener(`animationend`,e=>{e.target===s&&e.animationName===`pka-hub-react`&&delete s.dataset.react,e.target===c&&e.animationName===`pka-hub-stack`&&delete s.dataset.stack});let y,b=e=>{y??=import(`./pka-overlay-agent-theme-
|
|
220
|
+
`;function jt(e,t){let n=/* @__PURE__ */ new Set,r=matchMedia(`(prefers-color-scheme: dark)`),i=t,a=()=>i===`system`?r.matches?`dark`:`light`:i,o=a();e.setAttribute(`data-theme`,o);let s=()=>{let t=a();if(t!==o){o=t,e.setAttribute(`data-theme`,t);for(let e of n)e()}};return r.addEventListener(`change`,s),{get:()=>o,subscribe(e){return n.add(e),()=>n.delete(e)},set(e){if(e!==`light`&&e!==`dark`&&e!==`system`)throw Error(`setTheme expects "light", "dark", or "system", got ${String(e)}`);i=e,s()},stop:()=>r.removeEventListener(`change`,s)}}function Mt(e,t,n){if(document.querySelector(`pk-annotator`)!==null)throw Error(`<${bt}> is already mounted; call unmount() before mounting again`);let r=document.createElement(bt),i=r.attachShadow({mode:`open`}),a=new CSSStyleSheet;a.replaceSync(At),i.adoptedStyleSheets=[a];let o=jt(r,t),s=document.createElement(`button`);s.type=`button`,s.className=`pka-launcher`,s.dataset.corner=Q(),s.title=`Annotator (${xt} picks) · drag to move`,s.setAttribute(`aria-haspopup`,`menu`),s.setAttribute(`aria-expanded`,`false`);let c=document.createElement(`span`);c.className=`pka-count`,c.setAttribute(`aria-hidden`,`true`);let l=document.createElement(`span`);l.className=`pka-badge`,l.setAttribute(`aria-hidden`,`true`);let u=document.createElement(`span`);u.className=`pka-update`,u.setAttribute(`aria-hidden`,`true`),s.append(Ot(),kt(),c,l,u),i.append(s),document.documentElement.append(r);let d=0,f=null,p=()=>{let e=ut(),t=[`Annotator`];f!==null&&t.push(`${f} connected`),d>0&&t.push(`${d} ${d===1?`mark`:`marks`} waiting to send`),e>0&&t.push(`${e} open errors`);let n=vt();n!==null&&t.push(`update ${n.latest} available`),s.setAttribute(`aria-label`,t.join(`, `))},m=()=>{let e=ut();l.hidden=e===0,l.textContent=e>99?`99+`:String(e),p()};m();let h=dt(m),g=e=>{if(!Number.isInteger(e)||e<0)throw Error(`setMarkCount expects a non-negative integer, got ${e}`);d>0&&e>d&&(delete s.dataset.stack,s.offsetWidth,s.dataset.stack=``),d=e,e===0?delete s.dataset.count:s.dataset.count=``,e>0&&(c.textContent=e>99?`99+`:String(e)),p()},_=()=>{Qe()?s.dataset.working=``:delete s.dataset.working};_();let v=et(e=>{if(e===`working`){_();return}delete s.dataset.react,s.offsetWidth,s.dataset.react=``});s.addEventListener(`animationend`,e=>{e.target===s&&e.animationName===`pka-hub-react`&&delete s.dataset.react,e.target===c&&e.animationName===`pka-hub-stack`&&delete s.dataset.stack});let y,b=e=>{y??=import(`./pka-overlay-agent-theme-BiWi6_IJ.mjs`),y.then(({AgentMessage:t,showAgent:n})=>{let a=t.safeParse(e);if(!a.success){console.error(`[pk-annotator] dropped an invalid ${wt} message`,a.error);return}f=n({host:r,shadow:i,hub:s},a.data),p()})};e.on(wt,b);let x=()=>{u.hidden=vt()===null,p()};x();let S=yt(x),C=e=>{import(`./pka-overlay-channel-BZI-qbPH.mjs`).then(e=>e.m).then(({UpdateMessage:t})=>{let n=t.safeParse(e);if(!n.success){console.error(`[pk-annotator] dropped an invalid ${Tt} message`,n.error);return}vt()?.status!==`installing`&&_t({...n.data,status:`available`})})};e.on(Tt,C),Ye(e,`pka:presence`,{});let w,T=()=>w??=import(`./pka-overlay-thread-store-C55iLxND.mjs`).then(({connectThread:t})=>t(e),e=>{throw w=void 0,e}),E,D=async t=>{E??=Promise.all([import(`./pka-overlay-app-DjGKtS7t.mjs`).then(e=>e.t),T()]).then(([{open:t},a])=>t({host:r,shadow:i,hot:e,theme:o,hub:s,thread:a,exit:n,setMarkCount:g}),e=>{throw E=void 0,e});try{t(await E)}catch(e){console.error(`[pk-annotator] the overlay UI failed to open`,e)}},O=e=>{let t=s.getBoundingClientRect();if(s.style.left=``,s.style.top=``,delete s.dataset.dragging,localStorage.setItem(St,e),s.dataset.corner=e,E?.then(t=>t.setCorner(e)),matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;let n=s.getBoundingClientRect();s.animate([{translate:`${t.left-n.left}px ${t.top-n.top}px`},{translate:`0 0`}],{duration:260,easing:$})},k,A=!1;s.addEventListener(`pointerdown`,e=>{e.button===0&&(A=!1,k={id:e.pointerId,x:e.clientX,y:e.clientY,dragging:!1},s.setPointerCapture(e.pointerId))}),s.addEventListener(`pointermove`,e=>{if(k?.id===e.pointerId){if(!k.dragging){if(Math.hypot(e.clientX-k.x,e.clientY-k.y)<6)return;k.dragging=!0,s.dataset.dragging=``,E?.then(e=>e.closeMenu())}s.style.left=`${e.clientX-22}px`,s.style.top=`${e.clientY-22}px`}}),s.addEventListener(`pointerup`,e=>{k?.id===e.pointerId&&(A=k.dragging,k=void 0,A&&O(Et(e.clientX,e.clientY)))}),s.addEventListener(`pointercancel`,()=>{k?.dragging&&O(Q()),k=void 0}),s.addEventListener(`click`,e=>{if(A){A=!1;return}D(t=>t.toggleMenu(e.detail===0))}),s.addEventListener(`keydown`,e=>{let t=Dt.get(e.key)?.(Q());t!==void 0&&(e.preventDefault(),t!==Q()&&O(t))});let j=e=>{e.code===`KeyA`&&e.altKey&&e.shiftKey&&(e.ctrlKey||e.metaKey||(e.preventDefault(),e.stopPropagation(),D(e=>e.togglePick())))};window.addEventListener(`keydown`,j,{capture:!0});let M=sessionStorage.getItem(Ct);return M!==null&&M!==`[]`&&T().catch(e=>{console.error(`[pk-annotator] following this tab's sent annotations failed`,e)}),{setTheme:o.set,unmount(){window.removeEventListener(`keydown`,j,{capture:!0}),e.off(wt,b),e.off(Tt,C),S(),_t(null),h(),v(),o.stop(),mt.set(null),E?.then(e=>e.unmount()),w?.then(e=>e.disconnect()),r.remove()}}}const Nt=`pka:errors-ack`,Pt=`pka:agent`,Ft=`pka:exited`;function It(e){return e.code===`KeyA`&&e.altKey&&e.shiftKey&&!e.ctrlKey&&!e.metaKey}function Lt(t){if(navigator.webdriver)return{reactRootOptions:{},setTheme(){},unmount(){}};let n=Ge();if(n!==void 0)return n.mounted;let r=t.theme??`system`,i,a=()=>{let n=ze({send:(e,n)=>Ye(t.hot,e,n),bodies:globalThis.__PKA_BODIES__??[],captureOwnerStack:e}),a=e=>{import(`./pka-overlay-channel-BZI-qbPH.mjs`).then(e=>e.m).then(({ErrorsAckMessage:t})=>{let r=t.safeParse(e);r.success?n.applySymbolicated(r.data):console.error(`[pk-annotator] dropped an invalid ${Nt} message`,r.error)})};t.hot.on(Nt,a);let o=e=>{import(`./pka-overlay-channel-BZI-qbPH.mjs`).then(e=>e.m).then(({AgentMessage:t})=>{let n=t.safeParse(e);n.success?He(n.data.agent!==null):console.error(`[pk-annotator] dropped an invalid ${Pt} message`,n.error)})};t.hot.on(Pt,o);let s=0,u=n.subscribe(()=>{let e=n.snapshot().groups.filter(e=>e.status===`open`).length;e!==s&&(s=e,lt(e))}),d=Mt(t.hot,r,c);i={capture:n,launcher:d,stop(){u(),t.hot.off(Nt,a),t.hot.off(Pt,o),He(!1),n.stop(),d.unmount(),lt(0)}},Ke({mounted:l,capture:n})},o=e=>{It(e)&&(e.preventDefault(),e.stopPropagation(),window.removeEventListener(`keydown`,o,{capture:!0}),sessionStorage.removeItem(Ft),a())},s=()=>{window.addEventListener(`keydown`,o,{capture:!0}),Ke({mounted:l,capture:void 0})};function c(){i?.stop(),i=void 0,sessionStorage.setItem(Ft,`1`),s()}let l={reactRootOptions:{onCaughtError(e,t){let n=i?.capture.reactRootOptions.onCaughtError;n===void 0?console.error(`React caught an error:`,e,t.componentStack??``):n(e,t)},onUncaughtError(e,t){let n=i?.capture.reactRootOptions.onUncaughtError;n===void 0?console.error(`Uncaught error in React:`,e,t.componentStack??``):n(e,t)},onRecoverableError(e,t){let n=i?.capture.reactRootOptions.onRecoverableError;n===void 0?console.error(`React recovered from an error:`,e,t.componentStack??``):n(e,t)}},setTheme(e){if(e!==`light`&&e!==`dark`&&e!==`system`)throw Error(`setTheme expects "light", "dark", or "system", got ${String(e)}`);r=e,i?.launcher.setTheme(e)},unmount(){i?.stop(),i=void 0,window.removeEventListener(`keydown`,o,{capture:!0}),Ke(void 0)}};return sessionStorage.getItem(Ft)===`1`?s():a(),l}export{q as C,C as D,S as E,w as O,ae as S,ee as T,Je as _,vt as a,Ue as b,Z as c,mt as d,it as f,Ze as g,$e as h,Q as i,T as k,tt as l,at as m,Lt as mount,Ct as n,_t as o,rt as p,xt as r,yt as s,bt as t,ot as u,Ye as v,J as w,We as x,qe as y};
|
|
@@ -23279,7 +23279,7 @@ function toError(value) {
|
|
|
23279
23279
|
}
|
|
23280
23280
|
//#endregion
|
|
23281
23281
|
//#region package.json
|
|
23282
|
-
var version = "0.
|
|
23282
|
+
var version = "0.8.0";
|
|
23283
23283
|
//#endregion
|
|
23284
23284
|
//#region src/shared/schema.ts
|
|
23285
23285
|
const ID_PATTERN = /^[a-z0-9-]{8,40}$/;
|
|
@@ -23305,6 +23305,11 @@ const Selector = strictObject({
|
|
|
23305
23305
|
testId: string().optional(),
|
|
23306
23306
|
css: string()
|
|
23307
23307
|
});
|
|
23308
|
+
const Quote = strictObject({
|
|
23309
|
+
exact: string().min(1),
|
|
23310
|
+
prefix: string(),
|
|
23311
|
+
suffix: string()
|
|
23312
|
+
});
|
|
23308
23313
|
const ElementRef = strictObject({
|
|
23309
23314
|
n: number$1().int().positive(),
|
|
23310
23315
|
url: string().optional(),
|
|
@@ -23316,7 +23321,8 @@ const ElementRef = strictObject({
|
|
|
23316
23321
|
box: Box,
|
|
23317
23322
|
crop: RelativePath.optional(),
|
|
23318
23323
|
text: string().optional(),
|
|
23319
|
-
nearbyText: string().optional()
|
|
23324
|
+
nearbyText: string().optional(),
|
|
23325
|
+
quote: Quote.optional()
|
|
23320
23326
|
});
|
|
23321
23327
|
const AttachmentKind = _enum([
|
|
23322
23328
|
"recording",
|
|
@@ -23894,6 +23900,11 @@ const ElementView = strictObject({
|
|
|
23894
23900
|
}),
|
|
23895
23901
|
crop: string().optional(),
|
|
23896
23902
|
text: string().optional(),
|
|
23903
|
+
quote: strictObject({
|
|
23904
|
+
exact: string(),
|
|
23905
|
+
prefix: string(),
|
|
23906
|
+
suffix: string()
|
|
23907
|
+
}).optional().describe("Text the human selected inside the element, with the text just before and after it"),
|
|
23897
23908
|
nearbyText: string().optional(),
|
|
23898
23909
|
html: string().optional(),
|
|
23899
23910
|
box: Box.optional()
|
|
@@ -23970,6 +23981,11 @@ function elementView(element, detail) {
|
|
|
23970
23981
|
crop: element.crop,
|
|
23971
23982
|
text: optionalPageText(element.text, full ? CAP.text : CAP.short)
|
|
23972
23983
|
};
|
|
23984
|
+
if (element.quote !== void 0) view.quote = {
|
|
23985
|
+
exact: pageText(element.quote.exact, full ? CAP.html : CAP.text),
|
|
23986
|
+
prefix: pageText(element.quote.prefix, CAP.short),
|
|
23987
|
+
suffix: pageText(element.quote.suffix, CAP.short)
|
|
23988
|
+
};
|
|
23973
23989
|
if (full) {
|
|
23974
23990
|
view.nearbyText = optionalPageText(element.nearbyText, CAP.text);
|
|
23975
23991
|
view.html = pageText(element.html, CAP.html);
|
|
@@ -24463,7 +24479,7 @@ async function errors(store, input) {
|
|
|
24463
24479
|
const CLAUDE_CODE = "claude-code";
|
|
24464
24480
|
const CHANNEL_INSTRUCTIONS = [
|
|
24465
24481
|
"When this session loaded pka as a channel, each annotation the human sends from the pk-annotator browser overlay arrives as <channel source=\"pka\" event=\"annotation\" annotation_id=\"…\" route=\"…\" status=\"…\">.",
|
|
24466
|
-
"Its body holds the human's prompt, then the page data in a fenced untrusted block: URL, route, picked elements with source file:line:col, usedAt, owners and
|
|
24482
|
+
"Its body holds the human's prompt, then the page data in a fenced untrusted block: URL, route, picked elements with source file:line:col, usedAt, owners, selector, and any text the human selected in them as quote, and attachment paths with summaries.",
|
|
24467
24483
|
"For each annotation event:",
|
|
24468
24484
|
"1. Call set_status with its annotation_id and status acknowledged before anything else. If that fails, another session owns the annotation: stop and leave it alone.",
|
|
24469
24485
|
"2. Do what the prompt asks. Read attachment files with your file tools; get_annotation with detail full returns HTML, boxes, nearby text, and longer summaries.",
|
|
@@ -24505,6 +24521,7 @@ function channelContent(view) {
|
|
|
24505
24521
|
`css=${selector.css}`
|
|
24506
24522
|
].filter((part) => part !== void 0).join(" ")],
|
|
24507
24523
|
["text", element.text === void 0 ? void 0 : JSON.stringify(element.text)],
|
|
24524
|
+
["quote", element.quote === void 0 ? void 0 : `${JSON.stringify(element.quote.exact)} after ${JSON.stringify(element.quote.prefix)} before ${JSON.stringify(element.quote.suffix)}`],
|
|
24508
24525
|
["picked on", element.url],
|
|
24509
24526
|
["crop", element.crop]
|
|
24510
24527
|
];
|