@crewx/sdk 0.9.0-rc.7 → 0.9.0-rc.71

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/README.md +1 -1
  2. package/dist/activity-log/builder.d.ts +55 -6
  3. package/dist/config/canonicalize-agent-options.d.ts +17 -0
  4. package/dist/config/global-settings.d.ts +33 -0
  5. package/dist/config/migrate-grok-mode.d.ts +6 -0
  6. package/dist/config/model-compat.d.ts +31 -0
  7. package/dist/config/models.generated.d.ts +33 -0
  8. package/dist/config/models.remote.d.ts +1 -0
  9. package/dist/config/overdrive.d.ts +7 -0
  10. package/dist/config/pricing.d.ts +8 -5
  11. package/dist/config/pricing.generated.d.ts +4 -0
  12. package/dist/config/pricing.types.d.ts +4 -10
  13. package/dist/config/timeout.config.d.ts +3 -0
  14. package/dist/config/wi-boards.d.ts +19 -0
  15. package/dist/context-budget/index.d.ts +105 -0
  16. package/dist/conversation/index.d.ts +1 -1
  17. package/dist/conversation/to-template-messages.d.ts +7 -0
  18. package/dist/conversation/types.d.ts +1 -0
  19. package/dist/desktop/command-runner.d.ts +4 -0
  20. package/dist/desktop/default-adapters.d.ts +4 -0
  21. package/dist/desktop/global-install.d.ts +19 -0
  22. package/dist/desktop/index.d.ts +2 -0
  23. package/dist/desktop/index.js +3 -0
  24. package/dist/desktop/install.d.ts +5 -0
  25. package/dist/desktop/lnk.d.ts +22 -0
  26. package/dist/desktop/manifest.d.ts +21 -0
  27. package/dist/desktop/types.d.ts +67 -0
  28. package/dist/desktop/version.d.ts +1 -0
  29. package/dist/desktop/windows-paths.d.ts +21 -0
  30. package/dist/desktop/wrapper.d.ts +18 -0
  31. package/dist/esm/desktop/index.js +3 -0
  32. package/dist/esm/index.js +271 -102
  33. package/dist/esm/plugins/index.js +166 -75
  34. package/dist/esm/publish/index.js +1 -0
  35. package/dist/esm/repository/index.js +184 -78
  36. package/dist/esm/testing/index.js +1 -1
  37. package/dist/events/types.d.ts +4 -0
  38. package/dist/facade/Crewx.d.ts +30 -0
  39. package/dist/index.browser.d.ts +7 -1
  40. package/dist/index.browser.js +6 -2
  41. package/dist/index.d.ts +36 -8
  42. package/dist/index.js +271 -102
  43. package/dist/internal/windows-spawn.d.ts +10 -0
  44. package/dist/local-server/base-url.d.ts +18 -0
  45. package/dist/local-server/index.d.ts +8 -0
  46. package/dist/local-server/opencode.d.ts +8 -0
  47. package/dist/local-server/probe.d.ts +3 -0
  48. package/dist/local-server/runtime.d.ts +26 -0
  49. package/dist/local-server/types.d.ts +43 -0
  50. package/dist/migrations/0008_careful_black_bird.sql +17 -0
  51. package/dist/migrations/0009_hot_dark_phoenix.sql +1 -0
  52. package/dist/migrations/0010_analyze_stats.sql +6 -0
  53. package/dist/migrations/0011_far_black_tarantula.sql +1 -0
  54. package/dist/migrations/0012_blue_turbo.sql +23 -0
  55. package/dist/migrations/0013_hesitant_adam_destine.sql +15 -0
  56. package/dist/migrations/0014_organic_mongu.sql +73 -0
  57. package/dist/migrations/0015_panoramic_gorilla_man.sql +71 -0
  58. package/dist/migrations/0016_fuzzy_hemingway.sql +14 -0
  59. package/dist/migrations/0017_project_stage_sdk_migration.sql +29 -0
  60. package/dist/migrations/meta/0008_snapshot.json +1327 -0
  61. package/dist/migrations/meta/0009_snapshot.json +1335 -0
  62. package/dist/migrations/meta/0010_snapshot.json +1335 -0
  63. package/dist/migrations/meta/0011_snapshot.json +1342 -0
  64. package/dist/migrations/meta/0012_snapshot.json +1494 -0
  65. package/dist/migrations/meta/0013_snapshot.json +1592 -0
  66. package/dist/migrations/meta/0014_snapshot.json +1975 -0
  67. package/dist/migrations/meta/0015_snapshot.json +2315 -0
  68. package/dist/migrations/meta/0016_snapshot.json +2419 -0
  69. package/dist/migrations/meta/0017_snapshot.json +2419 -0
  70. package/dist/migrations/meta/_journal.json +71 -1
  71. package/dist/paths.d.ts +1 -0
  72. package/dist/plugin/types.d.ts +1 -0
  73. package/dist/plugins/index.js +166 -75
  74. package/dist/provider/acp/connection.d.ts +4 -0
  75. package/dist/provider/acp/meta.d.ts +11 -0
  76. package/dist/provider/bridge.d.ts +16 -1
  77. package/dist/provider/classify-task-error.d.ts +2 -0
  78. package/dist/provider/cli/adapter.types.d.ts +6 -0
  79. package/dist/provider/cli/adapters/cli-knob.util.d.ts +8 -0
  80. package/dist/provider/cli/adapters/grok.d.ts +2 -0
  81. package/dist/provider/cli/adapters/index.d.ts +1 -0
  82. package/dist/provider/cli/index.d.ts +1 -1
  83. package/dist/provider/cli/meta.d.ts +5 -0
  84. package/dist/provider/errors.d.ts +1 -0
  85. package/dist/provider/idle-watchdog.d.ts +19 -0
  86. package/dist/provider/models.d.ts +17 -12
  87. package/dist/provider/order.d.ts +1 -1
  88. package/dist/provider/parse-usage.d.ts +6 -0
  89. package/dist/provider/provider-selection.d.ts +8 -0
  90. package/dist/provider/redact-technical-message.d.ts +1 -0
  91. package/dist/provider/task-error.types.d.ts +16 -0
  92. package/dist/publish/auth-boundary.d.ts +22 -0
  93. package/dist/publish/auth-json.d.ts +11 -0
  94. package/dist/publish/constants.d.ts +6 -0
  95. package/dist/publish/index.d.ts +30 -0
  96. package/dist/publish/index.js +1 -0
  97. package/dist/publish/manifest.d.ts +17 -0
  98. package/dist/publish/marketplace-api.constants.d.ts +1 -0
  99. package/dist/publish/pack.d.ts +2 -0
  100. package/dist/publish/scan.d.ts +9 -0
  101. package/dist/publish/secrets.d.ts +6 -0
  102. package/dist/publish/upload.d.ts +18 -0
  103. package/dist/repository/agent-suggestion.repository.d.ts +34 -0
  104. package/dist/repository/db.d.ts +8 -0
  105. package/dist/repository/index.d.ts +16 -3
  106. package/dist/repository/index.js +184 -78
  107. package/dist/repository/notification.repository.d.ts +58 -0
  108. package/dist/repository/project.repository.d.ts +90 -0
  109. package/dist/repository/task-log-migration.d.ts +74 -0
  110. package/dist/repository/task-log.repository.d.ts +44 -0
  111. package/dist/repository/task.repository.d.ts +114 -0
  112. package/dist/repository/thread.repository.d.ts +5 -2
  113. package/dist/repository/usage-report.repository.d.ts +27 -0
  114. package/dist/schema/agent-suggestions.d.ts +199 -0
  115. package/dist/schema/index.d.ts +7 -0
  116. package/dist/schema/notifications.d.ts +303 -0
  117. package/dist/schema/projects.d.ts +610 -0
  118. package/dist/schema/task-log-events.d.ts +119 -0
  119. package/dist/schema/tasks.d.ts +53 -0
  120. package/dist/schema/ui-action-receipts.d.ts +303 -0
  121. package/dist/schema/ui-instances.d.ts +267 -0
  122. package/dist/schema/usage-reports.d.ts +252 -0
  123. package/dist/testing/index.js +1 -1
  124. package/dist/types/index.d.ts +445 -3
  125. package/dist/ui-card/index.d.ts +2 -0
  126. package/dist/ui-card/legacy-card-parser.d.ts +11 -0
  127. package/dist/ui-instance/definition.d.ts +6 -0
  128. package/dist/ui-instance/errors.d.ts +17 -0
  129. package/dist/ui-instance/index.d.ts +6 -0
  130. package/dist/ui-instance/json.d.ts +5 -0
  131. package/dist/ui-instance/runtime.d.ts +13 -0
  132. package/dist/ui-instance/store.d.ts +65 -0
  133. package/dist/ui-instance/types.d.ts +200 -0
  134. package/dist/utils/crewx-home.d.ts +1 -0
  135. package/dist/utils/id.d.ts +1 -1
  136. package/dist/utils/timestamp.d.ts +1 -0
  137. package/dist/wi/create.d.ts +48 -0
  138. package/dist/wi/select.d.ts +20 -0
  139. package/package.json +18 -2
  140. package/templates/agents/default.yaml +175 -117
  141. package/templates/documents/crewx-manual.md +138 -138
  142. package/templates/workflows/wi-default-flow.yaml +65 -0
  143. package/templates/workflows/wi-plan-flow.yaml +140 -0
@@ -0,0 +1 @@
1
+ import*as E from'path';import {join}from'path';import*as g from'fs';import {existsSync,readFileSync}from'fs';import*as W from'crypto';import*as G from'js-yaml';import*as N from'os';import*as Q from'tar';import {gunzipSync,gzipSync}from'zlib';function ce(e){let t=n=>n.replace(/[.+^${}()|[\]\\]/g,"\\$&"),s=e.split("/").map(n=>n==="**"?".*":n.split("*").map(t).join("[^/]*"));return new RegExp(`^${s.join("\\/")}$`)}function A(e,t){try{return ce(t).test(e)}catch{return false}}function v(e,...t){let r=e.split("/");if(r.length<t.length)return false;let s=r.length-t.length;return t.every((n,i)=>A(r[s+i],n))}function ue(e,t){return e.split("/").some(r=>A(r,t))}var z=[{label:".env*",test:e=>A(e,".env*")},{label:".git/",test:(e,t,r)=>r&&e===".git"},{label:"memory/",test:(e,t,r)=>r&&e==="memory"},{label:"*.key",test:e=>A(e,"*.key")},{label:"*.pem",test:e=>A(e,"*.pem")},{label:"auth.json",test:e=>e==="auth.json"},{label:"node_modules/",test:(e,t,r)=>r&&e==="node_modules"},{label:"conversations/",test:(e,t,r)=>r&&e==="conversations"},{label:".crewx/threads/",test:(e,t,r)=>r&&v(t,".crewx","threads")},{label:".crewx/crewx.db",test:(e,t,r)=>!r&&v(t,".crewx","crewx.db")},{label:".crewx/*.log",test:(e,t,r)=>!r&&v(t,".crewx","*.log")},{label:".crewx/publish/",test:(e,t,r)=>r&&v(t,".crewx","publish")},{label:".crewx/",test:(e,t)=>ue(t,".crewx")}];function R(e,t,r){for(let s of z)if(s.test(e,t,r))return s.label;return null}function K(e){let t=[],r=[];function s(n,i,a){let d;try{d=g.readdirSync(n,{withFileTypes:!0});}catch{return}d.sort((c,u)=>c.name.localeCompare(u.name));for(let c of d){let u=i?`${i}/${c.name}`:c.name,l=E.join(n,c.name);if(c.isSymbolicLink()){let p;try{p=g.statSync(l);}catch{continue}if(p.isDirectory()){r.push({path:u,rule:a??"symlink-dir"});continue}let C=a??R(c.name,u,false);C?r.push({path:u,rule:C}):t.push(u);continue}if(c.isDirectory()){let p=a??R(c.name,u,true);s(l,u,p);continue}if(c.isFile()){let p=a??R(c.name,u,false);p?r.push({path:u,rule:p}):t.push(u);}}}return s(e,"",null),t.sort(),r.sort((n,i)=>n.path<i.path?-1:n.path>i.path?1:0),{included:t,excluded:r}}var le=[{rule:"token-prefix",regex:/\b(?:sk-|ghp_|xoxb-)[A-Za-z0-9_-]{10,}/},{rule:"private-key",regex:/-----BEGIN [A-Z ]*PRIVATE KEY-----/},{rule:"aws-access-key",regex:/\bAKIA[0-9A-Z]{16}\b/}];function pe(e){return e.includes(0)}function V(e,t){let r=[];for(let s of t){let n=E.join(e,s),i;try{i=g.readFileSync(n);}catch{continue}if(pe(i))continue;i.toString("utf8").split(/\r\n|\r|\n/).forEach((d,c)=>{for(let{rule:u,regex:l}of le)l.test(d)&&r.push({path:s,line:c+1,rule:u});});}return r}var X=/^[a-z0-9-]+$/,fe=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,de=/^[A-Za-z_][A-Za-z0-9_]*$/;function me(e){let t=E.join(e,"crewx.yaml");if(!g.existsSync(t))return {};let r;try{r=G.load(g.readFileSync(t,"utf8"));}catch{return {}}if(!r||typeof r!="object")return {};let s=r.metadata;if(!s||typeof s!="object")return {};let n=s;return {name:typeof n.name=="string"?n.name:void 0,version:typeof n.version=="string"?n.version:void 0,description:typeof n.description=="string"?n.description:void 0,requiredEnv:n.requiredEnv,crewxMinVersion:typeof n.crewxMinVersion=="string"?n.crewxMinVersion:void 0}}function he(e){return W.createHash("sha256").update(new Uint8Array(g.readFileSync(e))).digest("hex")}function Z(e,t,r={}){let s=me(e),n=s.name??E.basename(e);if(!X.test(n))throw new Error(`publish: invalid name "${n}" \u2014 must match ${X} (lowercase letters, numbers, hyphen only)`);let i=r.version??s.version;if(!i)throw new Error("publish: version is required \u2014 set crewx.yaml metadata.version or pass opts.version");if(!fe.test(i))throw new Error(`publish: invalid version "${i}" \u2014 must be semver (e.g. 1.0.0)`);let a=Array.isArray(s.requiredEnv)?s.requiredEnv:[],d=[];for(let l of a){if(typeof l!="string"||!de.test(l))throw new Error(`publish: requiredEnv must contain names only (no values), got "${String(l)}"`);d.push(l);}let c=t.map(l=>({path:l,sha256:he(E.join(e,l))})).sort((l,p)=>l.path<p.path?-1:l.path>p.path?1:0),u={name:n,version:i,type:"template",description:s.description??"",files:c,requiredEnv:d};return s.crewxMinVersion&&(u.crewxMinVersion=s.crewxMinVersion),u}async function ee(e,t){let r=E.join(e,".crewx","publish");g.mkdirSync(r,{recursive:true});let s=E.join(r,`${t.name}-${t.version}.tgz`),n=g.mkdtempSync(E.join(N.tmpdir(),"crewx-publish-"));try{g.writeFileSync(E.join(n,"manifest.json"),JSON.stringify(t,null,2));for(let i of t.files){let a=E.join(n,i.path);g.mkdirSync(E.dirname(a),{recursive:!0}),g.copyFileSync(E.join(e,i.path),a);}await Q.create({gzip:!0,file:s,cwd:n,portable:!0,noMtime:!0},["manifest.json",...t.files.map(i=>i.path)]);}finally{g.rmSync(n,{recursive:true,force:true});}return s}var _="/api/v1";var Ee=201,be=409,I=401;function we(){return process.env.WI013_FAKE_UPLOAD==="1"}function Ae(e){let t=gunzipSync(new Uint8Array(e)),r=gzipSync(new Uint8Array(t),{level:1});if(Buffer.compare(new Uint8Array(r),new Uint8Array(e))===0)throw new Error("publish: [E_MALFORMED] Re-gzipped upload bytes are identical to the original \u2014 tamper is a no-op");return r}function _e(e){return e.replace(/\/+$/,"")}async function U(e){try{return await e.json()}catch{return null}}function b(e){let t=e?.message;return typeof t=="string"?t:void 0}function te(e,t,r){let s=e;if(!s||s.success!==true||s.data===void 0)throw new Error(`publish: [E_MALFORMED] ${t} response envelope is malformed (expected { success: true, data }) \u2014 HTTP ${r}`);return s.data}async function Te(e){let t=_e(e.baseUrl),r=e.accessPolicy??"private",s=e.manifest.name,n;try{n=await fetch(`${t}${_}/publisher/items`,{method:"POST",headers:{Authorization:`Bearer ${e.accessToken}`,"Content-Type":"application/json"},body:JSON.stringify({slug:s,displayName:s,description:e.manifest.description,type:"template",version:e.manifest.version,accessPolicy:r})});}catch(o){throw new Error(`publish: [E_NETWORK] Submit request failed (network) \u2014 ${o instanceof Error?o.message:String(o)}`)}let i;if(n.status===Ee)i="created";else if(n.status===be)i="existing";else {if(n.status===I)throw new Error("publish: [E_AUTH_EXPIRED] Authentication is expired or missing \u2014 please log in again (HTTP 401)");{let o=await U(n);throw new Error(`publish: [E_HTTP] Submit request failed \u2014 HTTP ${n.status}${b(o)?` ${b(o)}`:""}`)}}let a="not-needed",d=null;if(i==="existing"){let o;try{o=await fetch(`${t}${_}/publisher/items`,{method:"GET",headers:{Authorization:`Bearer ${e.accessToken}`}});}catch(f){throw new Error(`publish: [E_NETWORK] Publisher items request failed (network) \u2014 ${f instanceof Error?f.message:String(f)}`)}let O=await U(o);if(o.status!==200)throw new Error(`publish: [E_HTTP] Publisher items request failed \u2014 HTTP ${o.status}${b(O)?` ${b(O)}`:""}`);let D=te(O,"publisher items",o.status)?.items;if(!Array.isArray(D))throw new Error(`publish: [E_MALFORMED] Publisher items response is malformed (expected data.items[]) \u2014 HTTP ${o.status}`);let $=D.find(f=>!f||typeof f!="object"?false:f.slug===s);if(!$||typeof $.version!="string")throw new Error(`publish: [E_MALFORMED] Publisher items response does not contain slug "${s}" \u2014 HTTP ${o.status}`);if(d=$.version,d!==e.manifest.version){let f;try{f=await fetch(`${t}${_}/publisher/items/${encodeURIComponent(s)}`,{method:"PUT",headers:{Authorization:`Bearer ${e.accessToken}`,"Content-Type":"application/json"},body:JSON.stringify({version:e.manifest.version})});}catch(x){throw new Error(`publish: [E_NETWORK] Version update request failed (network) \u2014 ${x instanceof Error?x.message:String(x)}`)}if(!f.ok){let x=await U(f),w=b(x);throw f.status===I?new Error(`publish: [E_AUTH_EXPIRED] Authentication is expired or missing \u2014 please log in again (HTTP ${f.status})${w?` ${w}`:""}`):f.status===403?new Error(`publish: [E_FORBIDDEN] Version update is forbidden; only the item owner can update an existing item (HTTP ${f.status})${w?` ${w}`:""}`):new Error(`publish: [E_HTTP] Version update failed \u2014 HTTP ${f.status}${w?` ${w}`:""}`)}a="applied";}}let c=g.readFileSync(e.tgzPath),u=we()?Ae(c):c,l=new FormData;l.set("archive",new Blob([new Uint8Array(u)],{type:"application/gzip"}),`${s}-${e.manifest.version}.tgz`);let p;try{p=await fetch(`${t}${_}/publisher/items/${encodeURIComponent(s)}/upload`,{method:"POST",headers:{Authorization:`Bearer ${e.accessToken}`},body:l});}catch(o){throw new Error(`publish: [E_NETWORK] Upload request failed (network) \u2014 ${o instanceof Error?o.message:String(o)}`)}if(p.status===I)throw new Error("publish: [E_AUTH_EXPIRED] Authentication is expired or missing \u2014 please log in again (HTTP 401)");if(!p.ok){let o=await U(p);throw new Error(`publish: [E_HTTP] Upload request failed \u2014 HTTP ${p.status}${b(o)?` ${b(o)}`:""}`)}let C=await U(p),B=te(C,"upload",p.status);return {slug:s,version:e.manifest.version,artifactChecksum:B.artifactChecksum,artifactSizeBytes:B.artifactSizeBytes,submitOutcome:i,versionUpdate:a,serverVersionBefore:d}}function se(){if(process.env.CREWX_HOME)try{return g.realpathSync(process.env.CREWX_HOME)}catch{return E.join(N.homedir(),".crewx")}return process.platform!=="win32"&&process.env.XDG_CONFIG_HOME?E.join(process.env.XDG_CONFIG_HOME,"crewx"):E.join(N.homedir(),".crewx")}var y=class extends Error{code;constructor(t,r){super(r),this.name="AccountAuthBoundaryError",this.code=t;}};function H(e=process.env){let t=e.CREWX_ACCOUNT_ISSUER?.trim(),r=e.CREWX_ACCOUNT_ANON_KEY?.trim();if(!t&&!r)throw new y("ACCOUNT_USER_PAIR_MISSING","CrewX user-realm issuer and anon/publishable key pair are not configured");if(!t)throw new y("ACCOUNT_USER_ISSUER_MISSING","CrewX user-realm issuer is not configured");if(!r)throw new y("ACCOUNT_USER_ANON_KEY_MISSING","CrewX user-realm anon/publishable key is not configured");return {issuer:t,anonKey:r}}function T(){throw new y("ACCOUNT_ACCESS_TOKEN_INVALID","Account access token could not be verified")}function ie(e){try{return JSON.parse(Buffer.from(e,"base64url").toString("utf8"))}catch{return T()}}function oe(e){if(typeof e!="string")return T();let t=e.split(".");if(t.length!==3||t.some(i=>i.length===0))return T();let r=ie(t[0]),s=ie(t[1]);if(!r||typeof r!="object"||!s||typeof s!="object")return T();let n=s;return typeof n.iss!="string"||n.iss.length===0||typeof n.sub!="string"||n.sub.length===0?T():{issuer:n.iss,sub:n.sub}}function ae(e,t,r){let s=oe(e);if(s.issuer!==t.issuer)throw new y("ACCOUNT_TOKEN_ISSUER_MISMATCH","Account access token does not match the configured user realm");if(r!==void 0&&s.sub!==r)throw new y("ACCOUNT_TOKEN_SUB_MISMATCH","Account access token subject does not match the expected identity");return s}function F(e,t){if(e.issuer!==t.issuer)throw new y("ACCOUNT_AUTH_JSON_ISSUER_MISMATCH","auth.json does not match the configured user realm");let r=ae(e.access_token,t);if(r.sub!==e.sub)throw new y("ACCOUNT_AUTH_JSON_SUB_MISMATCH","auth.json subject does not match the access token identity");return r}function Ue(e){if(!e||typeof e!="object")return false;let t=e;return t.version===1&&typeof t.sub=="string"&&typeof t.email=="string"&&typeof t.access_token=="string"&&typeof t.refresh_token=="string"&&typeof t.expires_at=="number"&&typeof t.issuer=="string"&&typeof t.updated_at=="string"}function Ce(){let e=join(se(),"auth.json");if(!existsSync(e))throw new Error(`Login required \u2014 ${e} was not found (please log in first)`);let t;try{t=readFileSync(e,"utf8");}catch(n){throw new Error(`Could not read auth.json (${e}): ${n instanceof Error?n.message:String(n)}`)}let r;try{r=JSON.parse(t);}catch(n){throw new Error(`Failed to parse auth.json (${e}): ${n instanceof Error?n.message:String(n)}`)}if(!Ue(r))throw new Error(`auth.json is malformed (${e}) \u2014 please log in again`);let s=H();return F(r,s),r}async function ve(e,t={}){let r=E.resolve(e),{included:s,excluded:n}=K(r),i=Z(r,s,{version:t.version}),a=V(r,s);return {manifest:i,included:s,excluded:n,secretFindings:a}}async function ft(e,t={}){let r=await ve(e,t);if(r.secretFindings.length>0){let i=r.secretFindings.map(a=>`${a.path}:${a.line} (${a.rule})`).join(", ");throw new Error(`publish: aborted \u2014 secret findings must be resolved before packing: ${i}`)}let s=E.resolve(e),n=await ee(s,r.manifest);return {manifest:r.manifest,tgzPath:n}}export{y as AccountAuthBoundaryError,z as EXCLUDE_RULES,_ as MARKETPLACE_API_PREFIX,F as assertAuthJsonUserRealm,ae as assertUserRealmAccessToken,oe as decodeAccessTokenIdentity,ft as packTemplate,ve as planPublish,Ce as readAuthJson,H as resolveUserAccountConfig,Te as uploadToMarketplace};