PageSourceSearch

https://doublespeak.chat/assets/index2.js

js doublespeak.chat collected 2026-10-04 22:11:13 UTC 11,146 bytes, 47 lines download raw bytes

1import{d as R,r as d,o as W,a as i,c as r,b as t,w as U,v as A,e as j,f as V,u as J,I as m,n as Y,g as h,t as u,F as k,h as F,i as $,S as P,j as Q,R as X,k as K,G as Z,l as ee,m as N}from"./index.js";import{_ as te}from"./Nav.vue_vue_type_script_setup_true_lang.js";const ne={class:"flex mb-8"},oe=["onKeydown","disabled","placeholder"],le={class:"flex justify-between mb-3 h-16"},se={class:"mb-2"},ae=["disabled"],ie=["disabled"],re={key:0,class:"sm:text-xl p-4 bg-gray-900 mb-4"},ue={class:"flex flex-wrap"},ce=["disabled"],de=["onClick","disabled"],ve={class:"bg-gray-800 w-16 mb-2 pt-4 pb-4 mr-2 sm:mr-4 sm:text-3xl text-gray-600",disabled:""},he={key:1,class:"sm:text-xl p-8 bg-gray-800 mb-4 ring-1 ring-green-600 whitespace-pre-wrap"},pe={class:"flex flex-col justify-center mx-auto font-mono p-8 border-x-2 border border-gray-200 w-full text-white"},ge={class:"m-2"},me={key:0,class:"text-sm sm:text-xl text-gray-300 p-2 sm:p-8 mb-8 bg-gray-800 ring-8 ring-gray-800 rounded-bl-none rounded",style:{"white-space":"pre-wrap"}},be={key:0},fe={key:1},ye={key:2},_e={class:""},xe={key:1,class:"inline"},we=["onClick"],ke={key:2,class:"inline"},Ie=["onClick"],Ce=["onClick"],Te={key:1,class:"text-sm sm:text-xl text-green-500 p-2 sm:p-8 bg-gray-900 ring-8 ring-gray-900 rounded rounded-br-none mb-8",style:{"white-space":"pre-wrap"}},Se={key:0,class:"flex flex-col"},Le=["onKeydown"],Fe=["disabled"],He=`Nice to see you made it to the other side.
2
3A reminder on how the game works:
4
5* You type your questions in the box below this message (it's hidden on level 0 but will be shown on all subsequent levels).
6
7* Each level's scenario is different but the goal remains the same: find the bot's name and submit it in the box above.
8
9* It starts off easy and slowly increases in difficulty as the levels progress.
10
11You can choose to play along, OR you can attempt to pull off some wick3d pr0mpt h4x and try to escape the pre-prompt pseudo-sandbox. I won't stop you. At least, not at first. :)
12
13The choice is yours!
14
15If you opt to go the prompt hacking route, check out the About page linked in the footer of the site.
16
17...Oh! I was just handed a note from Matt at Forces Unseen! It reads:
18
19
20
21"Thanks so much for playing! Given the tremendous positive feedback we've received, we plan to add more levels soon!
22
23If you enjoy the game, please share it with someone else who would enjoy it too. Stay tuned, more coming soon!"
24
25
26
27---
28
29The Level 0 intro bot's name is: __Sally Hawthorne__.`,Me=`Howdy partner, I haven't seen you 'round these parts before.
30      
31You can ask me anything you'd like, but you'll have to login or register before I can answer. While we're waitin' about, I'll give you a run-down on what to expect:
32
33* You type your questions in the box below this message.
34
35* Each level's scenario is different but the goal remains the same: find the bot's name and submit it in the box above.
36
37* It starts off easy and slowly increases in difficulty as the levels progress.
38
39You can choose to play along, OR you can attempt to pull off some wick3d pr0mpt h4x and try to escape the pre-prompt pseudo-sandbox. I won't stop you. At least, not at first. :)
40
41The choice is yours!
42
43If you opt to go the prompt hacking route, check out the Forces Unseen blog. They made this game, afterall. I'm sure they've got some useful tips in there. ;)
44
45---
46
47Sounds simple, eh? Too easy? Show me what you've got!`,Ue=R({__name:"Levels",setup(q){const p=d(1),l=d(0),s=d(-1),v=d(""),g=d(""),I=d(null),f=d([""]),C=d(""),a=d([{role:"assistant",content:"..."}]),T=d(!1),y=d(!1),c=d(!1);async function _(o){if(o.preventDefault(),c.value)return;if(!m()){location.href="#/login";return}if(s.value===0){w(1);return}if(v.value.toLowerCase()==="__account__"){location.href="#/account";return}if(s.value<l.value){alert("you've already beaten this level, silly!"),v.value="";return}if(await P(v.value)){if(f.value.push("bg-green-600"),setTimeout(()=>{f.value.pop()},2e3),v.value="",I.value){const e=I.value;e&&e.focus()}await L();return}f.value.push("bg-red-700"),setTimeout(()=>{f.value.pop()},2e3)}function x(o,n=7){if(c.value=!0,a.value[a.value.length-1].content.length<o.length){a.value[a.value.length-1].content+=o.charAt(a.value[a.value.length-1].content.length);const e=n+(Math.floor(Math.random()*n)+1);setTimeout(()=>{x(o,n)},e);return}else c.value=!1}function D(){localStorage.setItem("input",g.value)}function E(){const o=localStorage.getItem("input");o&&o.length>0&&(g.value=o,H())}function H(){localStorage.removeItem("input")}async function M(o){if(o&&o.preventDefault(),c.value)return;if(D(),c.value=!0,!m()){location.href="#/login";return}const n=g.value;if(n.length<1){c.value=!1;return}window.scrollTo(0,document.body.scrollHeight),a.value.push({role:"user",content:g.value}),window.scrollTo(0,document.body.scrollHeight),g.value="",a.value.push({role:"assistant",content:"..."}),setTimeout(()=>{window.scrollTo(0,document.body.scrollHeight)},10);const e=await Q(n);a.value[a.value.length-1].content="",window.scrollTo(0,document.body.scrollHeight),e&&(x(e),H())}async function B(){if(!m()){location.href="#/login";return}c.value||(c.value=!0,a.value=[],C.value="",await X(),await L(),c.value=!1)}function G(){if(!m()){location.href="#/login";return}y.value=!y.value}function O(){if(!m()){location.href="#/login";return}T.value=!T.value}async function S(o){if(!o)return;if(s.value===-1&&o.current_level===1){await w(0);return}
47s.value=o.current_level,l.value=o.highest_level,p.value=o.total_levels,C.value=o.hint;const n=o.messages;if(n&&n.length===1){a.value=n;const e=n[0].content;n[0].content="",x(e)}else a.value=n}async function w(o){if(o===0){if(s.value===-1){s.value=0;const e=await K(1);await S(e)}s.value=0,a.value=[a.value[0]],a.value[0].content="",a.value[0].content=He;return}v.value="",y.value=!1;const n=await K(o);await S(n)}async function L(){const o=await Z();await S(o)}async function z(){await L(),m()||a.value[0].content==="..."&&setTimeout(()=>{a.value[0].content="",x(Me)},3e3),E()}return W(z),(o,n)=>(i(),r(k,null,[t("form",ne,[U(t("input",{onKeydown:j(V(_,["exact","prevent"]),["enter"]),disabled:!J(m)()||s.value<l.value&&l.value!==1||s.value>p.value,placeholder:s.value===-1?"you must be logged in to submit names":s.value<l.value&&l.value>1||s.value===-1&&l.value>1?"you've already beaten this level!":s.value>p.value?"end of the road, buddy":"the bot's name is...",class:Y(["bg-gray-100 h-20 text-xs sm:text-lg ring-inset outline-none disabled:bg-gray-800 disabled:ring-0 focus:enabled:ring-4 hover:ring-4 ring-green-600 w-full text-center",f.value]),"onUpdate:modelValue":n[0]||(n[0]=e=>v.value=e)},null,42,oe),[[A,v.value]]),s.value>=l.value&&s.value<=p.value||s.value<2&&l.value<2?(i(),r("button",{key:0,onClick:_,class:"ml-2 sm:ml-4 h-20 p-4 bg-green-600 sm:text-2xl text-white hover:bg-green-700"},"Submit")):h("",!0)]),t("div",le,[t("button",{onClick:O,class:"bg-gray-800 hover:bg-gray-700 h-16 p-4 mr-2 sm:mr-4 sm:text-3xl mb-3 ring-1 ring-green-800"},"Level "+u(s.value===-1?0:s.value),1),t("div",se,[t("button",{onClick:G,disabled:c.value,class:Y([{"bg-gray-700":y.value},"bg-gray-800 enabled:hover:bg-gray-700 h-16 pr-6 pl-6 sm:text-3xl mb-1 ring-1 ring-green-800"])},"Hint",10,ae),t("button",{onClick:B,disabled:c.value||s.value===0,class:"bg-gray-800 enabled:hover:bg-gray-700 h-16 pr-6 pl-6 ml-2 sm:ml-4 sm:text-3xl mb-1 ring-1 ring-green-800"},"Reset",8,ie)])]),T.value?(i(),r("div",re,[n[4]||(n[4]=t("p",{class:"mb-2"}," Select a level: ",-1)),t("div",ue,[t("div",null,[t("button",{onClick:n[1]||(n[1]=e=>w(0)),disabled:c.value,class:"bg-gray-800 enabled:hover:bg-gray-700 w-16 mb-2 pt-4 pb-4 mr-2 sm:mr-4 sm:text-3xl ring-1 ring-green-800"}," 0 ",8,ce)]),l.value>0?(i(!0),r(k,{key:0},F(l.value,e=>(i(),r("div",null,[t("button",{onClick:b=>w(e),disabled:c.value,class:"bg-gray-800 enabled:hover:bg-gray-700 w-16 mb-2 pt-4 pb-4 mr-2 sm:mr-4 sm:text-3xl ring-1 ring-green-800"},u(e),9,de)]))),256)):h("",!0),p.value>=l.value?(i(!0),r(k,{key:1},F(p.value-l.value,e=>(i(),r("div",null,[t("button",ve,u(e+l.value),1)]))),256)):h("",!0)])])):h("",!0),y.value?(i(),r("pre",he,"Hint: "+u(C.value),1)):h("",!0),t("div",pe,[(i(!0),r(k,null,F(a.value,e=>(i(),r("div",ge,[e.role==="assistant"?(i(),r("p",me,[e.content.split("__").length!==3&&e.content.split("__").length!==5?(i(),r("div",be,[t("div",null,[e.content==="..."?(i(),r("div",{key:0,onTimeupdate:n[2]||(n[2]=()=>{}),class:"text-bold inline",style:{"animation-duration":"800ms"}},n[5]||(n[5]=[t("span",{class:"animate-pulse",style:{"animation-delay":"200ms"}},".",-1),t("span",{class:"animate-pulse",style:{"animation-delay":"400ms"}},".",-1),t("span",{class:"animate-pulse",style:{"animation-delay":"600ms"}},".",-1)]),32)):e.content.includes("Forces Unseen blog")?(i(),r("div",fe,[t("span",null,[$(u(e.content.split("Forces Unseen blog")[0]),1),n[6]||(n[6]=t("a",{href:"https://blog.forcesunseen.com",target:"_blank",class:"underline hover:decoration-dotted font-bold"},"Forces Unseen blog",-1)),$(u(e.content.split("Forces Unseen blog")[1]),1)])])):(i(),r("div",ye,[t("span",_e,u(e.content),1)]))])])):e.content.split("__").length===3?(i(),r("div",xe,[t("span",null,u(e.content.split("__")[0]),1),t("span",{onClick:b=>{v.value=e.content.split("__")[1],_(b)},class:"underline hover:decoration-dotted cursor-pointer font-bold m-1"},u(e.content.split("__")[1]),9,we),t("span",null,u(e.content.split("__")[2]),1)])):e.content.split("__").length===5?(i(),r("div",ke,[t("span",null,u(e.content.split("__")[0]),1),t("span",{onClick:b=>{v.value=e.content.split("__")[1],_(b)},class:"underline hover:decoration-dotted cursor-pointer font-bold m-1"},u(e.content.split("__")[1]),9,Ie),t("span",null,u(e.content.split("__")[2]),1),t("span",{onClick:b=>{v.value=e.content.split("__")[3],_(b)},class:"underline hover:decoration-dotted cursor-pointer font-bold m-1"},u(e.content.split("__")[3]),9,Ce),t("span",null,u(e.content.split("__")[4]),1)])):h("",!0)])):h("",!0),e.role==="user"?(i(),r("p",Te,u(e.content),1)):h("",!0)]))),256)),s.value!==0?(i(),r("form",Se,[U(t("textarea",{onKeydown:j(V(M,["exact","prevent"]),["enter"]),type:"text",id:"input",ref_key:"msg_input_el",ref:I,class:"p-4 resize-none h-32 sm:text-xl w-full text-green-600 bg-gray-900","onUpdate:modelValue":n[3]||(n[3]=e=>g.value=e),placeholder:"Ask any question. Ex: What is your name?"},null,40,Le),[[A,g.value]]),t("button",{onClick:M,disabled:c.value,class:"bg-green-600 mt-3 p-4 text-xl sm:text-2xl mb-1 ring-1 ring-green-800 text-white enabled:hover:bg-green-700"},"Send",8,Fe)])):h("",!0)])],64))}}),Ae={class:"bg-black min-h-screen"},je={class:"flex flex-col flex-grow p-2 sm:p-8 text-green-600 font-mono max-w-7xl mx-auto w-full"},$e=R({__name:"index",setup(q){return ee(),(p,l)=>(i(),r("div",Ae,[t("div",je,[l[0]||(l[0]=t("h1",{class:"text-xl sm:text-2xl text-center"},"doublespeak.chat",-1)),N(te),l[1]||(l[1]=t("p",{style:{"line-height":"1.2"},class:"m-8 text-center text-4xl sm:text-7xl text-white"},[t("b",null,"Your goal is to discover and submit the bot's name.")],-1)),l[2]||(l[2]=t("p",{class:"text-xl text-center mb-8"}
47," Let the game begin! ",-1)),N(Ue)])]))}});export{$e as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.