@crowdedkingdoms/crowdy-dsh 0.2.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +175 -0
  3. package/dist/dsh-web/BUILD.json +118 -0
  4. package/dist/dsh-web/LICENSE.deepseek-harness +21 -0
  5. package/dist/dsh-web/THIRD_PARTY_NOTICES.md +226 -0
  6. package/dist/dsh-web/assets/client-Dbm2RGSD.js +159 -0
  7. package/dist/dsh-web/assets/fonts/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  8. package/dist/dsh-web/assets/fonts/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  9. package/dist/dsh-web/assets/fonts/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  10. package/dist/dsh-web/assets/fonts/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  11. package/dist/dsh-web/assets/fonts/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  12. package/dist/dsh-web/assets/fonts/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  13. package/dist/dsh-web/assets/fonts/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  14. package/dist/dsh-web/assets/fonts/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  15. package/dist/dsh-web/assets/fonts/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  16. package/dist/dsh-web/assets/fonts/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  17. package/dist/dsh-web/assets/fonts/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  18. package/dist/dsh-web/assets/fonts/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  19. package/dist/dsh-web/assets/fonts/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  20. package/dist/dsh-web/assets/fonts/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  21. package/dist/dsh-web/assets/fonts/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  22. package/dist/dsh-web/assets/fonts/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  23. package/dist/dsh-web/assets/fonts/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  24. package/dist/dsh-web/assets/fonts/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  25. package/dist/dsh-web/assets/fonts/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  26. package/dist/dsh-web/assets/fonts/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  27. package/dist/dsh-web/assets/fonts/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  28. package/dist/dsh-web/assets/fonts/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  29. package/dist/dsh-web/assets/fonts/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  30. package/dist/dsh-web/assets/fonts/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  31. package/dist/dsh-web/assets/fonts/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  32. package/dist/dsh-web/assets/fonts/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  33. package/dist/dsh-web/assets/fonts/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  34. package/dist/dsh-web/assets/fonts/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  35. package/dist/dsh-web/assets/fonts/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  36. package/dist/dsh-web/assets/fonts/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  37. package/dist/dsh-web/assets/fonts/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  38. package/dist/dsh-web/assets/fonts/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  39. package/dist/dsh-web/assets/fonts/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  40. package/dist/dsh-web/assets/fonts/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  41. package/dist/dsh-web/assets/fonts/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  42. package/dist/dsh-web/assets/fonts/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  43. package/dist/dsh-web/assets/fonts/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  44. package/dist/dsh-web/assets/fonts/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  45. package/dist/dsh-web/assets/fonts/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  46. package/dist/dsh-web/assets/fonts/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  47. package/dist/dsh-web/assets/fonts/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  48. package/dist/dsh-web/assets/fonts/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  49. package/dist/dsh-web/assets/fonts/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  50. package/dist/dsh-web/assets/fonts/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  51. package/dist/dsh-web/assets/fonts/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  52. package/dist/dsh-web/assets/fonts/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  53. package/dist/dsh-web/assets/fonts/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  54. package/dist/dsh-web/assets/fonts/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  55. package/dist/dsh-web/assets/fonts/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  56. package/dist/dsh-web/assets/fonts/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  57. package/dist/dsh-web/assets/fonts/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  58. package/dist/dsh-web/assets/fonts/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  59. package/dist/dsh-web/assets/fonts/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  60. package/dist/dsh-web/assets/fonts/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  61. package/dist/dsh-web/assets/fonts/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  62. package/dist/dsh-web/assets/fonts/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  63. package/dist/dsh-web/assets/fonts/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  64. package/dist/dsh-web/assets/fonts/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  65. package/dist/dsh-web/assets/fonts/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  66. package/dist/dsh-web/assets/index-BKQ_L1z6.js +117 -0
  67. package/dist/dsh-web/assets/index-DPX2bQLO.css +1 -0
  68. package/dist/dsh-web/assets/langs/c-BIGW1oBm.js +2 -0
  69. package/dist/dsh-web/assets/langs/cpp-DIPi6g--.js +2 -0
  70. package/dist/dsh-web/assets/langs/csharp-DSvCPggb.js +2 -0
  71. package/dist/dsh-web/assets/langs/css-CLj8gQPS.js +2 -0
  72. package/dist/dsh-web/assets/langs/go-C27-OAKa.js +2 -0
  73. package/dist/dsh-web/assets/langs/html-CfGypltT.js +2 -0
  74. package/dist/dsh-web/assets/langs/ini-BEwlwnbL.js +2 -0
  75. package/dist/dsh-web/assets/langs/java-CylS5w8V.js +2 -0
  76. package/dist/dsh-web/assets/langs/kotlin-BdnUsdx6.js +2 -0
  77. package/dist/dsh-web/assets/langs/less-B1dDrJ26.js +2 -0
  78. package/dist/dsh-web/assets/langs/lua-BaeVxFsk.js +2 -0
  79. package/dist/dsh-web/assets/langs/markdown-Cvjx9yec.js +2 -0
  80. package/dist/dsh-web/assets/langs/mdx-Cmh6b_Ma.js +2 -0
  81. package/dist/dsh-web/assets/langs/php-DJl5gRdb.js +2 -0
  82. package/dist/dsh-web/assets/langs/python-B6aJPvgy.js +2 -0
  83. package/dist/dsh-web/assets/langs/ruby-5eNB0pDK.js +2 -0
  84. package/dist/dsh-web/assets/langs/rust-B1yitclQ.js +2 -0
  85. package/dist/dsh-web/assets/langs/scss-D5BDwBP9.js +2 -0
  86. package/dist/dsh-web/assets/langs/sql-CRqJ_cUM.js +2 -0
  87. package/dist/dsh-web/assets/langs/swift-D82vCrfD.js +2 -0
  88. package/dist/dsh-web/assets/langs/toml-vGWfd6FD.js +2 -0
  89. package/dist/dsh-web/assets/langs/xml-sdJ4AIDG.js +2 -0
  90. package/dist/dsh-web/assets/langs/yaml-Buea-lGh.js +2 -0
  91. package/dist/dsh-web/assets/vendor-BNsW4eBh.css +1 -0
  92. package/dist/dsh-web/assets/vendor-CCJJTK99.js +411 -0
  93. package/dist/dsh-web/crowdy.html +17 -0
  94. package/dist/dsh-web/favicon.svg +8 -0
  95. package/dist/dsh-web/index.html +17 -0
  96. package/dist/dsh-web/manifest.webmanifest +16 -0
  97. package/dist/dsh-web/preview/bootstrap-CYECZNXt.js +2 -0
  98. package/dist/dsh-web/preview/crowdy-boot-D0e56jZN.js +2 -0
  99. package/dist/dsh-web/preview/vfs-image.tar.gz +0 -0
  100. package/dist/dsh-web/preview/worker-C8-_ANaz.js +109 -0
  101. package/package.json +101 -0
  102. package/presets/crowdy/agent.cordis.yml +140 -0
  103. package/presets/crowdy/preset.yml +3 -0
  104. package/profile/crowdy-node.patch.yml +34 -0
  105. package/profile/crowdy-web.patch.yml +97 -0
  106. package/upstream.json +7 -0
@@ -0,0 +1,159 @@
1
+ function H(e){return new Worker(""+new URL("../preview/worker-C8-_ANaz.js",import.meta.url).href,{name:e?.name})}const q="vfs-image.tar.gz";function m(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function E(e){const t=m(e);if(t?.version!==1||!Array.isArray(t.fixtures))throw new Error(`preview fixture manifest must use version ${String(1)}`);const r=[],o=new Set;for(const n of t.fixtures){const i=m(n),a=i?.id,d=i?.label,c=i?.description,u=i?.overlays,p=Array.isArray(u)?u.filter(l=>typeof l=="string"&&l.length>0):[];if(typeof a!="string"||!/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/.test(a)||a==="none"||a==="webfs"||typeof d!="string"||d.length===0||typeof c!="string"||c.length===0||!Array.isArray(u)||u.length===0||p.length!==u.length)throw new Error("preview fixture manifest contains an invalid fixture entry");if(o.has(a))throw new Error(`preview fixture manifest repeats id "${a}"`);o.add(a),r.push({id:a,label:d,description:c,overlays:p})}const s=t.defaultFixture;if(s!==null&&(typeof s!="string"||!o.has(s)))throw new Error("preview fixture manifest defaultFixture does not name a fixture");return{version:1,defaultFixture:s,fixtures:r}}var f=class extends Error{dshRemoteStreamFailure;constructor(e,t){super(e.message,t),this.name="TunnelLogicalStreamError",this.dshRemoteStreamFailure=e.kind==="remote"?{kind:"remote",code:e.code,details:e.details}:{kind:"carrier"}}},R=class{frames=[];wake;failed=!1;failure;push(e){this.failed||(this.frames.push(e),this.wake?.(),this.wake=void 0)}fail(e){this.failed||(this.failed=!0,this.failure=e,this.frames.length=0,this.wake?.(),this.wake=void 0)}async next(){for(;this.frames.length===0;){if(this.failed)throw this.failure;await new Promise(e=>{this.wake=e})}return this.frames.shift()}};const L=500,S=new TextEncoder,w=/\/\/# sourceMappingURL=([^\r\n]+)\s*$/,y=32*1024;function $(e){const t=S.encode(e);let r="";for(let o=0;o<t.length;o+=y)r+=String.fromCharCode(...t.subarray(o,o+y));return btoa(r)}async function T(e,t,r){const o=w.exec(e);if(o?.[1]===void 0)return e;try{const s=await r(new URL(o[1],new URL(t,globalThis.location.origin)));if(!s.ok)return e.replace(w,"");const n=`data:application/json;charset=utf-8;base64,${$(await s.text())}`;return e.replace(w,`//# sourceMappingURL=${n}`)}catch{return e.replace(w,"")}}function _(e){if(e!=null){if(typeof e=="string")return S.encode(e).buffer;if(e instanceof Blob||e instanceof ReadableStream||e instanceof ArrayBuffer)return e;if(ArrayBuffer.isView(e))return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);throw new Error(`web-preview tunnel: unsupported request body ${Object.prototype.toString.call(e)}`)}}const A=new Set([101,204,205,304]);var U=class{worker;nextId=1;unary=new Map;bodyStreams=new Map;logicalStreams=new Map;inFlight=new Map;releases=new Map;constructor(e){this.worker=e,e.addEventListener("message",t=>{this.receive(t.data)}),e.addEventListener("error",t=>{const r=new Error(`web-preview tunnel: worker failed: ${t.message}`);for(const s of this.inFlight.keys())this.warnRefusal(s,`worker failed: ${t.message}`);this.inFlight.clear();for(const s of this.unary.values())s.reject(r);this.unary.clear();for(const s of this.bodyStreams.values())s.error(r);this.bodyStreams.clear();const o=new f({kind:"carrier",message:`web-preview tunnel: worker failed: ${t.message}`},{cause:r});for(const s of this.logicalStreams.values())s.fail(o);this.logicalStreams.clear();for(const s of this.releases.values())s();this.releases.clear()})}init(e,t=[]){this.worker.postMessage({t:"init",image:e,overlays:t})}fetch=async(e,t)=>{const r=t?.signal;if(r?.aborted===!0)throw new DOMException("The operation was aborted.","AbortError");const o=this.nextId++,s=t?.body===void 0||t.body===null?void 0:_(t.body),n={t:"req",id:o,method:t?.method??"GET",url:new URL(e,globalThis.location.origin).toString(),headers:Object.fromEntries(new Headers(t?.headers).entries()),...s===void 0?{}:{body:s}},i=new Promise((d,c)=>{this.unary.set(o,{resolve:d,reject:c})});if(this.inFlight.set(o,`${n.method} ${n.url}`),s instanceof ReadableStream?this.worker.postMessage(n,[s]):this.worker.postMessage(n),r==null)return await i;const a=this.rejectOnAbort(o,r);try{const d=await Promise.race([i,a.rejected]);return this.bodyStreams.has(o)&&this.observeStreamAbort(o,r),d}finally{a.release()}};async*open(e,t,r){r.throwIfAborted();const o=this.nextId++,s=new R;let n=!1,i=!1;const a=()=>{s.fail(r.reason)};r.addEventListener("abort",a,{once:!0}),this.logicalStreams.set(o,s),this.inFlight.set(o,`STREAM ${e}`);try{const d={t:"stream-open",id:o,endpoint:e,payload:t};try{this.worker.postMessage(d),n=!0}catch(c){throw new f({kind:"carrier",message:`web-preview tunnel: failed to open Remote stream ${e}`},{cause:c})}for(;;){const c=await s.next();if(r.throwIfAborted(),c.t==="stream-item"){yield c.value;continue}if(i=!0,c.t==="stream-error")throw new f(c.failure);return}}finally{r.removeEventListener("abort",a),this.logicalStreams.delete(o),this.inFlight.delete(o),n&&!i&&this.abortWorkerOperation(o)}}async bootPayload(){const e=await this.fetch("/__boot__");if(!e.ok)throw new Error(`web-preview tunnel: boot payload failed with HTTP ${String(e.status)}: ${await e.text()}`);return await e.json()}async loadBundle(e){const t=await this.fetch(e);if(!t.ok)throw new Error(`web-preview tunnel: bundle ${e} failed with HTTP ${String(t.status)}`);const r=await T(await t.text(),e,this.fetch),o=URL.createObjectURL(new Blob([r],{type:"text/javascript"}));try{await new Promise((s,n)=>{const i=document.createElement("script");i.src=o,i.addEventListener("load",()=>{i.remove(),s()},{once:!0}),i.addEventListener("error",()=>{i.remove(),n(new Error(`web-preview tunnel: bundle ${e} failed to execute`))},{once:!0}),document.head.append(i)})}finally{URL.revokeObjectURL(o)}}rejectOnAbort(e,t){let r=()=>{};return{rejected:new Promise((o,s)=>{const n=()=>{s(this.abortRequest(e))};if(t.aborted){n();return}t.addEventListener("abort",n,{once:!0}),r=()=>{t.removeEventListener("abort",n)}}),release:r}}abortRequest(e){this.unary.delete(e);const t=this.bodyStreams.get(e);this.bodyStreams.delete(e),this.inFlight.delete(e),this.releases.delete(e),this.abortWorkerOperation(e);const r=new DOMException("The operation was aborted.","AbortError");return t?.error(r),r}observeStreamAbort(e,t){const r=()=>{this.abortRequest(e)};t.addEventListener("abort",r,{once:!0}),this.releases.set(e,()=>{t.removeEventListener("abort",r)})}releaseSignal(e){const t=this.releases.get(e);this.releases.delete(e),t?.()}cancelStream(e){this.releaseSignal(e),this.bodyStreams.delete(e),this.inFlight.delete(e),this.abortWorkerOperation(e)}abortWorkerOperation(e){const t={t:"abort",id:e};try{this.worker.postMessage(t)}catch{}}warnRefusal(e,t){console.warn(`web-preview tunnel: request ${String(e)} ${this.inFlight.get(e)??"(unknown request)"} → ${t}`)}receive(e){switch(e.t){case"res":{const t=this.unary.get(e.id);if(t===void 0)return;e.status>=L&&this.warnRefusal(e.id,`HTTP ${String(e.status)}${e.message===void 0?"":`: ${e.message}`}`),this.unary.delete(e.id),this.inFlight.delete(e.id);const r=A.has(e.status)?null:e.body??e.message??null;t.resolve(new Response(r,{status:e.status,headers:e.headers}));return}case"res-head":{const t=this.unary.get(e.id);if(t===void 0)return;this.unary.delete(e.id);const r=new ReadableStream({start:o=>{this.bodyStreams.set(e.id,o)},cancel:()=>{this.cancelStream(e.id)}});t.resolve(new Response(r,{status:e.status,headers:e.headers}));return}case"res-chunk":this.bodyStreams.get(e.id)?.enqueue(new Uint8Array(e.chunk));return;case"res-end":{const t=this.bodyStreams.get(e.id);if(t===void 0)return;this.bodyStreams.delete(e.id),this.inFlight.delete(e.id),this.releaseSignal(e.id),t.close();return}case"res-err":{const t=new Error(`web-preview tunnel: ${e.message}`);this.warnRefusal(e.id,`res-err: ${e.message}`);const r=this.unary.get(e.id);if(this.inFlight.delete(e.id),r!==void 0){this.unary.delete(e.id),r.reject(t);return}const o=this.bodyStreams.get(e.id);if(o===void 0)return;this.bodyStreams.delete(e.id),this.releaseSignal(e.id),o.error(t);return}case"stream-item":case"stream-end":case"stream-error":this.logicalStreams.get(e.id)?.push(e);return;default:throw new Error(`web-preview tunnel: unknown frame ${JSON.stringify(e)}`)}}};function F(e){throw new Error(`webworker-runtime: unknown index injection row ${JSON.stringify(e)}`)}async function O(e,t){for(const r of e)switch(r.kind){case"global":globalThis[r.name]=r.value;break;case"script":{const o=document.createElement("script");o.textContent=r.text,(r.placement==="head"?document.head:document.body).append(o);break}case"script-src":await t(r.src);break;case"script-preload":break;case"style":{const o=document.createElement("style");o.textContent=r.text,document.head.append(o);break}case"html":(r.placement==="head"?document.head:document.body).insertAdjacentHTML("beforeend",r.html);break;default:F(r)}}const b="none",M="webfs",j="preview-fixture",I=`
2
+ [data-preview-source-chooser] {
3
+ position: fixed;
4
+ inset: 0;
5
+ z-index: 1200;
6
+ display: grid;
7
+ place-items: center;
8
+ overflow: auto;
9
+ padding: 24px;
10
+ box-sizing: border-box;
11
+ color: #0f1115;
12
+ background: #fff;
13
+ font-size: 14px;
14
+ line-height: 22px;
15
+ }
16
+ [data-preview-source-card] {
17
+ width: min(600px, 100%);
18
+ max-height: calc(100dvh - 48px);
19
+ box-sizing: border-box;
20
+ padding: 28px;
21
+ overflow-y: auto;
22
+ border: 1px solid transparent;
23
+ border-radius: 24px;
24
+ background: #fff;
25
+ box-shadow: 0 0 1px rgb(0 0 0 / 20%), 0 12px 32px rgb(0 0 0 / 8%);
26
+ }
27
+ [data-preview-source-card] h1 {
28
+ margin: 0;
29
+ font-size: 20px;
30
+ line-height: 28px;
31
+ font-weight: 500;
32
+ }
33
+ [data-preview-source-card] > p {
34
+ margin: 8px 0 0;
35
+ color: #61666b;
36
+ }
37
+ [data-preview-source-card] fieldset {
38
+ display: flex;
39
+ flex-direction: column;
40
+ gap: 1px;
41
+ margin: 24px 0 0;
42
+ padding: 0;
43
+ border: 0;
44
+ }
45
+ [data-preview-source-card] legend {
46
+ margin: 0 0 8px;
47
+ padding: 0 4px;
48
+ color: #61666b;
49
+ font-size: 13px;
50
+ line-height: 20px;
51
+ font-weight: 500;
52
+ }
53
+ [data-preview-source-option] {
54
+ position: relative;
55
+ display: flex;
56
+ align-items: flex-start;
57
+ gap: 8px;
58
+ min-height: 56px;
59
+ padding: 8px 12px 8px 8px;
60
+ box-sizing: border-box;
61
+ border: 1px solid transparent;
62
+ border-radius: 12px;
63
+ background: transparent;
64
+ cursor: pointer;
65
+ transition: background-color 120ms ease, border-color 120ms ease;
66
+ }
67
+ [data-preview-source-option]:hover:not(:has(input:disabled)),
68
+ [data-preview-source-option]:has(input:checked) {
69
+ background: rgb(38 49 72 / 6%);
70
+ }
71
+ [data-preview-source-option]:has(input:checked) {
72
+ border-color: rgb(0 0 0 / 10%);
73
+ }
74
+ [data-preview-source-option]:has(input:disabled) {
75
+ cursor: default;
76
+ opacity: 0.4;
77
+ }
78
+ [data-preview-source-option] input {
79
+ flex: none;
80
+ width: 16px;
81
+ height: 16px;
82
+ margin: 4px 0 0;
83
+ accent-color: #0f1115;
84
+ }
85
+ [data-preview-source-option] > span { flex: 1; min-width: 0; }
86
+ [data-preview-source-option] strong {
87
+ display: block;
88
+ font-size: 14px;
89
+ line-height: 24px;
90
+ font-weight: 500;
91
+ }
92
+ [data-preview-source-option] strong + span {
93
+ display: block;
94
+ color: #81858c;
95
+ font-size: 14px;
96
+ line-height: 24px;
97
+ }
98
+ [data-preview-source-submit] {
99
+ display: block;
100
+ min-width: 120px;
101
+ height: 36px;
102
+ margin: 24px 0 0 auto;
103
+ padding: 0 14px;
104
+ border: 0;
105
+ border-radius: 18px;
106
+ color: #fff;
107
+ background: #0f1115;
108
+ font-size: 14px;
109
+ line-height: 22px;
110
+ cursor: pointer;
111
+ transition: background-color 120ms ease;
112
+ }
113
+ [data-preview-source-submit]:hover:not(:disabled) {
114
+ background: #43454a;
115
+ }
116
+ [data-preview-source-submit]:focus-visible {
117
+ outline: 2px solid rgb(0 0 0 / 16%);
118
+ outline-offset: 2px;
119
+ }
120
+ [data-preview-source-submit]:disabled { cursor: not-allowed; opacity: 0.5; }
121
+ @media (prefers-color-scheme: dark) {
122
+ [data-preview-source-chooser] {
123
+ color: #f9fafb;
124
+ background: #151517;
125
+ }
126
+ [data-preview-source-card] { border-color: rgb(255 255 255 / 6%); background: #2c2c2e; }
127
+ [data-preview-source-card] > p, [data-preview-source-card] legend { color: #cfd3d6; }
128
+ [data-preview-source-option] strong + span { color: #adb2b8; }
129
+ [data-preview-source-option]:hover:not(:has(input:disabled)),
130
+ [data-preview-source-option]:has(input:checked) { background: rgb(255 255 255 / 8%); }
131
+ [data-preview-source-option]:has(input:checked) { border-color: rgb(255 255 255 / 12%); }
132
+ [data-preview-source-option] input { accent-color: #f9fafb; }
133
+ [data-preview-source-submit] { color: #0f1115; background: #f9fafb; }
134
+ [data-preview-source-submit]:hover:not(:disabled) { background: #ebeef2; }
135
+ [data-preview-source-submit]:focus-visible { outline-color: rgb(255 255 255 / 20%); }
136
+ }
137
+ @media (max-width: 560px) {
138
+ [data-preview-source-card] { padding: 24px; }
139
+ [data-preview-source-submit] { width: 100%; }
140
+ }
141
+ @media (prefers-reduced-motion: reduce) {
142
+ [data-preview-source-option], [data-preview-source-submit] { transition: none; }
143
+ }
144
+ `,P={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function x(e){return e.replace(/[&<>"']/g,t=>P[t]??t)}function z(e,t){return`<label data-preview-source-option>
145
+ <input type="radio" name="preview-source" value="${e.id}"${e.id===t?" checked":""}${e.disabled===!0?" disabled":""}>
146
+ <span>
147
+ <strong>${x(e.label)}</strong>
148
+ <span>${x(e.description)}</span>
149
+ </span>
150
+ </label>`}function B(e,t){return e.map(r=>({id:r.id,label:r.label,description:r.description,overlays:r.overlays.map(o=>new URL(o,t))}))}async function W(e){const t=new URL(location.href).searchParams.get(j);if(t===b)return[];const r=await fetch(e);if(!r.ok)throw new Error(`preview source chooser: fixture manifest returned ${String(r.status)}`);const o=E(await r.json()),s=[{id:b,label:"Empty environment",description:"Load only the base runtime to verify first launch and workspace creation.",overlays:[]},...B(o.fixtures,e),{id:M,label:"WebFS directory",description:"Requires directory access and will be available after the WebFS provider lands.",overlays:[],disabled:!0}];if(t!==null){const l=s.find(h=>h.id===t&&h.disabled!==!0);if(l===void 0)throw new Error(`preview source chooser: unknown or interactive source "${t}"`);return l.overlays}const n=document.getElementById("root");if(n===null)throw new Error("preview source chooser: missing #root");const i=o.defaultFixture??b,a=document.createElement("style");a.dataset.previewSourceStyle="",a.textContent=I,document.head.append(a);const d=document.createElement("main");d.dataset.previewSourceChooser="",d.innerHTML=`<form data-preview-source-card aria-labelledby="preview-source-title">
151
+ <h1 id="preview-source-title">Choose Preview data</h1>
152
+ <p>Data mounts before the Worker and application start. Refresh to choose again.</p>
153
+ <fieldset>
154
+ <legend>Filesystem source</legend>
155
+ ${s.map(l=>z(l,i)).join("")}
156
+ </fieldset>
157
+ <button data-preview-source-submit type="submit">Start Preview</button>
158
+ </form>`,n.prepend(d);const c=d.querySelector("[data-preview-source-card]");if(c===null)throw new Error("preview source chooser: form was not rendered");const u=await new Promise((l,h)=>{c.addEventListener("submit",k=>{k.preventDefault();const v=new FormData(c).get("preview-source");typeof v=="string"?l(v):h(new Error("preview source chooser: no source selected"))},{once:!0})}),p=s.find(l=>l.id===u&&l.disabled!==!0);if(p===void 0)throw new Error(`preview source chooser: unavailable source "${u}"`);return d.remove(),a.remove(),p.overlays}function g(){return globalThis.__DSH_BOOT_READY__??=Promise.withResolvers()}function C(){g().promise.catch(()=>{})}async function D(e={}){C();const t=new URL(e.image??"vfs-image.tar.gz",document.baseURI),r=new URL(e.fixtureManifest??"fixtures.json",t);try{return{overlays:await W(r)}}catch(o){throw g().reject(o),o}}async function N(e,t){const r=g();r.promise.catch(()=>{});try{const o=new U(e);o.init(new URL(t?.image??"vfs-image.tar.gz",document.baseURI).href,(t?.overlays??[]).map(n=>new URL(n,document.baseURI).href));const s=await o.bootPayload();return globalThis.__DSH_TRANSPORT__={fetch:(n,i)=>o.fetch(n,i),openStream:(n,i,a)=>o.open(n,i,a),loadBundle:n=>o.loadBundle(n),ownsHost:!0},globalThis.__DSH_FILE_UPLOAD__={fetch:(n,i)=>o.fetch(n,i)},await O(s.injections,n=>o.loadBundle(n)),r.resolve(),{worker:e,tunnel:o,loadBundle:n=>o.loadBundle(n)}}catch(o){throw r.reject(o),o}}export{q as I,H as W,D as a,N as c};
159
+ //# sourceMappingURL=client-Dbm2RGSD.js.map