@oracle-agent/oracle 0.17.0 → 0.18.1
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/README.md +27 -19
- package/dist/bin/oracle-gateway.mjs +21 -0
- package/dist/cli/commands/auth.mjs +12 -12
- package/dist/cli/commands/chat.mjs +35 -35
- package/dist/cli/commands/data.mjs +12 -7
- package/dist/cli/commands/harness.mjs +6 -12
- package/dist/cli/commands/model.mjs +42 -42
- package/dist/cli/commands/sign.mjs +18 -14
- package/package.json +26 -6
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
var
|
|
2
|
-
`),1;let
|
|
3
|
-
`),1;if(
|
|
4
|
-
`),1;u(
|
|
1
|
+
var _={name:"sign",summary:"provision / check / import local signer keys",group:"sign",usage:"oracle sign <init|doctor|import> ...",async run(e){let o=e.argv[0];if(o==="init")return e.dispatchOperator("oracle-agentic-init",e.argv.slice(1),{appendHintOnError:!0});if(o==="doctor")return e.dispatchOperator("oracle-agentic-doctor",e.argv.slice(1),{appendHintOnError:!0});if(o==="import"){let{createInterface:g}=await import("node:readline"),{writeFileSync:n,mkdirSync:u,existsSync:l,unlinkSync:c,readFileSync:f,statSync:y}=await import("node:fs"),{join:i,parse:t}=await import("node:path"),{homedir:m,platform:$}=await import("node:os"),p=process.env.ORACLE_CONFIG_DIR||i(m(),".config","oracle"),v=i(p,"keys"),r=i(v,"evm.json"),s=e.argv.includes("--keyfile")?e.argv[e.argv.indexOf("--keyfile")+1]:null;if(s){if(!l(s))return process.stderr.write(`oracle sign: ${s} not found
|
|
2
|
+
`),1;let a=f(s,"utf8").trim(),d=a.startsWith("{")&&JSON.parse(a).key||a;if(!d.startsWith("0x")||d.length<64)return process.stderr.write(`oracle sign: invalid private key in file
|
|
3
|
+
`),1;if(l(r))return process.stderr.write(`oracle sign: ${r} already exists
|
|
4
|
+
`),1;u(v,{recursive:!0,mode:448}),n(r,JSON.stringify({key:d},null,2)+`
|
|
5
5
|
`,{mode:384}),process.stderr.write(`Saved to ${r} (0600)
|
|
6
|
-
`);try{try{n(
|
|
7
|
-
`,"utf8"),process.stderr.write(`Armed: ${
|
|
8
|
-
`),0}let
|
|
6
|
+
`);try{try{n(s,Buffer.alloc(y(s).size,0))}catch{}c(s)}catch{}let h=i(p,"exec.env");return n(h,`ORACLE_EXEC_ENABLED=1
|
|
7
|
+
`,"utf8"),process.stderr.write(`Armed: ${h}
|
|
8
|
+
`),await S(p,r),0}let E=g({input:process.stdin,output:process.stderr}),O=a=>new Promise(d=>E.question(a,d));process.stderr.write(`
|
|
9
9
|
Your key stays local \u2014 Oracle never sends it anywhere.
|
|
10
10
|
`),process.stderr.write(`Paste your EVM private key (0x...):
|
|
11
|
-
> `);let
|
|
12
|
-
`),1;if(
|
|
13
|
-
`),1;u(
|
|
11
|
+
> `);let x=await O("");E.close();let w=x.trim();if(!w.startsWith("0x")||w.length<64)return process.stderr.write(`oracle sign: invalid private key \u2014 must be 0x-prefixed hex
|
|
12
|
+
`),1;if(l(r))return process.stderr.write(`oracle sign: ${r} already exists \u2014 remove it first or use 'oracle sign doctor'
|
|
13
|
+
`),1;u(v,{recursive:!0,mode:448}),n(r,JSON.stringify({key:w},null,2)+`
|
|
14
14
|
`,{mode:384}),process.stderr.write(`Saved to ${r} (0600)
|
|
15
|
-
`);let
|
|
16
|
-
`,"utf8"),process.stderr.write(`Armed: ${
|
|
17
|
-
`),0}return process.stderr.write(`usage: oracle sign <init|doctor|import> ...
|
|
15
|
+
`);let k=i(p,"exec.env");return n(k,`ORACLE_EXEC_ENABLED=1
|
|
16
|
+
`,"utf8"),process.stderr.write(`Armed: ${k}
|
|
17
|
+
`),await S(p,r),0}return process.stderr.write(`usage: oracle sign <init|doctor|import> ...
|
|
18
18
|
oracle sign init provision keys + policy (interactive)
|
|
19
19
|
oracle sign import import an existing EVM private key
|
|
20
20
|
oracle sign doctor check local signer readiness
|
|
21
|
-
`),1}};
|
|
21
|
+
`),1}};async function S(e,o){let{readFileSync:g,writeFileSync:n,existsSync:u}=await import("node:fs"),{join:l}=await import("node:path"),c=l(e,"signer.env"),f=u(c)?g(c,"utf8").split(`
|
|
22
|
+
`):[],y=new Map(f.filter(t=>t.includes("=")).map(t=>t.split("=",2)));for(let t of["EVM_KEY_FILE","HL_KEY_FILE"])y.set(t,o);let i=[...y.entries()].map(([t,m])=>`${t}=${m}`).join(`
|
|
23
|
+
`)+`
|
|
24
|
+
`;n(c,i,"utf8"),process.stderr.write(`Wired ${o} into ${c}
|
|
25
|
+
`)}export{_ as default};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oracle-agent/oracle",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Oracle: standalone prepare-only multichain agent control plane
|
|
3
|
+
"version": "0.18.1",
|
|
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",
|
|
7
7
|
"publishConfig": {
|
|
@@ -18,9 +18,8 @@
|
|
|
18
18
|
"evm",
|
|
19
19
|
"self-custody",
|
|
20
20
|
"defi",
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"mcp"
|
|
21
|
+
"mcp",
|
|
22
|
+
"agent-plugins"
|
|
24
23
|
],
|
|
25
24
|
"engines": {
|
|
26
25
|
"node": ">=20.19.0"
|
|
@@ -34,7 +33,8 @@
|
|
|
34
33
|
"oracle-upgrade": "./dist/bin/oracle-upgrade.mjs",
|
|
35
34
|
"oracle-scan": "./dist/bin/oracle-scan.mjs",
|
|
36
35
|
"oracle-route": "./dist/bin/oracle-route.mjs",
|
|
37
|
-
"oracle-equities": "./dist/bin/oracle-equities.mjs"
|
|
36
|
+
"oracle-equities": "./dist/bin/oracle-equities.mjs",
|
|
37
|
+
"oracle-gateway": "./dist/bin/oracle-gateway.mjs"
|
|
38
38
|
},
|
|
39
39
|
"exports": {
|
|
40
40
|
".": "./dist/index.mjs",
|
|
@@ -66,6 +66,26 @@
|
|
|
66
66
|
"ethers": "^6.16.0",
|
|
67
67
|
"viem": "^2.55.8"
|
|
68
68
|
},
|
|
69
|
+
"peerDependencies": {
|
|
70
|
+
"grammy": "*",
|
|
71
|
+
"discord.js": "*",
|
|
72
|
+
"whatsapp-web.js": "*",
|
|
73
|
+
"qrcode-terminal": "*"
|
|
74
|
+
},
|
|
75
|
+
"peerDependenciesMeta": {
|
|
76
|
+
"grammy": {
|
|
77
|
+
"optional": true
|
|
78
|
+
},
|
|
79
|
+
"discord.js": {
|
|
80
|
+
"optional": true
|
|
81
|
+
},
|
|
82
|
+
"whatsapp-web.js": {
|
|
83
|
+
"optional": true
|
|
84
|
+
},
|
|
85
|
+
"qrcode-terminal": {
|
|
86
|
+
"optional": true
|
|
87
|
+
}
|
|
88
|
+
},
|
|
69
89
|
"files": [
|
|
70
90
|
"dist/",
|
|
71
91
|
"public/",
|