@oracle-agent/oracle 0.34.0 → 0.35.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.
|
@@ -97,7 +97,7 @@ does not prove npm users receive it. A locally hosted model/data/policy loop doe
|
|
|
97
97
|
a bundled signer. A merged feature is not public until the npm artifact containing it is
|
|
98
98
|
published and inspected.
|
|
99
99
|
|
|
100
|
-
**Candidate release in this source tree:** public package `@oracle-agent/oracle@0.
|
|
100
|
+
**Candidate release in this source tree:** public package `@oracle-agent/oracle@0.35.0`
|
|
101
101
|
ships the encrypted local vault + short-lived loopback signer. Hosted/keyless
|
|
102
102
|
Oracle cannot hold keys or move funds. Self-host after `oracle sign init|import` is **auto-armed**
|
|
103
103
|
for user-initiated actions. Public still charges the disclosed fee card; Administrator
|
package/package.json
CHANGED
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
const PACKAGE = "@oracle-agent/oracle";
|
|
5
5
|
const COMMAND = "npx";
|
|
6
6
|
const ARGS = ["-y", "--package", PACKAGE, "oracle-data-mcp"];
|
|
7
|
+
// Artifact-card lane. Deepen and Refresh are read paths; Prepare emits an
|
|
8
|
+
// unsigned artifact and is OFF unless the operator sets
|
|
9
|
+
// ORACLE_TELEGRAM_CARD_GRANT=1 in their own environment. The page never
|
|
10
|
+
// emits that variable, so a copied config is read-only by default.
|
|
11
|
+
const CARD_ARGS = ["-y", "--package", PACKAGE, "oracle-telegram-mcp"];
|
|
7
12
|
const INIT_COMMAND = "npx -y --package @oracle-agent/oracle oracle-init";
|
|
8
13
|
const NATIVE_COMMAND = "curl -fsSL https://oracle.demi.la/install.sh | bash && oracle setup model && oracle chat";
|
|
9
14
|
|
|
@@ -27,8 +32,32 @@
|
|
|
27
32
|
};
|
|
28
33
|
|
|
29
34
|
const server = () => ({ command: COMMAND, args: [...ARGS], env: env() });
|
|
35
|
+
const cardServer = () => ({ command: COMMAND, args: [...CARD_ARGS] });
|
|
30
36
|
|
|
31
|
-
const jsonMcp = () => ({ mcpServers: { oracle: server() } });
|
|
37
|
+
const jsonMcp = () => ({ mcpServers: { oracle: server(), "oracle-cards": cardServer() } });
|
|
38
|
+
|
|
39
|
+
const yamlBlock = (name, entry) => {
|
|
40
|
+
const lines = [` ${name}:`, ` command: ${JSON.stringify(entry.command)}`, " args:"];
|
|
41
|
+
entry.args.forEach((arg) => lines.push(` - ${JSON.stringify(arg)}`));
|
|
42
|
+
if (entry.env) {
|
|
43
|
+
lines.push(" env:");
|
|
44
|
+
Object.entries(entry.env).forEach(([key, value]) => lines.push(` ${key}: ${JSON.stringify(value)}`));
|
|
45
|
+
}
|
|
46
|
+
return lines;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const tomlBlock = (name, entry) => {
|
|
50
|
+
const lines = [
|
|
51
|
+
`[mcp_servers.${name}]`,
|
|
52
|
+
`command = ${JSON.stringify(entry.command)}`,
|
|
53
|
+
`args = [${entry.args.map((arg) => JSON.stringify(arg)).join(", ")}]`,
|
|
54
|
+
];
|
|
55
|
+
if (entry.env) {
|
|
56
|
+
lines.push("", `[mcp_servers.${name}.env]`);
|
|
57
|
+
Object.entries(entry.env).forEach(([key, value]) => lines.push(`${key} = ${JSON.stringify(value)}`));
|
|
58
|
+
}
|
|
59
|
+
return lines;
|
|
60
|
+
};
|
|
32
61
|
|
|
33
62
|
const configs = {
|
|
34
63
|
oracle: () => [
|
|
@@ -38,32 +67,18 @@
|
|
|
38
67
|
"# Optional: still expose read MCP to other tools",
|
|
39
68
|
JSON.stringify(jsonMcp(), null, 2),
|
|
40
69
|
].join("\n"),
|
|
41
|
-
hermes: () =>
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
` command: ${JSON.stringify(s.command)}`,
|
|
48
|
-
" args:",
|
|
49
|
-
...s.args.map((a) => ` - ${JSON.stringify(a)}`),
|
|
50
|
-
" env:",
|
|
51
|
-
...Object.entries(values).map(([k, v]) => ` ${k}: ${JSON.stringify(v)}`),
|
|
52
|
-
"",
|
|
53
|
-
].join("\n");
|
|
54
|
-
},
|
|
70
|
+
hermes: () => [
|
|
71
|
+
"mcp_servers:",
|
|
72
|
+
...yamlBlock("oracle", server()),
|
|
73
|
+
...yamlBlock("oracle-cards", cardServer()),
|
|
74
|
+
"",
|
|
75
|
+
].join("\n"),
|
|
55
76
|
claude: () => jsonMcp(),
|
|
56
|
-
codex: () =>
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
`args = [${ARGS.map((arg) => JSON.stringify(arg)).join(", ")}]`,
|
|
62
|
-
"",
|
|
63
|
-
"[mcp_servers.oracle.env]",
|
|
64
|
-
...Object.entries(values).map(([key, value]) => `${key} = ${JSON.stringify(value)}`),
|
|
65
|
-
].join("\n");
|
|
66
|
-
},
|
|
77
|
+
codex: () => [
|
|
78
|
+
...tomlBlock("oracle", server()),
|
|
79
|
+
"",
|
|
80
|
+
...tomlBlock("oracle-cards", cardServer()),
|
|
81
|
+
].join("\n"),
|
|
67
82
|
cursor: () => jsonMcp(),
|
|
68
83
|
openclaw: () => jsonMcp(),
|
|
69
84
|
perplexity: () => jsonMcp(),
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
<p class="eyebrow">AGENT CONNECT</p>
|
|
15
15
|
<h1>Give your agent market context.<br /><span>Keep custody local.</span></h1>
|
|
16
16
|
<p class="lede">Use Oracle's native harness, or connect Oracle MCP into the agent you already run. Skills, quotes, swap cards, and prepare land in Claude or Codex. The model proposes actions; you review and authorize them through your local operator.</p>
|
|
17
|
+
<p class="lede">The config below wires two lanes: <code>oracle</code> for market reads, and <code>oracle-cards</code> for artifact cards your agent can deepen and refresh. Card Prepare emits an unsigned artifact only, is off unless you set <code>ORACLE_TELEGRAM_CARD_GRANT=1</code> yourself, and never broadcasts.</p>
|
|
17
18
|
</header>
|
|
18
19
|
|
|
19
20
|
<section class="card setup" aria-labelledby="connection-title">
|