@oracle-agent/oracle 0.22.4 → 0.22.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.
@@ -107,12 +107,6 @@ venue, check `address_book_lookup` / `address_book_list` instead of asking them
107
107
  paste it again. Labels only — never private keys, seeds, or passphrases, and a
108
108
  remembered label is a convenience, not an authorization.
109
109
 
110
- ## RLM / Prime research (optional)
111
-
112
- Long-horizon research can use `oracle prime` (Prime Intellect) or native chat.
113
- That lane is public read/prepare only: signer env is stripped, and research GO
114
- is never release GO. Money-path walls in this SOUL still apply.
115
-
116
110
  ## Confidence
117
111
 
118
112
  State it explicitly: `high` / `moderate` / `low` / `unknown`. A confident wrong
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{realpathSync as U}from"node:fs";import{fileURLToPath as re}from"node:url";import h from"node:fs";import g from"node:path";import{pathToFileURL as Y}from"node:url";import d from"node:fs";import P from"node:os";import i from"node:path";import{fileURLToPath as D}from"node:url";var T=i.dirname(D(import.meta.url)),l=i.resolve(T,"../..");function u(){return process.env.ORACLE_FAKE_HOME||P.homedir()}function _(){return process.env.ORACLE_PUBLIC_DESKTOP==="1"}function f(){return _()?process.env.ORACLE_CONFIG_DIR||i.join(u(),".config","oracle"):i.join(u(),".config","oracle")}function $(){return i.join(f(),"exec.env")}function v(){return i.join(f(),"desk.json")}function A(){return i.join(f(),"env")}function p({force:e=!1}={}){if(p._done&&!e)return p._result||null;p._done=!0;let o={},r=(a,t)=>{if(t==null)return;let n=String(t).trim();n&&(process.env[a]!=null&&String(process.env[a]).trim()!==""||(process.env[a]=n,o[a]=n))};try{let a=A();if(d.existsSync(a))for(let t of d.readFileSync(a,"utf8").split(/\r?\n/)){let n=t.match(/^\s*([A-Z0-9_]+)\s*=\s*(.*?)\s*$/);if(!n||n[2].startsWith("#"))continue;let c=n[2];(c.startsWith('"')&&c.endsWith('"')||c.startsWith("'")&&c.endsWith("'"))&&(c=c.slice(1,-1)),r(n[1],c)}}catch{}try{let a=v();if(d.existsSync(a)){let t=JSON.parse(d.readFileSync(a,"utf8"));t&&typeof t=="object"&&(r("ORACLE_DESK_URL",t.deskUrl||t.dataUrl||t.url),r("ORACLE_DATA_URL",t.dataUrl||t.deskUrl||t.url),r("ORACLE_API_URL",t.apiUrl||t.dataUrl||t.deskUrl),r("ORACLE_PUBLIC_URL",t.publicUrl||t.deskUrl||t.dataUrl),r("ORACLE_EXEC_URL",t.execUrl),r("MAD_DESK_URL",t.deskUrl||t.dataUrl))}}catch{}let s=process.env.ORACLE_DESK_URL||process.env.ORACLE_DATA_URL||"";return s&&(r("ORACLE_DESK_URL",s),r("ORACLE_DATA_URL",s),r("ORACLE_API_URL",s),r("ORACLE_PUBLIC_URL",s),r("MAD_DESK_URL",s)),p._result=Object.keys(o).length?o:null,p._result}try{p()}catch{}function H(){return process.env.HERMES_HOME?i.resolve(process.env.HERMES_HOME):i.join(u(),".hermes")}function I(){return i.join(u(),".claude.json")}function M(e=process.cwd()){return i.join(e,".mcp.json")}function F(){return process.platform==="darwin"?i.join(u(),"Library","Application Support","Claude","claude_desktop_config.json"):i.join(u(),".config","Claude","claude_desktop_config.json")}function N(){return i.join(u(),".codex","config.toml")}function C(){return i.join(f(),"connectors")}function q(){return i.join(C(),"chatgpt-openapi.json")}function K(){return i.join(f(),"active-chain.json")}function y(e){let o=[i.join(l,"bin",e),i.join(l,"dist","bin",e),i.join(l,"..","bin",e)];return o.find(r=>d.existsSync(r))||o[0]}function B(e){return d.mkdirSync(e,{recursive:!0}),e}var E={homeDir:u,isPublicDesktop:_,oracleConfigDir:f,oracleExecEnvPath:$,oracleDeskJsonPath:v,oracleEnvFilePath:A,loadDeskRouting:p,hermesRoot:H,activeChainPath:K,claudeCodeUserConfigPath:I,claudeCodeProjectMcpPath:M,claudeDesktopConfigPath:F,codexConfigPath:N,chatgptConnectorDir:C,chatgptOpenApiPath:q,packageBin:y,ensureDir:B,PACKAGE_ROOT:l};import{execFile as G}from"node:child_process";import{existsSync as de,mkdirSync as fe,readFileSync as V,realpathSync as me,writeFileSync as he}from"node:fs";import R from"node:path";import{promisify as J}from"node:util";var xe=J(G);var ke=1440*60*1e3;function j(e,o){let r=t=>String(t).replace(/^v/,"").split("-")[0].split(".").map(n=>Number.parseInt(n,10)||0),s=r(e),a=r(o);for(let t=0;t<Math.max(s.length,a.length);t+=1){let n=s[t]??0,c=a[t]??0;if(n>c)return 1;if(n<c)return-1}return 0}function W(e){let o=e?.stateDir||R.join(process.env.HOME||".",".oracle");return R.join(o,"update-check.json")}function b(e){try{return JSON.parse(V(W(e),"utf8"))}catch{return null}}var z="oracle \u2014 self-custody multichain agent control plane",Q=`READ / RESEARCH (no keys, this package)
2
+ import{realpathSync as U}from"node:fs";import{fileURLToPath as re}from"node:url";import h from"node:fs";import g from"node:path";import{pathToFileURL as Y}from"node:url";import d from"node:fs";import P from"node:os";import i from"node:path";import{fileURLToPath as D}from"node:url";var T=i.dirname(D(import.meta.url)),l=i.resolve(T,"../..");function u(){return process.env.ORACLE_FAKE_HOME||P.homedir()}function v(){return process.env.ORACLE_PUBLIC_DESKTOP==="1"}function f(){return v()?process.env.ORACLE_CONFIG_DIR||i.join(u(),".config","oracle"):i.join(u(),".config","oracle")}function $(){return i.join(f(),"exec.env")}function _(){return i.join(f(),"desk.json")}function A(){return i.join(f(),"env")}function p({force:e=!1}={}){if(p._done&&!e)return p._result||null;p._done=!0;let o={},r=(a,t)=>{if(t==null)return;let n=String(t).trim();n&&(process.env[a]!=null&&String(process.env[a]).trim()!==""||(process.env[a]=n,o[a]=n))};try{let a=A();if(d.existsSync(a))for(let t of d.readFileSync(a,"utf8").split(/\r?\n/)){let n=t.match(/^\s*([A-Z0-9_]+)\s*=\s*(.*?)\s*$/);if(!n||n[2].startsWith("#"))continue;let c=n[2];(c.startsWith('"')&&c.endsWith('"')||c.startsWith("'")&&c.endsWith("'"))&&(c=c.slice(1,-1)),r(n[1],c)}}catch{}try{let a=_();if(d.existsSync(a)){let t=JSON.parse(d.readFileSync(a,"utf8"));t&&typeof t=="object"&&(r("ORACLE_DESK_URL",t.deskUrl||t.dataUrl||t.url),r("ORACLE_DATA_URL",t.dataUrl||t.deskUrl||t.url),r("ORACLE_API_URL",t.apiUrl||t.dataUrl||t.deskUrl),r("ORACLE_PUBLIC_URL",t.publicUrl||t.deskUrl||t.dataUrl),r("ORACLE_EXEC_URL",t.execUrl),r("MAD_DESK_URL",t.deskUrl||t.dataUrl))}}catch{}let s=process.env.ORACLE_DESK_URL||process.env.ORACLE_DATA_URL||"";return s&&(r("ORACLE_DESK_URL",s),r("ORACLE_DATA_URL",s),r("ORACLE_API_URL",s),r("ORACLE_PUBLIC_URL",s),r("MAD_DESK_URL",s)),p._result=Object.keys(o).length?o:null,p._result}try{p()}catch{}function H(){return process.env.HERMES_HOME?i.resolve(process.env.HERMES_HOME):i.join(u(),".hermes")}function I(){return i.join(u(),".claude.json")}function M(e=process.cwd()){return i.join(e,".mcp.json")}function F(){return process.platform==="darwin"?i.join(u(),"Library","Application Support","Claude","claude_desktop_config.json"):i.join(u(),".config","Claude","claude_desktop_config.json")}function N(){return i.join(u(),".codex","config.toml")}function C(){return i.join(f(),"connectors")}function q(){return i.join(C(),"chatgpt-openapi.json")}function K(){return i.join(f(),"active-chain.json")}function y(e){let o=[i.join(l,"bin",e),i.join(l,"dist","bin",e),i.join(l,"..","bin",e)];return o.find(r=>d.existsSync(r))||o[0]}function B(e){return d.mkdirSync(e,{recursive:!0}),e}var E={homeDir:u,isPublicDesktop:v,oracleConfigDir:f,oracleExecEnvPath:$,oracleDeskJsonPath:_,oracleEnvFilePath:A,loadDeskRouting:p,hermesRoot:H,activeChainPath:K,claudeCodeUserConfigPath:I,claudeCodeProjectMcpPath:M,claudeDesktopConfigPath:F,codexConfigPath:N,chatgptConnectorDir:C,chatgptOpenApiPath:q,packageBin:y,ensureDir:B,PACKAGE_ROOT:l};import{execFile as G}from"node:child_process";import{existsSync as de,mkdirSync as fe,readFileSync as V,realpathSync as me,writeFileSync as he}from"node:fs";import j from"node:path";import{promisify as J}from"node:util";var xe=J(G);var ke=1440*60*1e3;function R(e,o){let r=t=>String(t).replace(/^v/,"").split("-")[0].split(".").map(n=>Number.parseInt(n,10)||0),s=r(e),a=r(o);for(let t=0;t<Math.max(s.length,a.length);t+=1){let n=s[t]??0,c=a[t]??0;if(n>c)return 1;if(n<c)return-1}return 0}function W(e){let o=e?.stateDir||j.join(process.env.HOME||".",".oracle");return j.join(o,"update-check.json")}function b(e){try{return JSON.parse(V(W(e),"utf8"))}catch{return null}}var z="oracle \u2014 self-custody multichain agent control plane",Q=`READ / RESEARCH (no keys, this package)
3
3
  oracle open the native Oracle chat (TTY)
4
4
  oracle bootstrap optional: install an isolated Hermes compatibility runtime
5
5
  oracle init install agent lanes + read plane (dry-run by default)
@@ -28,16 +28,15 @@ import{realpathSync as U}from"node:fs";import{fileURLToPath as re}from"node:url"
28
28
  manage Agent Plugins (open-standard portable agent tooling)
29
29
  oracle harness detect|list scan PATH for installed agent harnesses (opencode, claude, codex, cursor\u2026)
30
30
  oracle fees status|check check Locals Only 0% fee eligibility
31
- oracle prime doctor|-p Prime Intellect RLM research lane (public only)
32
- oracle eval desk|fidelity|hybrid|guards|prime|all
33
- harness eval battery (unsigned / research only)
31
+ oracle eval desk|fidelity|hybrid|guards|all
32
+ native harness eval battery (unsigned / research only)
34
33
  oracle upgrade upgrade installed agent lanes
35
34
 
36
35
  oracle <noun> --help for details. This package prepares unsigned actions and
37
36
  never handles keys, signs, or broadcasts transactions.
38
- `;function O(){try{return JSON.parse(h.readFileSync(g.join(l,"package.json"),"utf8")).version||"0.0.0"}catch{return"0.0.0"}}function X(){let e=g.join(l,"src","cli","commands");return h.existsSync(e)?e:g.join(l,"dist","cli","commands")}async function m(){let e=X(),o=new Map;if(!h.existsSync(e))return o;let r=h.readdirSync(e).filter(s=>s.endsWith(".mjs")).sort();for(let s of r){let a=g.join(e,s);try{let n=(await import(Y(a).href+`?t=${Date.now()}`)).default;if(!n||typeof n!="object"||typeof n.run!="function")continue;let c=n.name||s.replace(/\.mjs$/,"");o.set(c,{...n,name:c,__file:a})}catch(t){process.env.ORACLE_CLI_DEBUG&&console.error(`oracle: failed loading command ${s}: ${t.message}`)}}return o}function Z(e,o=b()){return!o?.latest||!e||j(o.latest,e)<=0?"":`
37
+ `;function O(){try{return JSON.parse(h.readFileSync(g.join(l,"package.json"),"utf8")).version||"0.0.0"}catch{return"0.0.0"}}function X(){let e=g.join(l,"src","cli","commands");return h.existsSync(e)?e:g.join(l,"dist","cli","commands")}async function m(){let e=X(),o=new Map;if(!h.existsSync(e))return o;let r=h.readdirSync(e).filter(s=>s.endsWith(".mjs")).sort();for(let s of r){let a=g.join(e,s);try{let n=(await import(Y(a).href+`?t=${Date.now()}`)).default;if(!n||typeof n!="object"||typeof n.run!="function")continue;let c=n.name||s.replace(/\.mjs$/,"");o.set(c,{...n,name:c,__file:a})}catch(t){process.env.ORACLE_CLI_DEBUG&&console.error(`oracle: failed loading command ${s}: ${t.message}`)}}return o}function Z(e,o=b()){return!o?.latest||!e||R(o.latest,e)<=0?"":`
39
38
  Update available: ${e} \u2192 ${o.latest}. Run 'oracle update'.
40
- `}function x(e,o){let r=[];r.push(`${z} (v${e})`),r.push(""),r.push(Q.trimEnd());let s=[];for(let a of o.values()){if(["help","version"].includes(a.name))continue;!new Set(["init","doctor","chat","model","auth","chain","setup","data","data-mcp","scan","route","prepare","swap","farm","follow","equities","strategy","public","mcp","plugins","harness","upgrade","bootstrap","eval","prime","fees"]).has(a.name)&&a.summary&&s.push(` oracle ${a.name.padEnd(20)} ${a.summary}`)}return s.length&&(r.push(""),r.push("ADDITIONAL"),r.push(...s)),r.join(`
39
+ `}function x(e,o){let r=[];r.push(`${z} (v${e})`),r.push(""),r.push(Q.trimEnd());let s=[];for(let a of o.values()){if(["help","version"].includes(a.name))continue;!new Set(["init","doctor","chat","model","auth","chain","setup","data","data-mcp","scan","route","prepare","swap","farm","follow","equities","strategy","public","mcp","plugins","harness","upgrade","bootstrap","eval","fees"]).has(a.name)&&a.summary&&s.push(` oracle ${a.name.padEnd(20)} ${a.summary}`)}return s.length&&(r.push(""),r.push("ADDITIONAL"),r.push(...s)),r.join(`
41
40
  `)+`
42
41
  `+Z(e)}function w(e,o){let r=[...o.keys()].sort(),s=r.length?r.join(", "):"(none loaded yet)";return`oracle: unknown command '${e}'. Known: ${s}
43
42
  Try: oracle --help