@oracle-agent/oracle 0.35.41 → 0.35.43

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 (59) hide show
  1. package/dist/agent-sessions.mjs +25 -24
  2. package/dist/assets/skills/oracle-desk-product/SKILL.md +1 -1
  3. package/dist/bin/desk-server.mjs +28 -28
  4. package/dist/bin/oracle-data-mcp.mjs +18 -18
  5. package/dist/bin/oracle-gateway.mjs +46 -46
  6. package/dist/bin/oracle-launch-radar-shadow.mjs +6 -6
  7. package/dist/bin/oracle-public-server.mjs +5 -5
  8. package/dist/bin/oracle-route.mjs +31 -31
  9. package/dist/bin/oracle.mjs +13 -13
  10. package/dist/cli/commands/agent-session.mjs +27 -26
  11. package/dist/cli/commands/auth.mjs +5 -5
  12. package/dist/cli/commands/chat.mjs +244 -222
  13. package/dist/cli/commands/doctor.mjs +5 -5
  14. package/dist/cli/commands/eval.mjs +206 -149
  15. package/dist/cli/commands/extension-policy.mjs +3 -3
  16. package/dist/cli/commands/harness.mjs +7 -7
  17. package/dist/cli/commands/mint.mjs +11 -11
  18. package/dist/cli/commands/model.mjs +248 -226
  19. package/dist/cli/commands/portfolio-risk.mjs +1 -1
  20. package/dist/cli/commands/project.mjs +7 -7
  21. package/dist/cli/commands/quickstart.mjs +4 -4
  22. package/dist/cli/commands/setup.mjs +13 -13
  23. package/dist/cli/commands/sign.mjs +14 -14
  24. package/dist/cli/commands/signer.mjs +22 -22
  25. package/dist/cli/commands/swap.mjs +13 -13
  26. package/dist/cli/commands/venues.mjs +2 -2
  27. package/dist/cli/project-access.mjs +3 -0
  28. package/dist/data/desk-data.mjs +26 -26
  29. package/dist/index.mjs +46 -46
  30. package/dist/launch-radar/index.mjs +5 -5
  31. package/dist/local-signer/anvil-attestation-worker.mjs +1 -1
  32. package/dist/local-signer/index.mjs +3 -3
  33. package/dist/local-signer/runtime.mjs +19 -19
  34. package/dist/notifications/index.mjs +8 -8
  35. package/dist/portfolio-risk.mjs +1 -1
  36. package/dist/router/prepare-route.mjs +3 -3
  37. package/dist/task.mjs +2 -2
  38. package/dist/teams/index.mjs +6 -6
  39. package/dist/tui/standalone-client.mjs +115 -94
  40. package/package.json +2 -1
  41. package/public/oracle-splash/docs/browser-and-web/index.html +2 -2
  42. package/public/oracle-splash/docs/connectors/index.html +2 -2
  43. package/public/oracle-splash/docs/getting-started/index.html +2 -2
  44. package/public/oracle-splash/docs/index.html +3 -3
  45. package/public/oracle-splash/docs/reference/index.html +2 -2
  46. package/public/oracle-splash/docs/security/index.html +2 -2
  47. package/public/oracle-splash/docs/using-oracle/index.html +2 -2
  48. package/public/oracle-splash/download/index.html +4 -4
  49. package/public/oracle-splash/downloads/index.html +1 -1
  50. package/public/oracle-splash/eval/archive/oracle-0.35.40.json +101 -0
  51. package/public/oracle-splash/eval/archive/oracle-0.35.41-blocked-attempt.json +672 -0
  52. package/public/oracle-splash/eval/benchmarks/evm-escrow-20260827.json +170 -0
  53. package/public/oracle-splash/eval/eval-story.css +722 -0
  54. package/public/oracle-splash/eval/eval-story.js +198 -0
  55. package/public/oracle-splash/eval/index.html +80 -34
  56. package/public/oracle-splash/eval/live-eval.js +546 -0
  57. package/public/oracle-splash/eval/releases/oracle-0.35.41.json +788 -0
  58. package/public/oracle-splash/index.html +7 -7
  59. package/server.json +2 -2
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{realpathSync as N}from"node:fs";import{fileURLToPath as ie}from"node:url";import m from"node:fs";import h from"node:path";import{pathToFileURL as D}from"node:url";import d from"node:fs";import F from"node:os";import c from"node:path";import{fileURLToPath as H}from"node:url";var q=c.dirname(H(import.meta.url)),l=c.resolve(q,"../..");function u(){return process.env.ORACLE_FAKE_HOME||F.homedir()}function _(){return process.env.ORACLE_PUBLIC_DESKTOP==="1"}function f(){return _()?process.env.ORACLE_CONFIG_DIR||c.join(u(),".config","oracle"):c.join(u(),".config","oracle")}function B(){return c.join(f(),"exec.env")}function k(){return c.join(f(),"desk.json")}function C(){return c.join(f(),"env")}function p({force:e=!1}={}){if(p._done&&!e)return p._result||null;p._done=!0;let r={},o=(n,t)=>{if(t==null)return;let a=String(t).trim();a&&(process.env[n]!=null&&String(process.env[n]).trim()!==""||(process.env[n]=a,r[n]=a))};try{let n=C();if(d.existsSync(n))for(let t of d.readFileSync(n,"utf8").split(/\r?\n/)){let a=t.match(/^\s*([A-Z0-9_]+)\s*=\s*(.*?)\s*$/);if(!a||a[2].startsWith("#"))continue;let i=a[2];(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),o(a[1],i)}}catch{}try{let n=k();if(d.existsSync(n)){let t=JSON.parse(d.readFileSync(n,"utf8"));t&&typeof t=="object"&&(o("ORACLE_DESK_URL",t.deskUrl||t.dataUrl||t.url),o("ORACLE_DATA_URL",t.dataUrl||t.deskUrl||t.url),o("ORACLE_API_URL",t.apiUrl||t.dataUrl||t.deskUrl),o("ORACLE_PUBLIC_URL",t.publicUrl||t.deskUrl||t.dataUrl),o("ORACLE_EXEC_URL",t.execUrl),o("MAD_DESK_URL",t.deskUrl||t.dataUrl))}}catch{}let s=process.env.ORACLE_DESK_URL||process.env.ORACLE_DATA_URL||"";return s&&(o("ORACLE_DESK_URL",s),o("ORACLE_DATA_URL",s),o("ORACLE_API_URL",s),o("ORACLE_PUBLIC_URL",s),o("MAD_DESK_URL",s)),p._result=Object.keys(r).length?r:null,p._result}try{p()}catch{}function G(){return process.env.HERMES_HOME?c.resolve(process.env.HERMES_HOME):c.join(u(),".hermes")}function K(){return c.join(u(),".claude.json")}function V(e=process.cwd()){return c.join(e,".mcp.json")}function W(){return process.platform==="darwin"?c.join(u(),"Library","Application Support","Claude","claude_desktop_config.json"):c.join(u(),".config","Claude","claude_desktop_config.json")}function J(){return c.join(u(),".codex","config.toml")}function R(){return c.join(f(),"connectors")}function Y(){return c.join(R(),"chatgpt-openapi.json")}function z(){return c.join(f(),"active-chain.json")}function g(e){let r=[c.join(l,"bin",e),c.join(l,"dist","bin",e),c.join(l,"..","bin",e)];return r.find(o=>d.existsSync(o))||r[0]}function X(e){return d.mkdirSync(e,{recursive:!0}),e}var j={homeDir:u,isPublicDesktop:_,oracleConfigDir:f,oracleExecEnvPath:B,oracleDeskJsonPath:k,oracleEnvFilePath:C,loadDeskRouting:p,hermesRoot:G,activeChainPath:z,claudeCodeUserConfigPath:K,claudeCodeProjectMcpPath:V,claudeDesktopConfigPath:W,codexConfigPath:J,chatgptConnectorDir:R,chatgptOpenApiPath:Y,packageBin:g,ensureDir:X,PACKAGE_ROOT:l};import{execFile as Q}from"node:child_process";import{existsSync as xe,mkdirSync as ve,readFileSync as Z,realpathSync as Ee,writeFileSync as Ae}from"node:fs";import O from"node:path";import{promisify as ee}from"node:util";var ke=ee(Q);var Ce=1440*60*1e3;function L(e,r){let o=t=>String(t).replace(/^v/,"").split("-")[0].split(".").map(a=>Number.parseInt(a,10)||0),s=o(e),n=o(r);for(let t=0;t<Math.max(s.length,n.length);t+=1){let a=s[t]??0,i=n[t]??0;if(a>i)return 1;if(a<i)return-1}return 0}function te(e){let r=e?.stateDir||O.join(process.env.HOME||".",".oracle");return O.join(r,"update-check.json")}function b(e){try{return JSON.parse(Z(te(e),"utf8"))}catch{return null}}var re="\u25C7 ORACLE // self-custody multichain agent control plane",oe=`START
2
+ import{realpathSync as N}from"node:fs";import{fileURLToPath as de}from"node:url";import m from"node:fs";import h from"node:path";import{pathToFileURL as T}from"node:url";import d from"node:fs";import F from"node:os";import c from"node:path";import{fileURLToPath as q}from"node:url";var B=c.dirname(q(import.meta.url)),l=c.resolve(B,"../..");function u(){return process.env.ORACLE_FAKE_HOME||F.homedir()}function w(){return process.env.ORACLE_PUBLIC_DESKTOP==="1"}function f(){return w()?process.env.ORACLE_CONFIG_DIR||c.join(u(),".config","oracle"):c.join(u(),".config","oracle")}function K(){return c.join(f(),"exec.env")}function C(){return c.join(f(),"desk.json")}function v(){return c.join(f(),"env")}function p({force:e=!1}={}){if(p._done&&!e)return p._result||null;p._done=!0;let o={},n=(t,r)=>{if(r==null)return;let s=String(r).trim();s&&(process.env[t]!=null&&String(process.env[t]).trim()!==""||(process.env[t]=s,o[t]=s))};try{let t=v();if(d.existsSync(t))for(let r of d.readFileSync(t,"utf8").split(/\r?\n/)){let s=r.match(/^\s*([A-Z0-9_]+)\s*=\s*(.*?)\s*$/);if(!s||s[2].startsWith("#"))continue;let i=s[2];(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),n(s[1],i)}}catch{}try{let t=C();if(d.existsSync(t)){let r=JSON.parse(d.readFileSync(t,"utf8"));r&&typeof r=="object"&&(n("ORACLE_DESK_URL",r.deskUrl||r.dataUrl||r.url),n("ORACLE_DATA_URL",r.dataUrl||r.deskUrl||r.url),n("ORACLE_API_URL",r.apiUrl||r.dataUrl||r.deskUrl),n("ORACLE_PUBLIC_URL",r.publicUrl||r.deskUrl||r.dataUrl),n("ORACLE_EXEC_URL",r.execUrl),n("MAD_DESK_URL",r.deskUrl||r.dataUrl))}}catch{}let a=process.env.ORACLE_DESK_URL||process.env.ORACLE_DATA_URL||"";return a&&(n("ORACLE_DESK_URL",a),n("ORACLE_DATA_URL",a),n("ORACLE_API_URL",a),n("ORACLE_PUBLIC_URL",a),n("MAD_DESK_URL",a)),p._result=Object.keys(o).length?o:null,p._result}try{p()}catch{}function G(){return process.env.HERMES_HOME?c.resolve(process.env.HERMES_HOME):c.join(u(),".hermes")}function V(){return c.join(u(),".claude.json")}function W(e=process.cwd()){return c.join(e,".mcp.json")}function J(){return process.platform==="darwin"?c.join(u(),"Library","Application Support","Claude","claude_desktop_config.json"):c.join(u(),".config","Claude","claude_desktop_config.json")}function Y(){return c.join(u(),".codex","config.toml")}function O(){return c.join(f(),"connectors")}function z(){return c.join(O(),"chatgpt-openapi.json")}function X(){return c.join(f(),"active-chain.json")}function y(e){let o=[c.join(l,"bin",e),c.join(l,"dist","bin",e),c.join(l,"..","bin",e)];return o.find(n=>d.existsSync(n))||o[0]}function Z(e){return d.mkdirSync(e,{recursive:!0}),e}var S={homeDir:u,isPublicDesktop:w,oracleConfigDir:f,oracleExecEnvPath:K,oracleDeskJsonPath:C,oracleEnvFilePath:v,loadDeskRouting:p,hermesRoot:G,activeChainPath:X,claudeCodeUserConfigPath:V,claudeCodeProjectMcpPath:W,claudeDesktopConfigPath:J,codexConfigPath:Y,chatgptConnectorDir:O,chatgptOpenApiPath:z,packageBin:y,ensureDir:Z,PACKAGE_ROOT:l};import{execFile as Q}from"node:child_process";import{existsSync as Re,mkdirSync as we,readFileSync as ee,realpathSync as Ce,writeFileSync as ve}from"node:fs";import L from"node:path";import{promisify as re}from"node:util";var Le=re(Q);var ke=1440*60*1e3;function k(e,o){let n=r=>String(r).replace(/^v/,"").split("-")[0].split(".").map(s=>Number.parseInt(s,10)||0),a=n(e),t=n(o);for(let r=0;r<Math.max(a.length,t.length);r+=1){let s=a[r]??0,i=t[r]??0;if(s>i)return 1;if(s<i)return-1}return 0}function te(e){let o=e?.stateDir||L.join(process.env.HOME||".",".oracle");return L.join(o,"update-check.json")}function b(e){try{return JSON.parse(ee(te(e),"utf8"))}catch{return null}}var oe="\u25C7 ORACLE // self-custody multichain agent control plane",ne=`START
3
3
  oracle open the native Oracle chat (TTY)
4
4
  oracle chat open chat explicitly
5
5
  oracle setup connect a model and optional messaging
@@ -53,7 +53,7 @@ SYSTEM
53
53
  oracle telegram native interactive Telegram cards (no Hermes)
54
54
  oracle fees status \xB7 check
55
55
  oracle lifecycle inventory \xB7 eval health \xB7 quarantine \xB7 retirement
56
- oracle eval desk \xB7 fidelity \xB7 hybrid \xB7 guards \xB7 contracts \xB7 all
56
+ oracle eval desk \xB7 fidelity \xB7 golden-prepare \xB7 hybrid \xB7 guards \xB7 contracts \xB7 all
57
57
  oracle upgrade update installed agent lanes
58
58
 
59
59
  BOUNDARY
@@ -63,16 +63,16 @@ BOUNDARY
63
63
  MEV observe is read-only. Flash-loan execute needs ORACLE_MEV_EXECUTE_ENABLED=1
64
64
  and literal --execute. There is no autonomous MEV loop.
65
65
  Use oracle <command> --help for command details.
66
- `;function T(){try{return JSON.parse(m.readFileSync(h.join(l,"package.json"),"utf8")).version||"0.0.0"}catch{return"0.0.0"}}function P(){let e=h.join(l,"src","cli","commands");return m.existsSync(e)?e:h.join(l,"dist","cli","commands")}var $=Object.freeze({clients:"harness"});function M(){let e=P();return m.existsSync(e)?new Map(m.readdirSync(e).filter(r=>r.endsWith(".mjs")).map(r=>[r.replace(/\.mjs$/,""),h.join(e,r)])):new Map}function ne(){return[...new Set([...M().keys(),...Object.keys($)])].sort()}async function y(e){let r=$[e]||e,o=M().get(r);if(!o)return null;try{let n=(await import(D(o).href)).default;if(!n||typeof n!="object"||typeof n.run!="function")return null;let t=n.name||r,a={...n,name:t,__file:o};return e!==r?{...a,name:e,aliasFor:t}:a}catch(s){return process.env.ORACLE_CLI_DEBUG&&console.error(`oracle: failed loading command ${r}: ${s.message}`),null}}async function x(){let e=P(),r=new Map;if(!m.existsSync(e))return r;let o=m.readdirSync(e).filter(s=>s.endsWith(".mjs")).sort();for(let s of o){let n=h.join(e,s);try{let a=(await import(D(n).href+`?t=${Date.now()}`)).default;if(!a||typeof a!="object"||typeof a.run!="function")continue;let i=a.name||s.replace(/\.mjs$/,""),A={...a,name:i,__file:n};r.set(i,A);for(let w of Array.isArray(a.aliases)?a.aliases:[])r.set(w,{...A,name:w,aliasFor:i})}catch(t){process.env.ORACLE_CLI_DEBUG&&console.error(`oracle: failed loading command ${s}: ${t.message}`)}}return r}function ae(e,r=b()){return!r?.latest||!e||L(r.latest,e)<=0?"":`
67
- Update available: ${e} \u2192 ${r.latest}. Run 'oracle update'.
68
- `}function v(e,r){let o=[];o.push(`${re} (v${e})`),o.push(""),o.push(oe.trimEnd());let s=[];for(let n of r.values()){if(["help","version"].includes(n.name))continue;!new Set(["init","doctor","chat","model","auth","chain","setup","data","data-mcp","scan","route","prepare","swap","farm","airdrop","follow","equities","strategy","shadow","mint","mev","snipe","public","mcp","plugins","harness","clients","upgrade","bootstrap","eval","fees","sign","signer","project","context","lifecycle","x402"]).has(n.name)&&n.summary&&s.push(` oracle ${n.name.padEnd(20)} ${n.summary}`)}return s.length&&(o.push(""),o.push("ADDITIONAL"),o.push(...s)),o.join(`
66
+ `;function U(){try{return JSON.parse(m.readFileSync(h.join(l,"package.json"),"utf8")).version||"0.0.0"}catch{return"0.0.0"}}function H(){let e=h.join(l,"src","cli","commands");return m.existsSync(e)?e:h.join(l,"dist","cli","commands")}var P=Object.freeze({clients:"harness"});function I(){let e=H();return m.existsSync(e)?new Map(m.readdirSync(e).filter(o=>o.endsWith(".mjs")).map(o=>[o.replace(/\.mjs$/,""),h.join(e,o)])):new Map}function se(){return[...new Set([...I().keys(),...Object.keys(P)])].sort()}async function g(e){let o=P[e]||e,n=I().get(o);if(!n)return null;try{let t=(await import(T(n).href)).default;if(!t||typeof t!="object"||typeof t.run!="function")return null;let r=t.name||o,s={...t,name:r,__file:n};return e!==o?{...s,name:e,aliasFor:r}:s}catch(a){return process.env.ORACLE_CLI_DEBUG&&console.error(`oracle: failed loading command ${o}: ${a.message}`),null}}async function E(){let e=H(),o=new Map;if(!m.existsSync(e))return o;let n=m.readdirSync(e).filter(a=>a.endsWith(".mjs")).sort();for(let a of n){let t=h.join(e,a);try{let s=(await import(T(t).href+`?t=${Date.now()}`)).default;if(!s||typeof s!="object"||typeof s.run!="function")continue;let i=s.name||a.replace(/\.mjs$/,""),x={...s,name:i,__file:t};o.set(i,x);for(let R of Array.isArray(s.aliases)?s.aliases:[])o.set(R,{...x,name:R,aliasFor:i})}catch(r){process.env.ORACLE_CLI_DEBUG&&console.error(`oracle: failed loading command ${a}: ${r.message}`)}}return o}function ae(e,o=b()){return!o?.latest||!e||k(o.latest,e)<=0?"":`
67
+ Update available: ${e} \u2192 ${o.latest}. Run 'oracle update'.
68
+ `}function _(e,o){let n=[];n.push(`${oe} (v${e})`),n.push(""),n.push(ne.trimEnd());let a=[];for(let t of o.values()){if(["help","version"].includes(t.name))continue;!new Set(["init","doctor","chat","model","auth","chain","setup","data","data-mcp","scan","route","prepare","swap","farm","airdrop","follow","equities","strategy","shadow","mint","mev","snipe","public","mcp","plugins","harness","clients","upgrade","bootstrap","eval","fees","sign","signer","project","context","lifecycle","x402"]).has(t.name)&&t.summary&&a.push(` oracle ${t.name.padEnd(20)} ${t.summary}`)}return a.length&&(n.push(""),n.push("ADDITIONAL"),n.push(...a)),n.join(`
69
69
  `)+`
70
- `+ae(e)}function S(e,r){let o=r?[...r.keys()].sort():ne(),s=o.length?o.join(", "):"(none loaded yet)";return`oracle: unknown command '${e}'. Known: ${s}
70
+ `+ae(e)}function j(e,o){let n=o?[...o.keys()].sort():se(),a=n.length?n.join(", "):"(none loaded yet)";return`oracle: unknown command '${e}'. Known: ${a}
71
71
  Try: oracle --help
72
- `}function E(e){return{argv:e,root:l,bin:g,paths:j}}async function I(e=[]){let r=T();if(e.includes("--version")||e.includes("-V"))return U();if(e[0]==="--help"||e[0]==="-h"){let t=await x();return process.stdout.write(v(r,t)),0}if(e.length===0){if(se(e)){let a=await y("chat");if(a)return a.run(E([]))}let t=await x();return process.stdout.write(v(r,t)),0}if(ce(e[0])){let t=await y("chat");if(t)return t.run(E(e))}let o=e[0],s=e.slice(1);if(o==="version")return U();if(o==="help"){if(s[0]){let a=await y(s[0]);return a?(process.stdout.write((a.usage||`oracle ${a.name}`)+`
73
- `),a.summary&&process.stdout.write(a.summary+`
74
- `),0):(process.stderr.write(S(s[0])),1)}let t=await x();return process.stdout.write(v(r,t)),0}let n=await y(o);if(n){if(s[0]==="--help"||s[0]==="-h")return process.stdout.write((n.usage||`oracle ${n.name}`)+`
75
- `),n.summary&&process.stdout.write(n.summary+`
76
- `),0;try{let t=await n.run(E(s));return typeof t=="number"?t:0}catch(t){return process.stderr.write(`oracle ${o}: ${t?.message||t}
77
- `),1}}return process.stderr.write(S(o)),1}async function U(){let e=T();return process.stdout.write(`oracle ${e}
78
- `),0}function se(e=[],r={stdin:process.stdin,stdout:process.stdout}){return e.length!==0?!1:process.env.ORACLE_FORCE_CHAT==="1"?!0:r.stdin?.isTTY===!0&&r.stdout?.isTTY===!0}function ce(e){return["-m","--model","--provider","-q","--query","-Q","--quiet","-c","--continue","-r","--resume","-s","--skills","-t","--toolsets","--reasoning","--tui","--cli","--yolo","--checkpoints","--source","--max-turns"].includes(String(e||""))}var $e=Object.freeze({data:"./desk-server.mjs",public:"./oracle-public-server.mjs","data-mcp":"./oracle-data-mcp.mjs",init:"./oracle-init.mjs",upgrade:"./oracle-upgrade.mjs",scan:"./oracle-scan.mjs",route:"./oracle-route.mjs",equities:"./oracle-equities.mjs"});function le(){if(!process.argv[1])return!1;try{return N(ie(import.meta.url))===N(process.argv[1])}catch{return!1}}async function ue(e=process.argv.slice(2)){return I(e)}if(le()){let e=await ue();process.exit(typeof e=="number"?e:0)}export{$e as COMMANDS,ue as main};
72
+ `}function A(e){return{argv:e,root:l,bin:y,paths:S}}async function $(e=[]){let o=U();if(e.includes("--version")||e.includes("-V"))return D();if(e[0]==="--help"||e[0]==="-h"){let r=await E();return process.stdout.write(_(o,r)),0}if(e.length===0){if(ce(e)){let s=await g("chat");if(s)return s.run(A([]))}let r=await E();return process.stdout.write(_(o,r)),0}if(ie(e[0])){let r=await g("chat");if(r)return r.run(A(e))}let n=e[0],a=e.slice(1);if(n==="version")return D();if(n==="help"){if(a[0]){let s=await g(a[0]);return s?(process.stdout.write((s.usage||`oracle ${s.name}`)+`
73
+ `),s.summary&&process.stdout.write(s.summary+`
74
+ `),0):(process.stderr.write(j(a[0])),1)}let r=await E();return process.stdout.write(_(o,r)),0}let t=await g(n);if(t){if(a[0]==="--help"||a[0]==="-h")return process.stdout.write((t.usage||`oracle ${t.name}`)+`
75
+ `),t.summary&&process.stdout.write(t.summary+`
76
+ `),0;try{let r=await t.run(A(a));return typeof r=="number"?r:0}catch(r){return process.stderr.write(`oracle ${n}: ${r?.message||r}
77
+ `),1}}return process.stderr.write(j(n)),1}async function D(){let e=U();return process.stdout.write(`oracle ${e}
78
+ `),0}function ce(e=[],o={stdin:process.stdin,stdout:process.stdout}){return e.length!==0?!1:process.env.ORACLE_FORCE_CHAT==="1"?!0:o.stdin?.isTTY===!0&&o.stdout?.isTTY===!0}function ie(e){return["-m","--model","--provider","-q","--query","-Q","--quiet","-c","--continue","-r","--resume","-s","--skills","-t","--toolsets","--reasoning","--tui","--cli","--yolo","--checkpoints","--source","--max-turns"].includes(String(e||""))}var le="x-oracle-sidecar-token",ue=e=>typeof e=="string"&&/^[A-Za-z0-9_-]{43}$/.test(e);function pe(e,o=process.env){if(o.ORACLE_HOSTED_SIDECAR!=="1")return e;if(!ue(o.ORACLE_HOSTED_SIDECAR_TOKEN))throw new Error("Hosted service authentication is missing");let n=new Set([o.ORACLE_DATA_URL,o.ORACLE_PUBLIC_URL].map(a=>{let t=new URL(a);if(t.origin!==a||t.protocol!=="http:"||t.hostname!=="127.0.0.1"||!t.port||t.username||t.password)throw new Error("Hosted services must use exact loopback origins");return t.origin}));return function(t,r={}){let s=new URL(t instanceof Request?t.url:t);if(!n.has(s.origin))return e(t,r);if(s.username||s.password)throw new Error("Hosted service URL contains credentials");let i=new Headers(r.headers??(t instanceof Request?t.headers:void 0));return i.set(le,o.ORACLE_HOSTED_SIDECAR_TOKEN),e(t,{...r,headers:i,redirect:"error"})}}function M(e=process.env){if(e.ORACLE_HOSTED_SIDECAR!=="1")return;let o=Symbol.for("oracle.hosted.sidecar-fetch");globalThis[o]||(globalThis.fetch=pe(globalThis.fetch.bind(globalThis),e),globalThis[o]=!0)}var qe=Object.freeze({data:"./desk-server.mjs",public:"./oracle-public-server.mjs","data-mcp":"./oracle-data-mcp.mjs",init:"./oracle-init.mjs",upgrade:"./oracle-upgrade.mjs",scan:"./oracle-scan.mjs",route:"./oracle-route.mjs",equities:"./oracle-equities.mjs"});function fe(){if(!process.argv[1])return!1;try{return N(de(import.meta.url))===N(process.argv[1])}catch{return!1}}async function me(e=process.argv.slice(2)){return M(),$(e)}if(fe()){let e=await me();process.exit(typeof e=="number"?e:0)}export{qe as COMMANDS,me as main};