@plurnk/plurnk-web 0.0.0-stage → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +337 -2
- package/SPEC.md +869 -0
- package/ai.plurnk/.env.defaults +38 -0
- package/ai.plurnk/assets.json +193 -0
- package/ai.plurnk/creations.js +65 -0
- package/ai.plurnk/diagram-compiler.js +15 -0
- package/ai.plurnk/diagrams.js +130 -0
- package/ai.plurnk/directory-addresses.js +35 -0
- package/ai.plurnk/dist/assets/Temml-CCjoacWt.woff2 +0 -0
- package/ai.plurnk/dist/assets/index-DQK23MMn.js +2 -0
- package/ai.plurnk/dist/assets/index-DQK23MMn.js.br +0 -0
- package/ai.plurnk/dist/assets/index-DQK23MMn.js.gz +0 -0
- package/ai.plurnk/dist/assets/index-DgGvOprn.css +1 -0
- package/ai.plurnk/dist/assets/index-DgGvOprn.css.br +0 -0
- package/ai.plurnk/dist/assets/index-DgGvOprn.css.gz +0 -0
- package/ai.plurnk/dist/assets/math-renderer-CZ_XtOMq.css +1 -0
- package/ai.plurnk/dist/assets/math-renderer-CZ_XtOMq.css.br +0 -0
- package/ai.plurnk/dist/assets/math-renderer-CZ_XtOMq.css.gz +0 -0
- package/ai.plurnk/dist/assets/math-renderer-CnlgS6FH.js +96 -0
- package/ai.plurnk/dist/assets/math-renderer-CnlgS6FH.js.br +0 -0
- package/ai.plurnk/dist/assets/math-renderer-CnlgS6FH.js.gz +0 -0
- package/ai.plurnk/dist/assets/overview-IkhWTlh2.js +1 -0
- package/ai.plurnk/dist/assets/overview-IkhWTlh2.js.br +0 -0
- package/ai.plurnk/dist/assets/overview-IkhWTlh2.js.gz +0 -0
- package/ai.plurnk/dist/assets/preload-helper-BjS5LQBu.js +1 -0
- package/ai.plurnk/dist/assets/preload-helper-BjS5LQBu.js.br +0 -0
- package/ai.plurnk/dist/assets/preload-helper-BjS5LQBu.js.gz +0 -0
- package/ai.plurnk/dist/assets/session-BgePzPYk.js +4 -0
- package/ai.plurnk/dist/assets/session-BgePzPYk.js.br +0 -0
- package/ai.plurnk/dist/assets/session-BgePzPYk.js.gz +0 -0
- package/ai.plurnk/dist/assets/session-agent-DWERfauE.js +111 -0
- package/ai.plurnk/dist/assets/session-agent-DWERfauE.js.br +0 -0
- package/ai.plurnk/dist/assets/session-agent-DWERfauE.js.gz +0 -0
- package/ai.plurnk/dist/assets/src-BdHyjaXT.js +1 -0
- package/ai.plurnk/dist/assets/src-BdHyjaXT.js.br +0 -0
- package/ai.plurnk/dist/assets/src-Vt7-ppeC.js +6 -0
- package/ai.plurnk/dist/assets/src-Vt7-ppeC.js.br +0 -0
- package/ai.plurnk/dist/assets/src-Vt7-ppeC.js.gz +0 -0
- package/ai.plurnk/dist/icons/APACHE-2.0.txt +202 -0
- package/ai.plurnk/dist/icons/APACHE-2.0.txt.br +0 -0
- package/ai.plurnk/dist/icons/APACHE-2.0.txt.gz +0 -0
- package/ai.plurnk/dist/icons/NOTO-NOTICE.txt +10 -0
- package/ai.plurnk/dist/icons/NOTO-NOTICE.txt.br +0 -0
- package/ai.plurnk/dist/icons/NOTO-NOTICE.txt.gz +0 -0
- package/ai.plurnk/dist/icons/plurnk-maskable.svg +64 -0
- package/ai.plurnk/dist/icons/plurnk-maskable.svg.br +0 -0
- package/ai.plurnk/dist/icons/plurnk-maskable.svg.gz +0 -0
- package/ai.plurnk/dist/icons/plurnk.svg +63 -0
- package/ai.plurnk/dist/icons/plurnk.svg.br +0 -0
- package/ai.plurnk/dist/icons/plurnk.svg.gz +0 -0
- package/ai.plurnk/dist/index.html +421 -0
- package/ai.plurnk/dist/manifest.webmanifest +27 -0
- package/ai.plurnk/dist/manifest.webmanifest.br +0 -0
- package/ai.plurnk/dist/manifest.webmanifest.gz +0 -0
- package/ai.plurnk/dist/vendor/CFWORKER-JSON-SCHEMA-LICENSE.txt +25 -0
- package/ai.plurnk/dist/vendor/CFWORKER-JSON-SCHEMA-LICENSE.txt.br +0 -0
- package/ai.plurnk/dist/vendor/CFWORKER-JSON-SCHEMA-LICENSE.txt.gz +0 -0
- package/ai.plurnk/dist/vendor/DEPENDENCIES-LICENSE.txt +571 -0
- package/ai.plurnk/dist/vendor/DEPENDENCIES-LICENSE.txt.br +0 -0
- package/ai.plurnk/dist/vendor/DEPENDENCIES-LICENSE.txt.gz +0 -0
- package/ai.plurnk/dist/vendor/MARKED-FOOTNOTE-LICENSE.txt +25 -0
- package/ai.plurnk/dist/vendor/MARKED-FOOTNOTE-LICENSE.txt.br +0 -0
- package/ai.plurnk/dist/vendor/MARKED-FOOTNOTE-LICENSE.txt.gz +0 -0
- package/ai.plurnk/dist/vendor/OTM-LICENSE.txt +21 -0
- package/ai.plurnk/dist/vendor/OTM-LICENSE.txt.br +0 -0
- package/ai.plurnk/dist/vendor/OTM-LICENSE.txt.gz +0 -0
- package/ai.plurnk/dist/vendor/PICO-LICENSE.txt +21 -0
- package/ai.plurnk/dist/vendor/PICO-LICENSE.txt.br +0 -0
- package/ai.plurnk/dist/vendor/PICO-LICENSE.txt.gz +0 -0
- package/ai.plurnk/documents.js +483 -0
- package/ai.plurnk/http.js +69 -0
- package/ai.plurnk/index-document.js +5 -0
- package/ai.plurnk/module.js +326 -0
- package/ai.plurnk/session.js +319 -0
- package/ai.plurnk/static-assets.js +40 -0
- package/package.json +92 -5
- package/plugin.json +13 -0
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{r as InvalidProblemDetailsError,i as Validator}from"./src-Vt7-ppeC.js";import"./session-BgePzPYk.js";
|
|
Binary file
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
function e(t,n){let r=typeof t;if(r!==typeof n)return!1;let i=Array.isArray(t);if(i!==Array.isArray(n))return!1;if(i){let r=t.length;if(r!==n.length)return!1;for(let i=0;i<r;i++)if(!e(t[i],n[i]))return!1;return!0}if(r===`object`){if(!t||!n)return t===n;let r=Object.keys(t),i=Object.keys(n);if(r.length!==i.length)return!1;for(let i of r)if(!Object.prototype.hasOwnProperty.call(n,i)||!e(t[i],n[i]))return!1;return!0}return t===n}function t(e){return encodeURI(n(e))}function n(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}var r={prefixItems:!0,items:!0,allOf:!0,anyOf:!0,oneOf:!0},i={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependentSchemas:!0},a={id:!0,$id:!0,$ref:!0,$schema:!0,$anchor:!0,$vocabulary:!0,$comment:!0,default:!0,enum:!0,const:!0,required:!0,dependentRequired:!0,type:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0},o=typeof self<`u`&&self.location&&self.location.origin!==`null`?new URL(self.location.origin+self.location.pathname+location.search):new URL(`https://github.com/cfworker`);function s(e,n=Object.create(null),c=o,l=``){if(e&&typeof e==`object`&&!Array.isArray(e)){let t=e.$id||e.id;if(t){let r=new URL(t,c.href);r.hash.length>1?n[r.href]=e:(r.hash=``,l===``?c=r:s(e,n,c))}}else if(e!==!0&&e!==!1)return n;let u=c.href+(l?`#`+l:``);if(n[u]!==void 0&&n[u]!==e)throw Error(`Duplicate schema URI "${u}".`);if(n[u]=e,e===!0||e===!1)return n;if(e.__absolute_uri__===void 0&&Object.defineProperty(e,"__absolute_uri__",{enumerable:!1,value:u}),e.$ref&&e.__absolute_ref__===void 0){let t=new URL(e.$ref,c.href);t.hash=t.hash,Object.defineProperty(e,"__absolute_ref__",{enumerable:!1,value:t.href})}if(e.$recursiveRef&&e.__absolute_recursive_ref__===void 0){let t=new URL(e.$recursiveRef,c.href);t.hash=t.hash,Object.defineProperty(e,"__absolute_recursive_ref__",{enumerable:!1,value:t.href})}if(e.$anchor){let t=new URL(`#`+e.$anchor,c.href);n[t.href]=e}for(let o in e){if(a[o])continue;let u=`${l}/${t(o)}`,d=e[o];if(Array.isArray(d)){if(r[o]){let e=d.length;for(let t=0;t<e;t++)s(d[t],n,c,`${u}/${t}`)}}else if(i[o])for(let e in d)s(d[e],n,c,`${u}/${t(e)}`);else s(d,n,c,u)}return n}var c=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,l=[0,31,28,31,30,31,30,31,31,30,31,30,31],u=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,d=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,f=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,p=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,m=/^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,ee=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,h=/^(?:\/(?:[^~/]|~0|~1)*)*$/,g=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,_=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,v=e=>{if(e[0]===`"`)return!1;let[t,n,...r]=e.split(`@`);return!t||!n||r.length!==0||t.length>64||n.length>253||t[0]===`.`||t.endsWith(`.`)||t.includes(`..`)||!/^[a-z0-9.-]+$/i.test(n)||!/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+$/i.test(t)?!1:n.split(`.`).every(e=>/^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i.test(e))},y=/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,b=/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,x=e=>e.length>1&&e.length<80&&(/^P\d+([.,]\d+)?W$/.test(e)||/^P[\dYMDTHS]*(\d[.,]\d+)?[YMDHS]$/.test(e)&&/^P([.,\d]+Y)?([.,\d]+M)?([.,\d]+D)?(T([.,\d]+H)?([.,\d]+M)?([.,\d]+S)?)?$/.test(e));function S(e){return e.test.bind(e)}var te={date:C,time:w.bind(void 0,!1),"date-time":T,duration:x,uri:oe,"uri-reference":S(f),"uri-template":S(p),url:S(m),email:v,hostname:S(d),ipv4:S(y),ipv6:S(b),regex:E,uuid:S(ee),"json-pointer":S(h),"json-pointer-uri-fragment":S(g),"relative-json-pointer":S(_)};function ne(e){return e%4==0&&(e%100!=0||e%400==0)}function C(e){let t=e.match(c);if(!t)return!1;let n=t[1],r=t[2],i=t[3];if(!n||!r||!i)return!1;let a=+n,o=+r,s=+i,u=o==2&&ne(a)?29:l[o];return o>=1&&o<=12&&s>=1&&u!==void 0&&s<=u}function w(e,t){let n=t.match(u);if(!n)return!1;let r=n[1],i=n[2],a=n[3];if(!r||!i||!a)return!1;let o=+r,s=+i,c=+a,l=!!n[5];return(o<=23&&s<=59&&c<=59||o==23&&s==59&&c==60)&&(!e||l)}var re=/t|\s/i;function T(e){let[t,n,r]=e.split(re);return t!==void 0&&n!==void 0&&r===void 0&&C(t)&&w(!0,n)}var ie=/\/|:/,ae=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function oe(e){return ie.test(e)&&ae.test(e)}var se=/[^\\]\\Z/;function E(e){if(se.test(e))return!1;try{return new RegExp(e,`u`),!0}catch{return!1}}function ce(e){let t=0,n=e.length,r=0,i;for(;r<n;)t++,i=e.charCodeAt(r++),i>=55296&&i<=56319&&r<n&&(i=e.charCodeAt(r),(i&64512)==56320&&r++);return t}function D(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function O(e){let t=Math.abs(e).toString().split(`e`),n=t[0],r=t[1]??`0`,i=n.indexOf(`.`),a=i===-1?0:n.length-i-1;return[BigInt(n.replace(`.`,``)),Number(r)-a]}function le(e,t){if(!Number.isFinite(e)||!Number.isFinite(t)||t<=0)return!1;let[n,r]=O(e),[i,a]=O(t),o=r-a;return o>=0?n*10n**BigInt(o)%i==0n:n%(i*10n**BigInt(-o))==0n}function k(n,r,i=`2019-09`,a=s(r),o=!0,c=null,l=`#`,u=`#`,d=Object.create(null)){if(r===!0)return{valid:!0,errors:[]};if(r===!1)return{valid:!1,errors:[{instanceLocation:l,keyword:`false`,keywordLocation:l,error:`False boolean schema.`}]};let f=typeof n,p;switch(f){case`boolean`:case`number`:case`string`:p=f;break;case`object`:p=n===null?`null`:Array.isArray(n)?`array`:`object`;break;default:throw Error(`Instances of "${f}" type are not supported.`)}let{$ref:m,$recursiveRef:ee,$recursiveAnchor:h,type:g,const:_,enum:v,required:y,not:b,anyOf:x,allOf:S,oneOf:ne,if:C,then:w,else:re,format:T,properties:ie,patternProperties:ae,additionalProperties:oe,unevaluatedProperties:se,minProperties:E,maxProperties:O,propertyNames:A,dependentRequired:j,dependentSchemas:M,dependencies:N,prefixItems:P,items:F,additionalItems:ue,unevaluatedItems:de,contains:I,minContains:L,maxContains:R,minItems:z,maxItems:B,uniqueItems:fe,minimum:V,maximum:H,exclusiveMinimum:U,exclusiveMaximum:W,multipleOf:G,minLength:K,maxLength:q,pattern:pe,__absolute_ref__:J,__absolute_recursive_ref__:me}=r,Y=[];if(h===!0&&c===null&&(c=r),ee===`#`){let e=c===null?a[me]:c,t=`${u}/$recursiveRef`,s=k(n,c===null?r:c,i,a,o,e,l,t,d);s.valid||Y.push({instanceLocation:l,keyword:`$recursiveRef`,keywordLocation:t,error:`A subschema had errors.`},...s.errors)}if(m!==void 0){let e=a[J||m];if(e===void 0){let e=`Unresolved $ref "${m}".`;throw J&&J!==m&&(e+=` Absolute URI "${J}".`),e+=`\nKnown schemas:\n- ${Object.keys(a).join(`
|
|
2
|
+
- `)}`,Error(e)}let t=`${u}/$ref`,r=k(n,e,i,a,o,c,l,t,d);if(r.valid||Y.push({instanceLocation:l,keyword:`$ref`,keywordLocation:t,error:`A subschema had errors.`},...r.errors),i===`4`||i===`7`)return{valid:Y.length===0,errors:Y}}if(Array.isArray(g)){let e=g.length,t=!1;for(let r=0;r<e;r++)if(p===g[r]||g[r]===`integer`&&p===`number`&&n%1==0&&n===n){t=!0;break}t||Y.push({instanceLocation:l,keyword:`type`,keywordLocation:`${u}/type`,error:`Instance type "${p}" is invalid. Expected "${g.join(`", "`)}".`})}else g===`integer`?(p!==`number`||n%1||n!==n)&&Y.push({instanceLocation:l,keyword:`type`,keywordLocation:`${u}/type`,error:`Instance type "${p}" is invalid. Expected "${g}".`}):g!==void 0&&p!==g&&Y.push({instanceLocation:l,keyword:`type`,keywordLocation:`${u}/type`,error:`Instance type "${p}" is invalid. Expected "${g}".`});if(_!==void 0&&(p===`object`||p===`array`?e(n,_)||Y.push({instanceLocation:l,keyword:`const`,keywordLocation:`${u}/const`,error:`Instance does not match ${JSON.stringify(_)}.`}):n!==_&&Y.push({instanceLocation:l,keyword:`const`,keywordLocation:`${u}/const`,error:`Instance does not match ${JSON.stringify(_)}.`})),v!==void 0&&(p===`object`||p===`array`?v.some(t=>e(n,t))||Y.push({instanceLocation:l,keyword:`enum`,keywordLocation:`${u}/enum`,error:`Instance does not match any of ${JSON.stringify(v)}.`}):v.some(e=>n===e)||Y.push({instanceLocation:l,keyword:`enum`,keywordLocation:`${u}/enum`,error:`Instance does not match any of ${JSON.stringify(v)}.`})),b!==void 0){let e=`${u}/not`;k(n,b,i,a,o,c,l,e).valid&&Y.push({instanceLocation:l,keyword:`not`,keywordLocation:e,error:`Instance matched "not" schema.`})}let X=[];if(x!==void 0){let e=`${u}/anyOf`,t=Y.length,r=!1;for(let[t,s]of x.entries()){let u=Object.create(d),f=k(n,s,i,a,o,h===!0?c:null,l,`${e}/${t}`,u);Y.push(...f.errors),r||=f.valid,f.valid&&X.push(u)}r?Y.length=t:Y.splice(t,0,{instanceLocation:l,keyword:`anyOf`,keywordLocation:e,error:`Instance does not match any subschemas.`})}if(S!==void 0){let e=`${u}/allOf`,t=Y.length,r=!0;for(let[t,s]of S.entries()){let u=Object.create(d),f=k(n,s,i,a,o,h===!0?c:null,l,`${e}/${t}`,u);Y.push(...f.errors),r&&=f.valid,f.valid&&X.push(u)}r?Y.length=t:Y.splice(t,0,{instanceLocation:l,keyword:`allOf`,keywordLocation:e,error:`Instance does not match every subschema.`})}if(ne!==void 0){let e=`${u}/oneOf`,t=Y.length,r=ne.filter((t,r)=>{let s=Object.create(d),u=k(n,t,i,a,o,h===!0?c:null,l,`${e}/${r}`,s);return Y.push(...u.errors),u.valid&&X.push(s),u.valid}).length;r===1?Y.length=t:Y.splice(t,0,{instanceLocation:l,keyword:`oneOf`,keywordLocation:e,error:`Instance does not match exactly one subschema (${r} matches).`})}if((p===`object`||p===`array`)&&Object.assign(d,...X),C!==void 0){let e=`${u}/if`;if(k(n,C,i,a,o,c,l,e,d).valid){if(w!==void 0){let t=k(n,w,i,a,o,c,l,`${u}/then`,d);t.valid||Y.push({instanceLocation:l,keyword:`if`,keywordLocation:e,error:`Instance does not match "then" schema.`},...t.errors)}}else if(re!==void 0){let t=k(n,re,i,a,o,c,l,`${u}/else`,d);t.valid||Y.push({instanceLocation:l,keyword:`if`,keywordLocation:e,error:`Instance does not match "else" schema.`},...t.errors)}}if(p===`object`){if(y!==void 0)for(let e of y)D(n,e)||Y.push({instanceLocation:l,keyword:`required`,keywordLocation:`${u}/required`,error:`Instance does not have required property "${e}".`});let e=Object.keys(n);if(E!==void 0&&e.length<E&&Y.push({instanceLocation:l,keyword:`minProperties`,keywordLocation:`${u}/minProperties`,error:`Instance does not have at least ${E} properties.`}),O!==void 0&&e.length>O&&Y.push({instanceLocation:l,keyword:`maxProperties`,keywordLocation:`${u}/maxProperties`,error:`Instance does not have at least ${O} properties.`}),A!==void 0){let e=`${u}/propertyNames`;for(let r in n){let n=`${l}/${t(r)}`,s=k(r,A,i,a,o,c,n,e);s.valid||Y.push({instanceLocation:l,keyword:`propertyNames`,keywordLocation:e,error:`Property name "${r}" does not match schema.`},...s.errors)}}if(j!==void 0){let e=`${u}/dependantRequired`;for(let t in j)if(D(n,t)){let r=j[t];for(let i of r)D(n,i)||Y.push({instanceLocation:l,keyword:`dependentRequired`,keywordLocation:e,error:`Instance has "${t}" but does not have "${i}".`})}}if(M!==void 0)for(let[e,r]of Object.entries(M)){let s=`${u}/dependentSchemas`;if(D(n,e)){let u=k(n,r,i,a,o,c,l,`${s}/${t(e)}`,d);u.valid||Y.push({instanceLocation:l,keyword:`dependentSchemas`,keywordLocation:s,error:`Instance has "${e}" but does not match dependant schema.`},...u.errors)}}if(N!==void 0){let e=`${u}/dependencies`;for(let r in N)if(D(n,r)){let s=N[r];if(Array.isArray(s))for(let t of s)D(n,t)||Y.push({instanceLocation:l,keyword:`dependencies`,keywordLocation:e,error:`Instance has "${r}" but does not have "${t}".`});else{let u=k(n,s,i,a,o,c,l,`${e}/${t(r)}`);u.valid||Y.push({instanceLocation:l,keyword:`dependencies`,keywordLocation:e,error:`Instance has "${r}" but does not match dependant schema.`},...u.errors)}}}let r=Object.create(null),s=!1;if(ie!==void 0){let e=`${u}/properties`;for(let[u,f]of Object.entries(ie)){if(!D(n,u))continue;let p=`${l}/${t(u)}`,m=k(n[u],f,i,a,o,c,p,`${e}/${t(u)}`);if(r[u]=!0,m.valid)d[u]=!0;else if(s=o,Y.push({instanceLocation:l,keyword:`properties`,keywordLocation:e,error:`Property "${u}" does not match schema.`},...m.errors),s)break}}if(!s&&ae!==void 0){let e=`${u}/patternProperties`;for(let[u,f]of Object.entries(ae)){let p=new RegExp(u,`u`);for(let m in n){if(!p.test(m))continue;let ee=`${l}/${t(m)}`,h=k(n[m],f,i,a,o,c,ee,`${e}/${t(u)}`);r[m]=!0,h.valid?d[m]=!0:(s=o,Y.push({instanceLocation:l,keyword:`patternProperties`,keywordLocation:e,error:`Property "${m}" matches pattern "${u}" but does not match associated schema.`},...h.errors))}}}if(!s&&oe!==void 0){let e=`${u}/additionalProperties`;for(let u in n){if(r[u])continue;let f=`${l}/${t(u)}`,p=k(n[u],oe,i,a,o,c,f,e);p.valid?d[u]=!0:(s=o,Y.push({instanceLocation:l,keyword:`additionalProperties`,keywordLocation:e,error:`Property "${u}" does not match additional properties schema.`},...p.errors))}}else if(!s&&se!==void 0){let e=`${u}/unevaluatedProperties`;for(let r in n)if(!d[r]){let s=`${l}/${t(r)}`,u=k(n[r],se,i,a,o,c,s,e);u.valid?d[r]=!0:Y.push({instanceLocation:l,keyword:`unevaluatedProperties`,keywordLocation:e,error:`Property "${r}" does not match unevaluated properties schema.`},...u.errors)}}}else if(p===`array`){B!==void 0&&n.length>B&&Y.push({instanceLocation:l,keyword:`maxItems`,keywordLocation:`${u}/maxItems`,error:`Array has too many items (${n.length} > ${B}).`}),z!==void 0&&n.length<z&&Y.push({instanceLocation:l,keyword:`minItems`,keywordLocation:`${u}/minItems`,error:`Array has too few items (${n.length} < ${z}).`});let t=n.length,r=0,s=!1;if(P!==void 0){let e=`${u}/prefixItems`,f=Math.min(P.length,t);for(;r<f;r++){let t=k(n[r],P[r],i,a,o,c,`${l}/${r}`,`${e}/${r}`);if(d[r]=!0,!t.valid&&(s=o,Y.push({instanceLocation:l,keyword:`prefixItems`,keywordLocation:e,error:`Items did not match schema.`},...t.errors),s))break}}if(F!==void 0){let e=`${u}/items`;if(Array.isArray(F)){let u=Math.min(F.length,t);for(;r<u;r++){let t=k(n[r],F[r],i,a,o,c,`${l}/${r}`,`${e}/${r}`);if(d[r]=!0,!t.valid&&(s=o,Y.push({instanceLocation:l,keyword:`items`,keywordLocation:e,error:`Items did not match schema.`},...t.errors),s))break}}else for(;r<t;r++){let t=k(n[r],F,i,a,o,c,`${l}/${r}`,e);if(d[r]=!0,!t.valid&&(s=o,Y.push({instanceLocation:l,keyword:`items`,keywordLocation:e,error:`Items did not match schema.`},...t.errors),s))break}if(!s&&ue!==void 0){let e=`${u}/additionalItems`;for(;r<t;r++){let t=k(n[r],ue,i,a,o,c,`${l}/${r}`,e);d[r]=!0,t.valid||(s=o,Y.push({instanceLocation:l,keyword:`additionalItems`,keywordLocation:e,error:`Items did not match additional items schema.`},...t.errors))}}}if(I!==void 0){if(t===0&&L===void 0)Y.push({instanceLocation:l,keyword:`contains`,keywordLocation:`${u}/contains`,error:`Array is empty. It must contain at least one item matching the schema.`});else if(L!==void 0&&t<L)Y.push({instanceLocation:l,keyword:`minContains`,keywordLocation:`${u}/minContains`,error:`Array has less items (${t}) than minContains (${L}).`});else{let e=`${u}/contains`,r=Y.length,s=0;for(let r=0;r<t;r++){let t=k(n[r],I,i,a,o,c,`${l}/${r}`,e);t.valid?(d[r]=!0,s++):Y.push(...t.errors)}s>=(L||0)&&(Y.length=r),L===void 0&&s===0?Y.splice(r,0,{instanceLocation:l,keyword:`contains`,keywordLocation:e,error:`Array does not contain item matching schema.`}):L!==void 0&&s<L?Y.push({instanceLocation:l,keyword:`minContains`,keywordLocation:`${u}/minContains`,error:`Array must contain at least ${L} items matching schema. Only ${s} items were found.`}):R!==void 0&&s>R&&Y.push({instanceLocation:l,keyword:`maxContains`,keywordLocation:`${u}/maxContains`,error:`Array may contain at most ${R} items matching schema. ${s} items were found.`})}}if(!s&&de!==void 0){let e=`${u}/unevaluatedItems`;for(;r<t;r++){if(d[r])continue;let t=k(n[r],de,i,a,o,c,`${l}/${r}`,e);d[r]=!0,t.valid||Y.push({instanceLocation:l,keyword:`unevaluatedItems`,keywordLocation:e,error:`Items did not match unevaluated items schema.`},...t.errors)}}if(fe)for(let r=0;r<t;r++){let i=n[r],a=typeof i==`object`&&!!i;for(let o=0;o<t;o++){if(r===o)continue;let t=n[o];(i===t||a&&typeof t==`object`&&t&&e(i,t))&&(Y.push({instanceLocation:l,keyword:`uniqueItems`,keywordLocation:`${u}/uniqueItems`,error:`Duplicate items at indexes ${r} and ${o}.`}),r=2**53-1,o=2**53-1)}}}else if(p===`number`)i===`4`?(V!==void 0&&(U===!0&&n<=V||n<V)&&Y.push({instanceLocation:l,keyword:`minimum`,keywordLocation:`${u}/minimum`,error:`${n} is less than ${U?`or equal to `:``} ${V}.`}),H!==void 0&&(W===!0&&n>=H||n>H)&&Y.push({instanceLocation:l,keyword:`maximum`,keywordLocation:`${u}/maximum`,error:`${n} is greater than ${W?`or equal to `:``} ${H}.`})):(V!==void 0&&n<V&&Y.push({instanceLocation:l,keyword:`minimum`,keywordLocation:`${u}/minimum`,error:`${n} is less than ${V}.`}),H!==void 0&&n>H&&Y.push({instanceLocation:l,keyword:`maximum`,keywordLocation:`${u}/maximum`,error:`${n} is greater than ${H}.`}),U!==void 0&&n<=U&&Y.push({instanceLocation:l,keyword:`exclusiveMinimum`,keywordLocation:`${u}/exclusiveMinimum`,error:`${n} is less than ${U}.`}),W!==void 0&&n>=W&&Y.push({instanceLocation:l,keyword:`exclusiveMaximum`,keywordLocation:`${u}/exclusiveMaximum`,error:`${n} is greater than or equal to ${W}.`})),G!==void 0&&(le(n,G)||Y.push({instanceLocation:l,keyword:`multipleOf`,keywordLocation:`${u}/multipleOf`,error:`${n} is not a multiple of ${G}.`}));else if(p===`string`){let e=K===void 0&&q===void 0?0:ce(n);K!==void 0&&e<K&&Y.push({instanceLocation:l,keyword:`minLength`,keywordLocation:`${u}/minLength`,error:`String is too short (${e} < ${K}).`}),q!==void 0&&e>q&&Y.push({instanceLocation:l,keyword:`maxLength`,keywordLocation:`${u}/maxLength`,error:`String is too long (${e} > ${q}).`}),pe!==void 0&&!new RegExp(pe,`u`).test(n)&&Y.push({instanceLocation:l,keyword:`pattern`,keywordLocation:`${u}/pattern`,error:`String does not match pattern.`}),T!==void 0&&te[T]&&!te[T](n)&&Y.push({instanceLocation:l,keyword:`format`,keywordLocation:`${u}/format`,error:`String does not match format "${T}".`})}return{valid:Y.length===0,errors:Y}}var A=class{schema;draft;shortCircuit;lookup;constructor(e,t=`2019-09`,n=!0){this.schema=e,this.draft=t,this.shortCircuit=n,this.lookup=s(e)}validate(e){return k(e,this.schema,this.draft,this.lookup,this.shortCircuit)}addSchema(e,t){t&&(e={...e,$id:t}),s(e,this.lookup)}},j={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/Position.json`,title:`Position`,description:`A source point in parsed PLURNK input. Lines are 1-based; columns are 0-based Unicode code points. LF and CRLF delimit lines, while a lone CR occupies one column. The exact pair {line: 0, column: 0} is the sole unknown/degraded position.`,type:`object`,required:[`line`,`column`],additionalProperties:!1,properties:{line:{type:`integer`,minimum:0},column:{type:`integer`,minimum:0}},if:{properties:{line:{const:0}},required:[`line`]},then:{properties:{column:{const:0}}}},M={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/LineMarker.json`,title:`LineMarker`,description:"The ordered numeric components parsed from a `<scope>` slot. AstBuilder converts each lexical number to a JavaScript number; the operation owner assigns arity and meaning, including text coordinates, result positions, timing, and mutation anchors.",type:`object`,required:[`marks`],additionalProperties:!1,properties:{marks:{type:`array`,items:{type:`number`},minItems:1}}},N={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/TextLineMarker.json`,title:`TextLineMarker`,description:`The ordered components parsed from a text-coordinate <scope>. A line position may be numeric or a rendered five-character Base62 line anchor; columns remain numeric. Core resolves anchors against the addressed current text before a numeric scope reaches its operation owner.`,type:`object`,required:[`marks`],additionalProperties:!1,properties:{marks:{type:`array`,items:{oneOf:[{type:`number`},{type:`string`,pattern:`^@[0-9A-Za-z]{5}([+-][0-9]+)?$`}]},minItems:1}}},P={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/ParsedPath.json`,title:`ParsedPath`,description:"A parsed target slot from a plurnk statement. Discriminated on `kind`: a bare local path or a WHATWG-decomposed URL. Targets carry an exact address or a path glob; content matching belongs in the statement body.",oneOf:[{$ref:`#/$defs/LocalPath`},{$ref:`#/$defs/UrlPath`}],$defs:{LocalPath:{title:`LocalPath`,description:"A bare local path with no `scheme://` prefix. `raw` is the path as authored, minus any `#channel`, which is `fragment` exactly as on a URL; resolution is the runtime's job.",type:`object`,required:[`kind`,`raw`],additionalProperties:!1,properties:{kind:{const:`local`},raw:{type:`string`},fragment:{type:[`string`,`null`]}}},UrlPath:{title:`UrlPath`,description:"A path with a `scheme://` prefix, fully decomposed via WHATWG URL.",type:`object`,required:[`kind`,`raw`,`scheme`,`username`,`password`,`hostname`,`port`,`pathname`,`query`,`fragment`],additionalProperties:!1,properties:{kind:{const:`url`},raw:{type:`string`},scheme:{type:`string`,minLength:1},username:{type:[`string`,`null`]},password:{type:[`string`,`null`]},hostname:{type:[`string`,`null`]},port:{type:[`integer`,`null`],minimum:0,maximum:65535},pathname:{type:`string`},query:{description:"Canonical serialized WHATWG query component without the leading `?`. Null means no query; the empty string means an explicit empty query (`?`). Ordering, duplicate names, and encoded spelling are preserved.",type:[`string`,`null`]},fragment:{type:[`string`,`null`]}}}}},F={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/MatcherBody.json`,title:`MatcherBody`,description:"Parsed single-line body of a matcher-bearing statement, discriminated on `dialect`. The dialect is determined by the body's leading characters (`//` xpath, `/` regex, `$` jsonpath, `~` full-text, `&` graph, else glob); a body the parser could not read in its claimed dialect is `unreadable` ({§matcher-prefix-claims}). The regex variant carries pattern and flags split out of the `/pattern/flags` literal; every variant remains JSON-serializable.",oneOf:[{$ref:`#/$defs/XPathBody`},{$ref:`#/$defs/RegexBody`},{$ref:`#/$defs/JsonPathBody`},{$ref:`#/$defs/FtsBody`},{$ref:`#/$defs/GraphBody`},{$ref:`#/$defs/GlobBody`},{$ref:`#/$defs/UnreadableBody`}],$defs:{XPathBody:{title:`XPathBody`,description:`XPath 1.0 expression. Validated at parse time via the xpath library.`,type:`object`,required:[`dialect`,`raw`],additionalProperties:!1,properties:{dialect:{const:`xpath`},raw:{type:`string`,minLength:2,pattern:`^[^\\r\\n]*$`}}},RegexBody:{title:`RegexBody`,description:"ECMAScript regex literal `/pattern/flags`. Escape a literal delimiter as `\\/`. Pattern and flags are split out for direct use. `raw` preserves the literal form for round-tripping.",type:`object`,required:[`dialect`,`raw`,`pattern`,`flags`],additionalProperties:!1,properties:{dialect:{const:`regex`},raw:{type:`string`,minLength:2,pattern:`^[^\\r\\n]*$`},pattern:{type:`string`},flags:{type:`string`}}},JsonPathBody:{title:`JsonPathBody`,description:`RFC 9535 JSONPath expression. Compiled at parse time with json-p3, the same engine used for runtime matching.`,type:`object`,required:[`dialect`,`raw`],additionalProperties:!1,properties:{dialect:{const:`jsonpath`},raw:{type:`string`,minLength:1,pattern:`^[^\\r\\n]*$`}}},FtsBody:{title:`FtsBody`,description:"Native SQLite FTS5 query after the `~` prefix. SQLite owns query validation, tokenization, matching and ranking; the statement's scope selects ordinary result positions.",type:`object`,required:[`dialect`,`raw`],additionalProperties:!1,properties:{dialect:{const:`fts`},raw:{type:`string`,minLength:1,pattern:`^[^\\r\\n]*$`}}},GraphBody:{title:`GraphBody`,description:"Code-graph selection. Body is `&symbol` for definitions, `&<symbol` for references to that name, or `&>symbol` for definitions of its one-hop dependencies. Shape is validated during language admission; resolution happens service-side through the symbol index.",type:`object`,required:[`dialect`,`raw`],additionalProperties:!1,properties:{dialect:{const:`graph`},raw:{type:`string`,pattern:`^&[<>]?[^\\s<>]\\S*$`}}},UnreadableBody:{title:`UnreadableBody`,description:`A matcher the parser could not read in the dialect its prefix claims ({§matcher-prefix-claims}): the authored text, the diagnostic, and the working form. The statement is admitted and the operation refuses with that message and recovery; it is never a contract strike.`,type:`object`,required:[`dialect`,`raw`,`message`,`recovery`],additionalProperties:!1,properties:{dialect:{const:`unreadable`},raw:{type:`string`},message:{type:`string`,minLength:1},recovery:{type:`string`,minLength:1}}},GlobBody:{title:`GlobBody`,description:`Pattern with no dialect prefix; treated as a glob/literal match.`,type:`object`,required:[`dialect`,`raw`],additionalProperties:!1,properties:{dialect:{const:`glob`},raw:{type:`string`,pattern:`^[^\\r\\n]*$`}}}}},ue={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/SendBody.json`,title:`SendBody`,description:"Parsed body of a SEND statement. `raw` is the literal body text; `json` is the best-effort `JSON.parse(raw)` result, or null when the body isn't valid JSON.",type:`object`,required:[`raw`,`json`],additionalProperties:!1,properties:{raw:{type:`string`},json:!0}},de={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/ResourceSelection.json`,title:`ResourceSelection`,description:`One COPY/MOVE resource operand. A target without a fragment selects the scheme's default channel; a fragment selects a named channel; metadata belongs to the selected scheme endpoint; lineMarker scopes the selected textual content.`,type:`object`,required:[`target`,`metadata`,`lineMarker`,`matcher`],additionalProperties:!1,properties:{target:{$ref:`https://schemas.plurnk.xyz/v0/ParsedPath.json`},metadata:{description:`Opaque ordered scheme-metadata modifier blocks owned by this operand's addressed scheme.`,oneOf:[{type:`array`,items:{type:`string`}},{type:`null`}]},lineMarker:{oneOf:[{$ref:`https://schemas.plurnk.xyz/v0/TextLineMarker.json`},{type:`null`}]},matcher:{description:`Optional selection matcher on the source operand; refused by the owner on a destination.`,oneOf:[{$ref:`https://schemas.plurnk.xyz/v0/MatcherBody.json`},{type:`null`}]}}},I={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/PlurnkStatement.json`,title:`PlurnkStatement`,description:"The parsed AST union for one protocol statement, discriminated by `op`. Every variant has fixed signal, target, metadata, lineMarker, aside, body, and source-position fields, and the text and log operations add a matcher lifted from the `pattern` option; operation-specific schemas constrain their types. A null field records an omitted tolerated slot and does not satisfy runtime requirements by itself.",oneOf:[{$ref:`#/$defs/FindStatement`},{$ref:`#/$defs/ReadStatement`},{$ref:`#/$defs/EditStatement`},{$ref:`#/$defs/CopyStatement`},{$ref:`#/$defs/MoveStatement`},{$ref:`#/$defs/SendStatement`},{$ref:`#/$defs/DoneStatement`},{$ref:`#/$defs/FailStatement`},{$ref:`#/$defs/ExecStatement`},{$ref:`#/$defs/BareStatement`},{$ref:`#/$defs/WorkStatement`},{$ref:`#/$defs/ForkStatement`},{$ref:`#/$defs/KillStatement`},{$ref:`#/$defs/DispositionStatement`},{$ref:`#/$defs/NoteStatement`},{$ref:`#/$defs/TodoStatement`}],$defs:{AsideOrNull:{type:[`string`,`null`]},SchemeMetadataOrNull:{description:`Opaque ordered scheme-metadata modifier blocks. Contracts preserve each block's raw inner text; the addressed scheme exclusively owns interpretation and validation.`,oneOf:[{type:`array`,items:{type:`string`}},{type:`null`}]},PathOrNull:{oneOf:[{$ref:`https://schemas.plurnk.xyz/v0/ParsedPath.json`},{type:`null`}]},LineMarkerOrNull:{oneOf:[{$ref:`https://schemas.plurnk.xyz/v0/LineMarker.json`},{type:`null`}]},TextLineMarkerOrNull:{oneOf:[{$ref:`https://schemas.plurnk.xyz/v0/TextLineMarker.json`},{type:`null`}]},MatcherBodyOrNull:{oneOf:[{$ref:`https://schemas.plurnk.xyz/v0/MatcherBody.json`},{type:`null`}]},SendBodyOrNull:{oneOf:[{$ref:`https://schemas.plurnk.xyz/v0/SendBody.json`},{type:`null`}]},PositionRef:{$ref:`https://schemas.plurnk.xyz/v0/Position.json`},FindStatement:{type:`object`,required:[`op`,`aside`,`metadata`,`target`,`lineMarker`,`matcher`,`body`,`position`],additionalProperties:!1,properties:{op:{const:`FIND`},aside:{$ref:`#/$defs/AsideOrNull`},metadata:{$ref:`#/$defs/SchemeMetadataOrNull`},target:{$ref:`#/$defs/PathOrNull`},lineMarker:{$ref:`#/$defs/LineMarkerOrNull`},matcher:{$ref:`#/$defs/MatcherBodyOrNull`,description:`The selection matcher lifted from the heading ({§parse-recovery}); null when the heading carries none.`},body:{type:`null`,description:`Retrieval bodies normalize to separate NOTE statements; selection belongs to the header ({§op-shapes}).`},position:{$ref:`#/$defs/PositionRef`}}},ReadStatement:{type:`object`,required:[`op`,`aside`,`metadata`,`target`,`lineMarker`,`matcher`,`body`,`position`],additionalProperties:!1,properties:{op:{const:`READ`},aside:{$ref:`#/$defs/AsideOrNull`},metadata:{$ref:`#/$defs/SchemeMetadataOrNull`},target:{$ref:`#/$defs/PathOrNull`},lineMarker:{$ref:`#/$defs/TextLineMarkerOrNull`},matcher:{$ref:`#/$defs/MatcherBodyOrNull`,description:`The selection matcher lifted from the heading ({§parse-recovery}); null when the heading carries none.`},body:{type:`null`},position:{$ref:`#/$defs/PositionRef`}}},EditStatement:{type:`object`,required:[`op`,`aside`,`metadata`,`target`,`lineMarker`,`matcher`,`body`,`position`],additionalProperties:!1,properties:{op:{const:`EDIT`},aside:{$ref:`#/$defs/AsideOrNull`},metadata:{$ref:`#/$defs/SchemeMetadataOrNull`},target:{$ref:`#/$defs/PathOrNull`},lineMarker:{$ref:`#/$defs/TextLineMarkerOrNull`},matcher:{$ref:`#/$defs/MatcherBodyOrNull`,description:`The selection matcher lifted from the heading ({§parse-recovery}); null when the heading carries none.`},body:{type:[`string`,`null`]},position:{$ref:`#/$defs/PositionRef`}}},CopyStatement:{type:`object`,required:[`op`,`aside`,`source`,`destination`,`position`],additionalProperties:!1,properties:{op:{const:`COPY`},aside:{$ref:`#/$defs/AsideOrNull`},source:{$ref:`https://schemas.plurnk.xyz/v0/ResourceSelection.json`},destination:{$ref:`https://schemas.plurnk.xyz/v0/ResourceSelection.json`},position:{$ref:`#/$defs/PositionRef`}}},MoveStatement:{type:`object`,required:[`op`,`aside`,`source`,`destination`,`position`],additionalProperties:!1,properties:{op:{const:`MOVE`},aside:{$ref:`#/$defs/AsideOrNull`},source:{$ref:`https://schemas.plurnk.xyz/v0/ResourceSelection.json`},destination:{$ref:`https://schemas.plurnk.xyz/v0/ResourceSelection.json`},position:{$ref:`#/$defs/PositionRef`}}},SendStatement:{type:`object`,required:[`op`,`aside`,`metadata`,`target`,`lineMarker`,`body`,`position`],additionalProperties:!1,properties:{op:{const:`SEND`},aside:{$ref:`#/$defs/AsideOrNull`},metadata:{$ref:`#/$defs/SchemeMetadataOrNull`},target:{$ref:`#/$defs/PathOrNull`},lineMarker:{$ref:`#/$defs/LineMarkerOrNull`},body:{$ref:`#/$defs/SendBodyOrNull`},position:{$ref:`#/$defs/PositionRef`}}},DoneStatement:{type:`object`,required:[`op`,`aside`,`metadata`,`target`,`lineMarker`,`body`,`position`],additionalProperties:!1,properties:{op:{const:`DONE`},aside:{$ref:`#/$defs/AsideOrNull`},metadata:{$ref:`#/$defs/SchemeMetadataOrNull`},target:{$ref:`#/$defs/PathOrNull`},lineMarker:{type:`null`},body:{$ref:`#/$defs/SendBodyOrNull`},position:{$ref:`#/$defs/PositionRef`}}},FailStatement:{type:`object`,required:[`op`,`aside`,`metadata`,`target`,`lineMarker`,`body`,`position`],additionalProperties:!1,properties:{op:{const:`FAIL`},aside:{$ref:`#/$defs/AsideOrNull`},metadata:{$ref:`#/$defs/SchemeMetadataOrNull`},target:{$ref:`#/$defs/PathOrNull`},lineMarker:{type:`null`},body:{$ref:`#/$defs/SendBodyOrNull`},position:{$ref:`#/$defs/PositionRef`}}},ExecStatement:{type:`object`,required:[`runtime`,`aside`,`metadata`,`target`,`lineMarker`,`body`,`position`],additionalProperties:!1,properties:{runtime:{description:`The runtime tag the fence names, in its registered lowercase spelling. An execution has no operation keyword: the fence name is the runtime, and the log row's op shows it as written.`,type:`string`,pattern:`^[a-z][a-z0-9+._-]*$`,tsType:`Lowercase<string>`},op:{description:`Never present: an execution is named by its runtime.`,not:{},tsType:`never`},aside:{$ref:`#/$defs/AsideOrNull`},metadata:{$ref:`#/$defs/SchemeMetadataOrNull`},target:{$ref:`#/$defs/PathOrNull`},lineMarker:{$ref:`#/$defs/LineMarkerOrNull`},body:{type:[`string`,`null`]},position:{$ref:`#/$defs/PositionRef`}}},BareStatement:{type:`object`,required:[`op`,`aside`,`metadata`,`target`,`lineMarker`,`body`,`position`],additionalProperties:!1,properties:{op:{const:`BARE`},aside:{$ref:`#/$defs/AsideOrNull`},metadata:{$ref:`#/$defs/SchemeMetadataOrNull`},target:{$ref:`#/$defs/PathOrNull`},lineMarker:{type:`null`},body:{type:`string`},position:{$ref:`#/$defs/PositionRef`}}},KillStatement:{type:`object`,required:[`op`,`aside`,`metadata`,`target`,`lineMarker`,`matcher`,`body`,`position`],additionalProperties:!1,properties:{op:{const:`KILL`},aside:{$ref:`#/$defs/AsideOrNull`},metadata:{$ref:`#/$defs/SchemeMetadataOrNull`},target:{$ref:`#/$defs/PathOrNull`},lineMarker:{$ref:`#/$defs/TextLineMarkerOrNull`,description:`Scope of the kill: lines of a log body or of an entry ({§op-shapes}); null kills the whole target.`},matcher:{$ref:`#/$defs/MatcherBodyOrNull`,description:`The selection matcher lifted from the heading ({§parse-recovery}); null when the heading carries none.`},body:{type:[`string`,`null`],description:"A `log:///` KILL carries its optional distillation, kept as the model's own NOTE row ({§log-kill-scope}). Other KILLs take no body; their matcher rides on the heading line ({§parse-recovery})."},position:{$ref:`#/$defs/PositionRef`}}},WorkStatement:{type:`object`,required:[`op`,`aside`,`metadata`,`target`,`lineMarker`,`body`,`position`],additionalProperties:!1,properties:{op:{const:`WORK`},aside:{$ref:`#/$defs/AsideOrNull`},metadata:{$ref:`#/$defs/SchemeMetadataOrNull`},target:{$ref:`#/$defs/PathOrNull`},lineMarker:{type:`null`},body:{type:`string`},position:{$ref:`#/$defs/PositionRef`}}},ForkStatement:{type:`object`,required:[`op`,`aside`,`metadata`,`target`,`lineMarker`,`body`,`position`],additionalProperties:!1,properties:{op:{const:`FORK`},aside:{$ref:`#/$defs/AsideOrNull`},metadata:{$ref:`#/$defs/SchemeMetadataOrNull`},target:{$ref:`#/$defs/PathOrNull`},lineMarker:{type:`null`},body:{type:`string`},position:{$ref:`#/$defs/PositionRef`}}},DispositionStatement:{type:`object`,required:[`op`,`aside`,`metadata`,`target`,`lineMarker`,`seconds`,`body`,`position`],additionalProperties:!1,properties:{op:{enum:[`WAIT`]},aside:{$ref:`#/$defs/AsideOrNull`},metadata:{type:`null`},target:{$ref:`#/$defs/PathOrNull`},lineMarker:{type:`null`},seconds:{description:`Optional maximum park duration from [seconds] metadata; zero continues without parking.`,type:[`number`,`null`],minimum:0},body:{type:[`string`,`null`]},position:{$ref:`#/$defs/PositionRef`}}},NoteStatement:{type:`object`,required:[`op`,`aside`,`metadata`,`target`,`lineMarker`,`body`,`position`],additionalProperties:!1,properties:{op:{const:`NOTE`},aside:{$ref:`#/$defs/AsideOrNull`},metadata:{type:`null`},target:{type:`null`},lineMarker:{type:`null`},body:{type:[`string`,`null`]},position:{$ref:`#/$defs/PositionRef`}}},TodoStatement:{type:`object`,required:[`op`,`aside`,`metadata`,`target`,`lineMarker`,`body`,`position`],additionalProperties:!1,properties:{op:{const:`TODO`},aside:{$ref:`#/$defs/AsideOrNull`},metadata:{type:`null`},target:{type:`null`},lineMarker:{type:`null`},body:{type:[`string`,`null`]},position:{$ref:`#/$defs/PositionRef`}}}}},L={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/ApplicationOperationEvent.json`,title:`ApplicationOperationEvent`,description:`A core-owned dispatch boundary. A settled dispatch has its exact result; it does not assert asynchronous process completion.`,type:`object`,required:[`sessionId`,`loopId`,`turnId`,`sequence`,`origin`,`projectRoot`,`statement`,`phase`],additionalProperties:!1,properties:{sessionId:{type:`integer`,minimum:1},loopId:{type:`integer`,minimum:1},turnId:{type:`integer`,minimum:1},sequence:{type:`integer`,minimum:1},origin:{enum:[`model`,`client`,`_plurnk`]},projectRoot:{type:[`string`,`null`]},statement:{$ref:`https://schemas.plurnk.xyz/v0/PlurnkStatement.json`},phase:{enum:[`started`,`settled`]},result:{$ref:`https://schemas.plurnk.xyz/v0/OperationResult.json`}},allOf:[{if:{properties:{phase:{const:`settled`}}},then:{required:[`result`]},else:{not:{required:[`result`]}}}]},R={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/Notice.json`,title:`Notice`,description:"A transient, nonterminal observation for clients and the next model packet. A Notice is never operation-failure truth and cannot determine durable history, lifecycle, scheduling, or recovery. Producers use the open `source` + `kind` discriminator; clients render the producer-owned `level` without inferring semantics from kind names.",type:`object`,required:[`source`,`kind`,`level`],additionalProperties:!0,properties:{source:{type:`string`,pattern:`^[a-z]+(:[a-z][a-z0-9+._-]*)?$`,description:"Producer identifier. Top-level for self-contained subsystems; colon-namespaced for parameterized producers such as `provider:openai` or `exec:search`."},kind:{type:`string`,minLength:1,description:"Open discriminator within a source. Examples include `output_unaccounted`, `search_progress`, and `turn_awaiting_model`."},level:{enum:[`error`,`warn`,`info`],description:`Display severity set by the producer. It does not make the Notice a durable operation result.`},directive:{type:`string`,pattern:`^YOU (MUST|MUST NOT|MUST ONLY|SHOULD|SHOULD NOT) \\S`,description:"Optional model-facing imperative for an observation of the model's own output: `YOU MUST`, `YOU MUST NOT`, `YOU MUST ONLY`, `YOU SHOULD` or `YOU SHOULD NOT`, then the rule. The model packet leads with it; clients display `message`."},message:{type:[`string`,`null`],description:`Optional terse, factual display message.`},position:{oneOf:[{$ref:`#/$defs/ContentOffset`},{$ref:`#/$defs/LogCoordinate`},{type:`null`}],description:`Optional typed position for an observation. ContentOffset points into model output; LogCoordinate points at a durable log row without replacing it.`}},$defs:{ContentOffset:{description:`A point in model output using the parser-point convention: 1-based line and 0-based Unicode-code-point column. Absence or a null Notice.position represents an unknown location.`,type:`object`,required:[`type`,`line`,`column`],additionalProperties:!1,properties:{type:{const:`content-offset`},line:{type:`integer`,minimum:1},column:{type:`integer`,minimum:0}}},LogCoordinate:{type:`object`,required:[`type`,`coordinate`],additionalProperties:!1,properties:{type:{const:`log-coordinate`},coordinate:{type:`string`,minLength:1,description:"Log row identity, typically `log:///<loop>/<turn>/<sequence>`."},op:{type:`string`,description:`Optional op token (FIND/READ/EDIT/...) at the coordinate, for human-readable rendering.`}}}}},z={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/ProblemDetails.json`,title:`ProblemDetails`,description:`PLURNK operation failure using RFC 9457 Problem Details. Extension members are permitted so an owning boundary can add structured causal and recovery facts without inventing a second error envelope.`,type:`object`,required:[`type`,`title`,`status`,`detail`],additionalProperties:!0,properties:{type:{type:`string`,pattern:`^[a-zA-Z][a-zA-Z0-9+.-]*:`,description:`Absolute URI identifying the stable problem class.`},title:{type:`string`,minLength:1,description:`Short, stable summary for this problem type.`},status:{type:`integer`,minimum:400,maximum:599,description:`Operation status. It must equal the containing result status.`},detail:{type:`string`,minLength:1,description:`Specific, causal explanation of this occurrence.`},instance:{type:`string`,pattern:`^[a-zA-Z][a-zA-Z0-9+.-]*:`,description:`Absolute URI identifying the failed durable operation, normally its log URI. Core adds it at persistence when an extension cannot know the durable coordinate.`},stage:{type:`string`,minLength:1,description:`Stable producer-owned stage at which the operation failed, when the operation has multiple independently recoverable stages.`},recovery:{type:`string`,minLength:1,description:`One generally valid next action. It is omitted when recovery depends on facts the producer does not know.`},retryable:{type:`boolean`,description:`Whether the producer recommends automatically retrying the identical request.`}}},B={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/ProblemProjection.json`,title:`ProblemProjection`,description:`The compact model-facing projection of one exact RFC 9457 Problem. The enclosing log row owns model-facing address and status; stable type, causal detail, and non-duplicative decision facts remain.`,type:`object`,required:[`type`,`detail`],additionalProperties:!0,properties:{type:{type:`string`,pattern:`^[a-zA-Z][a-zA-Z0-9+.-]*:`,description:`Absolute URI identifying the stable problem class.`},detail:{type:`string`,minLength:1,description:`Specific, causal explanation of this occurrence.`},stage:{type:`string`,minLength:1,description:`Stable producer-owned stage at which the operation failed, when neighboring stages imply different recovery.`},recovery:{type:`string`,minLength:1,description:`One generally valid next action, only when the producer knows it.`},retryable:{type:`boolean`,description:`Whether the producer recommends automatically retrying the identical request.`},title:!1,status:!1,instance:!1}},fe={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/OperationResult.json`,title:`OperationResult`,description:`Universal PLURNK operation result. Producer-owned metadata is open, but failures always carry one RFC 9457 Problem Details object.`,type:`object`,required:[`status`],additionalProperties:!0,properties:{status:{type:`integer`,minimum:100,maximum:599},problem:{$ref:`https://schemas.plurnk.xyz/v0/ProblemDetails.json`},range:{$ref:`https://schemas.plurnk.xyz/v0/RangeExtent.json`}},oneOf:[{properties:{status:{type:`integer`,minimum:100,maximum:399}},not:{required:[`problem`]}},{required:[`problem`],properties:{status:{type:`integer`,minimum:400,maximum:599}}}]},V={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/EntryReadResult.json`,title:`EntryReadResult`,description:`The runtime-neutral result of reading one client-visible entry, either completely or as one channel suffix.`,oneOf:[{type:`object`,required:[`status`,`entry`],additionalProperties:!1,properties:{status:{const:200},entry:{$ref:`#/$defs/entry`}}},{type:`object`,required:[`status`,`problem`,`entry`],additionalProperties:!1,properties:{status:{type:`integer`,minimum:400,maximum:599},problem:{$ref:`https://schemas.plurnk.xyz/v0/ProblemDetails.json`},entry:{type:`null`}}}],$defs:{entry:{title:`ClientEntry`,type:`object`,required:[`entryId`,`target`,`channels`],additionalProperties:!1,properties:{entryId:{description:`The stored entry's durable identifier, or null for a representation core computes.`,type:[`integer`,`null`],minimum:1,maximum:9007199254740991},target:{type:`string`,minLength:1},channels:{description:`Each channel by name; the empty name is the unnamed default channel of a scheme whose default is unnamed.`,type:`object`,additionalProperties:{$ref:`#/$defs/channel`}}}},channel:{title:`ClientEntryChannel`,type:`object`,required:[`content`,`contentOffset`,`contentLength`,`mimetype`,`weight`,`state`],additionalProperties:!1,properties:{content:{type:`string`},contentOffset:{type:`integer`,minimum:0,maximum:9007199254740991},contentLength:{type:`integer`,minimum:0,maximum:9007199254740991},mimetype:{type:`string`,minLength:1},weight:{type:`integer`,minimum:0,maximum:9007199254740991},state:{enum:[`static`,`active`,`closed`,`errored`]}}}}},H={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/TextRegion.json`,title:`TextRegion`,description:`A contiguous region of text. Lines and Unicode code-point columns are 1-based; the start is included and the end is excluded.`,type:`object`,required:[`startLine`,`startColumn`,`endLine`,`endColumn`],additionalProperties:!1,properties:{startLine:{type:`integer`,minimum:1,maximum:9007199254740991},startColumn:{type:`integer`,minimum:1,maximum:9007199254740991},endLine:{type:`integer`,minimum:1,maximum:9007199254740991},endColumn:{type:`integer`,minimum:1,maximum:9007199254740991}}},U={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/RangeExtent.json`,title:`RangeExtent`,description:`A compact projection of one line or ordered-result selection. Requested and returned positions are inclusive; total is the complete available cardinality.`,type:`object`,required:[`unit`,`total`,`requested`],additionalProperties:!1,properties:{unit:{enum:[`line`,`result`,`resource`,`matchLocation`,`byte`]},total:{type:`integer`,minimum:0,maximum:9007199254740991},requested:{$ref:`#/$defs/RequestedRange`},returned:{$ref:`#/$defs/ReturnedRange`}},$defs:{RequestedRange:{type:`array`,items:{type:`number`,minimum:-9007199254740991,maximum:9007199254740991},minItems:2,maxItems:2},ReturnedRange:{type:`array`,items:{type:`integer`,minimum:1,maximum:9007199254740991},minItems:2,maxItems:2}}},W={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/ProposalProjection.json`,title:`ProposalProjection`,description:`The runtime-neutral client-interface projection of one durable stopped-world proposal. Live delivery and reconnect discovery expose this same shape.`,type:`object`,required:[`logEntryId`,`sessionId`,`session`,`loopId`,`turnId`,`coordinate`,`op`,`target`,`body`,`attrs`,`owner`,`disposition`],additionalProperties:!1,properties:{logEntryId:{type:`integer`,minimum:1},sessionId:{type:`integer`,minimum:1},session:{description:`The requesting session's name.`,type:`string`,minLength:1},loopId:{type:`integer`,minimum:1},turnId:{type:`integer`,minimum:1},coordinate:{description:`The gated operation's log coordinate, loop/turn/sequence: the id of the call it is.`,type:`string`,pattern:`^[0-9]+/[0-9]+/[0-9]+$`},op:{description:`An operation keyword, or a runtime tag: an execution's operation is its runtime.`,anyOf:[{enum:[`FIND`,`READ`,`EDIT`,`COPY`,`MOVE`,`SEND`,`DONE`,`FAIL`,`BARE`,`WORK`,`FORK`,`KILL`,`NOTE`,`TODO`,`WAIT`]},{type:`string`,pattern:`^[a-z][a-z0-9+._-]*$`}],tsType:`"FIND" | "READ" | "EDIT" | "COPY" | "MOVE" | "SEND" | "DONE" | "FAIL" | "BARE" | "WORK" | "FORK" | "KILL" | "NOTE" | "TODO" | "WAIT" | Lowercase<string>`},target:{type:`object`,required:[`scheme`,`authority`,`pathname`],additionalProperties:!1,properties:{scheme:{type:[`string`,`null`]},authority:{type:[`string`,`null`]},pathname:{type:[`string`,`null`]}}},body:{type:`string`},attrs:{type:`object`,additionalProperties:!0},owner:{type:`string`,minLength:1},disposition:{$ref:`https://schemas.plurnk.xyz/v0/ProposalDisposition.json`},selector:{description:`The capability selector for the proposed operation, persisted on allow_always / reject_always.`,$ref:`https://schemas.plurnk.xyz/v0/CapabilitySelector.json`},subject:{description:`Structured ACP v2 permission subject for the proposed operation.`,oneOf:[{type:`object`,required:[`type`,`command`,`cwd`],additionalProperties:!1,properties:{type:{const:`command`},command:{type:`string`},cwd:{type:`string`,minLength:1}}},{type:`object`,required:[`type`,`kind`,`title`],additionalProperties:!1,properties:{type:{const:`tool_call`},kind:{enum:[`read`,`edit`,`delete`,`move`,`search`,`execute`,`think`,`fetch`,`switch_mode`,`other`]},title:{type:`string`,minLength:1},locations:{type:`array`,items:{type:`object`,required:[`path`],additionalProperties:!1,properties:{path:{type:`string`,minLength:1}}}},diff:{type:`object`,required:[`path`,`patch`],additionalProperties:!1,properties:{path:{type:`string`},patch:{type:`string`}}}}}]},expiresAt:{description:`When the gate stops waiting and core cancels it (ISO 8601); absent while it waits indefinitely.`,type:`string`,format:`date-time`}}},G={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/ProposalDisposition.json`,title:`ProposalDisposition`,description:`The one core-owned settlement decision. Review waits for the session's owner; accept and reject carry the automatic resolution core applies.`,oneOf:[{type:`object`,required:[`decision`],additionalProperties:!1,properties:{decision:{const:`review`}}},{type:`object`,required:[`decision`],additionalProperties:!1,properties:{decision:{enum:[`accept`,`reject`]},outcome:{type:`string`,minLength:1}}}]},K={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/CapabilityDescriptor.json`,title:`CapabilityDescriptor`,description:`One fully routed operation demand evaluated by the capability-policy cascade.`,type:`object`,required:[`operation`,`access`,`traits`],additionalProperties:!1,properties:{operation:{description:`An operation keyword, or a runtime tag: an execution's operation is its runtime.`,anyOf:[{enum:[`FIND`,`READ`,`EDIT`,`COPY`,`MOVE`,`SEND`,`BARE`,`WORK`,`FORK`,`KILL`]},{type:`string`,pattern:`^[a-z][a-z0-9+._-]*$`}],tsType:`"FIND" | "READ" | "EDIT" | "COPY" | "MOVE" | "SEND" | "BARE" | "WORK" | "FORK" | "KILL" | Lowercase<string>`},scheme:{type:`string`,pattern:`^[a-z][a-z0-9+._-]*$`},runtime:{type:`string`,pattern:`^[a-z][a-z0-9+._-]*$`},tool:{type:`string`,minLength:1},access:{enum:[`observe`,`mutate`,`execute`,`interact`,`control`]},traits:{type:`array`,items:{type:`string`,pattern:`^[a-z][a-z0-9-]*$`},uniqueItems:!0}}},q={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/CapabilityPolicy.json`,title:`CapabilityPolicy`,description:`One capability-policy layer. Deny wins; when only is present, a demand must match at least one selector; allow pre-approves matching admitted proposals.`,type:`object`,additionalProperties:!1,properties:{allow:{type:`array`,items:{$ref:`https://schemas.plurnk.xyz/v0/CapabilitySelector.json`}},only:{type:`array`,items:{$ref:`https://schemas.plurnk.xyz/v0/CapabilitySelector.json`}},deny:{type:`array`,items:{$ref:`https://schemas.plurnk.xyz/v0/CapabilitySelector.json`}}}},pe={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/CapabilityProjection.json`,title:`CapabilityProjection`,description:`The service and workspace capability policies and their normalized effective intersection.`,type:`object`,additionalProperties:!1,properties:{service:{$ref:`https://schemas.plurnk.xyz/v0/CapabilityPolicy.json`},workspace:{$ref:`https://schemas.plurnk.xyz/v0/CapabilityPolicy.json`},effective:{$ref:`https://schemas.plurnk.xyz/v0/CapabilityPolicy.json`}},required:[`service`,`workspace`,`effective`]},J={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/CapabilitySelector.json`,title:`CapabilitySelector`,description:`One exact, conjunctive selector over a routed PLURNK capability demand. Omitted fields are wildcards; at least one field is required.`,type:`object`,minProperties:1,additionalProperties:!1,properties:{operation:{description:`An operation keyword, or a runtime tag: an execution's operation is its runtime.`,anyOf:[{enum:[`FIND`,`READ`,`EDIT`,`COPY`,`MOVE`,`SEND`,`BARE`,`WORK`,`FORK`,`KILL`]},{type:`string`,pattern:`^[a-z][a-z0-9+._-]*$`}],tsType:`"FIND" | "READ" | "EDIT" | "COPY" | "MOVE" | "SEND" | "BARE" | "WORK" | "FORK" | "KILL" | Lowercase<string>`},scheme:{type:`string`,pattern:`^[a-z][a-z0-9+._-]*$`},runtime:{type:`string`,pattern:`^[a-z][a-z0-9+._-]*$`},tool:{type:`string`,minLength:1},access:{enum:[`observe`,`mutate`,`execute`,`interact`,`control`]},traits:{type:`array`,minItems:1,items:{type:`string`,pattern:`^[a-z][a-z0-9-]*$`},uniqueItems:!0}}},me={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/SessionOwner.json`,title:`SessionOwner`,description:`A workspace-scoped approval owner, the client tools it implements, and whether a person attends it. Capabilities persist while disconnected; a message never changes ownership.`,type:`object`,required:[`address`,`tools`,`interactive`],additionalProperties:!1,properties:{address:{type:`string`,minLength:1},tools:{type:`array`,uniqueItems:!0,items:{type:`string`,minLength:1}},interactive:{type:`boolean`,description:`A person attends this owner: it can be asked, and work parked for a person can wait for it.`}}},Y={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/ClientDisplayCapabilities.json`,title:`ClientDisplayCapabilities`,description:`The installed scheme and MIME capability identities with optional opaque client presentation metadata.`,type:`array`,items:{oneOf:[{$ref:`#/$defs/schemeCapability`},{$ref:`#/$defs/mimetypeCapability`}]},$defs:{display:{title:`CapabilityDisplay`,type:`object`,additionalProperties:!1,properties:{glyph:{type:`string`,minLength:1}}},schemeCapability:{title:`SchemeDisplayCapability`,type:`object`,required:[`kind`,`scheme`,`display`],additionalProperties:!1,properties:{kind:{const:`scheme`},scheme:{type:`string`,minLength:1},display:{$ref:`#/$defs/display`}}},mimetypeCapability:{title:`MimetypeDisplayCapability`,type:`object`,required:[`kind`,`mimetype`,`display`],additionalProperties:!1,properties:{kind:{const:`mimetype`},mimetype:{type:`string`,minLength:1},display:{$ref:`#/$defs/display`}}}}},X={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/McpServerDefinition.json`,title:`McpServerDefinition`,description:`One complete MCP connection definition. Configuration sources supply it; workspace management persists it without installing a plugin.`,oneOf:[{$ref:`#/$defs/stdio`},{$ref:`#/$defs/streamableHttp`}],$defs:{name:{title:`McpServerName`,description:`The server's alias: the runtime tag whose fence invokes it and its resource scheme.`,type:`string`,pattern:`^[a-z][a-z0-9_-]*$`},plurnkWorkspace:{description:"Target workspace name(s) or '*' for operator-scoped multi-workspace routing; ${NAME} references expand against the operator environment.",oneOf:[{type:`string`,minLength:1},{type:`array`,minItems:1,items:{type:`string`,minLength:1}}]},plurnkSession:{description:"Default target session name in the workspace for server-initiated Open Work; ${NAME} references expand against the workspace-composed operator environment.",type:`string`,minLength:1},stdio:{title:`McpStdioServerDefinition`,type:`object`,additionalProperties:!1,required:[`type`,`command`],properties:{type:{description:`A local server: a subprocess speaking MCP over its standard input and output.`,const:`stdio`},command:{description:`An executable name or path, without a shell. Relative paths resolve against the working directory.`,type:`string`,minLength:1},args:{description:"Exact arguments; ${NAME} environment references expand once.",type:`array`,items:{type:`string`}},env:{description:"Process environment additions; ${NAME} references resolve against the workspace-composed operator environment.",type:`object`,additionalProperties:{type:`string`}},cwd:{description:"An absolute working directory, optionally using ${NAME} references. When absent the host supplies a workspace-owned state directory outside the project.",type:`string`,minLength:1},plurnkWorkspace:{$ref:`#/$defs/plurnkWorkspace`},plurnkSession:{$ref:`#/$defs/plurnkSession`}}},streamableHttp:{title:`McpStreamableHttpServerDefinition`,type:`object`,additionalProperties:!1,required:[`type`,`url`],properties:{type:{description:`A remote server: an MCP endpoint over Streamable HTTP.`,const:`streamable-http`},url:{description:`The explicitly configured HTTP(S) MCP endpoint. OAuth has its own transport-security requirements.`,type:`string`,pattern:`^https?://`},headers:{description:"Headers sent only to this endpoint; ${NAME} references expand at connection time. Protocol-owned headers are supplied by the client. Authorization cannot also be declared as a header when authorization is configured.",type:`object`,additionalProperties:{type:`string`}},authorization:{title:`McpAuthorization`,description:`This endpoint's bearer or OAuth configuration. Secrets remain symbolic environment references.`,oneOf:[{type:`object`,additionalProperties:!1,required:[`type`,`token`],properties:{type:{const:`bearer`},token:{$ref:`https://schemas.plurnk.xyz/v0/McpOAuth.json#/$defs/environmentReference`}}},{$ref:`https://schemas.plurnk.xyz/v0/McpOAuth.json`}]},plurnkWorkspace:{$ref:`#/$defs/plurnkWorkspace`},plurnkSession:{$ref:`#/$defs/plurnkSession`}}}}},he={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/SkillDefinition.json`,title:`SkillDefinition`,description:`One standard Agent Skill and its source. Source locations are inputs, not installation scopes.`,type:`object`,additionalProperties:!1,properties:{source:{description:`A local skill folder or its SKILL.md (read in place), a Git remote, or an archive (materialized into workspace storage). Required for configured and added skills; omitted only for a host-provided tree.`,type:`string`,minLength:1},ref:{description:`The branch or tag of a git source; the remote's default branch when absent.`,type:`string`,minLength:1},commit:{description:`The commit a git source's ref named when the skill was added. The service records it; a client never supplies it.`,type:`string`,pattern:`^[0-9a-f]{40}(?:[0-9a-f]{24})?$`}},$defs:{name:{description:`The standard Agent Skills name: Unicode lowercase or uncased letters and numbers joined by single hyphens, equal to the skill's directory name.`,type:`string`,pattern:`^(?!.{65}|.*[\\p{Uppercase}\\p{Lt}])[\\p{L}\\p{N}]+(?:-[\\p{L}\\p{N}]+)*$`,maxLength:64}}},ge={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/McpOAuth.json`,title:`McpOAuth`,description:"OAuth configuration within one Streamable HTTP MCP server definition. Every secret is a ${NAME} reference to the operator environment.",oneOf:[{type:`object`,description:`Interactive OAuth identified by an HTTPS Client ID Metadata Document.`,additionalProperties:!1,required:[`type`,`clientMetadataUrl`],properties:{type:{const:`oauth`},redirectUrl:{type:`string`,format:`uri`},clientMetadataUrl:{type:`string`,format:`uri`,pattern:`^https://.+/.+`},scope:{type:`string`,minLength:1},issuer:{$ref:`#/$defs/interactiveIssuer`},authorizationParams:{$ref:`#/$defs/authorizationParams`}}},{type:`object`,description:`Interactive OAuth with a pre-registered client ID and secret.`,additionalProperties:!1,required:[`type`,`clientId`,`clientSecret`],properties:{type:{const:`oauth`},redirectUrl:{type:`string`,format:`uri`},clientId:{type:`string`,minLength:1},clientSecret:{$ref:`#/$defs/environmentReference`},scope:{type:`string`,minLength:1},issuer:{$ref:`#/$defs/interactiveIssuer`},authorizationParams:{$ref:`#/$defs/authorizationParams`}}},{type:`object`,description:`Interactive OAuth through server-advertised Dynamic Client Registration.`,additionalProperties:!1,required:[`type`],properties:{type:{const:`oauth`},redirectUrl:{type:`string`,format:`uri`},scope:{type:`string`,minLength:1},issuer:{$ref:`#/$defs/interactiveIssuer`},authorizationParams:{$ref:`#/$defs/authorizationParams`}}},{type:`object`,description:`A noninteractive client-credentials grant; issuer optionally binds the credentials to one authorization server.`,additionalProperties:!1,required:[`type`,`clientId`,`clientSecret`],properties:{type:{const:`client-credentials`},clientId:{type:`string`,minLength:1},clientSecret:{$ref:`#/$defs/environmentReference`},scope:{type:`string`,minLength:1},issuer:{type:`string`,minLength:1}}}],$defs:{interactiveIssuer:{description:`The authorization server the sign-in binds to. Discovery starts at its metadata, so a server that publishes no protected-resource metadata can still be signed in to.`,type:`string`,format:`uri`},authorizationParams:{description:`Parameters added to the authorization request, such as access_type=offline; the parameters the flow sets itself cannot be named.`,type:`object`,minProperties:1,propertyNames:{minLength:1,not:{enum:[`response_type`,`client_id`,`redirect_uri`,`scope`,`state`,`code_challenge`,`code_challenge_method`,`resource`]}},additionalProperties:{type:`string`}},environmentReference:{description:"An operator environment variable reference such as ${GITEA_TOKEN}, never a literal secret.",type:`string`,pattern:`^\\$\\{[A-Za-z_][A-Za-z0-9_]*\\}$`}}},_e={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/ClientInteractionRequest.json`,title:`ClientInteractionRequest`,description:`A runtime-neutral client elicitation request in standard ACP v2 / MCP form or URL mode. Protocol-private continuation state is excluded.`,oneOf:[{type:`object`,required:[`toolName`,`mode`,`message`,`requestedSchema`],additionalProperties:!1,properties:{toolName:{type:`string`,minLength:1},mode:{const:`form`},message:{type:`string`,minLength:1},requestedSchema:{type:`object`,additionalProperties:!0}}},{type:`object`,required:[`toolName`,`mode`,`message`,`elicitationId`,`url`],additionalProperties:!1,properties:{toolName:{type:`string`,minLength:1},mode:{const:`url`},message:{type:`string`,minLength:1},elicitationId:{type:`string`,minLength:1},url:{type:`string`,format:`uri`,minLength:1}}}]},ve={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/ClientInteractionProjection.json`,title:`ClientInteractionProjection`,description:`The runtime-neutral client-interface projection of one pending client interaction. Live delivery and reconnect discovery expose this same shape.`,type:`object`,required:[`interactionId`,`sessionId`,`loopId`,`turnId`,`recipient`,`request`],additionalProperties:!1,properties:{interactionId:{type:`integer`,minimum:1},sessionId:{type:`integer`,minimum:1},loopId:{type:`integer`,minimum:1},turnId:{type:`integer`,minimum:1},recipient:{type:`string`,minLength:1},request:{$ref:`https://schemas.plurnk.xyz/v0/ClientInteractionRequest.json`}}},ye={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/ClientInteractionResolution.json`,title:`ClientInteractionResolution`,description:`The standard ACP v2 / MCP elicitation response that settles one pending interaction. Declined and cancelled interactions carry no fabricated content.`,oneOf:[{type:`object`,required:[`action`],additionalProperties:!1,properties:{action:{const:`accept`},content:{type:`object`,additionalProperties:!0}}},{type:`object`,required:[`action`],additionalProperties:!1,properties:{action:{const:`decline`}}},{type:`object`,required:[`action`],additionalProperties:!1,properties:{action:{const:`cancel`}}}]},Z={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/Effort.json`,title:`Effort`,description:`The portable durable reasoning effort shared by provider, runtime, and client boundaries.`,enum:[`off`,`adaptive`,`low`,`medium`,`high`,`xhigh`,`max`]},be={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/ModelCatalogPage.json`,title:`ModelCatalogPage`,description:`One deterministic bounded page from the release-pinned model catalog.`,type:`object`,required:[`items`,`offset`,`total`],additionalProperties:!1,properties:{items:{type:`array`,maxItems:100,items:{$ref:`#/$defs/model`}},offset:{type:`integer`,minimum:0,maximum:9007199254740991},total:{type:`integer`,minimum:0,maximum:9007199254740991},nextOffset:{type:`integer`,minimum:1,maximum:9007199254740991}},$defs:{model:{title:`ModelCatalogEntry`,type:`object`,required:[`selector`,`provider`,`providerName`,`model`,`modelName`,`limits`,`capabilities`,`readiness`],additionalProperties:!1,properties:{selector:{type:`string`,minLength:3},provider:{type:`string`,minLength:1},providerName:{type:`string`,minLength:1},model:{type:`string`,minLength:1},modelName:{type:`string`,minLength:1},limits:{$ref:`#/$defs/limits`},capabilities:{$ref:`#/$defs/capabilities`},readiness:{$ref:`https://schemas.plurnk.xyz/v0/ModelReadiness.json`}}},limits:{title:`ModelCatalogLimits`,type:`object`,required:[`contextTokens`],additionalProperties:!1,properties:{contextTokens:{type:`integer`,minimum:1},inputTokens:{type:`integer`,minimum:1},outputTokens:{type:`integer`,minimum:1}}},capabilities:{title:`ModelCatalogCapabilities`,type:`object`,required:[`attachment`,`reasoning`,`efforts`,`toolCall`,`inputModalities`,`outputModalities`],additionalProperties:!1,properties:{attachment:{type:`boolean`},reasoning:{type:`boolean`},efforts:{description:`Portable efforts admitted for this exact route by the installed provider adapter and provider-wide operator declarations; not a session's combined model/spawn policy intersection.`,type:`array`,minItems:1,uniqueItems:!0,items:{$ref:`https://schemas.plurnk.xyz/v0/Effort.json`}},toolCall:{type:`boolean`},structuredOutput:{type:`boolean`},temperature:{type:`boolean`},inputModalities:{type:`array`,items:{type:`string`,minLength:1}},outputModalities:{type:`array`,items:{type:`string`,minLength:1}}}}}},xe={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/ModelCatalogQuery.json`,title:`ModelCatalogQuery`,description:`A bounded query over the release-pinned Models.dev catalog.`,type:`object`,additionalProperties:!1,properties:{provider:{type:`string`,minLength:1,maxLength:128},search:{type:`string`,maxLength:256},availability:{enum:[`configured`,`all`]},offset:{type:`integer`,minimum:0,maximum:9007199254740991},limit:{type:`integer`,minimum:1,maximum:100}}},Se={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/FunctionalityCandidate.json`,title:`FunctionalityCandidate`,description:`One inert discovery result: an exact family definition with its provenance. Discovery never installs, persists, enables, or executes it.`,type:`object`,additionalProperties:!1,required:[`definition`,`provenance`],properties:{alias:{description:`The alias the candidate would take if added; a suggestion, never authority.`,type:`string`,minLength:1},summary:{type:`string`},definition:{description:`The exact family definition, conforming to the family's definition schema.`,type:`object`},provenance:{$ref:`https://schemas.plurnk.xyz/v0/FunctionalityProvenance.json`}}},Ce={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/FunctionalityProvenance.json`,title:`FunctionalityProvenance`,description:`The input supplying a definition or discovery candidate, separate from ownership, preparation and authority.`,type:`object`,additionalProperties:!1,required:[`kind`,`source`],properties:{kind:{type:`string`,minLength:1},source:{type:`string`,minLength:1},reference:{type:`string`,minLength:1}}},we={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/FunctionalityDiscoverQuery.json`,title:`FunctionalityDiscoverQuery`,description:`A family-neutral discovery request: a search term or an explicit source such as a URL, path, registry reference, or package.`,type:`object`,additionalProperties:!1,properties:{query:{type:`string`,minLength:1},source:{type:`string`,minLength:1},rule:{type:`string`,minLength:1},configuration:{description:`Caller-supplied configuration material the family interprets as candidates (a client's own PLURNK_SCHEDULE_* environment, a local directory list). It contributes candidates with client-configuration provenance; it never becomes durable authority.`,type:`object`}}},Te={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/FunctionalityDiscoverResult.json`,title:`FunctionalityDiscoverResult`,type:`object`,additionalProperties:!1,required:[`family`,`candidates`],properties:{family:{type:`string`,minLength:1},candidates:{type:`array`,items:{$ref:`https://schemas.plurnk.xyz/v0/FunctionalityCandidate.json`}}}},Ee={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/FunctionalityDefinitionState.json`,title:`FunctionalityDefinitionState`,description:`One workspace definition: its origin, desired enabledness, and current preparation outcome. Credentials never appear.`,type:`object`,additionalProperties:!1,required:[`alias`,`origin`,`state`],properties:{alias:{type:`string`,minLength:1},origin:{description:`Who owns this definition: the service baseline, the workspace, or one session. A session-scoped family (env) owns its definitions per session, so origin names ownership rather than scope.`,enum:[`service`,`workspace`,`session`]},state:{description:`disabled: available, model-invisible. dormant: enabled without a resident publication. active: enabled and prepared. unavailable: enabled but preparation has an exact Problem. authorization-required: enabled and awaiting a protocol continuation.`,enum:[`disabled`,`dormant`,`active`,`unavailable`,`authorization-required`]},definition:{type:`object`},provenance:{description:`The winning configuration input, when supplied by a source reader. Independent of origin and readiness; absent for locally owned definitions or host-provided resources without a configuration input.`,$ref:`https://schemas.plurnk.xyz/v0/FunctionalityProvenance.json`},inherited:{description:`The Session this entry was copied from when this Session was created (WORK or FORK), preserved across generations until this Session changes the entry. Absent for an entry this Session set itself. Session-scoped families only.`,type:`string`,minLength:1},detail:{description:`Family-owned presentation facts about an active definition (a server's protocol version and tool names, an agent card summary). Never credentials, never authority.`,type:`object`},problem:{$ref:`https://schemas.plurnk.xyz/v0/ProblemDetails.json`},authorization:{description:`A protocol continuation is needed. A URL is present only after an authorization attempt has begun.`,type:`object`,additionalProperties:!1,properties:{url:{type:`string`,minLength:1}}}},allOf:[{if:{properties:{state:{const:`unavailable`}}},then:{required:[`problem`]}},{if:{properties:{state:{const:`authorization-required`}}},then:{required:[`authorization`]}}]},De={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/FunctionalityListResult.json`,title:`FunctionalityListResult`,type:`object`,additionalProperties:!1,required:[`family`,`definitions`],properties:{family:{type:`string`,minLength:1},definitions:{type:`array`,items:{$ref:`https://schemas.plurnk.xyz/v0/FunctionalityDefinitionState.json`}}}},Oe={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/FunctionalityMutationResult.json`,description:`The committed resource outcome of add, replace, enable, disable, or remove ({§functionality-replacement}): 202 when the resulting definition requires authorization; otherwise 201 when add or replace creates a local definition (including an inherited override), or 200 for assignment to an existing local definition and settled enable/disable/remove. Only replace may change a different local definition. A mutation names the one alias it concerned, or, for an add that names its definitions by their content ({§functionality-replacement}), lists every definition it admitted.`,title:`FunctionalityMutationResult`,type:`object`,additionalProperties:!1,required:[`status`,`family`],oneOf:[{required:[`alias`]},{required:[`definitions`]}],properties:{status:{type:`integer`,enum:[200,201,202]},family:{type:`string`,minLength:1},alias:{type:`string`,minLength:1},definition:{$ref:`https://schemas.plurnk.xyz/v0/FunctionalityDefinitionState.json`},definitions:{description:`Every definition an addressing family's add admitted, in the order the body named them.`,type:`array`,minItems:1,items:{$ref:`https://schemas.plurnk.xyz/v0/FunctionalityDefinitionState.json`}},removed:{const:!0}}},ke={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/RollbackReport.json`,title:`RollbackReport`,description:`What a rollback to a log coordinate did ({§log-wire-format}): the file mutations it reversed, latest first, each as an ordinary operation of the acting client; the rows it could not reverse because they kept no patch; and, when it stopped, the row and path where the file no longer matched what that mutation wrote.`,type:`object`,additionalProperties:!1,required:[`to`,`restored`,`skipped`,`stopped`],properties:{to:{type:`string`,minLength:1,description:"The coordinate rolled back to, `<loop>/<turn>/<item>`; the state after that item is what remains."},restored:{type:`array`,items:{type:`object`,additionalProperties:!1,required:[`coordinate`,`path`,`action`],properties:{coordinate:{type:`string`,minLength:1},path:{type:`string`,minLength:1},action:{enum:[`update`,`create`,`delete`],description:`What the reversal did to the file: rewrote it, recreated a removed file, or removed a created one.`}}}},skipped:{type:`array`,items:{type:`object`,additionalProperties:!1,required:[`coordinate`,`reason`],properties:{coordinate:{type:`string`,minLength:1},reason:{enum:[`no-patch`,`already-reversed`],description:`no-patch: the row kept no patch (a byte write, a member past the materialization bound, or a row settled before patches were kept). already-reversed: the file is in the state before that mutation, so an earlier rollback reversed it; nothing is done again.`}}}},stopped:{oneOf:[{type:`null`},{type:`object`,additionalProperties:!1,required:[`coordinate`,`path`,`reason`,`detail`],properties:{coordinate:{type:`string`,minLength:1},path:{type:`string`,minLength:1},reason:{enum:[`drift`,`refused`],description:`drift: the file no longer holds what that mutation wrote, so nothing was restored for it or for anything earlier; refused: the reversing operation was refused, and its Problem is the detail.`},detail:{type:`string`}}}]}}},Ae={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/McpOAuthCompletionResult.json`,title:`McpOAuthCompletionResult`,description:`A validated MCP sign-in accepted for normal capability publication. This acknowledges authorization, not tool readiness; inspect the published definition for readiness.`,type:`object`,additionalProperties:!1,required:[`status`,`alias`],properties:{status:{const:202},alias:{type:`string`,minLength:1}}},je={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/McpOAuthBeginResult.json`,title:`McpOAuthBeginResult`,description:`An MCP authorization attempt, independent of capability publication. An authorization URL requests consent; 202 without one awaits publication; 200 is already active.`,oneOf:[{$ref:`https://schemas.plurnk.xyz/v0/McpOAuthCompletionResult.json`},{type:`object`,additionalProperties:!1,required:[`status`,`alias`],properties:{status:{const:200},alias:{type:`string`,minLength:1}}},{type:`object`,additionalProperties:!1,required:[`status`,`alias`,`authorization`],properties:{status:{const:202},alias:{type:`string`,minLength:1},authorization:{type:`object`,additionalProperties:!1,required:[`url`],properties:{url:{type:`string`,format:`uri`}}}}}]},Me={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/FunctionalityPreparationActivity.json`,title:`FunctionalityPreparationActivity`,description:`Current workspace capability preparation, not a published outcome. No definitions or credentials.`,type:`object`,additionalProperties:!1,required:[`family`,`alias`,`phase`,`since`],properties:{family:{type:`string`,minLength:1},alias:{type:[`string`,`null`],minLength:1},phase:{enum:[`preparing`,`publishing`]},since:{type:`string`,format:`date-time`}}},Ne={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/ModelReadiness.json`,title:`ModelReadiness`,description:`Local configuration evidence that a catalog provider is ready to attempt a request, without probing or validating credentials.`,type:`object`,required:[`ready`,`causes`],additionalProperties:!1,properties:{ready:{type:`boolean`},causes:{type:`array`,items:{$ref:`#/$defs/cause`}}},$defs:{cause:{title:`ModelReadinessCause`,type:`object`,required:[`kind`,`alternatives`],additionalProperties:!1,properties:{kind:{enum:[`credential`,`configuration`]},alternatives:{description:`Alternative environment-variable sets. Every name in one inner array is required; satisfying any inner array resolves this cause.`,type:`array`,minItems:1,items:{type:`array`,minItems:1,uniqueItems:!0,items:{type:`string`,pattern:`^[A-Z0-9_]+$`}}}}}}},Pe={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/ModelRoute.json`,title:`ModelRoute`,description:`A client-visible resolved provider/model identity. Alias is present only when a declared alias supplied the route; provider configuration remains private to the daemon. effort is the session's durable effort selection — absent when the model has no reasoning dimension.`,type:`object`,required:[`provider`,`model`],dependentRequired:{effort:[`effortSource`],effortSource:[`effort`]},additionalProperties:!1,properties:{alias:{type:`string`,minLength:1},provider:{type:`string`,minLength:1},model:{type:`string`,minLength:1},effort:{$ref:`https://schemas.plurnk.xyz/v0/Effort.json`},effortSource:{description:`Whether effort was chosen through setSessionEffort (explicit) or seeded from the alias configuration (default). Present exactly when effort is.`,type:`string`,enum:[`default`,`explicit`]}}},Fe={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/AcpDiscovery.json`,title:`AcpDiscovery`,description:`The complete installed ACP management and notification surface. Action and notification names are object keys so identity has one representation.`,type:`object`,required:[`schemaVersion`,`actions`,`notifications`,`display`],additionalProperties:!1,properties:{schemaVersion:{const:1},actions:{type:`object`,propertyNames:{type:`string`,minLength:1},additionalProperties:{$ref:`#/$defs/action`}},notifications:{type:`object`,propertyNames:{type:`string`,minLength:1},additionalProperties:{$ref:`#/$defs/notification`}},display:{$ref:`https://schemas.plurnk.xyz/v0/ClientDisplayCapabilities.json`}},$defs:{jsonSchema:{type:`object`,description:`A JSON Schema 2020-12 schema supplied by the contract owner.`,additionalProperties:!0},action:{type:`object`,required:[`scope`,`inputSchema`,`outputSchema`],additionalProperties:!1,properties:{scope:{enum:[`daemon`,`workspace`,`session`]},inputSchema:{$ref:`#/$defs/jsonSchema`},outputSchema:{$ref:`#/$defs/jsonSchema`}}},notification:{type:`object`,required:[`payloadSchema`],additionalProperties:!1,properties:{payloadSchema:{$ref:`#/$defs/jsonSchema`}}}}},Ie={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/ProviderAccounting.json`,title:`ProviderAccounting`,description:`Ordered physical provider-request evidence and its deterministic aggregate projection.`,type:`object`,additionalProperties:!1,required:[`requests`,`usage`,`knownUsage`,`costUsd`,`knownCostUsd`],properties:{requests:{type:`array`,items:{$ref:`https://schemas.plurnk.xyz/ProviderRequestAccounting.json`}},usage:{oneOf:[{$ref:`https://schemas.plurnk.xyz/ProviderUsage.json`},{type:`null`}]},knownUsage:{$ref:`#/properties/usage`},knownCostUsd:{$ref:`#/properties/costUsd`},costUsd:{oneOf:[{type:`string`,pattern:`^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$`},{type:`null`}]}}},Le={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/ProviderRequestAccounting.json`,title:`ProviderRequestAccounting`,description:`The normalized accounting disposition of one physical provider request.`,type:`object`,additionalProperties:!1,required:[`provider`,`model`,`outcome`,`cost`],properties:{provider:{type:`string`,minLength:1},model:{type:`string`,minLength:1},outcome:{enum:[`response`,`error`]},status:{type:`integer`,minimum:100,maximum:599},usage:{$ref:`https://schemas.plurnk.xyz/ProviderUsage.json`},cost:{$ref:`https://schemas.plurnk.xyz/ProviderCost.json`}}},Re={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/ProviderUsage.json`,title:`ProviderUsage`,description:`Token quantities. Physical-request instances enforce their partition identities. ProviderAccounting distinguishes complete usage from knownUsage subtotals. Omitted fields are unknown; explicit zero is observed or exactly derived.`,type:`object`,additionalProperties:!1,minProperties:1,properties:{inputTokens:{$ref:`#/$defs/Tokens`},outputTokens:{$ref:`#/$defs/Tokens`},totalTokens:{$ref:`#/$defs/Tokens`},inputTokenDetails:{type:`object`,additionalProperties:!1,minProperties:1,properties:{noCacheTokens:{$ref:`#/$defs/Tokens`},cacheReadTokens:{$ref:`#/$defs/Tokens`},cacheWriteTokens:{$ref:`#/$defs/Tokens`}}},outputTokenDetails:{type:`object`,additionalProperties:!1,minProperties:1,properties:{textTokens:{$ref:`#/$defs/Tokens`},reasoningTokens:{$ref:`#/$defs/Tokens`}}}},$defs:{Tokens:{type:`integer`,minimum:0,maximum:9007199254740991}}},ze={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/ProviderCost.json`,title:`ProviderCost`,description:`Normalized monetary evidence for one physical provider request. Unknown is never represented as zero.`,oneOf:[{type:`object`,additionalProperties:!1,required:[`kind`,`amount`,`source`],properties:{kind:{const:`charged`},amount:{$ref:`#/$defs/MonetaryAmount`},usdEquivalent:{$ref:`#/$defs/DecimalAmount`},source:{$ref:`#/$defs/NonEmptyString`}}},{type:`object`,additionalProperties:!1,required:[`kind`,`amount`,`source`],properties:{kind:{const:`estimated`},amount:{$ref:`#/$defs/MonetaryAmount`},source:{$ref:`#/$defs/NonEmptyString`}}},{type:`object`,additionalProperties:!1,required:[`kind`,`reason`],properties:{kind:{const:`unknown`},reason:{$ref:`#/$defs/NonEmptyString`}}}],$defs:{DecimalAmount:{type:`string`,pattern:`^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$`},NonEmptyString:{type:`string`,minLength:1},MonetaryAmount:{type:`object`,additionalProperties:!1,required:[`amount`,`currency`],properties:{amount:{$ref:`#/$defs/DecimalAmount`},currency:{type:`string`,pattern:`^[A-Z][A-Z0-9]{2,11}$`}}}}},Be=class extends TypeError{},Q=class extends TypeError{},Ve=class e{static#e=new WeakMap;static#t=[L,I,j,M,N,P,F,ue,de,Fe,Y,ve,_e,ye,V,Se,Ce,Ee,we,Te,De,Oe,Me,ke,Ae,je,ge,X,he,K,q,pe,J,me,be,xe,Ne,Pe,R,fe,z,B,G,W,Ie,Le,Re,ze,U,H,Z];static schemaByRef(t){let n=e.#t.find(n=>e.#r(n)===t);return n===void 0?null:n}static#n(e){return typeof e!=`object`||!e||Array.isArray(e)?!1:!(`$schema`in e)||typeof e.$schema==`string`}static#r(e){return typeof e==`object`&&e&&`$id`in e&&typeof e.$id==`string`?e.$id:void 0}static#i(t){if(!e.#n(t))throw TypeError(`a JSON Schema document is an object declaring draft 2020-12, or no draft`);return new A(t,`2020-12`)}static#a(t,n){let r=e.#i(t),i=e.#r(t);for(let t of n)if(e.#r(t)!==i){if(!e.#n(t))throw TypeError(`a referenced JSON Schema document is an object declaring draft 2020-12, or no draft`);r.addSchema(t)}return r}static#o(e,t){return t.valid}static#s(t,n,r,i=TypeError){let a=e.validateJsonSchemaInstance(t,r);if(!e.#o(r,a))throw new i(`invalid ${n}: ${JSON.stringify(a.errors)}`);return r}static validateJsonSchemaInstance(t,n){let r=e.#e.get(t);r===void 0&&(r=e.#a(structuredClone(t),e.#t),e.#e.set(t,r));let i=r.validate(n);return{valid:i.valid,errors:i.errors}}static assertJsonSchemaInstance(t,n,r){let i=e.validateJsonSchemaInstance(n,r);if(!i.valid)throw TypeError(`${t} does not satisfy its JSON Schema: ${JSON.stringify(i.errors)}`);return r}static validateParsedPath(t){return e.validateJsonSchemaInstance(P,t)}static validatePlurnkStatement(t){return e.validateJsonSchemaInstance(I,t)}static validateEffort(t){return e.validateJsonSchemaInstance(Z,t)}static assertSessionOwner(t){return e.#s(me,`SessionOwner`,t)}static assertRollbackReport(t){return e.#s(ke,`RollbackReport`,t)}static assertNotice(t){return e.#s(R,`Notice`,t)}static assertProblemDetails(t){return e.#s(z,`RFC 9457 Problem Details`,t,Be)}static assertProblemProjection(t){return e.#s(B,`model Problem projection`,t)}static assertOperationResult(t){let n=e.#s(fe,`operation result`,t,Q);if(n.problem!==void 0&&n.problem.status!==n.status)throw new Q(`operation result status ${n.status} does not match problem status ${n.problem.status}`);if(n.range!==void 0)try{e.assertRangeExtent(n.range)}catch(e){throw new Q(`operation result contains an invalid RangeExtent`,{cause:e})}return n}static assertEntryReadResult(t){let n=e.#s(V,`EntryReadResult`,t);if(`problem`in n&&n.problem.status!==n.status)throw TypeError(`EntryReadResult status ${n.status} does not match problem status ${n.problem.status}`);if(n.entry!==null)for(let[e,t]of Object.entries(n.entry.channels)){let n=Array.from(t.content).length;if(t.contentOffset+n!==t.contentLength)throw TypeError(`invalid EntryReadResult: /entry/channels/${e} contentOffset plus the returned Unicode-code-point length must equal contentLength`)}return n}static assertTextRegion(t){let n=e.#s(H,`TextRegion`,t);if(n.endLine<n.startLine||n.endLine===n.startLine&&n.endColumn<n.startColumn)throw TypeError(`TextRegion ends before it starts`);return n}static assertRangeExtent(t){let n=e.#s(U,`RangeExtent`,t);if(n.returned!==void 0){let[e,t]=n.returned;if(e>t||t>n.total)throw TypeError(`RangeExtent returned positions must be ordered within total`)}return n}static assertCapabilityDescriptor(t){return e.#s(K,`CapabilityDescriptor`,t)}static assertCapabilityPolicy(t){return e.#s(q,`CapabilityPolicy`,t)}static assertProposalProjection(t){return e.#s(W,`ProposalProjection`,t)}static assertClientDisplayCapabilities(t){return e.#s(Y,`ClientDisplayCapabilities`,t)}static assertMcpServerDefinition(t){return e.#s(X,`MCP server definition`,t)}static assertSkillDefinition(t){return e.#s(he,`Skill definition`,t)}static assertMcpOAuth(t){return e.#s(ge,`MCP OAuth settings`,t)}static assertClientInteractionRequest(t){return e.#s(_e,`ClientInteractionRequest`,t)}static assertClientInteractionProjection(t){return e.#s(ve,`ClientInteractionProjection`,t)}static assertClientInteractionResolution(t){return e.#s(ye,`ClientInteractionResolution`,t)}static assertParsedPath(t){return e.#s(P,`ParsedPath`,t)}static assertPlurnkStatement(t){return e.#s(I,`PlurnkStatement`,t)}static assertEffort(t){return e.#s(Z,`Effort`,t)}static assertModelCatalogPage(t){let n=e.#s(be,`ModelCatalogPage`,t),r=new Set;for(let t of n.items){if(e.assertModelReadiness(t.readiness),t.selector!==`${t.provider}/${t.model}`)throw TypeError(`ModelCatalogPage item selector must equal provider/model`);if(r.has(t.selector))throw TypeError(`ModelCatalogPage item selectors must be unique`);r.add(t.selector)}let i=n.offset+n.items.length;if(n.items.length>0&&i>n.total)throw TypeError(`ModelCatalogPage items extend beyond total`);if(n.nextOffset!==void 0){if(n.nextOffset!==i||n.nextOffset>=n.total)throw TypeError(`ModelCatalogPage nextOffset must equal the page end and leave remaining items`)}else if(n.offset<n.total&&i<n.total)throw TypeError(`ModelCatalogPage omits nextOffset before total`);return n}static assertFunctionalityListResult(t){return e.#s(De,`FunctionalityListResult`,t)}static assertFunctionalityDiscoverResult(t){return e.#s(Te,`FunctionalityDiscoverResult`,t)}static assertFunctionalityMutationResult(t){return e.#s(Oe,`FunctionalityMutationResult`,t)}static assertModelCatalogQuery(t){return e.#s(xe,`ModelCatalogQuery`,t)}static assertModelReadiness(t){let n=e.#s(Ne,`ModelReadiness`,t);if(n.ready!==(n.causes.length===0))throw TypeError(`invalid ModelReadiness: ready must be true exactly when causes is empty`);return n}static assertModelRoute(t){return e.#s(Pe,`ModelRoute`,t)}static assertAcpDiscovery(t){return e.#s(Fe,`ACP discovery manifest`,t)}},He;(function(e){e[e.lineFeed=10]=`lineFeed`,e[e.carriageReturn=13]=`carriageReturn`,e[e.space=32]=`space`,e[e._0=48]=`_0`,e[e._1=49]=`_1`,e[e._2=50]=`_2`,e[e._3=51]=`_3`,e[e._4=52]=`_4`,e[e._5=53]=`_5`,e[e._6=54]=`_6`,e[e._7=55]=`_7`,e[e._8=56]=`_8`,e[e._9=57]=`_9`,e[e.a=97]=`a`,e[e.b=98]=`b`,e[e.c=99]=`c`,e[e.d=100]=`d`,e[e.e=101]=`e`,e[e.f=102]=`f`,e[e.g=103]=`g`,e[e.h=104]=`h`,e[e.i=105]=`i`,e[e.j=106]=`j`,e[e.k=107]=`k`,e[e.l=108]=`l`,e[e.m=109]=`m`,e[e.n=110]=`n`,e[e.o=111]=`o`,e[e.p=112]=`p`,e[e.q=113]=`q`,e[e.r=114]=`r`,e[e.s=115]=`s`,e[e.t=116]=`t`,e[e.u=117]=`u`,e[e.v=118]=`v`,e[e.w=119]=`w`,e[e.x=120]=`x`,e[e.y=121]=`y`,e[e.z=122]=`z`,e[e.A=65]=`A`,e[e.B=66]=`B`,e[e.C=67]=`C`,e[e.D=68]=`D`,e[e.E=69]=`E`,e[e.F=70]=`F`,e[e.G=71]=`G`,e[e.H=72]=`H`,e[e.I=73]=`I`,e[e.J=74]=`J`,e[e.K=75]=`K`,e[e.L=76]=`L`,e[e.M=77]=`M`,e[e.N=78]=`N`,e[e.O=79]=`O`,e[e.P=80]=`P`,e[e.Q=81]=`Q`,e[e.R=82]=`R`,e[e.S=83]=`S`,e[e.T=84]=`T`,e[e.U=85]=`U`,e[e.V=86]=`V`,e[e.W=87]=`W`,e[e.X=88]=`X`,e[e.Y=89]=`Y`,e[e.Z=90]=`Z`,e[e.asterisk=42]=`asterisk`,e[e.backslash=92]=`backslash`,e[e.closeBrace=125]=`closeBrace`,e[e.closeBracket=93]=`closeBracket`,e[e.colon=58]=`colon`,e[e.comma=44]=`comma`,e[e.dot=46]=`dot`,e[e.doubleQuote=34]=`doubleQuote`,e[e.minus=45]=`minus`,e[e.openBrace=123]=`openBrace`,e[e.openBracket=91]=`openBracket`,e[e.plus=43]=`plus`,e[e.slash=47]=`slash`,e[e.formFeed=12]=`formFeed`,e[e.tab=9]=`tab`})(He||={}),Array(20).fill(0).map((e,t)=>` `.repeat(t));var $=200;Array($).fill(0).map((e,t)=>`
|
|
3
|
+
`+` `.repeat(t)),Array($).fill(0).map((e,t)=>`\r`+` `.repeat(t)),Array($).fill(0).map((e,t)=>`\r
|
|
4
|
+
`+` `.repeat(t)),Array($).fill(0).map((e,t)=>`
|
|
5
|
+
`+` `.repeat(t)),Array($).fill(0).map((e,t)=>`\r`+` `.repeat(t)),Array($).fill(0).map((e,t)=>`\r
|
|
6
|
+
`+` `.repeat(t));var Ue;(function(e){e.DEFAULT={allowTrailingComma:!1}})(Ue||={});var We;(function(e){e[e.None=0]=`None`,e[e.UnexpectedEndOfComment=1]=`UnexpectedEndOfComment`,e[e.UnexpectedEndOfString=2]=`UnexpectedEndOfString`,e[e.UnexpectedEndOfNumber=3]=`UnexpectedEndOfNumber`,e[e.InvalidUnicode=4]=`InvalidUnicode`,e[e.InvalidEscapeCharacter=5]=`InvalidEscapeCharacter`,e[e.InvalidCharacter=6]=`InvalidCharacter`})(We||={});var Ge;(function(e){e[e.OpenBraceToken=1]=`OpenBraceToken`,e[e.CloseBraceToken=2]=`CloseBraceToken`,e[e.OpenBracketToken=3]=`OpenBracketToken`,e[e.CloseBracketToken=4]=`CloseBracketToken`,e[e.CommaToken=5]=`CommaToken`,e[e.ColonToken=6]=`ColonToken`,e[e.NullKeyword=7]=`NullKeyword`,e[e.TrueKeyword=8]=`TrueKeyword`,e[e.FalseKeyword=9]=`FalseKeyword`,e[e.StringLiteral=10]=`StringLiteral`,e[e.NumericLiteral=11]=`NumericLiteral`,e[e.LineCommentTrivia=12]=`LineCommentTrivia`,e[e.BlockCommentTrivia=13]=`BlockCommentTrivia`,e[e.LineBreakTrivia=14]=`LineBreakTrivia`,e[e.Trivia=15]=`Trivia`,e[e.Unknown=16]=`Unknown`,e[e.EOF=17]=`EOF`})(Ge||={});var Ke;(function(e){e[e.InvalidSymbol=1]=`InvalidSymbol`,e[e.InvalidNumberFormat=2]=`InvalidNumberFormat`,e[e.PropertyNameExpected=3]=`PropertyNameExpected`,e[e.ValueExpected=4]=`ValueExpected`,e[e.ColonExpected=5]=`ColonExpected`,e[e.CommaExpected=6]=`CommaExpected`,e[e.CloseBraceExpected=7]=`CloseBraceExpected`,e[e.CloseBracketExpected=8]=`CloseBracketExpected`,e[e.EndOfFileExpected=9]=`EndOfFileExpected`,e[e.InvalidCommentToken=10]=`InvalidCommentToken`,e[e.UnexpectedEndOfComment=11]=`UnexpectedEndOfComment`,e[e.UnexpectedEndOfString=12]=`UnexpectedEndOfString`,e[e.UnexpectedEndOfNumber=13]=`UnexpectedEndOfNumber`,e[e.InvalidUnicode=14]=`InvalidUnicode`,e[e.InvalidEscapeCharacter=15]=`InvalidEscapeCharacter`,e[e.InvalidCharacter=16]=`InvalidCharacter`})(Ke||={}),Object.freeze([`emission`,`reasoning`,`message`,`loop_termination`,`entry_materialized`,`emissionAttempt`]);var qe=e=>{let t=e=>typeof e==`string`?e:null,n=t(e.pathname);if(n===null)return null;let r=t(e.fragment)===null?``:`#${t(e.fragment)}`,i=t(e.scheme);if(i===null)return`${n}${r}`;let a=typeof e.port==`number`?`:${e.port}`:``,o=t(e.query)===null?``:`?${t(e.query)}`;return`${i}://${t(e.hostname)??``}${a}${n}${o}${r}`};Object.freeze(Z.enum),Object.freeze({$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://schemas.plurnk.xyz/v0/ProposalPolicy.json`,title:`ProposalPolicy`,description:`Server disposition for proposals. Review requires the session's owner; accept and reject settle within core.`,enum:[`review`,`accept`,`reject`]}.enum),new RegExp(he.$defs.name.pattern,`u`),Object.freeze({line:0,column:0});export{Ve as i,Q as n,Be as r,qe as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
|
|
2
|
+
Apache License
|
|
3
|
+
Version 2.0, January 2004
|
|
4
|
+
http://www.apache.org/licenses/
|
|
5
|
+
|
|
6
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
7
|
+
|
|
8
|
+
1. Definitions.
|
|
9
|
+
|
|
10
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
11
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
12
|
+
|
|
13
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
14
|
+
the copyright owner that is granting the License.
|
|
15
|
+
|
|
16
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
17
|
+
other entities that control, are controlled by, or are under common
|
|
18
|
+
control with that entity. For the purposes of this definition,
|
|
19
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
20
|
+
direction or management of such entity, whether by contract or
|
|
21
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
22
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
23
|
+
|
|
24
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
25
|
+
exercising permissions granted by this License.
|
|
26
|
+
|
|
27
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
28
|
+
including but not limited to software source code, documentation
|
|
29
|
+
source, and configuration files.
|
|
30
|
+
|
|
31
|
+
"Object" form shall mean any form resulting from mechanical
|
|
32
|
+
transformation or translation of a Source form, including but
|
|
33
|
+
not limited to compiled object code, generated documentation,
|
|
34
|
+
and conversions to other media types.
|
|
35
|
+
|
|
36
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
37
|
+
Object form, made available under the License, as indicated by a
|
|
38
|
+
copyright notice that is included in or attached to the work
|
|
39
|
+
(an example is provided in the Appendix below).
|
|
40
|
+
|
|
41
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
42
|
+
form, that is based on (or derived from) the Work and for which the
|
|
43
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
44
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
45
|
+
of this License, Derivative Works shall not include works that remain
|
|
46
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
47
|
+
the Work and Derivative Works thereof.
|
|
48
|
+
|
|
49
|
+
"Contribution" shall mean any work of authorship, including
|
|
50
|
+
the original version of the Work and any modifications or additions
|
|
51
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
52
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
53
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
54
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
55
|
+
means any form of electronic, verbal, or written communication sent
|
|
56
|
+
to the Licensor or its representatives, including but not limited to
|
|
57
|
+
communication on electronic mailing lists, source code control systems,
|
|
58
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
59
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
60
|
+
excluding communication that is conspicuously marked or otherwise
|
|
61
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
62
|
+
|
|
63
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
64
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
65
|
+
subsequently incorporated within the Work.
|
|
66
|
+
|
|
67
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
68
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
69
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
70
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
71
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
72
|
+
Work and such Derivative Works in Source or Object form.
|
|
73
|
+
|
|
74
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
75
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
76
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
77
|
+
(except as stated in this section) patent license to make, have made,
|
|
78
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
79
|
+
where such license applies only to those patent claims licensable
|
|
80
|
+
by such Contributor that are necessarily infringed by their
|
|
81
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
82
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
83
|
+
institute patent litigation against any entity (including a
|
|
84
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
85
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
86
|
+
or contributory patent infringement, then any patent licenses
|
|
87
|
+
granted to You under this License for that Work shall terminate
|
|
88
|
+
as of the date such litigation is filed.
|
|
89
|
+
|
|
90
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
91
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
92
|
+
modifications, and in Source or Object form, provided that You
|
|
93
|
+
meet the following conditions:
|
|
94
|
+
|
|
95
|
+
(a) You must give any other recipients of the Work or
|
|
96
|
+
Derivative Works a copy of this License; and
|
|
97
|
+
|
|
98
|
+
(b) You must cause any modified files to carry prominent notices
|
|
99
|
+
stating that You changed the files; and
|
|
100
|
+
|
|
101
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
102
|
+
that You distribute, all copyright, patent, trademark, and
|
|
103
|
+
attribution notices from the Source form of the Work,
|
|
104
|
+
excluding those notices that do not pertain to any part of
|
|
105
|
+
the Derivative Works; and
|
|
106
|
+
|
|
107
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
108
|
+
distribution, then any Derivative Works that You distribute must
|
|
109
|
+
include a readable copy of the attribution notices contained
|
|
110
|
+
within such NOTICE file, excluding those notices that do not
|
|
111
|
+
pertain to any part of the Derivative Works, in at least one
|
|
112
|
+
of the following places: within a NOTICE text file distributed
|
|
113
|
+
as part of the Derivative Works; within the Source form or
|
|
114
|
+
documentation, if provided along with the Derivative Works; or,
|
|
115
|
+
within a display generated by the Derivative Works, if and
|
|
116
|
+
wherever such third-party notices normally appear. The contents
|
|
117
|
+
of the NOTICE file are for informational purposes only and
|
|
118
|
+
do not modify the License. You may add Your own attribution
|
|
119
|
+
notices within Derivative Works that You distribute, alongside
|
|
120
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
121
|
+
that such additional attribution notices cannot be construed
|
|
122
|
+
as modifying the License.
|
|
123
|
+
|
|
124
|
+
You may add Your own copyright statement to Your modifications and
|
|
125
|
+
may provide additional or different license terms and conditions
|
|
126
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
127
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
128
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
129
|
+
the conditions stated in this License.
|
|
130
|
+
|
|
131
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
132
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
133
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
134
|
+
this License, without any additional terms or conditions.
|
|
135
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
136
|
+
the terms of any separate license agreement you may have executed
|
|
137
|
+
with Licensor regarding such Contributions.
|
|
138
|
+
|
|
139
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
140
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
141
|
+
except as required for reasonable and customary use in describing the
|
|
142
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
143
|
+
|
|
144
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
145
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
146
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
147
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
148
|
+
implied, including, without limitation, any warranties or conditions
|
|
149
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
150
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
151
|
+
appropriateness of using or redistributing the Work and assume any
|
|
152
|
+
risks associated with Your exercise of permissions under this License.
|
|
153
|
+
|
|
154
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
155
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
156
|
+
unless required by applicable law (such as deliberate and grossly
|
|
157
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
158
|
+
liable to You for damages, including any direct, indirect, special,
|
|
159
|
+
incidental, or consequential damages of any character arising as a
|
|
160
|
+
result of this License or out of the use or inability to use the
|
|
161
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
162
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
163
|
+
other commercial damages or losses), even if such Contributor
|
|
164
|
+
has been advised of the possibility of such damages.
|
|
165
|
+
|
|
166
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
167
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
168
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
169
|
+
or other liability obligations and/or rights consistent with this
|
|
170
|
+
License. However, in accepting such obligations, You may act only
|
|
171
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
172
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
173
|
+
defend, and hold each Contributor harmless for any liability
|
|
174
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
175
|
+
of your accepting any such warranty or additional liability.
|
|
176
|
+
|
|
177
|
+
END OF TERMS AND CONDITIONS
|
|
178
|
+
|
|
179
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
180
|
+
|
|
181
|
+
To apply the Apache License to your work, attach the following
|
|
182
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
183
|
+
replaced with your own identifying information. (Don't include
|
|
184
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
185
|
+
comment syntax for the file format. We also recommend that a
|
|
186
|
+
file or class name and description of purpose be included on the
|
|
187
|
+
same "printed page" as the copyright notice for easier
|
|
188
|
+
identification within third-party archives.
|
|
189
|
+
|
|
190
|
+
Copyright [yyyy] [name of copyright owner]
|
|
191
|
+
|
|
192
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
193
|
+
you may not use this file except in compliance with the License.
|
|
194
|
+
You may obtain a copy of the License at
|
|
195
|
+
|
|
196
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
197
|
+
|
|
198
|
+
Unless required by applicable law or agreed to in writing, software
|
|
199
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
200
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
201
|
+
See the License for the specific language governing permissions and
|
|
202
|
+
limitations under the License.
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Plurnk hamster artwork is derived from Google Noto Emoji.
|
|
2
|
+
Copyright 2013 Google, Inc. All Rights Reserved.
|
|
3
|
+
Licensed under the Apache License, Version 2.0; see APACHE-2.0.txt.
|
|
4
|
+
|
|
5
|
+
Source: https://github.com/googlefonts/noto-emoji/blob/v2.051/svg/emoji_u1f439.svg
|
|
6
|
+
License: https://github.com/googlefonts/noto-emoji/blob/v2.051/svg/LICENSE
|
|
7
|
+
|
|
8
|
+
Modifications: added glasses and a green bow, replaced the SVG wrapper and title.
|
|
9
|
+
The generated maskable SVG adds an opaque background and safe-area padding.
|
|
10
|
+
No Google endorsement is implied.
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><rect width="128" height="128" fill="#ffffff"/><g transform="translate(19.2 19.2) scale(0.7)"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
|
|
2
|
+
<title>Plurnk hamster with glasses and a green bow</title>
|
|
3
|
+
<!-- Google Noto Emoji hamster, Apache-2.0. Modified: glasses and green bow.
|
|
4
|
+
Source: googlefonts/noto-emoji v2.051, svg/emoji_u1f439.svg.
|
|
5
|
+
See NOTO-NOTICE.txt and APACHE-2.0.txt. -->
|
|
6
|
+
<path style="fill:#F2A159;" d="M62.07,29.22c16.33,0,29.53,8.62,43.74,33.65c11.83,20.84,9.57,43.5-3,50.45s-17.32,5.68-22.9,5.37
|
|
7
|
+
c-5.19-0.28-17.08-22.83-17.08-22.83s-10.86,22.45-18.4,22.34c-2.84-0.04-18.02,0.19-25.9-9.76s-7.51-26.84,0-41.86
|
|
8
|
+
S41.79,29.22,62.07,29.22z"/>
|
|
9
|
+
<path style="fill:#F2A159;" d="M117.26,32.79c0.43,11.28-8.16,18.02-17.46,18.02s-15.2-8.09-15.2-17.27s8.16-16.33,17.46-16.33
|
|
10
|
+
S116.91,23.62,117.26,32.79z"/>
|
|
11
|
+
<path style="fill:#F2A159;" d="M23.59,47.62C12.86,44.12,9.65,36.03,12.52,26.97s12.65-13.47,21.4-10.7s12.44,12.52,9.57,21.59
|
|
12
|
+
S31.66,50.24,23.59,47.62z"/>
|
|
13
|
+
<path style="fill:#FFA7AA;" d="M36.73,32.22c0,4.77-3.75,8.07-8.26,8.07s-7.88-3.68-7.88-8.45s3.37-8.63,7.88-8.63
|
|
14
|
+
C34.29,23.21,36.73,27.46,36.73,32.22z"/>
|
|
15
|
+
<path style="fill:#FFA7AA;" d="M100.13,41.63c-4.75-0.41-7.72-4.44-7.32-8.93s5.06-7.84,9.81-7.42s7.6,4.42,7.21,8.91
|
|
16
|
+
C109.32,39.98,104.88,42.05,100.13,41.63z"/>
|
|
17
|
+
<path style="fill:#2E3030;" d="M88.72,69.48c0.46,3.44-0.47,7.04-3.87,7.11c-3.56,0.07-4.79-3-5.14-6.45s1.09-5.44,3.66-5.82
|
|
18
|
+
C86.57,63.85,88.35,66.67,88.72,69.48z"/>
|
|
19
|
+
<path style="fill:#2E2D31;" d="M48.25,69.83c0.12,3.47-1.29,7.25-4.95,6.97c-3.55-0.27-4.6-4.5-4.13-8.17
|
|
20
|
+
c0.44-3.44,1.91-4.67,4.5-4.79C46.9,63.7,48.16,67,48.25,69.83z"/>
|
|
21
|
+
<path style="fill:#FFD2B1;" d="M63.43,112.28c0,0,9.01,5.91,16.61,6.48s16.47-2.39,17.03-13.51c0.64-12.67-8.87-19.57-11.26-21.4
|
|
22
|
+
c-1.42-1.09-8.73-6.19-8.73-6.19s-1.97-15.49-2.67-20.55c-0.7-5.07-1.25-12.95-10.98-13.09c-9.29-0.14-10.44,9.43-10.56,12.53
|
|
23
|
+
c-0.14,3.66-1.55,21.26-1.55,21.26s-5.31,3.52-9.01,6.34c-3.24,2.46-11.6,8.73-11.26,19.43c0.28,9.01,5.07,14.92,15.2,14.64
|
|
24
|
+
C58.38,117.86,63.43,112.28,63.43,112.28z"/>
|
|
25
|
+
<path style="fill:#FFFEFD;" d="M57.42,99.85c0,0-0.74,9.22,2.44,10.7c2.63,1.22,4.04-2.63,4.04-2.63s0.88,2.23,3,2.63
|
|
26
|
+
C70.94,111.3,70,99,70,99l-6.01-3.19L57.42,99.85z"/>
|
|
27
|
+
<path style="fill:#2F302D;" d="M59.91,94.45c0-1.32-1.83-1.97-3.57-3.14c-1.08-0.73-2.44-1.64-2.06-3.14
|
|
28
|
+
c0.38-1.5,3.14-1.64,8.68-1.74c5.54-0.09,9.43,0.42,9.24,1.92c-0.19,1.5-1.88,2.53-3.14,3.47c-0.59,0.44-2.67,1.6-2.58,2.44
|
|
29
|
+
c0.09,0.84,2.53,2.79,4.5,2.82c3.28,0.05,4.79-1.88,5.54-2.72c0.75-0.84,1.69-1.78,2.91-1.22s0.14,3.85-2.3,6.1
|
|
30
|
+
c-2.44,2.25-6.8,2.82-9.62,1.6s-4.08-2.96-4.08-2.96s-3.05,4.36-8.02,3.61c-3.77-0.57-6.19-3-7.32-4.97
|
|
31
|
+
c-1.13-1.97-0.77-3.14,0.19-3.28c1.22-0.19,1.97,1.22,3.38,1.88c1.41,0.66,2.49,1.45,4.74,1.36C58.64,96.37,59.91,95.39,59.91,94.45
|
|
32
|
+
z"/>
|
|
33
|
+
<g>
|
|
34
|
+
<path style="fill:#5F646D;" d="M25.47,106.92c-0.46,0-0.91-0.22-1.18-0.64c-0.42-0.65-0.24-1.52,0.41-1.94
|
|
35
|
+
c0.22-0.14,5.43-3.52,8.35-5.12c2.91-1.6,7.99-4.32,7.99-4.32s1.1-0.78,1.91,0.41c0.81,1.2-0.58,2.06-0.58,2.06
|
|
36
|
+
c0,0-5.06,2.72-7.97,4.31c-2.83,1.55-8.12,4.98-8.17,5.01C25.99,106.85,25.73,106.92,25.47,106.92z"/>
|
|
37
|
+
</g>
|
|
38
|
+
<g>
|
|
39
|
+
<path style="fill:#5F646D;" d="M31.27,113.93c-0.33,0-0.66-0.11-0.92-0.35c-0.58-0.51-0.64-1.39-0.13-1.98
|
|
40
|
+
c0.11-0.12,2.72-3.1,5.65-5.75c2.91-2.63,5.64-5.07,5.64-5.07c0.58-0.52,1.46-0.47,1.98,0.11c0.52,0.58,0.47,1.46-0.11,1.98
|
|
41
|
+
c0,0-2.72,2.44-5.63,5.07c-2.81,2.54-5.4,5.48-5.42,5.51C32.05,113.77,31.66,113.93,31.27,113.93z"/>
|
|
42
|
+
</g>
|
|
43
|
+
<g>
|
|
44
|
+
<path style="fill:#5F646D;" d="M102.6,107.73c-0.33,0-0.67-0.12-0.93-0.36c-0.01-0.01-1.82-1.59-7.4-5.01
|
|
45
|
+
c-5.67-3.48-9.03-5.07-9.06-5.09c-0.7-0.33-1-1.17-0.67-1.86c0.33-0.7,1.16-1,1.86-0.67c0.14,0.07,3.51,1.67,9.33,5.23
|
|
46
|
+
c5.86,3.59,7.73,5.24,7.8,5.31c0.58,0.52,0.62,1.4,0.11,1.98C103.36,107.58,102.98,107.73,102.6,107.73z"/>
|
|
47
|
+
</g>
|
|
48
|
+
<g>
|
|
49
|
+
<path style="fill:#5F646D;" d="M96.22,113.27c-0.37,0-0.74-0.15-1.02-0.44c-0.03-0.03-3.1-3.28-6.21-6.12
|
|
50
|
+
c-3.05-2.78-6.43-4.89-6.46-4.91c-0.66-0.41-0.86-1.27-0.45-1.93c0.41-0.66,1.27-0.86,1.93-0.45c0.15,0.09,3.62,2.26,6.87,5.22
|
|
51
|
+
c3.19,2.91,6.24,6.13,6.36,6.27c0.53,0.56,0.5,1.45-0.06,1.98C96.91,113.15,96.56,113.27,96.22,113.27z"/>
|
|
52
|
+
</g>
|
|
53
|
+
<g fill="none" stroke="#252525" stroke-width="4" stroke-linejoin="round">
|
|
54
|
+
<path d="M29 59L57 60L55 78Q44 84 33 78Z"/>
|
|
55
|
+
<path d="M71 60L99 59L95 78Q84 84 73 78Z"/>
|
|
56
|
+
<path d="M57 64Q64 59 71 64M29 61L23 58M99 61L105 58"/>
|
|
57
|
+
</g>
|
|
58
|
+
<g fill="#148800" stroke="#0b5000" stroke-width="2" stroke-linejoin="round">
|
|
59
|
+
<path d="M63 27C56 22 47 16 44 20C42 24 43 34 46 38C49 40 57 33 63 30Z"/>
|
|
60
|
+
<path d="M65 27C72 22 81 16 84 20C86 24 85 34 82 38C79 40 71 33 65 30Z"/>
|
|
61
|
+
<rect x="60" y="24" width="9" height="10" rx="3"/>
|
|
62
|
+
</g>
|
|
63
|
+
</svg>
|
|
64
|
+
</g></svg>
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
|
|
2
|
+
<title>Plurnk hamster with glasses and a green bow</title>
|
|
3
|
+
<!-- Google Noto Emoji hamster, Apache-2.0. Modified: glasses and green bow.
|
|
4
|
+
Source: googlefonts/noto-emoji v2.051, svg/emoji_u1f439.svg.
|
|
5
|
+
See NOTO-NOTICE.txt and APACHE-2.0.txt. -->
|
|
6
|
+
<path style="fill:#F2A159;" d="M62.07,29.22c16.33,0,29.53,8.62,43.74,33.65c11.83,20.84,9.57,43.5-3,50.45s-17.32,5.68-22.9,5.37
|
|
7
|
+
c-5.19-0.28-17.08-22.83-17.08-22.83s-10.86,22.45-18.4,22.34c-2.84-0.04-18.02,0.19-25.9-9.76s-7.51-26.84,0-41.86
|
|
8
|
+
S41.79,29.22,62.07,29.22z"/>
|
|
9
|
+
<path style="fill:#F2A159;" d="M117.26,32.79c0.43,11.28-8.16,18.02-17.46,18.02s-15.2-8.09-15.2-17.27s8.16-16.33,17.46-16.33
|
|
10
|
+
S116.91,23.62,117.26,32.79z"/>
|
|
11
|
+
<path style="fill:#F2A159;" d="M23.59,47.62C12.86,44.12,9.65,36.03,12.52,26.97s12.65-13.47,21.4-10.7s12.44,12.52,9.57,21.59
|
|
12
|
+
S31.66,50.24,23.59,47.62z"/>
|
|
13
|
+
<path style="fill:#FFA7AA;" d="M36.73,32.22c0,4.77-3.75,8.07-8.26,8.07s-7.88-3.68-7.88-8.45s3.37-8.63,7.88-8.63
|
|
14
|
+
C34.29,23.21,36.73,27.46,36.73,32.22z"/>
|
|
15
|
+
<path style="fill:#FFA7AA;" d="M100.13,41.63c-4.75-0.41-7.72-4.44-7.32-8.93s5.06-7.84,9.81-7.42s7.6,4.42,7.21,8.91
|
|
16
|
+
C109.32,39.98,104.88,42.05,100.13,41.63z"/>
|
|
17
|
+
<path style="fill:#2E3030;" d="M88.72,69.48c0.46,3.44-0.47,7.04-3.87,7.11c-3.56,0.07-4.79-3-5.14-6.45s1.09-5.44,3.66-5.82
|
|
18
|
+
C86.57,63.85,88.35,66.67,88.72,69.48z"/>
|
|
19
|
+
<path style="fill:#2E2D31;" d="M48.25,69.83c0.12,3.47-1.29,7.25-4.95,6.97c-3.55-0.27-4.6-4.5-4.13-8.17
|
|
20
|
+
c0.44-3.44,1.91-4.67,4.5-4.79C46.9,63.7,48.16,67,48.25,69.83z"/>
|
|
21
|
+
<path style="fill:#FFD2B1;" d="M63.43,112.28c0,0,9.01,5.91,16.61,6.48s16.47-2.39,17.03-13.51c0.64-12.67-8.87-19.57-11.26-21.4
|
|
22
|
+
c-1.42-1.09-8.73-6.19-8.73-6.19s-1.97-15.49-2.67-20.55c-0.7-5.07-1.25-12.95-10.98-13.09c-9.29-0.14-10.44,9.43-10.56,12.53
|
|
23
|
+
c-0.14,3.66-1.55,21.26-1.55,21.26s-5.31,3.52-9.01,6.34c-3.24,2.46-11.6,8.73-11.26,19.43c0.28,9.01,5.07,14.92,15.2,14.64
|
|
24
|
+
C58.38,117.86,63.43,112.28,63.43,112.28z"/>
|
|
25
|
+
<path style="fill:#FFFEFD;" d="M57.42,99.85c0,0-0.74,9.22,2.44,10.7c2.63,1.22,4.04-2.63,4.04-2.63s0.88,2.23,3,2.63
|
|
26
|
+
C70.94,111.3,70,99,70,99l-6.01-3.19L57.42,99.85z"/>
|
|
27
|
+
<path style="fill:#2F302D;" d="M59.91,94.45c0-1.32-1.83-1.97-3.57-3.14c-1.08-0.73-2.44-1.64-2.06-3.14
|
|
28
|
+
c0.38-1.5,3.14-1.64,8.68-1.74c5.54-0.09,9.43,0.42,9.24,1.92c-0.19,1.5-1.88,2.53-3.14,3.47c-0.59,0.44-2.67,1.6-2.58,2.44
|
|
29
|
+
c0.09,0.84,2.53,2.79,4.5,2.82c3.28,0.05,4.79-1.88,5.54-2.72c0.75-0.84,1.69-1.78,2.91-1.22s0.14,3.85-2.3,6.1
|
|
30
|
+
c-2.44,2.25-6.8,2.82-9.62,1.6s-4.08-2.96-4.08-2.96s-3.05,4.36-8.02,3.61c-3.77-0.57-6.19-3-7.32-4.97
|
|
31
|
+
c-1.13-1.97-0.77-3.14,0.19-3.28c1.22-0.19,1.97,1.22,3.38,1.88c1.41,0.66,2.49,1.45,4.74,1.36C58.64,96.37,59.91,95.39,59.91,94.45
|
|
32
|
+
z"/>
|
|
33
|
+
<g>
|
|
34
|
+
<path style="fill:#5F646D;" d="M25.47,106.92c-0.46,0-0.91-0.22-1.18-0.64c-0.42-0.65-0.24-1.52,0.41-1.94
|
|
35
|
+
c0.22-0.14,5.43-3.52,8.35-5.12c2.91-1.6,7.99-4.32,7.99-4.32s1.1-0.78,1.91,0.41c0.81,1.2-0.58,2.06-0.58,2.06
|
|
36
|
+
c0,0-5.06,2.72-7.97,4.31c-2.83,1.55-8.12,4.98-8.17,5.01C25.99,106.85,25.73,106.92,25.47,106.92z"/>
|
|
37
|
+
</g>
|
|
38
|
+
<g>
|
|
39
|
+
<path style="fill:#5F646D;" d="M31.27,113.93c-0.33,0-0.66-0.11-0.92-0.35c-0.58-0.51-0.64-1.39-0.13-1.98
|
|
40
|
+
c0.11-0.12,2.72-3.1,5.65-5.75c2.91-2.63,5.64-5.07,5.64-5.07c0.58-0.52,1.46-0.47,1.98,0.11c0.52,0.58,0.47,1.46-0.11,1.98
|
|
41
|
+
c0,0-2.72,2.44-5.63,5.07c-2.81,2.54-5.4,5.48-5.42,5.51C32.05,113.77,31.66,113.93,31.27,113.93z"/>
|
|
42
|
+
</g>
|
|
43
|
+
<g>
|
|
44
|
+
<path style="fill:#5F646D;" d="M102.6,107.73c-0.33,0-0.67-0.12-0.93-0.36c-0.01-0.01-1.82-1.59-7.4-5.01
|
|
45
|
+
c-5.67-3.48-9.03-5.07-9.06-5.09c-0.7-0.33-1-1.17-0.67-1.86c0.33-0.7,1.16-1,1.86-0.67c0.14,0.07,3.51,1.67,9.33,5.23
|
|
46
|
+
c5.86,3.59,7.73,5.24,7.8,5.31c0.58,0.52,0.62,1.4,0.11,1.98C103.36,107.58,102.98,107.73,102.6,107.73z"/>
|
|
47
|
+
</g>
|
|
48
|
+
<g>
|
|
49
|
+
<path style="fill:#5F646D;" d="M96.22,113.27c-0.37,0-0.74-0.15-1.02-0.44c-0.03-0.03-3.1-3.28-6.21-6.12
|
|
50
|
+
c-3.05-2.78-6.43-4.89-6.46-4.91c-0.66-0.41-0.86-1.27-0.45-1.93c0.41-0.66,1.27-0.86,1.93-0.45c0.15,0.09,3.62,2.26,6.87,5.22
|
|
51
|
+
c3.19,2.91,6.24,6.13,6.36,6.27c0.53,0.56,0.5,1.45-0.06,1.98C96.91,113.15,96.56,113.27,96.22,113.27z"/>
|
|
52
|
+
</g>
|
|
53
|
+
<g fill="none" stroke="#252525" stroke-width="4" stroke-linejoin="round">
|
|
54
|
+
<path d="M29 59L57 60L55 78Q44 84 33 78Z"/>
|
|
55
|
+
<path d="M71 60L99 59L95 78Q84 84 73 78Z"/>
|
|
56
|
+
<path d="M57 64Q64 59 71 64M29 61L23 58M99 61L105 58"/>
|
|
57
|
+
</g>
|
|
58
|
+
<g fill="#148800" stroke="#0b5000" stroke-width="2" stroke-linejoin="round">
|
|
59
|
+
<path d="M63 27C56 22 47 16 44 20C42 24 43 34 46 38C49 40 57 33 63 30Z"/>
|
|
60
|
+
<path d="M65 27C72 22 81 16 84 20C86 24 85 34 82 38C79 40 71 33 65 30Z"/>
|
|
61
|
+
<rect x="60" y="24" width="9" height="10" rx="3"/>
|
|
62
|
+
</g>
|
|
63
|
+
</svg>
|