@loicngr/kobo 1.11.13 → 1.11.14
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/CHANGELOG.md +4 -0
- package/dist/mcp-server/kobo-tasks-handlers.js +26 -3
- package/dist/server/index.js +5 -7
- package/dist/server/routes/export.js +2 -1
- package/dist/server/routes/workspaces.js +15 -0
- package/dist/server/services/agent/engines/claude-code/engine.js +9 -7
- package/dist/server/services/agent/engines/claude-code/event-mapper.js +3 -1
- package/dist/server/services/agent/orchestrator.js +34 -8
- package/dist/server/services/cron-service.js +2 -1
- package/dist/server/services/dev-server-service.js +13 -1
- package/dist/server/services/wakeup-service.js +14 -12
- package/dist/server/utils/git-ops.js +3 -2
- package/dist/server/utils/safe-path.js +34 -0
- package/package.json +3 -3
- package/src/client/dist/pwa/assets/{ActivityFeed-Ds8cAMNc.js → ActivityFeed-DqDJDX2v.js} +1 -1
- package/src/client/dist/pwa/assets/{ChangelogPage-DO6DNO4Q.js → ChangelogPage-Dw2LbIK2.js} +1 -1
- package/src/client/dist/pwa/assets/{ClosePopup-DuAqn8Pb.js → ClosePopup-eKuUr7CY.js} +1 -1
- package/src/client/dist/pwa/assets/{CreatePage-BnMSo_79.js → CreatePage--4KDhiYt.js} +1 -1
- package/src/client/dist/pwa/assets/{DiffViewer-CMnFGReI.js → DiffViewer-Bl9D1N1M.js} +3 -3
- package/src/client/dist/pwa/assets/{HealthPage-BRAxQKSP.js → HealthPage-CaOdjuVx.js} +1 -1
- package/src/client/dist/pwa/assets/{MainLayout-BN1ug95K.js → MainLayout-DP9shoO1.js} +2 -2
- package/src/client/dist/pwa/assets/{QBtnToggle-DsCDNQzX.js → QBtnToggle-BwPZ0Smh.js} +1 -1
- package/src/client/dist/pwa/assets/{QChip-DWGDTZnX.js → QChip-CY0_8v_e.js} +1 -1
- package/src/client/dist/pwa/assets/{QSelect-8Ip46vhk.js → QSelect-xHphd7hW.js} +1 -1
- package/src/client/dist/pwa/assets/{QTooltip-Bz4g3bmr.js → QTooltip-DyS20jDT.js} +1 -1
- package/src/client/dist/pwa/assets/{SearchPage-BD53VJEr.js → SearchPage-CggXs3dH.js} +1 -1
- package/src/client/dist/pwa/assets/{SettingsPage-3rYdJZga.js → SettingsPage-8AWL_4DM.js} +1 -1
- package/src/client/dist/pwa/assets/{TouchPan-BKu8V4eN.js → TouchPan-Cd9KTb6-.js} +1 -1
- package/src/client/dist/pwa/assets/{WorkspacePage-CbC_t5Rx.js → WorkspacePage-CJKSrSEC.js} +3 -3
- package/src/client/dist/pwa/assets/{cssMode-vaMVESGy.js → cssMode-BsN8TWME.js} +1 -1
- package/src/client/dist/pwa/assets/{documents-CyKQ9lT6.js → documents-DJy1tgPd.js} +1 -1
- package/src/client/dist/pwa/assets/{editor.api-CH3dhpKq.js → editor.api-Dj6TIm_z.js} +1 -1
- package/src/client/dist/pwa/assets/{expand-template-DQQQftsk.js → expand-template-By-8Db7_.js} +1 -1
- package/src/client/dist/pwa/assets/{freemarker2-deLpERsj.js → freemarker2-DC0xjWx5.js} +1 -1
- package/src/client/dist/pwa/assets/{handlebars-DdjS05Tc.js → handlebars-0Uz9nw5d.js} +1 -1
- package/src/client/dist/pwa/assets/{html-pK1ZEFvP.js → html-BYPeU1Vb.js} +1 -1
- package/src/client/dist/pwa/assets/{htmlMode-DJFDI9Ru.js → htmlMode-B0UND_vz.js} +1 -1
- package/src/client/dist/pwa/assets/i18n-DPDR4mQI.js +1 -0
- package/src/client/dist/pwa/assets/{index-B_OmZ65F.js → index-CtK8ORpZ.js} +3 -3
- package/src/client/dist/pwa/assets/{javascript-DbuFfxco.js → javascript-B8PZW8pe.js} +1 -1
- package/src/client/dist/pwa/assets/{jsonMode-B0Fu8Dcc.js → jsonMode-BixnmFse.js} +1 -1
- package/src/client/dist/pwa/assets/{kobo-commands-rb43ZeWG.js → kobo-commands-CX8pforo.js} +1 -1
- package/src/client/dist/pwa/assets/{layout-tAFrvQ5V.js → layout-BAE6NR2A.js} +1 -1
- package/src/client/dist/pwa/assets/{liquid-DqDIKOCy.js → liquid-BH16_Zn1.js} +1 -1
- package/src/client/dist/pwa/assets/{lspLanguageFeatures-CVcEibfJ.js → lspLanguageFeatures-YMzTIuK0.js} +1 -1
- package/src/client/dist/pwa/assets/{mdx-Bs4CovhI.js → mdx-CrrWJ7fg.js} +1 -1
- package/src/client/dist/pwa/assets/{network-auth-DYrrh7Zr.js → network-auth-NMnCVoaZ.js} +1 -1
- package/src/client/dist/pwa/assets/{pending-diff-open-D1IYH8Pd.js → pending-diff-open-DHlXLorX.js} +1 -1
- package/src/client/dist/pwa/assets/{project-color-DO6uj29M.js → project-color-BJrCEQ0A.js} +1 -1
- package/src/client/dist/pwa/assets/{python-BJoP0uN-.js → python-fk3K3s3o.js} +1 -1
- package/src/client/dist/pwa/assets/{razor-cwD-YBcr.js → razor-Dg1yHOal.js} +1 -1
- package/src/client/dist/pwa/assets/{render-chat-markdown-DZnIueUV.js → render-chat-markdown-C00A6CfY.js} +1 -1
- package/src/client/dist/pwa/assets/{tsMode-of3oS9sU.js → tsMode-qJ7nTArc.js} +1 -1
- package/src/client/dist/pwa/assets/{typescript-BTWMoUxn.js → typescript-DayfKox1.js} +1 -1
- package/src/client/dist/pwa/assets/{use-onboarding-BTFkRBjE.js → use-onboarding-CF_D2gbm.js} +1 -1
- package/src/client/dist/pwa/assets/{use-quasar-C1RCDSb6.js → use-quasar-C3oo6nVn.js} +1 -1
- package/src/client/dist/pwa/assets/{vs-DDeaNKsH.js → vs-qnWnWXG9.js} +3 -3
- package/src/client/dist/pwa/assets/{workers-DQnKuGcq.js → workers-CvvtZekC.js} +1 -1
- package/src/client/dist/pwa/assets/{xml-RglGWD_3.js → xml-CJ1QFxhD.js} +1 -1
- package/src/client/dist/pwa/assets/{yaml-CSqGQpai.js → yaml-C3N49N5E.js} +1 -1
- package/src/client/dist/pwa/index.html +1 -1
- package/src/client/dist/pwa/sw.js +1 -1
- package/src/mcp-server/kobo-tasks-handlers.ts +24 -4
- package/src/client/dist/pwa/assets/i18n-CK38o-IF.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e}from"./editor.api-
|
|
1
|
+
import{p as e}from"./editor.api-Dj6TIm_z.js";import"./vs-qnWnWXG9.js";function t(e,t){let n=globalThis.MonacoEnvironment;if(n?.createTrustedTypesPolicy)try{return n.createTrustedTypesPolicy(e,t)}catch(e){console.error(e);return}try{return globalThis.trustedTypes?.createPolicy(e,t)}catch(e){console.error(e);return}}var n=typeof self==`object`&&self.constructor&&self.constructor.name===`DedicatedWorkerGlobalScope`&&globalThis.workerttPolicy!==void 0?globalThis.workerttPolicy:t(`defaultWorkerFactory`,{createScriptURL:e=>e});function r(e){let t=e.label,r=globalThis.MonacoEnvironment;if(r){if(typeof r.getWorker==`function`)return r.getWorker(`workerMain.js`,t);if(typeof r.getWorkerUrl==`function`){let e=r.getWorkerUrl(`workerMain.js`,t);return new Worker(n?n.createScriptURL(e):e,{name:t,type:`module`})}}if(e.createWorker)return e.createWorker();throw Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`)}function i(t){let n=Promise.resolve(r({label:t.label??`monaco-editor-worker`,moduleId:t.moduleId,createWorker:t.createWorker})).then(e=>(e.postMessage(`ignore`),e.postMessage(t.createData),e));return e.createWebWorker({worker:n,host:t.host,keepIdleModels:t.keepIdleModels})}export{i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as e}from"./editor.api-
|
|
1
|
+
import{m as e}from"./editor.api-Dj6TIm_z.js";var t={comments:{blockComment:[`<!--`,`-->`]},brackets:[[`<`,`>`]],autoClosingPairs:[{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],surroundingPairs:[{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],onEnterRules:[{beforeText:RegExp(`<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}]},n={defaultToken:``,tokenPostfix:`.xml`,ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,``],{include:`@whitespace`},[/(<)(@qualifiedName)/,[{token:`delimiter`},{token:`tag`,next:`@tag`}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:`delimiter`},{token:`tag`},``,{token:`delimiter`}]],[/(<\?)(@qualifiedName)/,[{token:`delimiter`},{token:`metatag`,next:`@tag`}]],[/(<\!)(@qualifiedName)/,[{token:`delimiter`},{token:`metatag`,next:`@tag`}]],[/<\!\[CDATA\[/,{token:`delimiter.cdata`,next:`@cdata`}],[/&\w+;/,`string.escape`]],cdata:[[/[^\]]+/,``],[/\]\]>/,{token:`delimiter.cdata`,next:`@pop`}],[/\]/,``]],tag:[[/[ \t\r\n]+/,``],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,[`attribute.name`,``,`attribute.value`]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,[`attribute.name`,``,`attribute.value`]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,[`attribute.name`,``,`attribute.value`]],[/@qualifiedName/,`attribute.name`],[/\?>/,{token:`delimiter`,next:`@pop`}],[/(\/)(>)/,[{token:`tag`},{token:`delimiter`,next:`@pop`}]],[/>/,{token:`delimiter`,next:`@pop`}]],whitespace:[[/[ \t\r\n]+/,``],[/<!--/,{token:`comment`,next:`@comment`}]],comment:[[/[^<\-]+/,`comment.content`],[/-->/,{token:`comment`,next:`@pop`}],[/<!--/,`comment.content.invalid`],[/[<\-]/,`comment.content`]]}};export{t as conf,n as language};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as e}from"./editor.api-
|
|
1
|
+
import{m as e}from"./editor.api-Dj6TIm_z.js";var t={comments:{lineComment:`#`},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:e.IndentAction.Indent}}]},n={tokenPostfix:`.yaml`,brackets:[{token:`delimiter.bracket`,open:`{`,close:`}`},{token:`delimiter.square`,open:`[`,close:`]`}],keywords:[`true`,`True`,`TRUE`,`false`,`False`,`FALSE`,`null`,`Null`,`Null`,`~`],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:`@whitespace`},{include:`@comment`},[/%[^ ]+.*$/,`meta.directive`],[/---/,`operators.directivesEnd`],[/\.{3}/,`operators.documentEnd`],[/[-?:](?= )/,`operators`],{include:`@anchor`},{include:`@tagHandle`},{include:`@flowCollections`},{include:`@blockStyle`},[/@numberInteger(?![ \t]*\S+)/,`number`],[/@numberFloat(?![ \t]*\S+)/,`number.float`],[/@numberOctal(?![ \t]*\S+)/,`number.octal`],[/@numberHex(?![ \t]*\S+)/,`number.hex`],[/@numberInfinity(?![ \t]*\S+)/,`number.infinity`],[/@numberNaN(?![ \t]*\S+)/,`number.nan`],[/@numberDate(?![ \t]*\S+)/,`number.date`],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,[`type`,`white`,`operators`,`white`]],{include:`@flowScalars`},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],object:[{include:`@whitespace`},{include:`@comment`},[/\}/,`@brackets`,`@pop`],[/,/,`delimiter.comma`],[/:(?= )/,`operators`],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,`type`],{include:`@flowCollections`},{include:`@flowScalars`},{include:`@tagHandle`},{include:`@anchor`},{include:`@flowNumber`},[/[^\},]+/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],array:[{include:`@whitespace`},{include:`@comment`},[/\]/,`@brackets`,`@pop`],[/,/,`delimiter.comma`],{include:`@flowCollections`},{include:`@flowScalars`},{include:`@tagHandle`},{include:`@anchor`},{include:`@flowNumber`},[/[^\],]+/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],multiString:[[/^( +).+$/,`string`,`@multiStringContinued.$1`]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":`string`,"@default":{token:`@rematch`,next:`@popall`}}}]],whitespace:[[/[ \t\r\n]+/,`white`]],comment:[[/#.*$/,`comment`]],flowCollections:[[/\[/,`@brackets`,`@array`],[/\{/,`@brackets`,`@object`]],flowScalars:[[/"([^"\\]|\\.)*$/,`string.invalid`],[/'([^'\\]|\\.)*$/,`string.invalid`],[/'[^']*'/,`string`],[/"/,`string`,`@doubleQuotedString`]],doubleQuotedString:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],blockStyle:[[/[>|][0-9]*[+-]?$/,`operators`,`@multiString`]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,`number`],[/@numberFloat(?=[ \t]*[,\]\}])/,`number.float`],[/@numberOctal(?=[ \t]*[,\]\}])/,`number.octal`],[/@numberHex(?=[ \t]*[,\]\}])/,`number.hex`],[/@numberInfinity(?=[ \t]*[,\]\}])/,`number.infinity`],[/@numberNaN(?=[ \t]*[,\]\}])/,`number.nan`],[/@numberDate(?=[ \t]*[,\]\}])/,`number.date`]],tagHandle:[[/\![^ ]*/,`tag`]],anchor:[[/[&*][^ ]+/,`namespace`]]}};export{t as conf,n as language};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><title>Kōbō</title><link rel=icon type=image/svg+xml href=/favicon.svg><meta charset=utf-8><meta name=description content="Kōbō — multi-workspace agent manager for Claude Code"><meta name=format-detection content="telephone=no"><meta name=msapplication-tap-highlight content=no><meta name=viewport content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width,height=device-height"> <script type="module" crossorigin src="/assets/index-
|
|
1
|
+
<!DOCTYPE html><html><head><title>Kōbō</title><link rel=icon type=image/svg+xml href=/favicon.svg><meta charset=utf-8><meta name=description content="Kōbō — multi-workspace agent manager for Claude Code"><meta name=format-detection content="telephone=no"><meta name=msapplication-tap-highlight content=no><meta name=viewport content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width,height=device-height"> <script type="module" crossorigin src="/assets/index-CtK8ORpZ.js"></script>
|
|
2
2
|
<link rel="modulepreload" crossorigin href="/assets/reactivity.esm-bundler-DtSZKRQB.js">
|
|
3
3
|
<link rel="modulepreload" crossorigin href="/assets/runtime-dom.esm-bundler-DgevF6KV.js">
|
|
4
4
|
<link rel="modulepreload" crossorigin href="/assets/vue-i18n-C3W5i7h6.js">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
if(!self.define){let s,e={};const a=(a,r)=>(a=new URL(a+".js",r).href,e[a]||new Promise(e=>{if("document"in self){const s=document.createElement("script");s.src=a,s.onload=e,document.head.appendChild(s)}else s=a,importScripts(a),e()}).then(()=>{let s=e[a];if(!s)throw new Error(`Module ${a} didn’t register its module`);return s}));self.define=(r,i)=>{const c=s||("document"in self?document.currentScript.src:"")||location.href;if(e[c])return;let d={};const b=s=>a(s,c),f={module:{uri:c},exports:d,require:b};e[c]=Promise.all(r.map(s=>f[s]||b(s))).then(s=>(i(...s),d))}}define(["./workbox-778a14ff"],function(s){"use strict";s.setCacheNameDetails({prefix:"kobo-client"}),self.addEventListener("message",s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()}),s.clientsClaim(),s.precacheAndRoute([{url:"manifest.json",revision:"73f02ba4eb4414fb70bbe5ca76cc9580"},{url:"index.html",revision:"c621f46a2f0abaf69064f37552dde97d"},{url:"favicon.svg",revision:"9d89ef10d49f14d08c25cfca9bd4ea75"},{url:"sounds/yaaa.mp3",revision:"2161c5eb77ac61349f6fe573f62d8404"},{url:"sounds/warcraft-3-humain-travail.mp3",revision:"0b8bd1b9be23803c3ac84eaf0d1b5287"},{url:"sounds/tu-vas-la-fermer.mp3",revision:"1688aaa18b0a307a3016c3fd39321f59"},{url:"sounds/travail_termine.mp3",revision:"a194c4cc479b59ba13746b08bca634b9"},{url:"sounds/ta-gueule.mp3",revision:"44aa9b15c9abe9a846f8034a23482b24"},{url:"sounds/pas-ca-zinedine.mp3",revision:"57ec46faf5b7d1c2f370d7167e284f04"},{url:"sounds/ouais-cest-greg.mp3",revision:"55624f422636b19422b3bc700aa8da9e"},{url:"sounds/nan-wallah-pardon.mp3",revision:"16edfe0a39fde73db0f30a7a067a77ff"},{url:"sounds/nan-tu-degages.mp3",revision:"282678eceb54e09eb8a7edf4f9fb0e21"},{url:"sounds/mais-laisse-moi-dormir-zebi.mp3",revision:"05d8419f91effcf56a6d09ed35544d06"},{url:"sounds/hey.mp3",revision:"e68017c8f32b3e815e339dad099dc830"},{url:"sounds/gta-v-death.mp3",revision:"72eaa8958882d5f2040f4b9b4f3ba620"},{url:"sounds/for-shure.mp3",revision:"71dd2a2c874a04e67613d49045d926e7"},{url:"sounds/faaah.mp3",revision:"a0220dd11038add054573c26d2f0b6ac"},{url:"sounds/dry-fart.mp3",revision:"afdf096e4a705d908392ed9b4f827bc9"},{url:"sounds/ca_va_peter.mp3",revision:"004452d7682a043e1c13e213a1a56766"},{url:"sounds/basic-notification.mp3",revision:"3f6df726a5e85560dfecf4bb592d2fda"},{url:"sounds/bah-alors-on-est-nul.mp3",revision:"b30241371b49465f62997213bcdfe4b2"},{url:"sounds/arretez-les-messages.mp3",revision:"26f667dccdfddb8c534a5482475b729a"},{url:"sounds/arrete-de-mentir.mp3",revision:"1a9b5157f362dd3e0acc479da4fea708"},{url:"sounds/aller-ftg.mp3",revision:"bcc00bd838e61eb9571c8fdc0f400d19"},{url:"sounds/7eme-compagnie-03.mp3",revision:"49ee08dd595e0e9659042e4e854b0141"},{url:"assets/yaml-CSqGQpai.js",revision:"0fd72554f086d559a343a42eb0e1c2af"},{url:"assets/xml-RglGWD_3.js",revision:"0544ad03422201e4c967a4010384a155"},{url:"assets/workers-DQnKuGcq.js",revision:"348968316c1dc8de170ed59c0adbf29b"},{url:"assets/wgsl-DpFanUEy.js",revision:"4cf32279d7c6a601611a6e32a14f3b1e"},{url:"assets/vue-i18n-C3W5i7h6.js",revision:"d6be4cec7a0d4ec845639b1163783f1a"},{url:"assets/vs-JJSFJJVJ.css",revision:"bbe916748142e097b913808378c819c4"},{url:"assets/vs-DDeaNKsH.js",revision:"d1406cf87d7577aa04f3a35ce66a812c"},{url:"assets/vb-DV3o63ZY.js",revision:"a5b3a756d667f5e4a5da6da4013d7341"},{url:"assets/use-quasar-C1RCDSb6.js",revision:"b7b86cb6228233ff046386925a6ee653"},{url:"assets/use-onboarding-CTZuBZOi.css",revision:"2f6d79046e1409f0472f65179eaa76f3"},{url:"assets/use-onboarding-BTFkRBjE.js",revision:"c95bdd125fe022ecdb154b5d2392924a"},{url:"assets/use-checkbox-SrkgiJho.js",revision:"1e7815ad2c01b6825b1bbe0043a6014b"},{url:"assets/typespec-B8J7ngcE.js",revision:"6c28560625f59db6a5897aa92de81033"},{url:"assets/typescript-BTWMoUxn.js",revision:"40630395eb81d254e20ce60854d854a5"},{url:"assets/twig-De2hgUGE.js",revision:"dfb4c76c8ec0d822070abac68d2bd473"},{url:"assets/tsMode-of3oS9sU.js",revision:"da35d61b982a39c3cef90fe8b0c200e4"},{url:"assets/tcl-DISqw1ZD.js",revision:"6d0ddaebd76ad41c47c96d484af119f8"},{url:"assets/systemverilog-Bz4Y3fRF.js",revision:"18e6d6e82eeb1107458d8d5531f82246"},{url:"assets/swift-Bxkupp3x.js",revision:"65b88f49188974d7c12e1a6cd12a9de5"},{url:"assets/st-DbInun42.js",revision:"d7294c4d47351db4e5edd4d91e445a21"},{url:"assets/sql-NEE52Syq.js",revision:"48352e15fff2141c7deaaab4e51e9565"},{url:"assets/sparql-D_Lu-MrJ.js",revision:"65390637b1a24614803db6844a0db77b"},{url:"assets/sophia-CRfGWb83.js",revision:"a330db913fee26a14679bed631a59043"},{url:"assets/solidity-BEEn4gHE.js",revision:"c2cd02221ec3d86f9a6bb09bfb1f8978"},{url:"assets/shell-CC2rA5mh.js",revision:"8362d325cda511ef760335e0847d3910"},{url:"assets/scss-gp-XZpBa.js",revision:"bf0805dd5cd80d90fef58c9866a7751e"},{url:"assets/scheme-BeGwcela.js",revision:"55c990715708ea012165486d065b3e2c"},{url:"assets/scala-DHpiXF5c.js",revision:"4eeea167d27954255e39d91412b62f87"},{url:"assets/sb-CcwsVR0C.js",revision:"93fc05f23a9cbb96d4f72dbc73e2e53b"},{url:"assets/rust-DdL9SqIa.js",revision:"356bac76300c8d83e8e9d76becf3c9ea"},{url:"assets/runtime-dom.esm-bundler-DgevF6KV.js",revision:"0c10e48831d8d5661203541f34063af7"},{url:"assets/ruby-DezsRK8O.js",revision:"95c3294c6d6cead3cccd7e4e973ab964"},{url:"assets/restructuredtext-BYgofb2h.js",revision:"f75377ae694f4e8f0bcccd05b5b9e65c"},{url:"assets/render-chat-markdown-DZnIueUV.js",revision:"fe67990d4ae7db9957ad299d3f080932"},{url:"assets/redshift-DT7zqm-g.js",revision:"44e23f67b6a02e60d28c9947cd025207"},{url:"assets/redis-ClamHrr6.js",revision:"e3141183a6756253db43e10f8a305787"},{url:"assets/reactivity.esm-bundler-DtSZKRQB.js",revision:"46e9b7ba6d9a49605576bf49159128df"},{url:"assets/razor-cwD-YBcr.js",revision:"94389bac31bc07aac556c0f7d07ae0fd"},{url:"assets/r-BwWrilGY.js",revision:"f18d3e790ef07bc993539322d29548e4"},{url:"assets/qsharp-DkqhCAOL.js",revision:"c53fe08a83f8fcbcd81723105136a691"},{url:"assets/python-BJoP0uN-.js",revision:"07c21a10c287783fac4c3364cb5da927"},{url:"assets/pug-Z5eAx3Zn.js",revision:"6e3de6d5214d2cf61b90949e1d383b49"},{url:"assets/protobuf-C531GsRP.js",revision:"04e688a7fef2bde8cef525653497371f"},{url:"assets/project-color-DO6uj29M.js",revision:"333639fbaffc245e0d8d848e78116107"},{url:"assets/powershell-DmHpPYUd.js",revision:"ff476e9c4398edc9dfd2eb0ee9356352"},{url:"assets/powerquery-D3hlyOfw.js",revision:"0cacccadbe7cd4415f9a3112763c89f3"},{url:"assets/postiats-43DmfD33.js",revision:"b5dbce3331b7ccb325853328702b4bd9"},{url:"assets/pla-CopQ2nXW.js",revision:"b31678678d642accba98d7e7249a20b2"},{url:"assets/php-nr791fC2.js",revision:"ee487693840b66c2abf7c2da872dd6a8"},{url:"assets/pgsql-DTj74zXo.js",revision:"75375029d157fc5e789a13718eed9da7"},{url:"assets/permissionModes-6jhegAm-.js",revision:"e920c9b7475f5d23ff6674da8665b881"},{url:"assets/perl-oz_6vUea.js",revision:"fee6d319d328db438b336b52ac07a46a"},{url:"assets/pending-diff-open-D1IYH8Pd.js",revision:"ecb70811da89e35ed47253e0e4be3550"},{url:"assets/pascaligo-D-ptJ9y-.js",revision:"88be4e81a252f44f049ac92f7b6ea518"},{url:"assets/pascal-DrH0SRf2.js",revision:"0d81121099a69b47e10701bf075fe3cd"},{url:"assets/objective-c-FvmIjYaQ.js",revision:"6d64543dd4430fb71bcd7a5347a0398c"},{url:"assets/network-auth-DYrrh7Zr.js",revision:"ebcf73b61ab8218b73a791ff66545c1a"},{url:"assets/mysql-SOo6toE5.js",revision:"677c089d979324385539e96bd2eb11e4"},{url:"assets/msdax-DauUninz.js",revision:"a63bfea2dd041755a34fe3e307159413"},{url:"assets/mips-CIPQ_RoX.js",revision:"b22614ddc8855670a3f76290908877f5"},{url:"assets/mdx-Bs4CovhI.js",revision:"84ec7eee4ac179614783e129463e1f4c"},{url:"assets/markdown-Cimd5fb3.js",revision:"38eaa88ca7719b9da2894b7c26f2f65b"},{url:"assets/m3-D-oSqn_W.js",revision:"624c73b0332fe1ddfef6013306c5998d"},{url:"assets/lua-CsQS60Ue.js",revision:"5568edf60b64f912bd17561f26e03d44"},{url:"assets/lspLanguageFeatures-CVcEibfJ.js",revision:"77686e119bacc5f2d2eccc672b2132a8"},{url:"assets/liquid-DqDIKOCy.js",revision:"b9cb7714aaa2a5ac80980e2070eb1a71"},{url:"assets/lexon-CfSJPG6W.js",revision:"32b224ffe991474a4cfcbed19971a98d"},{url:"assets/less-B9JPFI3C.js",revision:"c80573ae2313727c545a585d90d3ff36"},{url:"assets/layout-tAFrvQ5V.js",revision:"eae289ab6e4753bba238988702a3bc86"},{url:"assets/kotlin-BOotOW0E.js",revision:"7c2a31b16b6ddc97b60891b09afa11b1"},{url:"assets/kobo-commands-rb43ZeWG.js",revision:"7f0e8ec9cd5418f5905f5c248ed964d6"},{url:"assets/julia-Bri6UV-V.js",revision:"bb5062cdf870c17c7c9be635c1a8a3be"},{url:"assets/jsonMode-B0Fu8Dcc.js",revision:"d35f84ac26cdc48506a95078479bd547"},{url:"assets/json.worker-BOODjG9U.js",revision:"acbc87e708469035ad9233413b831ba5"},{url:"assets/javascript-DbuFfxco.js",revision:"3cb8f9d92623f583229ef89bb4979e25"},{url:"assets/java-BEtHBSE6.js",revision:"987edcd2170749acca47ea184dd9ab25"},{url:"assets/ini-sBoK_t0W.js",revision:"35f8ec10844ea4f62c2712d3f5c1e129"},{url:"assets/index-CK1nk7qr.css",revision:"aa10c393db1581133f92baf34b94402d"},{url:"assets/index-B_OmZ65F.js",revision:"70839fc92d2286c779f4d9bddf0c1e14"},{url:"assets/i18n-CK38o-IF.js",revision:"bf1d33ba957645c89e361cc696e980f9"},{url:"assets/htmlMode-DJFDI9Ru.js",revision:"bc257f341b7b33abb768554b67a5c6b5"},{url:"assets/html.worker-BUr90sI4.js",revision:"c9a0b6ca1bcedb8d4f25d4f98b91190c"},{url:"assets/html-pK1ZEFvP.js",revision:"eee1c5885d995b5869ca3769c1b38d86"},{url:"assets/hcl-CpzslTdj.js",revision:"f9ef1004e908957ec1c3bbea2049a0e9"},{url:"assets/handlebars-DdjS05Tc.js",revision:"49c372d569283a54be7d98b95eede42d"},{url:"assets/graphql-fmXr3nnJ.js",revision:"a51df1d5dca011f5d85dd09a2ffbe1e5"},{url:"assets/go-C-y9NEjX.js",revision:"9213c8381eb32996b86ca9600ca6a07e"},{url:"assets/fsharp-C8Ef5oNN.js",revision:"72f3de59be781f8a4ec49d16bac02119"},{url:"assets/freemarker2-deLpERsj.js",revision:"2434898be6be1aa5d26001654bbe7cff"},{url:"assets/fouet-ahh-DdxrUXRj.mp3",revision:"c6e52ed22d70fa8ca9b4cc57490a463d"},{url:"assets/formatters-D0dU6VcA.js",revision:"67f65bf8c11b5ba0e16bea1a8b0d0261"},{url:"assets/flow9-C5_-GSwl.js",revision:"0e60dc6453d9684c059f20c846ae0ec4"},{url:"assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ-D-x-0Q06.woff2",revision:"a4160421d2605545f69a4cd6cd642902"},{url:"assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNa-Dr0goTwe.woff",revision:"3e1afe59fa075c9e04c436606b77f640"},{url:"assets/expand-template-DQQQftsk.js",revision:"c1d029b2bb12ca569833f031a88b1638"},{url:"assets/expand-template-D2yUa54D.css",revision:"327b6a5d1c9839c9b134216a24f294f6"},{url:"assets/elixir-6RTg0lbw.js",revision:"fb736f7429d9c6a596ed7905653dbf14"},{url:"assets/editor.worker-D-m8IBMa.js",revision:"ebe250f88ce978723eb793ae7903dd4e"},{url:"assets/editor-vZnmUXVO.css",revision:"db10b61b1afc6f897de1d1ea11b69556"},{url:"assets/ecl-D05T4iGw.js",revision:"496ceca3c8bae12c563a8a781cf639f3"},{url:"assets/documents-CyKQ9lT6.js",revision:"6d378c6e9ea508d1f6d0dcbdc7c8737d"},{url:"assets/dockerfile-DZFCIeNp.js",revision:"6af03903b1e51179ae2120866bb68acd"},{url:"assets/dart-onAF5SnQ.js",revision:"4fc14a4d2b7e030db6af8025d8fe831b"},{url:"assets/cypher-CVaqCwHa.js",revision:"75a568a8c6b29818b6a6c8675841ebf7"},{url:"assets/cssMode-vaMVESGy.js",revision:"0bb9cb2b51af3286a3b2799f3fd3fcb7"},{url:"assets/css.worker-JKZQyld4.js",revision:"faf1199480f1e0d7c13281addbcae62a"},{url:"assets/css-DIMkf-bt.js",revision:"368cd7c0ef4cdeca015fe9fe40ed1b2c"},{url:"assets/csp-bTuwJoIa.js",revision:"d13f525ef224dae69f8bde261bb48507"},{url:"assets/csharp-BKxtCVv1.js",revision:"e5831c8275e73409bc73a3991ceb194e"},{url:"assets/cpp-C7h46wYY.js",revision:"7fa3a56badaae54657cda12c403da2c7"},{url:"assets/coffee-Ba7i2nA0.js",revision:"1a1012b2a9bd329b3b1794297125c9a9"},{url:"assets/codicon-Brq4_Ui5.ttf",revision:"74c2693fe9bc669ca29eb633486e1813"},{url:"assets/clojure-Cm7r79vr.js",revision:"e3307e92ae8965ebb29ec9c9097774cd"},{url:"assets/cameligo-DMUM7wLl.js",revision:"ad01c48b3bff95a5fb691c7cd8427122"},{url:"assets/bicep-B5-_aFwp.js",revision:"b2c3f814c02ba6e4672b16282c0a1376"},{url:"assets/bat-i0X4ZdIN.js",revision:"914960f9abae1bfe5a2189a174a1e1c1"},{url:"assets/azcli-Bc_sGQ0U.js",revision:"c1dfc1889c57d0712d6415ecb14b66ed"},{url:"assets/apex-BWPQTe0t.js",revision:"eee56c5abf95c2575e288f36fdbb8737"},{url:"assets/abap-08VXUWAP.js",revision:"08897cd48182b5410786802ea9af6fa2"},{url:"assets/_plugin-vue_export-helper-BDNMzG2s.js",revision:"c51658f4e73752c4cb22212c1e4dff3f"},{url:"assets/WorkspacePage-ChnyJ3xI.css",revision:"33b2f4a74221aa0644cbe29cfdfe0090"},{url:"assets/WorkspacePage-CbC_t5Rx.js",revision:"87af6ad0d87669a879233032c939ab25"},{url:"assets/TouchPan-BKu8V4eN.js",revision:"466adc497b56d00c237e2f393a4ee259"},{url:"assets/SettingsPage-BJZWZYPC.css",revision:"1d221c56c3ab4bcec92db3eab11d6122"},{url:"assets/SettingsPage-3rYdJZga.js",revision:"4f29acd42f94b6b958e1c1f5c15dc639"},{url:"assets/SearchPage-BD53VJEr.js",revision:"58e9389c32af83cdaee5e0e2a6c201f7"},{url:"assets/SearchPage-B08_UXDs.css",revision:"01b1d188b7c0623147d728a922903548"},{url:"assets/QTooltip-Bz4g3bmr.js",revision:"ac000c76a2a7c8039bff722ff6ab73cc"},{url:"assets/QSpinnerDots-B4RmFJUj.js",revision:"961a186bf94d0e9d416960989c46ea85"},{url:"assets/QSpace-D9UEvM99.js",revision:"9b0d35dab72eaadd2ec75b6a8b6c3bc9"},{url:"assets/QSeparator-BdyRE-AM.js",revision:"54d6bc7f53cc7177ccd6b58b6afbf7cd"},{url:"assets/QSelect-8Ip46vhk.js",revision:"5e2b2c9433cbb8629738d1e1f61aba5f"},{url:"assets/QPage-DuIsRmYu.js",revision:"2348cb51182c7c9912da43a5675cb47c"},{url:"assets/QList-Be_FbTA3.js",revision:"d5a4a32bb2563c2154379da291bc16fa"},{url:"assets/QIcon--SvgE-nS.js",revision:"4215b19b97eeb3390dbcaa469d3f836d"},{url:"assets/QChip-DWGDTZnX.js",revision:"717f1419c9ea830ab2f260eb27d3ac81"},{url:"assets/QBtnToggle-DsCDNQzX.js",revision:"bdfeabfddfed6618179b8934a730d53c"},{url:"assets/QBanner-DedhGMcj.js",revision:"f35d0c54f5217dd6be54f685717a2c67"},{url:"assets/QBadge-sMJZ_eZm.js",revision:"0355a7028c5415d3b7549a60cd5b36cd"},{url:"assets/MainLayout-u-AM87m3.css",revision:"9f576db60103c10227517f1bbdc081e6"},{url:"assets/MainLayout-BN1ug95K.js",revision:"8896949ae6b1a5376ef25dd6af55debf"},{url:"assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmUiAw-DHuK6FBl.woff",revision:"8c232201d8c6a9a40fcb52e501787e2f"},{url:"assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbFmUiAw-BLaboPi0.woff",revision:"a5a6410f340b1ec96d902139c03129ea"},{url:"assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWub2bVmUiAw-CCs8I9zJ.woff",revision:"8d7b53b805abb82dff0596ec1d0f0363"},{url:"assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabVmUiAw-6jEn9xEl.woff",revision:"a89b192655666d2fe1c360241fa37a39"},{url:"assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuZtalmUiAw-Ocp2tNig.woff",revision:"0e4277fbc6f0c9d2cfe275a5c1f4fa7d"},{url:"assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuYjalmUiAw-BCOjigVR.woff",revision:"b63dd68d58c93bcee8d09021a7127da2"},{url:"assets/HealthPage-BRAxQKSP.js",revision:"5191b1a1d0ab60bb20366e502ea0f863"},{url:"assets/DiffViewer-CS3P9Ngi.css",revision:"d76ac32e6a76488ccc817954e777b85f"},{url:"assets/DiffViewer-CMnFGReI.js",revision:"8a33b545a387777ec75781184acc867a"},{url:"assets/CreatePage-CV_RpAuV.css",revision:"b0beea3ebe24a900e803bd96f01c4b31"},{url:"assets/CreatePage-BnMSo_79.js",revision:"cfc9b23f117762cef8f1ede2c05db0c4"},{url:"assets/ClosePopup-DuAqn8Pb.js",revision:"c285e5613f51bc1b3955c731770cbdef"},{url:"assets/ChangelogPage-DO6DNO4Q.js",revision:"23dd3603a050e2b9cd991eb2dc3c06b8"},{url:"assets/ChangelogPage-CQ33An2f.css",revision:"9372dbd9c94b0a79d6ae2ba7e06d1762"},{url:"assets/ActivityFeed-Ds8cAMNc.js",revision:"1a4fee2d84e8e6e55d6ce2410ae7f2d9"},{url:"assets/ActivityFeed-BrjeLlhi.css",revision:"102f1cf158a5df58c05bd3d7e269f924"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html"),{denylist:[/sw\.js$/,/workbox-(.)*\.js$/]}))});
|
|
1
|
+
if(!self.define){let s,e={};const a=(a,r)=>(a=new URL(a+".js",r).href,e[a]||new Promise(e=>{if("document"in self){const s=document.createElement("script");s.src=a,s.onload=e,document.head.appendChild(s)}else s=a,importScripts(a),e()}).then(()=>{let s=e[a];if(!s)throw new Error(`Module ${a} didn’t register its module`);return s}));self.define=(r,i)=>{const d=s||("document"in self?document.currentScript.src:"")||location.href;if(e[d])return;let c={};const b=s=>a(s,d),f={module:{uri:d},exports:c,require:b};e[d]=Promise.all(r.map(s=>f[s]||b(s))).then(s=>(i(...s),c))}}define(["./workbox-778a14ff"],function(s){"use strict";s.setCacheNameDetails({prefix:"kobo-client"}),self.addEventListener("message",s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()}),s.clientsClaim(),s.precacheAndRoute([{url:"manifest.json",revision:"73f02ba4eb4414fb70bbe5ca76cc9580"},{url:"index.html",revision:"5f05375a331b638b26d4506416ad4789"},{url:"favicon.svg",revision:"9d89ef10d49f14d08c25cfca9bd4ea75"},{url:"sounds/yaaa.mp3",revision:"2161c5eb77ac61349f6fe573f62d8404"},{url:"sounds/warcraft-3-humain-travail.mp3",revision:"0b8bd1b9be23803c3ac84eaf0d1b5287"},{url:"sounds/tu-vas-la-fermer.mp3",revision:"1688aaa18b0a307a3016c3fd39321f59"},{url:"sounds/travail_termine.mp3",revision:"a194c4cc479b59ba13746b08bca634b9"},{url:"sounds/ta-gueule.mp3",revision:"44aa9b15c9abe9a846f8034a23482b24"},{url:"sounds/pas-ca-zinedine.mp3",revision:"57ec46faf5b7d1c2f370d7167e284f04"},{url:"sounds/ouais-cest-greg.mp3",revision:"55624f422636b19422b3bc700aa8da9e"},{url:"sounds/nan-wallah-pardon.mp3",revision:"16edfe0a39fde73db0f30a7a067a77ff"},{url:"sounds/nan-tu-degages.mp3",revision:"282678eceb54e09eb8a7edf4f9fb0e21"},{url:"sounds/mais-laisse-moi-dormir-zebi.mp3",revision:"05d8419f91effcf56a6d09ed35544d06"},{url:"sounds/hey.mp3",revision:"e68017c8f32b3e815e339dad099dc830"},{url:"sounds/gta-v-death.mp3",revision:"72eaa8958882d5f2040f4b9b4f3ba620"},{url:"sounds/for-shure.mp3",revision:"71dd2a2c874a04e67613d49045d926e7"},{url:"sounds/faaah.mp3",revision:"a0220dd11038add054573c26d2f0b6ac"},{url:"sounds/dry-fart.mp3",revision:"afdf096e4a705d908392ed9b4f827bc9"},{url:"sounds/ca_va_peter.mp3",revision:"004452d7682a043e1c13e213a1a56766"},{url:"sounds/basic-notification.mp3",revision:"3f6df726a5e85560dfecf4bb592d2fda"},{url:"sounds/bah-alors-on-est-nul.mp3",revision:"b30241371b49465f62997213bcdfe4b2"},{url:"sounds/arretez-les-messages.mp3",revision:"26f667dccdfddb8c534a5482475b729a"},{url:"sounds/arrete-de-mentir.mp3",revision:"1a9b5157f362dd3e0acc479da4fea708"},{url:"sounds/aller-ftg.mp3",revision:"bcc00bd838e61eb9571c8fdc0f400d19"},{url:"sounds/7eme-compagnie-03.mp3",revision:"49ee08dd595e0e9659042e4e854b0141"},{url:"assets/yaml-C3N49N5E.js",revision:"391567a5037db39c27c96610f6975baf"},{url:"assets/xml-CJ1QFxhD.js",revision:"6bc4b42065c9e2703a7ed0a98b3edb4e"},{url:"assets/workers-CvvtZekC.js",revision:"3ba82e3cba7ccaccd606903ca18b2b5a"},{url:"assets/wgsl-DpFanUEy.js",revision:"4cf32279d7c6a601611a6e32a14f3b1e"},{url:"assets/vue-i18n-C3W5i7h6.js",revision:"d6be4cec7a0d4ec845639b1163783f1a"},{url:"assets/vs-qnWnWXG9.js",revision:"ad580050de30c3335a0894bd4737e5d7"},{url:"assets/vs-JJSFJJVJ.css",revision:"bbe916748142e097b913808378c819c4"},{url:"assets/vb-DV3o63ZY.js",revision:"a5b3a756d667f5e4a5da6da4013d7341"},{url:"assets/use-quasar-C3oo6nVn.js",revision:"506be3a40ae52c75fc2ddf0aeffd1f3c"},{url:"assets/use-onboarding-CTZuBZOi.css",revision:"2f6d79046e1409f0472f65179eaa76f3"},{url:"assets/use-onboarding-CF_D2gbm.js",revision:"85219a9c5c6431af218689e6712ca820"},{url:"assets/use-checkbox-SrkgiJho.js",revision:"1e7815ad2c01b6825b1bbe0043a6014b"},{url:"assets/typespec-B8J7ngcE.js",revision:"6c28560625f59db6a5897aa92de81033"},{url:"assets/typescript-DayfKox1.js",revision:"4ca89e1704795b67665781726b5f6eff"},{url:"assets/twig-De2hgUGE.js",revision:"dfb4c76c8ec0d822070abac68d2bd473"},{url:"assets/tsMode-qJ7nTArc.js",revision:"4e92580e3b6698e237899e83bddc63f8"},{url:"assets/tcl-DISqw1ZD.js",revision:"6d0ddaebd76ad41c47c96d484af119f8"},{url:"assets/systemverilog-Bz4Y3fRF.js",revision:"18e6d6e82eeb1107458d8d5531f82246"},{url:"assets/swift-Bxkupp3x.js",revision:"65b88f49188974d7c12e1a6cd12a9de5"},{url:"assets/st-DbInun42.js",revision:"d7294c4d47351db4e5edd4d91e445a21"},{url:"assets/sql-NEE52Syq.js",revision:"48352e15fff2141c7deaaab4e51e9565"},{url:"assets/sparql-D_Lu-MrJ.js",revision:"65390637b1a24614803db6844a0db77b"},{url:"assets/sophia-CRfGWb83.js",revision:"a330db913fee26a14679bed631a59043"},{url:"assets/solidity-BEEn4gHE.js",revision:"c2cd02221ec3d86f9a6bb09bfb1f8978"},{url:"assets/shell-CC2rA5mh.js",revision:"8362d325cda511ef760335e0847d3910"},{url:"assets/scss-gp-XZpBa.js",revision:"bf0805dd5cd80d90fef58c9866a7751e"},{url:"assets/scheme-BeGwcela.js",revision:"55c990715708ea012165486d065b3e2c"},{url:"assets/scala-DHpiXF5c.js",revision:"4eeea167d27954255e39d91412b62f87"},{url:"assets/sb-CcwsVR0C.js",revision:"93fc05f23a9cbb96d4f72dbc73e2e53b"},{url:"assets/rust-DdL9SqIa.js",revision:"356bac76300c8d83e8e9d76becf3c9ea"},{url:"assets/runtime-dom.esm-bundler-DgevF6KV.js",revision:"0c10e48831d8d5661203541f34063af7"},{url:"assets/ruby-DezsRK8O.js",revision:"95c3294c6d6cead3cccd7e4e973ab964"},{url:"assets/restructuredtext-BYgofb2h.js",revision:"f75377ae694f4e8f0bcccd05b5b9e65c"},{url:"assets/render-chat-markdown-C00A6CfY.js",revision:"f694464946bf1ad35467b60cfe83fa21"},{url:"assets/redshift-DT7zqm-g.js",revision:"44e23f67b6a02e60d28c9947cd025207"},{url:"assets/redis-ClamHrr6.js",revision:"e3141183a6756253db43e10f8a305787"},{url:"assets/reactivity.esm-bundler-DtSZKRQB.js",revision:"46e9b7ba6d9a49605576bf49159128df"},{url:"assets/razor-Dg1yHOal.js",revision:"099e526dab35624b42837c37c070a352"},{url:"assets/r-BwWrilGY.js",revision:"f18d3e790ef07bc993539322d29548e4"},{url:"assets/qsharp-DkqhCAOL.js",revision:"c53fe08a83f8fcbcd81723105136a691"},{url:"assets/python-fk3K3s3o.js",revision:"0b90eff95673044b87876bce0b900289"},{url:"assets/pug-Z5eAx3Zn.js",revision:"6e3de6d5214d2cf61b90949e1d383b49"},{url:"assets/protobuf-C531GsRP.js",revision:"04e688a7fef2bde8cef525653497371f"},{url:"assets/project-color-BJrCEQ0A.js",revision:"7b5b9f2e179c5a8e45870a9e3987690e"},{url:"assets/powershell-DmHpPYUd.js",revision:"ff476e9c4398edc9dfd2eb0ee9356352"},{url:"assets/powerquery-D3hlyOfw.js",revision:"0cacccadbe7cd4415f9a3112763c89f3"},{url:"assets/postiats-43DmfD33.js",revision:"b5dbce3331b7ccb325853328702b4bd9"},{url:"assets/pla-CopQ2nXW.js",revision:"b31678678d642accba98d7e7249a20b2"},{url:"assets/php-nr791fC2.js",revision:"ee487693840b66c2abf7c2da872dd6a8"},{url:"assets/pgsql-DTj74zXo.js",revision:"75375029d157fc5e789a13718eed9da7"},{url:"assets/permissionModes-6jhegAm-.js",revision:"e920c9b7475f5d23ff6674da8665b881"},{url:"assets/perl-oz_6vUea.js",revision:"fee6d319d328db438b336b52ac07a46a"},{url:"assets/pending-diff-open-DHlXLorX.js",revision:"20819013c91a8f9935f2ad9dd1e734c2"},{url:"assets/pascaligo-D-ptJ9y-.js",revision:"88be4e81a252f44f049ac92f7b6ea518"},{url:"assets/pascal-DrH0SRf2.js",revision:"0d81121099a69b47e10701bf075fe3cd"},{url:"assets/objective-c-FvmIjYaQ.js",revision:"6d64543dd4430fb71bcd7a5347a0398c"},{url:"assets/network-auth-NMnCVoaZ.js",revision:"bb1e63fcee1a6f1a01882573a660e651"},{url:"assets/mysql-SOo6toE5.js",revision:"677c089d979324385539e96bd2eb11e4"},{url:"assets/msdax-DauUninz.js",revision:"a63bfea2dd041755a34fe3e307159413"},{url:"assets/mips-CIPQ_RoX.js",revision:"b22614ddc8855670a3f76290908877f5"},{url:"assets/mdx-CrrWJ7fg.js",revision:"4b8ad674b39ad5c22c877f42fe18be4e"},{url:"assets/markdown-Cimd5fb3.js",revision:"38eaa88ca7719b9da2894b7c26f2f65b"},{url:"assets/m3-D-oSqn_W.js",revision:"624c73b0332fe1ddfef6013306c5998d"},{url:"assets/lua-CsQS60Ue.js",revision:"5568edf60b64f912bd17561f26e03d44"},{url:"assets/lspLanguageFeatures-YMzTIuK0.js",revision:"6a6ce4d5ecca196694cd3cec4827b230"},{url:"assets/liquid-BH16_Zn1.js",revision:"2edc862dd9fe4e19426c44d213e9e5a2"},{url:"assets/lexon-CfSJPG6W.js",revision:"32b224ffe991474a4cfcbed19971a98d"},{url:"assets/less-B9JPFI3C.js",revision:"c80573ae2313727c545a585d90d3ff36"},{url:"assets/layout-BAE6NR2A.js",revision:"ef14b1ec7fb6891ed5c4283ccfff20f1"},{url:"assets/kotlin-BOotOW0E.js",revision:"7c2a31b16b6ddc97b60891b09afa11b1"},{url:"assets/kobo-commands-CX8pforo.js",revision:"ff766c2bd5d7d0889055496a5e485a01"},{url:"assets/julia-Bri6UV-V.js",revision:"bb5062cdf870c17c7c9be635c1a8a3be"},{url:"assets/jsonMode-BixnmFse.js",revision:"d76be65701c14912afce67d28cf0bb0b"},{url:"assets/json.worker-BOODjG9U.js",revision:"acbc87e708469035ad9233413b831ba5"},{url:"assets/javascript-B8PZW8pe.js",revision:"1af7112d5de257c23d417ef534c23049"},{url:"assets/java-BEtHBSE6.js",revision:"987edcd2170749acca47ea184dd9ab25"},{url:"assets/ini-sBoK_t0W.js",revision:"35f8ec10844ea4f62c2712d3f5c1e129"},{url:"assets/index-CtK8ORpZ.js",revision:"01cf1fefe60b3a68ac6457ed168992d2"},{url:"assets/index-CK1nk7qr.css",revision:"aa10c393db1581133f92baf34b94402d"},{url:"assets/i18n-DPDR4mQI.js",revision:"20f3bd3994f579d3b0b2e5ca2c15f8c6"},{url:"assets/htmlMode-B0UND_vz.js",revision:"d306b127f00e77c24cf0a46ba2b0952a"},{url:"assets/html.worker-BUr90sI4.js",revision:"c9a0b6ca1bcedb8d4f25d4f98b91190c"},{url:"assets/html-BYPeU1Vb.js",revision:"bd2e0b91a7b11fca5f6da9ae66b1290a"},{url:"assets/hcl-CpzslTdj.js",revision:"f9ef1004e908957ec1c3bbea2049a0e9"},{url:"assets/handlebars-0Uz9nw5d.js",revision:"78091db131c47fb170f260e8115b555d"},{url:"assets/graphql-fmXr3nnJ.js",revision:"a51df1d5dca011f5d85dd09a2ffbe1e5"},{url:"assets/go-C-y9NEjX.js",revision:"9213c8381eb32996b86ca9600ca6a07e"},{url:"assets/fsharp-C8Ef5oNN.js",revision:"72f3de59be781f8a4ec49d16bac02119"},{url:"assets/freemarker2-DC0xjWx5.js",revision:"8ce7685bce741e4607ed67315f79bad3"},{url:"assets/fouet-ahh-DdxrUXRj.mp3",revision:"c6e52ed22d70fa8ca9b4cc57490a463d"},{url:"assets/formatters-D0dU6VcA.js",revision:"67f65bf8c11b5ba0e16bea1a8b0d0261"},{url:"assets/flow9-C5_-GSwl.js",revision:"0e60dc6453d9684c059f20c846ae0ec4"},{url:"assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ-D-x-0Q06.woff2",revision:"a4160421d2605545f69a4cd6cd642902"},{url:"assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNa-Dr0goTwe.woff",revision:"3e1afe59fa075c9e04c436606b77f640"},{url:"assets/expand-template-D2yUa54D.css",revision:"327b6a5d1c9839c9b134216a24f294f6"},{url:"assets/expand-template-By-8Db7_.js",revision:"570fd96a0b788e3aade00862452441c3"},{url:"assets/elixir-6RTg0lbw.js",revision:"fb736f7429d9c6a596ed7905653dbf14"},{url:"assets/editor.worker-D-m8IBMa.js",revision:"ebe250f88ce978723eb793ae7903dd4e"},{url:"assets/editor-vZnmUXVO.css",revision:"db10b61b1afc6f897de1d1ea11b69556"},{url:"assets/ecl-D05T4iGw.js",revision:"496ceca3c8bae12c563a8a781cf639f3"},{url:"assets/documents-DJy1tgPd.js",revision:"eb178cf9122b9075dc18307e4fea9c0e"},{url:"assets/dockerfile-DZFCIeNp.js",revision:"6af03903b1e51179ae2120866bb68acd"},{url:"assets/dart-onAF5SnQ.js",revision:"4fc14a4d2b7e030db6af8025d8fe831b"},{url:"assets/cypher-CVaqCwHa.js",revision:"75a568a8c6b29818b6a6c8675841ebf7"},{url:"assets/cssMode-BsN8TWME.js",revision:"961e928253a2b0ef8b99c31aeee52778"},{url:"assets/css.worker-JKZQyld4.js",revision:"faf1199480f1e0d7c13281addbcae62a"},{url:"assets/css-DIMkf-bt.js",revision:"368cd7c0ef4cdeca015fe9fe40ed1b2c"},{url:"assets/csp-bTuwJoIa.js",revision:"d13f525ef224dae69f8bde261bb48507"},{url:"assets/csharp-BKxtCVv1.js",revision:"e5831c8275e73409bc73a3991ceb194e"},{url:"assets/cpp-C7h46wYY.js",revision:"7fa3a56badaae54657cda12c403da2c7"},{url:"assets/coffee-Ba7i2nA0.js",revision:"1a1012b2a9bd329b3b1794297125c9a9"},{url:"assets/codicon-Brq4_Ui5.ttf",revision:"74c2693fe9bc669ca29eb633486e1813"},{url:"assets/clojure-Cm7r79vr.js",revision:"e3307e92ae8965ebb29ec9c9097774cd"},{url:"assets/cameligo-DMUM7wLl.js",revision:"ad01c48b3bff95a5fb691c7cd8427122"},{url:"assets/bicep-B5-_aFwp.js",revision:"b2c3f814c02ba6e4672b16282c0a1376"},{url:"assets/bat-i0X4ZdIN.js",revision:"914960f9abae1bfe5a2189a174a1e1c1"},{url:"assets/azcli-Bc_sGQ0U.js",revision:"c1dfc1889c57d0712d6415ecb14b66ed"},{url:"assets/apex-BWPQTe0t.js",revision:"eee56c5abf95c2575e288f36fdbb8737"},{url:"assets/abap-08VXUWAP.js",revision:"08897cd48182b5410786802ea9af6fa2"},{url:"assets/_plugin-vue_export-helper-BDNMzG2s.js",revision:"c51658f4e73752c4cb22212c1e4dff3f"},{url:"assets/WorkspacePage-ChnyJ3xI.css",revision:"33b2f4a74221aa0644cbe29cfdfe0090"},{url:"assets/WorkspacePage-CJKSrSEC.js",revision:"7d0af8415caf87be713f8a5d928ad5cf"},{url:"assets/TouchPan-Cd9KTb6-.js",revision:"993431a2a05d17bc6eb9fd5cfb840b26"},{url:"assets/SettingsPage-BJZWZYPC.css",revision:"1d221c56c3ab4bcec92db3eab11d6122"},{url:"assets/SettingsPage-8AWL_4DM.js",revision:"6c8fe24c403a456d5e9d99745882ec90"},{url:"assets/SearchPage-CggXs3dH.js",revision:"573b194a85b14f5f67dcc3485ba0a65c"},{url:"assets/SearchPage-B08_UXDs.css",revision:"01b1d188b7c0623147d728a922903548"},{url:"assets/QTooltip-DyS20jDT.js",revision:"b50581153fc4c1f8373cbef16ed59d2e"},{url:"assets/QSpinnerDots-B4RmFJUj.js",revision:"961a186bf94d0e9d416960989c46ea85"},{url:"assets/QSpace-D9UEvM99.js",revision:"9b0d35dab72eaadd2ec75b6a8b6c3bc9"},{url:"assets/QSeparator-BdyRE-AM.js",revision:"54d6bc7f53cc7177ccd6b58b6afbf7cd"},{url:"assets/QSelect-xHphd7hW.js",revision:"394d343d189ab3c09d31396f629d3467"},{url:"assets/QPage-DuIsRmYu.js",revision:"2348cb51182c7c9912da43a5675cb47c"},{url:"assets/QList-Be_FbTA3.js",revision:"d5a4a32bb2563c2154379da291bc16fa"},{url:"assets/QIcon--SvgE-nS.js",revision:"4215b19b97eeb3390dbcaa469d3f836d"},{url:"assets/QChip-CY0_8v_e.js",revision:"027692a38c483ad01e2aa224fec2d3a9"},{url:"assets/QBtnToggle-BwPZ0Smh.js",revision:"549dd7125abf64ea511557410e707bd7"},{url:"assets/QBanner-DedhGMcj.js",revision:"f35d0c54f5217dd6be54f685717a2c67"},{url:"assets/QBadge-sMJZ_eZm.js",revision:"0355a7028c5415d3b7549a60cd5b36cd"},{url:"assets/MainLayout-u-AM87m3.css",revision:"9f576db60103c10227517f1bbdc081e6"},{url:"assets/MainLayout-DP9shoO1.js",revision:"829811245c830df10bf813f786572545"},{url:"assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmUiAw-DHuK6FBl.woff",revision:"8c232201d8c6a9a40fcb52e501787e2f"},{url:"assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbFmUiAw-BLaboPi0.woff",revision:"a5a6410f340b1ec96d902139c03129ea"},{url:"assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWub2bVmUiAw-CCs8I9zJ.woff",revision:"8d7b53b805abb82dff0596ec1d0f0363"},{url:"assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabVmUiAw-6jEn9xEl.woff",revision:"a89b192655666d2fe1c360241fa37a39"},{url:"assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuZtalmUiAw-Ocp2tNig.woff",revision:"0e4277fbc6f0c9d2cfe275a5c1f4fa7d"},{url:"assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuYjalmUiAw-BCOjigVR.woff",revision:"b63dd68d58c93bcee8d09021a7127da2"},{url:"assets/HealthPage-CaOdjuVx.js",revision:"8acbce4a5eca36968852ca935ca7c999"},{url:"assets/DiffViewer-CS3P9Ngi.css",revision:"d76ac32e6a76488ccc817954e777b85f"},{url:"assets/DiffViewer-Bl9D1N1M.js",revision:"2131f6023e70595d7db838bc834300aa"},{url:"assets/CreatePage-CV_RpAuV.css",revision:"b0beea3ebe24a900e803bd96f01c4b31"},{url:"assets/CreatePage--4KDhiYt.js",revision:"f726dd152bedc44505e89e12b685f660"},{url:"assets/ClosePopup-eKuUr7CY.js",revision:"7d8db0c4c77098ee1cbdd950f183f96a"},{url:"assets/ChangelogPage-Dw2LbIK2.js",revision:"66b22a12332e8e2768e70a23d0e50e6a"},{url:"assets/ChangelogPage-CQ33An2f.css",revision:"9372dbd9c94b0a79d6ae2ba7e06d1762"},{url:"assets/ActivityFeed-DqDJDX2v.js",revision:"d31f54e6302254955ddf4e77288e5184"},{url:"assets/ActivityFeed-BrjeLlhi.css",revision:"102f1cf158a5df58c05bd3d7e269f924"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html"),{denylist:[/sw\.js$/,/workbox-(.)*\.js$/]}))});
|
|
@@ -5,6 +5,7 @@ import { nanoid } from 'nanoid'
|
|
|
5
5
|
import * as cronService from '../server/services/cron-service.js'
|
|
6
6
|
import * as settingsService from '../server/services/settings-service.js'
|
|
7
7
|
import { slugifyProjectName } from '../server/utils/project-slug.js'
|
|
8
|
+
import { resolveExistingPathInside } from '../server/utils/safe-path.js'
|
|
8
9
|
import { resolveWorkspaceWorktreePath } from '../server/utils/worktree-paths.js'
|
|
9
10
|
|
|
10
11
|
/** Allowed task status values. */
|
|
@@ -466,6 +467,7 @@ export const DOCUMENT_DIRS = ['docs/plans', 'docs/superpowers', '.ai/thoughts']
|
|
|
466
467
|
|
|
467
468
|
/** Depth cap to keep recursion bounded even on pathological symlink loops. */
|
|
468
469
|
const DOC_MAX_DEPTH = 8
|
|
470
|
+
const DOC_MAX_FILE_BYTES = 1024 * 1024
|
|
469
471
|
|
|
470
472
|
/** Metadata for a markdown document surfaced by the documents tools. */
|
|
471
473
|
export interface DocumentDto {
|
|
@@ -492,12 +494,13 @@ function walkMarkdownFiles(rootAbs: string, rootRel: string, out: DocumentDto[],
|
|
|
492
494
|
if (entry.startsWith('.') && entry !== '.ai') continue
|
|
493
495
|
const absEntry = path.join(rootAbs, entry)
|
|
494
496
|
const relEntry = `${rootRel}/${entry}`
|
|
495
|
-
let stat: ReturnType<typeof fs.
|
|
497
|
+
let stat: ReturnType<typeof fs.lstatSync>
|
|
496
498
|
try {
|
|
497
|
-
stat = fs.
|
|
499
|
+
stat = fs.lstatSync(absEntry)
|
|
498
500
|
} catch {
|
|
499
501
|
continue
|
|
500
502
|
}
|
|
503
|
+
if (stat.isSymbolicLink()) continue
|
|
501
504
|
if (stat.isDirectory()) {
|
|
502
505
|
walkMarkdownFiles(absEntry, relEntry, out, depth + 1)
|
|
503
506
|
} else if (stat.isFile() && entry.endsWith('.md')) {
|
|
@@ -515,7 +518,12 @@ export function listDocumentsHandler(worktreePath: string): DocumentDto[] {
|
|
|
515
518
|
for (const dir of DOCUMENT_DIRS) {
|
|
516
519
|
const absDir = path.join(worktreePath, dir)
|
|
517
520
|
if (!fs.existsSync(absDir)) continue
|
|
518
|
-
|
|
521
|
+
try {
|
|
522
|
+
if (fs.lstatSync(absDir).isSymbolicLink()) continue
|
|
523
|
+
walkMarkdownFiles(resolveExistingPathInside(worktreePath, absDir), dir, documents)
|
|
524
|
+
} catch {
|
|
525
|
+
// A document directory outside the worktree is never eligible.
|
|
526
|
+
}
|
|
519
527
|
}
|
|
520
528
|
documents.sort((a, b) => new Date(b.modifiedAt).getTime() - new Date(a.modifiedAt).getTime())
|
|
521
529
|
return documents
|
|
@@ -542,7 +550,19 @@ export function readDocumentHandler(worktreePath: string, relPath: string): Docu
|
|
|
542
550
|
if (!fs.existsSync(abs)) {
|
|
543
551
|
throw new Error(`Document not found: ${normalized}`)
|
|
544
552
|
}
|
|
545
|
-
|
|
553
|
+
const lstat = fs.lstatSync(abs)
|
|
554
|
+
if (lstat.isSymbolicLink()) {
|
|
555
|
+
// Resolve for a consistent error if the link escapes; internal links are
|
|
556
|
+
// rejected too so list/read share the same no-symlink contract.
|
|
557
|
+
resolveExistingPathInside(worktreePath, abs)
|
|
558
|
+
throw new Error('Symbolic links are not allowed in documents')
|
|
559
|
+
}
|
|
560
|
+
const safeAbs = resolveExistingPathInside(worktreePath, abs)
|
|
561
|
+
const stat = fs.statSync(safeAbs)
|
|
562
|
+
if (stat.size > DOC_MAX_FILE_BYTES) {
|
|
563
|
+
throw new Error(`Document too large (max ${DOC_MAX_FILE_BYTES / 1024 / 1024} MB)`)
|
|
564
|
+
}
|
|
565
|
+
return { path: normalized, content: fs.readFileSync(safeAbs, 'utf-8') }
|
|
546
566
|
}
|
|
547
567
|
|
|
548
568
|
/**
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{F as e,c as t}from"./index-B_OmZ65F.js";var n=t(({app:t})=>{t.use(e)});export{n as default};
|