@profoundlogic/coderflow-server 0.2.9 → 0.3.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 (143) hide show
  1. package/dist/base-image/agent-wrapper.sh +7 -8
  2. package/dist/coder-server.js +1 -1
  3. package/dist/config/skill-catalog.json +9 -0
  4. package/dist/config.js +1 -1
  5. package/dist/lib/agent-keepalive.js +1 -1
  6. package/dist/lib/api-keys.js +1 -1
  7. package/dist/lib/apiKeys.js +1 -1
  8. package/dist/lib/app-server-ports.js +1 -1
  9. package/dist/lib/auto-judge.js +1 -1
  10. package/dist/lib/basic-auth.js +1 -1
  11. package/dist/lib/build-history.js +1 -1
  12. package/dist/lib/build-output-service.js +1 -1
  13. package/dist/lib/build-scheduler.js +1 -1
  14. package/dist/lib/build-service.js +1 -1
  15. package/dist/lib/ca-certificates.js +1 -1
  16. package/dist/lib/claude-oauth-refresh.js +1 -1
  17. package/dist/lib/cli/build.js +1 -1
  18. package/dist/lib/cli/config-command.js +1 -1
  19. package/dist/lib/cli/config.js +1 -1
  20. package/dist/lib/cli/create-user.js +1 -1
  21. package/dist/lib/cli/init.js +1 -1
  22. package/dist/lib/cli/jira.js +1 -1
  23. package/dist/lib/cli/license.js +1 -1
  24. package/dist/lib/cli/server-manager.js +1 -1
  25. package/dist/lib/container-credential-sync.js +1 -0
  26. package/dist/lib/container-tokens.js +1 -1
  27. package/dist/lib/data-dir.js +1 -1
  28. package/dist/lib/deployment-history.js +1 -1
  29. package/dist/lib/deployment-service.js +1 -1
  30. package/dist/lib/docker-utils.js +1 -1
  31. package/dist/lib/email.js +1 -1
  32. package/dist/lib/emailTemplates.js +1 -1
  33. package/dist/lib/entitlement.js +1 -1
  34. package/dist/lib/fetch-utils.js +1 -1
  35. package/dist/lib/git-commit-details-route.js +1 -1
  36. package/dist/lib/git-history-diff-guardrails.js +1 -1
  37. package/dist/lib/git-provider-service.js +1 -1
  38. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  39. package/dist/lib/git-provider-setup/index.js +1 -1
  40. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  41. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  42. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  43. package/dist/lib/git-providers/github-app-provider.js +1 -1
  44. package/dist/lib/git-providers/index.js +1 -1
  45. package/dist/lib/git-providers/provider-factory.js +1 -1
  46. package/dist/lib/git-providers/provider-interface.js +1 -1
  47. package/dist/lib/github-urls.js +1 -1
  48. package/dist/lib/group-objective-linking.js +1 -1
  49. package/dist/lib/jira-client.js +1 -1
  50. package/dist/lib/judge-blinding.js +1 -1
  51. package/dist/lib/logger.js +1 -1
  52. package/dist/lib/model-fetcher.js +1 -1
  53. package/dist/lib/notifications.js +1 -1
  54. package/dist/lib/oidc-auth.js +1 -1
  55. package/dist/lib/oidc-device-flow.js +1 -1
  56. package/dist/lib/passwordTokens.js +1 -1
  57. package/dist/lib/pin-cascade.js +1 -1
  58. package/dist/lib/provider-accounts.js +1 -1
  59. package/dist/lib/provider-oauth.js +1 -1
  60. package/dist/lib/provider-profile.js +1 -1
  61. package/dist/lib/provider-token-refresh.js +1 -1
  62. package/dist/lib/request-url.js +1 -1
  63. package/dist/lib/rewind.js +1 -1
  64. package/dist/lib/roles.js +1 -1
  65. package/dist/lib/secrets.js +1 -1
  66. package/dist/lib/setup-repo-git-auth.js +1 -1
  67. package/dist/lib/state-capture.js +1 -1
  68. package/dist/lib/static-files.js +1 -1
  69. package/dist/lib/task-name-generator.js +1 -1
  70. package/dist/lib/user-git-oauth.js +1 -1
  71. package/dist/lib/user-git-tokens.js +1 -1
  72. package/dist/lib/users.js +1 -1
  73. package/dist/middleware/requireAuth.js +1 -1
  74. package/dist/middleware/requireInit.js +1 -1
  75. package/dist/middleware/requirePermission.js +1 -1
  76. package/dist/package.json +1 -1
  77. package/dist/routes/apiKeys.js +1 -1
  78. package/dist/routes/auth-oidc.js +1 -1
  79. package/dist/routes/auth.js +1 -1
  80. package/dist/routes/build.js +1 -1
  81. package/dist/routes/containers.js +1 -1
  82. package/dist/routes/deploy-task.js +1 -1
  83. package/dist/routes/environment-management.js +1 -1
  84. package/dist/routes/environments.js +1 -1
  85. package/dist/routes/external-skills.js +1 -1
  86. package/dist/routes/git-credentials.js +1 -1
  87. package/dist/routes/git-oauth.js +1 -1
  88. package/dist/routes/git-provider-setup.js +1 -1
  89. package/dist/routes/health.js +1 -1
  90. package/dist/routes/jira.js +1 -1
  91. package/dist/routes/objective-management.js +1 -1
  92. package/dist/routes/password.js +1 -1
  93. package/dist/routes/prompt.js +1 -1
  94. package/dist/routes/provider-auth.js +1 -1
  95. package/dist/routes/qa.js +1 -1
  96. package/dist/routes/settings.js +1 -1
  97. package/dist/routes/skill-management.js +1 -1
  98. package/dist/routes/skills.js +1 -1
  99. package/dist/routes/tasks.js +1 -1
  100. package/dist/routes/templates.js +1 -1
  101. package/dist/routes/test-task.js +1 -1
  102. package/dist/routes/test.js +1 -1
  103. package/dist/routes/users.js +1 -1
  104. package/dist/routes/visualizations.js +1 -1
  105. package/dist/scripts/create-user.js +1 -1
  106. package/dist/shipped-skills/environment-templates/SKILL.md +32 -109
  107. package/dist/start.js +1 -1
  108. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  109. package/dist/web-ui/public/activity-feed.js +1 -1
  110. package/dist/web-ui/public/activity-formatters.js +1 -1
  111. package/dist/web-ui/public/agent-event-parser.js +1 -1
  112. package/dist/web-ui/public/app.js +1 -1
  113. package/dist/web-ui/public/approve-dialog.js +1 -1
  114. package/dist/web-ui/public/comments-widget.js +1 -1
  115. package/dist/web-ui/public/diff-utils.js +1 -1
  116. package/dist/web-ui/public/docs/admin/skills.md +1 -1
  117. package/dist/web-ui/public/environments.html +24 -1
  118. package/dist/web-ui/public/environments.js +1 -1
  119. package/dist/web-ui/public/feedback-widget.js +1 -1
  120. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  121. package/dist/web-ui/public/git-history.js +1 -1
  122. package/dist/web-ui/public/git-status.js +1 -1
  123. package/dist/web-ui/public/index.js +1 -1
  124. package/dist/web-ui/public/login.js +1 -1
  125. package/dist/web-ui/public/markdown-editor.js +1 -1
  126. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  127. package/dist/web-ui/public/modal-maximize.js +1 -1
  128. package/dist/web-ui/public/notifications.js +1 -1
  129. package/dist/web-ui/public/server-health.js +1 -1
  130. package/dist/web-ui/public/settings.js +1 -1
  131. package/dist/web-ui/public/setup-password.js +1 -1
  132. package/dist/web-ui/public/skills.css +29 -0
  133. package/dist/web-ui/public/skills.html +15 -0
  134. package/dist/web-ui/public/skills.js +1 -1
  135. package/dist/web-ui/public/sse-client.js +1 -1
  136. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  137. package/dist/web-ui/public/task.js +1 -1
  138. package/dist/web-ui/public/terminal.js +1 -1
  139. package/dist/web-ui/public/theme.js +1 -1
  140. package/dist/web-ui/public/users.html +1 -1
  141. package/dist/web-ui/public/users.js +1 -1
  142. package/dist/web-ui/public/variant-grouping.js +1 -1
  143. package/package.json +1 -1
@@ -1 +1 @@
1
- const _0x17d934=_0x1d0e;(function(_0x35b2da,_0x3c9f22){const _0x5ceb7f=_0x1d0e,_0x1fdac6=_0x35b2da();while(!![]){try{const _0x57bc48=-parseInt(_0x5ceb7f(0x139))/0x1+-parseInt(_0x5ceb7f(0x125))/0x2*(parseInt(_0x5ceb7f(0x141))/0x3)+-parseInt(_0x5ceb7f(0x138))/0x4*(-parseInt(_0x5ceb7f(0x148))/0x5)+parseInt(_0x5ceb7f(0x12b))/0x6+parseInt(_0x5ceb7f(0x14b))/0x7+parseInt(_0x5ceb7f(0x14c))/0x8+-parseInt(_0x5ceb7f(0x111))/0x9*(parseInt(_0x5ceb7f(0x135))/0xa);if(_0x57bc48===_0x3c9f22)break;else _0x1fdac6['push'](_0x1fdac6['shift']());}catch(_0x382a22){_0x1fdac6['push'](_0x1fdac6['shift']());}}}(_0x3e36,0xe0465));import{initTheme,mountThemeToggle}from'./theme.js';initTheme();const urlParams=new URLSearchParams(window[_0x17d934(0x14a)][_0x17d934(0x114)]),token=urlParams[_0x17d934(0x143)](_0x17d934(0x118)),loadingEl=document[_0x17d934(0x14f)](_0x17d934(0x129)),setupContentEl=document['getElementById'](_0x17d934(0x11b)),setupFormEl=document[_0x17d934(0x14f)]('setup-form'),setupMessageEl=document[_0x17d934(0x14f)]('setup-message'),userUsernameEl=document[_0x17d934(0x14f)](_0x17d934(0x12e)),userNameEl=document[_0x17d934(0x14f)](_0x17d934(0x144)),passwordInput=document[_0x17d934(0x14f)]('password'),confirmPasswordInput=document[_0x17d934(0x14f)](_0x17d934(0x13d)),submitButton=setupFormEl?.[_0x17d934(0x145)](_0x17d934(0x11f));function _0x1d0e(_0x5dfd07,_0x1003fc){_0x5dfd07=_0x5dfd07-0x110;const _0x3e361a=_0x3e36();let _0x1d0eca=_0x3e361a[_0x5dfd07];if(_0x1d0e['RXHvWz']===undefined){var _0x24ef58=function(_0x2df069){const _0x55b0a1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1cf4a8='',_0x2289cc='';for(let _0x59405e=0x0,_0x32478d,_0x26d4ea,_0x578eae=0x0;_0x26d4ea=_0x2df069['charAt'](_0x578eae++);~_0x26d4ea&&(_0x32478d=_0x59405e%0x4?_0x32478d*0x40+_0x26d4ea:_0x26d4ea,_0x59405e++%0x4)?_0x1cf4a8+=String['fromCharCode'](0xff&_0x32478d>>(-0x2*_0x59405e&0x6)):0x0){_0x26d4ea=_0x55b0a1['indexOf'](_0x26d4ea);}for(let _0x17bdd1=0x0,_0xec4909=_0x1cf4a8['length'];_0x17bdd1<_0xec4909;_0x17bdd1++){_0x2289cc+='%'+('00'+_0x1cf4a8['charCodeAt'](_0x17bdd1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2289cc);};_0x1d0e['nvUzjJ']=_0x24ef58,_0x1d0e['yXrFRR']={},_0x1d0e['RXHvWz']=!![];}const _0x449de4=_0x3e361a[0x0],_0x18e11b=_0x5dfd07+_0x449de4,_0x4aa8c7=_0x1d0e['yXrFRR'][_0x18e11b];return!_0x4aa8c7?(_0x1d0eca=_0x1d0e['nvUzjJ'](_0x1d0eca),_0x1d0e['yXrFRR'][_0x18e11b]=_0x1d0eca):_0x1d0eca=_0x4aa8c7,_0x1d0eca;}function showMessage(_0x1cf4a8,_0x2289cc=_0x17d934(0x13a)){const _0x31b246=_0x17d934;setupMessageEl['textContent']=_0x1cf4a8,setupMessageEl['className']=_0x31b246(0x119)+_0x2289cc+_0x31b246(0x11c);}function hideMessage(){const _0x2c66f2=_0x17d934;setupMessageEl[_0x2c66f2(0x14d)]=_0x2c66f2(0x140);}function showError(_0x59405e){const _0x2f7ff5=_0x17d934;loadingEl['classList'][_0x2f7ff5(0x12f)](_0x2f7ff5(0x110)),setupContentEl[_0x2f7ff5(0x146)]['display']=_0x2f7ff5(0x14e),document[_0x2f7ff5(0x14f)](_0x2f7ff5(0x11e))[_0x2f7ff5(0x146)][_0x2f7ff5(0x117)]=_0x2f7ff5(0x126),setupFormEl[_0x2f7ff5(0x146)][_0x2f7ff5(0x117)]=_0x2f7ff5(0x126),showMessage(_0x59405e,_0x2f7ff5(0x13a));}async function validateToken(){const _0x244cec=_0x17d934;if(!token){showError(_0x244cec(0x147));return;}try{const _0x32478d=await fetch(_0x244cec(0x13b)+encodeURIComponent(token)),_0x26d4ea=await _0x32478d[_0x244cec(0x13c)]();if(!_0x26d4ea['valid']){showError(_0x26d4ea[_0x244cec(0x13a)]||_0x244cec(0x149));return;}loadingEl[_0x244cec(0x12c)][_0x244cec(0x12f)](_0x244cec(0x110)),setupContentEl[_0x244cec(0x146)]['display']=_0x244cec(0x14e),userUsernameEl[_0x244cec(0x113)]=_0x26d4ea[_0x244cec(0x123)][_0x244cec(0x150)],userNameEl[_0x244cec(0x113)]=_0x26d4ea[_0x244cec(0x123)]['name'];const _0x578eae=document[_0x244cec(0x145)](_0x244cec(0x121));_0x26d4ea['type']===_0x244cec(0x12d)?_0x578eae[_0x244cec(0x113)]=_0x244cec(0x151):_0x578eae[_0x244cec(0x113)]=_0x244cec(0x115),passwordInput[_0x244cec(0x13f)]();}catch(_0x17bdd1){console['error'](_0x244cec(0x142),_0x17bdd1),showError(_0x244cec(0x128));}}async function handleSubmit(_0xec4909){const _0x51f3bc=_0x17d934;_0xec4909['preventDefault'](),hideMessage();const _0x58b0c6=passwordInput['value'],_0x3ccdc7=confirmPasswordInput['value'];if(_0x58b0c6!==_0x3ccdc7){showMessage(_0x51f3bc(0x131),_0x51f3bc(0x13a)),confirmPasswordInput[_0x51f3bc(0x13f)]();return;}if(_0x58b0c6[_0x51f3bc(0x124)]<0x8){showMessage(_0x51f3bc(0x13e),_0x51f3bc(0x13a)),passwordInput[_0x51f3bc(0x13f)]();return;}submitButton[_0x51f3bc(0x120)]=!![],submitButton[_0x51f3bc(0x113)]=_0x51f3bc(0x11a);try{const _0x40585d=await fetch('/password/setup',{'method':_0x51f3bc(0x11d),'headers':{'Content-Type':_0x51f3bc(0x122)},'body':JSON[_0x51f3bc(0x127)]({'token':token,'password':_0x58b0c6})}),_0x1b5127=await _0x40585d[_0x51f3bc(0x13c)]();if(!_0x40585d['ok'])throw new Error(_0x1b5127['error']||_0x51f3bc(0x130));showMessage(_0x51f3bc(0x132),'success'),setupFormEl[_0x51f3bc(0x12d)](),setTimeout(()=>{const _0x3a32b4=_0x51f3bc;window[_0x3a32b4(0x14a)][_0x3a32b4(0x134)]='/login.html';},0x7d0);}catch(_0x2e14e6){console[_0x51f3bc(0x13a)](_0x51f3bc(0x112),_0x2e14e6),showMessage(_0x2e14e6[_0x51f3bc(0x136)]||'Failed\x20to\x20set\x20password.\x20Please\x20try\x20again.','error'),submitButton[_0x51f3bc(0x120)]=![],submitButton[_0x51f3bc(0x113)]=_0x51f3bc(0x12a);}}function _0x3e36(){const _0x9bff84=['re9nq29UDgvUDeXVywrLza','zgLZCgXHEq','Dg9Rzw4','C2v0DxaTBwvZC2fNzsa','u2v0DgLUzYbWyxnZD29Yzc4UlG','C2v0DxaTy29UDgvUDa','ihzPC2LIBgu','ue9tva','DxnLCI1PBMzV','yNv0Dg9Uw3r5Cgu9iNn1yM1PDcjD','zgLZywjSzwq','lNnLDhvWlwHLywrLCIbW','yxbWBgLJyxrPB24VANnVBG','DxnLCG','BgvUz3rO','mtHtzfvmEMm','BM9Uzq','C3rYAw5NAwz5','rMfPBgvKihrVihzHBgLKyxrLihrVA2vUlIbqBgvHC2uGDhj5igfNywLUig9YignVBNrHy3qGEw91CIbHzg1PBMLZDhjHDg9YlG','Bg9HzgLUzW','u2v0ifbHC3n3B3jK','mZyWmte0meD4zLnRsW','y2XHC3nmAxn0','CMvZzxq','DxnLCI11C2vYBMfTzq','CMvTB3zL','rMfPBgvKihrVihnLDcbWyxnZD29Yza','ugfZC3DVCMrZigrVig5VDcbTyxrJAa','ugfZC3DVCMqGC2v0ihn1y2nLC3nMDwXSEseGuMvKAxjLy3rPBMCGDg8GBg9NAw4UlI4','ywrKrxzLBNrmAxn0zw5LCG','AhjLzG','mtbUCw9nCfO','BwvZC2fNzq','C3vIBwL0','ndq3nK1rzxriBW','mJC1nZe5swPJqKv3','zxjYB3i','l3bHC3n3B3jKl3zHBgLKyxrLlxrVA2vUp3rVA2vUpq','ANnVBG','y29UzMLYBs1WyxnZD29Yza','ugfZC3DVCMqGBxvZDcbIzsbHDcbSzwfZDca4ignOyxjHy3rLCNmGBg9UzW','zM9JDxm','C2v0DxaTBwvZC2fNzq','mZyWnZm1t29PCMHf','rMfPBgvKihrVihzHBgLKyxrLihrVA2vUoG','z2v0','DxnLCI1Uyw1L','CxvLCNLtzwXLy3rVCG','C3r5Bgu','tM8GDg9Rzw4GChjVDMLKzwqUifbSzwfZzsbJAgvJAYb0AguGBgLUAYb5B3uGCMvJzwL2zwqU','ndK4nxvLv1HPwG','sw52ywXPzcbVCIbLEhbPCMvKihrVA2vUlIbqBgvHC2uGCMvXDwvZDcbHig5LDYbWyxnZD29YzcbZzxr1CcbSAw5RlG','Bg9JyxrPB24','mtiYmJy5mhzZsLvuCW','nduWmte3nLD2z3nVwq','y2XHC3noyw1L','yMXVy2S','z2v0rwXLBwvUDej5swq','DxnLCM5HBwu','uMvZzxqGEw91CIbWyxnZD29Yza','DMLZAwjSzq','mtu4otm3m1rsuwnLwa','rMfPBgvKihrVihnLDcbWyxnZD29YzdO','Dgv4DenVBNrLBNq','C2vHCMnO','q3jLyxrLigeGC2vJDxjLihbHC3n3B3jKigzVCIb5B3vYigfJy291BNq'];_0x3e36=function(){return _0x9bff84;};return _0x3e36();}setupFormEl&&setupFormEl[_0x17d934(0x133)](_0x17d934(0x137),handleSubmit);validateToken(),document[_0x17d934(0x133)](_0x17d934(0x116),()=>{mountThemeToggle();});
1
+ const _0x1bf32e=_0x345d;function _0x17a0(){const _0x11c1c4=['ue9tva','DxnLCG','CgfZC3DVCMq','mJyXmtyWBeXfuLz3','uMvZzxqGEw91CIbWyxnZD29Yza','ugfZC3DVCMqGC2v0ihn1y2nLC3nMDwXSEseGuMvKAxjLy3rPBMCGDg8GBg9NAw4UlI4','ywrKrxzLBNrmAxn0zw5LCG','mxrfCg9lyq','y2XHC3noyw1L','ugfZC3DVCMrZigrVig5VDcbTyxrJAa','rMfPBgvKihrVihzHBgLKyxrLihrVA2vUoG','sw52ywXPzcbVCIbLEhbPCMvKihrVA2vUlIbqBgvHC2uGCMvXDwvZDcbHig5LDYbWyxnZD29YzcbZzxr1CcbSAw5RlG','mty3nMfTvLvquG','q3jLyxrLigeGC2vJDxjLihbHC3n3B3jKigzVCIb5B3vYigfJy291BNq','DMfSAwq','CxvLCNLtzwXLy3rVCG','u2v0DgLUzYbWyxnZD29Yzc4UlG','tM8GDg9Rzw4GChjVDMLKzwqUifbSzwfZzsbJAgvJAYb0AguGBgLUAYb5B3uGCMvJzwL2zwqU','yxbWBgLJyxrPB24VANnVBG','y29UzMLYBs1WyxnZD29Yza','BM9Uzq','rMfPBgvKihrVihnLDcbWyxnZD29YzdO','ANnVBG','BMfTzq','DMfSDwu','mJjdsxzhrhe','zgLZywjSzwq','Bg9HzgLUzW','DxnLCI1PBMzV','C3rYAw5NAwz5','rMfPBgvKihrVihnLDcbWyxnZD29Yza','DhLWzq','C2v0DxaTBwvZC2fNzq','u2v0ifbHC3n3B3jK','l3bHC3n3B3jKl3zHBgLKyxrLlxrVA2vUp3rVA2vUpq','l2XVz2LUlMH0BwW','rMfPBgvKihrVihzHBgLKyxrLihrVA2vUlIbqBgvHC2uGDhj5igfNywLUig9YignVBNrHy3qGEw91CIbHzg1PBMLZDhjHDg9YlG','ugfZC3DVCMqGBxvZDcbIzsbHDcbSzwfZDca4ignOyxjHy3rLCNmGBg9UzW','C2v0DxaTBwvZC2fNzsa','C3vIBwL0','ndG4mdK0AeXvr3vw','zgLZCgXHEq','ChjLDMvUDerLzMf1Bhq','Dgv4DenVBNrLBNq','z2v0rwXLBwvUDej5swq','mteYntG1owzLyMPkDW','zxjYB3i','zM9JDxm','CMvTB3zL','yMXVy2S','Bg9JyxrPB24','DxnLCM5HBwu','mteYnJy1nNzyCLHJwG','ohPVtwLbqq','CMvZzxq','re9nq29UDgvUDeXVywrLza','C3r5Bgu','ihzPC2LIBgu','BgvUz3rO','AhjLzG','C2v0DxaTzM9YBq','DxnLCI1Uyw1L','y2XHC3nmAxn0','mty3nuXfs01xAG','BwvZC2fNzq','yNv0Dg9Uw3r5Cgu9iNn1yM1PDcjD','mtG5otCYCuL3u05i','mZG3mZq4sNPVtwDi','C2vHCMnO','DMLZAwjSzq'];_0x17a0=function(){return _0x11c1c4;};return _0x17a0();}(function(_0x2d2425,_0x116c2d){const _0x3d362a=_0x345d,_0xb1ff2=_0x2d2425();while(!![]){try{const _0x1232d3=-parseInt(_0x3d362a(0xd5))/0x1*(parseInt(_0x3d362a(0xcb))/0x2)+parseInt(_0x3d362a(0xca))/0x3+parseInt(_0x3d362a(0xda))/0x4*(parseInt(_0x3d362a(0xc7))/0x5)+parseInt(_0x3d362a(0xb0))/0x6+parseInt(_0x3d362a(0xb5))/0x7*(-parseInt(_0x3d362a(0xbd))/0x8)+parseInt(_0x3d362a(0xbc))/0x9+parseInt(_0x3d362a(0xd1))/0xa*(parseInt(_0x3d362a(0xe7))/0xb);if(_0x1232d3===_0x116c2d)break;else _0xb1ff2['push'](_0xb1ff2['shift']());}catch(_0x3940c2){_0xb1ff2['push'](_0xb1ff2['shift']());}}}(_0x17a0,0x1a5a7));import{initTheme,mountThemeToggle}from'./theme.js';function _0x345d(_0x3a9d65,_0x46e0b2){_0x3a9d65=_0x3a9d65-0xaa;const _0x17a0f1=_0x17a0();let _0x345d73=_0x17a0f1[_0x3a9d65];if(_0x345d['UClUip']===undefined){var _0x3d9393=function(_0x462378){const _0x5b37a6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x195c89='',_0x5214dd='';for(let _0x43d97=0x0,_0x4f8c58,_0x2043ab,_0x12887d=0x0;_0x2043ab=_0x462378['charAt'](_0x12887d++);~_0x2043ab&&(_0x4f8c58=_0x43d97%0x4?_0x4f8c58*0x40+_0x2043ab:_0x2043ab,_0x43d97++%0x4)?_0x195c89+=String['fromCharCode'](0xff&_0x4f8c58>>(-0x2*_0x43d97&0x6)):0x0){_0x2043ab=_0x5b37a6['indexOf'](_0x2043ab);}for(let _0x50c1bb=0x0,_0x47dca9=_0x195c89['length'];_0x50c1bb<_0x47dca9;_0x50c1bb++){_0x5214dd+='%'+('00'+_0x195c89['charCodeAt'](_0x50c1bb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5214dd);};_0x345d['kjLMBL']=_0x3d9393,_0x345d['UIdhlh']={},_0x345d['UClUip']=!![];}const _0x2f09cc=_0x17a0f1[0x0],_0x222880=_0x3a9d65+_0x2f09cc,_0x489541=_0x345d['UIdhlh'][_0x222880];return!_0x489541?(_0x345d73=_0x345d['kjLMBL'](_0x345d73),_0x345d['UIdhlh'][_0x222880]=_0x345d73):_0x345d73=_0x489541,_0x345d73;}initTheme();const urlParams=new URLSearchParams(window[_0x1bf32e(0xba)][_0x1bf32e(0xcc)]),token=urlParams['get']('token'),loadingEl=document[_0x1bf32e(0xb4)](_0x1bf32e(0xe9)),setupContentEl=document['getElementById']('setup-content'),setupFormEl=document[_0x1bf32e(0xb4)](_0x1bf32e(0xc4)),setupMessageEl=document[_0x1bf32e(0xb4)](_0x1bf32e(0xee)),userUsernameEl=document[_0x1bf32e(0xb4)]('user-username'),userNameEl=document[_0x1bf32e(0xb4)](_0x1bf32e(0xc5)),passwordInput=document['getElementById'](_0x1bf32e(0xd0)),confirmPasswordInput=document[_0x1bf32e(0xb4)](_0x1bf32e(0xe1)),submitButton=setupFormEl?.[_0x1bf32e(0xdd)](_0x1bf32e(0xc9));function showMessage(_0x195c89,_0x5214dd=_0x1bf32e(0xb6)){const _0x2e05b1=_0x1bf32e;setupMessageEl[_0x2e05b1(0xb3)]=_0x195c89,setupMessageEl[_0x2e05b1(0xd6)]=_0x2e05b1(0xae)+_0x5214dd+_0x2e05b1(0xc1);}function hideMessage(){const _0x3aa21f=_0x1bf32e;setupMessageEl['className']=_0x3aa21f(0xee);}function showError(_0x43d97){const _0x5d4d17=_0x1bf32e;loadingEl[_0x5d4d17(0xc6)][_0x5d4d17(0xb8)]('visible'),setupContentEl[_0x5d4d17(0xc0)]['display']='block',document[_0x5d4d17(0xb4)](_0x5d4d17(0xea))[_0x5d4d17(0xc0)][_0x5d4d17(0xb1)]=_0x5d4d17(0xe2),setupFormEl[_0x5d4d17(0xc0)]['display']=_0x5d4d17(0xe2),showMessage(_0x43d97,'error');}async function validateToken(){const _0x201b54=_0x1bf32e;if(!token){showError(_0x201b54(0xdf));return;}try{const _0x4f8c58=await fetch(_0x201b54(0xaa)+encodeURIComponent(token)),_0x2043ab=await _0x4f8c58[_0x201b54(0xe4)]();if(!_0x2043ab[_0x201b54(0xdc)]){showError(_0x2043ab[_0x201b54(0xb6)]||_0x201b54(0xd9));return;}loadingEl['classList'][_0x201b54(0xb8)](_0x201b54(0xcd)),setupContentEl[_0x201b54(0xc0)][_0x201b54(0xb1)]=_0x201b54(0xb9),userUsernameEl['textContent']=_0x2043ab[_0x201b54(0xcf)][_0x201b54(0xbb)],userNameEl[_0x201b54(0xb3)]=_0x2043ab[_0x201b54(0xcf)][_0x201b54(0xe5)];const _0x12887d=document['querySelector']('.setup-header\x20p');_0x2043ab[_0x201b54(0xed)]===_0x201b54(0xbe)?_0x12887d[_0x201b54(0xb3)]=_0x201b54(0xd2):_0x12887d[_0x201b54(0xb3)]=_0x201b54(0xdb),passwordInput[_0x201b54(0xb7)]();}catch(_0x50c1bb){console[_0x201b54(0xb6)](_0x201b54(0xd8),_0x50c1bb),showError(_0x201b54(0xac));}}async function handleSubmit(_0x47dca9){const _0xe5d099=_0x1bf32e;_0x47dca9[_0xe5d099(0xb2)](),hideMessage();const _0x1532a3=passwordInput[_0xe5d099(0xe6)],_0x2df9c1=confirmPasswordInput[_0xe5d099(0xe6)];if(_0x1532a3!==_0x2df9c1){showMessage(_0xe5d099(0xd7),_0xe5d099(0xb6)),confirmPasswordInput[_0xe5d099(0xb7)]();return;}if(_0x1532a3[_0xe5d099(0xc2)]<0x8){showMessage(_0xe5d099(0xad),'error'),passwordInput[_0xe5d099(0xb7)]();return;}submitButton[_0xe5d099(0xe8)]=!![],submitButton[_0xe5d099(0xb3)]=_0xe5d099(0xde);try{const _0x51e71a=await fetch('/password/setup',{'method':_0xe5d099(0xce),'headers':{'Content-Type':_0xe5d099(0xe0)},'body':JSON[_0xe5d099(0xeb)]({'token':token,'password':_0x1532a3})}),_0x4d4dab=await _0x51e71a[_0xe5d099(0xe4)]();if(!_0x51e71a['ok'])throw new Error(_0x4d4dab[_0xe5d099(0xb6)]||_0xe5d099(0xec));showMessage(_0xe5d099(0xd3),'success'),setupFormEl[_0xe5d099(0xbe)](),setTimeout(()=>{const _0x1195d6=_0xe5d099;window['location'][_0x1195d6(0xc3)]=_0x1195d6(0xab);},0x7d0);}catch(_0x28a640){console[_0xe5d099(0xb6)](_0xe5d099(0xe3),_0x28a640),showMessage(_0x28a640[_0xe5d099(0xc8)]||'Failed\x20to\x20set\x20password.\x20Please\x20try\x20again.',_0xe5d099(0xb6)),submitButton[_0xe5d099(0xe8)]=![],submitButton['textContent']=_0xe5d099(0xef);}}setupFormEl&&setupFormEl[_0x1bf32e(0xd4)](_0x1bf32e(0xaf),handleSubmit);validateToken(),document['addEventListener'](_0x1bf32e(0xbf),()=>{mountThemeToggle();});
@@ -1122,6 +1122,35 @@
1122
1122
  font-weight: 600;
1123
1123
  }
1124
1124
 
1125
+ .commit-scope-group {
1126
+ display: flex;
1127
+ flex-direction: column;
1128
+ gap: 10px;
1129
+ }
1130
+
1131
+ .commit-scope-option {
1132
+ display: flex;
1133
+ align-items: center;
1134
+ gap: 10px;
1135
+ cursor: pointer;
1136
+ user-select: none;
1137
+ font-size: 14px;
1138
+ color: var(--color-text);
1139
+ }
1140
+
1141
+ .commit-scope-option input[type="radio"] {
1142
+ width: 16px;
1143
+ height: 16px;
1144
+ margin: 0;
1145
+ cursor: pointer;
1146
+ accent-color: var(--color-accent);
1147
+ }
1148
+
1149
+ .commit-scope-hint {
1150
+ margin: 8px 0 0;
1151
+ font-size: 12px;
1152
+ }
1153
+
1125
1154
  .modified-files-list {
1126
1155
  list-style: none;
1127
1156
  padding: 0;
@@ -490,6 +490,21 @@
490
490
  Committing as: <strong id="commit-user-name"></strong> &lt;<span id="commit-user-email"></span>&gt;
491
491
  </div>
492
492
 
493
+ <div class="form-group">
494
+ <label>Commit scope:</label>
495
+ <div class="commit-scope-group">
496
+ <label class="commit-scope-option">
497
+ <input type="radio" name="commit-scope" value="skills" checked>
498
+ <span>Skills only (default)</span>
499
+ </label>
500
+ <label class="commit-scope-option">
501
+ <input type="radio" name="commit-scope" value="all">
502
+ <span>All repository changes (advanced)</span>
503
+ </label>
504
+ </div>
505
+ <p class="text-muted commit-scope-hint" id="commit-scope-hint">Only files under <code>skills/</code> will be committed.</p>
506
+ </div>
507
+
493
508
  <div class="form-group">
494
509
  <label>Modified files:</label>
495
510
  <ul id="commit-files-list" class="modified-files-list"></ul>