@oracle-agent/oracle 0.22.3 → 0.22.4
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,6 +107,12 @@ 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
|
+
|
|
110
116
|
## Confidence
|
|
111
117
|
|
|
112
118
|
State it explicitly: `high` / `moderate` / `low` / `unknown`. A confident wrong
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oracle-prime-research
|
|
3
|
+
description: "Use when running Prime Intellect RLM research through Oracle. Public read/prepare only."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Oracle Prime research (in-harness)
|
|
7
|
+
|
|
8
|
+
Lane: `oracle prime`
|
|
9
|
+
|
|
10
|
+
## Walls
|
|
11
|
+
|
|
12
|
+
- Signer/exec env stripped (`ORACLE_SIGNER_*`, `MAD_*`, private key vars)
|
|
13
|
+
- `ORACLE_RLM_MODE=research`
|
|
14
|
+
- No arm, sign, broadcast, vault, or key paste
|
|
15
|
+
- Research GO ≠ release GO
|
|
16
|
+
|
|
17
|
+
## Allowed
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
oracle --version
|
|
21
|
+
oracle doctor
|
|
22
|
+
oracle data catalog|call|health
|
|
23
|
+
oracle scan ...
|
|
24
|
+
oracle route ... # quote / unsigned prepare only
|
|
25
|
+
oracle chain ...
|
|
26
|
+
oracle eval guards|fidelity|hybrid|prime|all
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Commands
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
oracle prime doctor
|
|
33
|
+
oracle prime -p "compare HL vs Base USDC routes with oracle data only"
|
|
34
|
+
oracle prime # interactive if prime-agent installed
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Fallback
|
|
38
|
+
|
|
39
|
+
If `prime-agent` is missing: use native `oracle chat` with this skill loaded.
|
|
40
|
+
The Oracle SOUL remains the system prompt for native chat.
|
package/dist/bin/oracle.mjs
CHANGED
|
@@ -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
|
|
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)
|
|
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,13 +28,16 @@ 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
34
|
oracle upgrade upgrade installed agent lanes
|
|
32
35
|
|
|
33
36
|
oracle <noun> --help for details. This package prepares unsigned actions and
|
|
34
37
|
never handles keys, signs, or broadcasts transactions.
|
|
35
|
-
`;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||
|
|
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?"":`
|
|
36
39
|
Update available: ${e} \u2192 ${o.latest}. Run 'oracle update'.
|
|
37
|
-
`}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"]).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(`
|
|
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(`
|
|
38
41
|
`)+`
|
|
39
42
|
`+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}
|
|
40
43
|
Try: oracle --help
|