@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.
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import{spawn as w,spawnSync as I}from"node:child_process";import p from"node:fs";import L from"node:os";import d from"node:path";import{existsSync as P,readFileSync as y}from"node:fs";import{dirname as h,join as g}from"node:path";import{fileURLToPath as A}from"node:url";function M(e){let r=h(A(e));for(let t=0;t<8;t+=1){let o=g(r,"package.json");if(P(o))try{let a=JSON.parse(y(o,"utf8"));if(a&&typeof a.version=="string")return r}catch{}let n=h(r);if(n===r)break;r=n}throw new Error(`oracle: could not resolve package root from ${e}`)}function _(e,r){let t=M(r),o=g(t,"dist","assets",e);return P(o)?o:g(t,e)}var V=Object.freeze(["T1JBQ0xFX1NJR05FUl9VUkw=","T1JBQ0xFX1NJR05FUl9UT0tFTg==","T1JBQ0xFX1NJR05FUl9UT0tFTl9GSUxF","TUFEX1NJR05FUl9UT0tFTg==","TUFEX0VYRUNVVEVfRU5BQkxFRA==","T1JBQ0xFX0VYRUNfRU5BQkxFRA==","T1JBQ0xFX0VYRUNVVEVfRU5BQkxFRA==","RVZNX0tFWV9GSUxF","SExfS0VZX0ZJTEU=","T1JBQ0xFX1BSSVZBVEVfS0VZ","UFJJVkFURV9LRVk=","RVRIX1BSSVZBVEVfS0VZ"]);function F(e){return Buffer.from(String(e),"base64").toString("utf8")}function S(){return V.map(F)}var T=`# Oracle public-only walls (Prime / RLM research)
|
|
2
|
+
|
|
3
|
+
You may only run public Oracle read/prepare tools:
|
|
4
|
+
- oracle --version / --help / doctor / fees
|
|
5
|
+
- oracle data catalog|call|health
|
|
6
|
+
- oracle scan ...
|
|
7
|
+
- oracle route ... (quote/prepare unsigned only)
|
|
8
|
+
- oracle chain ...
|
|
9
|
+
|
|
10
|
+
Forbidden: arm, sign, broadcast, vault, credential paste, signer URLs, private keys.
|
|
11
|
+
Write findings under ./findings/ with command evidence.
|
|
12
|
+
Research GO is not release GO.
|
|
13
|
+
`;function s(e,r){return e&&typeof e=="object"?e[r]:void 0}function f(e=process.env){let r={...e,ORACLE_RLM_MODE:"research"};for(let t of S())delete r[t];return r}function x(e=process.env){let r=String(s(e,"ORACLE_PRIME_BIN")||"").trim();if(r&&p.existsSync(r))return r;let t=s(e,"HOME")||L.homedir(),o=[d.join(t,".local","bin","prime-agent"),d.join(t,"projects","prime-agent","prime-agent.sh"),"prime-agent"];for(let n of o){if(n==="prime-agent"){let a=I("bash",["-lc","command -v prime-agent"],{encoding:"utf8",env:e}),l=(a.stdout||"").trim();if(a.status===0&&l)return l;continue}if(p.existsSync(n))return n}return null}function E(e=process.env){let r=String(s(e,"ORACLE_PRIME_ROOT")||"").trim();return r||d.join(s(e,"HOME")||L.homedir(),"projects","oracle-prime-workspace")}function k(e){p.mkdirSync(d.join(e,"findings"),{recursive:!0}),p.mkdirSync(d.join(e,"evals"),{recursive:!0}),p.mkdirSync(d.join(e,"skills"),{recursive:!0});let r=d.join(e,"skills","oracle-public-only.md"),t=T;try{let o=d.join(_("skills",import.meta.url),"oracle-prime-research","SKILL.md");p.existsSync(o)&&(t=p.readFileSync(o,"utf8"))}catch{}return p.existsSync(r)||p.writeFileSync(r,t),{root:e,skillPath:r}}function R(e=process.env){return s(e,"ORACLE_PRIME_PROVIDER")?{provider:s(e,"ORACLE_PRIME_PROVIDER"),model:s(e,"ORACLE_PRIME_MODEL")}:s(e,"OPENAI_API_KEY")?{provider:"openai",model:s(e,"ORACLE_PRIME_MODEL")}:s(e,"DEEPSEEK_API_KEY")?{provider:"deepseek",model:s(e,"ORACLE_PRIME_MODEL")}:s(e,"OPENROUTER_API_KEY")?{provider:"openrouter",model:s(e,"ORACLE_PRIME_MODEL")}:s(e,"ANTHROPIC_API_KEY")?{provider:"anthropic",model:s(e,"ORACLE_PRIME_MODEL")}:{provider:null,model:s(e,"ORACLE_PRIME_MODEL")||null}}function O(e={}){let r=e.env||process.env,t=f(r),o=x(r);if(!o)return{ok:!1,skipped:!0,reason:"prime-agent-not-found",hint:"Install Prime Agent or set ORACLE_PRIME_BIN. Native oracle chat remains available."};let n=e.cwd||E(r),{skillPath:a}=k(n),l=R(t),c=["--cwd",n,"--skill",a];if(l.provider&&c.push("--provider",l.provider),l.model&&c.push("--model",l.model),e.print?(c.push("-p","--no-session"),e.mode&&c.push("--mode",e.mode),c.push(String(e.prompt||"oracle --version"))):e.args?.length&&c.push(...e.args),e.capture){let u=I(o,c,{env:t,encoding:"utf8",cwd:n,maxBuffer:8388608});return{ok:u.status===0,code:u.status??1,skipped:!1,bin:o,root:n,stdout:u.stdout||"",stderr:u.stderr||""}}let i=w(o,c,{env:t,cwd:n,stdio:"inherit"});return new Promise(u=>{i.on("error",m=>{u({ok:!1,code:1,skipped:!1,error:m.message,bin:o,root:n})}),i.on("exit",m=>{u({ok:m===0,code:m??1,skipped:!1,bin:o,root:n})})})}function v(e=process.env){let r=x(e),t=R(e),o=f(e),n=S().filter(a=>o[a]);return{primeAgent:r||null,provider:t.provider,model:t.model||null,workspace:E(e),rlmMode:o.ORACLE_RLM_MODE,executionLeaks:n,ok:!!r&&n.length===0}}function U(){return["oracle prime \u2014 Prime Intellect RLM research lane (public Oracle only)",""," oracle prime doctor check prime-agent + provider + wall strip"," oracle prime interactive research session (if prime-agent installed)",' oracle prime -p "prompt" one-shot print mode',' oracle prime --print "prompt" same as -p',"","Env:"," ORACLE_PRIME_BIN path to prime-agent"," ORACLE_PRIME_ROOT workspace (default ~/projects/oracle-prime-workspace)"," ORACLE_PRIME_PROVIDER openai|deepseek|openrouter|anthropic"," ORACLE_PRIME_MODEL optional model id","","Walls: signer/exec tokens stripped. Research GO is not release GO."].join(`
|
|
14
|
+
`)}var G={name:"prime",summary:"Prime Intellect RLM research lane (public Oracle only)",group:"read",usage:"oracle prime [doctor|-p <prompt>]",async run(e){let r=e.argv||[];if(r[0]==="--help"||r[0]==="-h")return process.stdout.write(U()+`
|
|
15
|
+
`),0;if(r[0]==="doctor"){let i=v(process.env);return process.stdout.write(JSON.stringify(i,null,2)+`
|
|
16
|
+
`),i.ok?0:1}let t=r.findIndex(i=>i==="-p"||i==="--print"),o=t!==-1,n=null;if(o&&(n=r.slice(t+1).join(" ").trim(),!n))return process.stderr.write(`oracle prime: -p requires a prompt
|
|
17
|
+
`),64;let a=E(process.env);if(k(a),f(process.env),o){let i=O({print:!0,prompt:n,mode:"text",capture:!0,cwd:a});return i.skipped?(process.stderr.write(`oracle prime: ${i.reason}
|
|
18
|
+
${i.hint||""}
|
|
19
|
+
Install Prime Agent, or use native: oracle chat
|
|
20
|
+
`),2):(i.stdout&&process.stdout.write(i.stdout),i.stderr&&process.stderr.write(i.stderr),i.ok?0:i.code||1)}if(!process.stdin.isTTY)return process.stderr.write(`oracle prime: interactive mode needs a TTY. Use: oracle prime -p "..."
|
|
21
|
+
`),64;if(!R(process.env).provider)return process.stderr.write(`oracle prime: no model key found (OPENAI/DEEPSEEK/OPENROUTER/ANTHROPIC).
|
|
22
|
+
Set a key or run prime-agent /login, then retry.
|
|
23
|
+
`),2;let c=await O({cwd:a});return c.skipped?(process.stderr.write(`oracle prime: ${c.reason}
|
|
24
|
+
${c.hint||""}
|
|
25
|
+
Fallback: oracle chat (native harness with Oracle SOUL)
|
|
26
|
+
`),2):c.ok?0:c.code||1}};export{G as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oracle-agent/oracle",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.4",
|
|
4
4
|
"description": "Oracle: standalone prepare-only multichain agent control plane. Runs its own agent loop, or plugs into any MCP-compatible harness. Policy-bounded intents for a user-signed wallet; the public package never takes your key.",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"type": "module",
|
|
@@ -70,10 +70,12 @@
|
|
|
70
70
|
"viem": "^2.55.8"
|
|
71
71
|
},
|
|
72
72
|
"peerDependencies": {
|
|
73
|
-
"grammy": "*",
|
|
74
73
|
"discord.js": "*",
|
|
74
|
+
"grammy": "*",
|
|
75
|
+
"playwright-core": "*",
|
|
76
|
+
"qrcode-terminal": "*",
|
|
75
77
|
"whatsapp-web.js": "*",
|
|
76
|
-
"
|
|
78
|
+
"@browserbasehq/stagehand": "*"
|
|
77
79
|
},
|
|
78
80
|
"peerDependenciesMeta": {
|
|
79
81
|
"grammy": {
|
|
@@ -87,6 +89,12 @@
|
|
|
87
89
|
},
|
|
88
90
|
"qrcode-terminal": {
|
|
89
91
|
"optional": true
|
|
92
|
+
},
|
|
93
|
+
"playwright-core": {
|
|
94
|
+
"optional": true
|
|
95
|
+
},
|
|
96
|
+
"@browserbasehq/stagehand": {
|
|
97
|
+
"optional": true
|
|
90
98
|
}
|
|
91
99
|
},
|
|
92
100
|
"files": [
|