@oracle-agent/oracle 0.24.2 → 0.24.3
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/dist/assets/skills/oracle-desk-product/SKILL.md +1 -1
- package/dist/assets/skills/oracle-harness/SKILL.md +3 -0
- package/dist/bin/oracle-gateway.mjs +18 -15
- package/dist/cli/commands/chat.mjs +90 -82
- package/dist/cli/commands/doctor.mjs +1 -1
- package/dist/cli/commands/eval.mjs +1 -1
- package/dist/cli/commands/model.mjs +92 -84
- package/package.json +1 -1
- package/public/install.ps1 +102 -0
- package/public/install.sh +1 -1
- package/public/oracle-splash/downloads/index.html +2 -0
- package/public/oracle-splash/index.html +1 -0
- package/public/oracle-splash/install.ps1 +102 -0
- package/public/oracle-splash/install.sh +1 -1
package/package.json
CHANGED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Oracle installer for Windows — CLI + desktop app.
|
|
2
|
+
#
|
|
3
|
+
# iex (irm https://oracle.demi.la/install.ps1)
|
|
4
|
+
#
|
|
5
|
+
# 1) Ensures Node 20.19+ and `npm i -g @oracle-agent/oracle` (the CLI / gateway).
|
|
6
|
+
# 2) Downloads the NSIS app, checks SHA256SUMS.txt, launches it.
|
|
7
|
+
# Never asks for keys, seeds, or wallet approval.
|
|
8
|
+
$ErrorActionPreference = "Stop"
|
|
9
|
+
$ProgressPreference = "SilentlyContinue"
|
|
10
|
+
|
|
11
|
+
$Base = if ($env:ORACLE_INSTALL_BASE) { $env:ORACLE_INSTALL_BASE.TrimEnd("/") } else { "https://oracle.demi.la" }
|
|
12
|
+
$Pkg = if ($env:ORACLE_NPM_PACKAGE) { $env:ORACLE_NPM_PACKAGE } else { "@oracle-agent/oracle" }
|
|
13
|
+
$Ver = if ($env:ORACLE_INSTALL_VERSION) { $env:ORACLE_INSTALL_VERSION } else { "latest" }
|
|
14
|
+
$SkipCli = $env:ORACLE_INSTALL_SKIP_CLI -eq "1"
|
|
15
|
+
$SkipDesktop = $env:ORACLE_INSTALL_SKIP_DESKTOP -eq "1"
|
|
16
|
+
$SumsUrl = "$Base/downloads/artifacts/SHA256SUMS.txt"
|
|
17
|
+
$Work = Join-Path $env:TEMP ("oracle-setup-" + [guid]::NewGuid().ToString("n"))
|
|
18
|
+
|
|
19
|
+
function Fail($msg) { Write-Error "oracle-install: $msg"; exit 1 }
|
|
20
|
+
function Log($msg) { Write-Host "oracle-install: $msg" }
|
|
21
|
+
|
|
22
|
+
function Refresh-Path {
|
|
23
|
+
$machine = [Environment]::GetEnvironmentVariable("Path", "Machine")
|
|
24
|
+
$user = [Environment]::GetEnvironmentVariable("Path", "User")
|
|
25
|
+
if ($machine -and $user) { $env:Path = "$machine;$user" }
|
|
26
|
+
elseif ($machine) { $env:Path = $machine }
|
|
27
|
+
elseif ($user) { $env:Path = $user }
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if ($IsLinux -or $IsMacOS) {
|
|
31
|
+
Fail "this script is Windows-only. Linux/macOS: curl -fsSL https://oracle.demi.la/install.sh | bash"
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function Ensure-Npm {
|
|
35
|
+
Refresh-Path
|
|
36
|
+
if (Get-Command npm -ErrorAction SilentlyContinue) { return }
|
|
37
|
+
Log "npm not found — installing Node.js LTS via winget"
|
|
38
|
+
if (-not (Get-Command winget -ErrorAction SilentlyContinue)) {
|
|
39
|
+
Fail "need Node 20.19+ (npm). Install from https://nodejs.org then re-run."
|
|
40
|
+
}
|
|
41
|
+
$winget = @(
|
|
42
|
+
"install", "--id", "OpenJS.NodeJS.LTS", "-e", "--source", "winget",
|
|
43
|
+
"--accept-package-agreements", "--accept-source-agreements"
|
|
44
|
+
)
|
|
45
|
+
& winget @winget
|
|
46
|
+
if ($LASTEXITCODE -ne 0) { Fail "winget could not install Node.js LTS" }
|
|
47
|
+
Refresh-Path
|
|
48
|
+
if (-not (Get-Command npm -ErrorAction SilentlyContinue)) {
|
|
49
|
+
Fail "Node installed but npm is not on PATH. Open a new PowerShell and re-run."
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function Install-Cli {
|
|
54
|
+
Ensure-Npm
|
|
55
|
+
$spec = if ($Ver -eq "latest") { $Pkg } else { "$Pkg@$Ver" }
|
|
56
|
+
Log "installing $spec (CLI + gateway)"
|
|
57
|
+
& npm install -g --no-fund --no-audit $spec
|
|
58
|
+
if ($LASTEXITCODE -ne 0) { Fail "npm install -g $spec failed" }
|
|
59
|
+
Refresh-Path
|
|
60
|
+
$oracle = Get-Command oracle -ErrorAction SilentlyContinue
|
|
61
|
+
if (-not $oracle) { Fail "npm reported success but `oracle` is not on PATH" }
|
|
62
|
+
& oracle --version
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function Install-Desktop {
|
|
66
|
+
Log "fetching checksums $SumsUrl"
|
|
67
|
+
try {
|
|
68
|
+
$sums = Invoke-RestMethod -Uri $SumsUrl -UseBasicParsing
|
|
69
|
+
} catch {
|
|
70
|
+
Fail "could not read SHA256SUMS.txt from $Base"
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
$line = ($sums -split "`r?`n" | Where-Object { $_ -match '(?i)Oracle-Setup-.*\.exe\s*$' } | Select-Object -First 1)
|
|
74
|
+
if (-not $line) { Fail "SHA256SUMS.txt has no Oracle-Setup-*.exe entry" }
|
|
75
|
+
if ($line -notmatch '^(?i)([a-f0-9]{64})\s+\*?(\S+)$') { Fail "unreadable checksum line" }
|
|
76
|
+
$want = $Matches[1].ToLowerInvariant()
|
|
77
|
+
$name = $Matches[2]
|
|
78
|
+
$exeUrl = "$Base/downloads/artifacts/$name"
|
|
79
|
+
|
|
80
|
+
New-Item -ItemType Directory -Force -Path $Work | Out-Null
|
|
81
|
+
$exe = Join-Path $Work $name
|
|
82
|
+
Log "downloading $name"
|
|
83
|
+
try {
|
|
84
|
+
Invoke-WebRequest -Uri $exeUrl -OutFile $exe -UseBasicParsing
|
|
85
|
+
} catch {
|
|
86
|
+
Fail "download failed: $exeUrl"
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
$got = (Get-FileHash -Algorithm SHA256 -Path $exe).Hash.ToLowerInvariant()
|
|
90
|
+
if ($got -ne $want) {
|
|
91
|
+
Remove-Item -Recurse -Force $Work -ErrorAction SilentlyContinue
|
|
92
|
+
Fail "SHA-256 mismatch (got $got want $want). Refusing to run."
|
|
93
|
+
}
|
|
94
|
+
Log "checksum ok"
|
|
95
|
+
Log "launching desktop installer (Oracle never asks for a private key or seed)"
|
|
96
|
+
Start-Process -FilePath $exe -ArgumentList "/S" -Wait
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (-not $SkipCli) { Install-Cli }
|
|
100
|
+
if (-not $SkipDesktop) { Install-Desktop }
|
|
101
|
+
Log "done. CLI: oracle --version App: Start menu → Oracle then: oracle setup model"
|
|
102
|
+
if (-not $SkipCli) { Log "Telegram: set ORACLE_OWNER_TELEGRAM to your numeric id, then oracle gateway" }
|
package/public/install.sh
CHANGED
|
@@ -75,7 +75,7 @@ ARCH="$(uname -m 2>/dev/null || echo unknown)"
|
|
|
75
75
|
case "$OS" in
|
|
76
76
|
Linux|Darwin) ;;
|
|
77
77
|
MINGW*|MSYS*|CYGWIN*)
|
|
78
|
-
die "Windows:
|
|
78
|
+
die "Windows: iex (irm https://oracle.demi.la/install.ps1) — installs the Oracle app. CLI: npm i -g @oracle-agent/oracle"
|
|
79
79
|
;;
|
|
80
80
|
*) die "unsupported OS: $OS" ;;
|
|
81
81
|
esac
|
|
@@ -28,6 +28,7 @@ section{padding-top:72px;scroll-margin-top:90px}.sub{color:var(--muted);line-hei
|
|
|
28
28
|
<header><p class="eyebrow">Public release</p><h1>Install Oracle.<br><em>Your wallet signs.</em></h1><p class="lede">The CLI, desktop beta, source, research tools, and unsigned transaction preparation are public to everyone. No wallet connection or NFT is required to download or run Oracle.</p></header>
|
|
29
29
|
<aside class="policy"><h2>Locals Only means 0% Oracle fees</h2><p>A Locals Only NFT waives the <b>Oracle integrator fee</b>. It does not unlock the product, arm execution, waive provider or network costs, or change the keyless prepare-only custody boundary.</p></aside>
|
|
30
30
|
<section id="cli"><p class="eyebrow">Oracle CLI</p><h2>Install with curl</h2><p class="sub">One line. Linux and macOS. Requires Node 20.19+ (the script checks and tells you how to get it). Installs into <code>~/.local</code> — no sudo, no global npm.</p><div class="install"><div class="cmd"><code id="cmd">curl -fsSL https://oracle.demi.la/install.sh | bash</code><button class="copy" id="copy" type="button">Copy</button></div><div class="meta"><span>curl install</span><span>keyless</span><span>prepare-only</span><span>user prefix</span></div></div><p class="sub" style="margin-top:18px">npm still works if you prefer: <code>npm i -g @oracle-agent/oracle</code></p></section>
|
|
31
|
+
<section id="windows"><p class="eyebrow">Oracle app · Windows</p><h2>Install with PowerShell</h2><p class="sub">Same shape as Hermes: one line. Installs the CLI (<code>npm i -g @oracle-agent/oracle</code>) and the desktop NSIS build. SHA-256 checked. Never asks for a key or seed.</p><div class="install"><div class="cmd"><code id="cmd-win">iex (irm https://oracle.demi.la/install.ps1)</code><button class="copy" id="copy-win" type="button">Copy</button></div><div class="meta"><span>irm | iex</span><span>desktop app</span><span>SHA-256 checked</span></div></div></section>
|
|
31
32
|
<section id="desktop"><p class="eyebrow">Desktop beta · 0.4.3</p><h2>Native installers</h2><p class="sub">Each installer bundles the same public runtime. Download directly, then verify it against the published SHA-256 manifest.</p><div class="artifacts">
|
|
32
33
|
<div class="artifact" data-artifact="Oracle-0.4.3.AppImage"><div><h3>Linux</h3><small>AppImage · x64</small></div><div class="artifact-meta"><span class="build">Oracle 0.4.3 beta</span></div><code class="hash" data-hash>checksum loading</code><a class="dl-btn" href="/downloads/artifacts/Oracle-0.4.3.AppImage" download>Download</a></div>
|
|
33
34
|
<div class="artifact" data-artifact="Oracle-0.4.3-arm64.dmg"><div><h3>macOS</h3><small>DMG · Apple silicon</small></div><div class="artifact-meta"><span class="build">Oracle 0.4.3 beta</span></div><code class="hash" data-hash>checksum loading</code><a class="dl-btn" href="/downloads/artifacts/Oracle-0.4.3-arm64.dmg" download>Download</a></div>
|
|
@@ -37,6 +38,7 @@ section{padding-top:72px;scroll-margin-top:90px}.sub{color:var(--muted);line-hei
|
|
|
37
38
|
<footer><div class="nav-inner"><span>oracle · locals only labs</span><span>public / self-custody / prepare-only</span></div></footer>
|
|
38
39
|
<script>
|
|
39
40
|
document.getElementById("copy").addEventListener("click",async function(){try{await navigator.clipboard.writeText(document.getElementById("cmd").textContent.trim());this.textContent="Copied";var button=this;setTimeout(function(){button.textContent="Copy"},1400)}catch(_){this.textContent="Select command"}});
|
|
41
|
+
document.getElementById("copy-win").addEventListener("click",async function(){try{await navigator.clipboard.writeText(document.getElementById("cmd-win").textContent.trim());this.textContent="Copied";var button=this;setTimeout(function(){button.textContent="Copy"},1400)}catch(_){this.textContent="Select command"}});
|
|
40
42
|
(async function(){
|
|
41
43
|
var rows=Array.from(document.querySelectorAll("[data-artifact]"));
|
|
42
44
|
function unavailable(row){row.querySelector("[data-hash]").textContent="checksum unavailable";row.querySelector(".dl-btn").setAttribute("aria-disabled","true")}
|
|
@@ -1799,6 +1799,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
1799
1799
|
<figcaption>Portfolio, approvals, prepare, farming, receipts and routes in one pane.</figcaption>
|
|
1800
1800
|
</figure>
|
|
1801
1801
|
<div class="os-dl"><a class="os-link" href="/downloads/artifacts/Oracle-0.4.3-arm64.dmg">macOS</a><a class="os-link" href="/downloads/artifacts/Oracle-0.4.3.AppImage">Linux</a><a class="os-link" href="/downloads/artifacts/Oracle-Setup-0.4.3.exe">Windows</a></div>
|
|
1802
|
+
<div class="cli-install-cmd" style="margin-top:14px"><code>iex (irm https://oracle.demi.la/install.ps1)</code> <span class="cli-install-hint">Windows · CLI + Oracle app</span></div>
|
|
1802
1803
|
</div>
|
|
1803
1804
|
</div>
|
|
1804
1805
|
</section>
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Oracle installer for Windows — CLI + desktop app.
|
|
2
|
+
#
|
|
3
|
+
# iex (irm https://oracle.demi.la/install.ps1)
|
|
4
|
+
#
|
|
5
|
+
# 1) Ensures Node 20.19+ and `npm i -g @oracle-agent/oracle` (the CLI / gateway).
|
|
6
|
+
# 2) Downloads the NSIS app, checks SHA256SUMS.txt, launches it.
|
|
7
|
+
# Never asks for keys, seeds, or wallet approval.
|
|
8
|
+
$ErrorActionPreference = "Stop"
|
|
9
|
+
$ProgressPreference = "SilentlyContinue"
|
|
10
|
+
|
|
11
|
+
$Base = if ($env:ORACLE_INSTALL_BASE) { $env:ORACLE_INSTALL_BASE.TrimEnd("/") } else { "https://oracle.demi.la" }
|
|
12
|
+
$Pkg = if ($env:ORACLE_NPM_PACKAGE) { $env:ORACLE_NPM_PACKAGE } else { "@oracle-agent/oracle" }
|
|
13
|
+
$Ver = if ($env:ORACLE_INSTALL_VERSION) { $env:ORACLE_INSTALL_VERSION } else { "latest" }
|
|
14
|
+
$SkipCli = $env:ORACLE_INSTALL_SKIP_CLI -eq "1"
|
|
15
|
+
$SkipDesktop = $env:ORACLE_INSTALL_SKIP_DESKTOP -eq "1"
|
|
16
|
+
$SumsUrl = "$Base/downloads/artifacts/SHA256SUMS.txt"
|
|
17
|
+
$Work = Join-Path $env:TEMP ("oracle-setup-" + [guid]::NewGuid().ToString("n"))
|
|
18
|
+
|
|
19
|
+
function Fail($msg) { Write-Error "oracle-install: $msg"; exit 1 }
|
|
20
|
+
function Log($msg) { Write-Host "oracle-install: $msg" }
|
|
21
|
+
|
|
22
|
+
function Refresh-Path {
|
|
23
|
+
$machine = [Environment]::GetEnvironmentVariable("Path", "Machine")
|
|
24
|
+
$user = [Environment]::GetEnvironmentVariable("Path", "User")
|
|
25
|
+
if ($machine -and $user) { $env:Path = "$machine;$user" }
|
|
26
|
+
elseif ($machine) { $env:Path = $machine }
|
|
27
|
+
elseif ($user) { $env:Path = $user }
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if ($IsLinux -or $IsMacOS) {
|
|
31
|
+
Fail "this script is Windows-only. Linux/macOS: curl -fsSL https://oracle.demi.la/install.sh | bash"
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function Ensure-Npm {
|
|
35
|
+
Refresh-Path
|
|
36
|
+
if (Get-Command npm -ErrorAction SilentlyContinue) { return }
|
|
37
|
+
Log "npm not found — installing Node.js LTS via winget"
|
|
38
|
+
if (-not (Get-Command winget -ErrorAction SilentlyContinue)) {
|
|
39
|
+
Fail "need Node 20.19+ (npm). Install from https://nodejs.org then re-run."
|
|
40
|
+
}
|
|
41
|
+
$winget = @(
|
|
42
|
+
"install", "--id", "OpenJS.NodeJS.LTS", "-e", "--source", "winget",
|
|
43
|
+
"--accept-package-agreements", "--accept-source-agreements"
|
|
44
|
+
)
|
|
45
|
+
& winget @winget
|
|
46
|
+
if ($LASTEXITCODE -ne 0) { Fail "winget could not install Node.js LTS" }
|
|
47
|
+
Refresh-Path
|
|
48
|
+
if (-not (Get-Command npm -ErrorAction SilentlyContinue)) {
|
|
49
|
+
Fail "Node installed but npm is not on PATH. Open a new PowerShell and re-run."
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function Install-Cli {
|
|
54
|
+
Ensure-Npm
|
|
55
|
+
$spec = if ($Ver -eq "latest") { $Pkg } else { "$Pkg@$Ver" }
|
|
56
|
+
Log "installing $spec (CLI + gateway)"
|
|
57
|
+
& npm install -g --no-fund --no-audit $spec
|
|
58
|
+
if ($LASTEXITCODE -ne 0) { Fail "npm install -g $spec failed" }
|
|
59
|
+
Refresh-Path
|
|
60
|
+
$oracle = Get-Command oracle -ErrorAction SilentlyContinue
|
|
61
|
+
if (-not $oracle) { Fail "npm reported success but `oracle` is not on PATH" }
|
|
62
|
+
& oracle --version
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function Install-Desktop {
|
|
66
|
+
Log "fetching checksums $SumsUrl"
|
|
67
|
+
try {
|
|
68
|
+
$sums = Invoke-RestMethod -Uri $SumsUrl -UseBasicParsing
|
|
69
|
+
} catch {
|
|
70
|
+
Fail "could not read SHA256SUMS.txt from $Base"
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
$line = ($sums -split "`r?`n" | Where-Object { $_ -match '(?i)Oracle-Setup-.*\.exe\s*$' } | Select-Object -First 1)
|
|
74
|
+
if (-not $line) { Fail "SHA256SUMS.txt has no Oracle-Setup-*.exe entry" }
|
|
75
|
+
if ($line -notmatch '^(?i)([a-f0-9]{64})\s+\*?(\S+)$') { Fail "unreadable checksum line" }
|
|
76
|
+
$want = $Matches[1].ToLowerInvariant()
|
|
77
|
+
$name = $Matches[2]
|
|
78
|
+
$exeUrl = "$Base/downloads/artifacts/$name"
|
|
79
|
+
|
|
80
|
+
New-Item -ItemType Directory -Force -Path $Work | Out-Null
|
|
81
|
+
$exe = Join-Path $Work $name
|
|
82
|
+
Log "downloading $name"
|
|
83
|
+
try {
|
|
84
|
+
Invoke-WebRequest -Uri $exeUrl -OutFile $exe -UseBasicParsing
|
|
85
|
+
} catch {
|
|
86
|
+
Fail "download failed: $exeUrl"
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
$got = (Get-FileHash -Algorithm SHA256 -Path $exe).Hash.ToLowerInvariant()
|
|
90
|
+
if ($got -ne $want) {
|
|
91
|
+
Remove-Item -Recurse -Force $Work -ErrorAction SilentlyContinue
|
|
92
|
+
Fail "SHA-256 mismatch (got $got want $want). Refusing to run."
|
|
93
|
+
}
|
|
94
|
+
Log "checksum ok"
|
|
95
|
+
Log "launching desktop installer (Oracle never asks for a private key or seed)"
|
|
96
|
+
Start-Process -FilePath $exe -ArgumentList "/S" -Wait
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (-not $SkipCli) { Install-Cli }
|
|
100
|
+
if (-not $SkipDesktop) { Install-Desktop }
|
|
101
|
+
Log "done. CLI: oracle --version App: Start menu → Oracle then: oracle setup model"
|
|
102
|
+
if (-not $SkipCli) { Log "Telegram: set ORACLE_OWNER_TELEGRAM to your numeric id, then oracle gateway" }
|
|
@@ -75,7 +75,7 @@ ARCH="$(uname -m 2>/dev/null || echo unknown)"
|
|
|
75
75
|
case "$OS" in
|
|
76
76
|
Linux|Darwin) ;;
|
|
77
77
|
MINGW*|MSYS*|CYGWIN*)
|
|
78
|
-
die "Windows:
|
|
78
|
+
die "Windows: iex (irm https://oracle.demi.la/install.ps1) — installs the Oracle app. CLI: npm i -g @oracle-agent/oracle"
|
|
79
79
|
;;
|
|
80
80
|
*) die "unsupported OS: $OS" ;;
|
|
81
81
|
esac
|