@oracle-agent/oracle 0.26.0 → 0.28.0

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 (44) hide show
  1. package/README.md +2 -2
  2. package/SETUP.md +27 -1
  3. package/dist/assets/skills/oracle-desk-product/SKILL.md +1 -1
  4. package/dist/bin/desk-server.mjs +35 -79
  5. package/dist/bin/oracle-data-mcp.mjs +13 -57
  6. package/dist/bin/oracle-gateway.mjs +1 -1
  7. package/dist/bin/oracle-public-server.mjs +4 -48
  8. package/dist/bin/oracle-route.mjs +22 -66
  9. package/dist/bin/oracle-scan.mjs +15 -59
  10. package/dist/cli/commands/auth.mjs +3 -3
  11. package/dist/cli/commands/chat.mjs +154 -145
  12. package/dist/cli/commands/doctor.mjs +4 -4
  13. package/dist/cli/commands/eval.mjs +147 -190
  14. package/dist/cli/commands/farm.mjs +34 -78
  15. package/dist/cli/commands/follow.mjs +17 -61
  16. package/dist/cli/commands/harness.mjs +3 -3
  17. package/dist/cli/commands/init.mjs +2 -2
  18. package/dist/cli/commands/model.mjs +158 -150
  19. package/dist/cli/commands/receipt.mjs +3 -3
  20. package/dist/cli/commands/resolve.mjs +13 -57
  21. package/dist/cli/commands/setup.mjs +43 -39
  22. package/dist/cli/commands/sign.mjs +14 -14
  23. package/dist/cli/commands/signer.mjs +14 -14
  24. package/dist/cli/commands/strategy.mjs +5 -49
  25. package/dist/cli/commands/swap.mjs +27 -71
  26. package/dist/cli/commands/venues.mjs +3 -3
  27. package/dist/data/desk-data.mjs +33 -77
  28. package/dist/data/names.mjs +2 -46
  29. package/dist/data/providers/farming.mjs +2 -46
  30. package/dist/index.mjs +37 -81
  31. package/dist/local-signer/anvil-attestation-worker.mjs +2 -0
  32. package/dist/local-signer/index.mjs +3 -3
  33. package/dist/local-signer/runtime.mjs +13 -0
  34. package/dist/nft/universal-mint-router.mjs +3 -47
  35. package/dist/router/index.mjs +2 -46
  36. package/dist/router/prepare-bridge.mjs +2 -46
  37. package/dist/scanner/index.mjs +4 -48
  38. package/dist/strategy/index.mjs +3 -47
  39. package/package.json +2 -1
  40. package/public/install.sh +20 -0
  41. package/public/oracle-splash/_variants/ice.html +1 -1
  42. package/public/oracle-splash/_variants/ivory.html +1 -1
  43. package/public/oracle-splash/index.html +1 -1
  44. package/public/oracle-splash/install.sh +20 -0
@@ -1,7 +1,7 @@
1
- import k from"node:fs";import m from"node:path";var s=Object.freeze([{id:"oracle",label:"Oracle Native",kind:"oracle",bins:["oracle"],website:!0,detect:!0},{id:"hermes",label:"Hermes Agent",kind:"mcp",bins:["hermes"],mcpTarget:"generic",configKey:"hermes",website:!0,detect:!0},{id:"claude",label:"Claude Code",kind:"mcp",bins:["claude"],mcpTarget:"claude-code",configKey:"claudeCode",website:!0,detect:!0},{id:"claude-desktop",label:"Claude Desktop",kind:"mcp",bins:[],mcpTarget:"claude-desktop",configKey:"claudeDesktop",website:!0,detect:!1},{id:"chatgpt",label:"ChatGPT",kind:"mcp",bins:[],mcpTarget:"chatgpt",configKey:"chatgpt",website:!0,detect:!1},{id:"codex",label:"OpenAI Codex",kind:"mcp",bins:["codex"],mcpTarget:"codex",configKey:"codex",website:!0,detect:!0},{id:"cursor",label:"Cursor",kind:"mcp",bins:["cursor","cursor-agent"],mcpTarget:"cursor",configKey:"cursor",website:!0,detect:!0},{id:"windsurf",label:"Windsurf",kind:"mcp",bins:["windsurf"],mcpTarget:"vscode",configKey:"windsurf",website:!0,detect:!0},{id:"vscode",label:"VS Code / Copilot",kind:"mcp",bins:["code","code-insiders"],mcpTarget:"vscode",configKey:"vscode",website:!0,detect:!0},{id:"openclaw",label:"OpenClaw",kind:"mcp",bins:["openclaw","claw"],mcpTarget:"generic",configKey:"openclaw",website:!0,detect:!0},{id:"perplexity",label:"Perplexity",kind:"mcp",bins:["perplexity","pplx"],mcpTarget:"generic",configKey:"perplexity",website:!0,detect:!0},{id:"manus",label:"Manus",kind:"mcp",bins:["manus"],mcpTarget:"generic",configKey:"manus",website:!0,detect:!0},{id:"prime",label:"Prime Intellect Agent",kind:"mcp",bins:["prime-agent","prime"],mcpTarget:"generic",configKey:"prime",website:!1,detect:!0},{id:"opencode",label:"OpenCode",kind:"mcp",bins:["opencode"],mcpTarget:"generic",configKey:"opencode",website:!1,detect:!0},{id:"aider",label:"Aider",kind:"mcp",bins:["aider"],mcpTarget:"generic",configKey:"aider",website:!1,detect:!0},{id:"continue",label:"Continue",kind:"mcp",bins:["continue"],mcpTarget:"vscode",configKey:"continue",website:!1,detect:!0},{id:"goose",label:"Goose",kind:"mcp",bins:["goose"],mcpTarget:"generic",configKey:"goose",website:!1,detect:!0},{id:"amp",label:"Amp",kind:"mcp",bins:["amp"],mcpTarget:"generic",configKey:"amp",website:!1,detect:!0},{id:"generic",label:"Generic MCP",kind:"mcp",bins:[],mcpTarget:"generic",configKey:"genericMcp",website:!0,detect:!1}]);function c(){return s.filter(e=>e.website)}function d(){return s.filter(e=>e.detect!==!1&&(e.bins?.length||e.kind==="oracle"))}function l(e){return s.find(n=>n.id===e)?.mcpTarget||"generic"}function p(e){return e==="oracle"?"oracle chat":`oracle mcp install ${l(e)}`}var I=Object.freeze({openrouter:{key:"OPENROUTER_API_KEY",baseUrl:"https://openrouter.ai/api/v1",model:"openrouter/auto"},openai:{key:"OPENAI_API_KEY",baseUrl:"https://api.openai.com/v1",model:"gpt-4.1-mini"},anthropic:{key:"ANTHROPIC_API_KEY",baseUrl:"https://api.anthropic.com/v1",model:"claude-sonnet-4-6",protocol:"anthropic-messages"},xai:{key:"XAI_API_KEY",baseUrl:"https://api.x.ai/v1",model:"grok-4.6"},deepseek:{key:"DEEPSEEK_API_KEY",baseUrl:"https://api.deepseek.com/v1",model:"deepseek-chat"},gemini:{key:"GEMINI_API_KEY",alternateKey:"GOOGLE_API_KEY",baseUrl:"https://generativelanguage.googleapis.com/v1beta/openai",model:"gemini-2.5-flash"},kimi:{key:"MOONSHOT_API_KEY",alternateKey:"KIMI_API_KEY",baseUrl:"https://api.moonshot.ai/v1",model:"kimi-k3",protocol:"openai-chat"},mistral:{key:"MISTRAL_API_KEY",baseUrl:"https://api.mistral.ai/v1",model:"mistral-large-latest",protocol:"openai-chat"}}),L=Object.freeze({"anthropic-oauth":{key:"ANTHROPIC_API_KEY",baseUrl:"https://api.anthropic.com/v1",model:"claude-sonnet-4-20250514",protocol:"anthropic-messages"},"openai-codex":{key:"OPENAI_API_KEY",baseUrl:"https://chatgpt.com/backend-api/codex",model:"gpt-5.4",protocol:"responses"},"xai-oauth":{key:"XAI_API_KEY",baseUrl:"https://api.x.ai/v1",model:"grok-4.6",protocol:"responses"}});var H=Object.freeze(["xai-oauth","anthropic-oauth","openai-codex"]);function A(){return d().map(e=>({name:e.id,bin:e.bins?.[0]||e.id,label:e.label,kind:e.kind,altBins:(e.bins||[]).slice(1)}))}function f(e){for(let o of(process.env.PATH||"").split(m.delimiter)){let n=m.join(o,e);try{if(k.existsSync(n))return n}catch{}}return null}function O(e){let o=[e.bin,...e.altBins||[]].filter(Boolean);for(let n of o){let r=f(n);if(r)return r}return null}function h(e=process.env){let o=[];for(let r of A()){if(r.kind==="oracle"||r.name==="oracle"){o.push({...r,path:process.argv[1]||"oracle"});continue}let a=O(r);a&&o.push({name:r.name,bin:r.bin,label:r.label,kind:r.kind,path:a})}let n=String(e.ORACLE_HARNESS_EXTRA||"").split(",").map(r=>r.trim()).filter(Boolean);for(let r of n){if(o.some(t=>t.bin===r||t.name===r))continue;let a=f(r);a&&o.push({name:r,bin:r,label:r,kind:"mcp",path:a})}return o}function w(e){if(e.kind==="oracle"||e.name==="oracle")return{...e,direction:"native",integrate:"oracle chat",outbound:"oracle chat",inbound:null,plugins:null,backendEnv:null,note:"Oracle native harness. Default. No external client required."};let o=l(e.name)||"generic",n=e.name==="hermes"?"hermes":e.name;return{...e,direction:"client",integrate:`oracle mcp install ${o}`,outbound:`oracle chat --backend ${n}`,inbound:`oracle mcp install ${o}`,plugins:"oracle plugins install <path|git-url>",backendEnv:`ORACLE_CHAT_BACKEND=${n}`,note:"Use through Oracle (`oracle chat --backend \u2026`) or wire Oracle into this client (`oracle mcp install`). Detection never auto-selects."}}function _(e){let o=e.map(w),n=o.find(i=>i.direction==="native"),r=o.filter(i=>i.direction!=="native"),a=c().filter(i=>i.kind==="mcp"),t=[];if(t.push(""),t.push("Three ways to run Oracle:"),t.push(` 1) Oracle native ${n?n.path:"oracle"}`),t.push(" oracle setup model && oracle chat"),t.push(" 2) Through Oracle attach Hermes / Claude / Codex as the engine"),t.push(" oracle chat --backend hermes"),t.push(" 3) Into your client wire Oracle MCP into the agent you already use"),t.push(" oracle mcp install <target> | oracle plugins install <path>"),t.push(""),t.push("Native is default. Detection never auto-selects another harness."),t.push(""),t.push("Detected on this machine:"),r.length===0)t.push(" (none \u2014 Oracle native is enough)");else for(let i of r)t.push(` ${i.label.padEnd(22)} ${i.path}`),t.push(` ${" ".repeat(22)} \u2192 through Oracle: ${i.outbound}`),t.push(` ${" ".repeat(22)} into client: ${i.inbound}`);t.push(""),t.push("Website harness roster (MCP install targets):");for(let i of a){let b=p(i.id),g=r.find(E=>E.name===i.id);t.push(` ${i.label.padEnd(22)} ${b}${g?" [detected]":""}`)}return t.push(""),t.push("Also:"),t.push(" oracle mcp print --target generic"),t.push(" oracle plugins list"),t.push(" ORACLE_HARNESS_EXTRA=foo,bar # detect extra bins"),t.push(""),t.push("Models on the site (Grok, Gemini, DeepSeek, Qwen, Kimi) are providers for"),t.push("Oracle native \u2014 configure with oracle setup model / oracle auth, not as harnesses."),t.join(`
1
+ import k from"node:fs";import m from"node:path";var s=Object.freeze([{id:"oracle",label:"Oracle Native",kind:"oracle",bins:["oracle"],website:!0,detect:!0},{id:"hermes",label:"Hermes Agent",kind:"mcp",bins:["hermes"],mcpTarget:"generic",configKey:"hermes",website:!0,detect:!0},{id:"claude",label:"Claude Code",kind:"mcp",bins:["claude"],mcpTarget:"claude-code",configKey:"claudeCode",website:!0,detect:!0},{id:"claude-desktop",label:"Claude Desktop",kind:"mcp",bins:[],mcpTarget:"claude-desktop",configKey:"claudeDesktop",website:!0,detect:!1},{id:"chatgpt",label:"ChatGPT",kind:"mcp",bins:[],mcpTarget:"chatgpt",configKey:"chatgpt",website:!0,detect:!1},{id:"codex",label:"OpenAI Codex",kind:"mcp",bins:["codex"],mcpTarget:"codex",configKey:"codex",website:!0,detect:!0},{id:"cursor",label:"Cursor",kind:"mcp",bins:["cursor","cursor-agent"],mcpTarget:"cursor",configKey:"cursor",website:!0,detect:!0},{id:"windsurf",label:"Windsurf",kind:"mcp",bins:["windsurf"],mcpTarget:"vscode",configKey:"windsurf",website:!0,detect:!0},{id:"vscode",label:"VS Code / Copilot",kind:"mcp",bins:["code","code-insiders"],mcpTarget:"vscode",configKey:"vscode",website:!0,detect:!0},{id:"openclaw",label:"OpenClaw",kind:"mcp",bins:["openclaw","claw"],mcpTarget:"generic",configKey:"openclaw",website:!0,detect:!0},{id:"perplexity",label:"Perplexity",kind:"mcp",bins:["perplexity","pplx"],mcpTarget:"generic",configKey:"perplexity",website:!0,detect:!0},{id:"manus",label:"Manus",kind:"mcp",bins:["manus"],mcpTarget:"generic",configKey:"manus",website:!0,detect:!0},{id:"prime",label:"Prime Intellect Agent",kind:"mcp",bins:["prime-agent","prime"],mcpTarget:"generic",configKey:"prime",website:!1,detect:!0},{id:"opencode",label:"OpenCode",kind:"mcp",bins:["opencode"],mcpTarget:"generic",configKey:"opencode",website:!1,detect:!0},{id:"aider",label:"Aider",kind:"mcp",bins:["aider"],mcpTarget:"generic",configKey:"aider",website:!1,detect:!0},{id:"continue",label:"Continue",kind:"mcp",bins:["continue"],mcpTarget:"vscode",configKey:"continue",website:!1,detect:!0},{id:"goose",label:"Goose",kind:"mcp",bins:["goose"],mcpTarget:"generic",configKey:"goose",website:!1,detect:!0},{id:"amp",label:"Amp",kind:"mcp",bins:["amp"],mcpTarget:"generic",configKey:"amp",website:!1,detect:!0},{id:"generic",label:"Generic MCP",kind:"mcp",bins:[],mcpTarget:"generic",configKey:"genericMcp",website:!0,detect:!1}]);function c(){return s.filter(e=>e.website)}function d(){return s.filter(e=>e.detect!==!1&&(e.bins?.length||e.kind==="oracle"))}function l(e){return s.find(n=>n.id===e)?.mcpTarget||"generic"}function p(e){return e==="oracle"?"oracle chat":`oracle mcp install ${l(e)}`}var I=Object.freeze({openrouter:{key:"OPENROUTER_API_KEY",baseUrl:"https://openrouter.ai/api/v1",model:"openrouter/auto"},openai:{key:"OPENAI_API_KEY",baseUrl:"https://api.openai.com/v1",model:"gpt-4.1-mini"},anthropic:{key:"ANTHROPIC_API_KEY",baseUrl:"https://api.anthropic.com/v1",model:"claude-sonnet-4-6",protocol:"anthropic-messages"},xai:{key:"XAI_API_KEY",baseUrl:"https://api.x.ai/v1",model:"grok-4.6"},deepseek:{key:"DEEPSEEK_API_KEY",baseUrl:"https://api.deepseek.com/v1",model:"deepseek-chat"},gemini:{key:"GEMINI_API_KEY",alternateKey:"GOOGLE_API_KEY",baseUrl:"https://generativelanguage.googleapis.com/v1beta/openai",model:"gemini-2.5-flash"},kimi:{key:"MOONSHOT_API_KEY",alternateKey:"KIMI_API_KEY",baseUrl:"https://api.moonshot.ai/v1",model:"kimi-k3",protocol:"openai-chat"},mistral:{key:"MISTRAL_API_KEY",baseUrl:"https://api.mistral.ai/v1",model:"mistral-large-latest",protocol:"openai-chat"},nous:{key:"NOUS_API_KEY",baseUrl:"https://inference-api.nousresearch.com/v1",model:"moonshotai/kimi-k3",protocol:"openai-chat"}}),L=Object.freeze({"anthropic-oauth":{key:"ANTHROPIC_API_KEY",baseUrl:"https://api.anthropic.com/v1",model:"claude-sonnet-4-20250514",protocol:"anthropic-messages"},"openai-codex":{key:"OPENAI_API_KEY",baseUrl:"https://chatgpt.com/backend-api/codex",model:"gpt-5.4",protocol:"responses"},"xai-oauth":{key:"XAI_API_KEY",baseUrl:"https://api.x.ai/v1",model:"grok-4.6",protocol:"responses"}});var U=Object.freeze(["xai-oauth","anthropic-oauth","openai-codex"]);function A(){return d().map(e=>({name:e.id,bin:e.bins?.[0]||e.id,label:e.label,kind:e.kind,altBins:(e.bins||[]).slice(1)}))}function f(e){for(let o of(process.env.PATH||"").split(m.delimiter)){let n=m.join(o,e);try{if(k.existsSync(n))return n}catch{}}return null}function O(e){let o=[e.bin,...e.altBins||[]].filter(Boolean);for(let n of o){let r=f(n);if(r)return r}return null}function h(e=process.env){let o=[];for(let r of A()){if(r.kind==="oracle"||r.name==="oracle"){o.push({...r,path:process.argv[1]||"oracle"});continue}let a=O(r);a&&o.push({name:r.name,bin:r.bin,label:r.label,kind:r.kind,path:a})}let n=String(e.ORACLE_HARNESS_EXTRA||"").split(",").map(r=>r.trim()).filter(Boolean);for(let r of n){if(o.some(t=>t.bin===r||t.name===r))continue;let a=f(r);a&&o.push({name:r,bin:r,label:r,kind:"mcp",path:a})}return o}function _(e){if(e.kind==="oracle"||e.name==="oracle")return{...e,direction:"native",integrate:"oracle chat",outbound:"oracle chat",inbound:null,plugins:null,backendEnv:null,note:"Oracle native harness. Default. No external client required."};let o=l(e.name)||"generic",n=e.name==="hermes"?"hermes":e.name;return{...e,direction:"client",integrate:`oracle mcp install ${o}`,outbound:`oracle chat --backend ${n}`,inbound:`oracle mcp install ${o}`,plugins:"oracle plugins install <path|git-url>",backendEnv:`ORACLE_CHAT_BACKEND=${n}`,note:"Use through Oracle (`oracle chat --backend \u2026`) or wire Oracle into this client (`oracle mcp install`). Detection never auto-selects."}}function w(e){let o=e.map(_),n=o.find(i=>i.direction==="native"),r=o.filter(i=>i.direction!=="native"),a=c().filter(i=>i.kind==="mcp"),t=[];if(t.push(""),t.push("Three ways to run Oracle:"),t.push(` 1) Oracle native ${n?n.path:"oracle"}`),t.push(" oracle setup model && oracle chat"),t.push(" 2) Through Oracle attach Hermes / Claude / Codex as the engine"),t.push(" oracle chat --backend hermes"),t.push(" 3) Into your client wire Oracle MCP into the agent you already use"),t.push(" oracle mcp install <target> | oracle plugins install <path>"),t.push(""),t.push("Native is default. Detection never auto-selects another harness."),t.push(""),t.push("Detected on this machine:"),r.length===0)t.push(" (none \u2014 Oracle native is enough)");else for(let i of r)t.push(` ${i.label.padEnd(22)} ${i.path}`),t.push(` ${" ".repeat(22)} \u2192 through Oracle: ${i.outbound}`),t.push(` ${" ".repeat(22)} into client: ${i.inbound}`);t.push(""),t.push("Website harness roster (MCP install targets):");for(let i of a){let b=p(i.id),g=r.find(E=>E.name===i.id);t.push(` ${i.label.padEnd(22)} ${b}${g?" [detected]":""}`)}return t.push(""),t.push("Also:"),t.push(" oracle mcp print --target generic"),t.push(" oracle plugins list"),t.push(" ORACLE_HARNESS_EXTRA=foo,bar # detect extra bins"),t.push(""),t.push("Models on the site (Grok, Gemini, DeepSeek, Qwen, Kimi) are providers for"),t.push("Oracle native \u2014 configure with oracle setup model / oracle auth, not as harnesses."),t.join(`
2
2
  `)}function u(){return["oracle harness \u2014 detect installed agent clients",""," oracle harness detect scan PATH + show website harness roster"," oracle harness list alias of detect","","Modes:"," Oracle native oracle chat"," Through Oracle oracle chat --backend hermes|claude|codex|\u2026"," Into the client oracle mcp install <target>","",`Website roster: ${c().map(o=>o.id).join(", ")}`,"Extra bins: ORACLE_HARNESS_EXTRA=foo,bar","","Detection never selects a backend."].join(`
3
3
  `)}var $={name:"harness",summary:"detect agent clients; use Oracle native or wire MCP into them",usage:u,async run(e,o){let n=e[0];if(n==="help"||n==="--help"||n==="-h")return process.stdout.write(u()+`
4
4
  `),0;if(n&&n!=="detect"&&n!=="list")return process.stderr.write(`oracle harness: unknown subcommand '${n}'
5
5
  `),process.stderr.write(u()+`
6
- `),1;let r=h();return process.stdout.write(_(r)+`
7
- `),0}};export{s as HARNESS_ROSTER,w as classifyHarness,$ as default,_ as renderHarnessReport,c as websiteHarnesses};
6
+ `),1;let r=h();return process.stdout.write(w(r)+`
7
+ `),0}};export{s as HARNESS_ROSTER,_ as classifyHarness,$ as default,w as renderHarnessReport,c as websiteHarnesses};
@@ -1,3 +1,3 @@
1
1
  import{spawnSync as c}from"node:child_process";var n=["oracle data serve # loopback read/prepare plane on 127.0.0.1:8787","oracle doctor # verify","oracle setup model # choose Claude, Codex, or Grok subscription OAuth","oracle chat # premium oracle chat surface","oracle chain list # pick hyperliquid/base/solana/...","oracle setup # telegram/discord/slack messaging","oracle mcp install claude-code"];function t(){return["","Next:",...n.map(s=>" "+s),""].join(`
2
- `)}var d={name:"init",summary:"install agent lanes + read plane (dry-run by default)",group:"read",usage:"oracle init [--apply --force --only <lane> --json --yes]",async run(s){let r=[...s.argv];r.includes("--yes")&&!r.includes("--apply")&&r.push("--apply");let a=s.bin("oracle-init.mjs"),e=c(process.execPath,[a,...r],{encoding:"utf8",env:process.env});if(e.error)return process.stderr.write(`oracle: failed to spawn oracle-init: ${e.error.message}
3
- `),1;e.stdout&&process.stdout.write(e.stdout),e.stderr&&process.stderr.write(e.stderr);let o=typeof e.status=="number"?e.status:1;return o===0&&r.includes("--apply")&&!r.includes("--json")&&process.stdout.write(t()),o}};export{d as default};
2
+ `)}var u={name:"init",summary:"install agent lanes + read plane (dry-run by default)",group:"read",usage:"oracle init [--apply --force --only <lane> --json --yes]",async run(s){let r=[...s.argv];r.includes("--yes")&&!r.includes("--apply")&&r.push("--apply");let a=s.bin("oracle-init.mjs"),e=c(process.execPath,[a,...r],{encoding:"utf8",env:process.env});if(e.error)return process.stderr.write(`oracle: failed to spawn oracle-init: ${e.error.message}
3
+ `),1;e.stdout&&process.stdout.write(e.stdout),e.stderr&&process.stderr.write(e.stderr);let o=typeof e.status=="number"?e.status:1;return o===0&&r.includes("--apply")&&!r.includes("--json")&&process.stdout.write(t()),o}};export{u as default};