sibyl-memory-cli 0.3.3__tar.gz → 0.3.4__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sibyl-memory-cli
3
- Version: 0.3.3
3
+ Version: 0.3.4
4
4
  Summary: Command-line interface for the Sibyl Memory Plugin. `sibyl init` activates, `sibyl upgrade` runs the staker / subscription flow, `sibyl status` shows current tier and DB stats, `sibyl whoami` gives a one-line account summary, `sibyl devices` lists active devices and supports per-device revoke.
5
5
  Author-email: "SIBYL, Sibyl Labs LLC" <sibyl@sibyllabs.org>
6
6
  License: MIT
@@ -48,32 +48,34 @@ sibyl health Run the SibylMemoryProvider self-check (schema versi
48
48
  ```bash
49
49
  $ sibyl init
50
50
 
51
- Sibyl Memory Plugin · activation
51
+ activation · three paths · pick whichever fits your device
52
52
 
53
- Session: a1b2c3d4…e5f6
54
- Opening: https://sibyllabs.org/plugin/activate?session=a1b2c3d4-…
53
+ Session a1b2c3d4…e5f6
54
+ Code 1 2 3 4 5 6 (use this in the email panel)
55
+ Opening https://auth.sibyllabs.org/a1b2c3d4-…
55
56
 
56
- Sign in with your wallet in the browser. This terminal will pick up automatically.
57
+ desktop wallet · email + code · or send USDC from any mobile wallet
58
+ this terminal will pick up automatically when you bind.
57
59
 
58
- ⠹ waiting for browser activation … 9:42 left
60
+ ⠹ watching the network for your bind … 9:42 left
59
61
  ```
60
62
 
61
- The browser opens. Sign a SIWE message with your wallet. The terminal picks up the moment the binding lands. Credentials are written to `~/.sibyl-memory/credentials.json` at mode 0600.
63
+ The browser opens to a dedicated short-URL auth subdomain (`auth.sibyllabs.org/<session-uuid>`). Pick a wallet from the EIP-6963 picker (Rabby / MetaMask / Coinbase Wallet / Frame / Brave / Rainbow), enter email + 6-digit code, or send a unique sub-cent USDC amount from any mobile wallet on Base. The terminal picks up the moment any of the three paths binds. Credentials are written to `~/.sibyl-memory/credentials.json` at mode 0600.
62
64
 
63
65
  ## Upgrade
64
66
 
65
67
  ```bash
66
68
  $ sibyl upgrade
67
69
 
68
- Sibyl Memory Plugin · upgrade
70
+ upgrade · lift the 2 MB free-tier cap
69
71
 
70
72
  Account a1b2c3d4…e5f6
71
73
  Current tier FREE
72
74
  Opening https://sibyllabs.org/plugin/upgrade?session=…
73
75
 
74
- Two paths in your browser:
75
- 1. Stake $SIBYL on Base (free unlimited if you qualify)
76
- 2. Subscribe in USDC (monthly / quarterly / annual)
76
+ two paths in the browser:
77
+ 1. stake $SIBYL on Base (free unlimited if you qualify)
78
+ 2. subscribe in USDC (monthly / quarterly / annual)
77
79
  ```
78
80
 
79
81
  In the browser:
@@ -113,10 +115,12 @@ For internal testing only:
113
115
 
114
116
  ```bash
115
117
  SIBYL_API_BASE=https://staging.api.sibyllabs.org sibyl init
116
- SIBYL_ACTIVATE_BASE=https://staging.sibyllabs.org/plugin/activate sibyl init
118
+ SIBYL_ACTIVATE_BASE=https://staging.auth.sibyllabs.org sibyl init
117
119
  SIBYL_UPGRADE_BASE=https://staging.sibyllabs.org/plugin/upgrade sibyl upgrade
118
120
  ```
119
121
 
122
+ `SIBYL_ACTIVATE_BASE` accepts both subdomain form (`https://auth.example.org` → path-based session URL: `https://auth.example.org/<uuid>`) and legacy path form (`https://example.org/plugin/activate` → query-based: `?session=<uuid>`). The CLI auto-detects from the hostname.
123
+
120
124
  ## Security
121
125
 
122
126
  - `credentials.json` is written atomically at mode 0600.
@@ -22,32 +22,34 @@ sibyl health Run the SibylMemoryProvider self-check (schema versi
22
22
  ```bash
23
23
  $ sibyl init
24
24
 
25
- Sibyl Memory Plugin · activation
25
+ activation · three paths · pick whichever fits your device
26
26
 
27
- Session: a1b2c3d4…e5f6
28
- Opening: https://sibyllabs.org/plugin/activate?session=a1b2c3d4-…
27
+ Session a1b2c3d4…e5f6
28
+ Code 1 2 3 4 5 6 (use this in the email panel)
29
+ Opening https://auth.sibyllabs.org/a1b2c3d4-…
29
30
 
30
- Sign in with your wallet in the browser. This terminal will pick up automatically.
31
+ desktop wallet · email + code · or send USDC from any mobile wallet
32
+ this terminal will pick up automatically when you bind.
31
33
 
32
- ⠹ waiting for browser activation … 9:42 left
34
+ ⠹ watching the network for your bind … 9:42 left
33
35
  ```
34
36
 
35
- The browser opens. Sign a SIWE message with your wallet. The terminal picks up the moment the binding lands. Credentials are written to `~/.sibyl-memory/credentials.json` at mode 0600.
37
+ The browser opens to a dedicated short-URL auth subdomain (`auth.sibyllabs.org/<session-uuid>`). Pick a wallet from the EIP-6963 picker (Rabby / MetaMask / Coinbase Wallet / Frame / Brave / Rainbow), enter email + 6-digit code, or send a unique sub-cent USDC amount from any mobile wallet on Base. The terminal picks up the moment any of the three paths binds. Credentials are written to `~/.sibyl-memory/credentials.json` at mode 0600.
36
38
 
37
39
  ## Upgrade
38
40
 
39
41
  ```bash
40
42
  $ sibyl upgrade
41
43
 
42
- Sibyl Memory Plugin · upgrade
44
+ upgrade · lift the 2 MB free-tier cap
43
45
 
44
46
  Account a1b2c3d4…e5f6
45
47
  Current tier FREE
46
48
  Opening https://sibyllabs.org/plugin/upgrade?session=…
47
49
 
48
- Two paths in your browser:
49
- 1. Stake $SIBYL on Base (free unlimited if you qualify)
50
- 2. Subscribe in USDC (monthly / quarterly / annual)
50
+ two paths in the browser:
51
+ 1. stake $SIBYL on Base (free unlimited if you qualify)
52
+ 2. subscribe in USDC (monthly / quarterly / annual)
51
53
  ```
52
54
 
53
55
  In the browser:
@@ -87,10 +89,12 @@ For internal testing only:
87
89
 
88
90
  ```bash
89
91
  SIBYL_API_BASE=https://staging.api.sibyllabs.org sibyl init
90
- SIBYL_ACTIVATE_BASE=https://staging.sibyllabs.org/plugin/activate sibyl init
92
+ SIBYL_ACTIVATE_BASE=https://staging.auth.sibyllabs.org sibyl init
91
93
  SIBYL_UPGRADE_BASE=https://staging.sibyllabs.org/plugin/upgrade sibyl upgrade
92
94
  ```
93
95
 
96
+ `SIBYL_ACTIVATE_BASE` accepts both subdomain form (`https://auth.example.org` → path-based session URL: `https://auth.example.org/<uuid>`) and legacy path form (`https://example.org/plugin/activate` → query-based: `?session=<uuid>`). The CLI auto-detects from the hostname.
97
+
94
98
  ## Security
95
99
 
96
100
  - `credentials.json` is written atomically at mode 0600.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "sibyl-memory-cli"
7
- version = "0.3.3"
7
+ version = "0.3.4"
8
8
  description = "Command-line interface for the Sibyl Memory Plugin. `sibyl init` activates, `sibyl upgrade` runs the staker / subscription flow, `sibyl status` shows current tier and DB stats, `sibyl whoami` gives a one-line account summary, `sibyl devices` lists active devices and supports per-device revoke."
9
9
  authors = [{ name = "SIBYL, Sibyl Labs LLC", email = "sibyl@sibyllabs.org" }]
10
10
  license = { text = "MIT" }
@@ -58,8 +58,16 @@ DEFAULT_DB_PATH = Path("~/.sibyl-memory/memory.db").expanduser()
58
58
  DEFAULT_TIER_CACHE_PATH = Path("~/.sibyl-memory/tier_cache.json").expanduser()
59
59
 
60
60
  POLL_INTERVAL_SEC = 3
61
- INIT_TIMEOUT_SEC = 10 * 60 # 10 minutes for /init activation
62
- UPGRADE_TIMEOUT_SEC = 15 * 60 # 15 minutes for upgrade — wallet ux can be slow
61
+ # v0.3.4 fix: bumped from 10min to 30min to match the server-side
62
+ # PAIRING_TTL_SECONDS (also raised to 30min in session-init.js). At the prior
63
+ # 10min CLI timeout the server kept the pairing code valid 5min longer than
64
+ # the CLI was listening — users who took 10-15min to find the code in their
65
+ # inbox would hit a silent-success failure: browser shows the success modal,
66
+ # server binds the session, but the CLI has already exited and the local
67
+ # credentials.json never lands. The user sees no error anywhere and concludes
68
+ # "the plugin doesn't work." The two windows now match.
69
+ INIT_TIMEOUT_SEC = 30 * 60 # 30 minutes for /init activation
70
+ UPGRADE_TIMEOUT_SEC = 30 * 60 # 30 minutes for upgrade — wallet ux can be slow
63
71
 
64
72
  # ---- Color / output ----------------------------------------------------
65
73
 
@@ -370,7 +378,12 @@ def cmd_init(args: argparse.Namespace) -> int:
370
378
 
371
379
  print()
372
380
  print(a.err_line("Activation timed out."))
373
- print(a.dim(" Re-run `sibyl init` to try again."))
381
+ print(a.dim(" Re-run `sibyl init --force` to try again."))
382
+ print()
383
+ print(a.dim(" If your browser already showed 'Activation successful',"))
384
+ print(a.dim(" your bind landed server-side but didn't reach this terminal."))
385
+ print(a.dim(" Running `sibyl init --force` again will start a fresh handshake;"))
386
+ print(a.dim(" bind through the same browser to write credentials locally."))
374
387
  return 1
375
388
 
376
389
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sibyl-memory-cli
3
- Version: 0.3.3
3
+ Version: 0.3.4
4
4
  Summary: Command-line interface for the Sibyl Memory Plugin. `sibyl init` activates, `sibyl upgrade` runs the staker / subscription flow, `sibyl status` shows current tier and DB stats, `sibyl whoami` gives a one-line account summary, `sibyl devices` lists active devices and supports per-device revoke.
5
5
  Author-email: "SIBYL, Sibyl Labs LLC" <sibyl@sibyllabs.org>
6
6
  License: MIT
@@ -48,32 +48,34 @@ sibyl health Run the SibylMemoryProvider self-check (schema versi
48
48
  ```bash
49
49
  $ sibyl init
50
50
 
51
- Sibyl Memory Plugin · activation
51
+ activation · three paths · pick whichever fits your device
52
52
 
53
- Session: a1b2c3d4…e5f6
54
- Opening: https://sibyllabs.org/plugin/activate?session=a1b2c3d4-…
53
+ Session a1b2c3d4…e5f6
54
+ Code 1 2 3 4 5 6 (use this in the email panel)
55
+ Opening https://auth.sibyllabs.org/a1b2c3d4-…
55
56
 
56
- Sign in with your wallet in the browser. This terminal will pick up automatically.
57
+ desktop wallet · email + code · or send USDC from any mobile wallet
58
+ this terminal will pick up automatically when you bind.
57
59
 
58
- ⠹ waiting for browser activation … 9:42 left
60
+ ⠹ watching the network for your bind … 9:42 left
59
61
  ```
60
62
 
61
- The browser opens. Sign a SIWE message with your wallet. The terminal picks up the moment the binding lands. Credentials are written to `~/.sibyl-memory/credentials.json` at mode 0600.
63
+ The browser opens to a dedicated short-URL auth subdomain (`auth.sibyllabs.org/<session-uuid>`). Pick a wallet from the EIP-6963 picker (Rabby / MetaMask / Coinbase Wallet / Frame / Brave / Rainbow), enter email + 6-digit code, or send a unique sub-cent USDC amount from any mobile wallet on Base. The terminal picks up the moment any of the three paths binds. Credentials are written to `~/.sibyl-memory/credentials.json` at mode 0600.
62
64
 
63
65
  ## Upgrade
64
66
 
65
67
  ```bash
66
68
  $ sibyl upgrade
67
69
 
68
- Sibyl Memory Plugin · upgrade
70
+ upgrade · lift the 2 MB free-tier cap
69
71
 
70
72
  Account a1b2c3d4…e5f6
71
73
  Current tier FREE
72
74
  Opening https://sibyllabs.org/plugin/upgrade?session=…
73
75
 
74
- Two paths in your browser:
75
- 1. Stake $SIBYL on Base (free unlimited if you qualify)
76
- 2. Subscribe in USDC (monthly / quarterly / annual)
76
+ two paths in the browser:
77
+ 1. stake $SIBYL on Base (free unlimited if you qualify)
78
+ 2. subscribe in USDC (monthly / quarterly / annual)
77
79
  ```
78
80
 
79
81
  In the browser:
@@ -113,10 +115,12 @@ For internal testing only:
113
115
 
114
116
  ```bash
115
117
  SIBYL_API_BASE=https://staging.api.sibyllabs.org sibyl init
116
- SIBYL_ACTIVATE_BASE=https://staging.sibyllabs.org/plugin/activate sibyl init
118
+ SIBYL_ACTIVATE_BASE=https://staging.auth.sibyllabs.org sibyl init
117
119
  SIBYL_UPGRADE_BASE=https://staging.sibyllabs.org/plugin/upgrade sibyl upgrade
118
120
  ```
119
121
 
122
+ `SIBYL_ACTIVATE_BASE` accepts both subdomain form (`https://auth.example.org` → path-based session URL: `https://auth.example.org/<uuid>`) and legacy path form (`https://example.org/plugin/activate` → query-based: `?session=<uuid>`). The CLI auto-detects from the hostname.
123
+
120
124
  ## Security
121
125
 
122
126
  - `credentials.json` is written atomically at mode 0600.