@fungi.computer/grove 0.4.0 → 0.5.1
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/dist/assets/Effect-TOXKEWei.js +76 -0
- package/dist/assets/{anthropic-messages-BC32dQ9I.js → anthropic-messages-BTv37DKo.js} +3 -3
- package/dist/assets/{azure-openai-responses-CxbiKRMB.js → azure-openai-responses-CLI5CTea.js} +1 -1
- package/dist/assets/{base-face-BEjKYyJe.js → base-face-CD4oLBv-.js} +1 -1
- package/dist/assets/burger-BrMTWnA6.js +1 -0
- package/dist/assets/cat-Ce0yvAsw.js +1 -0
- package/dist/assets/compat-BQZx9Jx3.js +2 -0
- package/dist/assets/{document-CI1e8oXD.js → document-aOA3zT2S.js} +1 -1
- package/dist/assets/extension-hook-UDdYbDsl.js +819 -0
- package/dist/assets/extensions-DF9U5f_Z.js +1 -0
- package/dist/assets/{google-generative-ai-0DBJk_8o.js → google-generative-ai-_8qHW2IX.js} +1 -1
- package/dist/assets/{google-shared-BL1Pe-wK.js → google-shared-BjptlrJn.js} +1 -1
- package/dist/assets/{google-vertex-CPgYcjfH.js → google-vertex-C6JPlmUK.js} +1 -1
- package/dist/assets/index-DM8ziIjn.js +174 -0
- package/dist/assets/index-DRqG5MfY.css +1 -0
- package/dist/assets/{mistral-conversations-C3vHwl30.js → mistral-conversations-C_XYmgUS.js} +1 -1
- package/dist/assets/{mushroom-D2oxknl9.js → mushroom-BTxbn3Sf.js} +1 -1
- package/dist/assets/{node.browser-C4Y5T0IC.js → node.browser-Bc9i4viB.js} +1 -1
- package/dist/assets/{openai-codex-responses-BJGSPctB.js → openai-codex-responses-C0Thlbgz.js} +1 -1
- package/dist/assets/{openai-completions-2akGjxPU.js → openai-completions-CJJn6-l3.js} +1 -1
- package/dist/assets/{openai-responses-D6H3TRtV.js → openai-responses-BuHYr0Ip.js} +1 -1
- package/dist/assets/{openai-responses-shared-DZesysou.js → openai-responses-shared-px8hA25N.js} +1 -1
- package/dist/assets/parakeet-conversation-gakMmXhW.js +4 -0
- package/dist/assets/renderer-69rvqVnj.js +1 -0
- package/dist/assets/runtime-core-CHfIZEOV.js +40 -0
- package/dist/assets/{transform-messages-CgFTI6NF.js → transform-messages-zEOZxc_F.js} +1 -1
- package/dist/index.html +6 -6
- package/package.json +20 -10
- package/dist/assets/Effect-BY0T-p9d.js +0 -76
- package/dist/assets/Effect-Bibd7o64.js +0 -76
- package/dist/assets/anthropic-messages-BrTyy87S.js +0 -19
- package/dist/assets/azure-openai-responses-Cxq6500u.js +0 -1
- package/dist/assets/base-face-Dc6wvM5e.js +0 -1
- package/dist/assets/burger-DCM1Ryjl.js +0 -1
- package/dist/assets/burger-Zw2lKYST.js +0 -1
- package/dist/assets/cat-D2ceQOG1.js +0 -1
- package/dist/assets/cat-Dg3HQp8e.js +0 -1
- package/dist/assets/compat-CNGE3olg.js +0 -2
- package/dist/assets/compat-DgqxVOn_.js +0 -2
- package/dist/assets/document-DjWTbvB5.js +0 -1
- package/dist/assets/extension-hook-C8RQgls9.js +0 -741
- package/dist/assets/extension-hook-CBuX_bUG.js +0 -721
- package/dist/assets/extensions-DEfvRHbZ.js +0 -1
- package/dist/assets/extensions-DYjwCmO5.js +0 -1
- package/dist/assets/google-generative-ai-C-fVQ8eG.js +0 -1
- package/dist/assets/google-shared-CRsSlHta.js +0 -8
- package/dist/assets/google-vertex-DFCQBu0N.js +0 -1
- package/dist/assets/index-26gTYfVj.js +0 -171
- package/dist/assets/index-DIRtUgKp.css +0 -1
- package/dist/assets/index-HgPChePI.js +0 -171
- package/dist/assets/index-u-fIUxtz.css +0 -1
- package/dist/assets/mistral-conversations-Dx6vubnB.js +0 -4
- package/dist/assets/mushroom-DcQ2lek6.js +0 -1
- package/dist/assets/node.browser-DF9afU1k.js +0 -1
- package/dist/assets/openai-codex-responses-CK2Z6kMm.js +0 -9
- package/dist/assets/openai-completions-C35dP-q-.js +0 -5
- package/dist/assets/openai-responses-DPFd_3HO.js +0 -1
- package/dist/assets/openai-responses-shared-DaKV5GAS.js +0 -10
- package/dist/assets/parakeet-conversation-DKtvvfd-.js +0 -4
- package/dist/assets/parakeet-conversation-Di3EPCdu.js +0 -4
- package/dist/assets/renderer-BHU7Ec4o.js +0 -1
- package/dist/assets/renderer-cVoUiOqk.js +0 -1
- package/dist/assets/runtime-core-COw0PWwZ.js +0 -1
- package/dist/assets/runtime-core-DOL1texL.js +0 -1
- package/dist/assets/transform-messages-utWG7TCG.js +0 -1
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{a as e,h as t,m as n,u as r}from"./preload-helper-DY31Aviq.js";import{a as i}from"./diagnostics-CxvqSC4Q.js";import{n as a,t as o}from"./models-BM_0GHMS.js";import{t as s}from"./headers-FK4rgixo.js";import{n as c,r as l}from"./json-parse-M7s0500m.js";import{f as u,h as d,i as f,m as p,n as m}from"./transform-messages-CgFTI6NF.js";import{t as h}from"./sanitize-unicode-DmIE6hZJ.js";import{t as g}from"./hash-yQufAZII.js";import{t as _}from"./abort-signals-joV34wzR.js";var v=9,y=4e3,b=(e,t,n)=>{let a=new i,o=r(t,e.compat?.supportsMidConvoSystemMessages);return(async()=>{let t=S(e);try{let r=n?.apiKey;if(!r)throw Error(`No API key for provider: ${e.provider}`);let i=C(),s=m(o.messages,e,e=>i(e)),c=H(e,o,s,n),l=await n?.onPayload?.(c,e);l!==void 0&&(c=l);let u=await O(e,c,r,n);if(a.push({type:`start`,partial:t}),await G(e,t,a,u,n?.onProviderStreamEvent),n?.signal?.aborted)throw Error(`Request was aborted`);if(t.stopReason===`pending`)throw Error(`Mistral stream ended without a finish reason`);if(t.stopReason===`aborted`||t.stopReason===`error`)throw Error(t.errorMessage||`An unknown error occurred`);a.push({type:`done`,reason:t.stopReason,message:t}),a.end()}catch(e){for(let e of t.content)delete e.partialArgs;t.stopReason=n?.signal?.aborted?`aborted`:`error`,t.errorMessage=T(e),a.push({type:`error`,reason:t.stopReason,error:t}),a.end()}})(),a},x=(e,t,n)=>{let r=n?.apiKey;if(!r)throw Error(`No API key for provider: ${e.provider}`);let i={...f(e,t,n,r),toolChoice:n?.toolChoice},o=n?.reasoning?a(e,n.reasoning):void 0,s=o===`off`?void 0:o,c=e.reasoning?e.thinkingLevelMap:void 0,l=c?s?c[s]??`high`:c.off??void 0:void 0;return b(e,t,{...i,promptMode:e.reasoning&&!c&&s?`reasoning`:void 0,reasoningEffort:l})};function S(e){return{role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()}}function C(){let e=new Map,t=new Map;return n=>{let r=e.get(n);if(r)return r;let i=0;for(;;){let r=w(n,i),a=t.get(r);if(!a||a===n)return e.set(n,r),t.set(r,n),r;i++}}}function w(e,t){let n=e.replace(/[^a-zA-Z0-9]/g,``);if(t===0&&n.length===v)return n;let r=n||e,i=t===0?r:`${r}:${t}`;return g(i).replace(/[^a-zA-Z0-9]/g,``).slice(0,v)}function T(e){if(e instanceof Error){let t=e,n=typeof t.statusCode==`number`?t.statusCode:void 0,r=typeof t.body==`string`?t.body.trim():void 0;return n!==void 0&&r?`Mistral API error (${n}): ${E(r,y)}`:n===void 0?e.message:`Mistral API error (${n}): ${e.message}`}return D(e)}function E(e,t){return e.length<=t?e:`${e.slice(0,t)}... [truncated ${e.length-t} chars]`}function D(e){try{let t=JSON.stringify(e);return t===void 0?String(e):t}catch{return String(e)}}async function O(e,t,n,r){let i=new URL(e.baseUrl);i.pathname=`${i.pathname.replace(/\/+$/u,``)}/`;let a=new URL(`v1/chat/completions`,i),o=A(e,n,r),c=r?.timeoutMs??6e4,l=AbortSignal.timeout(c),u=_([r?.signal,l]),d;try{d=await(r?.fetch??globalThis.fetch)(a,{method:`POST`,headers:o,body:JSON.stringify(N(t)),signal:u.signal})}catch(e){throw l.aborted&&!r?.signal?.aborted?Error(`Mistral response headers timed out after ${c}ms`):e}finally{u.cleanup()}if(await r?.onResponse?.({status:d.status,headers:s(d.headers)},e),!d.ok){let e=await d.text();throw new k(d.status,e,d.statusText)}if(!d.body)throw Error(`Mistral response has no body`);return z(d.body,r?.signal)}var k=class extends Error{statusCode;body;constructor(e,t,n){super(n||`Request failed with status ${e}`),this.name=`MistralHttpError`,this.statusCode=e,this.body=t}};function A(e,t,n){let r=new Headers({"User-Agent":d(),accept:`text/event-stream`,authorization:`Bearer ${t}`,"content-type":`application/json`});j(r,e.headers),j(r,n?.headers);let i=M(e.headers,`x-affinity`)||M(n?.headers,`x-affinity`);return U(n)&&!i&&r.set(`x-affinity`,n.sessionId),r}function j(e,t){if(t)for(let[n,r]of Object.entries(t))r===null?e.delete(n):e.set(n,r)}function M(e,t){return!!e&&Object.keys(e).some(e=>e.toLowerCase()===t)}function N(e){let t={...e};for(let[e,n]of[[`topP`,`top_p`],[`maxTokens`,`max_tokens`],[`randomSeed`,`random_seed`],[`responseFormat`,`response_format`],[`toolChoice`,`tool_choice`],[`presencePenalty`,`presence_penalty`],[`frequencyPenalty`,`frequency_penalty`],[`parallelToolCalls`,`parallel_tool_calls`],[`reasoningEffort`,`reasoning_effort`],[`promptMode`,`prompt_mode`],[`promptCacheKey`,`prompt_cache_key`],[`safePrompt`,`safe_prompt`]])I(t,e,n);t.messages=e.messages.map(e=>P(e));let n=t.response_format;if(L(n)){let e={...n};I(e,`jsonSchema`,`json_schema`);let r=e.json_schema;if(L(r)){let t={...r};I(t,`schemaDefinition`,`schema`),e.json_schema=t}t.response_format=e}return t}function P(e){let t={...e};return I(t,`toolCalls`,`tool_calls`),I(t,`toolCallId`,`tool_call_id`),Array.isArray(e.content)&&(t.content=e.content.map(e=>F(e))),t}function F(e){let t={...e};for(let[e,n]of[[`imageUrl`,`image_url`],[`documentUrl`,`document_url`],[`documentName`,`document_name`],[`fileId`,`file_id`],[`referenceIds`,`reference_ids`],[`inputAudio`,`input_audio`]])I(t,e,n);return t}function I(e,t,n){t in e&&(e[n]=e[t],delete e[t])}function L(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var R=Symbol(`mistral-stream-done`);async function*z(e,t){let n=e.getReader(),r=new TextDecoder,i=``,a=()=>{n.cancel().catch(()=>{})};t?.addEventListener(`abort`,a,{once:!0});try{for(;;){if(t?.aborted)throw t.reason;let{done:e,value:a}=await n.read();if(t?.aborted)throw t.reason;i+=e?r.decode():r.decode(a,{stream:!0});let o=B(i);for(;o;){let e=V(i.slice(0,o.index));if(i=i.slice(o.index+o.length),e===R)return;e&&(yield e),o=B(i)}if(e)break}if(i.trim()){let e=V(i);e!==R&&e&&(yield e)}}finally{t?.removeEventListener(`abort`,a);try{await n.cancel()}catch{}try{n.releaseLock()}catch{}}}function B(e){let t=/\r\n\r\n|\r\n\r|\r\n\n|\r\r\n|\n\r\n|\r\r|\n\r|\n\n/u.exec(e);return t?.index===void 0?void 0:{index:t.index,length:t[0].length}}function V(e){let t=e.split(/\r\n|\r|\n/u).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trimStart()).join(`
|
|
2
|
-
`).trim();if(!t)return;if(t===`[DONE]`)return R;let n=JSON.parse(t);if(!L(n)||!Array.isArray(n.choices))throw Error(`Invalid Mistral streaming event`);return{data:n}}function H(t,n,r,i){let a={model:t.id,stream:!0,messages:J(r,t.input.includes(`image`))},o=e(n.messages);return o.length>0&&(a.tools=K(o)),i?.temperature!==void 0&&(a.temperature=i.temperature),i?.maxTokens!==void 0&&(a.maxTokens=i.maxTokens),i?.toolChoice&&(a.toolChoice=X(i.toolChoice)),i?.promptMode&&(a.promptMode=i.promptMode),i?.reasoningEffort&&(a.reasoningEffort=i.reasoningEffort),U(i)&&(a.promptCacheKey=i.sessionId),a}function U(e){return e?.cacheRetention!==`none`&&!!e?.sessionId}function W(e,t){let n=e,r=n.promptTokensDetails?.cachedTokens??n.prompt_tokens_details?.cached_tokens??n.promptTokenDetails?.cachedTokens??n.prompt_token_details?.cached_tokens??n.numCachedTokens??n.num_cached_tokens??0;return Math.min(t,Math.max(0,typeof r==`number`&&Number.isFinite(r)?r:0))}async function G(e,t,n,r,i){let a=null,s=t.content,u=()=>s.length-1,d=new Map,f=e=>{if(e){if(e.type===`text`){n.push({type:`text_end`,contentIndex:u(),content:e.text,partial:t});return}e.type===`thinking`&&n.push({type:`thinking_end`,contentIndex:u(),content:e.thinking,partial:t})}};for await(let s of r){let r=s.data;if(await i?.(r,e),t.responseId||=r.id,r.usage){let n=r.usage.prompt_tokens||0,i=W(r.usage,n);t.usage.input=Math.max(0,n-i),t.usage.output=r.usage.completion_tokens||0,t.usage.cacheRead=i,t.usage.cacheWrite=0,t.usage.totalTokens=r.usage.total_tokens||t.usage.input+t.usage.output+t.usage.cacheRead+t.usage.cacheWrite,o(e,t.usage)}let l=r.choices[0];if(!l)continue;if(l.finish_reason){t.rawStopReason=l.finish_reason;let e=Z(l.finish_reason);t.stopReason=e.stopReason,e.errorMessage&&(t.errorMessage=e.errorMessage)}let p=l.delta;if(p.content!==null&&p.content!==void 0){let e=typeof p.content==`string`?[p.content]:p.content;for(let r of e){if(typeof r==`string`){let e=h(r);if(!e)continue;(!a||a.type!==`text`)&&(f(a),a={type:`text`,text:``},t.content.push(a),n.push({type:`text_start`,contentIndex:u(),partial:t})),a.text+=e,n.push({type:`text_delta`,contentIndex:u(),delta:e,partial:t});continue}if(r.type===`thinking`){let e=(r.thinking??[]).map(e=>e.text??``).filter(e=>e.length>0).join(``),i=h(e);if(!i)continue;(!a||a.type!==`thinking`)&&(f(a),a={type:`thinking`,thinking:``},t.content.push(a),n.push({type:`thinking_start`,contentIndex:u(),partial:t})),a.thinking+=i,n.push({type:`thinking_delta`,contentIndex:u(),delta:i,partial:t});continue}if(r.type===`text`){let e=h(r.text??``);if(!e)continue;(!a||a.type!==`text`)&&(f(a),a={type:`text`,text:``},t.content.push(a),n.push({type:`text_start`,contentIndex:u(),partial:t})),a.text+=e,n.push({type:`text_delta`,contentIndex:u(),delta:e,partial:t})}}}let m=p.tool_calls||[];for(let e of m){a&&=(f(a),null);let r=e.id&&e.id!==`null`?e.id:w(`toolcall:${e.index??0}`,0),i=e.index??r,o=d.get(i),s;if(o!==void 0){let e=t.content[o];e?.type===`toolCall`&&(s=e)}s||(s={type:`toolCall`,id:r,name:e.function.name,arguments:{},partialArgs:``},t.content.push(s),d.set(i,t.content.length-1),n.push({type:`toolcall_start`,contentIndex:t.content.length-1,partial:t}));let l=typeof e.function.arguments==`string`?e.function.arguments:JSON.stringify(e.function.arguments||{});s.partialArgs=(s.partialArgs||``)+l,s.arguments=c(s.partialArgs),n.push({type:`toolcall_delta`,contentIndex:d.get(i),delta:l,partial:t})}}f(a);for(let e of d.values()){let r=t.content[e];if(r.type!==`toolCall`)continue;let i=r;Object.assign(i,l(i.partialArgs)),delete i.partialArgs,n.push({type:`toolcall_end`,contentIndex:e,toolCall:i,partial:t})}}function K(e){return e.map(e=>{let t=p(e,!0);return{type:`function`,function:{name:e.name,description:e.description,parameters:q(u(e,t)),strict:t??!1}}})}function q(e){if(Array.isArray(e))return e.map(e=>q(e));if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))t[n]=q(r);return t}return e}function J(e,r){let i=[];for(let[a,o]of e.entries()){if(o.role===`system`){let e=a===0?n(o):t(o);e.length>0&&i.push({role:`system`,content:h(e)});continue}if(o.role===`user`){if(typeof o.content==`string`){i.push({role:`user`,content:h(o.content)});continue}let e=o.content.some(e=>e.type===`image`),t=o.content.filter(e=>e.type===`text`||r).map(e=>e.type===`text`?{type:`text`,text:h(e.text)}:{type:`image_url`,imageUrl:`data:${e.mimeType};base64,${e.data}`});if(t.length>0){i.push({role:`user`,content:t});continue}e&&!r&&i.push({role:`user`,content:`(image omitted: model does not support images)`});continue}if(o.role===`assistant`){let e=[],t=[];for(let n of o.content){if(n.type===`text`){n.text.trim().length>0&&e.push({type:`text`,text:h(n.text)});continue}if(n.type===`thinking`){n.thinking.trim().length>0&&e.push({type:`thinking`,thinking:[{type:`text`,text:h(n.thinking)}]});continue}t.push({id:n.id,type:`function`,function:{name:n.name,arguments:JSON.stringify(n.arguments||{})},index:0})}let n={role:`assistant`,prefix:!1};e.length>0&&(n.content=e),t.length>0&&(n.toolCalls=t),(e.length>0||t.length>0)&&i.push(n);continue}let e=[],s=Y(o.content.filter(e=>e.type===`text`).map(e=>e.type===`text`?h(e.text):``).join(`
|
|
3
|
-
`),o.content.some(e=>e.type===`image`),r,o.isError);e.push({type:`text`,text:s});for(let t of o.content)r&&t.type===`image`&&e.push({type:`image_url`,imageUrl:`data:${t.mimeType};base64,${t.data}`});i.push({role:`tool`,toolCallId:o.toolCallId,name:o.toolName,content:e})}return i}function Y(e,t,n,r){let i=e.trim(),a=r?`[tool error] `:``;return i.length>0?`${a}${i}${t&&!n?`
|
|
4
|
-
[tool image omitted: model does not support images]`:``}`:t?n?r?`[tool error] (see attached image)`:`(see attached image)`:r?`[tool error] (image omitted: model does not support images)`:`(image omitted: model does not support images)`:r?`[tool error] (no tool output)`:`(no tool output)`}function X(e){if(e)return e===`auto`||e===`none`||e===`any`||e===`required`?e:{type:`function`,function:{name:e.function.name}}}function Z(e){if(e===null)return{stopReason:`stop`};switch(e){case`stop`:return{stopReason:`stop`};case`length`:case`model_length`:return{stopReason:`length`};case`tool_calls`:return{stopReason:`toolUse`};case`error`:return{stopReason:`error`,errorMessage:`Provider stopped with: error (server error)`};default:return{stopReason:`error`,errorMessage:`Provider stopped with: ${e}`}}}export{b as stream,x as streamSimple};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./document-DjWTbvB5.js";import{t}from"./renderer-cVoUiOqk.js";var n={version:1,name:`mushroom`,renderer:`zdog`,controls:{body:{type:`color`,label:`body`,default:`#fff7e4`},cap:{type:`color`,label:`cap`,default:`#f98284`},capSpot:{type:`color`,label:`capSpot`,default:`#ffe6c6`},eye:{type:`color`,label:`eye`,default:`#28282e`},mouth:{type:`color`,label:`mouth`,default:`#28282e`},dead:{type:`color`,label:`dead`,default:`#6c5671`},deadTongue:{type:`color`,label:`deadTongue`,default:`#d9c8bf`},tongue:{type:`color`,label:`tongue`,default:`#f98284`},sweat:{type:`color`,label:`sweat`,default:`#accce4`},white:{type:`color`,label:`white`,default:`#ffffff`}},data:JSON.parse(`{"root":"node-0","nodes":[{"id":"node-0","kind":"group","options":{"name":"root"}},{"id":"node-1","parent":"node-0","kind":"group","options":{"name":"body","updateSort":true}},{"id":"node-2","parent":"node-1","kind":"hemisphere","options":{"name":"body.hemisphere","translate":{"y":2},"rotate":{"x":4.71238898038469},"color":"\\u0000sprite-color:body","stroke":false,"backface":"\\u0000sprite-color:cap","diameter":32}},{"id":"node-3","parent":"node-1","kind":"hemisphere","options":{"name":"cap.hemisphere","translate":{"y":2},"rotate":{"x":1.5707963267948966},"color":"\\u0000sprite-color:cap","stroke":false,"backface":"\\u0000sprite-color:capSpot","diameter":42}},{"id":"node-4","parent":"node-3","kind":"shape","options":{"name":"cap.spot.front","translate":{"x":-8,"y":8,"z":12},"color":"\\u0000sprite-color:capSpot","stroke":12,"path":[{"x":0,"y":0}]}},{"id":"node-5","parent":"node-3","kind":"shape","options":{"name":"cap.spot.top","translate":{"x":8,"y":-4,"z":13},"color":"\\u0000sprite-color:capSpot","stroke":18,"path":[{"x":0,"y":0}]}},{"id":"node-6","parent":"node-1","kind":"group","options":{"name":"face","translate":{"y":7,"z":8}}},{"id":"node-7","parent":"node-6","kind":"group","options":{"name":"eyes"}},{"id":"node-8","parent":"node-7","kind":"group","options":{"name":"eyes.normal"}},{"id":"node-9","parent":"node-8","kind":"group","options":{"translate":{"x":-6,"y":-2}}},{"id":"node-10","parent":"node-9","kind":"ellipse","options":{"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":3,"height":5}},{"id":"node-11","parent":"node-9","kind":"ellipse","options":{"translate":{"y":-1,"z":1},"color":"\\u0000sprite-color:white","stroke":0.5,"fill":true,"width":1.5,"height":2}},{"id":"node-12","parent":"node-8","kind":"group","options":{"translate":{"x":6,"y":-2}}},{"id":"node-13","parent":"node-12","kind":"ellipse","options":{"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":3,"height":5}},{"id":"node-14","parent":"node-12","kind":"ellipse","options":{"translate":{"y":-1,"z":1},"color":"\\u0000sprite-color:white","stroke":0.5,"fill":true,"width":1.5,"height":2}},{"id":"node-15","parent":"node-7","kind":"group","options":{"name":"eyes.sad"}},{"id":"node-16","parent":"node-15","kind":"group","options":{"translate":{"x":-6,"y":-1},"rotate":{"z":0.2}}},{"id":"node-17","parent":"node-16","kind":"ellipse","options":{"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":3,"height":4}},{"id":"node-18","parent":"node-16","kind":"ellipse","options":{"translate":{"y":-1,"z":1},"color":"\\u0000sprite-color:white","stroke":0.5,"fill":true,"width":1.5,"height":2}},{"id":"node-19","parent":"node-15","kind":"group","options":{"translate":{"x":6,"y":-1},"rotate":{"z":-0.2}}},{"id":"node-20","parent":"node-19","kind":"ellipse","options":{"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":3,"height":4}},{"id":"node-21","parent":"node-19","kind":"ellipse","options":{"translate":{"y":-1,"z":1},"color":"\\u0000sprite-color:white","stroke":0.5,"fill":true,"width":1.5,"height":2}},{"id":"node-22","parent":"node-7","kind":"group","options":{"name":"eyes.surprised"}},{"id":"node-23","parent":"node-22","kind":"group","options":{"translate":{"x":-6,"y":-2}}},{"id":"node-24","parent":"node-23","kind":"ellipse","options":{"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":4,"height":5}},{"id":"node-25","parent":"node-23","kind":"ellipse","options":{"translate":{"y":-1,"z":1},"color":"\\u0000sprite-color:white","stroke":0.5,"fill":true,"width":1.5,"height":2}},{"id":"node-26","parent":"node-22","kind":"group","options":{"translate":{"x":6,"y":-2}}},{"id":"node-27","parent":"node-26","kind":"ellipse","options":{"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":4,"height":5}},{"id":"node-28","parent":"node-26","kind":"ellipse","options":{"translate":{"y":-1,"z":1},"color":"\\u0000sprite-color:white","stroke":0.5,"fill":true,"width":1.5,"height":2}},{"id":"node-29","parent":"node-7","kind":"group","options":{"name":"eyes.happy"}},{"id":"node-30","parent":"node-29","kind":"shape","options":{"translate":{"x":-6,"y":-2},"color":"\\u0000sprite-color:eye","stroke":1.5,"path":[{"x":-2.5,"y":2},{"bezier":[{"x":-1,"y":-1.5},{"x":1,"y":-1.5},{"x":2.5,"y":2}]}],"closed":false}},{"id":"node-31","parent":"node-29","kind":"shape","options":{"translate":{"x":6,"y":-2},"color":"\\u0000sprite-color:eye","stroke":1.5,"path":[{"x":-2.5,"y":2},{"bezier":[{"x":-1,"y":-1.5},{"x":1,"y":-1.5},{"x":2.5,"y":2}]}],"closed":false}},{"id":"node-32","parent":"node-7","kind":"group","options":{"name":"eyes.angry"}},{"id":"node-33","parent":"node-32","kind":"group","options":{"translate":{"x":-6,"y":-1},"rotate":{"z":-0.3}}},{"id":"node-34","parent":"node-33","kind":"ellipse","options":{"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":3,"height":4}},{"id":"node-35","parent":"node-33","kind":"shape","options":{"translate":{"y":-1},"color":"\\u0000sprite-color:eye","stroke":1.5,"path":[{"x":-3,"y":-3},{"x":3,"y":-2}]}},{"id":"node-36","parent":"node-32","kind":"group","options":{"translate":{"x":6,"y":-1},"rotate":{"z":0.3}}},{"id":"node-37","parent":"node-36","kind":"ellipse","options":{"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":3,"height":4}},{"id":"node-38","parent":"node-36","kind":"shape","options":{"translate":{"y":-1},"color":"\\u0000sprite-color:eye","stroke":1.5,"path":[{"x":-3,"y":-3},{"x":3,"y":-2}]}},{"id":"node-39","parent":"node-7","kind":"group","options":{"name":"eyes.dead"}},{"id":"node-40","parent":"node-39","kind":"group","options":{"translate":{"x":-6,"y":-2}}},{"id":"node-41","parent":"node-40","kind":"shape","options":{"color":"\\u0000sprite-color:dead","stroke":1.5,"path":[{"x":-2,"y":-3},{"x":2,"y":3}]}},{"id":"node-42","parent":"node-40","kind":"shape","options":{"color":"\\u0000sprite-color:dead","stroke":1.5,"path":[{"x":2,"y":-3},{"x":-2,"y":3}]}},{"id":"node-43","parent":"node-39","kind":"group","options":{"translate":{"x":6,"y":-2}}},{"id":"node-44","parent":"node-43","kind":"shape","options":{"color":"\\u0000sprite-color:dead","stroke":1.5,"path":[{"x":-2,"y":-3},{"x":2,"y":3}]}},{"id":"node-45","parent":"node-43","kind":"shape","options":{"color":"\\u0000sprite-color:dead","stroke":1.5,"path":[{"x":2,"y":-3},{"x":-2,"y":3}]}},{"id":"node-46","parent":"node-7","kind":"group","options":{"name":"eyes.confused"}},{"id":"node-47","parent":"node-46","kind":"group","options":{"translate":{"x":-6,"y":-2}}},{"id":"node-48","parent":"node-47","kind":"ellipse","options":{"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":3,"height":5}},{"id":"node-49","parent":"node-47","kind":"shape","options":{"color":"\\u0000sprite-color:eye","stroke":1.5,"path":[{"x":-3,"y":-4},{"x":3,"y":-2}]}},{"id":"node-50","parent":"node-46","kind":"group","options":{"translate":{"x":6,"y":-2}}},{"id":"node-51","parent":"node-50","kind":"ellipse","options":{"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":3,"height":5}},{"id":"node-52","parent":"node-7","kind":"group","options":{"name":"eyes.sleepy"}},{"id":"node-53","parent":"node-52","kind":"shape","options":{"translate":{"x":-6,"y":-1},"color":"\\u0000sprite-color:eye","stroke":1.5,"path":[{"x":-2.5,"y":1},{"bezier":[{"x":-1,"y":0},{"x":1,"y":0},{"x":2.5,"y":1}]}],"closed":false}},{"id":"node-54","parent":"node-52","kind":"shape","options":{"translate":{"x":6,"y":-1},"color":"\\u0000sprite-color:eye","stroke":1.5,"path":[{"x":-2.5,"y":1},{"bezier":[{"x":-1,"y":0},{"x":1,"y":0},{"x":2.5,"y":1}]}],"closed":false}},{"id":"node-55","parent":"node-7","kind":"group","options":{"name":"eyes.nervous"}},{"id":"node-56","parent":"node-55","kind":"group","options":{"translate":{"x":-6,"y":-2}}},{"id":"node-57","parent":"node-56","kind":"ellipse","options":{"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":3,"height":5}},{"id":"node-58","parent":"node-55","kind":"group","options":{"translate":{"x":6,"y":-2}}},{"id":"node-59","parent":"node-58","kind":"ellipse","options":{"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":3,"height":5}},{"id":"node-60","parent":"node-55","kind":"group","options":{"translate":{"x":10,"y":4}}},{"id":"node-61","parent":"node-60","kind":"shape","options":{"color":"\\u0000sprite-color:sweat","stroke":2,"path":[{"x":0,"y":-4}]}},{"id":"node-62","parent":"node-60","kind":"ellipse","options":{"translate":{"y":2},"color":"\\u0000sprite-color:sweat","stroke":0,"fill":true,"width":3,"height":4}},{"id":"node-63","parent":"node-7","kind":"group","options":{"name":"eyes.shy"}},{"id":"node-64","parent":"node-63","kind":"ellipse","options":{"translate":{"x":-6,"y":-2},"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":2.5,"height":2}},{"id":"node-65","parent":"node-63","kind":"ellipse","options":{"translate":{"x":6,"y":-2},"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":2.5,"height":2}},{"id":"node-66","parent":"node-7","kind":"group","options":{"name":"eyes.cute"}},{"id":"node-67","parent":"node-66","kind":"group","options":{"translate":{"x":-6,"y":-1}}},{"id":"node-68","parent":"node-67","kind":"ellipse","options":{"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":5,"height":6}},{"id":"node-69","parent":"node-67","kind":"ellipse","options":{"translate":{"y":-1.5,"z":1},"color":"\\u0000sprite-color:white","stroke":0,"fill":true,"width":2.5,"height":3}},{"id":"node-70","parent":"node-67","kind":"ellipse","options":{"translate":{"x":-1.5,"y":1.5,"z":1},"color":"\\u0000sprite-color:white","stroke":0,"fill":true,"width":1,"height":1}},{"id":"node-71","parent":"node-66","kind":"group","options":{"translate":{"x":6,"y":-1}}},{"id":"node-72","parent":"node-71","kind":"ellipse","options":{"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":5,"height":6}},{"id":"node-73","parent":"node-71","kind":"ellipse","options":{"translate":{"y":-1.5,"z":1},"color":"\\u0000sprite-color:white","stroke":0,"fill":true,"width":2.5,"height":3}},{"id":"node-74","parent":"node-71","kind":"ellipse","options":{"translate":{"x":-1.5,"y":1.5,"z":1},"color":"\\u0000sprite-color:white","stroke":0,"fill":true,"width":1,"height":1}},{"id":"node-75","parent":"node-7","kind":"group","options":{"name":"eyes.wink"}},{"id":"node-76","parent":"node-75","kind":"group","options":{"name":"eyes.wink.left"}},{"id":"node-77","parent":"node-76","kind":"shape","options":{"translate":{"x":-6,"y":-2},"color":"\\u0000sprite-color:eye","stroke":1.5,"path":[{"x":-2.5,"y":2},{"bezier":[{"x":-1,"y":-1.5},{"x":1,"y":-1.5},{"x":2.5,"y":2}]}],"closed":false}},{"id":"node-78","parent":"node-76","kind":"ellipse","options":{"translate":{"x":6,"y":-2},"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":3,"height":5}},{"id":"node-79","parent":"node-75","kind":"group","options":{"name":"eyes.wink.right"}},{"id":"node-80","parent":"node-79","kind":"shape","options":{"translate":{"x":6,"y":-2},"color":"\\u0000sprite-color:eye","stroke":1.5,"path":[{"x":-2.5,"y":2},{"bezier":[{"x":-1,"y":-1.5},{"x":1,"y":-1.5},{"x":2.5,"y":2}]}],"closed":false}},{"id":"node-81","parent":"node-79","kind":"ellipse","options":{"translate":{"x":-6,"y":-2},"color":"\\u0000sprite-color:eye","stroke":1.5,"fill":true,"width":3,"height":5}},{"id":"node-82","parent":"node-6","kind":"group","options":{"name":"mouth"}},{"id":"node-83","parent":"node-82","kind":"shape","options":{"name":"mouth.normal","translate":{"y":2},"color":"\\u0000sprite-color:mouth","stroke":1.5,"path":[{"x":-2.5,"y":0},{"x":2.5,"y":0}],"closed":false}},{"id":"node-84","parent":"node-82","kind":"shape","options":{"name":"mouth.happy","translate":{"y":2},"color":"\\u0000sprite-color:mouth","stroke":1.5,"path":[{"x":-2.5,"y":2},{"bezier":[{"x":0,"y":4},{"x":2.5,"y":2},{"x":2.5,"y":2}]}],"closed":false}},{"id":"node-85","parent":"node-82","kind":"shape","options":{"name":"mouth.sad","translate":{"y":2},"color":"\\u0000sprite-color:mouth","stroke":1.5,"path":[{"x":-2.5,"y":2},{"bezier":[{"x":0,"y":0},{"x":2.5,"y":2},{"x":2.5,"y":2}]}],"closed":false}},{"id":"node-86","parent":"node-82","kind":"shape","options":{"name":"mouth.small","translate":{"y":2},"color":"\\u0000sprite-color:mouth","stroke":1,"path":[{"x":-1.5,"y":0},{"x":1.5,"y":0}],"closed":false}},{"id":"node-87","parent":"node-82","kind":"shape","options":{"name":"mouth.worried","translate":{"y":2},"color":"\\u0000sprite-color:mouth","stroke":1,"path":[{"x":-2,"y":1},{"bezier":[{"x":-0.5,"y":0.5},{"x":0.5,"y":0.5},{"x":2,"y":1}]}],"closed":false}},{"id":"node-88","parent":"node-82","kind":"ellipse","options":{"name":"mouth.pout","translate":{"y":3},"color":"\\u0000sprite-color:mouth","stroke":1.5,"fill":true,"width":2,"height":2.5}},{"id":"node-89","parent":"node-82","kind":"ellipse","options":{"name":"mouth.surprised","translate":{"y":3},"color":"\\u0000sprite-color:mouth","stroke":1.5,"fill":true,"width":3,"height":4}},{"id":"node-90","parent":"node-82","kind":"group","options":{"name":"mouth.dead","translate":{"y":5}}},{"id":"node-91","parent":"node-90","kind":"ellipse","options":{"color":"\\u0000sprite-color:dead","stroke":1.5,"fill":true,"width":3,"height":2}},{"id":"node-92","parent":"node-90","kind":"ellipse","options":{"translate":{"y":0.5},"color":"\\u0000sprite-color:deadTongue","stroke":0,"fill":true,"width":1.5,"height":1}},{"id":"node-93","parent":"node-82","kind":"group","options":{"name":"mouth.open","translate":{"y":2}}},{"id":"node-94","parent":"node-93","kind":"ellipse","options":{"color":"\\u0000sprite-color:mouth","stroke":1.5,"fill":true,"width":6,"height":4}},{"id":"node-95","parent":"node-93","kind":"ellipse","options":{"name":"mouth.tongue","translate":{"y":1},"color":"\\u0000sprite-color:tongue","stroke":0,"fill":true,"width":3,"height":1.5}},{"id":"node-96","parent":"node-6","kind":"group","options":{"name":"blush.off"}}],"palette":{"body":"#fff7e4","cap":"#f98284","capSpot":"#ffe6c6","eye":"#28282e","mouth":"#28282e","dead":"#6c5671","deadTongue":"#d9c8bf","tongue":"#f98284","sweat":"#accce4","white":"#ffffff"},"variants":{"eyes":{"normal":"node-8","happy":"node-29","sad":"node-15","angry":"node-32","surprised":"node-22","dead":"node-39","confused":"node-46","sleepy":"node-52","nervous":"node-55","shy":"node-63","wink":"node-76","cute":"node-66","wink.left":"node-76","wink.right":"node-79"},"mouth":{"normal":"node-83","happy":"node-84","sad":"node-85","angry":"node-85","surprised":"node-89","dead":"node-90","small":"node-86","worried":"node-87","pout":"node-88","open":"node-93"},"blush":{"off":"node-96","small":"node-96","medium":"node-96","big":"node-96"}},"expressions":{"angry":{"variants":{"eyes":"angry","mouth":"angry","blush":"off"},"motion":{"target":"root","translate":{"x":1,"y":0},"durationMs":150,"repeat":"none"}},"confused":{"variants":{"eyes":"confused","mouth":"normal","blush":"off"},"motion":{"target":"root","translate":{"x":0,"y":0.5},"durationMs":150,"repeat":"none"}},"cute":{"variants":{"eyes":"cute","mouth":"happy","blush":"big"},"motion":{"target":"root","translate":{"x":0,"y":-2.5},"durationMs":150,"repeat":"none"}},"dead":{"variants":{"eyes":"dead","mouth":"dead","blush":"off"}},"happy":{"variants":{"eyes":"happy","mouth":"happy","blush":"medium"},"motion":{"target":"root","translate":{"x":0,"y":-2},"durationMs":150,"repeat":"none"}},"nervous":{"variants":{"eyes":"nervous","mouth":"worried","blush":"off"},"motion":{"target":"root","translate":{"x":-0.5,"y":-1},"durationMs":150,"repeat":"none"}},"normal":{"variants":{"eyes":"normal","mouth":"normal","blush":"off"},"motion":{"target":"root","translate":{"x":0,"y":1},"durationMs":150,"repeat":"none"}},"pleading":{"variants":{"eyes":"cute","mouth":"pout","blush":"medium"},"motion":{"target":"root","translate":{"x":0,"y":-1},"durationMs":150,"repeat":"none"}},"sad":{"variants":{"eyes":"sad","mouth":"sad","blush":"off"},"motion":{"target":"root","translate":{"x":0,"y":2},"durationMs":150,"repeat":"none"}},"shy":{"variants":{"eyes":"shy","mouth":"small","blush":"small"},"motion":{"target":"root","translate":{"x":0,"y":1.5},"durationMs":150,"repeat":"none"}},"sleepy":{"variants":{"eyes":"sleepy","mouth":"small","blush":"off"},"motion":{"target":"root","translate":{"x":0,"y":2},"durationMs":150,"repeat":"none"}},"surprised":{"variants":{"eyes":"surprised","mouth":"surprised","blush":"off"},"motion":{"target":"root","translate":{"x":0,"y":-3},"durationMs":150,"repeat":"none"}},"wink":{"variants":{"mouth":"happy","blush":"small"},"variantChoices":{"eyes":["wink.left","wink.right"]},"motion":{"target":"root","translate":{"x":0,"y":-1.5},"durationMs":150,"repeat":"none"}}},"activities":{"idle":{"motion":{"target":"root","translate":{"y":0.5},"durationMs":2000,"repeat":"yoyo"},"mouseInfluence":1},"listening":{"motion":{"target":"root","rotate":{"x":-0.2},"durationMs":300,"repeat":"yoyo"},"mouseInfluence":0.3},"processing":{"mouseInfluence":0.2},"speaking":{"motion":{"target":"root","translate":{"y":0.5},"durationMs":1500,"repeat":"yoyo"},"mouseInfluence":0,"mouthCycle":[{"durationMs":100,"mouth":"open"},{"durationMs":150,"mouth":"base"},{"durationMs":100,"mouth":"open"},{"durationMs":200,"mouth":"base"}]},"thinking":{"motion":{"target":"root","rotate":{"z":0.1},"durationMs":800,"repeat":"yoyo"},"mouseInfluence":0},"error":{"motion":{"target":"root","rotate":{"x":0.9},"durationMs":600,"repeat":"none"},"mouseInfluence":0.1,"geometry":{"eyes":"dead","mouth":"dead"}}},"defaultPresentation":{"activity":"idle","expression":"sleepy"}}`)},r={document:e.parse(n),render:t};export{r as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./error-BTdmRKoB.js";import{n as t,r as n}from"./anthropic-messages-BC32dQ9I.js";function r(t){throw new e(`${t} requires Node.js or a Node-compatible runtime`)}var i=3e4,a=`.anthropic-memory-store`,o=class extends e{constructor(e,t){super(e),this.name=`SessionMemoryError`,t!==void 0&&(this.cause=t)}},s=class{constructor(e,t){r(`SessionMemoryStores`)}get roots(){return r(`SessionMemoryStores`)}get readOnlyRoots(){return r(`SessionMemoryStores`)}download(e){return r(`SessionMemoryStores`)}finish(){return r(`SessionMemoryStores`)}syncAll(e){return r(`SessionMemoryStores`)}syncIfDue(){return r(`SessionMemoryStores`)}flushWrites(e){return r(`SessionMemoryStores`)}dispose(){return r(`SessionMemoryStores`)}};function c(e){return r(`setupSkills`)}function l(e,t){return r(`extractSkillArchive`)}function u(e){return r(`betaAgentToolset20260401`)}function d(e,t){return r(`resolvePath`)}var f=class extends e{constructor(e){super(`bash command timed out after ${e}ms`),this.name=`BashTimeoutError`,this.timeoutMs=e}},p=class{constructor(e,t){r(`BashSession`)}get closed(){return r(`BashSession`)}exec(e,t={}){return r(`BashSession`)}close(){r(`BashSession`)}};function m(e){return r(`betaBashTool`)}function h(e){return r(`betaReadTool`)}function g(e){return r(`betaWriteTool`)}function _(e){return r(`betaEditTool`)}function v(e){return r(`betaGlobTool`)}function y(e){return r(`betaGrepTool`)}export{p as BashSession,f as BashTimeoutError,t as DEFAULT_MEMORY_SYNC_INTERVAL_MS,a as MARKER_PATH,i as MEMORY_FLUSH_TIMEOUT_MS,n as MIN_MEMORY_SYNC_INTERVAL_MS,o as SessionMemoryError,s as SessionMemoryStores,u as betaAgentToolset20260401,m as betaBashTool,_ as betaEditTool,v as betaGlobTool,y as betaGrepTool,h as betaReadTool,g as betaWriteTool,l as extractSkillArchive,d as resolvePath,c as setupSkills};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{d as e,l as t,m as n,o as r,s as i,u as a}from"./preload-helper-DY31Aviq.js";import{t as o}from"./provider-env-CcCbsTJq.js";import{a as s,i as c,n as l,t as u}from"./diagnostics-CxvqSC4Q.js";import{n as d}from"./models-BM_0GHMS.js";import{t as f}from"./headers-FK4rgixo.js";import{h as p,i as m,u as h}from"./transform-messages-utWG7TCG.js";import{n as g,t as _}from"./error-body-pkrba6pf.js";import{t as v}from"./openai-prompt-cache-DXo9f3w5.js";import{n as y,r as b,t as x}from"./openai-responses-shared-DaKV5GAS.js";import{t as S}from"./abort-signals-joV34wzR.js";import{n as C}from"./runtime-core-DOL1texL.js";var w=new Set;function T(e){return w.add(e),()=>{w.delete(e)}}var E={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443};function D(e,t){let n=e.toLowerCase(),r=e.toUpperCase();return t?.[n]||t?.[r]||o(n)||o(r)||``}function O(e){if(e instanceof URL)return e;try{return new URL(e)}catch{return}}function k(e){return e.startsWith(`[`)&&e.endsWith(`]`)?e.slice(1,-1):e}function ee(e){let t=e.trim().toLowerCase();if(!t)return;if(t.startsWith(`[`)){let e=t.indexOf(`]`);if(e!==-1){let n=t.slice(1,e),r=t.slice(e+1);if(r.startsWith(`:`)){let e=Number.parseInt(r.slice(1),10);return{host:n,port:Number.isNaN(e)?0:e}}return{host:n,port:0}}}if(t.includes(`:`)&&t.split(`:`).length>2)return{host:t,port:0};let n=t.lastIndexOf(`:`);if(n!==-1&&n===t.indexOf(`:`)){let e=t.slice(0,n),r=Number.parseInt(t.slice(n+1),10);if(!Number.isNaN(r))return{host:e,port:r}}return{host:t,port:0}}function A(e,t,n){let r=D(`no_proxy`,n).toLowerCase();if(!r)return!0;if(r===`*`)return!1;let i=k(e.toLowerCase());return r.split(/[,\s]/).every(e=>{let n=ee(e);if(!n||n.port&&n.port!==t)return!0;let r=k(n.host);return r.startsWith(`*.`)?r=r.slice(2):(r.startsWith(`.`)||r.startsWith(`*`))&&(r=r.slice(1)),!r||!(i===r||i.endsWith(`.${r}`))})}function j(e,t){let n=O(e);if(!n?.protocol||!n.host)return``;let r=n.protocol.split(`:`,1)[0];if(!A(k(n.hostname||n.host.replace(/:\d*$/,``)),Number.parseInt(n.port,10)||E[r]||0,t))return``;let i=D(`${r}_proxy`,t)||D(`all_proxy`,t);return i&&!i.includes(`://`)&&(i=`${r}://${i}`),i}var M=`Unsupported proxy protocol. SOCKS and PAC proxy URLs are not supported; use an HTTP or HTTPS proxy URL.`;function te(e,t){let n=j(e,t);if(!n)return;let r;try{r=new URL(n)}catch(e){throw Error(`Invalid proxy URL ${JSON.stringify(n)}: ${e instanceof Error?e.message:String(e)}`)}if(r.protocol!==`http:`&&r.protocol!==`https:`)throw Error(`${M} Got ${r.protocol}`);return r}var ne=`https://chatgpt.com/backend-api`,re=`https://api.openai.com/auth`,ie=0,N=1e3,ae=6e4,oe=15e3,se=3,P=new Set([`openai`,`openai-codex`,`opencode`]),ce=1009,le=`websocket_connection_limit_reached`,ue=`previous_response_not_found`,de=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function F(e){if(e.stopReason===`pending`)throw Error(`Codex stream ended without a stop reason`);if(e.stopReason===`error`||e.stopReason===`aborted`)throw Error(e.errorMessage||`An unknown error occurred`)}function fe(e){return/GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(e)}function pe(e,t){return e===429&&fe(t)?!1:e===429||e===500||e===502||e===503||e===504||/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function me(e){let t=e.get(`retry-after-ms`);if(t!==null){let e=Number(t);if(Number.isFinite(e))return Math.max(0,e)}let n=e.get(`retry-after`);if(!n)return;let r=Number(n);if(Number.isFinite(r))return Math.max(0,r*1e3);let i=Date.parse(n);if(!Number.isNaN(i))return Math.max(0,i-Date.now())}var I=class extends Error{};function he(e,t){let n=t?.maxRetryDelayMs??ae;if(n>0&&e>n)throw new I(`Server requested ${Math.ceil(e/1e3)}s retry delay (max: ${Math.ceil(n/1e3)}s)`);return e}function L(e,t){return new Promise((n,r)=>{if(t?.aborted){r(Error(`Request was aborted`));return}let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(Error(`Request was aborted`))})})}function ge(e){if(e!==void 0){if(!Number.isFinite(e)||e<0)throw Error(`Invalid timeoutMs: ${String(e)}`);return Math.floor(e)}}function _e(){return typeof process>`u`||!(process.versions?.node||process.versions?.bun)?null:process.getBuiltinModule?.(`node:zlib`)??null}function ve(e){let t=_e();if(!t||typeof t.zstdCompressSync!=`function`)return null;try{let n=t.zstdCompressSync(e,{params:{[t.constants.ZSTD_c_compressionLevel]:se}});return new Uint8Array(n)}catch{return null}}var ye=(e,t,n)=>{let i=new s,o=a(t,e.compat?.supportsMidConvoSystemMessages);return(async()=>{let t={role:`assistant`,content:[],api:`openai-codex-responses`,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let a=n?.apiKey;if(!a)throw Error(`No API key for provider: ${e.provider}`);let s=it(a),c=h(r(o.messages),e.compat?.supportsOpenAIGrammarTools??!1),d=n?.cacheRetention===`none`?void 0:n?.sessionId,p=v(d),m=xe(e,o,n,p,c),g=await n?.onPayload?.(m,e);g!==void 0&&(m=g);let _=p||C(),y=at(e.headers,n?.headers,s,a,p),b=ot(e.headers,n?.headers,s,a,_),x=JSON.stringify(m),w=ge(n?.timeoutMs),T=ge(n?.websocketConnectTimeoutMs),E=n?.transport||`auto`,D=!1,O=E!==`sse`&&q(d);if(O&&J(d),E!==`sse`&&!O){let r=!1,a=!1,o=!1;for(;;){r=!1;try{if(await nt(Ee(e.baseUrl),m,b,t,i,e,()=>{r=!0,D||(D=!0,i.push({type:`start`,partial:t}))},w,T,d,s,c,n),n?.signal?.aborted)throw Error(`Request was aborted`);F(t),i.push({type:`done`,reason:t.stopReason,message:t}),i.end();return}catch(e){let i=n?.signal?.aborted,s=!r&&ke(e),c=Ae(e);if(!i&&c&&!o){o=!0;continue}if(!i&&s&&!a){a=!0;continue}if(i||Oe(e)&&!s||(u(t,l(`provider_transport_failure`,e,{configuredTransport:E,...r?{}:{fallbackTransport:`sse`},eventsEmitted:r,phase:r?`after_message_stream_start`:`before_message_stream_start`,requestBytes:new TextEncoder().encode(x).byteLength})),ze(d,e),r))throw e;J(d);break}}}let k=ve(x);k&&y.set(`content-encoding`,`zstd`);let ee=k??x,A,j,M=n?.maxRetries??ie;for(let t=0;t<=M;t++){if(n?.signal?.aborted)throw Error(`Request was aborted`);try{let r=w!==void 0&&w>0?AbortSignal.timeout(w):void 0,i=S([n?.signal,r]);try{A=await(n?.fetch??globalThis.fetch)(Te(e.baseUrl),{method:`POST`,headers:y,body:ee,signal:i.signal})}catch(e){throw r?.aborted&&!n?.signal?.aborted?Error(`Codex SSE response headers timed out after ${w}ms`):e}finally{i.cleanup()}if(await n?.onResponse?.({status:A.status,headers:f(A.headers)},e),A.ok)break;let a=await A.text();if(t<M&&pe(A.status,a)){let e=me(A.headers);await L(e===void 0?N*2**t:he(e,n),n?.signal);continue}let o=await rt(new Response(a,{status:A.status,statusText:A.statusText}));throw Error(o.friendlyMessage||o.message)}catch(e){if(e instanceof Error&&(e.name===`AbortError`||e.message===`Request was aborted`))throw Error(`Request was aborted`);if(j=e instanceof Error?e:Error(String(e)),t<M&&!(j instanceof I)&&!j.message.includes(`usage limit`)){await L(N*2**t,n?.signal);continue}throw j}}if(!A?.ok)throw j??Error(`Failed after retries`);if(!A.body)throw Error(`No response body`);if(D||(D=!0,i.push({type:`start`,partial:t})),await De(A,t,i,e,c,n),n?.signal?.aborted)throw Error(`Request was aborted`);F(t),i.push({type:`done`,reason:t.stopReason,message:t}),i.end()}catch(e){for(let e of t.content)delete e.partialJson,delete e.customInput;t.stopReason=n?.signal?.aborted?`aborted`:`error`,t.errorMessage=_(g(e)),i.push({type:`error`,reason:t.stopReason,error:t}),i.end()}})(),i},be=(e,t,n)=>{let r=n?.apiKey;if(!r)throw Error(`No API key for provider: ${e.provider}`);let i={...m(e,t,n,r),toolChoice:n?.toolChoice},a=n?.reasoning?d(e,n.reasoning):void 0,o=a===`off`?void 0:a;return ye(e,t,{...i,reasoningEffort:o})};function xe(t,a,o,s,c=h(r(a.messages),t.compat?.supportsOpenAIGrammarTools??!1)){let l=t.compat?.supportsStrictMode??!0,u=t.compat?.supportsOpenAIGrammarTools??!1,d=t.compat?.supportsAdditionalTools??!1,f=t.compat?.supportsToolSearch??!1,p=e(a.messages,d||f),m=x(t,a,P,{includeSystemPrompt:!1,grammarToolInputProperties:c,supportsMidConvoSystemMessages:t.compat?.supportsMidConvoSystemMessages??!1,supportsAdditionalTools:d,supportsToolSearch:f,toolOptions:{strict:null,supportsStrictMode:l,supportsOpenAIGrammarTools:u}}),g=i(a.messages),_=g?n(g):``,v={model:t.id,store:!1,stream:!0,instructions:_||`You are a helpful assistant.`,input:m,text:{verbosity:o?.textVerbosity||`low`},include:[`reasoning.encrypted_content`],prompt_cache_key:s,tool_choice:o?.toolChoice??`auto`,parallel_tool_calls:!0};if(o?.temperature!==void 0&&(v.temperature=o.temperature),o?.serviceTier!==void 0&&(v.service_tier=o.serviceTier),p.requestTools.length>0&&(v.tools=y(p.requestTools,{strict:null,supportsStrictMode:l,supportsOpenAIGrammarTools:u})),o?.reasoningEffort!==void 0){let e=o.reasoningEffort===`none`?t.thinkingLevelMap?.off===void 0?`none`:t.thinkingLevelMap.off:t.thinkingLevelMap?.[o.reasoningEffort]??o.reasoningEffort;e!==null&&(v.reasoning={effort:e,summary:o.reasoningSummary??`auto`})}else t.reasoning&&t.thinkingLevelMap?.off!==null&&(v.reasoning={effort:t.thinkingLevelMap?.off??`none`});return v}function Se(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function Ce(e,t,n){let r=Se(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}function we(e,t){return e==="default"&&(t===`flex`||t===`priority`)?t:e??t}function Te(e){let t=(e&&e.trim().length>0?e:ne).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function Ee(e){let t=new URL(Te(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function De(e,t,n,r,i,a){await b(V(Ne(e,a?.signal),t,r,a?.onProviderStreamEvent),t,n,r,{serviceTier:a?.serviceTier,grammarToolInputProperties:i,resolveServiceTier:we,applyServiceTierPricing:(e,t)=>Ce(e,t,r)})}var R=class extends Error{code;payload;constructor(e,t){super(e),this.name=`CodexApiError`,this.code=t?.code,this.payload=t?.payload,this.cause=t?.cause}},z=class extends Error{payload;constructor(e,t){super(e),this.name=`CodexProtocolError`,this.payload=t?.payload,this.cause=t?.cause}},B=class extends Error{constructor(e){super(c(e)),this.name=`ProviderStreamEventCallbackError`,this.cause=e}};function Oe(e){return e instanceof R||e instanceof z||e instanceof B}function ke(e){return e instanceof R&&e.code===le}function Ae(e){return e instanceof R&&e.code===ue}function je(e){let t=e.error&&typeof e.error==`object`?e.error:void 0;return{code:typeof e.code==`string`?e.code:typeof t?.code==`string`?t.code:void 0,message:typeof e.message==`string`?e.message:typeof t?.message==`string`?t.message:void 0}}async function*V(e,t,n,r){for await(let i of e){try{await r?.(i,n)}catch(e){throw new B(e)}let e=typeof i.type==`string`?i.type:void 0;if(e){if(e===`error`){let{code:e,message:t}=je(i);throw new R(`Codex error: ${t||e||JSON.stringify(i)}`,{code:e,payload:i})}if(e===`response.failed`){let e=i.response,t=e?.error?.code,n=e?.error?.message;throw new R(n||`Codex response failed`,{code:t,payload:i})}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=i.response;typeof e?.end_turn==`boolean`&&(t.endTurn=e.end_turn);let n=e&&{...e,status:Me(e.status)};yield{...i,type:`response.completed`,response:n};return}yield i}}}function Me(e){if(typeof e==`string`)return de.has(e)?e:void 0}async function*Ne(e,t){if(!e.body)return;let n=e.body.getReader(),r=new TextDecoder,i=``,a=()=>{n.cancel().catch(()=>{})};t?.addEventListener(`abort`,a,{once:!0});try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);let{done:e,value:a}=await n.read();if(t?.aborted)throw Error(`Request was aborted`);i+=e?r.decode():r.decode(a,{stream:!0}),e&&i.trim()&&(i+=`
|
|
2
|
-
|
|
3
|
-
`);let o=i.indexOf(`
|
|
4
|
-
|
|
5
|
-
`);for(;o!==-1;){let e=i.slice(0,o);i=i.slice(o+2);let t=e.split(`
|
|
6
|
-
`).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trim());if(t.length>0){let e=t.join(`
|
|
7
|
-
`).trim();if(e&&e!==`[DONE]`)try{yield JSON.parse(e)}catch(t){throw new z(`Invalid Codex SSE JSON: ${c(t)}`,{cause:t,payload:e})}}o=i.indexOf(`
|
|
8
|
-
|
|
9
|
-
`)}if(e)break}}finally{t?.removeEventListener(`abort`,a);try{await n.cancel()}catch{}try{n.releaseLock()}catch{}}}var Pe=`responses_websockets=2026-02-06`,Fe=3e5,Ie=33e5,H=new Map,U=new Map,W=new Set;function G(e){let t=U.get(e);return t||(t={requests:0,connectionsCreated:0,connectionsReused:0,cachedContextRequests:0,storeTrueRequests:0,fullContextRequests:0,deltaRequests:0,lastInputItems:0,websocketFailures:0,sseFallbacks:0},U.set(e,t)),t}function Le(e){let t=U.get(e);return t?{...t}:void 0}function Re(e){if(e){U.delete(e),W.delete(e);return}U.clear(),W.clear()}function K(e){let t=e=>{e.idleTimer&&clearTimeout(e.idleTimer),Z(e.socket,1e3,`debug_close`)};if(e){for(let n of H.get(e)?.values()??[])t(n);H.delete(e);return}for(let e of H.values())for(let n of e.values())t(n);H.clear()}T(K);function q(e){return e?W.has(e):!1}function J(e){if(!e)return;let t=G(e);t.sseFallbacks++,t.websocketFallbackActive=q(e)}function ze(e,t){if(!e)return;W.add(e);let n=G(e);n.websocketFailures++,n.lastWebSocketError=c(t),n.websocketFallbackActive=!0}var Y=null;async function Be(e){if(!e&&Y)return Y;if(typeof process<`u`&&process.versions?.bun){let t=class extends WebSocket{constructor(t,n){let r={};r=Array.isArray(n)||typeof n==`string`?{protocols:n}:{...n};let i=te(t.toString().replace(/^wss:/,`https:`).replace(/^ws:/,`http:`),e);super(t,{...r,...i?{proxy:i.toString()}:{}})}};return e||(Y=t),t}let t=globalThis.WebSocket;return typeof t==`function`?t:null}var Ve=class extends Error{code;reason;wasClean;constructor(e,t){super(e),this.name=`WebSocketCloseError`,this.code=t?.code,this.reason=t?.reason,this.wasClean=t?.wasClean}};function He(e){let t=e.readyState;return typeof t==`number`?t:void 0}function X(e){let t=He(e);return t===void 0||t===1}function Ue(e){return Date.now()-e.createdAt>=Ie}function Z(e,t=1e3,n=`done`){try{e.close(t,n)}catch{}}function We(e,t,n){n.idleTimer&&clearTimeout(n.idleTimer),n.idleTimer=setTimeout(()=>{if(n.busy)return;Z(n.socket,1e3,`idle_timeout`);let r=H.get(e);r?.get(t)===n&&r.delete(t),r?.size===0&&H.delete(e)},Fe)}async function Q(e,t,n,r=oe,i){let a=await Be(i);if(!a)throw Error(`WebSocket transport is not available in this runtime`);let o=f(t);return delete o[`OpenAI-Beta`],new Promise((t,i)=>{let s=!1,c,l;try{l=new a(e,{headers:o})}catch(e){i(e instanceof Error?e:Error(String(e)));return}let u=()=>{c&&=(clearTimeout(c),void 0),l.removeEventListener(`open`,f),l.removeEventListener(`error`,p),l.removeEventListener(`close`,m),n?.removeEventListener(`abort`,h)},d=(e,t)=>{s||(s=!0,u(),t&&Z(l,1e3,t),i(e))},f=()=>{s||(s=!0,u(),t(l))},p=e=>{d(Ke(e))},m=e=>{d(qe(e))},h=()=>{d(Error(`Request was aborted`),`aborted`)};l.addEventListener(`open`,f),l.addEventListener(`error`,p),l.addEventListener(`close`,m),n?.addEventListener(`abort`,h),r>0&&(c=setTimeout(()=>{d(Error(`WebSocket connect timeout after ${r}ms`),`connect_timeout`)},r)),n?.aborted&&h()})}async function Ge(e,t,n,r,i,a,o){if(!n){let n=await Q(e,t,i,a,o);return{socket:n,reused:!1,release:()=>Z(n)}}let s=H.get(n),c=s?.get(r);if(c){if(c.idleTimer&&=(clearTimeout(c.idleTimer),void 0),!c.busy&&Ue(c))Z(c.socket,1e3,`connection_age_limit`),s?.delete(r),s?.size===0&&H.delete(n);else if(!c.busy&&X(c.socket))return c.busy=!0,{socket:c.socket,entry:c,reused:!0,release:({keep:e}={})=>{if(!e||!X(c.socket)){Z(c.socket);let e=H.get(n);e?.get(r)===c&&e.delete(r),e?.size===0&&H.delete(n);return}c.busy=!1,We(n,r,c)}};if(c.busy){let n=await Q(e,t,i,a,o);return{socket:n,reused:!1,release:()=>{Z(n)}}}X(c.socket)||(Z(c.socket),s?.delete(r),s?.size===0&&H.delete(n))}let l=await Q(e,t,i,a,o),u={socket:l,busy:!0,createdAt:Date.now()};return s=H.get(n),s||(s=new Map,H.set(n,s)),s.set(r,u),{socket:l,entry:u,reused:!1,release:({keep:e}={})=>{if(!e||!X(u.socket)){Z(u.socket),u.idleTimer&&clearTimeout(u.idleTimer);let e=H.get(n);e?.get(r)===u&&e.delete(r),e?.size===0&&H.delete(n);return}u.busy=!1,We(n,r,u)}}}function Ke(e){if(e&&typeof e==`object`){let t=`message`in e?e.message:void 0;if(typeof t==`string`&&t.length>0)return Error(t);let n=`error`in e?e.error:void 0;if(n instanceof Error&&n.message.length>0)return n;if(n&&typeof n==`object`&&`message`in n){let e=n.message;if(typeof e==`string`&&e.length>0)return Error(e)}}return Error(`WebSocket error`)}function qe(e){if(e&&typeof e==`object`){let t=`code`in e?e.code:void 0,n=`reason`in e?e.reason:void 0,r=`wasClean`in e?e.wasClean:void 0,i=typeof t==`number`?` ${t}`:``,a=typeof n==`string`&&n.length>0?` ${n}`:``;return!a&&t===ce&&(a=` message too big`),new Ve(`WebSocket closed${i}${a}`.trim(),{code:typeof t==`number`?t:void 0,reason:typeof n==`string`&&n.length>0?n:void 0,wasClean:typeof r==`boolean`?r:void 0})}return Error(`WebSocket closed`)}async function Je(e){if(typeof e==`string`)return e;if(e instanceof ArrayBuffer)return new TextDecoder().decode(new Uint8Array(e));if(ArrayBuffer.isView(e)){let t=e;return new TextDecoder().decode(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}if(e&&typeof e==`object`&&`arrayBuffer`in e){let t=await e.arrayBuffer();return new TextDecoder().decode(new Uint8Array(t))}return null}async function*Ye(e,t,n){let r=[],i=null,a=!1,o=null,s=!1,l=()=>{if(!i)return;let e=i;i=null,e()},u=e=>{(async()=>{let t=null;try{if(!e||typeof e!=`object`||!(`data`in e)||(t=await Je(e.data),!t))return;let n=JSON.parse(t),i=typeof n.type==`string`?n.type:``;(i===`response.completed`||i===`response.done`||i===`response.incomplete`)&&(s=!0,a=!0),r.push(n),l()}catch(e){o=new z(`Invalid Codex WebSocket JSON: ${c(e)}`,{cause:e,payload:t}),a=!0,l()}})()},d=e=>{o=Ke(e),a=!0,l()},f=e=>{if(s){a=!0,l();return}o||=qe(e),a=!0,l()},p=()=>{o=Error(`Request was aborted`),a=!0,l()};e.addEventListener(`message`,u),e.addEventListener(`error`,d),e.addEventListener(`close`,f),t?.addEventListener(`abort`,p);try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);if(r.length>0){yield r.shift();continue}if(a)break;let s;await new Promise((t,r)=>{i=t,n!==void 0&&n>0&&(s=setTimeout(()=>{let t=Error(`WebSocket idle timeout after ${n}ms`);o=t,a=!0,i=null,Z(e,1e3,`idle_timeout`),r(t)},n))}).finally(()=>{s&&clearTimeout(s)})}if(o)throw o;if(!s)throw Error(`WebSocket stream closed before response.completed`)}finally{e.removeEventListener(`message`,u),e.removeEventListener(`error`,d),e.removeEventListener(`close`,f),t?.removeEventListener(`abort`,p)}}function Xe(e){let{input:t,previous_response_id:n,...r}=e;return r}function Ze(e,t){return JSON.stringify(e??[])===JSON.stringify(t??[])}function Qe(e,t){return JSON.stringify(Xe(e))===JSON.stringify(Xe(t))}function $e(e,t){if(!Qe(e,t.lastRequestBody))return;let n=e.input??[],r=[...t.lastRequestBody.input??[],...t.lastResponseItems];if(!(n.length<r.length)&&Ze(n.slice(0,r.length),r))return n.slice(r.length)}function et(e,t){let n=e.continuation;if(!n)return t;let r=$e(t,n);return!r||!n.lastResponseId?(e.continuation=void 0,t):{...t,previous_response_id:n.lastResponseId,input:r}}async function*tt(e,t){let n=!1;for await(let r of e)n||(n=!0,t()),yield r}async function nt(e,n,r,i,a,o,s,c,l,u,d,f,p){let{socket:m,entry:h,reused:g,release:_}=await Ge(e,r,u,d,p?.signal,l,p?.env),v=!0,y=p?.transport===`websocket-cached`||p?.transport===`auto`,S=n,C=y&&h?et(h,S):S,w=u?G(u):void 0;w&&(w.requests++,g?w.connectionsReused++:w.connectionsCreated++,y&&w.cachedContextRequests++,C.store===!0&&w.storeTrueRequests++,w.lastInputItems=C.input?.length??0,C.previous_response_id?(w.deltaRequests++,w.lastDeltaInputItems=C.input?.length??0,w.lastPreviousResponseId=C.previous_response_id):(w.fullContextRequests++,w.lastDeltaInputItems=void 0,w.lastPreviousResponseId=void 0));try{if(m.send(JSON.stringify({type:`response.create`,...C})),await b(tt(V(Ye(m,p?.signal,c),i,o,p?.onProviderStreamEvent),s),i,a,o,{serviceTier:p?.serviceTier,grammarToolInputProperties:f,resolveServiceTier:we,applyServiceTierPricing:(e,t)=>Ce(e,t,o)}),p?.signal?.aborted)v=!1;else if(y&&h&&i.responseId){let e=x(o,t({messages:[i]}),P,{includeSystemPrompt:!1,grammarToolInputProperties:f}).filter(e=>e.type!==`function_call_output`&&e.type!==`custom_tool_call_output`);h.continuation={lastRequestBody:S,lastResponseId:i.responseId,lastResponseItems:e}}}catch(e){throw h&&(h.continuation=void 0),v=!1,e}finally{_({keep:v})}}async function rt(e){let t=await e.text(),n=t||e.statusText||`Request failed`,r;try{let i=JSON.parse(t)?.error;if(i){let t=i.code||i.type||``;if(/usage_limit_reached|usage_not_included|rate_limit_exceeded/i.test(t)||e.status===429){let e=i.plan_type?` (${i.plan_type.toLowerCase()} plan)`:``,t=i.resets_at?Math.max(0,Math.round((i.resets_at*1e3-Date.now())/6e4)):void 0;r=`You have hit your ChatGPT usage limit${e}.${t===void 0?``:` Try again in ~${t} min.`}`.trim()}n=i.message||r||n}}catch{}return{message:n,friendlyMessage:r}}function it(e){try{let t=e.split(`.`);if(t.length!==3)throw Error(`Invalid token`);let n=JSON.parse(atob(t[1]))?.[re]?.chatgpt_account_id;if(!n)throw Error(`No account ID in token`);return n}catch{throw Error(`Failed to extract accountId from token`)}}function $(e,t,n,r){let i=new Headers({originator:`pi`,"User-Agent":p()});for(let[t,n]of Object.entries(e||{}))i.set(t,n);for(let[e,n]of Object.entries(t||{}))n===null?i.delete(e):i.set(e,n);return i.set(`Authorization`,`Bearer ${r}`),i.set(`chatgpt-account-id`,n),i}function at(e,t,n,r,i){let a=$(e,t,n,r);return a.set(`OpenAI-Beta`,`responses=experimental`),a.set(`accept`,`text/event-stream`),a.set(`content-type`,`application/json`),i&&(a.set(`session-id`,i),a.set(`x-client-request-id`,i)),a}function ot(e,t,n,r,i){let a=$(e,t,n,r);return a.delete(`accept`),a.delete(`content-type`),a.delete(`OpenAI-Beta`),a.delete(`openai-beta`),a.set(`OpenAI-Beta`,Pe),a.set(`x-client-request-id`,i),a.set(`session-id`,i),a}export{K as closeOpenAICodexWebSocketSessions,Le as getOpenAICodexWebSocketDebugStats,Re as resetOpenAICodexWebSocketDebugStats,ye as stream,be as streamSimple,T as t};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{d as e,h as t,m as n,o as r,u as i}from"./preload-helper-DY31Aviq.js";import{t as a}from"./provider-env-CcCbsTJq.js";import{a as o}from"./diagnostics-CxvqSC4Q.js";import{n as s,t as c}from"./models-BM_0GHMS.js";import{t as l}from"./headers-FK4rgixo.js";import{n as u,r as d}from"./json-parse-M7s0500m.js";import{c as f,d as p,f as m,h,i as g,l as _,m as v,n as y,o as b,p as x,s as S,u as C}from"./transform-messages-utWG7TCG.js";import{t as ee}from"./provider-retry-RVfYd5Vz.js";import{t as w}from"./sanitize-unicode-DmIE6hZJ.js";import{n as T,t as E}from"./github-copilot-headers-DRgtIyTm.js";import{n as D}from"./openai-Cpe0uoXQ.js";import{n as O,t as k}from"./error-body-pkrba6pf.js";import{t as A}from"./openai-prompt-cache-DXo9f3w5.js";import{t as j}from"./hash-yQufAZII.js";function M(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function N(e,t,n){if(t)return t;if(M(n,`authorization`)||M(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function P(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}function F(e){return e.type===`text`}function I(e){return e.type===`thinking`}function L(e){return e.type===`toolCall`}function te(e){return e.type===`image`}function R(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function z(e){return(e.id===void 0||e.id===null||typeof e.id==`string`)&&(e.format===void 0||typeof e.format==`string`)&&(e.index===void 0||typeof e.index==`number`)}function B(e){if(!R(e)||!z(e))return!1;switch(e.type){case`reasoning.summary`:return typeof e.summary==`string`;case`reasoning.encrypted`:return typeof e.data==`string`;case`reasoning.text`:return typeof e.text==`string`&&(e.signature===void 0||e.signature===null||typeof e.signature==`string`);default:return!1}}function ne(e){if(e)try{let t=JSON.parse(e);return Array.isArray(t)&&t.length>0&&t.every(B)?t:void 0}catch{return}}function re(e){if(e)try{let t=JSON.parse(e);return B(t)&&t.type===`reasoning.encrypted`&&typeof t.id==`string`&&t.id.length>0&&t.data.length>0?t:void 0}catch{return}}function V(e,t){e.id??=t.id,e.format||=t.format,e.index??=t.index}function ie(e,t){let n=e[e.length-1];if(t.type===`reasoning.text`&&n?.type===`reasoning.text`){n.text+=t.text,n.signature||=t.signature,V(n,t);return}if(t.type===`reasoning.summary`&&n?.type===`reasoning.summary`){n.summary+=t.summary,V(n,t);return}e.push({...t})}var ae=[`reasoning`,`reasoning_content`,`reasoning_text`];function oe(e){return ae.includes(e)}function H(e,t){return e||(a(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}var U=(e,t,n)=>{let a=new o,s=i(t,$(e).supportsMidConvoSystemMessages);return(async()=>{let t={role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()},i,o=e=>{i!==void 0&&(e.thinkingSignature=JSON.stringify(i))};try{let c=N(e.provider,n?.apiKey,n?.headers),f=$(e),p=C(r(s.messages),f.supportsOpenAIGrammarTools),m=H(n?.cacheRetention,n?.env),h=m===`none`?void 0:n?.sessionId,g=G(e,s,c,n?.headers,n?.fetch,h,f),v=K(e,s,n,f,m,p),y=await n?.onPayload?.(v,e);y!==void 0&&(v=y);let b={...n?.signal?{signal:n.signal}:{},...n?.timeoutMs===void 0?{}:{timeout:n.timeoutMs},maxRetries:0},{data:x,response:S}=await ee(()=>g.chat.completions.create(v,b).withResponse(),{maxRetries:n?.maxRetries,maxRetryDelayMs:n?.maxRetryDelayMs,signal:n?.signal});await n?.onResponse?.({status:S.status,headers:l(S.headers)},e),a.push({type:`start`,partial:t});let w=null,T=null,E=!1,D=new Map,O=new Map,k=t.content,A=e=>k.indexOf(e),j=e=>{let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``},M=(e,t,n)=>{let r=e.customInput;if(!r)return;let i=_(r.jsonBuffer,r.property,t,n);return e.arguments={[r.property]:t},i},P=e=>{let n=A(e);if(n!==-1){if(e.type===`text`)a.push({type:`text_end`,contentIndex:n,content:e.text,partial:t});else if(e.type===`thinking`)o(e),a.push({type:`thinking_end`,contentIndex:n,content:e.thinking,partial:t});else if(e.type===`toolCall`){if(e.customInput){let r=M(e,j(e),!0);r!==void 0&&a.push({type:`toolcall_delta`,contentIndex:n,delta:r,partial:t})}else Object.assign(e,d(e.partialArgs));delete e.partialArgs,delete e.customInput,delete e.streamIndex,a.push({type:`toolcall_end`,contentIndex:n,toolCall:e,partial:t})}}},F=()=>(w||(w={type:`text`,text:``},k.push(w),a.push({type:`text_start`,contentIndex:A(w),partial:t})),w),I=e=>(T||(T={type:`thinking`,thinking:``,thinkingSignature:e},k.push(T),a.push({type:`thinking_start`,contentIndex:A(T),partial:t})),T),L=e=>{let n=typeof e.index==`number`?e.index:void 0,r=e.function?.name??e.custom?.name??``,i=n===void 0?void 0:D.get(n);if(!i&&e.id&&(i=O.get(e.id)),!i){let o=e.custom&&!e.function?p.get(r)??`input`:void 0,s=o!==void 0;i={type:`toolCall`,id:e.id||``,name:r,arguments:s?{[o]:``}:{},partialArgs:s?void 0:``,customInput:s?{property:o,jsonBuffer:{input:``,started:!1,closed:!1}}:void 0,streamIndex:n},n!==void 0&&D.set(n,i),e.id&&O.set(e.id,i),k.push(i),a.push({type:`toolcall_start`,contentIndex:A(i),partial:t})}if(n!==void 0&&i.streamIndex===void 0&&(i.streamIndex=n,D.set(n,i)),e.id&&O.set(e.id,i),!i.name&&r&&(i.name=r),e.custom&&!e.function&&!i.customInput){let e=p.get(i.name)??`input`;i.arguments={[e]:``},i.customInput={property:e,jsonBuffer:{input:``,started:!1,closed:!1}},delete i.partialArgs}return i};for await(let r of x){if(await n?.onProviderStreamEvent?.(r,e),!r||typeof r!=`object`)continue;t.responseId||=r.id,typeof r.model==`string`&&r.model.length>0&&r.model!==e.id&&(t.responseModel||=r.model),r.usage&&(t.usage=Z(r.usage,e));let o=Array.isArray(r.choices)?r.choices[0]:void 0;if(o){if(!r.usage&&o.usage&&(t.usage=Z(o.usage,e)),o.finish_reason){t.rawStopReason=o.finish_reason;let e=_e(o.finish_reason);t.stopReason=e.stopReason,e.errorMessage&&(t.errorMessage=e.errorMessage),E=!0}if(o.delta){let n=[`reasoning_content`,`reasoning`,`reasoning_text`],r=o.delta,s=null;for(let e of n){let t=r[e];if(typeof t==`string`&&t.length>0){s=e;break}}if(s){let n=r[s];if(typeof n==`string`&&n.length>0){let r=I(e.provider===`opencode-go`&&s===`reasoning`?`reasoning_content`:s);r.thinking+=n,a.push({type:`thinking_delta`,contentIndex:A(r),delta:n,partial:t})}}let c=o.delta.reasoning_details;if(Array.isArray(c))for(let e of c)B(e)&&(I(``),i??=[],ie(i,e));if(o.delta.content!==null&&o.delta.content!==void 0&&o.delta.content.length>0){let e=F();e.text+=o.delta.content,a.push({type:`text_delta`,contentIndex:A(e),delta:o.delta.content,partial:t})}if(o?.delta?.tool_calls)for(let e of o.delta.tool_calls){let n=L(e);!n.id&&e.id&&(n.id=e.id,O.set(e.id,n));let r=e.function?.name??e.custom?.name;!n.name&&r&&(n.name=r);let i=``;e.function?.arguments?(i=e.function.arguments,n.partialArgs=(n.partialArgs??``)+e.function.arguments,n.arguments=u(n.partialArgs)):e.custom?.input&&(i=M(n,j(n)+e.custom.input,!1)??``),a.push({type:`toolcall_delta`,contentIndex:A(n),delta:i,partial:t})}}}}for(let e of k)P(e);if(n?.signal?.aborted||t.stopReason===`aborted`)throw Error(`Request was aborted`);if(!E&&!f.supportsFinishReason&&(t.stopReason=t.content.some(e=>e.type===`toolCall`)?`toolUse`:`stop`),t.stopReason===`error`)throw Error(t.errorMessage||`Provider returned an error stop reason`);if(f.supportsFinishReason&&!E||t.stopReason===`pending`)throw Error(`Stream ended without finish_reason`);a.push({type:`done`,reason:t.stopReason,message:t}),a.end()}catch(e){for(let e of t.content)e.type===`thinking`&&o(e),delete e.index,delete e.partialArgs,delete e.customInput,delete e.streamIndex;t.stopReason=n?.signal?.aborted?`aborted`:`error`,t.errorMessage=k(O(e));let r=e?.error?.metadata?.raw;r&&!t.errorMessage.includes(String(r))&&(t.errorMessage+=`\n${r}`),a.push({type:`error`,reason:t.stopReason,error:t}),a.end()}})(),a},W=(e,t,n)=>{N(e.provider,n?.apiKey,n?.headers);let r={...g(e,t,n,n?.apiKey),toolChoice:n?.toolChoice},i=n?.reasoning?s(e,n.reasoning):void 0,a=i===`off`?void 0:i;return U(e,t,{...r,reasoningEffort:a,thinkingBudgets:n?.thinkingBudgets})};function G(e,t,n,r,i,a,o=$(e)){let s={"User-Agent":h(),...e.headers};if(e.provider===`github-copilot`){let e=T(t.messages),n=E({messages:t.messages,hasImages:e});Object.assign(s,n)}return a&&o.sendSessionAffinityHeaders&&(o.sessionAffinityFormat===`openrouter`?s[`x-session-id`]=a:(o.sessionAffinityFormat===`openai`&&(s.session_id=a),s[`x-client-request-id`]=a,s[`x-session-affinity`]=a)),r&&Object.assign(s,r),new D({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:s})}function K(t,n,i,a=$(t),o=H(i?.cacheRetention,i?.env),s=C(r(n.messages),a.supportsOpenAIGrammarTools)){let c=e(n.messages,a.supportsMidConvoSystemMessages===!0&&a.supportsMidConvoToolAdditions===!0),l=Y(t,n,a,{grammarToolInputProperties:s}),u=ue(a,o),d={model:t.id,messages:l,stream:!0,prompt_cache_key:t.baseUrl.includes(`api.openai.com`)&&o!==`none`||o===`long`&&a.supportsLongCacheRetention?A(i?.sessionId):void 0,prompt_cache_retention:o===`long`&&a.supportsLongCacheRetention?`24h`:void 0};a.supportsUsageInStreaming!==!1&&(d.stream_options={include_usage:!0}),a.supportsStore&&(d.store=!1),i?.maxTokens&&(a.maxTokensField===`max_tokens`?d.max_tokens=i.maxTokens:d.max_completion_tokens=i.maxTokens),i?.temperature!==void 0&&(d.temperature=i.temperature),c.requestTools.length>0?(d.tools=X(c.requestTools,a),a.zaiToolStream&&(d.tool_stream=!0)):P(n.messages)&&(d.tools=[]),u&&de(l,d.tools,u),i?.toolChoice&&(d.tool_choice=i.toolChoice),a.vllmPriority!==void 0&&(d.priority=a.vllmPriority);let f=se(a),p=ce(t,i,d);if(a.thinkingFormat===`zai`&&t.reasoning){let e=d;if(e.thinking=i?.reasoningEffort?{type:`enabled`,clear_thinking:!1}:{type:`disabled`},i?.reasoningEffort&&a.supportsReasoningEffort){let n=t.thinkingLevelMap?.[i.reasoningEffort],r=n===void 0?i.reasoningEffort:n;typeof r==`string`&&(e.reasoning_effort=r)}}else if(a.thinkingFormat===`qwen`&&t.reasoning){if(d.enable_thinking=!!i?.reasoningEffort,i?.reasoningEffort&&a.supportsReasoningEffort){let e=t.thinkingLevelMap?.[i.reasoningEffort]??i.reasoningEffort;typeof e==`string`&&(d.reasoning_effort=e)}}else if(a.thinkingFormat===`qwen-chat-template`&&t.reasoning)d.chat_template_kwargs={enable_thinking:!!i?.reasoningEffort,preserve_thinking:!0};else if(a.thinkingFormat===`chat-template`&&t.reasoning){let e=q(t,i,a.chatTemplateKwargs,p);e&&(d.chat_template_kwargs=e)}else if(a.thinkingFormat===`baseten`&&t.reasoning){let e=d,n=q(t,i,a.chatTemplateArgs,p);if(n&&(e.chat_template_args=n),a.supportsReasoningEffort){let n=i?.reasoningEffort,r=n?t.thinkingLevelMap?.[n]:t.thinkingLevelMap?.off,a=r===void 0?n:r;typeof a==`string`&&(e.reasoning_effort=a)}}else if(a.thinkingFormat===`deepseek`&&t.reasoning)i?.reasoningEffort?d.thinking={type:`enabled`}:t.thinkingLevelMap?.off!==null&&(d.thinking={type:`disabled`}),i?.reasoningEffort&&a.supportsReasoningEffort&&(d.reasoning_effort=t.thinkingLevelMap?.[i.reasoningEffort]??i.reasoningEffort);else if(a.thinkingFormat===`openrouter`&&t.reasoning){let e=d;i?.reasoningEffort?e.reasoning={effort:t.thinkingLevelMap?.[i.reasoningEffort]??i.reasoningEffort}:t.thinkingLevelMap?.off!==null&&(e.reasoning={effort:t.thinkingLevelMap?.off??`none`})}else if(a.thinkingFormat===`ant-ling`&&t.reasoning&&i?.reasoningEffort){let e=t.thinkingLevelMap?.[i.reasoningEffort];typeof e==`string`&&(d.reasoning={effort:e})}else if(a.thinkingFormat===`together`&&t.reasoning){let e=d;e.reasoning={enabled:!!i?.reasoningEffort},i?.reasoningEffort&&a.supportsReasoningEffort&&(e.reasoning_effort=t.thinkingLevelMap?.[i.reasoningEffort]??i.reasoningEffort)}else if(a.thinkingFormat===`string-thinking`&&t.reasoning){let e=d;i?.reasoningEffort?e.thinking=t.thinkingLevelMap?.[i.reasoningEffort]??i.reasoningEffort:t.thinkingLevelMap?.off!==null&&(e.thinking=t.thinkingLevelMap?.off??`none`)}else if(i?.reasoningEffort&&t.reasoning&&a.supportsReasoningEffort)d.reasoning_effort=t.thinkingLevelMap?.[i.reasoningEffort]??i.reasoningEffort;else if(!i?.reasoningEffort&&t.reasoning&&a.supportsReasoningEffort){let e=t.thinkingLevelMap?.off;typeof e==`string`&&(d.reasoning_effort=e)}if(f&&p!==void 0&&Object.assign(d,{[f]:p}),t.compat?.openRouterRouting&&(d.provider=t.compat.openRouterRouting),t.compat?.vercelGatewayRouting){let e=t.compat.vercelGatewayRouting;if(e.only||e.order){let t={};e.only&&(t.only=e.only),e.order&&(t.order=e.order),d.providerOptions={gateway:t}}}let m=S(t,i?.reasoningEffort??`off`,i?.samplingParams);return m&&Object.assign(d,m),d}function se(e){if(e.thinkingTokenBudgetField)return e.thinkingTokenBudgetField;if(e.supportsThinkingTokenBudget)return`thinking_token_budget`}function ce(e,t,n){if(!t?.reasoningEffort||!e.reasoning)return;let r=n.max_tokens??n.max_completion_tokens??e.maxTokens,i=b(f(t.reasoningEffort,t.thinkingBudgets),r);return i>0?i:void 0}function q(e,t,n,r){let i={};for(let[a,o]of Object.entries(n)){let n=le(e,t,o,r);n!==void 0&&(i[a]=n)}return Object.keys(i).length>0?i:void 0}function le(e,t,n,r){if(typeof n!=`object`||!n)return n;let i=t?.reasoningEffort;if(!i&&n.omitWhenOff)return;if(n.$var===`thinking.enabled`)return!!i;if(n.$var===`thinking.budget`)return r;let a=i?e.thinkingLevelMap?.[i]:e.thinkingLevelMap?.off;return a===void 0?i:typeof a==`string`?a:void 0}function ue(e,t){if(e.cacheControlFormat!==`anthropic`||t===`none`)return;let n=t===`long`&&e.supportsLongCacheRetention?`1h`:void 0;return{type:`ephemeral`,...n?{ttl:n}:{}}}function de(e,t,n){fe(e,n),me(t,n),pe(e,n)}function fe(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){he(n,t);return}}function pe(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`||r.role===`tool`)&&ge(r,t))return}}function me(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function he(e,t){return J(e,t)}function ge(e,t){return e.role===`user`||e.role===`assistant`||e.role===`tool`?J(e,t):!1}function J(e,t){let n=e.content;if(typeof n==`string`)return n.length!==0&&(e.content=[{type:`text`,text:n,cache_control:t}],!0);if(!Array.isArray(n))return!1;for(let e=n.length-1;e>=0;e--){let r=n[e];if(r?.type===`text`){let e=r;return e.cache_control=t,!0}}return!1}function Y(r,a,o,s){let c=i(a,o.supportsMidConvoSystemMessages),l=[],u=e=>{if(e.includes(`|`)){let t=e.indexOf(`|`),n=e.slice(0,t).replace(/[^a-zA-Z0-9_-]/g,`_`),r=e.slice(t+1).replace(/[^a-zA-Z0-9_-]/g,`_`),i=r.length>0?`${n}_${r}`:n;if(i.length<=40)return i;let a=j(e).slice(0,8);return`${n.slice(0,Math.max(1,40-a.length-1))}_${a}`}return r.provider===`openai`&&e.length>40?e.slice(0,40):e},d=y(c.messages,r,e=>u(e)),f=e(c.messages,o.supportsMidConvoSystemMessages===!0&&o.supportsMidConvoToolAdditions===!0),m=r.reasoning&&o.supportsDeveloperRole?`developer`:`system`,h=null;for(let e=0;e<d.length;e++){let i=d[e];if(o.requiresAssistantAfterToolResult&&h===`toolResult`&&i.role===`user`&&l.push({role:`assistant`,content:`I have processed the tool results.`}),i.role===`system`){let r=e>0&&f.anchorsAdditions?i.toolsAdded??[]:[];if(r.length>0){let e={role:`system`,tools:X(r,o)};l.push(e)}let a=e===0?n(i):t(i);a.length>0&&l.push({role:m,content:w(a)})}else if(i.role===`user`){if(typeof i.content==`string`)l.push({role:`user`,content:w(i.content)});else{let e=i.content.filter(e=>e.type!==`text`||e.text.length>0).map(e=>e.type===`text`?{type:`text`,text:w(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;l.push({role:`user`,content:e})}}else if(i.role===`assistant`){let e={role:`assistant`,content:o.requiresAssistantAfterToolResult?``:null},t=i.content.filter(F).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:w(e.text)})),n=t.map(e=>e.text).join(``),a=i.content.filter(I),c=i.content.filter(L),u=a.map(e=>ne(e.thinkingSignature)).find(e=>e!==void 0),d=c.map(e=>re(e.thoughtSignature)).filter(e=>e!==void 0),f=u??(d.length>0?d:void 0),m=a.filter(e=>e.thinking.trim().length>0);if(m.length>0){if(o.requiresThinkingAsText)e.content=[{type:`text`,text:m.map(e=>w(e.thinking)).join(`
|
|
2
|
-
|
|
3
|
-
`)},...t];else if(n.length>0&&(e.content=n),!f){let t=m[0].thinkingSignature;r.provider===`opencode-go`&&t===`reasoning`&&(t=`reasoning_content`),t&&oe(t)&&(e[t]=m.map(e=>e.thinking).join(`
|
|
4
|
-
`))}}else n.length>0&&(e.content=n);c.length>0&&(e.tool_calls=c.map(e=>{let t=s?.grammarToolInputProperties?.get(e.name);return t===void 0?{id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}:{id:e.id,type:`custom`,custom:{name:e.name,input:w(p(e.name,e.arguments,t))}}})),f&&(e.reasoning_details=f),o.requiresReasoningContentOnAssistantMessages&&r.reasoning&&e.reasoning_content===void 0&&(e.reasoning_content=``);let h=e.content;if(!(h!=null&&h.length>0)&&!e.tool_calls)continue;l.push(e)}else if(i.role===`toolResult`){let t=[],n=e;for(;n<d.length&&d[n].role===`toolResult`;n++){let e=d[n],i=e.content.filter(F).map(e=>e.text).join(`
|
|
5
|
-
`),a=e.content.some(e=>e.type===`image`),s=i.length>0?i:a?`(see attached image)`:`(no tool output)`,c={role:`tool`,content:w(s),tool_call_id:e.toolCallId};if(o.requiresToolResultName&&e.toolName&&(c.name=e.toolName),l.push(c),a&&r.input.includes(`image`))for(let n of e.content)te(n)&&t.push({type:`image_url`,image_url:{url:`data:${n.mimeType};base64,${n.data}`}})}e=n-1,t.length>0?(o.requiresAssistantAfterToolResult&&l.push({role:`assistant`,content:`I have processed the tool results.`}),l.push({role:`user`,content:[{type:`text`,text:`Attached image(s) from tool result:`},...t]}),h=`user`):h=`toolResult`;continue}h=i.role}return l}function X(e,t){return e.map(e=>{let n=x(e,t.supportsOpenAIGrammarTools);if(n)return{type:`custom`,custom:{name:e.name,description:e.description,format:{type:`grammar`,grammar:{syntax:n.format,definition:n.definition}}}};let r=v(e,t.supportsStrictMode!==!1);return{type:`function`,function:{name:e.name,description:e.description,parameters:m(e,r),...t.supportsStrictMode!==!1&&{strict:r??!1}}}})}function Z(e,t){let n=e.prompt_tokens||0,r=e.prompt_tokens_details?.cached_tokens??e.prompt_cache_hit_tokens??e.cached_tokens??0,i=e.prompt_tokens_details?.cache_write_tokens||0,a=Math.max(0,n-r-i),o=e.completion_tokens||0,s={input:a,output:o,cacheRead:r,cacheWrite:i,reasoning:e.completion_tokens_details?.reasoning_tokens||0,totalTokens:a+o+r+i,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return c(t,s),s}function _e(e){if(e===null)return{stopReason:`stop`};switch(e){case`stop`:case`end`:return{stopReason:`stop`};case`length`:return{stopReason:`length`};case`function_call`:case`tool_calls`:return{stopReason:`toolUse`};case`content_filter`:return{stopReason:`error`,errorMessage:`Provider finish_reason: content_filter`};case`network_error`:return{stopReason:`error`,errorMessage:`Provider finish_reason: network_error`};default:return{stopReason:`error`,errorMessage:`Provider finish_reason: ${e}`}}}function Q(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||t===`zai-coding-cn`||n.includes(`api.z.ai`)||n.includes(`open.bigmodel.cn`),i=t===`together`||n.includes(`api.together.ai`)||n.includes(`api.together.xyz`),a=t===`moonshotai`||t===`moonshotai-cn`||n.includes(`api.moonshot.`),o=t===`openrouter`||n.includes(`openrouter.ai`),s=t===`cloudflare-workers-ai`||n.includes(`api.cloudflare.com`),c=t===`cloudflare-ai-gateway`||n.includes(`gateway.ai.cloudflare.com`),l=t===`nvidia`||n.includes(`integrate.api.nvidia.com`),u=t===`ant-ling`||n.includes(`api.ant-ling.com`),d=t===`cerebras`||n.includes(`cerebras.ai`),f=t===`deepseek`||n.toLowerCase().includes(`deepseek.com`),p=l||d||t===`xai`||n.includes(`api.x.ai`)||i||n.includes(`chutes.ai`)||f||r||a||t===`opencode`||n.includes(`opencode.ai`)||s||c||u,m=n.includes(`chutes.ai`)||f||a||c||i||l||u||r,h=t===`xai`||n.includes(`api.x.ai`),g=o&&(e.id.startsWith(`anthropic/`)||e.id.startsWith(`openai/`)),_=t===`openrouter`&&e.id.startsWith(`anthropic/`)?`anthropic`:void 0;return{supportsStore:!p,supportsDeveloperRole:g||!p&&!o,supportsReasoningEffort:!h&&!r&&!a&&!i&&!c&&!l&&!u,supportsUsageInStreaming:!0,supportsFinishReason:!0,maxTokensField:m?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:f,thinkingFormat:f?`deepseek`:r?`zai`:i?`together`:u?`ant-ling`:o?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},chatTemplateKwargs:{},chatTemplateArgs:{},zaiToolStream:!1,supportsThinkingTokenBudget:!1,thinkingTokenBudgetField:void 0,supportsStrictMode:!1,supportsOpenAIGrammarTools:!1,supportsMidConvoSystemMessages:!1,supportsMidConvoToolAdditions:!1,cacheControlFormat:_,sendSessionAffinityHeaders:o,sessionAffinityFormat:o?`openrouter`:`openai`,supportsLongCacheRetention:!(i||s||c||l||u)}}function $(e){let t=Q(e);return e.compat?{supportsStore:e.compat.supportsStore??t.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??t.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??t.supportsReasoningEffort,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??t.supportsUsageInStreaming,supportsFinishReason:e.compat.supportsFinishReason??t.supportsFinishReason,maxTokensField:e.compat.maxTokensField??t.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??t.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??t.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??t.requiresThinkingAsText,requiresReasoningContentOnAssistantMessages:e.compat.requiresReasoningContentOnAssistantMessages??t.requiresReasoningContentOnAssistantMessages,thinkingFormat:e.compat.thinkingFormat??t.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??t.vercelGatewayRouting,chatTemplateKwargs:e.compat.chatTemplateKwargs??t.chatTemplateKwargs,chatTemplateArgs:e.compat.chatTemplateArgs??t.chatTemplateArgs,zaiToolStream:e.compat.zaiToolStream??t.zaiToolStream,supportsThinkingTokenBudget:e.compat.supportsThinkingTokenBudget??t.supportsThinkingTokenBudget,thinkingTokenBudgetField:e.compat.thinkingTokenBudgetField??t.thinkingTokenBudgetField,supportsStrictMode:e.compat.supportsStrictMode??t.supportsStrictMode,supportsOpenAIGrammarTools:e.compat.supportsOpenAIGrammarTools??t.supportsOpenAIGrammarTools,supportsMidConvoSystemMessages:e.compat.supportsMidConvoSystemMessages??t.supportsMidConvoSystemMessages,supportsMidConvoToolAdditions:e.compat.supportsMidConvoToolAdditions??t.supportsMidConvoToolAdditions,cacheControlFormat:e.compat.cacheControlFormat??t.cacheControlFormat,sendSessionAffinityHeaders:e.compat.sendSessionAffinityHeaders??t.sendSessionAffinityHeaders,sessionAffinityFormat:e.compat.sessionAffinityFormat??t.sessionAffinityFormat,supportsLongCacheRetention:e.compat.supportsLongCacheRetention??t.supportsLongCacheRetention,vllmPriority:e.compat.vllmPriority}:t}export{Y as convertMessages,U as stream,W as streamSimple};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as e,o as t,u as n}from"./preload-helper-DY31Aviq.js";import{t as r}from"./provider-env-CcCbsTJq.js";import{a as i}from"./diagnostics-CxvqSC4Q.js";import{n as a}from"./models-BM_0GHMS.js";import{t as o}from"./headers-FK4rgixo.js";import{h as s,i as c,s as l,u}from"./transform-messages-utWG7TCG.js";import{t as d}from"./provider-retry-RVfYd5Vz.js";import{n as f,t as p}from"./github-copilot-headers-DRgtIyTm.js";import{n as m}from"./openai-Cpe0uoXQ.js";import{n as h,t as g}from"./error-body-pkrba6pf.js";import{t as _}from"./openai-prompt-cache-DXo9f3w5.js";import{n as v,r as y,t as b}from"./openai-responses-shared-DaKV5GAS.js";var x=new Set([`openai`,`openai-codex`,`opencode`]),S=16,C=`https://chatgpt.com/settings/usage`,w=`medium`;function T(e,t){return e.provider===`openai`&&e.baseUrl===`https://api.openai.com/v1`&&t!==void 0&&!t.startsWith(`sk-`)}function E(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function D(e,t,n){if(t)return t;if(E(n,`authorization`)||E(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function O(e){return e.provider===`openrouter`||e.baseUrl.includes(`openrouter.ai`)?`openrouter`:`openai`}function k(e,t){return e||(r(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}function A(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,supportsMidConvoSystemMessages:e.compat?.supportsMidConvoSystemMessages??!1,sessionAffinityFormat:e.compat?.sessionAffinityFormat??O(e),supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0,supportsStrictMode:e.compat?.supportsStrictMode??!1,supportsOpenAIGrammarTools:e.compat?.supportsOpenAIGrammarTools??!1,supportsAdditionalTools:e.compat?.supportsAdditionalTools??!1,supportsToolSearch:e.compat?.supportsToolSearch??!1,supportsExplicitPromptCacheMode:e.compat?.supportsExplicitPromptCacheMode??!1,supportsMaxOutputTokens:e.compat?.supportsMaxOutputTokens??!0,supportsMidConvoEffort:e.compat?.supportsMidConvoEffort??!1}}function j(e,t,n){if(!(!n.supportsMidConvoEffort||!t?.reasoningEffort||T(e,t.apiKey)))return e.thinkingLevelMap?.[t.reasoningEffort]??t.reasoningEffort}function M(e,t){return t===`long`&&e.supportsLongCacheRetention&&!e.supportsExplicitPromptCacheMode?`24h`:void 0}function N(e,t){if(e.supportsExplicitPromptCacheMode){if(t===`none`)return{mode:`explicit`};if(t===`long`&&e.supportsLongCacheRetention)return{ttl:`30m`}}}var P=(e,r,a)=>{let s=new i,c=n(r,A(e).supportsMidConvoSystemMessages);return(async()=>{let n=A(e),r=j(e,a,n),i={role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,...r===void 0?{}:{providerThinkingLevel:r},usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`pending`,timestamp:Date.now()};try{let l=D(e.provider,a?.apiKey,a?.headers),f=k(a?.cacheRetention,a?.env)===`none`?void 0:a?.sessionId,p=u(t(c.messages),n.supportsOpenAIGrammarTools),m=I(e,c,l,a?.headers,a?.fetch,f),h=L(e,c,a,n,p,r),g=await a?.onPayload?.(h,e);g!==void 0&&(h=g);let _={...a?.signal?{signal:a.signal}:{},...a?.timeoutMs===void 0?{}:{timeout:a.timeoutMs},maxRetries:0},{data:v,response:b}=await d(()=>m.responses.create(h,_).withResponse(),{maxRetries:a?.maxRetries,maxRetryDelayMs:a?.maxRetryDelayMs,signal:a?.signal});if(await a?.onResponse?.({status:b.status,headers:o(b.headers)},e),s.push({type:`start`,partial:i}),await y(v,i,s,e,{onProviderStreamEvent:a?.onProviderStreamEvent,serviceTier:a?.serviceTier,grammarToolInputProperties:p,applyServiceTierPricing:(t,n)=>z(t,n,e)}),a?.signal?.aborted)throw Error(`Request was aborted`);if(i.stopReason===`pending`)throw Error(`OpenAI Responses stream ended without a stop reason`);if(i.stopReason===`aborted`||i.stopReason===`error`)throw Error(i.errorMessage||`An unknown error occurred`);s.push({type:`done`,reason:i.stopReason,message:i}),s.end()}catch(t){for(let e of i.content)delete e.index,delete e.partialJson,delete e.customInput;i.stopReason=a?.signal?.aborted?`aborted`:`error`;let n=g(h(t),`${e.provider===`openai`?`OpenAI`:e.provider} API error`);i.errorMessage=n.includes(`subscription_sharing_usage_limit_exceeded`)?`${n}\nCheck your ChatGPT usage: ${C}`:n,s.push({type:`error`,reason:i.stopReason,error:i}),s.end()}})(),s},F=(e,t,n)=>{D(e.provider,n?.apiKey,n?.headers);let r={...c(e,t,n,n?.apiKey),toolChoice:n?.toolChoice},i=n?.reasoning?a(e,n.reasoning):void 0,o=i===`off`?void 0:i;return P(e,t,{...r,reasoningEffort:o})};function I(e,t,n,r,i,a){let o=A(e),c={"User-Agent":s(),...e.headers};if(e.provider===`github-copilot`){let e=f(t.messages),n=p({messages:t.messages,hasImages:e});Object.assign(c,n)}return a&&(o.sessionAffinityFormat===`openrouter`?c[`x-session-id`]=a:(o.sessionAffinityFormat===`openai`&&(c.session_id=a),c[`x-client-request-id`]=a)),r&&Object.assign(c,r),new m({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,fetch:i,defaultHeaders:c})}function L(t,n,r,i,a,o){let s=e(n.messages,i.supportsAdditionalTools||i.supportsToolSearch),c=b(t,n,x,{grammarToolInputProperties:a,supportsMidConvoSystemMessages:i.supportsMidConvoSystemMessages,supportsAdditionalTools:i.supportsAdditionalTools,supportsToolSearch:i.supportsToolSearch,toolOptions:{supportsStrictMode:i.supportsStrictMode,supportsOpenAIGrammarTools:i.supportsOpenAIGrammarTools},configurationUpdateEffort:o}),u=k(r?.cacheRetention,r?.env),d=T(t,r?.apiKey),f={model:t.id,input:c,stream:!0,prompt_cache_key:u===`none`?void 0:_(r?.sessionId),prompt_cache_retention:d?void 0:M(i,u),prompt_cache_options:d?void 0:N(i,u),store:!1};r?.maxTokens&&i.supportsMaxOutputTokens&&!d&&(f.max_output_tokens=Math.max(r.maxTokens,S)),r?.temperature!==void 0&&!d&&(f.temperature=r?.temperature),r?.serviceTier!==void 0&&(f.service_tier=r.serviceTier),s.requestTools.length>0&&(f.tools=v(s.requestTools,{supportsStrictMode:i.supportsStrictMode,supportsOpenAIGrammarTools:i.supportsOpenAIGrammarTools})),r?.toolChoice!==void 0&&(f.tool_choice=r.toolChoice);let p=r?.reasoningEffort??(r?.reasoningSummary?`medium`:void 0);if(t.reasoning){if(p){let e=r?.reasoningEffort?t.thinkingLevelMap?.[r.reasoningEffort]??r.reasoningEffort:p;f.reasoning={effort:o===void 0?e:w,summary:r?.reasoningSummary||`auto`},f.include=[`reasoning.encrypted_content`]}else t.provider!==`github-copilot`&&t.thinkingLevelMap?.off!==null&&(f.reasoning={effort:t.thinkingLevelMap?.off??`none`});t.provider===`xai`&&(f.include=[`reasoning.encrypted_content`])}let m=l(t,p??`off`,r?.samplingParams);return m&&Object.assign(f,m),f}function R(e,t){switch(t){case`flex`:return .5;case`priority`:case`fast`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function z(e,t,n){let r=R(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{P as stream,F as streamSimple};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import{d as e,h as t,m as n,u as r}from"./preload-helper-DY31Aviq.js";import{t as i}from"./models-BM_0GHMS.js";import{n as a,r as o}from"./json-parse-M7s0500m.js";import{d as s,f as c,l,m as u,n as d,p as f}from"./transform-messages-utWG7TCG.js";import{t as p}from"./sanitize-unicode-DmIE6hZJ.js";import{t as m}from"./hash-yQufAZII.js";function h(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function g(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function _(e,t){let n=t.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
2
|
-
`),r=t.filter(e=>e.type===`image`),i=n.length>0;if(r.length===0||!e.input.includes(`image`))return p(i?n:r.length>0?`(see attached image)`:`(no tool output)`);let a=[];i&&a.push({type:`input_text`,text:p(n)});for(let e of r)a.push({type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});return a}function v(i,a,o,c){let l=r(a,c?.supportsMidConvoSystemMessages),u=[],f=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},h=e=>{let t=`fc_${m(e)}`;return t.length>64?t.slice(0,64):t},v=d(l.messages,i,(e,t,n)=>{if(!o.has(i.provider)||!e.includes(`|`))return f(e);let[r,a]=e.split(`|`),s=f(r),c=n.provider!==i.provider||n.api!==i.api?h(a):f(a);return c.startsWith(`fc_`)||(c=f(`fc_${c}`)),`${s}|${c}`}),b=e(l.messages,(c?.supportsAdditionalTools??!1)||(c?.supportsToolSearch??!1)),x=(e,t)=>{let n=b.anchorsAdditions?e.toolsAdded??[]:[];if(n.length===0)return;if(c?.supportsAdditionalTools){u.push({type:`additional_tools`,role:`developer`,tools:y(n,c.toolOptions)});return}if(!c?.supportsToolSearch)return;let r=n.map(e=>e.name),i=`pi_tool_load_${m(`${t}:${r.join(`,`)}`)}`;u.push({type:`tool_search_call`,call_id:i,execution:`client`,status:`completed`,arguments:{query:r.join(` `),limit:r.length}}),u.push({type:`tool_search_output`,call_id:i,execution:`client`,status:`completed`,tools:y(n,{...c.toolOptions,toolSearchResult:!0})})},S=c?.includeSystemPrompt??!0,C=e=>{u.push({type:`configuration_update`,reasoning:{effort:e}})},w=i.compat,T=i.reasoning&&w?.supportsDeveloperRole!==!1?`developer`:`system`,E=0,D=0;for(let e of v){let r=D++===0&&e.role===`system`;if(e.role===`system`){if(r||x(e,`system:${E}`),!r||S){let i=r?n(e):t(e);i.length>0&&u.push({role:T,content:p(i)})}}else if(e.role===`user`){if(typeof e.content==`string`)u.push({role:`user`,content:[{type:`input_text`,text:p(e.content)}]});else{let t=e.content.map(e=>e.type===`text`?{type:`input_text`,text:p(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});if(t.length===0)continue;u.push({role:`user`,content:t})}}else if(e.role===`assistant`){let t=[],n=e,r=n.provider===i.provider&&n.api===i.api,a=r&&n.model===i.id,o=r&&n.model!==i.id,l=0;for(let n of e.content)if(n.type===`thinking`){if(n.thinkingSignature){let e=JSON.parse(n.thinkingSignature);t.push(e)}}else if(n.type===`text`){let e=n,r=g(e.textSignature),i=l===0?`msg_pi_${E}`:`msg_pi_${E}_${l}`;l++;let a=r?.id;a?a.length>64&&(a=`msg_${m(a)}`):a=i,t.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:p(e.text),annotations:[]}],status:`completed`,id:a,phase:r?.phase})}else if(n.type===`toolCall`){let e=n,[r,i]=e.id.split(`|`),l=c?.grammarToolInputProperties?.get(e.name),u=i,d=l===void 0?`fc_`:`ctc_`;(o||!u?.startsWith(d))&&(u=void 0),l===void 0?t.push({type:`function_call`,id:u,call_id:r,name:e.name,arguments:JSON.stringify(e.arguments),...a&&e.namespace!==void 0?{namespace:e.namespace}:{}}):t.push({type:`custom_tool_call`,id:u,call_id:r,name:e.name,input:p(s(e.name,e.arguments,l)),...a&&e.namespace!==void 0?{namespace:e.namespace}:{}})}if(t.length===0)continue;c?.configurationUpdateEffort!==void 0&&a&&e.providerThinkingLevel!==void 0&&C(e.providerThinkingLevel),u.push(...t)}else if(e.role===`toolResult`){let[t]=e.toolCallId.split(`|`),n=_(i,e.content);c?.grammarToolInputProperties?.has(e.toolName)?u.push({type:`custom_tool_call_output`,call_id:t,output:n}):u.push({type:`function_call_output`,call_id:t,output:n})}r||E++}return c?.configurationUpdateEffort!==void 0&&C(c.configurationUpdateEffort),u}function y(e,t){let n=t?.strict!==void 0&&t.strict,r=t?.supportsStrictMode??!0,i=t?.supportsOpenAIGrammarTools??!1;return e.map(e=>{let a=f(e,i);if(a)return{type:`custom`,name:e.name,description:e.description,format:{type:`grammar`,syntax:a.format,definition:a.definition},...t?.toolSearchResult?{defer_loading:!0}:{}};let o=u(e,r)??n,s={type:`function`,name:e.name,description:e.description,parameters:c(e,o===!0),...t?.toolSearchResult?{defer_loading:!0}:{}};return r&&(s.strict=o),s})}function b(e){let t=e.customInput?.property;if(t===void 0)return``;let n=e.arguments[t];return typeof n==`string`?n:``}function x(e,t,n){let r=e.customInput;if(!r)return;let i=l(r.jsonBuffer,r.property,t,n);return e.arguments={[r.property]:t},i}async function S(e,t,n,r,s){let c=!1,l=new Map,u=new Map,d=e=>{e.type===`message`&&e.phase===`final_answer`&&(t.stopReason=`stop`)},f=(e,t)=>{let n=l.get(e);return n?.type===t?n:void 0},p=(e,r)=>{r!==void 0&&n.push({type:`toolcall_delta`,contentIndex:e.contentIndex,delta:r,partial:t})},m=(e,r)=>{if(r.type===`reasoning`){let r={type:`thinking`,thinking:``};t.content.push(r);let i={type:`thinking`,block:r,contentIndex:t.content.length-1};return l.set(e,i),n.push({type:`thinking_start`,contentIndex:i.contentIndex,partial:t}),i}if(r.type===`message`){d(r);let i={type:`text`,text:``};t.content.push(i);let a={type:`text`,block:i,contentIndex:t.content.length-1};return l.set(e,a),n.push({type:`text_start`,contentIndex:a.contentIndex,partial:t}),a}if(r.type===`function_call`){let i={type:`toolCall`,id:`${r.call_id}|${r.id}`,name:r.name,arguments:{},...r.namespace===void 0?{}:{namespace:r.namespace},partialJson:r.arguments||``};t.content.push(i);let a={type:`toolCall`,block:i,contentIndex:t.content.length-1};return l.set(e,a),n.push({type:`toolcall_start`,contentIndex:a.contentIndex,partial:t}),a}if(r.type===`custom_tool_call`){let i=s?.grammarToolInputProperties?.get(r.name)??`input`,a=r.input||``,o={type:`toolCall`,id:`${r.call_id}|${r.id}`,name:r.name,arguments:{[i]:a},...r.namespace===void 0?{}:{namespace:r.namespace},customInput:{property:i,jsonBuffer:{input:``,started:!1,closed:!1}}};t.content.push(o);let c={type:`toolCall`,block:o,contentIndex:t.content.length-1};return l.set(e,c),n.push({type:`toolcall_start`,contentIndex:c.contentIndex,partial:t}),c}},g=(e,t)=>l.get(e)??m(e,t),_=e=>{for(let t of e){if(t.type!==`reasoning`||!t.encrypted_content)continue;let e=u.get(t.id);if(!e?.thinkingSignature)continue;let n=JSON.parse(e.thinkingSignature);n.encrypted_content||(e.thinkingSignature=JSON.stringify({...n,encrypted_content:t.encrypted_content}))}},v=e=>{if(c=!0,_(e.output??[]),e?.id&&(t.responseId=e.id),e?.usage){let n=e.usage.input_tokens_details,r=n?.cached_tokens||0,i=n?.cache_write_tokens||0;t.usage={input:Math.max(0,(e.usage.input_tokens||0)-r-i),output:e.usage.output_tokens||0,cacheRead:r,cacheWrite:i,reasoning:e.usage.output_tokens_details?.reasoning_tokens||0,totalTokens:e.usage.total_tokens||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}if(i(r,t.usage),s?.applyServiceTierPricing){let n=s.resolveServiceTier?s.resolveServiceTier(e?.service_tier,s.serviceTier):e?.service_tier??s.serviceTier;s.applyServiceTierPricing(t.usage,n)}let n=e?.status,a=e?.incomplete_details,o=typeof a?.reason==`string`?a.reason:void 0;t.rawStopReason=o?`${n}.${o}`:n;let l=C(n,o);t.stopReason=l.stopReason,l.errorMessage===void 0?delete t.errorMessage:t.errorMessage=l.errorMessage,t.content.some(e=>e.type===`toolCall`)&&t.stopReason===`stop`&&(t.stopReason=`toolUse`)};for await(let i of e)if(await s?.onProviderStreamEvent?.(i,r),i.type===`response.created`)t.responseId=i.response.id;else if(i.type===`response.output_item.added`)m(i.output_index,i.item);else if(i.type===`response.reasoning_summary_text.delta`){let e=f(i.output_index,`thinking`);if(!e)continue;e.block.thinking+=i.delta,n.push({type:`thinking_delta`,contentIndex:e.contentIndex,delta:i.delta,partial:t})}else if(i.type===`response.reasoning_summary_part.done`){let e=f(i.output_index,`thinking`);if(!e)continue;e.block.thinking+=`
|
|
3
|
-
|
|
4
|
-
`,n.push({type:`thinking_delta`,contentIndex:e.contentIndex,delta:`
|
|
5
|
-
|
|
6
|
-
`,partial:t})}else if(i.type===`response.reasoning_text.delta`){let e=f(i.output_index,`thinking`);if(!e)continue;e.block.thinking+=i.delta,n.push({type:`thinking_delta`,contentIndex:e.contentIndex,delta:i.delta,partial:t})}else if(i.type===`response.output_text.delta`){let e=f(i.output_index,`text`);if(!e)continue;e.block.text+=i.delta,n.push({type:`text_delta`,contentIndex:e.contentIndex,delta:i.delta,partial:t})}else if(i.type===`response.refusal.delta`){let e=f(i.output_index,`text`);if(!e)continue;e.block.text+=i.delta,n.push({type:`text_delta`,contentIndex:e.contentIndex,delta:i.delta,partial:t})}else if(i.type===`response.function_call_arguments.delta`){let e=f(i.output_index,`toolCall`);if(!e||e.block.partialJson===void 0)continue;e.block.partialJson+=i.delta,e.block.arguments=a(e.block.partialJson),p(e,i.delta)}else if(i.type===`response.function_call_arguments.done`){let e=f(i.output_index,`toolCall`);if(!e||e.block.partialJson===void 0)continue;let t=e.block.partialJson;if(e.block.partialJson=i.arguments,e.block.arguments=a(e.block.partialJson),i.arguments.startsWith(t)){let n=i.arguments.slice(t.length);n.length>0&&p(e,n)}}else if(i.type===`response.custom_tool_call_input.delta`){let e=f(i.output_index,`toolCall`);if(!e||!e.block.customInput)continue;p(e,x(e.block,b(e.block)+i.delta,!1))}else if(i.type===`response.custom_tool_call_input.done`){let e=f(i.output_index,`toolCall`);if(!e||!e.block.customInput)continue;p(e,x(e.block,i.input,!0))}else if(i.type===`response.output_item.done`){let e=i.item;d(e);let r=g(i.output_index,e);if(e.type===`reasoning`&&r?.type===`thinking`){let a=e.summary?.map(e=>e.text).join(`
|
|
7
|
-
|
|
8
|
-
`)||``,o=e.content?.map(e=>e.text).join(`
|
|
9
|
-
|
|
10
|
-
`)||``;r.block.thinking=a||o||r.block.thinking,r.block.thinkingSignature=JSON.stringify(e),u.set(e.id,r.block),n.push({type:`thinking_end`,contentIndex:r.contentIndex,content:r.block.thinking,partial:t}),l.delete(i.output_index)}else e.type===`message`&&r?.type===`text`?(r.block.text=e.content?.map(e=>e.type===`output_text`?e.text:e.refusal).join(``)||``,r.block.textSignature=h(e.id,e.phase??void 0),n.push({type:`text_end`,contentIndex:r.contentIndex,content:r.block.text,partial:t}),l.delete(i.output_index)):e.type===`function_call`&&r?.type===`toolCall`&&r.block.partialJson!==void 0?(Object.assign(r.block,o(e.arguments||r.block.partialJson)),e.namespace!==void 0&&(r.block.namespace=e.namespace),delete r.block.partialJson,n.push({type:`toolcall_end`,contentIndex:r.contentIndex,toolCall:r.block,partial:t}),l.delete(i.output_index)):e.type===`custom_tool_call`&&r?.type===`toolCall`&&r.block.customInput&&(p(r,x(r.block,e.input??b(r.block),!0)),e.namespace!==void 0&&(r.block.namespace=e.namespace),delete r.block.customInput,n.push({type:`toolcall_end`,contentIndex:r.contentIndex,toolCall:r.block,partial:t}),l.delete(i.output_index))}else if(i.type===`response.completed`||i.type===`response.incomplete`)v(i.response);else if(i.type===`error`)throw Error(`Error Code ${i.code}: ${i.message}`||`Unknown error`);else if(i.type===`response.failed`){c=!0,t.rawStopReason=i.response?.status;let e=i.response?.error,n=i.response?.incomplete_details,r=e?`${e.code||`unknown`}: ${e.message||`no message`}`:n?.reason?`incomplete: ${n.reason}`:`Unknown error (no error details in response)`;throw Error(r)}if(!c)throw Error(`OpenAI Responses stream ended before a terminal response event`);if(t.stopReason===`toolUse`)for(let e of t.content){if(e.type!==`toolCall`)continue;let t=e;if(t.partialJson!==void 0||t.customInput!==void 0)throw Error(`OpenAI Responses stream completed with an unfinished tool call: ${t.name} (${t.id})`)}}function C(e,t){if(!e)return{stopReason:`stop`};switch(e){case`completed`:return{stopReason:`stop`};case`incomplete`:return t===`max_output_tokens`?{stopReason:`length`}:{stopReason:`error`,errorMessage:t?`Response incomplete: ${t}`:`Response incomplete without a provider reason`};case`failed`:case`cancelled`:return{stopReason:`error`};case`in_progress`:case`queued`:return{stopReason:`stop`};default:throw Error(`Unhandled stop reason: ${e}`)}}export{y as n,S as r,v as t};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Qn as t,Wi as n,Xi as r,aa as i,ba as a,er as o,fa as s,ha as c,ia as l,la as u,ma as d,oa as f,pt as p,ua as m,ya as ee}from"./Effect-Bibd7o64.js";import{Ci as h,Gr as te,Ir as ne,Ji as re,Jr as g,Mi as ie,Qi as _,Rr as ae,Ti as oe,Vi as se,Vr as v,Wi as y,Wr as b,di as x,ei as S,fi as ce,fr as le,ha as C,hi as ue,i as w,ii as T,ki as E,ma as D,mi as O,na as k,ni as de,oa as A,pa as fe,qr as j,ri as M,ti as pe,ua as N,xi as me,zr as P}from"./extension-hook-C8RQgls9.js";import{$ as he,Q as ge,X as _e,Y as ve,Z as ye,_ as be,a as xe,at as F,b as I,c as Se,ct as Ce,dt as we,et as Te,g as Ee,h as De,i as Oe,it as ke,l as Ae,lt as je,m as Me,nt as Ne,o as Pe,ot as Fe,p as Ie,r as Le,rt as Re,s as ze,st as Be,tt as L,ut as Ve,v as He,x as R,y as Ue}from"./index-26gTYfVj.js";import"./extensions-DYjwCmO5.js";var We=(e,t)=>{if(e.length<=t)return e;let n=Math.max(1,Math.floor((t-1)/2));return`${e.slice(0,n)}…${e.slice(-(t-n-1))}`},Ge=(e,t)=>e.length<=t?e:`${e.slice(0,t-1)}…`,Ke=e=>e.map(([e,t])=>({label:e,value:t}));function qe(e,t){let{record:n}=e,r=Math.max(0,n.expiresAt-t);return[[`Agent`,`${n.requester.displayName} · ${n.requester.agentId??`none`}`],[`Session`,n.requester.sessionId??`none`],[`Requester`,n.requester.principalId],[`Request`,`${n.module}.${n.operation} · ${n.access}`],[`Input`,`${n.description.inputBytes.toLocaleString()} bytes · SHA-256 ${n.description.inputSha256.slice(0,8)}…${n.description.inputSha256.slice(-6)}`],[`Expires`,`in ${String(Math.floor(r/36e5))} h ${String(Math.floor(r%36e5/6e4))} m`],[`Record`,`${n.recordId} · revision ${String(n.revision)}`]]}function Je(e){return[`Undo`,e.record.reversibility===`irreversible-external`?`Can't be undone`:`Can be undone`]}function Ye(e,t){let{record:n}=e;return{content:{title:`Allow ${n.module} · ${n.operation}?`,summary:`${n.requester.displayName} wants to use a connected tool.`,facts:[{label:`Effect`,value:(n.access===`write`?`Changes data in Fungi`:`Changes things outside Fungi`)+(n.reversibility===`irreversible-external`?` · can't be undone`:``)}],details:Ke([Je(e),...qe(e,t)])}}}function Xe(e,t,n,r,i){let a=t.prefix?.join(` `),o=a!==void 0&&t.alwaysAllowUnavailableReason===void 0,s=t.command,c=`Allow \`${s}\`?`.length<=n?`Allow \`${s}\`?`:`Allow this command?`,l=t.cwd===r?`~`:t.cwd.startsWith(`${r}/`)?`~${t.cwd.slice(r.length)}`:t.cwd,u=Math.max(8,(n-8)*2-2),d=t.justification.length<=u?`“${t.justification}”`:`“${t.justification.slice(0,u-1)}…”`,f=[[`Folder`,We(l,Math.max(8,n-10))],[`Why`,d]];t.kind===`extension-install`&&f.push([`Note`,`Extensions run inside Fungi with access to every Agent.`]),o&&t.alwaysAllowCoverage!==void 0&&f.push([`Scope`,Ge(t.alwaysAllowCoverage,Math.max(8,n-12))]),!o&&t.warning!==void 0&&f.push([`Warning`,t.warning]);let p=o?`Always allow “${We(a,Math.max(8,n-5-32))}” in this project…`:void 0,m=[[`Command`,s]];return t.argv!==void 0&&m.push([`Arguments`,JSON.stringify(t.argv)]),m.push([`Folder`,t.cwd],[`Runs`,`Outside the sandbox, as you`],Je(e)),!o&&t.alwaysAllowUnavailableReason!==void 0?m.push([`Rule`,t.alwaysAllowUnavailableReason]):t.form===`shell`?m.push([`Rule`,`Shell command: no Always-allow rule can match it.`]):o&&(m.push([`Rule`,`“${a}” would match \`${a} …\` in this project`]),t.alwaysAllowCoverage!==void 0&&m.push([`Coverage`,t.alwaysAllowCoverage]),t.risk!==void 0&&m.push([`Risk`,t.risk.detail])),!o&&t.warning!==void 0&&m.push([`Warning`,t.warning]),m.push(...qe(e,i)),{content:{title:c,body:c===`Allow this command?`?s:void 0,bodyLabel:c===`Allow this command?`?`Command`:void 0,summary:`${e.record.requester.displayName} wants to run this outside the sandbox, as you.`,facts:Ke(f),details:Ke(m)},always:p===void 0?void 0:Ge(p,Math.max(12,n-5)),confirmation:o?{title:`Always allow “${a}” in this project?`,body:Ge(t.alwaysAllowCoverage??`Any Workspace Agent here can then run \`${a} …\` without asking.`,Math.max(12,(n-8)*2-2))}:void 0,confirmWarning:o?t.risk?.summary:void 0,confirmYes:o?`Always allow “${a}” and run it now`:void 0}}function Ze(e,t,n){let r=Math.min(n.width,60);return t===void 0?Ye(e,n.now):Xe(e,t,r,n.home,n.now)}function Qe(e,t){switch(e){case`stale-revision`:case`already-answered`:return`This request changed. Look again before answering.`;case`expired`:return`This request expired. Nothing ran.`;case`not-eligible`:if(t===`always-allow`)return`Always allow isn't available for this command. Approve once or deny.`}return`Couldn't answer (${e}). Nothing ran.`}var $e=`Couldn't send your answer. It may not have been recorded.`;async function et(e,t){let{view:n,source:r}=t,i=Ze(n,r.review,{width:t.width,home:t.home,now:t.now}),a=n.record;try{let n,o,s=!1;for(;n===void 0;){let c=await e.prompt({type:`decision`,message:i.content.title,summary:s?`Automatic approval is on for this family.`:i.content.summary,facts:i.content.facts?.map(e=>({...e})),body:i.content.body,bodyLabel:i.content.bodyLabel,details:i.content.details?.map(e=>({...e})),options:[{value:`approve`,label:`Approve once`},...i.always===void 0?[]:[{value:`always`,label:i.always}],...r.family===void 0||s?[]:[{value:`family`,label:r.family.label}],{value:`deny`,label:`Deny`}],other:{label:`Deny and say why…`,placeholder:`A short reason for the Agent (optional)`,maxLength:t.noteLimit,blank:`deny`}});if(!t.stillCurrent())return{kind:`abandoned`};if(c.text!==void 0)o=c.text.trim()||void 0,n=`deny`;else if(c.selected[0]===`always`){let r=i.confirmation,a=await e.prompt({type:`decision`,message:r?.title??i.content.title,summary:i.confirmWarning,body:r?.body,options:[{value:`back`,label:`Back`},{value:`always-allow`,label:i.confirmYes??`Always allow`}],escape:`back`});if(!t.stillCurrent())return{kind:`abandoned`};a.selected[0]===`always-allow`&&(n=`always-allow`)}else if(c.selected[0]===`family`&&r.family!==void 0){let n=await e.prompt({type:`decision`,message:`${r.family.label}?`,summary:`Later ${a.module} requests that ${a.access===`write`?`change data in Fungi`:`reach outside Fungi`} will run without asking.`,options:[{value:`back`,label:`Back`},{value:`family`,label:r.family.label}],escape:`back`});if(!t.stillCurrent()||n.selected[0]===`family`&&(s=await r.family.enable(),!t.stillCurrent()))return{kind:`abandoned`}}else c.selected[0]===`approve`?n=`approve`:c.selected[0]===`deny`&&(n=`deny`)}let c={recordId:a.recordId,decision:n,expectedRevision:a.revision},l=await r.answer(o===void 0?c:{...c,denialNote:o});return t.stillCurrent()?l.kind===`refused`?{kind:`refused`,message:Qe(l.reason??`unknown`,n)}:{kind:`answered`}:{kind:`abandoned`}}catch(n){return e.signal.aborted?{kind:`abandoned`}:(t.onFailure(n),{kind:`refused`,message:$e})}}var z=e(we(),1),tt=()=>void 0,nt=()=>()=>void 0;function rt(e){let{source:t,store:n,enabled:r,home:i,width:a,noteLimit:o,onFailure:s}=e,c=(0,z.useRef)(s);c.current=s;let l=(0,z.useRef)({home:i,width:a,noteLimit:o});l.current={home:i,width:a,noteLimit:o};let u=(0,z.useSyncExternalStore)(t?.subscribe??nt,t?.snapshot??tt),d=(0,z.useRef)(u);d.current=u;let f=u===void 0?void 0:JSON.stringify([`approval`,u.record.recordId,u.record.revision,u.canAnswer]);(0,z.useEffect)(()=>{let e=d.current;if(!r||t===void 0||e===void 0||!e.canAnswer||f===void 0)return;let{home:i,width:a,noteLimit:o}=l.current,s=He({title:`Approval`}),u=s.begin(),p=()=>{let n=t.snapshot();return!u.interaction.signal.aborted&&n?.record.recordId===e.record.recordId&&n.record.revision===e.record.revision&&n.canAnswer},m=n.awaiting.add({key:f,kind:`approval`,arrivedAt:Date.now(),host:s});return et(u.interaction,{view:e,source:t,home:i,width:a,now:Date.now(),noteLimit:o,stillCurrent:p,onFailure:e=>{c.current(e)}}).then(e=>{e.kind===`refused`?u.settle({status:`failed`,message:e.message}):(m(),u.settle(e.kind===`answered`?{status:`handled`}:{status:`cancelled`}))}),()=>{m(),s.cancel()}},[t,f,r,n])}var B=je(),V=M.check(A(1),k(256)),it=b.check(y(1),_(2**53-1)),at=b.check(y(0),_(2**53-1)),ot=g([`write`,`external`]),st=T({module:S(V),access:ot}),ct=T({agentId:S(V)}),lt=T({principalId:V,agentId:S(V),sessionId:S(V),displayName:V}),ut=T({title:M.check(A(1),k(512)),inputBytes:b.check(y(0)),inputSha256:M.check(N(/^[a-f0-9]{64}$/))}),dt=T({kind:j(`pending_approval`),recordId:V,description:ut}),ft=g([`requested`,`pending`,`approved`,`claimed`,`applied`,`denied`,`expired`,`outcome_unknown`]),pt=g([`not-found`,`not-eligible`,`already-answered`,`stale-revision`,`expired`,`declined`,`fenced`,`not-granted`,`read-only`,`pending`,`in-flight`,`outcome-unknown`,`identity-conflict`]),mt=M.check(A(1),k(512),N(/^(?=.*\S)[^\p{Cc}\u2028\u2029]*$/u)),ht=P(T({kind:j(`artifact`),ref:M.check(N(/^sha256:[a-f0-9]{64}$/)),mediaType:j(`image/png`),bytes:b.check(y(1),_(5242880))})).check(k(4)),gt=T({recordId:V,requester:lt,module:V,operation:V,access:ot,description:ut,evidence:C(ht),authorityFence:V,reversibility:g([`reversible`,`irreversible-external`]),state:ft,by:S(x([T({kind:j(`human`),memberId:V}),T({kind:j(`policy`)})])),reason:S(pt),denialNote:C(mt),requestedAt:at,expiresAt:at,updatedAt:at,revision:it}),_t=T({record:gt,canAnswer:v,canSetAutoApprove:v});T({state:C(ft),cursor:C(V),limit:C(b.check(y(1),_(100)))}),T({recordId:V}),T({recordId:V,decision:g([`approve`,`deny`]),expectedRevision:it,denialNote:C(mt)});var vt=T({scope:ct,family:st,enabled:v}),yt=T({kind:j(`refused`),reason:pt,denialNote:C(mt)});h(E(gt),{onExcessProperty:`error`}),oe(E(gt)),h(T({record_json:M})),h(E(te)),oe(E(te)),h(T({input_json:M,output_json:S(M)}));var bt=yt,xt=T({items:P(_t),nextCursor:S(M)}),St=x([T({kind:j(`answered`),view:_t}),bt]),Ct=x([T({kind:j(`updated`),rule:vt}),bt]),H=e=>Re(ee().transform(t=>h(e,{onExcessProperty:`error`})(t))),wt=Be(`approvals`,1,i(()=>ke({list:F(H(xt)),get:F(H(S(_t))),answer:F(H(St)),setAutoApprove:F(H(Ct))}))),U=ue(e=>Ue.safeParse(e).success,{representation:{id:`@fungi.computer/whistle/catalog-step/v1`,payload:null}});p(()=>ne());var W=M.pipe(O(A(1)),O(k(4e3)),O(N(/\S/u,{message:`Goal objective is blank`}))),Tt=M.pipe(O(A(1)),O(k(1e3)),O(N(/\S/u))),Et=M.pipe(O(A(1)),O(k(256))),Dt=b.check(y(0)),Ot=T({kind:g([`person`,`blocked`,`stalled`,`cancelled`,`failed`,`no-terminal`]),detail:S(M)}),G=T({revision:M,objective:W,state:g([`active`,`paused`]),startedAt:Dt,pauseCause:S(Ot)}),kt=T({sequence:b.check(se(0)),objective:W,outcome:g([`achieved`,`cleared`]),reason:S(Tt),endedAt:Dt,afterSequence:b.check(y(0))}),At=x([T({action:j(`set`),objective:W,requestId:Et,expectedRevision:D(S(M)),confirmed:D(v)}),T({action:g([`pause`,`resume`,`replace`,`clear`,`clear-ask`]),confirmed:D(v)}),T({})]),jt=T({goal:S(G),ended:P(kt).check(k(16)),omitted:b.check(y(0))}),Mt={id:w.make(`botanical-session-goal`),commands:{goal:{scope:`session`,input:At,output:U},pause:{scope:`session`,input:T({}),output:G},resume:{scope:`session`,input:T({}),output:G},clear:{scope:`session`,input:T({}),output:T({})},set:{scope:`session`,input:T({objective:W,expectedRevision:S(M),requestId:Et,adoptCommandId:C(Et)}),output:T({goal:G,accepted:T({status:j(`accepted`),commandId:M})})}},projection:{schema:jt}},K=e=>{let t=e.replace(/\s+/gu,` `).trim();return t.length<=80?t:`${t.slice(0,79)}…`},Nt=e=>{let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`};function Pt(e){let t=e.state===`active`,n=t?`Pursuing goal since ${Nt(e.startedAt)}`:`Goal paused (/goal resume)`,r=!t&&e.pauseCause?.detail!=null?[K(e.pauseCause.detail)]:[],i={id:`goal`,title:[n,K(e.objective),...r].join(` · `),tone:t?`running`:`muted`,actions:[{id:`goal`,label:t?`Pause goal`:`Resume goal`,input:{action:t?`pause`:`resume`}}]};return K(e.objective)===e.objective?i:{...i,detail:e.objective.slice(0,1024)}}function Ft(e){let t={id:`goal-ended`,title:`${e.outcome===`achieved`?`Goal achieved`:`Goal cleared`} · ${K(e.objective)}`,tone:e.outcome===`achieved`?`settled`:`muted`},n=e.reason===null?t:{...t,detail:e.reason};return{id:String(e.sequence),sequence:e.sequence,at:e.endedAt,commandId:null,afterSequence:e.afterSequence,rows:[n]}}var It=I(Mt,{promptPresentation:`footer`,contribute:e=>{if(e.status!==`running`||e.value===null)return{chips:[],panel:[],timeline:{cells:[],omitted:0},waiting:null};let{goal:t,ended:n,omitted:r}=e.value;return{chips:[],panel:t===null?[]:[Pt(t)],timeline:{cells:n.map(Ft),omitted:r},waiting:null}}}),q=M.pipe(O(A(1)),O(k(262144))),Lt=M.pipe(O(A(1)),O(k(200))),Rt=T({expression:M.pipe(O(A(1)),O(k(256))),timeZone:M.pipe(O(A(1)),O(k(128)))}),J=T({loopId:M,origin:g([`human`,`model`]),expiresAt:S(b),prompt:q,mode:g([`self_paced`,`fixed_interval`]),cron:S(Rt),state:g([`active`,`paused`,`finished`,`failed`,`cancelled`]),commandId:M,reason:S(M),nextDueAt:S(b),lastError:S(M),consecutiveFailures:b.pipe(O(y(0)))}),zt=T({loop:J,accepted:T({status:j(`accepted`),commandId:M})}),Bt=x([T({action:j(`start`),text:q,requestId:Lt}),T({action:g([`status`,`pause`,`resume`,`stop`,`stop-ask`,`new`]),confirmed:D(v)}),T({})]),Vt=T({loop:J}),Ht={id:w.make(`botanical-session-loop`),commands:{loop:{scope:`session`,input:Bt,output:U},startSelfPaced:{scope:`session`,input:T({prompt:q,requestId:Lt}),output:zt},startFixedInterval:{scope:`session`,input:T({prompt:q,requestId:Lt,...Rt.fields}),output:zt},pause:{scope:`session`,input:T({}),output:J},resume:{scope:`session`,input:T({}),output:J},stop:{scope:`session`,input:T({}),output:J}},projection:{schema:Vt}},Ut=e=>{let t=e.replace(/\s+/gu,` `).trim();return t.length<=60?t:`${t.slice(0,59)}…`},Wt=e=>e.state===`failed`?`error`:e.state===`active`?`running`:e.state===`paused`?`muted`:`settled`,Gt=e=>new Intl.DateTimeFormat(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`,timeZoneName:`short`}).format(e),Kt=I(Ht,{promptPresentation:`footer`,contribute:e=>{if(e.status!==`running`||e.value===null)return{chips:[],panel:[],timeline:{cells:[],omitted:0},waiting:null};let{loop:t}=e.value,n=t.state===`active`&&t.nextDueAt!==null;return{chips:t.state!==`active`&&t.state!==`paused`?[]:[{id:`loop`,order:2,row:{id:`loop`,title:`Loop ${t.mode===`self_paced`?`self-paced`:`fixed`}${n?` (waiting)`:``}`,tone:Wt(t)}}],panel:[{id:`loop`,title:`Loop · ${t.state} · ${t.mode===`self_paced`?`self-paced`:`${t.cron?.expression??`fixed`} ${t.cron?.timeZone??``}`}${t.nextDueAt===null?``:` · Next ${Gt(t.nextDueAt)}`} · ${Ut(t.prompt)}`,detail:[t.reason,t.prompt].filter(e=>e!==null).join(`
|
|
2
|
-
`).slice(0,1024),tone:Wt(t)},...t.lastError===null?[]:[{id:`error`,title:t.lastError.slice(0,4096),tone:`error`}]],timeline:{cells:[],omitted:0},waiting:n?{summary:`Waiting until ${Gt(t.nextDueAt)}`,cancel:{id:`loop`,label:`stop loop`,input:{action:`stop-ask`}}}:null}}});function qt(e){return T({nextSequence:b.check(se(0)),omitted:b.check(y(0)),events:P(T({id:M,sequence:b,at:b,commandId:S(M),event:e}))})}new TextEncoder;var Jt=T({explanation:C(M.pipe(O(k(2e3)))),steps:P(T({step:M.pipe(O(A(1)),O(k(500))),status:g([`pending`,`in_progress`,`completed`])})).pipe(O(k(50)))});Jt.pipe(O(fe(e=>e.steps.filter(e=>e.status===`in_progress`).length<=1||`At most one plan step may be in progress`)));function Yt(e){return e.steps.some(e=>e.status!==`completed`)}var Xt=T({plan:Jt,history:qt(Jt)}),Zt=x([T({action:j(`clear`)}),T({})]),Qt={id:w.make(`botanical-session-plan`),commands:{plan:{scope:`session`,input:Zt,output:U}},projection:{schema:Xt}},$t=e=>{let t=e.steps.findIndex(e=>e.status===`in_progress`),n=e.steps.filter(e=>e.status===`completed`).length;return{title:(t<0?e.steps.find(e=>e.status===`pending`):e.steps[t])?.step??`Plan complete`,detail:`${String(t<0?n:t+1)}/${String(e.steps.length)}`}},en=e=>e.steps.map((e,t)=>({id:String(t),title:e.step,tone:e.status===`completed`?`settled`:e.status===`in_progress`?`running`:`muted`})),tn=I(Qt,{contribute:e=>({chips:[],panel:e.status!==`running`||e.value===null||!Yt(e.value.plan)?[]:[{id:`plan`,...$t(e.value.plan),actions:[{id:`plan`,label:`Clear plan`,input:{action:`clear`}}],inspection:{commandId:`plan`,title:`Plan`,rows:en(e.value.plan)}}],timeline:{cells:[],omitted:0},waiting:null})}),Y=e=>M.check(A(1),k(e),N(/\S/u)),nn=T({id:Y(32).check(N(/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/u)),header:Y(12),question:Y(1e3),options:P(T({label:Y(60),description:Y(300)})).check(A(2),k(4),fe(e=>new Set(e.map(e=>e.label)).size===e.length||`Option labels must be unique`,{representation:{id:`botanical/ask/unique-option-labels`,payload:null}})),multiple:C(v)}),rn=P(nn).check(A(1),k(4),fe(e=>new Set(e.map(e=>e.id)).size===e.length||`Question ids must be unique`,{representation:{id:`botanical/ask/unique-question-ids`,payload:null}})),an=T({askId:M,waitingOn:C(le),questions:rn,status:g([`live`,`parked`]),createdAt:pe,expiresAt:S(pe)}),on=T({asks:P(an).check(k(4))}),sn=Y(256),X=de(nn.fields.id,T({selected:P(Y(60)).check(k(4)),text:C(M.check(k(4e3)))})),Z=T({askId:Y(256),requestId:sn,answers:X}),cn=T({askId:Y(256),requestId:sn,note:C(M.check(k(4e3)))}),ln=g([`answered`,`declined`,`withdrawn`,`expired`,`cancelled`,`undeliverable`]),un=x([T({result:j(`accepted`),via:g([`in_turn`,`follow_up`]),commandId:C(Y(256))}),T({result:j(`closed`),status:ln}),T({result:j(`not_found`)})]),dn=T({result:j(`refused`),reason:j(`not_sender`)}),fn=x([un,dn]),pn=T({kind:j(`agent`),agentId:Y(256)}),mn=x([T({result:j(`escalated`),to:j(`person`)}),T({result:j(`closed`),status:ln}),T({result:j(`not_found`)}),dn]),hn=T({askId:Y(256)}),gn={askId:Z.fields.askId,requestId:sn,index:pe.check(re(),ie({minimum:0,maximum:3})),answers:X},_n=x([T({stage:j(`decision`),...gn,answer:X.value}),T({askId:Z.fields.askId}),T({})]),vn={id:w.make(`botanical-session-question`),commands:{answerFlow:{scope:`session`,input:_n,output:U},answer:{scope:`session`,input:Z,output:un},answerAgent:{scope:`session`,input:Z,output:T({result:fn,answeredBy:pn})},escalateAgent:{scope:`session`,input:hn,output:mn},decline:{scope:`session`,input:cn,output:un},list:{scope:`session`,input:T({}),output:on}},projection:{schema:on}},yn=I(vn,{contribute:e=>({chips:[],panel:e.status!==`running`||e.value===null?[]:e.value.asks.map(e=>{let t=e.questions[0],n=`${t?.question??`Question`}${e.questions.length>1?` (+${String(e.questions.length-1)} more)`:``}`,r=t?.options.map(e=>e.label).join(` · `)??``;return e.waitingOn===void 0?{id:e.askId,title:n,detail:r,tone:`attention`,actions:[{id:`answerFlow`,label:`Answer`,input:{askId:e.askId},awaiting:`question`}]}:{id:e.askId,title:`waiting on ${e.waitingOn.name} · ${n}`,detail:r,tone:`muted`,actions:[{id:`answerFlow`,label:`Answer`,input:{askId:e.askId}}]}}),timeline:{cells:[],omitted:0},waiting:null})}),Q=M.check(A(1),k(256)),bn=g([`working`,`waiting_on_agent`,`needs_you`,`idle`,`failed`,`unavailable`]),xn=T({agentId:Q,name:Q,sessionId:S(Q),state:bn,attention:C(M.check(k(200))),waitingOn:C(Q),ask:C(T({askId:Q,questions:rn}))}),Sn=T({agents:P(xn).check(k(16)),more:b.check(y(0)),expanded:v}),Cn={agentId:Q,sessionId:Q},wn=x(_n.members.map(e=>T({...e.fields,...Cn}))),Tn={agents:{scope:`session`,input:T({}),output:U},answerChild:{scope:`session`,input:wn,output:U}},En={id:w.make(`botanical-session-subagents`),commands:Tn,projection:{schema:Sn}},$={working:{label:`working`,tone:`running`,status:`info`},waiting_on_agent:{label:`waiting`,tone:`muted`,status:`neutral`},needs_you:{label:`needs you`,tone:`attention`,status:`warning`},idle:{label:`idle`,tone:`settled`,status:`success`},failed:{label:`failed`,tone:`error`,status:`error`},unavailable:{label:`unavailable`,tone:`muted`,status:`neutral`}};function Dn(e){return e.state===`waiting_on_agent`?`waiting on ${e.waitingOn??`its parent`}`:$[e.state].label}function On(e){let t=$[e.state],n={id:e.agentId,title:`${e.name} · ${Dn(e)}`,tone:t.tone,status:{label:Dn(e),tone:t.status}},r=e.ask?.questions[0]?.question??e.attention,i=r===void 0?n:{...n,detail:r.slice(0,200)};if(e.sessionId===null)return{...i,detail:e.attention??`not messaged yet`};let a={...i,open:{params:[{key:`agent`,value:e.agentId},{key:`session`,value:e.sessionId}]}};if(e.ask===void 0)return a;let o={id:`answerChild`,label:`Answer`,input:{agentId:e.agentId,sessionId:e.sessionId,askId:e.ask.askId}};return{...a,actions:[e.state===`needs_you`?{...o,awaiting:`question`}:o]}}function kn(e){let t=t=>e.agents.filter(e=>e.state===t).length,n=e.agents.filter(e=>e.state===`waiting_on_agent`),r=[...new Set(n.map(e=>e.waitingOn??`its parent`))].map(e=>`${String(n.filter(t=>(t.waitingOn??`its parent`)===e).length)} waiting on ${e}`),i=[...[`working`].map(e=>[e,t(e)]).filter(([,e])=>e>0).map(([e,t])=>`${String(t)} ${$[e].label}`),...r,...[`needs_you`,`failed`,`unavailable`].map(e=>[e,t(e)]).filter(([,e])=>e>0).map(([e,t])=>`${String(t)} ${$[e].label}`)],a=e.agents.length+e.more,o=t(`needs_you`)>0?`attention`:t(`failed`)>0?`error`:t(`working`)>0?`running`:`muted`;return{id:`summary`,title:[`${String(a)} sub-agent${a===1?``:`s`}`,...i,`/agents shows them`].join(` · `),tone:o}}var An=I(En,{contribute:e=>({chips:[],panel:e.status!==`running`||e.value===null?[]:e.value.agents.length>0&&!e.value.expanded?[kn(e.value)]:[...e.value.agents.map(On),...e.value.more===0?[]:[{id:`more`,title:`${String(e.value.more)} more sub-agent${e.value.more===1?``:`s`}`,tone:`muted`}]],timeline:{cells:[],omitted:0},waiting:null})});function jn(e,t){if(e===null||!URL.canParse(t))return!1;let n=new URL(t);return n.protocol!==`https:`||n.hash!==`#team-billing`?!1:(e.openTeamBilling().catch(t=>(console.error(`Chat Billing navigation failed`,t),e.showToast({message:`Billing could not be opened. Please try again.`,tone:`error`}))),!0)}function Mn(e,t){e!==null&&e.showToast({message:t.message,tone:t.variant}).catch(e=>{console.error(`Chat toast failed`,e)})}function Nn(e){if(e.name!==`execute`||e.status!==`completed`)return;let n=e.result?.content;if(n?.length!==1||n[0]?.type!==`text`)return;let r=me(E(ce))(n[0].text);if(t(r))return;let i=be.safeParse(r.value);return i.success?i.data.file:void 0}function Pn({item:e,ui:t}){let n=Nn(e),[r,i]=(0,z.useState)(!1),[a,o]=(0,z.useState)(!1);if(!n)return null;let s=async()=>{i(!0),o(!1);try{await t.openNavigation(n)}catch(e){console.error(`Chat file navigation failed`,e),o(!0)}finally{i(!1)}};return(0,B.jsxs)(`div`,{className:`px-3 py-2`,children:[(0,B.jsx)(R,{variant:`ghost`,size:`sm`,disabled:r,onClick:()=>void s(),type:`button`,children:r?`Opening file…`:`Open ${n.path} in Inkcap`}),a?(0,B.jsx)(`p`,{role:`alert`,children:`The file could not be opened. Try again.`}):null]})}var Fn=x([T({kind:j(`compose`),text:M.pipe(O(A(1)),O(k(2e3)))}),T({kind:j(`navigate`),params:P(T({key:M.pipe(O(A(1)),O(k(64))),value:M.pipe(O(k(1024)))})).pipe(O(k(16)))})]);x([T({role:M.pipe(O(A(1)),O(k(80))),intent:Fn}),T({appId:M.pipe(O(A(1)),O(k(128))),intent:Fn})],{mode:`oneOf`});var In=d({displayName:c().min(1).max(80).nullable()}).nullable(),Ln=Be(`apps.open`,1,i(()=>ke({open:Fe,role:F(Re(In))}))),Rn=(e,t)=>e.require(Ln).open(t);Be(`apps.call`,1,i(()=>ke({call:F(Re(ee().transform(e=>Ve(e))))})));var zn=d({kind:f(`generated`),file:d({computerId:c().min(1),path:c().min(1)}),format:n([`png`,`jpeg`,`gif`,`webp`,`mp4`]),width:u(),height:u(),bytes:u(),costMilliunits:u(),receipt:c()}),Bn=m({printId:c().min(1).max(256),destination:d({computerId:c().min(1),path:c().min(1)}),format:n([`png`,`jpeg`,`gif`,`webp`])}),Vn=l(),Hn=r(Vn).or(s(c(),Vn).transform(e=>Object.values(e)));function Un(e,t){let n=Bn.safeParse(e);if(n.success)return[n.data];if(t>=3)return[];let r=Hn.safeParse(e);return r.success?r.data.flatMap(e=>Un(e,t+1)):[]}var Wn=Vn.transform(e=>Un(e,0)).pipe(r(Bn).min(1).max(8));function Gn(e,n){if(e.name!==`execute`||e.status!==`completed`)return;let r=e.result?.content??[],i=r.at(0);if(i?.type!==`text`||r.slice(1).some(e=>e.type!==`image`))return;let a=me(E(ce))(i.text);if(t(a))return;let o=n.safeParse(a.value);return o.success?o.data:void 0}function Kn(e){return Gn(e,Wn)!==void 0}function qn({printId:e,pictures:t,capabilities:n}){let[r,i]=(0,z.useState)(!1),[a,o]=(0,z.useState)(!1),s=async()=>{i(!0),o(!1);try{await Rn(n,{role:`media`,intent:{kind:`navigate`,params:[{key:`print`,value:e}]}})}catch(e){console.error(`Chat print navigation failed`,e),o(!0)}finally{i(!1)}};return(0,B.jsxs)(`div`,{className:`flex flex-col items-start gap-2 px-3 py-2`,children:[t.map((e,t)=>(0,B.jsx)(`img`,{alt:`Panel saved in Prints`,className:`max-w-full rounded-box`,src:`data:${e.mimeType};base64,${e.data}`,style:{maxHeight:320}},t)),(0,B.jsx)(R,{variant:`outline`,size:`sm`,disabled:r,onClick:()=>void s(),type:`button`,children:r?`Opening Prints…`:`Open in Prints`}),a?(0,B.jsx)(`p`,{role:`alert`,children:`Prints could not be opened. Try again.`}):null]})}function Jn({item:e,ui:t,capabilities:n}){let r=Gn(e,zn),i=Gn(e,Wn),[a,o]=(0,z.useState)(!1),[s,c]=(0,z.useState)(!1);if(i&&n){let t=(e.result?.content??[]).flatMap(e=>e.type===`image`?[e]:[]),r=t.length===i.length;return(0,B.jsx)(B.Fragment,{children:i.map((e,i)=>(0,B.jsx)(qn,{printId:e.printId,pictures:r?t.slice(i,i+1):i===0?t:[],capabilities:n},e.printId))})}if(!r)return null;let l=async()=>{o(!0),c(!1);try{await t.openNavigation(r.file)}catch(e){console.error(`Chat image navigation failed`,e),c(!0)}finally{o(!1)}};return(0,B.jsxs)(`div`,{className:`px-3 py-2`,children:[(0,B.jsx)(R,{variant:`ghost`,size:`sm`,disabled:a,onClick:()=>void l(),type:`button`,children:a?`Opening file…`:`Open ${r.file.path} in Inkcap`}),s?(0,B.jsx)(`p`,{role:`alert`,children:`The file could not be opened. Try again.`}):null]})}var Yn=me(E(dt),{onExcessProperty:`error`});function Xn(e){if(!(e.status!==`completed`||e.result?.isError))for(let t of e.result?.content??[]){if(t.type!==`text`)continue;let e=Yn(t.text);if(o(e))return e.value.recordId}}var Zn=(0,z.createContext)(void 0);function Qn(){return(0,z.useContext)(Zn)}var $n=`Couldn't send your answer. It may not have been recorded.`;function er({recordId:e,attempt:t,capabilities:n,agentId:r,publish:i}){let a=De(),[o,s]=(0,z.useState)(),c=(0,z.useRef)(void 0),l=(0,z.useRef)(new Set),u=(0,z.useCallback)(t=>{c.current=t??void 0,s(t),i(e,{view:t,failed:!1});for(let e of l.current)e()},[i,e]);(0,z.useEffect)(()=>{c.current=void 0,s(void 0)},[n]),(0,z.useEffect)(()=>{let t=!0;async function r(){try{let r=await n.require(wt).get({recordId:e});t&&u(r)}catch(n){console.warn(`Grove could not read the approval`,n),t&&i(e,{view:null,failed:!0})}}return r(),()=>{t=!1}},[n,e,t,u,i]);let d=o?.canAnswer===!0&&o.record.state===`pending`,f=o?.canSetAutoApprove===!0,p=o?.record.module,m=o?.record.access;return rt({source:(0,z.useMemo)(()=>{if(d)return{snapshot:()=>c.current,subscribe:e=>(l.current.add(e),()=>{l.current.delete(e)}),answer:async e=>{let t=n.require(wt),r=e.decision===`always-allow`?void 0:{recordId:e.recordId,decision:e.decision,expectedRevision:e.expectedRevision};if(r===void 0)return{kind:`refused`,reason:`not-eligible`};let i=await t.answer(e.denialNote===void 0?r:{...r,denialNote:e.denialNote});return i.kind===`answered`&&u(i.view),i},family:!f||p===void 0||m===void 0?void 0:{label:`Always approve this family`,enable:async()=>(await n.require(wt).setAutoApprove({scope:{agentId:r},family:{module:p,access:m},enabled:!0})).kind===`updated`}}},[d,n,r,f,p,m,u]),store:a,enabled:!0,home:``,width:72,noteLimit:512,onFailure:tr}),null}function tr(e){console.warn($n,e)}function nr({capabilities:e,agentId:t,children:n}){let r=Ee(),i=(0,z.useMemo)(()=>{let e=new Set;for(let t of[...r.settled,...r.tail])if(t.kind===`tool_group`)for(let n of t.tools){let t=Xn(n);t!==void 0&&e.add(t)}return[...e]},[r.settled,r.tail]),[a,o]=(0,z.useState)(new Map),[s,c]=(0,z.useState)(new Map),l=(0,z.useCallback)((e,t)=>{o(n=>new Map(n).set(e,t))},[]),u=(0,z.useMemo)(()=>({entry:e=>a.get(e),refresh:e=>{c(t=>new Map(t).set(e,(t.get(e)??0)+1))},agentId:t}),[a,t]);return(0,B.jsxs)(Zn.Provider,{value:e===void 0?void 0:u,children:[e===void 0?null:i.map(n=>(0,B.jsx)(er,{recordId:n,attempt:s.get(n)??0,capabilities:e,agentId:t,publish:l},n)),n]})}var rr={requested:`Approval requested.`,pending:`Pending approval.`,approved:`Approved. Waiting to run.`,applied:`Done.`,denied:`Denied.`,expired:`Expired. Nothing ran.`,claimed:`Dispatch in progress.`,outcome_unknown:`Outcome unknown. Check before trying again.`};function ir({view:e,scope:t,onRefresh:n,onAnswer:r}){let{record:i}=e,a=e.canAnswer&&i.state===`pending`;return(0,B.jsxs)(_e,{role:`group`,"aria-label":`Approval request`,density:`compact`,children:[(0,B.jsxs)(he,{children:[(0,B.jsxs)(Te,{children:[a?`Allow `:``,i.module,` · `,i.operation,a?`?`:``]}),(0,B.jsxs)(`p`,{children:[i.requester.displayName,` wants to use a connected tool.`]})]}),(0,B.jsxs)(ye,{className:`min-w-0 space-y-2`,children:[(0,B.jsxs)(`p`,{children:[`Effect`,` `,i.access===`write`?`Changes data in Fungi`:`Changes things outside Fungi`,i.reversibility===`irreversible-external`?` · can't be undone`:``]}),(0,B.jsx)(`p`,{role:`status`,children:a?`Waiting for your answer.`:rr[i.state]}),(0,B.jsxs)(`details`,{children:[(0,B.jsx)(`summary`,{children:`Details`}),(0,B.jsxs)(`p`,{children:[`Requester: `,i.requester.principalId]}),(0,B.jsxs)(`p`,{children:[`Agent: `,i.requester.displayName,` ·`,` `,i.requester.agentId??`none`]}),(0,B.jsxs)(`p`,{children:[`Session: `,i.requester.sessionId??`none`]}),(0,B.jsxs)(`p`,{children:[`Request: `,i.module,`.`,i.operation,` · `,i.access]}),(0,B.jsxs)(`p`,{children:[`Undo:`,` `,i.reversibility===`irreversible-external`?`Can't be undone`:`Can be undone`]}),(0,B.jsxs)(`p`,{children:[`Can answer: `,e.canAnswer?`Yes`:`No`]}),(0,B.jsxs)(`p`,{children:[`Can set auto-approve: `,e.canSetAutoApprove?`Yes`:`No`]}),i.by?.kind===`policy`?(0,B.jsx)(`p`,{children:`Auto-approved by policy`}):null,(0,B.jsx)(`p`,{children:i.description.title}),(0,B.jsxs)(`p`,{className:`break-all`,children:[`Input: `,i.description.inputBytes,` bytes · SHA-256`,` `,i.description.inputSha256]}),(0,B.jsxs)(`p`,{children:[`Record: `,i.recordId,` · revision `,i.revision]}),e.canSetAutoApprove?(0,B.jsxs)(`p`,{children:[`Policy scope:`,` `,t.agentId===null?`whole home`:`agent ${t.agentId}`]}):null]})]}),(0,B.jsxs)(ge,{className:`flex flex-wrap gap-2`,children:[a?(0,B.jsx)(R,{variant:`outline`,onClick:r,children:`Answer`}):null,(0,B.jsx)(R,{variant:`ghost`,onClick:n,children:`Refresh approval`})]})]})}function ar({recordId:e}){let t=Qn(),n=De(),r=t?.entry(e);return t===void 0||r===void 0?null:r.failed?(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`p`,{role:`alert`,children:`Couldn't load this approval. Try again.`}),(0,B.jsx)(R,{variant:`ghost`,onClick:()=>{t.refresh(e)},children:`Refresh approval`})]}):r.view===null||r.view.record.state===`expired`?null:(0,B.jsx)(ir,{view:r.view,scope:{agentId:t.agentId},onRefresh:()=>{t.refresh(e)},onAnswer:()=>{n.awaiting.focus()}})}var or=(0,z.forwardRef)(function({heading:e,eyebrow:t,cover:n,action:r,children:i,className:a,...o},s){return(0,B.jsxs)(_e,{...o,className:L(`caps-game-share`,a),ref:s,children:[n?(0,B.jsx)(`div`,{className:`caps-game-share-cover`,children:n}):null,(0,B.jsxs)(he,{children:[t,(0,B.jsx)(`h3`,{className:`caps-game-share-heading`,children:e})]}),(0,B.jsx)(ye,{className:`gap-sm`,children:i}),(0,B.jsx)(ge,{children:(0,B.jsx)(R,{asChild:!0,variant:`primary`,className:`caps-game-share-action`,children:r})})]})});function sr(e){let t=0;return e.map(e=>{let n={...e,offset:t};return t+=e.text.length,n})}function cr({value:e,label:t,fieldLabel:n,displayValue:r,layout:i,title:a,tokens:o,className:s,...c}){let l=(0,z.useId)(),[u,d]=(0,z.useState)({kind:`ready`}),f=o?o.map(e=>e.text).join(``):e,p=async()=>{d(await navigator.clipboard.writeText(f).then(()=>({kind:`copied`}),e=>({kind:`failed`,cause:e})))};if(n!==void 0)return(0,B.jsxs)(`div`,{...c,className:L(`caps-copy-field-input`,s),children:[(0,B.jsx)(Pe,{htmlFor:l,children:n}),(0,B.jsxs)(xe,{children:[(0,B.jsx)(ze,{className:`caps-copy-field-control`,"aria-label":n,id:l,onFocus:e=>{e.currentTarget.select()},readOnly:!0,value:r??f}),(0,B.jsx)(R,{onClick:()=>void p(),size:`sm`,variant:`outline`,children:u.kind===`copied`?`Copied`:t??`Copy`})]}),u.kind===`failed`?(0,B.jsx)(`span`,{role:`status`,children:`Could not copy. Select the text to copy it.`}):null]});let m=u.kind===`copied`?`Copied`:u.kind===`failed`?`Copy failed`:t??`Copy`;return i===`block`?(0,B.jsxs)(`figure`,{...c,className:L(`caps-copy-field-block`,s),"data-state":u.kind,children:[(0,B.jsxs)(`figcaption`,{className:`caps-copy-field-header`,children:[(0,B.jsx)(`span`,{className:`caps-copy-field-title`,children:a}),(0,B.jsxs)(R,{onClick:()=>void p(),size:`sm`,variant:u.kind===`copied`?`ghost`:`outline`,children:[u.kind===`copied`?(0,B.jsx)(Ae,{"aria-hidden":`true`,size:15}):(0,B.jsx)(Se,{"aria-hidden":`true`,size:15}),m]}),(0,B.jsx)(ve,{role:`status`,children:u.kind===`copied`?`Copied to the clipboard`:u.kind===`failed`?`Could not copy. Select the code to copy it.`:``})]}),(0,B.jsx)(`pre`,{className:`caps-copy-field-code`,tabIndex:0,children:(0,B.jsx)(`code`,{children:o?sr(o).map(e=>(0,B.jsx)(`span`,{className:`caps-copy-field-token`,"data-kind":e.kind,children:e.text},e.offset)):f})})]}):(0,B.jsxs)(`div`,{...c,className:L(`caps-copy-field`,s),children:[(0,B.jsx)(`code`,{className:`caps-copy-field-value`,children:f}),(0,B.jsxs)(R,{"aria-label":`${m}: ${f}`,onClick:()=>void p(),size:`sm`,variant:`outline`,children:[u.kind===`copied`?(0,B.jsx)(Ae,{size:15}):(0,B.jsx)(Se,{size:15}),m]})]})}var lr=m({game:m({title:c().min(1),summary:c(),coverUrl:a().nullable(),shareUrl:a()})});function ur(e){let t=/(?:^|\n)\s*Share:\s*(https?:\/\/[^\s<>]+)/iu.exec(e);if(!t?.[1])return null;let n=t[1].replace(/[.,;!?]+$/u,``);if(!URL.canParse(n))return null;let r=new URL(n);return r.username||r.password||r.hash||r.protocol===`http:`&&![`localhost`,`127.0.0.1`].includes(r.hostname)?null:r.href}function dr(e){return ur(e)?e.split(`
|
|
3
|
-
`).filter(e=>!/^\s*Share:\s*/iu.test(e)).join(`
|
|
4
|
-
`).trim():e}function fr(e){let t=new URL(e),n=/^\/([a-z0-9]+(?:-[a-z0-9]+)*)\/?$/u.exec(t.pathname)?.[1];return!n||t.search?null:new URL(`/api/games/${n}`,t.origin)}function pr({reply:e,previewGame:t}){let n=ur(e),r=n?fr(n):null,{data:i}=Ce({queryKey:Ne.of(null,`game-share`,n),enabled:r!==null&&t===void 0,queryFn:async({signal:e})=>{if(!r)return null;let t=await fetch(r,{signal:e});if(!t.ok)return null;let i=lr.safeParse(await t.json());return i.success&&i.data.game.shareUrl===n?i.data.game:null}}),a=t??i;if(!n)return null;let o=new URL(n),s=`${o.host}${o.pathname.replace(/\/$/u,``)}`,c=a?.coverUrl&&r?t?a.coverUrl:new URL(`${r.pathname}/cover`,r.origin).href:null;return(0,B.jsxs)(or,{"data-game-share-card":`true`,"data-theme":`vishnu`,heading:a?.title??`Your game is ready`,eyebrow:(0,B.jsx)(Oe,{tone:`secondary`,variant:`quiet`,children:`Made with your Agent`}),cover:c?(0,B.jsx)(`img`,{alt:`A scene from ${a?.title??`your game`}`,src:c}):null,action:(0,B.jsx)(`a`,{href:n,rel:`noopener noreferrer`,target:`_blank`,children:`Play ↗`}),children:[a?.summary?(0,B.jsx)(`p`,{className:`text-sm`,children:a.summary}):null,(0,B.jsx)(cr,{displayValue:s,fieldLabel:`Share link`,label:`Copy link`,value:n})]})}var mr=[It,Kt,tn,yn,An],hr=e=>(0,B.jsx)(pr,{reply:e});function gr({prefill:e,onPrefilled:t}){let n=Me(),r=(0,z.useRef)(null);return(0,z.useEffect)(()=>{!e||r.current===e.requestId||(r.current=e.requestId,n.setDraft(e.text),t())},[n.setDraft,t,e]),null}function _r({session:e,draftIdentity:t,connection:n,commands:r,prefill:i=null,onPrefilled:a=()=>void 0,onOpen:o}){let s=n?.ui??null,c=n?.capabilities,l=(0,z.useCallback)(e=>jn(s,e),[s]),u=(0,z.useCallback)(e=>{let t=Xn(e);return t!==void 0&&c!==void 0?(0,B.jsx)(ar,{recordId:t},t):s?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Pn,{item:e,ui:s}),(0,B.jsx)(Jn,{item:e,ui:s,capabilities:c})]}):null},[s,c]),d=(0,z.useCallback)(e=>c!==void 0&&Kn(e),[c]),f=(0,z.useCallback)(e=>{Mn(s,e)},[s]);return(0,B.jsxs)(Ie,{session:e,draftIdentity:t,clients:mr,authorOf:ae,onToast:f,children:[(0,B.jsx)(gr,{prefill:i,onPrefilled:a}),(0,B.jsx)(nr,{capabilities:c,agentId:t.agentId,children:(0,B.jsx)(Le,{onLink:l,onOpen:o,composerActionVariant:`outline`,commands:r,renderAssistantAttachment:hr,formatAssistantText:dr,renderToolActions:u,claimsToolMedia:d})})]})}export{_r as ParakeetConversation};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Qn as t,Wi as n,aa as r,ca as i,er as a,ia as o,la as s,ma as c,pa as l,pt as u,va as d,ya as f}from"./Effect-BY0T-p9d.js";import{$i as p,Ai as m,Ar as h,Dr as ee,Er as g,Gi as _,Gr as te,Ir as v,Kr as y,Li as b,Lr as x,Ni as S,Nr as C,Or as w,Pr as ne,Ur as T,Vi as E,Wr as D,Yi as O,ei as k,fi as A,i as j,ia as M,ii as re,mi as ie,na as ae,qr as N,ra as P,ri as F,ti as oe,ui as se,vi as I,xi as ce}from"./extension-hook-CBuX_bUG.js";import{$ as le,J as ue,K as de,Q as L,X as fe,Y as pe,Z as me,_ as R,a as he,at as ge,c as _e,et as ve,g as ye,h as be,i as xe,it as Se,l as Ce,m as we,nt as z,o as Te,ot as Ee,p as De,q as Oe,r as ke,rt as Ae,s as je,tt as Me,v as B}from"./index-HgPChePI.js";import"./extensions-DEfvRHbZ.js";var V=y.check(O(1),_(256)),Ne=C.check(S(1),E(2**53-1)),Pe=C.check(S(0),E(2**53-1)),Fe=x([`write`,`external`]),Ie=N({module:T(V),access:Fe}),Le=N({agentId:T(V)}),Re=N({principalId:V,agentId:T(V),sessionId:T(V),displayName:V}),ze=N({title:y.check(O(1),_(512)),inputBytes:C.check(S(0)),inputSha256:y.check(p(/^[a-f0-9]{64}$/))}),Be=N({kind:v(`pending_approval`),recordId:V,description:ze}),Ve=x([`requested`,`pending`,`approved`,`claimed`,`applied`,`denied`,`expired`,`outcome_unknown`]),He=x([`not-found`,`not-eligible`,`already-answered`,`stale-revision`,`expired`,`declined`,`fenced`,`not-granted`,`read-only`,`pending`,`in-flight`,`outcome-unknown`,`identity-conflict`]),Ue=y.check(O(1),_(512),p(/^(?=.*\S)[^\p{Cc}\u2028\u2029]*$/u)),We=w(N({kind:v(`artifact`),ref:y.check(p(/^sha256:[a-f0-9]{64}$/)),mediaType:v(`image/png`),bytes:C.check(S(1),E(5242880))})).check(_(4)),Ge=N({recordId:V,requester:Re,module:V,operation:V,access:Fe,description:ze,evidence:M(We),authorityFence:V,reversibility:x([`reversible`,`irreversible-external`]),state:Ve,by:T(k([N({kind:v(`human`),memberId:V}),N({kind:v(`policy`)})])),reason:T(He),denialNote:M(Ue),requestedAt:Pe,expiresAt:Pe,updatedAt:Pe,revision:Ne}),Ke=N({record:Ge,canAnswer:h,canSetAutoApprove:h});N({state:M(Ve),cursor:M(V),limit:M(C.check(S(1),E(100)))}),N({recordId:V}),N({recordId:V,decision:x([`approve`,`deny`]),expectedRevision:Ne,denialNote:M(Ue)});var qe=N({scope:Le,family:Ie,enabled:h}),Je=N({kind:v(`refused`),reason:He,denialNote:M(Ue)});A(I(Ge),{onExcessProperty:`error`}),ie(I(Ge)),A(N({record_json:y})),A(I(ne)),ie(I(ne)),A(N({input_json:y,output_json:T(y)}));var Ye=Je,Xe=N({items:w(Ke),nextCursor:T(y)}),Ze=k([N({kind:v(`answered`),view:Ke}),Ye]),Qe=k([N({kind:v(`updated`),rule:qe}),Ye]),H=e=>ve(d().transform(t=>A(e,{onExcessProperty:`error`})(t))),U=Ae(`approvals`,1,o(()=>Me({list:z(H(Xe)),get:z(H(T(Ke))),answer:z(H(Ze)),setAutoApprove:z(H(Qe))}))),W=re(e=>ye.safeParse(e).success,{representation:{id:`@fungi.computer/whistle/catalog-step/v1`,payload:null}});u(()=>g());var G=y.pipe(F(O(1)),F(_(4e3)),F(p(/\S/u,{message:`Goal objective is blank`}))),$e=y.pipe(F(O(1)),F(_(1e3)),F(p(/\S/u))),et=y.pipe(F(O(1)),F(_(256))),tt=C.check(S(0)),nt=N({kind:x([`person`,`blocked`,`stalled`,`cancelled`,`failed`,`no-terminal`]),detail:T(y)}),K=N({revision:y,objective:G,state:x([`active`,`paused`]),startedAt:tt,pauseCause:T(nt)}),rt=N({sequence:C.check(m(0)),objective:G,outcome:x([`achieved`,`cleared`]),reason:T($e),endedAt:tt,afterSequence:C.check(S(0))}),it=k([N({action:v(`set`),objective:G,requestId:et,expectedRevision:P(T(y)),confirmed:P(h)}),N({action:x([`pause`,`resume`,`replace`,`clear`,`clear-ask`]),confirmed:P(h)}),N({})]),at=N({goal:T(K),ended:w(rt).check(_(16)),omitted:C.check(S(0))}),ot={id:j.make(`botanical-session-goal`),commands:{goal:{scope:`session`,input:it,output:W},pause:{scope:`session`,input:N({}),output:K},resume:{scope:`session`,input:N({}),output:K},clear:{scope:`session`,input:N({}),output:N({})},set:{scope:`session`,input:N({objective:G,expectedRevision:T(y),requestId:et}),output:N({goal:K,accepted:N({status:v(`accepted`),commandId:y})})}},projection:{schema:at}},q=e=>{let t=e.replace(/\s+/gu,` `).trim();return t.length<=80?t:`${t.slice(0,79)}…`},st=e=>{let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`};function ct(e){let t=e.state===`active`,n=t?`Pursuing goal since ${st(e.startedAt)}`:`Goal paused (/goal resume)`,r=!t&&e.pauseCause?.detail!=null?[q(e.pauseCause.detail)]:[],i={id:`goal`,title:[n,q(e.objective),...r].join(` · `),tone:t?`running`:`muted`,actions:[{id:`goal`,label:t?`Pause goal`:`Resume goal`,input:{action:t?`pause`:`resume`}}]};return q(e.objective)===e.objective?i:{...i,detail:e.objective.slice(0,1024)}}function lt(e){let t={id:`goal-ended`,title:`${e.outcome===`achieved`?`Goal achieved`:`Goal cleared`} · ${q(e.objective)}`,tone:e.outcome===`achieved`?`settled`:`muted`},n=e.reason===null?t:{...t,detail:e.reason};return{id:String(e.sequence),sequence:e.sequence,at:e.endedAt,commandId:null,afterSequence:e.afterSequence,rows:[n]}}var ut=R(ot,{promptPresentation:`footer`,contribute:e=>{if(e.status!==`running`||e.value===null)return{chips:[],panel:[],timeline:{cells:[],omitted:0},waiting:null};let{goal:t,ended:n,omitted:r}=e.value;return{chips:[],panel:t===null?[]:[ct(t)],timeline:{cells:n.map(lt),omitted:r},waiting:null}}}),J=y.pipe(F(O(1)),F(_(262144))),dt=y.pipe(F(O(1)),F(_(200))),ft=N({expression:y.pipe(F(O(1)),F(_(256))),timeZone:y.pipe(F(O(1)),F(_(128)))}),Y=N({loopId:y,origin:x([`human`,`model`]),expiresAt:T(C),prompt:J,mode:x([`self_paced`,`fixed_interval`]),cron:T(ft),state:x([`active`,`paused`,`finished`,`failed`,`cancelled`]),commandId:y,reason:T(y),nextDueAt:T(C),lastError:T(y),consecutiveFailures:C.pipe(F(S(0)))}),pt=N({loop:Y,accepted:N({status:v(`accepted`),commandId:y})}),mt=k([N({action:v(`start`),text:J,requestId:dt}),N({action:x([`status`,`pause`,`resume`,`stop`,`stop-ask`,`new`]),confirmed:P(h)}),N({})]),ht=N({loop:Y}),gt={id:j.make(`botanical-session-loop`),commands:{loop:{scope:`session`,input:mt,output:W},startSelfPaced:{scope:`session`,input:N({prompt:J,requestId:dt}),output:pt},startFixedInterval:{scope:`session`,input:N({prompt:J,requestId:dt,...ft.fields}),output:pt},pause:{scope:`session`,input:N({}),output:Y},resume:{scope:`session`,input:N({}),output:Y},stop:{scope:`session`,input:N({}),output:Y}},projection:{schema:ht}},_t=e=>{let t=e.replace(/\s+/gu,` `).trim();return t.length<=60?t:`${t.slice(0,59)}…`},vt=e=>e.state===`failed`?`error`:e.state===`active`?`running`:e.state===`paused`?`muted`:`settled`,yt=e=>new Intl.DateTimeFormat(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`,timeZoneName:`short`}).format(e),bt=R(gt,{promptPresentation:`footer`,contribute:e=>{if(e.status!==`running`||e.value===null)return{chips:[],panel:[],timeline:{cells:[],omitted:0},waiting:null};let{loop:t}=e.value,n=t.state===`active`&&t.nextDueAt!==null;return{chips:t.state!==`active`&&t.state!==`paused`?[]:[{id:`loop`,order:2,row:{id:`loop`,title:`Loop ${t.mode===`self_paced`?`self-paced`:`fixed`}${n?` (waiting)`:``}`,tone:vt(t)}}],panel:[{id:`loop`,title:`Loop · ${t.state} · ${t.mode===`self_paced`?`self-paced`:`${t.cron?.expression??`fixed`} ${t.cron?.timeZone??``}`}${t.nextDueAt===null?``:` · Next ${yt(t.nextDueAt)}`} · ${_t(t.prompt)}`,detail:[t.reason,t.prompt].filter(e=>e!==null).join(`
|
|
2
|
-
`).slice(0,1024),tone:vt(t)},...t.lastError===null?[]:[{id:`error`,title:t.lastError.slice(0,4096),tone:`error`}]],timeline:{cells:[],omitted:0},waiting:n?{summary:`Waiting until ${yt(t.nextDueAt)}`,cancel:{id:`loop`,label:`stop loop`,input:{action:`stop-ask`}}}:null}}});function xt(e){return N({nextSequence:C.check(m(0)),omitted:C.check(S(0)),events:w(N({id:y,sequence:C,at:C,commandId:T(y),event:e}))})}new TextEncoder;var St=N({explanation:M(y.pipe(F(_(2e3)))),steps:w(N({step:y.pipe(F(O(1)),F(_(500))),status:x([`pending`,`in_progress`,`completed`])})).pipe(F(_(50)))});St.pipe(F(ae(e=>e.steps.filter(e=>e.status===`in_progress`).length<=1||`At most one plan step may be in progress`)));function Ct(e){return e.steps.some(e=>e.status!==`completed`)}var wt=N({plan:St,history:xt(St)}),Tt=k([N({action:v(`clear`)}),N({})]),Et={id:j.make(`botanical-session-plan`),commands:{plan:{scope:`session`,input:Tt,output:W}},projection:{schema:wt}},Dt=e=>{let t=e.steps.findIndex(e=>e.status===`in_progress`),n=e.steps.filter(e=>e.status===`completed`).length;return{title:(t<0?e.steps.find(e=>e.status===`pending`):e.steps[t])?.step??`Plan complete`,detail:`${String(t<0?n:t+1)}/${String(e.steps.length)}`}},Ot=e=>e.steps.map((e,t)=>({id:String(t),title:e.step,tone:e.status===`completed`?`settled`:e.status===`in_progress`?`running`:`muted`})),kt=R(Et,{contribute:e=>({chips:[],panel:e.status!==`running`||e.value===null||!Ct(e.value.plan)?[]:[{id:`plan`,...Dt(e.value.plan),actions:[{id:`plan`,label:`Clear plan`,input:{action:`clear`}}],inspection:{commandId:`plan`,title:`Plan`,rows:Ot(e.value.plan)}}],timeline:{cells:[],omitted:0},waiting:null})}),X=e=>y.check(O(1),_(e),p(/\S/u)),At=N({id:X(32).check(p(/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/u)),header:X(12),question:X(1e3),options:w(N({label:X(60),description:X(300)})).check(O(2),_(4),ae(e=>new Set(e.map(e=>e.label)).size===e.length||`Option labels must be unique`,{representation:{id:`botanical/ask/unique-option-labels`,payload:null}})),multiple:M(h)}),jt=w(At).check(O(1),_(4),ae(e=>new Set(e.map(e=>e.id)).size===e.length||`Question ids must be unique`,{representation:{id:`botanical/ask/unique-question-ids`,payload:null}})),Mt=N({askId:y,questions:jt,status:x([`live`,`parked`]),createdAt:D,expiresAt:T(D)}),Nt=N({asks:w(Mt).check(_(4))}),Z=X(256),Pt=te(At.fields.id,N({selected:w(X(60)).check(_(4)),text:M(y.check(_(4e3)))})),Ft=N({askId:X(256),requestId:Z,answers:Pt}),It=N({askId:X(256),requestId:Z,note:M(y.check(_(4e3)))}),Lt=x([`answered`,`declined`,`withdrawn`,`expired`,`cancelled`,`undeliverable`]),Rt=k([N({result:v(`accepted`),via:x([`in_turn`,`follow_up`])}),N({result:v(`closed`),status:Lt}),N({result:v(`not_found`)})]),zt={askId:Ft.fields.askId,requestId:Z,index:D.check(b(),ce({minimum:0,maximum:3})),answers:Pt},Bt=k([N({stage:v(`multiple`),...zt,selection:y.check(_(1e3))}),N({stage:v(`selection`),...zt,selection:y.check(_(1e3))}),N({stage:v(`text`),...zt,selected:Pt.value.fields.selected,text:y.check(_(4e3))}),N({askId:Ft.fields.askId}),N({})]),Vt={id:j.make(`botanical-session-question`),commands:{answerFlow:{scope:`session`,input:Bt,output:W},answer:{scope:`session`,input:Ft,output:Rt},decline:{scope:`session`,input:It,output:Rt},list:{scope:`session`,input:N({}),output:Nt}},projection:{schema:Nt}},Ht=R(Vt,{contribute:e=>({chips:[],panel:e.status!==`running`||e.value===null?[]:e.value.asks.map(e=>{let t=e.questions[0];return{id:e.askId,title:`${t?.question??`Question`}${e.questions.length>1?` (+${String(e.questions.length-1)} more)`:``}`,detail:t?.options.map(e=>e.label).join(` · `)??``,tone:`attention`,actions:[{id:`answerFlow`,label:`Answer`,input:{askId:e.askId}}]}}),timeline:{cells:[],omitted:0},waiting:null})}),Ut=y.check(O(1),_(256)),Wt=x([`working`,`waiting`,`idle`,`failed`,`unavailable`]),Gt=N({agentId:Ut,name:Ut,sessionId:T(Ut),state:Wt,attention:M(y.check(_(200)))}),Kt=N({agents:w(Gt).check(_(16)),more:C.check(S(0)),expanded:h}),qt={agents:{scope:`session`,input:N({}),output:W}},Jt={id:j.make(`botanical-session-subagents`),commands:qt,projection:{schema:Kt}},Yt={working:{label:`working`,tone:`running`,status:`info`},waiting:{label:`waiting on you`,tone:`attention`,status:`warning`},idle:{label:`idle`,tone:`settled`,status:`success`},failed:{label:`failed`,tone:`error`,status:`error`},unavailable:{label:`unavailable`,tone:`muted`,status:`neutral`}};function Xt(e){let t=Yt[e.state],n={id:e.agentId,title:`${e.name} · ${t.label}`,tone:t.tone,status:{label:t.label,tone:t.status}},r=e.attention===void 0?n:{...n,detail:e.attention};return e.sessionId===null?{...r,detail:e.attention??`not messaged yet`}:{...r,open:{params:[{key:`agent`,value:e.agentId},{key:`session`,value:e.sessionId}]}}}function Zt(e){let t=t=>e.agents.filter(e=>e.state===t).length,n=[`working`,`waiting`,`failed`,`unavailable`].map(e=>[e,t(e)]).filter(([,e])=>e>0).map(([e,t])=>`${String(t)} ${Yt[e].label}`),r=e.agents.length+e.more,i=t(`waiting`)>0?`attention`:t(`failed`)>0?`error`:t(`working`)>0?`running`:`muted`;return{id:`summary`,title:[`${String(r)} sub-agent${r===1?``:`s`}`,...n,`/agents shows them`].join(` · `),tone:i}}var Qt=R(Jt,{contribute:e=>({chips:[],panel:e.status!==`running`||e.value===null?[]:e.value.agents.length>0&&!e.value.expanded?[Zt(e.value)]:[...e.value.agents.map(Xt),...e.value.more===0?[]:[{id:`more`,title:`${String(e.value.more)} more sub-agent${e.value.more===1?``:`s`}`,tone:`muted`}]],timeline:{cells:[],omitted:0},waiting:null})});function $t(e,t){if(e===null||!URL.canParse(t))return!1;let n=new URL(t);return n.protocol!==`https:`||n.hash!==`#team-billing`?!1:(e.openTeamBilling().catch(t=>(console.error(`Chat Billing navigation failed`,t),e.showToast({message:`Billing could not be opened. Please try again.`,tone:`error`}))),!0)}function en(e,t){e!==null&&e.showToast({message:t.message,tone:t.variant}).catch(e=>{console.error(`Chat toast failed`,e)})}var Q=e(Ee(),1),$=ge();function tn(e){if(e.name!==`execute`||e.status!==`completed`)return;let n=e.result?.content;if(n?.length!==1||n[0]?.type!==`text`)return;let r=se(I(oe))(n[0].text);if(t(r))return;let i=be.safeParse(r.value);return i.success?i.data.file:void 0}function nn({item:e,ui:t}){let n=tn(e),[r,i]=(0,Q.useState)(!1),[a,o]=(0,Q.useState)(!1);if(!n)return null;let s=async()=>{i(!0),o(!1);try{await t.openNavigation(n)}catch(e){console.error(`Chat file navigation failed`,e),o(!0)}finally{i(!1)}};return(0,$.jsxs)(`div`,{className:`px-3 py-2`,children:[(0,$.jsx)(B,{variant:`ghost`,size:`sm`,disabled:r,onClick:()=>void s(),type:`button`,children:r?`Opening file…`:`Open ${n.path} in Inkcap`}),a?(0,$.jsx)(`p`,{role:`alert`,children:`The file could not be opened. Try again.`}):null]})}var rn=l({kind:r(`generated`),file:l({computerId:c().min(1),path:c().min(1)}),format:n([`png`,`jpeg`,`gif`,`webp`,`mp4`]),width:i(),height:i(),bytes:i(),costMilliunits:i(),receipt:c()});function an(e){if(e.name!==`execute`||e.status!==`completed`)return;let n=e.result?.content??[],r=n.at(0);if(r?.type!==`text`||n.slice(1).some(e=>e.type!==`image`))return;let i=se(I(oe))(r.text);if(t(i))return;let a=rn.safeParse(i.value);return a.success?a.data:void 0}function on({item:e,ui:t}){let n=an(e),[r,i]=(0,Q.useState)(!1),[a,o]=(0,Q.useState)(!1);if(!n)return null;let s=async()=>{i(!0),o(!1);try{await t.openNavigation(n.file)}catch(e){console.error(`Chat image navigation failed`,e),o(!0)}finally{i(!1)}};return(0,$.jsxs)(`div`,{className:`px-3 py-2`,children:[(0,$.jsx)(B,{variant:`ghost`,size:`sm`,disabled:r,onClick:()=>void s(),type:`button`,children:r?`Opening file…`:`Open ${n.file.path} in Inkcap`}),a?(0,$.jsx)(`p`,{role:`alert`,children:`The file could not be opened. Try again.`}):null]})}var sn={requested:`Approval requested.`,pending:`Pending approval.`,approved:`Approved. Waiting to run.`,applied:`Done.`,denied:`Denied.`,expired:`Expired. Nothing ran.`,claimed:`Dispatch in progress.`,outcome_unknown:`Outcome unknown. Check before trying again.`};function cn(e){let{view:t,scope:n}=e,r=JSON.stringify([t.record.recordId,t.record.revision,t.canAnswer,t.canSetAutoApprove,n.agentId]);return(0,$.jsx)(ln,{...e},r)}function ln({view:e,scope:t,capabilities:n,onViewChange:r}){let{record:i}=e,a=(0,Q.useRef)(!0);(0,Q.useEffect)(()=>(a.current=!0,()=>{a.current=!1}),[]);let o=(0,Q.useRef)(!1),[s,c]=(0,Q.useState)(!1),[l,u]=(0,Q.useState)(),[d,f]=(0,Q.useState)(),[p,m]=(0,Q.useState)(!1),[h,ee]=(0,Q.useState)(!1),[g,_]=(0,Q.useState)(!1),[te,v]=(0,Q.useState)(!1),[y,b]=(0,Q.useState)(``),x=e.canAnswer&&i.state===`pending`&&!p&&!g;async function S(e,t){if(!o.current){o.current=!0,c(!0),u(void 0),f(void 0);try{await e()}catch{u(t)}finally{o.current=!1,c(!1)}}}function C(e,t){if(x)return S(async()=>{let o={recordId:i.recordId,decision:e,expectedRevision:i.revision},s=await n.require(U).answer(t===void 0?o:{...o,denialNote:t});m(!0),s.kind===`answered`&&a.current?r(s.view):s.kind===`refused`&&u(`Decision refused. Refresh this approval before answering again.`)},`Couldn't submit the decision. Try again.`)}function w(){if(!(!e.canSetAutoApprove||h||g))return S(async()=>{let e=await n.require(U).setAutoApprove({scope:t,family:{module:i.module,access:i.access},enabled:!0});ee(!0),e.kind===`updated`?f(`Automatic approval enabled for this family.`):u(`Policy change refused. Refresh this approval before trying again.`)},`Couldn't change approval policy. Try again.`)}function ne(){return S(async()=>{let e=n.require(U),t=(await e.list({state:`pending`,limit:100})).items.find(e=>e.record.recordId===i.recordId)??await e.get({recordId:i.recordId});a.current&&(_(t===null),t!==null&&(m(!1),ee(!1),r(t)))},`Couldn't refresh this approval. Try again.`)}let T=(0,$.jsx)(B,{variant:`ghost`,disabled:s,onClick:()=>void ne(),children:`Refresh approval`});return g?(0,$.jsxs)(Oe,{role:`group`,"aria-label":`Approval request`,"aria-busy":s,density:`compact`,children:[(0,$.jsxs)(ue,{children:[(0,$.jsx)(`p`,{role:`status`,children:`Approval unavailable.`}),l===void 0?null:(0,$.jsx)(`p`,{role:`alert`,children:l})]}),(0,$.jsx)(pe,{children:T})]}):(0,$.jsxs)(Oe,{role:`group`,"aria-label":`Approval request`,"aria-busy":s,density:`compact`,children:[(0,$.jsxs)(fe,{children:[(0,$.jsxs)(me,{children:[x?`Allow `:``,i.module,` · `,i.operation,x?`?`:``]}),(0,$.jsxs)(`p`,{children:[i.requester.displayName,` wants to use a connected tool.`]})]}),(0,$.jsxs)(ue,{className:`min-w-0 space-y-2`,children:[(0,$.jsxs)(`p`,{children:[`Effect`,` `,i.access===`write`?`Changes data in Fungi`:`Changes things outside Fungi`,i.reversibility===`irreversible-external`?` · can't be undone`:``]}),x?null:(0,$.jsx)(`p`,{role:`status`,children:sn[i.state]}),te&&x?(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(`label`,{htmlFor:`denial-note-${i.recordId}`,children:`Why deny?`}),(0,$.jsx)(`input`,{id:`denial-note-${i.recordId}`,"aria-label":`Why deny?`,type:`text`,maxLength:512,value:y,onChange:e=>{b(e.target.value)},onKeyDown:e=>{e.key===`Escape`?(e.preventDefault(),v(!1),b(``)):e.key===`Enter`&&(e.preventDefault(),C(`deny`,y.trim()||void 0))}}),(0,$.jsx)(B,{disabled:s,onClick:()=>void C(`deny`,y.trim()||void 0),children:`Send denial`})]}):null,(0,$.jsxs)(`details`,{children:[(0,$.jsx)(`summary`,{children:`Details`}),(0,$.jsxs)(`p`,{children:[`Requester: `,i.requester.principalId]}),(0,$.jsxs)(`p`,{children:[`Agent: `,i.requester.displayName,` ·`,` `,i.requester.agentId??`none`]}),(0,$.jsxs)(`p`,{children:[`Session: `,i.requester.sessionId??`none`]}),(0,$.jsxs)(`p`,{children:[`Request: `,i.module,`.`,i.operation,` · `,i.access]}),(0,$.jsxs)(`p`,{children:[`Undo:`,` `,i.reversibility===`irreversible-external`?`Can't be undone`:`Can be undone`]}),(0,$.jsxs)(`p`,{children:[`Can answer: `,e.canAnswer?`Yes`:`No`]}),(0,$.jsxs)(`p`,{children:[`Can set auto-approve: `,e.canSetAutoApprove?`Yes`:`No`]}),i.by?.kind===`policy`?(0,$.jsx)(`p`,{children:`Auto-approved by policy`}):null,(0,$.jsx)(`p`,{children:i.description.title}),(0,$.jsxs)(`p`,{className:`break-all`,children:[`Input: `,i.description.inputBytes,` bytes · SHA-256`,` `,i.description.inputSha256]}),(0,$.jsxs)(`p`,{children:[`Record: `,i.recordId,` · revision `,i.revision]}),e.canSetAutoApprove?(0,$.jsxs)(`p`,{children:[`Policy scope:`,` `,t.agentId===null?`whole home`:`agent ${t.agentId}`]}):null]}),d===void 0?null:(0,$.jsx)(`p`,{role:`status`,children:d}),l===void 0?null:(0,$.jsx)(`p`,{role:`alert`,children:l})]}),(0,$.jsxs)(pe,{className:`flex flex-wrap gap-2`,children:[(0,$.jsx)(B,{disabled:s||!x,onClick:()=>void C(`approve`),children:`Approve once`}),(0,$.jsx)(B,{variant:`outline`,disabled:s||!x,onClick:()=>void C(`deny`),children:`Deny`}),(0,$.jsx)(B,{variant:`outline`,disabled:s||!x,onClick:()=>{b(``),v(!0)},children:`Deny and say why…`}),e.canSetAutoApprove?(0,$.jsx)(B,{variant:`ghost`,disabled:s||h,onClick:()=>void w(),children:`Always approve this family`}):null,T]})]})}var un=(0,Q.forwardRef)(function({heading:e,eyebrow:t,cover:n,action:r,children:i,className:a,...o},s){return(0,$.jsxs)(Oe,{...o,className:L(`caps-game-share`,a),ref:s,children:[n?(0,$.jsx)(`div`,{className:`caps-game-share-cover`,children:n}):null,(0,$.jsxs)(fe,{children:[t,(0,$.jsx)(`h3`,{className:`caps-game-share-heading`,children:e})]}),(0,$.jsx)(ue,{className:`gap-sm`,children:i}),(0,$.jsx)(pe,{children:(0,$.jsx)(B,{asChild:!0,variant:`primary`,className:`caps-game-share-action`,children:r})})]})});function dn(e){let t=0;return e.map(e=>{let n={...e,offset:t};return t+=e.text.length,n})}function fn({value:e,label:t,fieldLabel:n,displayValue:r,layout:i,title:a,tokens:o,className:s,...c}){let l=(0,Q.useId)(),[u,d]=(0,Q.useState)({kind:`ready`}),f=o?o.map(e=>e.text).join(``):e,p=async()=>{d(await navigator.clipboard.writeText(f).then(()=>({kind:`copied`}),e=>({kind:`failed`,cause:e})))};if(n!==void 0)return(0,$.jsxs)(`div`,{...c,className:L(`caps-copy-field-input`,s),children:[(0,$.jsx)(je,{htmlFor:l,children:n}),(0,$.jsxs)(Te,{children:[(0,$.jsx)(he,{className:`caps-copy-field-control`,"aria-label":n,id:l,onFocus:e=>{e.currentTarget.select()},readOnly:!0,value:r??f}),(0,$.jsx)(B,{onClick:()=>void p(),size:`sm`,variant:`outline`,children:u.kind===`copied`?`Copied`:t??`Copy`})]}),u.kind===`failed`?(0,$.jsx)(`span`,{role:`status`,children:`Could not copy. Select the text to copy it.`}):null]});let m=u.kind===`copied`?`Copied`:u.kind===`failed`?`Copy failed`:t??`Copy`;return i===`block`?(0,$.jsxs)(`figure`,{...c,className:L(`caps-copy-field-block`,s),"data-state":u.kind,children:[(0,$.jsxs)(`figcaption`,{className:`caps-copy-field-header`,children:[(0,$.jsx)(`span`,{className:`caps-copy-field-title`,children:a}),(0,$.jsxs)(B,{onClick:()=>void p(),size:`sm`,variant:u.kind===`copied`?`ghost`:`outline`,children:[u.kind===`copied`?(0,$.jsx)(Ce,{"aria-hidden":`true`,size:15}):(0,$.jsx)(_e,{"aria-hidden":`true`,size:15}),m]}),(0,$.jsx)(de,{role:`status`,children:u.kind===`copied`?`Copied to the clipboard`:u.kind===`failed`?`Could not copy. Select the code to copy it.`:``})]}),(0,$.jsx)(`pre`,{className:`caps-copy-field-code`,tabIndex:0,children:(0,$.jsx)(`code`,{children:o?dn(o).map(e=>(0,$.jsx)(`span`,{className:`caps-copy-field-token`,"data-kind":e.kind,children:e.text},e.offset)):f})})]}):(0,$.jsxs)(`div`,{...c,className:L(`caps-copy-field`,s),children:[(0,$.jsx)(`code`,{className:`caps-copy-field-value`,children:f}),(0,$.jsxs)(B,{"aria-label":`${m}: ${f}`,onClick:()=>void p(),size:`sm`,variant:`outline`,children:[u.kind===`copied`?(0,$.jsx)(Ce,{size:15}):(0,$.jsx)(_e,{size:15}),m]})]})}var pn=s({game:s({title:c().min(1),summary:c(),coverUrl:f().nullable(),shareUrl:f()})});function mn(e){let t=/(?:^|\n)\s*Share:\s*(https?:\/\/[^\s<>]+)/iu.exec(e);if(!t?.[1])return null;let n=t[1].replace(/[.,;!?]+$/u,``);if(!URL.canParse(n))return null;let r=new URL(n);return r.username||r.password||r.hash||r.protocol===`http:`&&![`localhost`,`127.0.0.1`].includes(r.hostname)?null:r.href}function hn(e){return mn(e)?e.split(`
|
|
3
|
-
`).filter(e=>!/^\s*Share:\s*/iu.test(e)).join(`
|
|
4
|
-
`).trim():e}function gn(e){let t=new URL(e),n=/^\/([a-z0-9]+(?:-[a-z0-9]+)*)\/?$/u.exec(t.pathname)?.[1];return!n||t.search?null:new URL(`/api/games/${n}`,t.origin)}function _n({reply:e,previewGame:t}){let n=mn(e),r=n?gn(n):null,{data:i}=Se({queryKey:le.of(null,`game-share`,n),enabled:r!==null&&t===void 0,queryFn:async({signal:e})=>{if(!r)return null;let t=await fetch(r,{signal:e});if(!t.ok)return null;let i=pn.safeParse(await t.json());return i.success&&i.data.game.shareUrl===n?i.data.game:null}}),a=t??i;if(!n)return null;let o=new URL(n),s=`${o.host}${o.pathname.replace(/\/$/u,``)}`,c=a?.coverUrl&&r?t?a.coverUrl:new URL(`${r.pathname}/cover`,r.origin).href:null;return(0,$.jsxs)(un,{"data-game-share-card":`true`,"data-theme":`vishnu`,heading:a?.title??`Your game is ready`,eyebrow:(0,$.jsx)(xe,{tone:`secondary`,variant:`quiet`,children:`Made with your Agent`}),cover:c?(0,$.jsx)(`img`,{alt:`A scene from ${a?.title??`your game`}`,src:c}):null,action:(0,$.jsx)(`a`,{href:n,rel:`noopener noreferrer`,target:`_blank`,children:`Play ↗`}),children:[a?.summary?(0,$.jsx)(`p`,{className:`text-sm`,children:a.summary}):null,(0,$.jsx)(fn,{displayValue:s,fieldLabel:`Share link`,label:`Copy link`,value:n})]})}var vn=se(I(Be),{onExcessProperty:`error`});function yn(e){if(!(e.status!==`completed`||e.result?.isError))for(let t of e.result?.content??[]){if(t.type!==`text`)continue;let e=vn(t.text);if(a(e))return e.value.recordId}}function bn({recordId:e,agentId:t,capabilities:n}){let[r,i]=(0,Q.useState)(),[a,o]=(0,Q.useState)(0);return(0,Q.useEffect)(()=>{let t=!0;async function r(){try{let r=await n.require(U).get({recordId:e});t&&i({capabilities:n,recordId:e,view:r,failed:!1})}catch(r){console.warn(`Grove could not read the approval`,r),t&&i({capabilities:n,recordId:e,view:null,failed:!0})}}return r(),()=>{t=!1}},[n,e,a]),r?.capabilities!==n||r.recordId!==e?null:r.failed?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`p`,{role:`alert`,children:`Couldn't load this approval. Try again.`}),(0,$.jsx)(B,{variant:`ghost`,onClick:()=>{o(e=>e+1)},children:`Refresh approval`})]}):r.view===null||r.view.record.state===`expired`?null:(0,$.jsx)(cn,{view:r.view,scope:{agentId:t},capabilities:n,onViewChange:t=>{i({capabilities:n,recordId:e,view:t,failed:!1})}})}var xn=[ut,bt,kt,Ht,Qt],Sn=e=>(0,$.jsx)(_n,{reply:e});function Cn({prefill:e,onPrefilled:t}){let n=we(),r=(0,Q.useRef)(null);return(0,Q.useEffect)(()=>{!e||r.current===e.requestId||(r.current=e.requestId,n.setDraft(e.text),t())},[n.setDraft,t,e]),null}function wn({session:e,draftIdentity:t,connection:n,commands:r,prefill:i=null,onPrefilled:a=()=>void 0,onOpen:o}){let s=n?.ui??null,c=n?.capabilities,l=(0,Q.useCallback)(e=>$t(s,e),[s]),u=(0,Q.useCallback)(e=>{let n=yn(e);return n!==void 0&&c!==void 0?(0,$.jsx)(bn,{recordId:n,agentId:t.agentId,capabilities:c},n):s?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(nn,{item:e,ui:s}),(0,$.jsx)(on,{item:e,ui:s})]}):null},[s,c,t.agentId]),d=(0,Q.useCallback)(e=>{en(s,e)},[s]);return(0,$.jsxs)(De,{session:e,draftIdentity:t,clients:xn,authorOf:ee,onToast:d,children:[(0,$.jsx)(Cn,{prefill:i,onPrefilled:a}),(0,$.jsx)(ke,{onLink:l,onOpen:o,composerActionVariant:`outline`,commands:r,renderAssistantAttachment:Sn,formatAssistantText:hn,renderToolActions:u})]})}export{wn as ParakeetConversation};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,t}from"./rolldown-runtime-hePW80VL.js";import{ha as n,j as r,pt as i,r as a,t as o}from"./Effect-Bibd7o64.js";import{i as s,t as c}from"./document-CI1e8oXD.js";import{A as l,B as u,C as d,D as f,E as p,F as m,G as h,H as g,I as _,J as ee,K as v,L as y,M as te,N as ne,O as re,P as b,R as x,S,T as C,U as ie,V as w,W as T,j as E,k as ae,q as D,w as O,z as oe}from"./index-26gTYfVj.js";var se=(e,t)=>{if(ie(t,`<`)){let n=t[1]===`<`,r=e._tail,i=r?r._offset+r._delay:0;return n?i:i+r.duration}},k=(e,t)=>{let n=e.iterationDuration;if(n===1e-11&&(n=0),u(t))return n;if(y(+t))return+t;let r=t,i=e?e.labels:null,a=!_(i),o=se(e,r),s=!u(o),c=D.exec(r);if(c){let e=c[0],t=r.split(e),u=a&&t[0]?i[t[0]]:n,d=s?o:a?u:n,f=+t[1];return l(d,f,e[0])}return s?o:a?u(i[r])?n:i[r]:n};function ce(e){return ne((e.iterationDuration+e._loopDelay)*e.iterationCount-e._loopDelay)||1e-11}function A(e,t,n,r,i,a){let o=y(e.duration)&&e.duration<=1e-11?n-v:n;t.composition&&ae(t,o,1,1,ee.AUTO);let s=r?new S(r,e,t,o,!1,i,a):new C(e,t,o);return t.composition&&s.init(!0),te(t,s),b(t,e=>{let n=e._offset+e._delay+e.duration;n>t.iterationDuration&&(t.iterationDuration=n)}),t.duration=ce(t),t}var j=0,M=class extends C{constructor(e={}){super(e,null,0),++j,this.id=u(e.id)?j:e.id,this.duration=0,this.labels={};let t=e.defaults,n=T.defaults;this.defaults=t?w(t,n):n,this.composition=E(e.composition,!0),this.onRender=e.onRender||n.onRender;let r=E(e.playbackEase,n.playbackEase);this._ease=r?d(r):null,this.iterationDuration=0}add(e,t,n){let r=x(t),i=x(e);if(r||i){if(this._hasChildren=!0,r){let r=t,i=T.editor&&T.editor.addTimelineChild,a=n&&n.type===`Stagger`&&T.editor,o=m(n)?n:null;if(o||a){let t=O(e),a=this.duration,s=this.iterationDuration,c=r.id,l=0,d=t.length,f=i?i(e,r,this.id,n,d):null,p=o||T.editor.resolveStagger(n.defaultValue);t.forEach(e=>{let n={...f||r};this.duration=a,this.iterationDuration=s,u(c)||(n.id=c+`-`+l);let i=k(this,p(e,l,t,null,this));A(n,this,i,e,l,t),l++})}else{let t=i?i(e,r,this.id,n):r,a=n&&n.type?n.defaultValue:n;A(t,this,k(this,a),e)}}else A(e,this,k(this,t));return this.composition&&this.init(!0),this}}sync(e,t){if(u(e)||e&&u(e.pause))return this;e.pause();let n=+(e.effect?e.effect.getTiming().duration:e.duration);!u(e)&&!u(e.persist)&&(e.persist=!0);let r=T.editor,i=r&&r.addTimelineChild;r&&r.addTimelineSync&&(t=r.addTimelineSync(e,t,this.id),r.addTimelineChild=null);let a=this.add(e,{currentTime:[0,n],duration:n,delay:0,ease:`linear`,playbackEase:`linear`},t);return r&&(r.addTimelineChild=i),a}set(e,t,n){return u(t)?this:(t.duration=v,t.composition=h.replace,this.add(e,t,n))}call(e,t){return u(e)||e&&!m(e)?this:(T.editor&&T.editor.addTimelineCall&&(t=T.editor.addTimelineCall(e,t,this.id)),this.add({duration:0,delay:0,onComplete:()=>e(this)},t))}label(e,t){return u(e)||e&&!oe(e)?this:(T.editor&&T.editor.addTimelineLabel&&(t=T.editor.addTimelineLabel(e,t,this.id)),this.labels[e]=k(this,t),this)}remove(e,t){return f(O(e),this,t),this}stretch(e){let t=this.duration;if(t===g(e))return this;let n=e/t,r=this.labels;b(this,e=>e.stretch(e.duration*n));for(let e in r)r[e]*=n;return super.stretch(e)}refresh(){return b(this,e=>{e.refresh&&e.refresh()}),this}revert(){return super.revert(),b(this,e=>e.revert,!0),re(this)}then(e){return super.then(e)}},N=e=>T.editor?T.editor.addTimeline(e):new M(e).init(),P=t(((e,t)=>{(function(e,n){typeof t==`object`&&t.exports?t.exports=n():e.Zdog=n()})(e,function(){var e={};e.TAU=Math.PI*2,e.extend=function(e,t){for(var n in t)e[n]=t[n];return e},e.lerp=function(e,t,n){return(t-e)*n+e},e.modulo=function(e,t){return(e%t+t)%t};var t={2:function(e){return e*e},3:function(e){return e*e*e},4:function(e){return e*e*e*e},5:function(e){return e*e*e*e*e}};return e.easeInOut=function(e,n){if(n==1)return e;e=Math.max(0,Math.min(1,e));var r=e<.5,i=r?e:1-e;i/=.5;var a=(t[n]||t[2])(i);return a/=2,r?a:1-a},e})})),F=t(((e,t)=>{(function(e,n){typeof t==`object`&&t.exports?t.exports=n():e.Zdog.CanvasRenderer=n()})(e,function(){var e={isCanvas:!0};return e.begin=function(e){e.beginPath()},e.move=function(e,t,n){e.moveTo(n.x,n.y)},e.line=function(e,t,n){e.lineTo(n.x,n.y)},e.bezier=function(e,t,n,r,i){e.bezierCurveTo(n.x,n.y,r.x,r.y,i.x,i.y)},e.closePath=function(e){e.closePath()},e.setPath=function(){},e.renderPath=function(t,n,r,i){this.begin(t,n),r.forEach(function(r){r.render(t,n,e)}),i&&this.closePath(t,n)},e.stroke=function(e,t,n,r,i){n&&(e.strokeStyle=r,e.lineWidth=i,e.stroke())},e.fill=function(e,t,n,r){n&&(e.fillStyle=r,e.fill())},e.end=function(){},e})})),I=t(((e,t)=>{(function(e,n){typeof t==`object`&&t.exports?t.exports=n():e.Zdog.SvgRenderer=n()})(e,function(){var e={isSvg:!0},t=e.round=function(e){return Math.round(e*1e3)/1e3};function n(e){return t(e.x)+`,`+t(e.y)+` `}return e.begin=function(){},e.move=function(e,t,r){return`M`+n(r)},e.line=function(e,t,r){return`L`+n(r)},e.bezier=function(e,t,r,i,a){return`C`+n(r)+n(i)+n(a)},e.closePath=function(){return`Z`},e.setPath=function(e,t,n){t.setAttribute(`d`,n)},e.renderPath=function(t,n,r,i){var a=``;r.forEach(function(r){a+=r.render(t,n,e)}),i&&(a+=this.closePath(t,n)),this.setPath(t,n,a)},e.stroke=function(e,t,n,r,i){n&&(t.setAttribute(`stroke`,r),t.setAttribute(`stroke-width`,i))},e.fill=function(e,t,n,r){var i=n?r:`none`;t.setAttribute(`fill`,i)},e.end=function(e,t){e.appendChild(t)},e})})),L=t(((e,t)=>{(function(e,n){if(typeof t==`object`&&t.exports)t.exports=n(P());else{var r=e.Zdog;r.Vector=n(r)}})(e,function(e){function t(e){this.set(e)}var n=e.TAU;t.prototype.set=function(e){return this.x=e&&e.x||0,this.y=e&&e.y||0,this.z=e&&e.z||0,this},t.prototype.write=function(e){return e?(this.x=e.x==null?this.x:e.x,this.y=e.y==null?this.y:e.y,this.z=e.z==null?this.z:e.z,this):this},t.prototype.rotate=function(e){if(e)return this.rotateZ(e.z),this.rotateY(e.y),this.rotateX(e.x),this},t.prototype.rotateZ=function(e){r(this,e,`x`,`y`)},t.prototype.rotateX=function(e){r(this,e,`y`,`z`)},t.prototype.rotateY=function(e){r(this,e,`x`,`z`)};function r(e,t,r,i){if(!(!t||t%n===0)){var a=Math.cos(t),o=Math.sin(t),s=e[r],c=e[i];e[r]=s*a-c*o,e[i]=c*a+s*o}}t.prototype.isSame=function(e){return e?this.x===e.x&&this.y===e.y&&this.z===e.z:!1},t.prototype.add=function(e){return e?(this.x+=e.x||0,this.y+=e.y||0,this.z+=e.z||0,this):this},t.prototype.subtract=function(e){return e?(this.x-=e.x||0,this.y-=e.y||0,this.z-=e.z||0,this):this},t.prototype.multiply=function(e){return e==null||(typeof e==`number`?(this.x*=e,this.y*=e,this.z*=e):(this.x*=e.x==null?1:e.x,this.y*=e.y==null?1:e.y,this.z*=e.z==null?1:e.z)),this},t.prototype.transform=function(e,t,n){return this.multiply(n),this.rotate(t),this.add(e),this},t.prototype.lerp=function(t,n){return this.x=e.lerp(this.x,t.x||0,n),this.y=e.lerp(this.y,t.y||0,n),this.z=e.lerp(this.z,t.z||0,n),this},t.prototype.magnitude=function(){return i(this.x*this.x+this.y*this.y+this.z*this.z)};function i(e){return Math.abs(e-1)<1e-8?1:Math.sqrt(e)}return t.prototype.magnitude2d=function(){return i(this.x*this.x+this.y*this.y)},t.prototype.copy=function(){return new t(this)},t})})),R=t(((e,t)=>{(function(e,n){if(typeof t==`object`&&t.exports)t.exports=n(P(),L(),F(),I());else{var r=e.Zdog;r.Anchor=n(r,r.Vector,r.CanvasRenderer,r.SvgRenderer)}})(e,function(e,t,n,r){var i=e.TAU,a={x:1,y:1,z:1};function o(e){this.create(e||{})}o.prototype.create=function(n){this.children=[],e.extend(this,this.constructor.defaults),this.setOptions(n),this.translate=new t(n.translate),this.rotate=new t(n.rotate),this.scale=new t(a).multiply(this.scale),this.origin=new t,this.renderOrigin=new t,this.addTo&&this.addTo.addChild(this)},o.defaults={},o.optionKeys=Object.keys(o.defaults).concat([`rotate`,`translate`,`scale`,`addTo`]),o.prototype.setOptions=function(e){var t=this.constructor.optionKeys;for(var n in e)t.indexOf(n)!=-1&&(this[n]=e[n])},o.prototype.addChild=function(e){this.children.indexOf(e)==-1&&(e.remove(),e.addTo=this,this.children.push(e))},o.prototype.removeChild=function(e){var t=this.children.indexOf(e);t!=-1&&this.children.splice(t,1)},o.prototype.remove=function(){this.addTo&&this.addTo.removeChild(this)},o.prototype.update=function(){this.reset(),this.children.forEach(function(e){e.update()}),this.transform(this.translate,this.rotate,this.scale)},o.prototype.reset=function(){this.renderOrigin.set(this.origin)},o.prototype.transform=function(e,t,n){this.renderOrigin.transform(e,t,n),this.children.forEach(function(r){r.transform(e,t,n)})},o.prototype.updateGraph=function(){this.update(),this.updateFlatGraph(),this.flatGraph.forEach(function(e){e.updateSortValue()}),this.flatGraph.sort(o.shapeSorter)},o.shapeSorter=function(e,t){return e.sortValue-t.sortValue},Object.defineProperty(o.prototype,"flatGraph",{get:function(){return this._flatGraph||this.updateFlatGraph(),this._flatGraph},set:function(e){this._flatGraph=e}}),o.prototype.updateFlatGraph=function(){this.flatGraph=this.getFlatGraph()},o.prototype.getFlatGraph=function(){var e=[this];return this.addChildFlatGraph(e)},o.prototype.addChildFlatGraph=function(e){return this.children.forEach(function(t){var n=t.getFlatGraph();Array.prototype.push.apply(e,n)}),e},o.prototype.updateSortValue=function(){this.sortValue=this.renderOrigin.z},o.prototype.render=function(){},o.prototype.renderGraphCanvas=function(e){if(!e)throw Error(`ctx is `+e+`. Canvas context required for render. Check .renderGraphCanvas( ctx ).`);this.flatGraph.forEach(function(t){t.render(e,n)})},o.prototype.renderGraphSvg=function(e){if(!e)throw Error(`svg is `+e+`. SVG required for render. Check .renderGraphSvg( svg ).`);this.flatGraph.forEach(function(t){t.render(e,r)})},o.prototype.copy=function(t){var n={};this.constructor.optionKeys.forEach(function(e){n[e]=this[e]},this),e.extend(n,t);var r=this.constructor;return new r(n)},o.prototype.copyGraph=function(e){var t=this.copy(e);return this.children.forEach(function(e){e.copyGraph({addTo:t})}),t},o.prototype.normalizeRotate=function(){this.rotate.x=e.modulo(this.rotate.x,i),this.rotate.y=e.modulo(this.rotate.y,i),this.rotate.z=e.modulo(this.rotate.z,i)};function s(t){return function(n){function r(e){this.create(e||{})}return r.prototype=Object.create(t.prototype),r.prototype.constructor=r,r.defaults=e.extend({},t.defaults),e.extend(r.defaults,n),r.optionKeys=t.optionKeys.slice(0),Object.keys(r.defaults).forEach(function(e){!r.optionKeys.indexOf(e)!=1&&r.optionKeys.push(e)}),r.subclass=s(r),r}}return o.subclass=s(o),o})})),z=t(((e,t)=>{(function(e,n){typeof t==`object`&&t.exports?t.exports=n():e.Zdog.Dragger=n()})(e,function(){var e=typeof window<`u`,t=`mousedown`,n=`mousemove`,r=`mouseup`;e&&(window.PointerEvent?(t=`pointerdown`,n=`pointermove`,r=`pointerup`):`ontouchstart`in window&&(t=`touchstart`,n=`touchmove`,r=`touchend`));function i(){}function a(e){this.create(e||{})}return a.prototype.create=function(e){this.onDragStart=e.onDragStart||i,this.onDragMove=e.onDragMove||i,this.onDragEnd=e.onDragEnd||i,this.bindDrag(e.startElement)},a.prototype.bindDrag=function(e){e=this.getQueryElement(e),e&&(e.style.touchAction=`none`,e.addEventListener(t,this))},a.prototype.getQueryElement=function(e){return typeof e==`string`&&(e=document.querySelector(e)),e},a.prototype.handleEvent=function(e){var t=this[`on`+e.type];t&&t.call(this,e)},a.prototype.onmousedown=a.prototype.onpointerdown=function(e){this.dragStart(e,e)},a.prototype.ontouchstart=function(e){this.dragStart(e,e.changedTouches[0])},a.prototype.dragStart=function(t,i){t.preventDefault(),this.dragStartX=i.pageX,this.dragStartY=i.pageY,e&&(window.addEventListener(n,this),window.addEventListener(r,this)),this.onDragStart(i)},a.prototype.ontouchmove=function(e){this.dragMove(e,e.changedTouches[0])},a.prototype.onmousemove=a.prototype.onpointermove=function(e){this.dragMove(e,e)},a.prototype.dragMove=function(e,t){e.preventDefault();var n=t.pageX-this.dragStartX,r=t.pageY-this.dragStartY;this.onDragMove(t,n,r)},a.prototype.onmouseup=a.prototype.onpointerup=a.prototype.ontouchend=a.prototype.dragEnd=function(){window.removeEventListener(n,this),window.removeEventListener(r,this),this.onDragEnd()},a})})),le=t(((e,t)=>{(function(e,n){if(typeof t==`object`&&t.exports)t.exports=n(P(),R(),z());else{var r=e.Zdog;r.Illustration=n(r,r.Anchor,r.Dragger)}})(e,function(e,t,n){function r(){}var i=e.TAU,a=t.subclass({element:void 0,centered:!0,zoom:1,dragRotate:!1,resize:!1,onPrerender:r,onDragStart:r,onDragMove:r,onDragEnd:r,onResize:r});e.extend(a.prototype,n.prototype),a.prototype.create=function(e){t.prototype.create.call(this,e),n.prototype.create.call(this,e),this.setElement(this.element),this.setDragRotate(this.dragRotate),this.setResize(this.resize)},a.prototype.setElement=function(e){if(e=this.getQueryElement(e),!e)throw Error(`Zdog.Illustration element required. Set to `+e);var t=e.nodeName.toLowerCase();t==`canvas`?this.setCanvas(e):t==`svg`&&this.setSvg(e)},a.prototype.setSize=function(e,t){e=Math.round(e),t=Math.round(t),this.isCanvas?this.setSizeCanvas(e,t):this.isSvg&&this.setSizeSvg(e,t)},a.prototype.setResize=function(e){this.resize=e,this.resizeListener||=this.onWindowResize.bind(this),e?(window.addEventListener(`resize`,this.resizeListener),this.onWindowResize()):window.removeEventListener(`resize`,this.resizeListener)},a.prototype.onWindowResize=function(){this.setMeasuredSize(),this.onResize(this.width,this.height)},a.prototype.setMeasuredSize=function(){var e,t;if(this.resize==`fullscreen`)e=window.innerWidth,t=window.innerHeight;else{var n=this.element.getBoundingClientRect();e=n.width,t=n.height}this.setSize(e,t)},a.prototype.renderGraph=function(e){this.isCanvas?this.renderGraphCanvas(e):this.isSvg&&this.renderGraphSvg(e)},a.prototype.updateRenderGraph=function(e){this.updateGraph(),this.renderGraph(e)},a.prototype.setCanvas=function(e){this.element=e,this.isCanvas=!0,this.ctx=this.element.getContext(`2d`),this.setSizeCanvas(e.width,e.height)},a.prototype.setSizeCanvas=function(e,t){this.width=e,this.height=t;var n=this.pixelRatio=window.devicePixelRatio||1;this.element.width=this.canvasWidth=e*n,this.element.height=this.canvasHeight=t*n,n>1&&!this.resize&&(this.element.style.width=e+`px`,this.element.style.height=t+`px`)},a.prototype.renderGraphCanvas=function(e){e||=this,this.prerenderCanvas(),t.prototype.renderGraphCanvas.call(e,this.ctx),this.postrenderCanvas()},a.prototype.prerenderCanvas=function(){var e=this.ctx;if(e.lineCap=`round`,e.lineJoin=`round`,e.clearRect(0,0,this.canvasWidth,this.canvasHeight),e.save(),this.centered){var t=this.width/2*this.pixelRatio,n=this.height/2*this.pixelRatio;e.translate(t,n)}var r=this.pixelRatio*this.zoom;e.scale(r,r),this.onPrerender(e)},a.prototype.postrenderCanvas=function(){this.ctx.restore()},a.prototype.setSvg=function(e){this.element=e,this.isSvg=!0,this.pixelRatio=1;var t=e.getAttribute(`width`),n=e.getAttribute(`height`);this.setSizeSvg(t,n)},a.prototype.setSizeSvg=function(e,t){this.width=e,this.height=t;var n=e/this.zoom,r=t/this.zoom,i=this.centered?-n/2:0,a=this.centered?-r/2:0;this.element.setAttribute(`viewBox`,i+` `+a+` `+n+` `+r),this.resize?(this.element.removeAttribute(`width`),this.element.removeAttribute(`height`)):(this.element.setAttribute(`width`,e),this.element.setAttribute(`height`,t))},a.prototype.renderGraphSvg=function(e){e||=this,o(this.element),this.onPrerender(this.element),t.prototype.renderGraphSvg.call(e,this.element)};function o(e){for(;e.firstChild;)e.removeChild(e.firstChild)}return a.prototype.setDragRotate=function(e){if(e)e===!0&&(e=this);else return;this.dragRotate=e,this.bindDrag(this.element)},a.prototype.dragStart=function(){this.dragStartRX=this.dragRotate.rotate.x,this.dragStartRY=this.dragRotate.rotate.y,n.prototype.dragStart.apply(this,arguments)},a.prototype.dragMove=function(e,t){var r=t.pageX-this.dragStartX,a=t.pageY-this.dragStartY,o=Math.min(this.width,this.height),s=r/o*i,c=a/o*i;this.dragRotate.rotate.x=this.dragStartRX-c,this.dragRotate.rotate.y=this.dragStartRY-s,n.prototype.dragMove.apply(this,arguments)},a})})),B=t(((e,t)=>{(function(e,n){if(typeof t==`object`&&t.exports)t.exports=n(L());else{var r=e.Zdog;r.PathCommand=n(r.Vector)}})(e,function(e){function t(t,i,a){this.method=t,this.points=i.map(n),this.renderPoints=i.map(r),this.previousPoint=a,this.endRenderPoint=this.renderPoints[this.renderPoints.length-1],t==`arc`&&(this.controlPoints=[new e,new e])}function n(t){return t instanceof e?t:new e(t)}function r(t){return new e(t)}t.prototype.reset=function(){var e=this.points;this.renderPoints.forEach(function(t,n){var r=e[n];t.set(r)})},t.prototype.transform=function(e,t,n){this.renderPoints.forEach(function(r){r.transform(e,t,n)})},t.prototype.render=function(e,t,n){return this[this.method](e,t,n)},t.prototype.move=function(e,t,n){return n.move(e,t,this.renderPoints[0])},t.prototype.line=function(e,t,n){return n.line(e,t,this.renderPoints[0])},t.prototype.bezier=function(e,t,n){var r=this.renderPoints[0],i=this.renderPoints[1],a=this.renderPoints[2];return n.bezier(e,t,r,i,a)};var i=9/16;return t.prototype.arc=function(e,t,n){var r=this.previousPoint,a=this.renderPoints[0],o=this.renderPoints[1],s=this.controlPoints[0],c=this.controlPoints[1];return s.set(r).lerp(a,i),c.set(o).lerp(a,i),n.bezier(e,t,s,c,o)},t})})),V=t(((e,t)=>{(function(e,n){if(typeof t==`object`&&t.exports)t.exports=n(P(),L(),B(),R());else{var r=e.Zdog;r.Shape=n(r,r.Vector,r.PathCommand,r.Anchor)}})(e,function(e,t,n,r){var i=r.subclass({stroke:1,fill:!1,color:`#333`,closed:!0,visible:!0,path:[{}],front:{z:1},backface:!0});i.prototype.create=function(e){r.prototype.create.call(this,e),this.updatePath(),this.front=new t(e.front||this.front),this.renderFront=new t(this.front),this.renderNormal=new t};var a=[`move`,`line`,`bezier`,`arc`];i.prototype.updatePath=function(){this.setPath(),this.updatePathCommands()},i.prototype.setPath=function(){},i.prototype.updatePathCommands=function(){var e;this.pathCommands=this.path.map(function(t,r){var i=Object.keys(t),o=i[0],s=t[o];(i.length!=1||a.indexOf(o)==-1)&&(o=`line`,s=t),(o==`line`||o==`move`)&&!Array.isArray(s)&&(s=[s]),o=r===0?`move`:o;var c=new n(o,s,e);return e=c.endRenderPoint,c})},i.prototype.reset=function(){this.renderOrigin.set(this.origin),this.renderFront.set(this.front),this.pathCommands.forEach(function(e){e.reset()})},i.prototype.transform=function(e,t,n){this.renderOrigin.transform(e,t,n),this.renderFront.transform(e,t,n),this.renderNormal.set(this.renderOrigin).subtract(this.renderFront),this.pathCommands.forEach(function(r){r.transform(e,t,n)}),this.children.forEach(function(r){r.transform(e,t,n)})},i.prototype.updateSortValue=function(){var e=this.pathCommands.length,t=this.pathCommands[0].endRenderPoint,n=this.pathCommands[e-1].endRenderPoint;e>2&&t.isSame(n)&&--e;for(var r=0,i=0;i<e;i++)r+=this.pathCommands[i].endRenderPoint.z;this.sortValue=r/e},i.prototype.render=function(e,t){var n=this.pathCommands.length;if(!(!this.visible||!n)&&(this.isFacingBack=this.renderNormal.z>0,!(!this.backface&&this.isFacingBack))){if(!t)throw Error(`Zdog renderer required. Set to `+t);var r=n==1;t.isCanvas&&r?this.renderCanvasDot(e,t):this.renderPath(e,t)}};var o=e.TAU;i.prototype.renderCanvasDot=function(e){var t=this.getLineWidth();if(t){e.fillStyle=this.getRenderColor();var n=this.pathCommands[0].endRenderPoint;e.beginPath();var r=t/2;e.arc(n.x,n.y,r,0,o),e.fill()}},i.prototype.getLineWidth=function(){return this.stroke?this.stroke==1?1:this.stroke:0},i.prototype.getRenderColor=function(){return typeof this.backface==`string`&&this.isFacingBack?this.backface:this.color},i.prototype.renderPath=function(e,t){var n=this.getRenderElement(e,t),r=(this.pathCommands.length!=2||this.pathCommands[1].method!=`line`)&&this.closed,i=this.getRenderColor();t.renderPath(e,n,this.pathCommands,r),t.stroke(e,n,this.stroke,i,this.getLineWidth()),t.fill(e,n,this.fill,i),t.end(e,n)};var s=`http://www.w3.org/2000/svg`;return i.prototype.getRenderElement=function(e,t){if(t.isSvg)return this.svgElement||(this.svgElement=document.createElementNS(s,`path`),this.svgElement.setAttribute(`stroke-linecap`,`round`),this.svgElement.setAttribute(`stroke-linejoin`,`round`)),this.svgElement},i})})),H=t(((e,t)=>{(function(e,n){if(typeof t==`object`&&t.exports)t.exports=n(R());else{var r=e.Zdog;r.Group=n(r.Anchor)}})(e,function(e){var t=e.subclass({updateSort:!1,visible:!0});return t.prototype.updateSortValue=function(){var t=0;this.flatGraph.forEach(function(e){e.updateSortValue(),t+=e.sortValue}),this.sortValue=t/this.flatGraph.length,this.updateSort&&this.flatGraph.sort(e.shapeSorter)},t.prototype.render=function(e,t){this.visible&&this.flatGraph.forEach(function(n){n.render(e,t)})},t.prototype.updateFlatGraph=function(){var e=[];this.flatGraph=this.addChildFlatGraph(e)},t.prototype.getFlatGraph=function(){return[this]},t})})),U=t(((e,t)=>{(function(e,n){if(typeof t==`object`&&t.exports)t.exports=n(V());else{var r=e.Zdog;r.Rect=n(r.Shape)}})(e,function(e){var t=e.subclass({width:1,height:1});return t.prototype.setPath=function(){var e=this.width/2,t=this.height/2;this.path=[{x:-e,y:-t},{x:e,y:-t},{x:e,y:t},{x:-e,y:t}]},t})})),ue=t(((e,t)=>{(function(e,n){if(typeof t==`object`&&t.exports)t.exports=n(V());else{var r=e.Zdog;r.RoundedRect=n(r.Shape)}})(e,function(e){var t=e.subclass({width:1,height:1,cornerRadius:.25,closed:!1});return t.prototype.setPath=function(){var e=this.width/2,t=this.height/2,n=Math.min(e,t),r=Math.min(this.cornerRadius,n),i=e-r,a=t-r,o=[{x:i,y:-t},{arc:[{x:e,y:-t},{x:e,y:-a}]}];a&&o.push({x:e,y:a}),o.push({arc:[{x:e,y:t},{x:i,y:t}]}),i&&o.push({x:-i,y:t}),o.push({arc:[{x:-e,y:t},{x:-e,y:a}]}),a&&o.push({x:-e,y:-a}),o.push({arc:[{x:-e,y:-t},{x:-i,y:-t}]}),i&&o.push({x:i,y:-t}),this.path=o},t})})),W=t(((e,t)=>{(function(e,n){if(typeof t==`object`&&t.exports)t.exports=n(V());else{var r=e.Zdog;r.Ellipse=n(r.Shape)}})(e,function(e){var t=e.subclass({diameter:1,width:void 0,height:void 0,quarters:4,closed:!1});return t.prototype.setPath=function(){var e=this.width==null?this.diameter:this.width,t=this.height==null?this.diameter:this.height,n=e/2,r=t/2;this.path=[{x:0,y:-r},{arc:[{x:n,y:-r},{x:n,y:0}]}],this.quarters>1&&this.path.push({arc:[{x:n,y:r},{x:0,y:r}]}),this.quarters>2&&this.path.push({arc:[{x:-n,y:r},{x:-n,y:0}]}),this.quarters>3&&this.path.push({arc:[{x:-n,y:-r},{x:0,y:-r}]})},t})})),de=t(((e,t)=>{(function(e,n){if(typeof t==`object`&&t.exports)t.exports=n(P(),V());else{var r=e.Zdog;r.Polygon=n(r,r.Shape)}})(e,function(e,t){var n=t.subclass({sides:3,radius:.5}),r=e.TAU;return n.prototype.setPath=function(){this.path=[];for(var e=0;e<this.sides;e++){var t=e/this.sides*r-r/4,n=Math.cos(t)*this.radius,i=Math.sin(t)*this.radius;this.path.push({x:n,y:i})}},n})})),fe=t(((e,t)=>{(function(e,n){if(typeof t==`object`&&t.exports)t.exports=n(P(),L(),R(),W());else{var r=e.Zdog;r.Hemisphere=n(r,r.Vector,r.Anchor,r.Ellipse)}})(e,function(e,t,n,r){var i=r.subclass({fill:!0}),a=e.TAU;i.prototype.create=function(){r.prototype.create.apply(this,arguments),this.apex=new n({addTo:this,translate:{z:this.diameter/2}}),this.renderCentroid=new t},i.prototype.updateSortValue=function(){this.renderCentroid.set(this.renderOrigin).lerp(this.apex.renderOrigin,3/8),this.sortValue=this.renderCentroid.z},i.prototype.render=function(e,t){this.renderDome(e,t),r.prototype.render.apply(this,arguments)},i.prototype.renderDome=function(e,t){if(this.visible){var n=this.getDomeRenderElement(e,t),r=Math.atan2(this.renderNormal.y,this.renderNormal.x),i=this.diameter/2*this.renderNormal.magnitude(),o=this.renderOrigin.x,s=this.renderOrigin.y;if(t.isCanvas){var c=r+a/4,l=r-a/4;e.beginPath(),e.arc(o,s,i,c,l)}else t.isSvg&&(r=(r-a/4)/a*360,this.domeSvgElement.setAttribute(`d`,`M `+-i+`,0 A `+i+`,`+i+` 0 0 1 `+i+`,0`),this.domeSvgElement.setAttribute(`transform`,`translate(`+o+`,`+s+` ) rotate(`+r+`)`));t.stroke(e,n,this.stroke,this.color,this.getLineWidth()),t.fill(e,n,this.fill,this.color),t.end(e,n)}};var o=`http://www.w3.org/2000/svg`;return i.prototype.getDomeRenderElement=function(e,t){if(t.isSvg)return this.domeSvgElement||(this.domeSvgElement=document.createElementNS(o,`path`),this.domeSvgElement.setAttribute(`stroke-linecap`,`round`),this.domeSvgElement.setAttribute(`stroke-linejoin`,`round`)),this.domeSvgElement},i})})),pe=t(((e,t)=>{(function(e,n){if(typeof t==`object`&&t.exports)t.exports=n(P(),B(),V(),H(),W());else{var r=e.Zdog;r.Cylinder=n(r,r.PathCommand,r.Shape,r.Group,r.Ellipse)}})(e,function(e,t,n,r,i){function a(){}var o=r.subclass({color:`#333`,updateSort:!0});o.prototype.create=function(){r.prototype.create.apply(this,arguments),this.pathCommands=[new t(`move`,[{}]),new t(`line`,[{}])]},o.prototype.render=function(e,t){this.renderCylinderSurface(e,t),r.prototype.render.apply(this,arguments)},o.prototype.renderCylinderSurface=function(e,t){if(this.visible){var n=this.getRenderElement(e,t),r=this.frontBase,i=this.rearBase,a=r.renderNormal.magnitude(),o=r.diameter*a+r.getLineWidth();this.pathCommands[0].renderPoints[0].set(r.renderOrigin),this.pathCommands[1].renderPoints[0].set(i.renderOrigin),t.isCanvas&&(e.lineCap=`butt`),t.renderPath(e,n,this.pathCommands),t.stroke(e,n,!0,this.color,o),t.end(e,n),t.isCanvas&&(e.lineCap=`round`)}};var s=`http://www.w3.org/2000/svg`;o.prototype.getRenderElement=function(e,t){if(t.isSvg)return this.svgElement||=document.createElementNS(s,`path`),this.svgElement},o.prototype.copyGraph=a;var c=i.subclass();c.prototype.copyGraph=a;var l=n.subclass({diameter:1,length:1,frontFace:void 0,fill:!0}),u=e.TAU;return l.prototype.create=function(){n.prototype.create.apply(this,arguments),this.group=new o({addTo:this,color:this.color,visible:this.visible});var e=this.length/2,t=this.backface||!0;this.frontBase=this.group.frontBase=new i({addTo:this.group,diameter:this.diameter,translate:{z:e},rotate:{y:u/2},color:this.color,stroke:this.stroke,fill:this.fill,backface:this.frontFace||t,visible:this.visible}),this.rearBase=this.group.rearBase=this.frontBase.copy({translate:{z:-e},rotate:{y:0},backface:t})},l.prototype.render=function(){},[`stroke`,`fill`,`color`,`visible`].forEach(function(e){var t=`_`+e;Object.defineProperty(l.prototype,e,{get:function(){return this[t]},set:function(n){this[t]=n,this.frontBase&&(this.frontBase[e]=n,this.rearBase[e]=n,this.group[e]=n)}})}),l})})),me=t(((e,t)=>{(function(e,n){if(typeof t==`object`&&t.exports)t.exports=n(P(),L(),B(),R(),W());else{var r=e.Zdog;r.Cone=n(r,r.Vector,r.PathCommand,r.Anchor,r.Ellipse)}})(e,function(e,t,n,r,i){var a=i.subclass({length:1,fill:!0}),o=e.TAU;a.prototype.create=function(){i.prototype.create.apply(this,arguments),this.apex=new r({addTo:this,translate:{z:this.length}}),this.renderApex=new t,this.renderCentroid=new t,this.tangentA=new t,this.tangentB=new t,this.surfacePathCommands=[new n(`move`,[{}]),new n(`line`,[{}]),new n(`line`,[{}])]},a.prototype.updateSortValue=function(){this.renderCentroid.set(this.renderOrigin).lerp(this.apex.renderOrigin,1/3),this.sortValue=this.renderCentroid.z},a.prototype.render=function(e,t){this.renderConeSurface(e,t),i.prototype.render.apply(this,arguments)},a.prototype.renderConeSurface=function(e,t){if(this.visible){this.renderApex.set(this.apex.renderOrigin).subtract(this.renderOrigin);var n=this.renderNormal.magnitude(),r=this.renderApex.magnitude2d(),i=this.renderNormal.magnitude2d(),a=Math.acos(i/n),s=Math.sin(a),c=this.diameter/2*n;if(c*s<r){var l=Math.atan2(this.renderNormal.y,this.renderNormal.x)+o/2,u=r/s,d=Math.acos(c/u),f=this.tangentA,p=this.tangentB;f.x=Math.cos(d)*c*s,f.y=Math.sin(d)*c,p.set(this.tangentA),p.y*=-1,f.rotateZ(l),p.rotateZ(l),f.add(this.renderOrigin),p.add(this.renderOrigin),this.setSurfaceRenderPoint(0,f),this.setSurfaceRenderPoint(1,this.apex.renderOrigin),this.setSurfaceRenderPoint(2,p);var m=this.getSurfaceRenderElement(e,t);t.renderPath(e,m,this.surfacePathCommands),t.stroke(e,m,this.stroke,this.color,this.getLineWidth()),t.fill(e,m,this.fill,this.color),t.end(e,m)}}};var s=`http://www.w3.org/2000/svg`;return a.prototype.getSurfaceRenderElement=function(e,t){if(t.isSvg)return this.surfaceSvgElement||(this.surfaceSvgElement=document.createElementNS(s,`path`),this.surfaceSvgElement.setAttribute(`stroke-linecap`,`round`),this.surfaceSvgElement.setAttribute(`stroke-linejoin`,`round`)),this.surfaceSvgElement},a.prototype.setSurfaceRenderPoint=function(e,t){this.surfacePathCommands[e].renderPoints[0].set(t)},a})})),he=t(((e,t)=>{(function(e,n){if(typeof t==`object`&&t.exports)t.exports=n(P(),R(),V(),U());else{var r=e.Zdog;r.Box=n(r,r.Anchor,r.Shape,r.Rect)}})(e,function(e,t,n,r){var i=r.subclass();i.prototype.copyGraph=function(){};var a=e.TAU,o=[`frontFace`,`rearFace`,`leftFace`,`rightFace`,`topFace`,`bottomFace`],s=e.extend({},n.defaults);delete s.path,o.forEach(function(e){s[e]=!0}),e.extend(s,{width:1,height:1,depth:1,fill:!0});var c=t.subclass(s);return c.prototype.create=function(e){t.prototype.create.call(this,e),this.updatePath(),this.fill=this.fill},c.prototype.updatePath=function(){o.forEach(function(e){this[e]=this[e]},this)},o.forEach(function(e){var t=`_`+e;Object.defineProperty(c.prototype,e,{get:function(){return this[t]},set:function(n){this[t]=n,this.setFace(e,n)}})}),c.prototype.setFace=function(e,t){var n=e+`Rect`,r=this[n];if(!t){this.removeChild(r);return}var a=this.getFaceOptions(e);a.color=typeof t==`string`?t:this.color,r?r.setOptions(a):r=this[n]=new i(a),r.updatePath(),this.addChild(r)},c.prototype.getFaceOptions=function(e){return{frontFace:{width:this.width,height:this.height,translate:{z:this.depth/2}},rearFace:{width:this.width,height:this.height,translate:{z:-this.depth/2},rotate:{y:a/2}},leftFace:{width:this.depth,height:this.height,translate:{x:-this.width/2},rotate:{y:-a/4}},rightFace:{width:this.depth,height:this.height,translate:{x:this.width/2},rotate:{y:a/4}},topFace:{width:this.width,height:this.depth,translate:{y:-this.height/2},rotate:{x:-a/4}},bottomFace:{width:this.width,height:this.depth,translate:{y:this.height/2},rotate:{x:a/4}}}[e]},[`color`,`stroke`,`fill`,`backface`,`front`,`visible`].forEach(function(e){var t=`_`+e;Object.defineProperty(c.prototype,e,{get:function(){return this[t]},set:function(n){this[t]=n,o.forEach(function(t){var r=this[t+`Rect`],i=typeof this[t]==`string`;r&&!(e==`color`&&i)&&(r[e]=n)},this)}})}),c})})),G=e(t(((e,t)=>{(function(e,n){typeof t==`object`&&t.exports?t.exports=n(P(),F(),I(),L(),R(),z(),le(),B(),V(),H(),U(),ue(),W(),de(),fe(),pe(),me(),he()):typeof define==`function`&&define.amd&&define(`zdog`,[],e.Zdog)})(e,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_){return e.CanvasRenderer=t,e.SvgRenderer=n,e.Vector=r,e.Anchor=i,e.Dragger=a,e.Illustration=o,e.PathCommand=s,e.Shape=c,e.Group=l,e.Rect=u,e.RoundedRect=d,e.Ellipse=f,e.Polygon=p,e.Hemisphere=m,e.Cylinder=h,e.Cone=g,e.Box=_,e})}))(),1),K=new Map([[`idle`,{geometry:{},motion:{target:`root`,translate:{y:.5},durationMs:2e3,repeat:`yoyo`},mouseInfluence:1}],[`listening`,{geometry:{},motion:{target:`root`,rotate:{x:-.2},durationMs:300,repeat:`yoyo`},mouseInfluence:.3}],[`processing`,{geometry:{},mouseInfluence:.2}],[`speaking`,{geometry:{},motion:{target:`root`,translate:{y:.5},durationMs:1500,repeat:`yoyo`},mouseInfluence:0,mouthCycle:[{durationMs:100,mouth:`open`},{durationMs:150,mouth:`base`},{durationMs:100,mouth:`open`},{durationMs:200,mouth:`base`}]}],[`thinking`,{geometry:{},motion:{target:`root`,rotate:{z:.1},durationMs:800,repeat:`yoyo`},mouseInfluence:0}],[`error`,{geometry:{expression:`dead`},mouseInfluence:.1}]]),ge=48,q=(e,t)=>Math.min(e,t)/ge,J=e=>e!==void 0&&e>0?e:1,Y=(e,t,n,r)=>{let i=Math.min(1,Math.sqrt(n/(e*t*r*r)));return[Math.max(1,Math.floor(e*i)),Math.max(1,Math.floor(t*i))]},X=(e,t)=>{if(!Number.isFinite(e))throw Error(`Sprite ${t} must be finite`)},Z=(e,t)=>{let n=e.ownerDocument.defaultView,r=n?.getComputedStyle(e)?.[t]??``,i=Number.parseFloat(r);if(i>0&&r.trim().endsWith(`px`))return i;let a=e.style[t],o=Number.parseFloat(a);if(o>0&&a.trim().endsWith(`px`))return o;let s=e.getBoundingClientRect(),c=t===`width`?s.width:s.height;if(c>0)return c;for(let r=e.parentElement;r;r=r.parentElement){let e=n?.getComputedStyle(r)[t],i=Number.parseFloat(e??``);if(i>0&&e?.trim().endsWith(`px`))return i}return e[t]||48},Q=e=>{if(!e)return{};let t={};return e.x!==void 0&&(t.x=e.x),e.y!==void 0&&(t.y=e.y),e.z!==void 0&&(t.z=e.z),t},$=e=>e?e<=.5?`small`:e<=.8?`medium`:`big`:`off`,_e=e=>{let t=new Map,n=new Map;for(let r of e.nodes){let e=r.parent===void 0?void 0:t.get(r.parent),i={kind:r.kind,name:r.options.name,children:[],options:r.options};t.set(r.id,i),i.name&&n.set(i.name,i),e?.children.push(i)}let r=t.get(e.root);if(!r)throw Error(`Portable Zdog scene has no root`);let i=new Map;for(let[n,r]of Object.entries(e.variants)){let e=new Map;for(let[n,i]of Object.entries(r)){let r=t.get(i);if(!r)throw Error(`Portable Zdog variant node is missing: ${i}`);e.set(n,r)}i.set(n,e)}return{root:r,nodesByName:n,variants:i,palette:e.palette,activities:e.activities,expressions:e.expressions}},ve=class{internals;target;view;onInvalidate;maxPixels;originalStyle;originalHasInlineWidth;originalHasInlineHeight;originalWidthAttribute;originalHeightAttribute;illustration;avatar;animationPivot;items=new Map;variantItems=new Map;palette;mouseListener;resizeObserver;animationTween=null;mouthCycleTimeline=null;entryTween=null;mouseX=0;mouseY=0;mouseInfluence=1;dirty=!0;destroyed=!1;paused=!1;lastRenderTime=0;constructor({target:e,scene:t,onInvalidate:n,palette:r,maxPixels:i}){this.target=e,this.view=e.ownerDocument.defaultView,this.onInvalidate=n,this.maxPixels=i,this.originalStyle=e.getAttribute(`style`),this.originalHasInlineWidth=e.style.width!==``,this.originalHasInlineHeight=e.style.height!==``,this.originalWidthAttribute=e.getAttribute(`width`),this.originalHeightAttribute=e.getAttribute(`height`),this.internals=_e(t),this.palette={...this.internals.palette};for(let[e,t]of Object.entries(r??{})){if(!(e in this.internals.palette))throw Error(`Unknown Sprite palette slot: ${e}`);t!==void 0&&(this.palette[e]=t)}let a=Z(e,`width`),o=Z(e,`height`),[s,c]=Y(a,o,i,J(this.view?.devicePixelRatio));e.width=Math.round(s),e.height=Math.round(c),this.illustration=new G.Illustration({element:e,resize:!1,zoom:q(s,c)}),this.illustration.setSize(s,c),this.preserveCanvasStyle(a,o),this.avatar=new G.Group({addTo:this.illustration,rotate:{x:-G.TAU/1.05}}),this.animationPivot=new G.Group({addTo:this.avatar}),this.createScene(this.internals.root,this.animationPivot),this.indexVariants(),this.mouseListener=e=>{this.onMouseMove(e)},this.view?.addEventListener(`mousemove`,this.mouseListener);let l=globalThis.ResizeObserver;this.resizeObserver=new l(()=>{this.destroyed||this.resize()});try{this.resizeObserver.observe(e),this.present({activity:t.defaultPresentation.activity,expression:t.defaultPresentation.expression})}catch(e){throw this.stopAnimations(),this.view?.removeEventListener(`mousemove`,this.mouseListener),this.resizeObserver.disconnect(),e}}present(e){if(this.assertAlive(),!(e.expression in this.internals.expressions))throw Error(`Unknown Sprite expression: ${e.expression}`);if(!(e.activity in this.internals.activities)&&!K.has(e.activity))throw Error(`Unknown Sprite activity: ${e.activity}`);this.stopAnimations();let t=this.activitySpec(e.activity),n=this.internals.expressions[e.expression],r=t.geometry?.expression??e.expression,i=this.internals.expressions[r]??n;this.mouseInfluence=t.mouseInfluence??1,this.applyVariants(i,t.geometry),this.resetPivot(),t.motion&&this.startMotion(t.motion,!0),i?.motion&&this.startMotion(i.motion,!1),t.mouthCycle&&this.internals.variants.get(`mouth`)?.size&&this.startMouthCycle(t.mouthCycle,i),this.dirty=!0,this.pause(this.paused)}setPalette(e){this.assertAlive();for(let t of Object.keys(e))if(!Object.hasOwn(this.internals.palette,t))throw Error(`Unknown Sprite palette slot: ${t}`);Object.assign(this.palette,this.internals.palette,e);for(let[e,t]of this.items){for(let n of[`color`,`backface`,`frontFace`]){let r=e.options[n],i=s(r);i&&(t[n]=this.palette[i])}e.kind===`cylinder`&&t.frontBase!==void 0&&t.rearBase!==void 0&&(t.frontFace?t.frontBase.backface=t.frontFace:t.backface?t.frontBase.backface=t.backface:t.frontBase.backface=!0,t.backface?t.rearBase.backface=t.backface:t.rearBase.backface=!0)}this.dirty=!0,this.onInvalidate()}pause(e){this.paused=e;for(let t of[this.animationTween,this.mouthCycleTimeline,this.entryTween])e?t?.pause():t?.resume()}seek(e){if(X(e,`timeMs`),e<0)throw RangeError(`timeMs must be nonnegative`);this.pause(!0);for(let t of[this.animationTween,this.mouthCycleTimeline,this.entryTween])t?.seek(e);this.dirty=!0,this.renderStill()}tick(e){if(this.destroyed||!this.illustration.ctx)return!1;let t=this.hasActiveTween();return(this.dirty||t||this.mouseNeedsRender())&&e-this.lastRenderTime>=1e3/24&&(this.updateMouseTracking(),this.illustration.updateRenderGraph(),this.lastRenderTime=e,this.dirty=!1),this.dirty||this.hasActiveTween()||this.mouseNeedsRender()}renderStill(){this.destroyed||!this.dirty||!this.illustration.ctx||(this.illustration.updateRenderGraph(),this.dirty=!1)}resize(){this.assertAlive();let e=Z(this.target,`width`),t=Z(this.target,`height`),[n,r]=Y(e,t,this.maxPixels,J(this.view?.devicePixelRatio));this.illustration.zoom=q(n,r),this.illustration.setSize(n,r),this.preserveCanvasStyle(e,t),this.dirty=!0,this.onInvalidate()}destroy(){if(this.destroyed)throw Error(`Sprite instance has already been destroyed`);this.destroyed=!0,this.stopAnimations(),this.view?.removeEventListener(`mousemove`,this.mouseListener),this.resizeObserver.disconnect();let e=this.target.getContext(`2d`);e&&e.clearRect(0,0,this.target.width,this.target.height),this.restoreCanvasAttributes()}createScene(e,t){let n={...e.options};delete n.parent,delete n.name,delete n.x,delete n.y,delete n.z,n.addTo=t,n.translate?n.translate=Q(n.translate):(e.options.x!==void 0||e.options.y!==void 0||e.options.z!==void 0)&&(n.translate=Q({x:e.options.x,y:e.options.y,z:e.options.z}));let r=s(n.color);r&&(n.color=this.palette[r]);let i=s(n.backface);i&&(n.backface=this.palette[i]);let a=s(n.frontFace);a&&(n.frontFace=this.palette[a]);let o;switch(e.kind){case`group`:o=new G.Group(n);break;case`shape`:n.path=n.path??[{}],o=new G.Shape(n);break;case`ellipse`:o=new G.Ellipse(n);break;case`hemisphere`:o=new G.Hemisphere(n);break;case`cylinder`:o=new G.Cylinder(n)}this.items.set(e,o);for(let t of e.children)this.createScene(t,o);return o}indexVariants(){for(let[e,t]of this.internals.variants.entries()){let n=new Map;for(let[e,r]of t.entries()){let t=this.items.get(r);t&&n.set(e,t)}this.variantItems.set(e,n)}}applyVariants(e,t){for(let e of this.variantItems.values())for(let t of e.values())t.visible=!1;let n={...e?.variants};for(let[t,r]of Object.entries(e?.variantChoices??{})){let e=r[Math.min(r.length-1,Math.floor(Math.random()*r.length))];e!==void 0&&(n[t]=e)}t?.eyes&&(n.eyes=t.eyes),t?.mouth&&(n.mouth=t.mouth),t?.blush===void 0?e?.blush!==void 0&&(n.blush=$(e.blush)):n.blush=$(t.blush);for(let[e,t]of Object.entries(n)){let n=this.variantItems.get(e)?.get(t);n&&(n.visible=!0)}}activitySpec(e){let t=K.get(e)??{geometry:{},mouseInfluence:1},n=this.internals.activities[e];if(!n)return t;let r=n.motion??t.motion,i=n.mouthCycle??t.mouthCycle,a={...t,...n,geometry:{...t.geometry,...n.geometry}};return r!==void 0&&(a.motion=r),i!==void 0&&(a.mouthCycle=i),a}startMotion(e,t){let n=this.internals.nodesByName.get(e.target),r=n===this.internals.root?this.animationPivot:n?this.items.get(n):void 0;if(!r)return;let i=N({loop:e.repeat===`loop`||e.repeat===`yoyo`,alternate:e.repeat===`yoyo`}),a=e.durationMs??1e3;e.translate&&i.add(r.translate,{...Q(e.translate),duration:a,ease:`inOutSine`},0),e.rotate&&i.add(r.rotate,{...Q(e.rotate),duration:a,ease:`inOutSine`},0),t?this.animationTween=i:this.entryTween=i}startMouthCycle(e,t){let n=[],r=0;for(let i of e)X(i.durationMs,`mouthCycle.durationMs`),r+=i.durationMs,n.push({until:r,mouth:i.mouth===`open`?`open`:t?.variants?.mouth});let i;this.mouthCycleTimeline=p({duration:r,loop:!0,onUpdate:e=>{let t=n.find(t=>e.iterationCurrentTime<t.until)?.mouth;t&&t!==i&&(i=t,this.showVariant(`mouth`,t))},onLoop:()=>{i=void 0}})}showVariant(e,t){let n=this.variantItems.get(e);if(n===void 0)return;let r=n.get(t);if(r!==void 0){for(let e of n.values())e.visible=!1;r.visible=!0,this.dirty=!0}}resetPivot(){Object.assign(this.animationPivot.rotate,{x:0,y:0,z:0}),Object.assign(this.animationPivot.translate,{x:0,y:0,z:0}),Object.assign(this.avatar.rotate,{x:-G.TAU/1.05,y:0,z:0})}stopAnimations(){this.animationTween?.cancel(),this.mouthCycleTimeline?.cancel(),this.entryTween?.cancel(),this.animationTween=null,this.mouthCycleTimeline=null,this.entryTween=null}hasActiveTween(){return[this.animationTween,this.mouthCycleTimeline,this.entryTween].some(e=>e!==null&&!e.paused&&!e.completed&&!e.cancelled)}onMouseMove(e){if(this.destroyed||this.paused)return;let t=this.target.getBoundingClientRect(),n=t.width||1,r=t.height||1;this.mouseX=Math.max(-1,Math.min(1,(e.clientX-t.left-n/2)/(n/2))),this.mouseY=Math.max(-1,Math.min(1,(e.clientY-t.top-r/2)/(r/2))),this.dirty=!0,this.onInvalidate()}updateMouseTracking(){let e=-this.mouseX*.4*this.mouseInfluence,t=-G.TAU/1.05-this.mouseY*.2*this.mouseInfluence,n=(e-this.avatar.rotate.y)*.08,r=(t-this.avatar.rotate.x)*.08;this.avatar.rotate.y+=n,this.avatar.rotate.x+=r,(Math.abs(n)>.001||Math.abs(r)>.001)&&(this.dirty=!0)}mouseNeedsRender(){return Math.abs(this.avatar.rotate.y+this.mouseX*.4*this.mouseInfluence)>.001||Math.abs(this.avatar.rotate.x+G.TAU/1.05+this.mouseY*.2*this.mouseInfluence)>.001}assertAlive(){if(this.destroyed)throw Error(`Sprite instance has been destroyed`)}restoreCanvasAttributes(){this.originalStyle===null?this.target.removeAttribute(`style`):this.target.setAttribute(`style`,this.originalStyle),this.originalWidthAttribute===null?this.target.removeAttribute(`width`):this.target.setAttribute(`width`,this.originalWidthAttribute),this.originalHeightAttribute===null?this.target.removeAttribute(`height`):this.target.setAttribute(`height`,this.originalHeightAttribute)}preserveCanvasStyle(e,t){this.originalStyle!==null&&this.target.setAttribute(`style`,this.originalStyle),this.originalHasInlineWidth||(this.target.style.width=`${String(Math.round(e))}px`),this.originalHasInlineHeight||(this.target.style.height=`${String(Math.round(t))}px`)}},ye=e=>new ve(e),be=e=>r(function*(){let t=c.parse(e.document.data),r=yield*o(i(()=>e.target.ownerDocument.createElement(`canvas`)),e=>i(()=>{e.remove()}));r.style.cssText=`width:100%;height:100%;display:block`,e.target.replaceChildren(r);let s=e.target.ownerDocument.defaultView;if(!s)throw Error(`Zdog avatar requires a browser window`);let l,u=!0,d=!1,f=()=>{u||d||l!==void 0||(l=s.requestAnimationFrame(e=>{l=void 0,m.tick(e)&&f()}))},p=()=>{d||(u?m.renderStill():f())},m=yield*o(i(()=>ye({target:r,scene:t,onInvalidate:p,maxPixels:e.maxPixels})),e=>i(()=>{e.destroy()}));yield*a(()=>i(()=>{d=!0,l!==void 0&&s.cancelAnimationFrame(l)})),m.pause(!0);let h=!1,g,_;return{activities:[`idle`,`listening`,`processing`,`speaking`,`thinking`,`error`,...Object.keys(t.activities)],expressions:[t.defaultPresentation.expression,...Object.keys(t.expressions)].filter((e,t,n)=>n.indexOf(e)===t),set(e){let r={};for(let[t,i]of Object.entries(e.appearance)){let e=n().safeParse(i);if(!e.success)throw Error(`Zdog palette value must be a color: ${t}`);r[t]=e.data}let i=JSON.stringify(r);i!==_&&(m.setPalette(r),_=i);let a=e.expression??t.defaultPresentation.expression;if(!a)throw Error(`Zdog avatar needs an expression`);let o=JSON.stringify([e.activity,a]);o!==g&&(m.present({activity:e.activity,expression:a}),g=o),h=e.timeMs!==void 0,e.timeMs!==void 0&&m.seek(e.timeMs),p()},pause(e){u=h||e,m.pause(u),u&&l!==void 0&&(s.cancelAnimationFrame(l),l=void 0),p()}}});export{be as t};
|