waitspin 0.1.5 → 0.1.7

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.
Files changed (30) hide show
  1. package/README.md +55 -26
  2. package/assets/waitspin-vscode/media/waitspin-activitybar.svg +31 -0
  3. package/assets/waitspin-vscode/media/waitspin-icon.png +0 -0
  4. package/assets/waitspin-vscode/media/waitspin-icon.svg +94 -0
  5. package/assets/waitspin-vscode/out/extension-core.js +446 -0
  6. package/assets/waitspin-vscode/out/extension-core.js.map +1 -0
  7. package/assets/waitspin-vscode/out/extension-html.js +12 -0
  8. package/assets/waitspin-vscode/out/extension-html.js.map +1 -0
  9. package/assets/waitspin-vscode/out/extension-onboarding.js +315 -0
  10. package/assets/waitspin-vscode/out/extension-onboarding.js.map +1 -0
  11. package/assets/waitspin-vscode/out/extension-surfaces.js +161 -0
  12. package/assets/waitspin-vscode/out/extension-surfaces.js.map +1 -0
  13. package/assets/waitspin-vscode/out/extension-wallet-view.js +194 -0
  14. package/assets/waitspin-vscode/out/extension-wallet-view.js.map +1 -0
  15. package/assets/waitspin-vscode/out/extension-wallet.js +148 -0
  16. package/assets/waitspin-vscode/out/extension-wallet.js.map +1 -0
  17. package/assets/waitspin-vscode/out/extension.js +297 -153
  18. package/assets/waitspin-vscode/out/extension.js.map +1 -1
  19. package/assets/waitspin-vscode/package.json +76 -7
  20. package/dist/cli-format.js +301 -0
  21. package/dist/cli-format.js.map +1 -0
  22. package/dist/cli.js +714 -116
  23. package/dist/cli.js.map +1 -1
  24. package/dist/targets/experimental-cli.js +1115 -0
  25. package/dist/targets/experimental-cli.js.map +1 -0
  26. package/dist/targets/experimental-runtime.js +343 -0
  27. package/dist/targets/experimental-runtime.js.map +1 -0
  28. package/dist/wallet-format.js +222 -0
  29. package/dist/wallet-format.js.map +1 -0
  30. package/package.json +5 -3
package/README.md CHANGED
@@ -7,9 +7,9 @@ wait-state ads for verified developer surfaces.
7
7
 
8
8
  Run after `npm view waitspin version` succeeds in launch evidence:
9
9
 
10
- Before install, publisher registration, or Checkout, review:
10
+ Before install, user registration, or Checkout, review:
11
11
 
12
- - Public API and agent docs: `https://waitspin.com/waitspin/docs`
12
+ - Public API and agent docs: `https://waitspin.com/docs`
13
13
  - Agent markdown: `https://waitspin.com/.well-known/agents.md`
14
14
  - Terms: `https://waitspin.com/waitspin/terms`
15
15
  - Privacy: `https://waitspin.com/waitspin/privacy`
@@ -26,12 +26,16 @@ waitspin bid create --line "Your ad" --url https://example.com --price-per-block
26
26
  waitspin bid checkout CAMPAIGN_ID
27
27
  npx --yes waitspin init --email you@example.com --key-profile publisher-extension
28
28
 
29
+ # First-class VS Code user path
30
+ code --install-extension waitspin.waitspin-vscode
31
+ # Then run "WaitSpin: Connect and earn" inside VS Code.
32
+
29
33
  # Advanced agent install for every detected supported target
30
34
  waitspin install --all --dry-run --api-key PASTE_PUBLISHER_EXTENSION_KEY --compose-existing
31
35
  waitspin install --all --api-key PASTE_PUBLISHER_EXTENSION_KEY --compose-existing
32
36
  waitspin status --all
33
37
 
34
- # Install for VS Code status-bar fallback
38
+ # CLI fallback for VS Code Activity Bar/status-bar extension
35
39
  waitspin extension install --target vscode --api-key PASTE_PUBLISHER_EXTENSION_KEY
36
40
  waitspin extension status --target vscode
37
41
 
@@ -46,6 +50,10 @@ waitspin mimocode status
46
50
  # Or install for OpenCode TUI plugin slot
47
51
  waitspin opencode install --api-key PASTE_PUBLISHER_EXTENSION_KEY
48
52
  waitspin opencode status
53
+
54
+ # Or install for Grok Code CLI footer
55
+ waitspin grok install --api-key PASTE_PUBLISHER_EXTENSION_KEY
56
+ waitspin grok status
49
57
  ```
50
58
 
51
59
  ## Commands
@@ -55,16 +63,18 @@ waitspin opencode status
55
63
  - `waitspin bids list` — list campaigns
56
64
  - `waitspin bid checkout CAMPAIGN_ID` — Stripe Checkout for blocks
57
65
  - `waitspin market` — public leaderboard
58
- - `waitspin wallet connect` — Stripe Connect Express onboarding
59
- - `waitspin wallet status` — publisher balance, payout, and Connect status
60
- - `waitspin wallet ledger` — publisher delivery ledger
66
+ - `waitspin wallet connect --country US` — Stripe Connect Express onboarding
67
+ - `waitspin wallet status` — user balance, payout, and Connect status
68
+ - `waitspin wallet ledger` — user delivery ledger
61
69
  - `waitspin wallet payout --dry-run` — payout eligibility preview
62
- - `waitspin extension install --target vscode` — install the VS Code status-bar fallback
63
- - `waitspin extension status --target vscode` — inspect managed fallback lifecycle state
64
- - `waitspin extension uninstall --target vscode` — remove the managed fallback runtime and local state
65
- - `waitspin install --all --dry-run` — preview detected publisher targets without file changes
66
- - `waitspin install --all` — install every detected supported publisher target
67
- - `waitspin status --all` — aggregate lifecycle status for every publisher target
70
+ - `code --install-extension waitspin.waitspin-vscode` — install the public VS Code Marketplace extension
71
+ - `WaitSpin: Connect and earn` — connect the VS Code extension from inside the editor
72
+ - `waitspin extension install --target vscode --api-key PASTE_PUBLISHER_EXTENSION_KEY` — advanced CLI fallback for VS Code extension setup
73
+ - `waitspin extension status --target vscode` — inspect managed VS Code extension lifecycle state
74
+ - `waitspin extension uninstall --target vscode` — remove the managed VS Code extension runtime and local state
75
+ - `waitspin install --all --dry-run` — preview detected user surfaces without file changes
76
+ - `waitspin install --all` — install every detected supported user surface
77
+ - `waitspin status --all` — aggregate lifecycle status for every user surface
68
78
  - `waitspin claude-code install --compose-existing` — install the Claude Code statusline command
69
79
  - `waitspin claude-code status` — inspect managed Claude Code runtime state
70
80
  - `waitspin claude-code uninstall` — restore Claude Code statusline settings and remove managed local state
@@ -74,15 +84,20 @@ waitspin opencode status
74
84
  - `waitspin opencode install` — install the OpenCode TUI plugin slot
75
85
  - `waitspin opencode status` — inspect managed OpenCode runtime state
76
86
  - `waitspin opencode uninstall` — remove managed OpenCode runtime and plugin
87
+ - `waitspin grok install` — install the Grok Code CLI footer surface
88
+ - `waitspin grok status` — inspect managed Grok Code CLI runtime state
89
+ - `waitspin grok uninstall` — restore Grok Code CLI and remove managed state
77
90
 
78
91
  API base: `https://api.waitspin.com`
79
92
 
80
- The public package installs four verified publisher targets: the VS Code
81
- status-bar fallback, the Claude Code statusline command, the MiMo Code shell
82
- hook, and the OpenCode TUI plugin slot. Claude Code support uses the official
83
- `statusLine.command` path and does not patch Claude Code internals. MiMo Code
84
- uses a bash hook that polls the API for sponsored messages. OpenCode uses its
85
- TUI `app_bottom` plugin slot.
93
+ The public package installs five verified user earning surfaces: the VS Code
94
+ Activity Bar/status-bar extension, the Claude Code statusline command, the MiMo
95
+ Code shell hook, the OpenCode TUI plugin slot, and the Grok Code CLI footer.
96
+ Claude Code support uses the official `statusLine.command` path and does not
97
+ patch Claude Code internals. MiMo Code uses a bash hook that polls the API for
98
+ sponsored messages. OpenCode uses its TUI `app_bottom` plugin slot. Grok Code
99
+ CLI uses a managed text-asset footer patch with hash-backed backup/restore and
100
+ does not patch native binaries.
86
101
 
87
102
  `waitspin install --all` is an advanced agent command for installing every
88
103
  detected supported target. It keeps explicit target commands as the canonical
@@ -99,12 +114,15 @@ Native spinner patches beyond supported status surfaces, account-credit
99
114
  redemption, cash refund self-service, and click billing are not public
100
115
  paid-launch capabilities yet.
101
116
 
102
- ## Publisher credentials
117
+ ## User install credentials
103
118
 
104
- Use a publisher-extension key for publisher polling/events:
119
+ Use an extension API key created with `--key-profile publisher-extension` for
120
+ user install polling/events:
105
121
 
106
122
  ```bash
107
123
  npx waitspin init --email you@example.com --key-profile publisher-extension
124
+ code --install-extension waitspin.waitspin-vscode
125
+ # Then run "WaitSpin: Connect and earn" inside VS Code.
108
126
  npx waitspin install --all --dry-run --api-key PASTE_PUBLISHER_EXTENSION_KEY --compose-existing
109
127
  npx waitspin install --all --api-key PASTE_PUBLISHER_EXTENSION_KEY --compose-existing
110
128
  npx waitspin status --all
@@ -112,16 +130,18 @@ npx waitspin extension install --target vscode --api-key PASTE_PUBLISHER_EXTENSI
112
130
  npx waitspin claude-code install --api-key PASTE_PUBLISHER_EXTENSION_KEY --compose-existing
113
131
  npx waitspin mimocode install --api-key PASTE_PUBLISHER_EXTENSION_KEY
114
132
  npx waitspin opencode install --api-key PASTE_PUBLISHER_EXTENSION_KEY
133
+ npx waitspin grok install --api-key PASTE_PUBLISHER_EXTENSION_KEY
115
134
  ```
116
135
 
117
- - `WAITSPIN_API_KEY` — temporary publisher-extension key for first activation
136
+ - `WAITSPIN_API_KEY` — temporary extension API key for CLI fallback flows
118
137
  - `WAITSPIN_INSTALL_ID` — from `waitspin extension install` or `waitspin claude-code install`
119
138
 
120
- The VS Code extension migrates `waitspin.apiKey` from User settings into VS Code
121
- SecretStorage on activation. `WAITSPIN_API_KEY` is an env-only temporary
122
- fallback and is not persisted by the extension. Store `waitspin.installId` in
123
- User settings; do not store broad control keys or workspace-scoped credentials
124
- for normal publisher operation.
139
+ The VS Code Marketplace extension should normally be connected through
140
+ `WaitSpin: Connect and earn`, which stores the extension key in VS Code
141
+ SecretStorage and stores the install ID in user-scoped extension state. The
142
+ legacy `waitspin.apiKey` User setting is still migrated into SecretStorage for
143
+ fallback/rotation, but normal user operation does not require copying
144
+ install IDs or broad control keys into workspace settings.
125
145
 
126
146
  The Claude Code installer writes a managed statusline runtime/state under
127
147
  `~/.waitspin` and updates `~/.claude/settings.json` with a safe
@@ -136,6 +156,14 @@ The OpenCode installer writes a managed runtime/state under `~/.waitspin`,
136
156
  installs a TUI plugin under `~/.config/opencode/plugins`, and adds the managed
137
157
  entry to `~/.config/opencode/tui.json` so OpenCode mounts the `app_bottom` slot.
138
158
 
159
+ The Grok Code CLI installer writes a managed runtime/state under `~/.waitspin`
160
+ and patches the verified OpenTUI footer text asset with a hash-backed backup so
161
+ uninstall can restore the original file.
162
+
163
+ Cline VS Code extension installs are covered by the VS Code Activity Bar/status-bar extension target.
164
+ Standalone Cline CLI is not a public install target until Cline exposes an
165
+ official statusline/plugin surface.
166
+
139
167
  ## Release validation
140
168
 
141
169
  Before advertising the public `npx waitspin` path, release operators should run:
@@ -147,4 +175,5 @@ npm view waitspin version
147
175
  npx --yes waitspin --help
148
176
  npx --yes waitspin@latest mimocode status
149
177
  npx --yes waitspin@latest opencode status
178
+ npx --yes waitspin@latest grok status
150
179
  ```
@@ -0,0 +1,31 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-labelledby="title desc">
2
+ <title id="title">WaitSpin Orbit Symbol</title>
3
+ <desc id="desc">Broken white orbit ring with a geometric white W and a signal green dot.</desc>
4
+ <defs>
5
+ <style>
6
+ .orbit { fill: none; stroke: #fff; stroke-width: 4.25; stroke-linecap: butt; }
7
+ .mark { fill: #fff; }
8
+ .dot { fill: #b7e11d; }
9
+ </style>
10
+ </defs>
11
+ <path
12
+ class="orbit"
13
+ d="M23.48 18.86
14
+ A17 17 0 1 0 47.08 25.49"
15
+ />
16
+ <path
17
+ class="mark"
18
+ d="M22.8 28
19
+ L26.9 28
20
+ L29.95 35.05
21
+ L32 30.95
22
+ L34.05 35.05
23
+ L37.1 28
24
+ L41.2 28
25
+ L34.8 41.25
26
+ L32 36.05
27
+ L29.2 41.25
28
+ Z"
29
+ />
30
+ <circle class="dot" cx="45.95" cy="18.55" r="3.2"/>
31
+ </svg>
@@ -0,0 +1,94 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="5 48.9 100 92">
2
+ <!-- SVG created with Arrow, by QuiverAI (https://quiver.ai) -->
3
+ <path d="m65.5 77.8v4h2.3v5.2h-1.2v5h-1.2v5h-0.9v3.5h-1v-1.5h-0.5v-4.5h-1.4v-6.4h-1.4v-5.9h-1.6v-4.4h-7v4.3h-1.7v6.1h-1.3v6.3h-1.2v4.5h-0.6v1.6h-1v-3.3h-0.8v-5.3h-1.2v-5.1h-1.1v-4.9h2.6v-4.2h-13.6v4.1h2.5v5h1.6v6.1h1.8v6.7h1.5v6.2h1.6v5.2h1.7v3.7h7.1v-3.3l1.5-0.1v-3.9h1.2v-5.3h1.3v-6l1.3-0.1v-2.3l0.7 0.1v2.4h1.2v6h1.2v5.2h1.3v3.9h1.5v3.6h7.2v-3.7h1.8v-5.4h1.5v-6.3h1.6v-6.7h1.9v-6h1.7v-4.9h2.5v-4.2z"/>
4
+ <polygon points="56.4 55.7 56.4 53.8 53.9 53.8 53.9 55.7 52.4 55.7 52.4 59.3 53.9 59.3 53.9 60.8 56.4 60.8 56.4 59.3 57.9 59.3 57.9 55.7"/>
5
+ <path d="m50.8 51.8h1.6-0.5v-1.1h6.4v2h1.9v1.9h1.6l-0.4-0.1v-1.8h-1.5v-1.8h-1.6v-1.7h-6.6v1.7h-1.9l0.1 1.8h-1.6v1.8h1.7z"/>
6
+ <path d="m50.8 61.9h-1.9l-0.7-0.1v-1.6h-1.4v-5.6l1.6-0.1v5.4z"/>
7
+ <path d="m60.2 61.8v-1.6l1.7-0.1-0.1-5.5h1.6v5.6h-1.5v1.7l-1.7-0.1z"/>
8
+ <path d="m51.9 63.7h6.4v1.7h-6.5z"/>
9
+ <path d="m58.3 61.9h1.9v1.7l-1.9 0.1z"/>
10
+ <path d="m49.9 61.9h2v1.8l-2-0.1z"/>
11
+ <rect x="41.1" y="54.1" width="1.9" height="1.9"/>
12
+ <rect x="37.1" y="57.5" width="2" height="1.9"/>
13
+ <rect x="67.4" y="54.1" width="1.9" height="1.9"/>
14
+ <rect x="71" y="57.5" width="1.9" height="1.9"/>
15
+ <rect x="91.4" y="76" width="1.9" height="1.8"/>
16
+ <rect x="94.9" y="79.6" width="1.9" height="1.9"/>
17
+ <rect x="16.6" y="75.9" width="1.9" height="1.8"/>
18
+ <rect x="13.5" y="79.6" width="1.9" height="1.9"/>
19
+ <path d="m20.3 57.8v1.8h-1.5v2.3h1.5v1.6h-1.5v2.1h1.4v1.6l-1.4 0.1v2h1.4v1.4h-1.4v2h1.5v2h13.5v-16.9zm12.4 15.6h-10.7v-14h10.7v1.8h-9.3v1.7h9.3z"/>
20
+ <rect x="23.4" y="64.8" width="3.1" height="1.8"/>
21
+ <rect x="28.2" y="64.8" width="3.2" height="1.8"/>
22
+ <rect x="23.4" y="67.8" width="3.1" height="1.7"/>
23
+ <rect x="28.2" y="67.8" width="3.2" height="1.7"/>
24
+ <rect x="23.4" y="70.6" width="3.2" height="1.6"/>
25
+ <rect x="28.2" y="70.6" width="3.2" height="1.6"/>
26
+ <path d="m76.7 66-1.3 1.1v2.1h1.3l0.1 1.4h-1.4v2.1h1.3l0.1 2h13.5v-16.9h-13.6v1.8h-1.4v2.2h1.5l-0.1 1.7h-1.3v2.1zm1.7-6.6h10.4v1.8h-9.2v1.7h9.3v10.5h-10.5z"/>
27
+ <rect x="79.6" y="64.8" width="3.1" height="1.8"/>
28
+ <rect x="84.3" y="64.8" width="3.3" height="1.8"/>
29
+ <rect x="79.6" y="67.8" width="3.1" height="1.7"/>
30
+ <rect x="84.3" y="67.8" width="3.3" height="1.7"/>
31
+ <rect x="79.6" y="70.6" width="3.1" height="1.6"/>
32
+ <rect x="84.3" y="70.6" width="3.3" height="1.6"/>
33
+ <path d="m20.6 113.5v1.9h-1.7v2.2h1.5v1.6h-1.5v2.2h1.4v1.5h-1.5v2h1.4l0.1 1.4-1.5 0.1v1.9h1.5v2h13.5v-16.8zm12 15.5h-10.7v-13.8h10.7v1.9h-9.3v1.6h9.3z"/>
34
+ <rect x="23.3" y="120.6" width="3.2" height="1.7"/>
35
+ <rect x="28.1" y="120.6" width="3.2" height="1.7"/>
36
+ <rect x="23.3" y="123.5" width="3.2" height="1.6"/>
37
+ <rect x="28.1" y="123.5" width="3.2" height="1.6"/>
38
+ <rect x="23.3" y="126.3" width="3.2" height="1.5"/>
39
+ <rect x="28.1" y="126.3" width="3.2" height="1.5"/>
40
+ <path d="m76.7 113.5v1.9h-1.4v2.2h1.4v1.5l-1.4 0.1v2.1l1.4 0.1v1.5h-1.4v2l1.4 0.1v1.3l-1.4 0.1v1.8l1.4 0.1 0.1 2h13.5v-16.8zm12.1 15.5h-10.5v-13.8h10.5v1.9h-9.3v1.6h9.3z"/>
41
+ <rect x="79.5" y="120.6" width="3.2" height="1.7"/>
42
+ <rect x="84.2" y="120.6" width="3.3" height="1.7"/>
43
+ <rect x="79.5" y="123.5" width="3.2" height="1.6"/>
44
+ <rect x="84.2" y="123.5" width="3.3" height="1.6"/>
45
+ <rect x="79.5" y="126.2" width="3.2" height="1.5"/>
46
+ <rect x="84.2" y="126.2" width="3.3" height="1.5"/>
47
+ <polygon points="16.5 92.6 16.5 90.6 13.3 90.6 13.3 92.6 11.6 92.6 11.6 96.5 13.3 96.5 13.3 98.4 16.3 98.4 16.3 96.5 18.1 96.5 18.1 92.6"/>
48
+ <path d="m10.9 86h7.7v1.7h-7.6z"/>
49
+ <path d="m18.6 87.5h2v1.9h-2z"/>
50
+ <path d="m20.5 89.3h1.8v2h-1.8z"/>
51
+ <path d="m22.2 91.3h1.9v6.4h-1.9z"/>
52
+ <path d="m20.6 97.6h1.7v1.9h-1.7z"/>
53
+ <path d="m18.6 99.5h2v1.8h-2z"/>
54
+ <path d="m11 101.2 7.7 0.1v1.6h-7.7z"/>
55
+ <path d="m9 99.5h2v1.8h-1.9z"/>
56
+ <path d="m7.6 97.6h1.7v2h-1.7z"/>
57
+ <path d="m5.8 91.3h1.8v6.4h-1.8z"/>
58
+ <path d="m7.6 89.3h1.7v2h-1.7z"/>
59
+ <path d="m9.1 87.5h1.9v1.9h-1.9z"/>
60
+ <polygon points="96.8 92.4 96.8 90.3 93.9 90.3 93.9 92.3 92.2 92.4 92.2 96.4 93.9 96.4 93.9 98.4 96.8 98.4 96.8 96.4 98.5 96.4 98.5 92.4"/>
61
+ <path d="m91.7 85.6h7.2v1.8h-7.2z"/>
62
+ <path d="m98.9 87.2h1.9v2h-1.8z"/>
63
+ <path d="m100.8 89.1h1.7v2.1h-1.7z"/>
64
+ <path d="m102.4 91.2h1.7v6.3h-1.7z"/>
65
+ <path d="m100.8 97.5h1.7v1.9h-1.7z"/>
66
+ <path d="m98.9 99.4h1.9v1.8h-1.9z"/>
67
+ <path d="m91.6 101.1 7.3 0.1v1.7h-7.3z"/>
68
+ <path d="m89.6 99.4h2v1.9h-2z"/>
69
+ <path d="m88 97.5h1.7v1.9h-1.8z"/>
70
+ <path d="m85.9 91.2h2v6.3h-2z"/>
71
+ <path d="m87.9 89.1h1.8v2.1h-1.8z"/>
72
+ <path d="m89.6 87.2h2v2h-2z"/>
73
+ <path d="m56.2 130.6v-1.8h-2.4v1.8h-1.5v3.7h1.5v1.7h2.5v-1.7h1.5v-3.7z"/>
74
+ <path d="m51.7 124.2h6.6v1.8h-6.6z"/>
75
+ <path d="m58.3 125.9h1.9v2h-1.9z"/>
76
+ <path d="m60.1 127.8h1.8v1.9h-1.7z"/>
77
+ <path d="m61.9 129.7h1.6v5.5h-1.6z"/>
78
+ <path d="m60.2 135.2h1.7v1.7h-1.7z"/>
79
+ <path d="m58.3 137h1.9v1.8h-1.8z"/>
80
+ <path d="m51.8 138.6h6.6v1.7h-6.6z"/>
81
+ <path d="m49.9 137h2.1v1.8h-2.1z"/>
82
+ <path d="m48.4 135.2h1.8v1.8l-1.8-0.1z"/>
83
+ <path d="m46.8 129.7h1.7v5.5h-1.7z"/>
84
+ <path d="m48.3 127.8h1.8l0.1 1.9h-1.9z"/>
85
+ <path d="m49.9 125.9h2v2h-2z"/>
86
+ <rect x="13.5" y="107.3" width="1.9" height="1.9"/>
87
+ <rect x="16.6" y="110.6" width="1.9" height="1.8"/>
88
+ <rect x="91.7" y="110.6" width="1.9" height="1.8"/>
89
+ <rect x="94.9" y="107.3" width="1.9" height="1.8"/>
90
+ <rect x="37.2" y="129.1" width="1.9" height="1.9"/>
91
+ <rect x="40.9" y="132.8" width="1.9" height="1.9"/>
92
+ <rect x="70.9" y="129.1" width="1.8" height="1.9"/>
93
+ <rect x="67.4" y="132.8" width="1.9" height="1.9"/>
94
+ </svg>