@dopemarkets/agent 0.1.2 → 0.1.4

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.
@@ -108,6 +108,23 @@ async function runLogin(args, out) {
108
108
  return handleApiError(err, out);
109
109
  }
110
110
  }
111
+ // Defensive validation. If we got here, the client's polling loop
112
+ // believed the backend returned an authorized response — but if the
113
+ // body is somehow missing the server-issued fields (regression in the
114
+ // client's pending-status handling, or a backend change that returns
115
+ // an incomplete success body) we must not save a half-formed
116
+ // credential and tell the user "Authorized." That state silently
117
+ // breaks every subsequent command and is exactly the bug this check
118
+ // exists to catch.
119
+ if (!exchangeResp.agent_key_id || !exchangeResp.wallet_pubkey) {
120
+ return (0, output_js_1.emitError)(out, {
121
+ error_code: 'LOGIN_RESPONSE_MALFORMED',
122
+ message: 'The DOPE backend returned an incomplete authorization response. ' +
123
+ 'No credential was saved. Please run `dope login` again; if this ' +
124
+ 'persists, check the backend status page or contact support.',
125
+ details: exchangeResp,
126
+ }, 1);
127
+ }
111
128
  const expiresAt = new Date(Date.now() + limits.expires_days * 86400 * 1000).toISOString();
112
129
  // sub_org_id will only be missing for old-backend deployments that
113
130
  // haven't been redeployed with the exchange-response extension, or in
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,EAAE;AACF,QAAQ;AACR,+CAA+C;AAC/C,wEAAwE;AACxE,sEAAsE;AACtE,wCAAwC;AACxC,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,wEAAwE;AACxE,yEAAyE;AACzE,yEAAyE;AACzE,yDAAyD;AACzD,uEAAuE;AACvE,yEAAyE;AACzE,uEAAuE;AACvE,mEAAmE;;AAoCnE,4BAwJC;AAcD,wCAeC;AAvND,4DAAiG;AACjG,sDAAmD;AACnD,4CAA2E;AAC3E,wCAA6D;AAE7D,MAAM,gBAAgB,GACpB,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,gDAAgD,CAAC;AAEhF,MAAM,cAAc,GAAG;IACrB,gBAAgB,EAAE,EAAE;IACpB,sBAAsB,EAAE,GAAG;IAC3B,yBAAyB,EAAE,IAAI;IAC/B,YAAY,EAAE,CAAC;CAChB,CAAC;AAEF,MAAM,mBAAmB,GAAG;IAC1B,cAAc;IACd,cAAc;IACd,aAAa;IACb,aAAa;IACb,gBAAgB;CACR,CAAC;AAaJ,KAAK,UAAU,QAAQ,CAAC,IAAe,EAAE,GAAc;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;IAEpC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS;QAChC,CAAC,CAAE,CAAC,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,CAAW;QAC3E,CAAC,CAAC,mBAAmB,CAAC;IAExB,MAAM,MAAM,GAAG;QACb,gBAAgB,EAAE,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,gBAAgB;QACxE,sBAAsB,EAAE,IAAI,CAAC,mBAAmB,IAAI,cAAc,CAAC,sBAAsB;QACzF,yBAAyB,EACvB,IAAI,CAAC,qBAAqB,IAAI,cAAc,CAAC,yBAAyB;QACxE,YAAY,EAAE,IAAI,CAAC,WAAW,IAAI,cAAc,CAAC,YAAY;KAC9D,CAAC;IAEF,MAAM,OAAO,GAAG,IAAA,kCAAmB,GAAE,CAAC;IAEtC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,IAAI,aAAa,OAAO,KAAK,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,8BAAe,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/C,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC;YAC1B,IAAI;YACJ,cAAc,EAAE,OAAO,CAAC,YAAY;YACpC,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC;YAC7B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;YACrD,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;YAC3D,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACtE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,gBAAgB,IAAI,CAAC,CAAC;QACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,QAAQ,CAAC,SAAS,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,IAAA,uBAAa,EAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YACxD,IAAI,MAAM;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;;gBACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,sCAAsC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjE,IAAI,YAAY,CAAC;IACjB,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC1B,OAAO,IAAA,qBAAS,EACd,GAAG,EACH,EAAE,UAAU,EAAE,uBAAuB,EAAE,OAAO,EAAE,0BAA0B,EAAE,EAC5E,CAAC,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC1D,MAAM;QACR,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,6BAAc,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;gBAC1E,MAAM,IAAA,eAAK,EAAC,MAAM,CAAC,CAAC;gBACpB,SAAS;YACX,CAAC;YACD,OAAO,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,oEAAoE;IACpE,sEAAsE;IACtE,qEAAqE;IACrE,6DAA6D;IAC7D,iEAAiE;IACjE,oEAAoE;IACpE,mBAAmB;IACnB,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;QAC9D,OAAO,IAAA,qBAAS,EACd,GAAG,EACH;YACE,UAAU,EAAE,0BAA0B;YACtC,OAAO,EACL,kEAAkE;gBAClE,kEAAkE;gBAClE,6DAA6D;YAC/D,OAAO,EAAE,YAAY;SACtB,EACD,CAAC,CACF,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,IAAI,CACxB,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,YAAY,GAAG,KAAK,GAAG,IAAI,CAChD,CAAC,WAAW,EAAE,CAAC;IAEhB,mEAAmE;IACnE,sEAAsE;IACtE,uEAAuE;IACvE,wEAAwE;IACxE,mEAAmE;IACnE,kBAAkB;IAClB,MAAM,OAAO,GACX,YAAY,CAAC,UAAU,IAAI,IAAI;QAC7B,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,CAAC,aAAa,EAAE;QACrF,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAA,+BAAc,EAAC;QACb,IAAI;QACJ,YAAY,EAAE,YAAY,CAAC,YAAY;QACvC,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,cAAc,EAAE,OAAO,CAAC,YAAY;QACpC,eAAe,EAAE,OAAO,CAAC,aAAa;QACtC,OAAO;QACP,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACrC,CAAC,CAAC;IAEH,IAAA,kBAAM,EACJ,GAAG,EACH;QACE,EAAE,EAAE,IAAI;QACR,IAAI;QACJ,YAAY,EAAE,YAAY,CAAC,YAAY;QACvC,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,SAAS;KACtB,EACD,GAAG,EAAE,CACH;QACE,EAAE;QACF,kBAAkB,IAAI,IAAI;QAC1B,IAAA,eAAG,EAAC,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC;QAC5C,IAAA,eAAG,EAAC,SAAS,EAAE,YAAY,CAAC,aAAa,CAAC;QAC1C,IAAA,eAAG,EAAC,UAAU,EAAE,OAAO,CAAC;QACxB,IAAA,eAAG,EAAC,UAAU,EAAE,SAAS,CAAC;QAC1B,EAAE;QACF,WAAW,IAAA,eAAG,EAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,IAAA,eAAG,EAAC,MAAM,CAAC,sBAAsB,CAAC,qBAAqB,IAAA,eAAG,EAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE;QACjJ,EAAE;QACF,gDAAgD;KACjD,CAAC,IAAI,CAAC,IAAI,CAAC,CACf,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,GAAY,EAAE,GAAc;IAClD,IAAI,GAAG,YAAY,6BAAc,EAAE,CAAC;QAClC,OAAO,IAAA,qBAAS,EAAC,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,IAAA,qBAAS,EACd,GAAG,EACH,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,EACtE,CAAC,CACF,CAAC;AACJ,CAAC;AAED,kDAAkD;AAClD,SAAgB,cAAc,CAAC,IAAc;IAC3C,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,CAAC;IAClC,OAAO;QACL,IAAI,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACnE,OAAO,EAAE,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;QAC9E,cAAc,EACZ,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACrF,mBAAmB,EACjB,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACrF,qBAAqB,EACnB,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACnF,WAAW,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACxF,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI;QACvC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI;KACxC,CAAC;AACJ,CAAC"}
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@ const markets_js_1 = require("./commands/markets.js");
15
15
  const stack_js_1 = require("./commands/stack.js");
16
16
  const agent_key_js_1 = require("./commands/agent_key.js");
17
17
  const mcp_js_1 = require("./commands/mcp.js");
18
- const VERSION = '0.1.2';
18
+ const VERSION = '0.1.4';
19
19
  const HELP = `dope — DOPE Agent Mode CLI (v${VERSION})
20
20
 
21
21
  Usage:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dopemarkets/agent",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "DOPE Agent Mode CLI. Run agentic Stack trades on DOPE from the terminal.",
5
5
  "bin": {
6
6
  "dope": "bin/dope.js"
@@ -14,7 +14,7 @@
14
14
  "postinstall": "node scripts/postinstall.js"
15
15
  },
16
16
  "dependencies": {
17
- "@dopemarkets/agent-client": "0.1.0"
17
+ "@dopemarkets/agent-client": "0.1.1"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@types/node": "^22.10.5",
@@ -5,20 +5,32 @@
5
5
  // unambiguous "the install succeeded — here's what to do next" line.
6
6
  // Non-developers won't otherwise know the install worked.
7
7
  //
8
- // Note: we tried gating this on `process.env.npm_config_global === 'true'`
9
- // so the banner would only appear on `-g` installs and stay quiet when
10
- // the package was pulled in as a transitive dep. In practice npm 11
11
- // does not reliably set that env var for postinstall scripts, so the
12
- // banner never fired on the install path that actually matters.
13
- // `@dopemarkets/agent` is a CLI; the global install is overwhelmingly
14
- // the intended use, and a stray banner on a rare local install is not
15
- // worth losing the signal on the common path. Always print.
8
+ // Two non-obvious things make this trickier than it looks:
16
9
  //
17
- // Rules that remain:
18
- // - Print to stderr so it sits alongside npm's own install chatter
19
- // and never contaminates a script's stdout.
20
- // - Never throw. Postinstall failures bubble up as install failures,
21
- // and a banner is not worth breaking somebody's machine over.
10
+ // 1. npm 9+ runs postinstall scripts in background mode by default
11
+ // (the `--foreground-scripts` flag is opt-in). In background
12
+ // mode npm captures the child's stdout/stderr and only surfaces
13
+ // them on failure. Writing to `process.stderr` is therefore
14
+ // invisible to the user on a normal `npm install -g` run. To
15
+ // reach the user's terminal we open `/dev/tty` for writing and
16
+ // print there, bypassing npm's stream capture entirely. This
17
+ // requires a controlling terminal (so e.g. CI shows nothing,
18
+ // which is the right outcome — no human to read the banner).
19
+ //
20
+ // 2. We previously tried gating this on `npm_config_global` so the
21
+ // banner would only print on `-g` installs. npm 11 does not
22
+ // reliably set that env var for postinstall scripts, so the
23
+ // gate silently no-op'd on the install path that actually
24
+ // matters. `@dopemarkets/agent` is a CLI; the global install
25
+ // is overwhelmingly the intended use. We always print.
26
+ //
27
+ // Rules:
28
+ // - Try the controlling TTY first (works on the common case).
29
+ // - Fall back to stderr (covers Windows, `--foreground-scripts`,
30
+ // and any environment without a usable /dev/tty).
31
+ // - Never throw. Postinstall failures bubble up as install
32
+ // failures, and a banner is never worth breaking somebody's
33
+ // machine over.
22
34
 
23
35
  'use strict';
24
36
 
@@ -33,7 +45,24 @@ try {
33
45
  'Run `dope --help` to see every command.',
34
46
  '',
35
47
  ];
36
- process.stderr.write(lines.join('\n'));
48
+ const message = lines.join('\n');
49
+
50
+ let wroteToTty = false;
51
+ if (process.platform !== 'win32') {
52
+ try {
53
+ // Synchronous open + write so we don't leak across npm's
54
+ // postinstall lifecycle boundary.
55
+ const fs = require('fs');
56
+ fs.writeFileSync('/dev/tty', message);
57
+ wroteToTty = true;
58
+ } catch {
59
+ // No controlling TTY (e.g. CI). Fall through to stderr.
60
+ }
61
+ }
62
+
63
+ if (!wroteToTty) {
64
+ process.stderr.write(message);
65
+ }
37
66
  } catch {
38
67
  // Intentionally swallow. A banner is never worth a failed install.
39
68
  }