vskill 1.2.1 → 1.2.3

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 (66) hide show
  1. package/agents.json +1 -1
  2. package/dist/commands/eval/run.js +5 -0
  3. package/dist/commands/eval/run.js.map +1 -1
  4. package/dist/eval/anthropic-catalog.d.ts +7 -1
  5. package/dist/eval/anthropic-catalog.js +81 -8
  6. package/dist/eval/anthropic-catalog.js.map +1 -1
  7. package/dist/eval/credential-resolver.js +5 -3
  8. package/dist/eval/credential-resolver.js.map +1 -1
  9. package/dist/eval/integration-runner.js +4 -4
  10. package/dist/eval/integration-runner.js.map +1 -1
  11. package/dist/eval/llm.d.ts +2 -0
  12. package/dist/eval/llm.js +39 -8
  13. package/dist/eval/llm.js.map +1 -1
  14. package/dist/eval/model-catalog.d.ts +27 -0
  15. package/dist/eval/model-catalog.js +101 -0
  16. package/dist/eval/model-catalog.js.map +1 -0
  17. package/dist/eval/pricing.d.ts +5 -0
  18. package/dist/eval/pricing.js +16 -2
  19. package/dist/eval/pricing.js.map +1 -1
  20. package/dist/eval/test-case-parser.js +35 -16
  21. package/dist/eval/test-case-parser.js.map +1 -1
  22. package/dist/eval-server/api-routes.d.ts +2 -10
  23. package/dist/eval-server/api-routes.js +2 -83
  24. package/dist/eval-server/api-routes.js.map +1 -1
  25. package/dist/eval-server/model-compare-routes.js +4 -2
  26. package/dist/eval-server/model-compare-routes.js.map +1 -1
  27. package/dist/eval-server/oauth-github-routes.js +7 -2
  28. package/dist/eval-server/oauth-github-routes.js.map +1 -1
  29. package/dist/eval-server/platform-proxy.js +28 -3
  30. package/dist/eval-server/platform-proxy.js.map +1 -1
  31. package/dist/eval-server/skill-create-routes.d.ts +1 -1
  32. package/dist/eval-server/skill-create-routes.js +1 -71
  33. package/dist/eval-server/skill-create-routes.js.map +1 -1
  34. package/dist/eval-server/skill-md-emitter.d.ts +17 -0
  35. package/dist/eval-server/skill-md-emitter.js +70 -0
  36. package/dist/eval-server/skill-md-emitter.js.map +1 -0
  37. package/dist/eval-server/submission-guard.d.ts +26 -0
  38. package/dist/eval-server/submission-guard.js +103 -0
  39. package/dist/eval-server/submission-guard.js.map +1 -0
  40. package/dist/eval-ui/assets/{AdvancedTab-DOgbx7u0.js → AdvancedTab-CSWhj_MZ.js} +1 -1
  41. package/dist/eval-ui/assets/{CreateSkillPage-DXOVLzCp.js → CreateSkillPage-lecFvrLO.js} +1 -1
  42. package/dist/eval-ui/assets/{FindSkillsPalette-D_qkIke-.js → FindSkillsPalette-Dtyd7VrA.js} +2 -2
  43. package/dist/eval-ui/assets/{GeneralTab-AwK9sIkP.js → GeneralTab-Gbc-K6UI.js} +1 -1
  44. package/dist/eval-ui/assets/{PrivacyTab-BtNrxpVV.js → PrivacyTab-BXCIX8cQ.js} +1 -1
  45. package/dist/eval-ui/assets/SearchPaletteCore-CneELTjb.js +14 -0
  46. package/dist/eval-ui/assets/SkillDetailPanel-BMfMN6Wy.js +1 -0
  47. package/dist/eval-ui/assets/{UpdateDropdown-CH05KQXq.js → UpdateDropdown-BlAAI6ah.js} +1 -1
  48. package/dist/eval-ui/assets/{UpdatesTab-DTmo-vVb.js → UpdatesTab-BFGUaUtu.js} +1 -1
  49. package/dist/eval-ui/assets/main-DRhfwCeX.js +86 -0
  50. package/dist/eval-ui/assets/{preferences-DCdw0Kvu.js → preferences-D2BPT0OT.js} +2 -2
  51. package/dist/eval-ui/assets/useDesktopBridge-BKz-gcRg.js +2 -0
  52. package/dist/eval-ui/index.html +2 -2
  53. package/dist/eval-ui/preferences.html +2 -2
  54. package/dist/lib/frontmatter.d.ts +2 -5
  55. package/dist/lib/frontmatter.js +15 -40
  56. package/dist/lib/frontmatter.js.map +1 -1
  57. package/dist/lib/keychain.js +8 -1
  58. package/dist/lib/keychain.js.map +1 -1
  59. package/dist/utils/version.d.ts +5 -10
  60. package/dist/utils/version.js +82 -40
  61. package/dist/utils/version.js.map +1 -1
  62. package/package.json +1 -1
  63. package/dist/eval-ui/assets/SearchPaletteCore-BbJxHT_o.js +0 -14
  64. package/dist/eval-ui/assets/SkillDetailPanel-DMkcBtBv.js +0 -1
  65. package/dist/eval-ui/assets/main-DpG_H4H8.js +0 -87
  66. package/dist/eval-ui/assets/useDesktopBridge-9oZFQsrw.js +0 -2
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CUEYzTVL.js","assets/core-DZjBCfjp.js","assets/event-QtOCMXAv.js"])))=>i.map(i=>d[i]);
2
- import{r as v}from"./globals-hm1COkXX.js";const V="modulepreload",B=function(e){return"/"+e},U={},C=function(a,t,c){let s=Promise.resolve();if(t&&t.length>0){let o=function(d){return Promise.all(d.map(g=>Promise.resolve(g).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));s=o(t.map(d=>{if(d=B(d),d in U)return;U[d]=!0;const g=d.endsWith(".css"),y=g?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${d}"]${y}`))return;const w=document.createElement("link");if(w.rel=g?"stylesheet":V,g||(w.as="script"),w.crossOrigin="",w.href=d,l&&w.setAttribute("nonce",l),document.head.appendChild(w),g)return new Promise((k,S)=>{w.addEventListener("load",k),w.addEventListener("error",()=>S(new Error(`Unable to preload CSS for ${d}`)))})}))}function f(o){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o}return s.then(o=>{for(const i of o||[])i.status==="rejected"&&f(i.reason);return a().catch(f)})};class _ extends Error{constructor(a){super(`${a} is not available in browser mode — install the Skill Studio desktop app.`),this.name="BrowserModeError"}}function $(){return typeof window>"u"?"browser":"__TAURI_INTERNALS__"in window?"desktop":"browser"}const h={version:1,general:{theme:"system",language:"auto",defaultProjectFolder:null,launchAtLogin:!1},updates:{channel:"stable",autoCheck:!0,lastCheckedAt:null,lastKnownVersion:null,skippedVersion:null,snoozedUntil:null},privacy:{telemetryEnabled:!1,crashReportingEnabled:!1},advanced:{logLevel:"info"},studio:{lifecycleDefault:"ask"}},A="vskill:preferences:browser-shadow";function R(e){const a=(e==null?void 0:e.general)??{},t=(e==null?void 0:e.updates)??{},c=(e==null?void 0:e.privacy)??{},s=(e==null?void 0:e.advanced)??{},f=(e==null?void 0:e.studio)??{};return{version:(e==null?void 0:e.version)??h.version,general:{theme:a.theme??h.general.theme,language:a.language??h.general.language,defaultProjectFolder:a.defaultProjectFolder??a.default_project_folder??null,launchAtLogin:a.launchAtLogin??a.launch_at_login??h.general.launchAtLogin},updates:{channel:t.channel??h.updates.channel,autoCheck:t.autoCheck??t.auto_check??h.updates.autoCheck,lastCheckedAt:t.lastCheckedAt??t.last_checked_at??null,lastKnownVersion:t.lastKnownVersion??t.last_known_version??null,skippedVersion:t.skippedVersion??t.skipped_version??null,snoozedUntil:t.snoozedUntil??t.snoozed_until??null},privacy:{telemetryEnabled:c.telemetryEnabled??c.telemetry_enabled??h.privacy.telemetryEnabled,crashReportingEnabled:c.crashReportingEnabled??c.crash_reporting_enabled??h.privacy.crashReportingEnabled},advanced:{logLevel:s.logLevel??s.log_level??h.advanced.logLevel},studio:{lifecycleDefault:f.lifecycleDefault??f.lifecycle_default??h.studio.lifecycleDefault}}}function z(e,a){return{available:e.available===!0,currentVersion:e.currentVersion??a,latestVersion:e.latestVersion??e.version??void 0,releaseNotes:e.releaseNotes??e.notes??void 0,releaseDate:e.releaseDate??e.pub_date??void 0}}function b(e){if(!e||typeof e.login!="string"||e.login.trim()==="")return null;const a=e.login.trim(),t=e.avatar_url??e.avatarUrl??`https://github.com/${encodeURIComponent(a)}.png?size=40`;return{login:a,avatar_url:t,email:e.email??null,cached_at:e.cached_at??null}}async function G(e){var c,s,f;if(typeof window>"u")return;const a=window,t=(c=a.__TAURI_INTERNALS__)==null?void 0:c.invoke;if(t)try{await t("open_external_url",{url:e});return}catch(o){console.warn("open_external_url command failed; falling back to shell open:",o)}try{const o=await fetch("/api/desktop/open-url",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:e})});if(o.ok)return;console.warn(`sidecar open-url failed: HTTP ${o.status}`)}catch(o){console.warn("sidecar open-url failed; falling back to shell open:",o)}try{const o=(f=(s=a.__TAURI__)==null?void 0:s.shell)==null?void 0:f.open;if(typeof o=="function"){await o(e);return}const{open:i}=await C(async()=>{const{open:l}=await import("./index-CUEYzTVL.js");return{open:l}},__vite__mapDeps([0,1]));await i(e);return}catch(o){console.warn("tauri shell open failed; falling back to window.open:",o)}window.open(e,"_blank","noopener,noreferrer")}async function H(e,a){if(typeof window>"u"||!("__TAURI_INTERNALS__"in window))return null;try{return await(await C(()=>import("./event-QtOCMXAv.js"),__vite__mapDeps([2,1]))).listen(e,a)}catch{return null}}function T(){try{const e=localStorage.getItem(A);return e?R(JSON.parse(e)):structuredClone(h)}catch{return structuredClone(h)}}function K(e){try{localStorage.setItem(A,JSON.stringify(e))}catch{}}function M(e,a,t){const c=a.split(".");let s=e;for(let f=0;f<c.length-1;f++){const o=c[f];(typeof s[o]!="object"||s[o]===null)&&(s[o]={}),s=s[o]}s[c[c.length-1]]=t}async function u(e,a){var s;const c=(s=window.__TAURI_INTERNALS__)==null?void 0:s.invoke;if(!c)throw new _(e);return c(e,a)}function te(){const[e]=v.useState(()=>$());return v.useMemo(()=>{const t=e==="desktop",c=async()=>{if(!t)return T();const n=await u("get_settings");return R(n)},s=async(n,r)=>{if(!t){const p=T();M(p,n,r),K(p),window.dispatchEvent(new CustomEvent("preferences-shadow-updated",{detail:{path:n,value:r}}));return}await u("set_setting",{key:n,value:r})},f=async()=>{if(!t){try{localStorage.removeItem(A)}catch{}window.dispatchEvent(new CustomEvent("preferences-shadow-reset"));return}await u("reset_settings")},o=async()=>{if(!t)throw new _("checkForUpdates");const[n,r]=await Promise.all([u("check_for_updates"),y().catch(()=>({version:"unknown",build:"n/a",commit:"n/a",target:"unknown",arch:"unknown"}))]);return z(n,r.version)},i=async n=>{if(!t)throw new _("downloadAndInstallUpdate");const r=n?await H("updater://progress",p=>{const m=p.payload??{},D=m.downloadedBytes??m.bytes??m.chunkBytes??0,N=m.totalBytes??m.total??null;n(D,N)}):null;try{await u("download_and_install_update")}finally{await(r==null?void 0:r())}},l=async()=>{if(!t)throw new _("cancelUpdate");await u("cancel_update")},d=async()=>{if(!t)throw new _("restartApp");await u("restart_app")},g=async n=>{if(!t){n&&(window.location.hash=`#${n}`);return}await u("open_preferences",{tab:n??null})},y=async()=>t?u("get_app_metadata"):{version:"browser",build:"n/a",commit:"n/a",target:navigator.platform||"browser",arch:"n/a"},w=async n=>{if(!t)throw new _("setAutostart");await u("set_autostart",{enabled:n})},k=async()=>{if(!t)throw new _("pickFolder");const n=await u("pick_default_project_folder");return(n==null?void 0:n.path)??null},S=async()=>{if(!t)throw new _("openLogsFolder");await u("open_logs_folder")},I=async()=>{if(!t)throw new _("revealSettingsFile");await u("reveal_settings_file")},L=async n=>{try{await navigator.clipboard.writeText(n)}catch{}},P=async()=>{const n=await fetch("/api/oauth/github/start",{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"});if(!n.ok){const p=await n.text().catch(()=>"");throw new Error(`OAuth start failed: HTTP ${n.status}: ${p.slice(0,200)}`)}const r=await n.json();return{userCode:r.state,verificationUri:r.authUrl,interval:2,expiresIn:Math.max(60,Math.floor((r.expiresAt-Date.now())/1e3))}},F=async()=>{const n=window.__vskillOauthState;if(!n)return{status:"error",message:"no OAuth flow in progress"};try{const r=await fetch(`/api/oauth/github/status?state=${encodeURIComponent(n)}`);if(!r.ok)return{status:"error",message:`HTTP ${r.status}`};const p=await r.json(),m=b(p.user);return p.status==="ready"&&m?{status:"granted",user:m}:p.status==="pending"?{status:"pending"}:p.status==="expired"?{status:"expired"}:p.status==="error"?{status:"error",message:p.error??"unknown"}:{status:"pending"}}catch(r){return{status:"error",message:r instanceof Error?r.message:String(r)}}},O=async()=>{try{const n=await fetch("/api/auth/me");if(!n.ok)return null;const r=await n.json();return r.signedIn?b(r.user):null}catch{return null}},x=async()=>{await fetch("/api/auth/sign-out",{method:"POST"})},j=async()=>{if(!t)throw new _("pickProjectFolder");return await u("pick_default_project_folder")??null},q=async n=>t?u("get_repo_info",{folder:n}):{name:null,branch:null,is_private:null,sync_state:{kind:"no_remote"}},E={cache:null,localSkillCount:0,isFresh:!1,daysRemaining:0};return{mode:e,available:t,getSettings:c,setSetting:s,resetSettings:f,checkForUpdates:o,downloadAndInstallUpdate:i,cancelUpdate:l,restartApp:d,openPreferences:g,getAppMetadata:y,setAutostart:w,pickFolder:k,openLogsFolder:S,revealSettingsFile:I,copyToClipboard:L,startGithubDeviceFlow:P,pollGithubDeviceFlow:F,getSignedInUser:O,signOut:x,pickProjectFolder:j,getRepoInfo:q,quotaGet:async n=>t?await u("quota_get",{projectRoots:n}):{...E},quotaForceSync:async(n,r)=>t?await u("quota_force_sync",{projectRoots:n,fresh:r}):{...E},quotaCanCreateSkill:async n=>t?u("quota_can_create_skill",{projectRoots:n}):{blocked:!1,reason:"browser-mode",snapshot:{...E}},quotaReportCount:async n=>{if(t)try{await u("quota_report_count",{skillCount:n})}catch(r){console.warn("quotaReportCount failed:",r)}},openExternalUrl:async n=>{if(!t){typeof window<"u"&&window.open(n,"_blank","noopener,noreferrer");return}await G(n)},refreshUserIdentity:async()=>{if(!t)return null;const n=await u("refresh_user_identity");return b(n)}}},[e])}function ne(e){const[a,t]=v.useState(null),[c,s]=v.useState(null),[f,o]=v.useState(!0),i=v.useCallback(async()=>{o(!0),s(null);try{const l=await e.getSettings();t(l)}catch(l){s(l instanceof Error?l.message:String(l))}finally{o(!1)}},[e]);return v.useEffect(()=>{let l=!1;return(async()=>{try{const d=await e.getSettings();l||(t(d),o(!1))}catch(d){l||(s(d instanceof Error?d.message:String(d)),o(!1))}})(),()=>{l=!0}},[e]),v.useEffect(()=>{const l=()=>i();return window.addEventListener("preferences-shadow-updated",l),window.addEventListener("preferences-shadow-reset",l),()=>{window.removeEventListener("preferences-shadow-updated",l),window.removeEventListener("preferences-shadow-reset",l)}},[i]),{snapshot:a,error:c,loading:f,refresh:i}}export{C as _,ne as a,H as l,z as n,G as o,te as u};