@ottocode/openclaw-setu 0.1.4 → 0.1.5
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/dist/chunk-0e073jst.mjs +1 -0
- package/dist/chunk-0r9ndr0p.mjs +1 -0
- package/dist/{chunk-jrrt57tv.js → chunk-2pmp70f4.mjs} +5 -6
- package/dist/chunk-3nfjvdhd.mjs +7 -0
- package/dist/chunk-enz73nmb.mjs +2 -0
- package/dist/chunk-fr00qq96.mjs +2 -0
- package/dist/chunk-fzrjrk1b.mjs +1 -0
- package/dist/chunk-gr14hnnm.mjs +4 -0
- package/dist/chunk-k1btvkaq.mjs +2 -0
- package/dist/chunk-kvpwet74.mjs +1 -0
- package/dist/chunk-kyajbpp1.mjs +1 -0
- package/dist/chunk-nj01dc2r.mjs +1 -0
- package/dist/chunk-r76z42nm.mjs +2 -0
- package/dist/{chunk-5kkvddc1.js → chunk-vvb3cx45.mjs} +1 -2
- package/dist/chunk-vw7de3g2.mjs +119 -0
- package/dist/chunk-w1g9nypz.mjs +2 -0
- package/dist/{cli.js → cli.mjs} +6 -7
- package/dist/index.mjs +3 -0
- package/package.json +5 -5
- package/dist/chunk-8pp4as02.js +0 -2
- package/dist/chunk-by6w3tsf.js +0 -3
- package/dist/chunk-e5qz2vx5.js +0 -2
- package/dist/chunk-esz88g73.js +0 -3
- package/dist/chunk-fc5rfx0b.js +0 -3
- package/dist/chunk-g3ma3sec.js +0 -2
- package/dist/chunk-gtxg1zc6.js +0 -2
- package/dist/chunk-h29x1xqe.js +0 -108
- package/dist/chunk-kn2k3qtn.js +0 -3
- package/dist/chunk-m44tyrbv.js +0 -2
- package/dist/chunk-mbth668g.js +0 -2
- package/dist/chunk-rcdyanw7.js +0 -2
- package/dist/chunk-zy3raqnk.js +0 -3
- package/dist/index.js +0 -4
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import*as J from"node:crypto";var V=J&&typeof J==="object"&&"webcrypto"in J?J.webcrypto:J&&typeof J==="object"&&("randomBytes"in J)?J:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function X(q){return q instanceof Uint8Array||ArrayBuffer.isView(q)&&q.constructor.name==="Uint8Array"}function Z(q){if(!Number.isSafeInteger(q)||q<0)throw Error("positive integer expected, got "+q)}function Y(q,...v){if(!X(q))throw Error("Uint8Array expected");if(v.length>0&&!v.includes(q.length))throw Error("Uint8Array expected of length "+v+", got length="+q.length)}function U(q){if(typeof q!=="function"||typeof q.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");Z(q.outputLen),Z(q.blockLen)}function D(q,v=!0){if(q.destroyed)throw Error("Hash instance has been destroyed");if(v&&q.finished)throw Error("Hash#digest() has already been called")}function _(q,v){Y(q);let z=v.outputLen;if(q.length<z)throw Error("digestInto() expects output buffer of length at least "+z)}function S(q){return new Uint32Array(q.buffer,q.byteOffset,Math.floor(q.byteLength/4))}function f(...q){for(let v=0;v<q.length;v++)q[v].fill(0)}function u(q){return new DataView(q.buffer,q.byteOffset,q.byteLength)}function x(q,v){return q<<32-v|q>>>v}var O=(()=>new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68)();function j(q){return q<<24&4278190080|q<<8&16711680|q>>>8&65280|q>>>24&255}function F(q){for(let v=0;v<q.length;v++)q[v]=j(q[v]);return q}var H=O?(q)=>q:F;function R(q){if(typeof q!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(q))}function K(q){if(typeof q==="string")q=R(q);return Y(q),q}function g(...q){let v=0;for(let G=0;G<q.length;G++){let P=q[G];Y(P),v+=P.length}let z=new Uint8Array(v);for(let G=0,P=0;G<q.length;G++){let Q=q[G];z.set(Q,P),P+=Q.length}return z}class k{}function m(q){let v=(G)=>q().update(K(G)).digest(),z=q();return v.outputLen=z.outputLen,v.blockLen=z.blockLen,v.create=()=>q(),v}function A(q=32){if(V&&typeof V.getRandomValues==="function")return V.getRandomValues(new Uint8Array(q));if(V&&typeof V.randomBytes==="function")return Uint8Array.from(V.randomBytes(q));throw Error("crypto.getRandomValues must be defined")}var W=BigInt(4294967295),$=BigInt(32);function T(q,v=!1){if(v)return{h:Number(q&W),l:Number(q>>$&W)};return{h:Number(q>>$&W)|0,l:Number(q&W)|0}}function L(q,v=!1){let z=q.length,G=new Uint32Array(z),P=new Uint32Array(z);for(let Q=0;Q<z;Q++){let{h:I,l:N}=T(q[Q],v);[G[Q],P[Q]]=[I,N]}return[G,P]}var b=(q,v,z)=>q<<z|v>>>32-z,B=(q,v,z)=>v<<z|q>>>32-z,C=(q,v,z)=>v<<z-32|q>>>64-z,p=(q,v,z)=>q<<z-32|v>>>64-z;
|
|
2
|
+
export{L as Tc,b as Uc,B as Vc,C as Wc,p as Xc,Z as Yc,Y as Zc,U as _c,D as $c,_ as ad,S as bd,f as cd,u as dd,x as ed,H as fd,K as gd,g as hd,k as id,m as jd,A as kd};
|
package/dist/{cli.js → cli.mjs}
RENAMED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
openclaw-setu \u2014 Pay for AI with Solana USDC
|
|
2
|
+
import{a as S}from"./chunk-r76z42nm.mjs";import{c as u,e as b,f as v,g as a}from"./chunk-vvb3cx45.mjs";import{l as s,m as i,n as p,o as c,p as r,q as y,r as m}from"./chunk-vw7de3g2.mjs";import"./chunk-k1btvkaq.mjs";import"./chunk-2pmp70f4.mjs";import"./chunk-w1g9nypz.mjs";import"./chunk-gr14hnnm.mjs";import"./chunk-enz73nmb.mjs";import*as x from"node:readline";function n(o){let e=x.createInterface({input:process.stdin,output:process.stdout});return new Promise((t)=>{e.question(o,(l)=>{e.close(),t(l.trim())})})}function g(){console.log(`
|
|
3
|
+
openclaw-setu — Pay for AI with Solana USDC
|
|
5
4
|
|
|
6
5
|
Usage:
|
|
7
6
|
openclaw-setu setup Interactive setup (wallet + config)
|
|
8
7
|
openclaw-setu start Start the local proxy server
|
|
9
|
-
openclaw-setu stop Stop (placeholder
|
|
8
|
+
openclaw-setu stop Stop (placeholder — use Ctrl+C)
|
|
10
9
|
|
|
11
10
|
openclaw-setu wallet generate Generate a new Solana wallet
|
|
12
11
|
openclaw-setu wallet import Import an existing private key
|
|
@@ -19,7 +18,7 @@ Usage:
|
|
|
19
18
|
|
|
20
19
|
openclaw-setu help Show this help
|
|
21
20
|
`)}async function h(){console.log(`
|
|
22
|
-
Setu
|
|
21
|
+
Setu — Pay for AI with Solana USDC
|
|
23
22
|
`);let o=p(),e=o;if(o){if(console.log(` Existing wallet found: ${o.publicKey}`),(await n(" Use existing wallet? (Y/n): ")).toLowerCase()==="n")if((await n(" (g)enerate new or (i)mport existing? ")).toLowerCase()==="i"){let w=await n(" Enter Solana private key (base58): ");if(!s(w))console.error(" Invalid private key."),process.exit(1);e=c(w),console.log(` Wallet imported: ${e.publicKey}`)}else e=r(),console.log(` New wallet generated: ${e.publicKey}`)}else if((await n(" No wallet found. (g)enerate new or (i)mport existing? ")).toLowerCase()==="i"){let l=await n(" Enter Solana private key (base58): ");if(!s(l))console.error(" Invalid private key."),process.exit(1);e=c(l),console.log(` Wallet imported: ${e.publicKey}`)}else e=r(),console.log(` New wallet generated: ${e.publicKey}`);if(!e)console.error(" Failed to set up wallet."),process.exit(1);console.log(`
|
|
24
23
|
Wallet: ${e.publicKey}`),console.log(` Key stored at: ${i()}`),await u(),console.log(` OpenClaw config updated: ${a()}`),console.log(`
|
|
25
24
|
Setup complete!
|
|
@@ -34,13 +33,13 @@ Usage:
|
|
|
34
33
|
3. Restart OpenClaw:
|
|
35
34
|
openclaw gateway restart
|
|
36
35
|
|
|
37
|
-
Your wallet address is your identity
|
|
36
|
+
Your wallet address is your identity — no API keys needed.
|
|
38
37
|
`)}async function k(){let o=p();if(o){if((await n(`Wallet exists (${o.publicKey}). Overwrite? (y/N): `)).toLowerCase()!=="y"){console.log("Cancelled.");return}}let e=r();console.log(`Wallet generated: ${e.publicKey}`),console.log(`Key stored at: ${i()}`),console.log(`
|
|
39
38
|
Fund with USDC on Solana: ${e.publicKey}`)}async function $(){let o=await n("Enter Solana private key (base58): ");if(!s(o))console.error("Invalid private key."),process.exit(1);let e=c(o);console.log(`Wallet imported: ${e.publicKey}`)}function C(){let o=y();if(!o)console.error("No wallet found. Run `openclaw-setu setup` first."),process.exit(1);console.log(o)}async function K(){let o=p();if(!o)console.error("No wallet found. Run `openclaw-setu setup` first."),process.exit(1);console.log(`
|
|
40
39
|
Wallet: ${o.publicKey}`),console.log(`Key path: ${i()}`),console.log(`
|
|
41
40
|
Fetching balances...`);let e=await m(o.privateKey);if(e.setu)console.log(`
|
|
42
41
|
Setu Balance: $${e.setu.balance.toFixed(4)}`),console.log(`Total Spent: $${e.setu.totalSpent.toFixed(4)}`),console.log(`Requests: ${e.setu.requestCount}`);else console.log(`
|
|
43
|
-
Setu Balance: (not available
|
|
42
|
+
Setu Balance: (not available — wallet may not be registered yet)`);if(e.wallet)console.log(`
|
|
44
43
|
On-chain USDC: $${e.wallet.usdcBalance.toFixed(4)} (${e.wallet.network})`)}async function W(){await u(),console.log(`Setu provider injected into ${a()}`)}function I(){b(),console.log(`Setu provider removed from ${a()}`)}function U(){if(v())console.log(`Setu is configured in ${a()}`);else console.log("Setu is not configured. Run `openclaw-setu setup`.")}function P(){let o=parseInt(process.env.SETU_PROXY_PORT??"8403",10),e=process.argv.includes("--verbose")||process.argv.includes("-v");try{let{wallet:t}=S({port:o,verbose:e});console.log(`
|
|
45
44
|
Setu proxy running on http://localhost:${o}`),console.log(`Wallet: ${t.publicKey}`),console.log(`
|
|
46
45
|
Press Ctrl+C to stop.
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{b as s,c as g,d as C,f as P}from"./chunk-vvb3cx45.mjs";import{l as f,m as y,n as l,p as h,r as S}from"./chunk-vw7de3g2.mjs";import"./chunk-k1btvkaq.mjs";import"./chunk-2pmp70f4.mjs";import"./chunk-w1g9nypz.mjs";import"./chunk-gr14hnnm.mjs";import{qd as m}from"./chunk-enz73nmb.mjs";var $=8403;function x(e){return e.pluginConfig?.port??$}var K={id:"setu",name:"Setu",description:"Pay for AI with Solana USDC — no API keys, just a wallet.",version:"0.1.0",async register(e){let n=x(e);await g(n).catch(()=>{});try{C()}catch{}if(!e.config.models)e.config.models={providers:{}};if(!e.config.models.providers)e.config.models.providers={};let r=s(n);if(e.config.models.providers.setu={baseUrl:r.baseUrl,api:r.api,apiKey:r.apiKey,models:r.models},!e.config.agents)e.config.agents={};let u=e.config.agents;if(!u.defaults)u.defaults={};let d=u.defaults;if(!d.model)d.model={};let w=d.model;if(!w.primary)w.primary="setu/claude-sonnet-4-6";e.registerProvider({id:"setu",label:"Setu (Solana USDC)",aliases:["setu-solana"],envVars:["SETU_PRIVATE_KEY"],models:s(n),auth:[{id:"setu-wallet",label:"Solana Wallet",hint:"Generate or import a Solana wallet — pay per token with USDC",kind:"custom",async run(o){let t=l();if(t)return o.prompter.note(`Existing Setu wallet found: ${t.publicKey}`),{profiles:[{profileId:"setu-wallet",credential:{apiKey:"setu-proxy-handles-auth",type:"wallet",walletAddress:t.publicKey}}],configPatch:{models:{providers:{setu:s(n)}}},defaultModel:"setu/claude-sonnet-4-6",notes:[`Wallet: ${t.publicKey}`,"Fund with USDC on Solana to start using.","Run `openclaw-setu start` to start the proxy."]};let a=await o.prompter.text({message:"Enter Solana private key (base58) or press Enter to generate a new one:",validate:(i)=>{if(i&&!f(i))return"Invalid Solana private key";return}}),c=typeof a==="string"?a.trim():"";if(c&&f(c)){let{saveWallet:i}=await import("./chunk-nj01dc2r.mjs");i(c)}else h();let p=l();return await g(n),{profiles:[{profileId:"setu-wallet",credential:{apiKey:"setu-proxy-handles-auth",type:"wallet",walletAddress:p.publicKey}}],configPatch:{models:{providers:{setu:s(n)}}},defaultModel:"setu/claude-sonnet-4-6",notes:[`Wallet generated: ${p.publicKey}`,`Key stored at: ${y()}`,`Fund with USDC on Solana: ${p.publicKey}`,"Run `openclaw-setu start` to start the proxy."]}}}]});let b={name:"wallet",description:"Show your Setu wallet address and balances",requireAuth:!0,async handler(){let o=l();if(!o)return{text:"No Setu wallet found. Run `openclaw-setu setup`."};let t=await S(o.privateKey),a=[`Wallet: ${o.publicKey}`];if(t.setu)a.push(`Setu Balance: $${t.setu.balance.toFixed(4)}`),a.push(`Total Spent: $${t.setu.totalSpent.toFixed(4)}`),a.push(`Requests: ${t.setu.requestCount}`);if(t.wallet)a.push(`On-chain USDC: $${t.wallet.usdcBalance.toFixed(4)} (${t.wallet.network})`);return{text:a.join(`
|
|
2
|
+
`)}}};e.registerCommand(b);let v={name:"setu-status",description:"Check Setu plugin configuration status",async handler(){let o=l(),t=P();return{text:[`Wallet: ${o?o.publicKey:"not set up"}`,`OpenClaw config: ${t?"injected":"not configured"}`,`Proxy port: ${n}`].join(`
|
|
3
|
+
`)}}};e.registerCommand(v),e.registerService({id:"setu-proxy",async start(){if(!l()){e.logger.warn("Setu: No wallet found. Run `openclaw-setu setup` first.");return}try{let{createProxy:t}=await import("./chunk-kvpwet74.mjs");t({port:n,verbose:!1}),e.logger.info(`Setu proxy running on http://localhost:${n}`)}catch(t){e.logger.error(`Setu proxy failed: ${t.message}`)}}})}},R=K;export{R as default};
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ottocode/openclaw-setu",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "Setu provider for OpenClaw — pay for AI with Solana USDC. No API keys, just a wallet.",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "./dist/index.
|
|
6
|
+
"main": "./dist/index.mjs",
|
|
7
7
|
"exports": {
|
|
8
|
-
".": "./dist/index.
|
|
8
|
+
".": "./dist/index.mjs"
|
|
9
9
|
},
|
|
10
10
|
"bin": {
|
|
11
|
-
"openclaw-setu": "./dist/cli.
|
|
11
|
+
"openclaw-setu": "./dist/cli.mjs"
|
|
12
12
|
},
|
|
13
13
|
"openclaw": {
|
|
14
14
|
"extensions": [
|
|
15
|
-
"./dist/index.
|
|
15
|
+
"./dist/index.mjs"
|
|
16
16
|
]
|
|
17
17
|
},
|
|
18
18
|
"files": [
|
package/dist/chunk-8pp4as02.js
DELETED
package/dist/chunk-by6w3tsf.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{Dd as Y,Fd as K}from"./chunk-zy3raqnk.js";var V=Y((rz,O)=>{var{defineProperty:J,getOwnPropertyDescriptor:r,getOwnPropertyNames:t}=Object,e=Object.prototype.hasOwnProperty,o=(z,B)=>{for(var F in B)J(z,F,{get:B[F],enumerable:!0})},zz=(z,B,F,H)=>{if(B&&typeof B==="object"||typeof B==="function"){for(let G of t(B))if(!e.call(z,G)&&G!==F)J(z,G,{get:()=>B[G],enumerable:!(H=r(B,G))||H.enumerable})}return z},Bz=(z)=>zz(J({},"__esModule",{value:!0}),z),M={};o(M,{VercelOidcTokenError:()=>j});O.exports=Bz(M);class j extends Error{constructor(z,B){super(z);this.name="VercelOidcTokenError",this.cause=B}toString(){if(this.cause)return`${this.name}: ${this.message}: ${this.cause}`;return`${this.name}: ${this.message}`}}});var C=Y((tz,x)=>{var{create:Fz,defineProperty:v,getOwnPropertyDescriptor:Gz,getOwnPropertyNames:Hz,getPrototypeOf:Kz}=Object,Qz=Object.prototype.hasOwnProperty,Wz=(z,B)=>{for(var F in B)v(z,F,{get:B[F],enumerable:!0})},S=(z,B,F,H)=>{if(B&&typeof B==="object"||typeof B==="function"){for(let G of Hz(B))if(!Qz.call(z,G)&&G!==F)v(z,G,{get:()=>B[G],enumerable:!(H=Gz(B,G))||H.enumerable})}return z},N=(z,B,F)=>(F=z!=null?Fz(Kz(z)):{},S(B||!z||!z.__esModule?v(F,"default",{value:z,enumerable:!0}):F,z)),Xz=(z)=>S(v({},"__esModule",{value:!0}),z),E={};Wz(E,{findRootDir:()=>$z,getUserDataDir:()=>qz});x.exports=Xz(E);var Z=N(K("path")),Yz=N(K("fs")),A=N(K("os")),Zz=V();function $z(){try{let z=process.cwd();while(z!==Z.default.dirname(z)){let B=Z.default.join(z,".vercel");if(Yz.default.existsSync(B))return z;z=Z.default.dirname(z)}}catch(z){throw new Zz.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function qz(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(A.default.platform()){case"darwin":return Z.default.join(A.default.homedir(),"Library/Application Support");case"linux":return Z.default.join(A.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}});var c=Y((ez,g)=>{var{create:vz,defineProperty:b,getOwnPropertyDescriptor:bz,getOwnPropertyNames:Uz,getPrototypeOf:Lz}=Object,Jz=Object.prototype.hasOwnProperty,Vz=(z,B)=>{for(var F in B)b(z,F,{get:B[F],enumerable:!0})},y=(z,B,F,H)=>{if(B&&typeof B==="object"||typeof B==="function"){for(let G of Uz(B))if(!Jz.call(z,G)&&G!==F)b(z,G,{get:()=>B[G],enumerable:!(H=bz(B,G))||H.enumerable})}return z},u=(z,B,F)=>(F=z!=null?vz(Lz(z)):{},y(B||!z||!z.__esModule?b(F,"default",{value:z,enumerable:!0}):F,z)),Az=(z)=>y(b({},"__esModule",{value:!0}),z),P={};Vz(P,{isValidAccessToken:()=>wz,readAuthConfig:()=>Rz,writeAuthConfig:()=>Iz});g.exports=Az(P);var $=u(K("fs")),l=u(K("path")),Nz=k();function h(){let z=(0,Nz.getVercelDataDir)();if(!z)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return l.join(z,"auth.json")}function Rz(){try{let z=h();if(!$.existsSync(z))return null;let B=$.readFileSync(z,"utf8");if(!B)return null;return JSON.parse(B)}catch(z){return null}}function Iz(z){let B=h(),F=l.dirname(B);if(!$.existsSync(F))$.mkdirSync(F,{mode:504,recursive:!0});$.writeFileSync(B,JSON.stringify(z,null,2),{mode:384})}function wz(z){if(!z.token)return!1;if(typeof z.expiresAt!=="number")return!0;let B=Math.floor(Date.now()/1000);return z.expiresAt>=B}});var p=Y((oz,d)=>{var{defineProperty:w,getOwnPropertyDescriptor:Dz,getOwnPropertyNames:Tz}=Object,Mz=Object.prototype.hasOwnProperty,jz=(z,B)=>{for(var F in B)w(z,F,{get:B[F],enumerable:!0})},Oz=(z,B,F,H)=>{if(B&&typeof B==="object"||typeof B==="function"){for(let G of Tz(B))if(!Mz.call(z,G)&&G!==F)w(z,G,{get:()=>B[G],enumerable:!(H=Dz(B,G))||H.enumerable})}return z},Sz=(z)=>Oz(w({},"__esModule",{value:!0}),z),i={};jz(i,{processTokenResponse:()=>uz,refreshTokenRequest:()=>yz});d.exports=Sz(i);var R=K("os"),Ez="https://vercel.com",xz="cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",f=`@vercel/oidc node-${process.version} ${(0,R.platform)()} (${(0,R.arch)()}) ${(0,R.hostname)()}`,I=null;async function Cz(){if(I)return I;let z=`${Ez}/.well-known/openid-configuration`,B=await fetch(z,{headers:{"user-agent":f}});if(!B.ok)throw Error("Failed to discover OAuth endpoints");let F=await B.json();if(!F||typeof F.token_endpoint!=="string")throw Error("Invalid OAuth discovery response");let H=F.token_endpoint;return I=H,H}async function yz(z){let B=await Cz();return await fetch(B,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":f},body:new URLSearchParams({client_id:xz,grant_type:"refresh_token",...z})})}async function uz(z){let B=await z.json();if(!z.ok){let F=typeof B==="object"&&B&&"error"in B?String(B.error):"Token refresh failed";return[Error(F)]}if(typeof B!=="object"||B===null)return[Error("Invalid token response")];if(typeof B.access_token!=="string")return[Error("Missing access_token in response")];if(B.token_type!=="Bearer")return[Error("Invalid token_type in response")];if(typeof B.expires_in!=="number")return[Error("Missing expires_in in response")];return[null,B]}});var k=Y((zB,n)=>{var{create:Pz,defineProperty:U,getOwnPropertyDescriptor:lz,getOwnPropertyNames:hz,getPrototypeOf:gz}=Object,cz=Object.prototype.hasOwnProperty,kz=(z,B)=>{for(var F in B)U(z,F,{get:B[F],enumerable:!0})},a=(z,B,F,H)=>{if(B&&typeof B==="object"||typeof B==="function"){for(let G of hz(B))if(!cz.call(z,G)&&G!==F)U(z,G,{get:()=>B[G],enumerable:!(H=lz(B,G))||H.enumerable})}return z},_=(z,B,F)=>(F=z!=null?Pz(gz(z)):{},a(B||!z||!z.__esModule?U(F,"default",{value:z,enumerable:!0}):F,z)),iz=(z)=>a(U({},"__esModule",{value:!0}),z),m={};kz(m,{assertVercelOidcTokenResponse:()=>D,findProjectInfo:()=>sz,getTokenPayload:()=>mz,getVercelCliToken:()=>dz,getVercelDataDir:()=>fz,getVercelOidcToken:()=>pz,isExpired:()=>nz,loadToken:()=>_z,saveToken:()=>az});n.exports=iz(m);var q=_(K("path")),Q=_(K("fs")),X=V(),L=C(),W=c(),s=p();function fz(){let B=(0,L.getUserDataDir)();if(!B)return null;return q.join(B,"com.vercel.cli")}async function dz(){let z=(0,W.readAuthConfig)();if(!z)return null;if((0,W.isValidAccessToken)(z))return z.token||null;if(!z.refreshToken)return(0,W.writeAuthConfig)({}),null;try{let B=await(0,s.refreshTokenRequest)({refresh_token:z.refreshToken}),[F,H]=await(0,s.processTokenResponse)(B);if(F||!H)return(0,W.writeAuthConfig)({}),null;let G={token:H.access_token,expiresAt:Math.floor(Date.now()/1000)+H.expires_in};if(H.refresh_token)G.refreshToken=H.refresh_token;return(0,W.writeAuthConfig)(G),G.token??null}catch(B){return(0,W.writeAuthConfig)({}),null}}async function pz(z,B,F){let H=`https://api.vercel.com/v1/projects/${B}/token?source=vercel-oidc-refresh${F?`&teamId=${F}`:""}`,G=await fetch(H,{method:"POST",headers:{Authorization:`Bearer ${z}`}});if(!G.ok)throw new X.VercelOidcTokenError(`Failed to refresh OIDC token: ${G.statusText}`);let T=await G.json();return D(T),T}function D(z){if(!z||typeof z!=="object")throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in z)||typeof z.token!=="string")throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function sz(){let z=(0,L.findRootDir)();if(!z)throw new X.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let B=q.join(z,".vercel","project.json");if(!Q.existsSync(B))throw new X.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let F=JSON.parse(Q.readFileSync(B,"utf8"));if(typeof F.projectId!=="string"&&typeof F.orgId!=="string")throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:F.projectId,teamId:F.orgId}}function az(z,B){let F=(0,L.getUserDataDir)();if(!F)throw new X.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let H=q.join(F,"com.vercel.token",`${B}.json`),G=JSON.stringify(z);Q.mkdirSync(q.dirname(H),{mode:504,recursive:!0}),Q.writeFileSync(H,G),Q.chmodSync(H,432);return}function _z(z){let B=(0,L.getUserDataDir)();if(!B)throw new X.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let F=q.join(B,"com.vercel.token",`${z}.json`);if(!Q.existsSync(F))return null;let H=JSON.parse(Q.readFileSync(F,"utf8"));return D(H),H}function mz(z){let B=z.split(".");if(B.length!==3)throw new X.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let F=B[1].replace(/-/g,"+").replace(/_/g,"/"),H=F.padEnd(F.length+(4-F.length%4)%4,"=");return JSON.parse(Buffer.from(H,"base64").toString("utf8"))}function nz(z){return z.exp*1000<Date.now()}});
|
|
3
|
-
export{V as h,k as i};
|
package/dist/chunk-e5qz2vx5.js
DELETED
package/dist/chunk-esz88g73.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{j as w,k as R,n as $}from"./chunk-h29x1xqe.js";var T=8403,P="https://api.setu.ottocode.io";function A(r={}){let d=r.port??T,m=r.baseURL??P,b=r.verbose??!1,a=$();if(!a)throw Error("No wallet found. Run `openclaw-setu setup` or `openclaw-setu wallet generate` first.");let o=b?(e)=>console.log(`[setu-proxy] ${e}`):(e)=>{},C=w({privateKey:a.privateKey}),c=R({wallet:C,baseURL:m,callbacks:{onPaymentRequired:(e)=>{o(`Payment required: $${e.toFixed(4)}`)},onPaymentComplete:(e)=>{o(`Payment complete: $${e.amountUsd.toFixed(4)} | balance: $${e.newBalance.toFixed(4)}`)},onPaymentError:(e)=>{console.error(`[setu-proxy] Payment error: ${e}`)},onBalanceUpdate:(e)=>{o(`Cost: $${e.costUsd.toFixed(4)} | remaining: $${e.balanceRemaining.toFixed(4)}`)}}}),l=m;return{server:Bun.serve({port:d,async fetch(e){let t=new URL(e.url);if(t.pathname==="/health")return Response.json({status:"ok",wallet:a.publicKey,provider:"setu"});if(t.pathname==="/v1/models"){o("GET /v1/models");let s=await c(`${l}/v1/models`,{method:"GET",headers:{"Content-Type":"application/json"}});return new Response(s.body,{status:s.status,headers:{"Content-Type":s.headers.get("Content-Type")??"application/json","Access-Control-Allow-Origin":"*"}})}let u=t.pathname==="/v1/chat/completions",g=t.pathname==="/v1/responses";if(!u&&!g){let s=`${l}${t.pathname}`;o(`Proxying ${e.method} ${t.pathname}`);let p=await c(s,{method:e.method,headers:{"Content-Type":"application/json"},body:e.method!=="GET"?await e.text():void 0});return new Response(p.body,{status:p.status,headers:{"Content-Type":p.headers.get("Content-Type")??"application/json","Access-Control-Allow-Origin":"*"}})}let y=await e.text(),i={};try{i=JSON.parse(y)}catch{return Response.json({error:"Invalid JSON body"},{status:400})}let{model:v,stream:h}=i;o(`${u?"POST /v1/chat/completions":"POST /v1/responses"} model=${v} stream=${h}`);let x=`${l}${t.pathname}`,n=await c(x,{method:"POST",headers:{"Content-Type":"application/json"},body:y});if(h&&n.body)return new Response(n.body,{status:n.status,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}});return new Response(n.body,{status:n.status,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}),port:d,wallet:a}}
|
|
3
|
-
export{A as a};
|
package/dist/chunk-fc5rfx0b.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import*as Q from"crypto";var W=Q&&typeof Q==="object"&&"webcrypto"in Q?Q.webcrypto:Q&&typeof Q==="object"&&("randomBytes"in Q)?Q:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function R(q){return q instanceof Uint8Array||ArrayBuffer.isView(q)&&q.constructor.name==="Uint8Array"}function N(q){if(!Number.isSafeInteger(q)||q<0)throw Error("positive integer expected, got "+q)}function $(q,...v){if(!R(q))throw Error("Uint8Array expected");if(v.length>0&&!v.includes(q.length))throw Error("Uint8Array expected of length "+v+", got length="+q.length)}function u(q){if(typeof q!=="function"||typeof q.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");N(q.outputLen),N(q.blockLen)}function x(q,v=!0){if(q.destroyed)throw Error("Hash instance has been destroyed");if(v&&q.finished)throw Error("Hash#digest() has already been called")}function H(q,v){$(q);let z=v.outputLen;if(q.length<z)throw Error("digestInto() expects output buffer of length at least "+z)}function g(q){return new Uint32Array(q.buffer,q.byteOffset,Math.floor(q.byteLength/4))}function m(...q){for(let v=0;v<q.length;v++)q[v].fill(0)}function A(q){return new DataView(q.buffer,q.byteOffset,q.byteLength)}function w(q,v){return q<<32-v|q>>>v}var K=(()=>new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68)();function k(q){return q<<24&4278190080|q<<8&16711680|q>>>8&65280|q>>>24&255}function T(q){for(let v=0;v<q.length;v++)q[v]=k(q[v]);return q}var L=K?(q)=>q:T,O=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),E=Array.from({length:256},(q,v)=>v.toString(16).padStart(2,"0"));function b(q){if($(q),O)return q.toHex();let v="";for(let z=0;z<q.length;z++)v+=E[q[z]];return v}var V={_0:48,_9:57,A:65,F:70,a:97,f:102};function X(q){if(q>=V._0&&q<=V._9)return q-V._0;if(q>=V.A&&q<=V.F)return q-(V.A-10);if(q>=V.a&&q<=V.f)return q-(V.a-10);return}function B(q){if(typeof q!=="string")throw Error("hex string expected, got "+typeof q);if(O)return Uint8Array.fromHex(q);let v=q.length,z=v/2;if(v%2)throw Error("hex string expected, got unpadded hex of length "+v);let G=new Uint8Array(z);for(let J=0,P=0;J<z;J++,P+=2){let Y=X(q.charCodeAt(P)),Z=X(q.charCodeAt(P+1));if(Y===void 0||Z===void 0){let F=q[P]+q[P+1];throw Error('hex string expected, got non-hex character "'+F+'" at index '+P)}G[J]=Y*16+Z}return G}function M(q){if(typeof q!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(q))}function U(q){if(typeof q==="string")q=M(q);return $(q),q}function C(...q){let v=0;for(let G=0;G<q.length;G++){let J=q[G];$(J),v+=J.length}let z=new Uint8Array(v);for(let G=0,J=0;G<q.length;G++){let P=q[G];z.set(P,J),J+=P.length}return z}class D{}function p(q){let v=(G)=>q().update(U(G)).digest(),z=q();return v.outputLen=z.outputLen,v.blockLen=z.blockLen,v.create=()=>q(),v}function y(q=32){if(W&&typeof W.getRandomValues==="function")return W.getRandomValues(new Uint8Array(q));if(W&&typeof W.randomBytes==="function")return Uint8Array.from(W.randomBytes(q));throw Error("crypto.getRandomValues must be defined")}var I=BigInt(4294967295),j=BigInt(32);function _(q,v=!1){if(v)return{h:Number(q&I),l:Number(q>>j&I)};return{h:Number(q>>j&I)|0,l:Number(q&I)|0}}function d(q,v=!1){let z=q.length,G=new Uint32Array(z),J=new Uint32Array(z);for(let P=0;P<z;P++){let{h:Y,l:Z}=_(q[P],v);[G[P],J[P]]=[Y,Z]}return[G,J]}var n=(q,v,z)=>q>>>z,l=(q,v,z)=>q<<32-z|v>>>z,i=(q,v,z)=>q>>>z|v<<32-z,e=(q,v,z)=>q<<32-z|v>>>z,o=(q,v,z)=>q<<64-z|v>>>z-32,t=(q,v,z)=>q>>>z-32|v<<64-z;var r=(q,v,z)=>q<<z|v>>>32-z,a=(q,v,z)=>v<<z|q>>>32-z,h=(q,v,z)=>v<<z-32|q>>>64-z,s=(q,v,z)=>q<<z-32|v>>>64-z;function qq(q,v,z,G){let J=(v>>>0)+(G>>>0);return{h:q+z+(J/4294967296|0)|0,l:J|0}}var vq=(q,v,z)=>(q>>>0)+(v>>>0)+(z>>>0),zq=(q,v,z,G)=>v+z+G+(q/4294967296|0)|0,Gq=(q,v,z,G)=>(q>>>0)+(v>>>0)+(z>>>0)+(G>>>0),Jq=(q,v,z,G,J)=>v+z+G+J+(q/4294967296|0)|0,Pq=(q,v,z,G,J)=>(q>>>0)+(v>>>0)+(z>>>0)+(G>>>0)+(J>>>0),Qq=(q,v,z,G,J,P)=>v+z+G+J+P+(q/4294967296|0)|0;
|
|
3
|
-
export{R as Uc,N as Vc,$ as Wc,u as Xc,x as Yc,H as Zc,g as _c,m as $c,A as ad,w as bd,L as cd,b as dd,B as ed,U as fd,C as gd,D as hd,p as id,y as jd,d as kd,n as ld,l as md,i as nd,e as od,o as pd,t as qd,r as rd,a as sd,h as td,s as ud,qq as vd,vq as wd,zq as xd,Gq as yd,Jq as zd,Pq as Ad,Qq as Bd};
|
package/dist/chunk-g3ma3sec.js
DELETED
package/dist/chunk-gtxg1zc6.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{h as U,i as V}from"./chunk-by6w3tsf.js";import{Dd as R}from"./chunk-zy3raqnk.js";var E=R((M,Q)=>{var{defineProperty:K,getOwnPropertyDescriptor:W,getOwnPropertyNames:X}=Object,Y=Object.prototype.hasOwnProperty,Z=(q,v)=>{for(var z in v)K(q,z,{get:v[z],enumerable:!0})},$=(q,v,z,F)=>{if(v&&typeof v==="object"||typeof v==="function"){for(let G of X(v))if(!Y.call(q,G)&&G!==z)K(q,G,{get:()=>v[G],enumerable:!(F=W(v,G))||F.enumerable})}return q},A=(q)=>$(K({},"__esModule",{value:!0}),q),L={};Z(L,{refreshToken:()=>D});Q.exports=A(L);var H=U(),B=V();async function D(){let{projectId:q,teamId:v}=(0,B.findProjectInfo)(),z=(0,B.loadToken)(q);if(!z||(0,B.isExpired)((0,B.getTokenPayload)(z.token))){let F=await(0,B.getVercelCliToken)();if(!F)throw new H.VercelOidcTokenError("Failed to refresh OIDC token: Log in to Vercel CLI and link your project with `vc link`");if(!q)throw new H.VercelOidcTokenError("Failed to refresh OIDC token: Try re-linking your project with `vc link`");if(z=await(0,B.getVercelOidcToken)(F,q,v),!z)throw new H.VercelOidcTokenError("Failed to refresh OIDC token");(0,B.saveToken)(z,q)}process.env.VERCEL_OIDC_TOKEN=z.token;return}});export default E();
|