@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oracle-agent/oracle",
3
- "version": "0.24.2",
3
+ "version": "0.24.3",
4
4
  "description": "Oracle: standalone multichain agent control plane with an optional encrypted, loopback-only self-hosted signer.",
5
5
  "license": "BUSL-1.1",
6
6
  "type": "module",
@@ -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: use PowerShell installer or npm i -g @oracle-agent/oracle. See https://oracle.demi.la/downloads/"
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: use PowerShell installer or npm i -g @oracle-agent/oracle. See https://oracle.demi.la/downloads/"
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