mindvest-atlas 0.47.0 → 0.48.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mindvest-atlas",
3
- "version": "0.47.0",
3
+ "version": "0.48.0",
4
4
  "description": "Atlas CLI \u2014 OAuth login, tool calls, and live alert/flow streaming for the Atlas trading API",
5
5
  "type": "module",
6
6
  "bin": {
@@ -81,6 +81,17 @@ const OPS = {
81
81
  cursor: ['get_cursor', 0],
82
82
  'take-over': ['take_over', 0],
83
83
  ready: ['computer_ready', 0],
84
+ // WAIT ESPECIALLY. A sequence without it cannot pause for a page, which is
85
+ // most of what a real run of steps needs, and its absence made the documented
86
+ // example fail: `do "click ..." "wait 1500"` was refused as an unknown verb,
87
+ // which reads as do() being broken rather than a table missing a row.
88
+ wait: ['wait', 1],
89
+ copy: ['copy', 1],
90
+ region: ['region', 4],
91
+ 'mouse-down': ['mouse_down', 0],
92
+ 'mouse-up': ['mouse_up', 0],
93
+ 'key-down': ['key_down', 1],
94
+ 'key-up': ['key_up', 1],
84
95
  };
85
96
  // Which values are numbers. Passing "840" as a string to click() would move the
86
97
  // pointer nowhere and report success.
package/src/config.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import path from 'node:path';
3
3
  import os from 'node:os';
4
4
 
5
- export const VERSION = '0.47.0';
5
+ export const VERSION = '0.48.0';
6
6
  export const DEFAULT_BASE_URL = 'https://atlasmcp.finmanagerai.com';
7
7
  export const DEFAULT_SCOPE = 'atlas broker';
8
8
  export const CLIENT_NAME = 'Atlas CLI';
@@ -1457,8 +1457,20 @@ def do(*steps, **kw):
1457
1457
  if settle > 0:
1458
1458
  import time as _time
1459
1459
  _time.sleep(settle)
1460
- shot = screen()
1460
+ # THE WORK SUCCEEDING AND THE LOOK FAILING ARE TWO DIFFERENT THINGS.
1461
+ #
1462
+ # Every step ran, and then the picture at the end could not be taken, and the
1463
+ # whole call raised: to anybody reading, do() had failed, when in fact
1464
+ # everything asked for had happened. That is how a working thing gets a
1465
+ # reputation for being broken (owner, 2026-09-06: "it reports do() is not
1466
+ # working"). The actions are reported as done, and the look reports itself.
1461
1467
  out = {"did": did}
1468
+ try:
1469
+ shot = screen()
1470
+ except Exception as err:
1471
+ out["screen"] = None
1472
+ out["look_failed"] = str(err)
1473
+ return out
1462
1474
  # DID ANYTHING ACTUALLY CHANGE? A picture that is byte-for-byte the last one
1463
1475
  # is a wasted look: the reader spends a turn opening it to find out nothing
1464
1476
  # happened, which is the slowest possible way to learn that. Said in words