@oracle-agent/oracle 0.9.3 → 0.9.5

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.9.3",
3
+ "version": "0.9.5",
4
4
  "description": "Oracle: prepare-only multichain agent control plane. Policy-bounded intents for a user-signed wallet. Self-custody by default — the public package never takes your key. Built for Hermes; no model key required.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -10,12 +10,12 @@ import sys
10
10
 
11
11
 
12
12
  WORDMARK = (
13
- " ██████ ███████ ██████ ██████ ██ ██████ ",
14
- "██ ██ ██ ██ ██ ██ ██ ██ ██ ██",
15
- "██ ██ ██ ███████ ██ ██ ████████",
16
- "██ ██ ██ ██ ██ ██ ██ ██ ",
17
- "██ ██ ██ ██ ██ ██ ██ ██ ██ ",
18
- " ██████ ██ ███████ ██████ ████████ ███████",
13
+ " ██████ ████████ ██████ ██████ ░███ ██████ ",
14
+ " ███░░███░░███░░███ ░░░░░███ ███░░███ ░███ ███░░███ ",
15
+ " ░███ ░███ ░███ ░░░ ███████ ░███ ░░░ ░███ ░███████ ",
16
+ " ░███ ░███ ░███ ███░░███ ░███ ███ ░███ ░███░░░ ",
17
+ " ░░██████ █████ ░░████████░░██████ █████░░██████ ",
18
+ " ░░░░░░ ░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░ ░░░░░░ ",
19
19
  )
20
20
 
21
21
  SILENT_OUTPUT = {
@@ -125,16 +125,13 @@ def patch_cli(module):
125
125
  "#B8F0FF",
126
126
  )
127
127
  for index, line in enumerate(WORDMARK):
128
- body.append(line.rstrip(), style=f"bold {colors[index]}")
128
+ body.append(line, style=f"bold {colors[index]}")
129
129
  if index != len(WORDMARK) - 1:
130
130
  body.append("\n")
131
131
  else:
132
132
  body.append("oracle", style="bold #B8F0FF")
133
133
 
134
- body.append("\n\nTHE FUTURE IS AGENTIC", style="bold #EAF2F8")
135
- body.append(" / ", style="#52606D")
136
- model = str(getattr(self, "model", "") or "choose model")
137
- body.append(model, style="#91A2B1")
134
+ body.append("\n\nTHE FUTURE IS AGENTIC / by DEMI", style="bold #EAF2F8")
138
135
 
139
136
  panel_width = max(36, min(width - 4, 76))
140
137
  panel = Panel(
@@ -143,8 +140,6 @@ def patch_cli(module):
143
140
  padding=(1, 2),
144
141
  border_style="#3B4A56",
145
142
  box=box.ROUNDED,
146
- subtitle="[dim #6F7F8D]/model /chain /setup[/]",
147
- subtitle_align="center",
148
143
  )
149
144
  self.console.print(Align.center(panel))
150
145
  self.console.print()
@@ -166,7 +161,7 @@ def patch_cli(module):
166
161
  return [("class:prompt-working", "working ")]
167
162
  if getattr(self, "_agent_running", False):
168
163
  return [("class:prompt-working", "thinking ")]
169
- return [("class:prompt", " Ask Oracle › ")]
164
+ return [("class:prompt", " oracle › ")]
170
165
 
171
166
  def status_fragments(self):
172
167
  if not getattr(self, "_status_bar_visible", True) or getattr(self, "_model_picker_state", None):
@@ -195,38 +190,44 @@ def patch_cli(module):
195
190
  effort = reasoning_config.get("effort") or "default"
196
191
  thinking = snapshot.get("prompt_elapsed") or "0s"
197
192
  thinking = thinking.replace("⏱ ", "").replace("⏲ ", "")
193
+ chain = os.environ.get("ORACLE_ACTIVE_CHAIN", "").strip()
194
+
195
+ def status_tail():
196
+ fragments = [
197
+ ("class:status-bar-dim", " / "),
198
+ ("class:status-bar-effort", effort),
199
+ ("class:status-bar-dim", " / "),
200
+ ("class:status-bar-time", thinking),
201
+ ]
202
+ if chain:
203
+ fragments.extend(
204
+ [
205
+ ("class:status-bar-dim", " / "),
206
+ ("class:status-bar-chain", chain),
207
+ ]
208
+ )
209
+ fragments.append(("class:status-bar", " "))
210
+ return fragments
198
211
 
199
212
  if width < 48:
200
213
  short_bar = self._build_context_bar(percent, width=4)
201
214
  return [
202
215
  ("class:status-bar", " "),
203
216
  ("class:status-bar-context", f"ctx {short_bar} {percent}%"),
204
- ("class:status-bar-dim", " / "),
205
- ("class:status-bar-effort", effort),
206
- ("class:status-bar-dim", " / "),
207
- ("class:status-bar-time", f"{thinking} "),
208
- ]
217
+ ] + status_tail()
209
218
  if width < 70:
210
219
  short_bar = self._build_context_bar(percent, width=4)
211
220
  return [
212
221
  ("class:status-bar", " "),
213
222
  ("class:status-bar-context", f"ctx {short_bar} {percent}%"),
214
- ("class:status-bar-dim", " / "),
215
- ("class:status-bar-effort", effort),
216
- ("class:status-bar-dim", " / "),
217
- ("class:status-bar-time", f"{thinking} "),
218
- ]
223
+ ] + status_tail()
219
224
  if width < 92:
220
225
  return [
221
226
  ("class:status-bar", " "),
222
227
  ("class:status-bar-strong", model),
223
228
  ("class:status-bar-dim", " / "),
224
229
  ("class:status-bar-context", f"ctx {context_bar} {usage}{percent}%"),
225
- ("class:status-bar-dim", " / "),
226
- ("class:status-bar-effort", effort),
227
- ("class:status-bar-dim", " / "),
228
- ("class:status-bar-time", f"{thinking} "),
229
- ]
230
+ ] + status_tail()
230
231
  return [
231
232
  ("class:status-bar", " "),
232
233
  ("class:status-bar-brand", "oracle"),
@@ -234,11 +235,7 @@ def patch_cli(module):
234
235
  ("class:status-bar-strong", model),
235
236
  ("class:status-bar-dim", " / "),
236
237
  ("class:status-bar-context", f"ctx {context_bar} {usage}{percent}%"),
237
- ("class:status-bar-dim", " / "),
238
- ("class:status-bar-effort", effort),
239
- ("class:status-bar-dim", " / "),
240
- ("class:status-bar-time", f"{thinking} "),
241
- ]
238
+ ] + status_tail()
242
239
  except Exception:
243
240
  return [("class:status-bar-brand", " oracle ")]
244
241
 
@@ -317,6 +314,7 @@ def patch_cli(module):
317
314
  "status-bar-context": "bg:#11161B #A5D9EB",
318
315
  "status-bar-effort": "bg:#11161B #C5B8FF",
319
316
  "status-bar-time": "bg:#11161B #91A2B1",
317
+ "status-bar-chain": "bg:#11161B #B8F0FF",
320
318
  "status-bar-dim": "bg:#11161B #60717F",
321
319
  }
322
320
  )