nomadexapp 0.1.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/LICENSE +21 -0
- package/README.md +224 -0
- package/bin/nomadex.mjs +1026 -0
- package/dist/assets/apl-Dgw9L7wA.js +1 -0
- package/dist/assets/asciiarmor-B3T-Ib7X.js +1 -0
- package/dist/assets/asn1-C0KgO0Wt.js +1 -0
- package/dist/assets/asterisk-D7tOY-Ef.js +1 -0
- package/dist/assets/brainfuck-Dr6WXxS2.js +1 -0
- package/dist/assets/clike-DQfG49Bz.js +1 -0
- package/dist/assets/clojure-DsDsbt3V.js +1 -0
- package/dist/assets/cmake-CaoY67QC.js +1 -0
- package/dist/assets/cobol-ng5WMKOY.js +1 -0
- package/dist/assets/coffeescript-L66efR1O.js +1 -0
- package/dist/assets/commonlisp-rk__8_Ow.js +1 -0
- package/dist/assets/crystal-C1BeQSjD.js +1 -0
- package/dist/assets/css-zrdFFahf.js +1 -0
- package/dist/assets/cypher-DTKBhe_T.js +1 -0
- package/dist/assets/d-CDf89RKe.js +1 -0
- package/dist/assets/diff-BY4_GICG.js +1 -0
- package/dist/assets/dist--QplBylv.js +6 -0
- package/dist/assets/dist-BOz4jprC.js +1 -0
- package/dist/assets/dist-BSpuB3dZ.js +1 -0
- package/dist/assets/dist-BVTS1puf.js +1 -0
- package/dist/assets/dist-BvjF9csH.js +1 -0
- package/dist/assets/dist-ByyB_57-.js +11 -0
- package/dist/assets/dist-C5sjJwrm.js +1 -0
- package/dist/assets/dist-C6S96i9v.js +1 -0
- package/dist/assets/dist-CUQQ4au1.js +1 -0
- package/dist/assets/dist-C_ZftsU-.js +1 -0
- package/dist/assets/dist-Cc03jTPl.js +1 -0
- package/dist/assets/dist-CftiQ_Tf.js +1 -0
- package/dist/assets/dist-ChuUwcd4.js +2 -0
- package/dist/assets/dist-Cuva2wRW.js +1 -0
- package/dist/assets/dist-CyFWfPpu.js +9 -0
- package/dist/assets/dist-D6kXrcQY.js +1 -0
- package/dist/assets/dist-DH3Q_V27.js +23 -0
- package/dist/assets/dist-DIQDx3Dq.js +1 -0
- package/dist/assets/dist-DO7LTg3a.js +1 -0
- package/dist/assets/dist-DYBvJnrG.js +1 -0
- package/dist/assets/dist-DhhFPaYP.js +13 -0
- package/dist/assets/dist-elfU6IUT.js +1 -0
- package/dist/assets/dist-mCTXNkQ9.js +1 -0
- package/dist/assets/dockerfile-BBRxgo6-.js +1 -0
- package/dist/assets/dtd-BOpcurKR.js +1 -0
- package/dist/assets/dylan-DrmRAfMX.js +1 -0
- package/dist/assets/ebnf-DgECi_W8.js +1 -0
- package/dist/assets/ecl-CWDhUBvl.js +1 -0
- package/dist/assets/eiffel-DBpGy7gs.js +1 -0
- package/dist/assets/elm-Dj_ZNWRH.js +1 -0
- package/dist/assets/erlang-Br4TQPB7.js +1 -0
- package/dist/assets/factor-bi5FmZTz.js +1 -0
- package/dist/assets/fcl-Dh6ibuJG.js +1 -0
- package/dist/assets/forth-fmpuPpMA.js +1 -0
- package/dist/assets/fortran-CZwiXuJZ.js +1 -0
- package/dist/assets/gas-DotCoURX.js +1 -0
- package/dist/assets/gherkin-Bw4mmeRF.js +1 -0
- package/dist/assets/groovy-D7xek06K.js +1 -0
- package/dist/assets/haskell-D5bv2Ijt.js +1 -0
- package/dist/assets/haxe-UA0z6FgT.js +1 -0
- package/dist/assets/http-DAkDDIPY.js +1 -0
- package/dist/assets/idl-DYj57TA2.js +1 -0
- package/dist/assets/index-BpFNmvYv.js +214 -0
- package/dist/assets/index-De1iEP2f.css +1 -0
- package/dist/assets/javascript-B9Zm1tmO.js +1 -0
- package/dist/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
- package/dist/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
- package/dist/assets/jetbrains-mono-cyrillic-600-normal-8K4wrrwR.woff +0 -0
- package/dist/assets/jetbrains-mono-cyrillic-600-normal-EVf6-Yzo.woff2 +0 -0
- package/dist/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
- package/dist/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
- package/dist/assets/jetbrains-mono-greek-600-normal-H7WoG9Et.woff2 +0 -0
- package/dist/assets/jetbrains-mono-greek-600-normal-mc2nkWzM.woff +0 -0
- package/dist/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
- package/dist/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
- package/dist/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff +0 -0
- package/dist/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2 +0 -0
- package/dist/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
- package/dist/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
- package/dist/assets/jetbrains-mono-latin-ext-600-normal-BfB_LPfz.woff2 +0 -0
- package/dist/assets/jetbrains-mono-latin-ext-600-normal-DObL3zCW.woff +0 -0
- package/dist/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
- package/dist/assets/jetbrains-mono-vietnamese-600-normal-OWROknRo.woff +0 -0
- package/dist/assets/julia-CpHdnx_N.js +1 -0
- package/dist/assets/livescript-DcEJKRZ4.js +1 -0
- package/dist/assets/lua-s-LPZohT.js +1 -0
- package/dist/assets/mathematica-c8TKcpav.js +1 -0
- package/dist/assets/mbox-CUr7-CiI.js +1 -0
- package/dist/assets/mirc-pTdL1Ym3.js +1 -0
- package/dist/assets/mllike-DsgO-njf.js +1 -0
- package/dist/assets/modelica-PhVkZonB.js +1 -0
- package/dist/assets/mscgen-ByD0zE8S.js +1 -0
- package/dist/assets/mumps-DhD4kjw9.js +1 -0
- package/dist/assets/nginx-CJc6p_yt.js +1 -0
- package/dist/assets/nsis-BHchP6IS.js +1 -0
- package/dist/assets/ntriples-D1v3iWDa.js +1 -0
- package/dist/assets/octave-D_WvWxqk.js +1 -0
- package/dist/assets/oz-CmdX4m3g.js +1 -0
- package/dist/assets/pascal-hNOkBp6J.js +1 -0
- package/dist/assets/perl-NQdG1b_r.js +1 -0
- package/dist/assets/pig-CXzedlZV.js +1 -0
- package/dist/assets/powershell-RXDVpFWf.js +1 -0
- package/dist/assets/properties-BTvtucqR.js +1 -0
- package/dist/assets/protobuf-zHRYyuba.js +1 -0
- package/dist/assets/pug-C39WZDG2.js +1 -0
- package/dist/assets/puppet-CMNLsBcD.js +1 -0
- package/dist/assets/python-_LoDBjEZ.js +1 -0
- package/dist/assets/q-SLmsw_60.js +1 -0
- package/dist/assets/r-CocOMjw8.js +1 -0
- package/dist/assets/rpm-WgkTpiCm.js +1 -0
- package/dist/assets/ruby-DquNeiGE.js +1 -0
- package/dist/assets/sas-sJxciv6G.js +1 -0
- package/dist/assets/scheme-DEjJDX5Z.js +1 -0
- package/dist/assets/shell-DhAwSAum.js +1 -0
- package/dist/assets/sieve-CcW8-k2R.js +1 -0
- package/dist/assets/simple-mode-BwNcRC8_.js +1 -0
- package/dist/assets/smalltalk-nXkQ5zwM.js +1 -0
- package/dist/assets/solr-DO54nYOg.js +1 -0
- package/dist/assets/sora-latin-400-normal-CRt88UEn.woff2 +0 -0
- package/dist/assets/sora-latin-400-normal-OW7qkl5a.woff +0 -0
- package/dist/assets/sora-latin-600-normal-1_7fyUAY.woff +0 -0
- package/dist/assets/sora-latin-600-normal-Cdg4DaK0.woff2 +0 -0
- package/dist/assets/sora-latin-700-normal-9waGdLWo.woff2 +0 -0
- package/dist/assets/sora-latin-700-normal-BKPfQAnC.woff +0 -0
- package/dist/assets/sora-latin-ext-400-normal-BmhJC382.woff +0 -0
- package/dist/assets/sora-latin-ext-400-normal-Twk1CgKs.woff2 +0 -0
- package/dist/assets/sora-latin-ext-600-normal-Cue1zdhl.woff2 +0 -0
- package/dist/assets/sora-latin-ext-600-normal-DLOJK0Ta.woff +0 -0
- package/dist/assets/sora-latin-ext-700-normal-DM0oy5s8.woff2 +0 -0
- package/dist/assets/sora-latin-ext-700-normal-Oc7uZIYt.woff +0 -0
- package/dist/assets/sparql-CxAS_pwk.js +1 -0
- package/dist/assets/spreadsheet-DWzAMKF2.js +1 -0
- package/dist/assets/sql-C_mHN2XB.js +1 -0
- package/dist/assets/stex-BmuQ0Xsx.js +1 -0
- package/dist/assets/stylus-CQ8h_EBd.js +1 -0
- package/dist/assets/swift-D0Eq5raO.js +1 -0
- package/dist/assets/tcl-D7utka2n.js +1 -0
- package/dist/assets/textile-XEeoev-k.js +1 -0
- package/dist/assets/tiddlywiki-CecErCuV.js +1 -0
- package/dist/assets/tiki-BlL-kki4.js +1 -0
- package/dist/assets/toml-mmtg9INI.js +1 -0
- package/dist/assets/troff-Crc1ZuaH.js +1 -0
- package/dist/assets/ttcn-Cri02b1f.js +1 -0
- package/dist/assets/ttcn-cfg--4YiJN4x.js +1 -0
- package/dist/assets/turtle-CUuoUr2N.js +1 -0
- package/dist/assets/vb-BrHulZxe.js +1 -0
- package/dist/assets/vbscript-vyHcteNE.js +1 -0
- package/dist/assets/velocity-DN4o8rq-.js +1 -0
- package/dist/assets/verilog-B0DGHLZN.js +1 -0
- package/dist/assets/vhdl-WeAF-qEm.js +1 -0
- package/dist/assets/webidl-C_bKeJT2.js +1 -0
- package/dist/assets/xquery-CLyH3kVm.js +1 -0
- package/dist/assets/yacas-Dq3LuV9B.js +1 -0
- package/dist/assets/z80-Br7weo_y.js +1 -0
- package/dist/favicon.svg +54 -0
- package/dist/icons.svg +24 -0
- package/dist/index.html +59 -0
- package/docs/ARCHITECTURE.md +194 -0
- package/docs/SETUP.md +242 -0
- package/docs/ui-desktop.png +0 -0
- package/docs/ui-desktop.svg +190 -0
- package/docs/ui-mobile.png +0 -0
- package/docs/ui-mobile.svg +113 -0
- package/package.json +79 -0
package/docs/SETUP.md
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# Setup
|
|
2
|
+
|
|
3
|
+
This guide covers the practical Nomadex setup for the workflow it was built for:
|
|
4
|
+
|
|
5
|
+
- the coding agent runs on your own machine
|
|
6
|
+
- the repo and credentials stay on that machine
|
|
7
|
+
- you open Nomadex from your phone, tablet, or another computer to monitor and steer the run remotely
|
|
8
|
+
|
|
9
|
+
## 1. Prerequisites
|
|
10
|
+
|
|
11
|
+
- Node.js 20 or newer recommended
|
|
12
|
+
- `npm`
|
|
13
|
+
- `codex` CLI available on `PATH`
|
|
14
|
+
|
|
15
|
+
Quick check:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
codex --version
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 2. Recommended Launch
|
|
22
|
+
|
|
23
|
+
Normal use:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx nomadexapp
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Expected result:
|
|
30
|
+
|
|
31
|
+
- Codex app-server on `ws://127.0.0.1:3901`
|
|
32
|
+
- Nomadex UI on `http://127.0.0.1:3784`
|
|
33
|
+
- Browser websocket proxy on `/codex-ws`
|
|
34
|
+
|
|
35
|
+
`npx nomadexapp` is the packaged launcher path. It:
|
|
36
|
+
|
|
37
|
+
- it reuses an existing app-server only if `/readyz` succeeds
|
|
38
|
+
- it starts the app-server if needed
|
|
39
|
+
- it fails if the UI port is already busy
|
|
40
|
+
- it binds the UI to `0.0.0.0`, which is useful for LAN and phone access
|
|
41
|
+
- it serves the built UI directly instead of running Vite dev mode
|
|
42
|
+
- it prints a UI password in the terminal and blocks browser access until that password is entered
|
|
43
|
+
- it can prompt for a newer npm package version before startup
|
|
44
|
+
|
|
45
|
+
Repo development:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npm install
|
|
49
|
+
npm run dev:live
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Use `dev:live` when you are editing Nomadex itself and want the Vite development workflow.
|
|
53
|
+
|
|
54
|
+
## 3. Preferred Remote Access
|
|
55
|
+
|
|
56
|
+
Preferred setup: ZeroTier.
|
|
57
|
+
|
|
58
|
+
Why ZeroTier is the preferred path for Nomadex:
|
|
59
|
+
|
|
60
|
+
- it keeps the UI on a private overlay network
|
|
61
|
+
- it is safer than exposing the raw dev server directly
|
|
62
|
+
- it works well for phone access from anywhere
|
|
63
|
+
- it preserves the model where the real agent stays local to your machine
|
|
64
|
+
|
|
65
|
+
Recommended flow:
|
|
66
|
+
|
|
67
|
+
1. Install ZeroTier on the host machine.
|
|
68
|
+
2. Install ZeroTier on your phone or remote laptop.
|
|
69
|
+
3. Join both devices to the same ZeroTier network.
|
|
70
|
+
4. Run `npx nomadexapp` on the host machine.
|
|
71
|
+
5. Open `http://<host-zerotier-ip>:3784` from the remote device.
|
|
72
|
+
|
|
73
|
+
Alternative options:
|
|
74
|
+
|
|
75
|
+
- Tailscale
|
|
76
|
+
- SSH tunnel
|
|
77
|
+
- reverse proxy with real auth in front of Nomadex
|
|
78
|
+
|
|
79
|
+
Do not expose the raw Nomadex dev server directly to the public internet.
|
|
80
|
+
|
|
81
|
+
## 4. LAN And Mobile Access
|
|
82
|
+
|
|
83
|
+
On the same local network:
|
|
84
|
+
|
|
85
|
+
1. Run `npx nomadexapp` on the host machine.
|
|
86
|
+
2. Or run `npm run dev:live` if you are using the repo development flow.
|
|
87
|
+
3. Find the machine’s LAN IP.
|
|
88
|
+
4. Open `http://<lan-ip>:3784` from your phone or tablet.
|
|
89
|
+
|
|
90
|
+
Because the websocket is proxied through the same origin, the browser should connect through the Nomadex host without needing a separate websocket URL.
|
|
91
|
+
|
|
92
|
+
## 5. Repo Development And Manual Launch
|
|
93
|
+
|
|
94
|
+
For normal installed usage, prefer `npx nomadexapp`.
|
|
95
|
+
|
|
96
|
+
If you are working from the repo and want to manage the bridge yourself:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
npm run app-server
|
|
100
|
+
VITE_CODEX_WS_URL=ws://127.0.0.1:3901 npm run dev -- --host 0.0.0.0 --port 3784 --strictPort
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
This is useful if:
|
|
104
|
+
|
|
105
|
+
- you want a different websocket target
|
|
106
|
+
- you are debugging the app-server directly
|
|
107
|
+
- you want to run the bridge separately from Vite
|
|
108
|
+
|
|
109
|
+
## 6. Environment Variables
|
|
110
|
+
|
|
111
|
+
Main variables:
|
|
112
|
+
|
|
113
|
+
- `NOMADEX_WS_URL`
|
|
114
|
+
Websocket URL for the packaged launcher. Default: `ws://127.0.0.1:3901`
|
|
115
|
+
- `NOMADEX_UI_PORT`
|
|
116
|
+
UI port used by `npx nomadexapp`. Default: `3784`
|
|
117
|
+
- `NOMADEX_AUTH_RELAY_TARGET`
|
|
118
|
+
HTTP target used by the packaged auth relay. Default: `http://127.0.0.1:1455`
|
|
119
|
+
- `NOMADEX_PASSWORD`
|
|
120
|
+
Stable UI password for the packaged launcher. If unset, Nomadex generates one on each launch and prints it in the terminal.
|
|
121
|
+
- `VITE_CODEX_WS_URL`
|
|
122
|
+
Websocket URL for the Codex app-server. Default: `ws://127.0.0.1:3901`
|
|
123
|
+
- `VITE_CODEX_UI_PORT`
|
|
124
|
+
UI port used by `dev:live`. Default: `3784`
|
|
125
|
+
- `VITE_CODEX_AUTH_RELAY_TARGET`
|
|
126
|
+
HTTP target used for login callback relay. Default: `http://127.0.0.1:1455`
|
|
127
|
+
|
|
128
|
+
Examples:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
npx nomadexapp --port 4173
|
|
132
|
+
npx nomadexapp --ws-url ws://127.0.0.1:3902
|
|
133
|
+
NOMADEX_PASSWORD=my-secret npx nomadexapp
|
|
134
|
+
VITE_CODEX_UI_PORT=4173 npm run dev:live
|
|
135
|
+
VITE_CODEX_WS_URL=ws://127.0.0.1:3902 npm run dev:live
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## 7. Build And Preview
|
|
139
|
+
|
|
140
|
+
Build:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
npm run build
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Preview:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
npm run preview
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Use `preview` to inspect the built shell inside the repo. The normal packaged launch is `npx nomadexapp`.
|
|
153
|
+
|
|
154
|
+
## 8. GitHub Actions And npm Publish
|
|
155
|
+
|
|
156
|
+
This repo now includes:
|
|
157
|
+
|
|
158
|
+
- `.github/workflows/ci.yml`
|
|
159
|
+
- `.github/workflows/publish.yml`
|
|
160
|
+
|
|
161
|
+
Behavior:
|
|
162
|
+
|
|
163
|
+
- pushes and pull requests run `npm ci`, `npm run lint`, and `npm run build`
|
|
164
|
+
- pushes to `main` also check npm
|
|
165
|
+
- if the current `package.json` version is not published yet, GitHub Actions runs `npm publish --access public --provenance`
|
|
166
|
+
|
|
167
|
+
Required setup:
|
|
168
|
+
|
|
169
|
+
1. Add a repository secret named `NPM_TOKEN`.
|
|
170
|
+
2. Make sure that token has permission to publish the package.
|
|
171
|
+
3. Bump `package.json` version before pushing a release to `main`.
|
|
172
|
+
|
|
173
|
+
Without a new version, the publish workflow skips instead of failing on a duplicate publish.
|
|
174
|
+
|
|
175
|
+
## 9. Files, Images, And Uploads
|
|
176
|
+
|
|
177
|
+
Current behavior:
|
|
178
|
+
|
|
179
|
+
- images can be pasted into the composer
|
|
180
|
+
- non-image files go through `Attach`
|
|
181
|
+
- uploaded assets are written into the workspace under:
|
|
182
|
+
- `.codex-web/uploads`
|
|
183
|
+
- `.codex-web/uploads/files`
|
|
184
|
+
|
|
185
|
+
The runtime injects file mentions into the prompt manifest so the live agent can see attached file paths consistently.
|
|
186
|
+
|
|
187
|
+
## 10. Troubleshooting
|
|
188
|
+
|
|
189
|
+
### UI port is busy
|
|
190
|
+
|
|
191
|
+
Error:
|
|
192
|
+
|
|
193
|
+
```text
|
|
194
|
+
UI port 3784 is already in use
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Fix:
|
|
198
|
+
|
|
199
|
+
- stop the old process using `3784`
|
|
200
|
+
- open the already-running UI
|
|
201
|
+
- or change `NOMADEX_UI_PORT` for the packaged launcher
|
|
202
|
+
- or change `VITE_CODEX_UI_PORT` for the repo dev launcher
|
|
203
|
+
|
|
204
|
+
### Websocket bridge port is occupied
|
|
205
|
+
|
|
206
|
+
Error:
|
|
207
|
+
|
|
208
|
+
```text
|
|
209
|
+
Port 3901 on 127.0.0.1 is already in use, but it is not responding like a Codex app-server
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Fix:
|
|
213
|
+
|
|
214
|
+
- stop the conflicting process
|
|
215
|
+
- or run the app-server on another port and set `NOMADEX_WS_URL`
|
|
216
|
+
- or set `VITE_CODEX_WS_URL` if you are using `dev:live`
|
|
217
|
+
|
|
218
|
+
### Browser shows websocket connection failures
|
|
219
|
+
|
|
220
|
+
Check:
|
|
221
|
+
|
|
222
|
+
1. `npx nomadexapp` is still running, or `npm run dev:live` if you are in the repo
|
|
223
|
+
2. the UI URL is really the strict port you launched
|
|
224
|
+
3. the app-server is reachable on the configured websocket target
|
|
225
|
+
4. you hard refreshed after recent websocket changes
|
|
226
|
+
|
|
227
|
+
### Old favicon or theme color still shows
|
|
228
|
+
|
|
229
|
+
Mobile browsers cache icon and `theme-color` metadata aggressively.
|
|
230
|
+
|
|
231
|
+
Fix:
|
|
232
|
+
|
|
233
|
+
1. hard refresh
|
|
234
|
+
2. close the tab
|
|
235
|
+
3. reopen the page
|
|
236
|
+
|
|
237
|
+
## 11. Current Boundaries
|
|
238
|
+
|
|
239
|
+
- Codex is still the strongest live provider path.
|
|
240
|
+
- The provider abstraction is ahead of full provider-runtime parity.
|
|
241
|
+
- Internet-safe deployment is not built in. Add your own network boundary and auth if you expose Nomadex remotely.
|
|
242
|
+
- The packaged launcher currently assumes the Codex app-server contract as the reference bridge path.
|
|
Binary file
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
<svg width="1600" height="960" viewBox="0 0 1600 960" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<rect width="1600" height="960" rx="24" fill="#120B16"/>
|
|
3
|
+
<rect x="20" y="20" width="1560" height="920" rx="18" fill="#130F19" stroke="#2B2232"/>
|
|
4
|
+
|
|
5
|
+
<rect x="20" y="20" width="1560" height="52" rx="18" fill="#17111D"/>
|
|
6
|
+
<rect x="32" y="30" width="26" height="26" rx="8" fill="#171C27" stroke="#2D3342"/>
|
|
7
|
+
<text x="41" y="47" fill="#B6BFD6" font-family="JetBrains Mono, monospace" font-size="13">+</text>
|
|
8
|
+
<rect x="68" y="30" width="36" height="26" rx="8" fill="#171C27" stroke="#2D3342"/>
|
|
9
|
+
<rect x="80" y="37" width="13" height="10" rx="2" fill="#F0B34A"/>
|
|
10
|
+
<rect x="110" y="30" width="36" height="26" rx="8" fill="#171C27" stroke="#2D3342"/>
|
|
11
|
+
<rect x="123" y="35" width="10" height="16" rx="2" fill="#E6D0B6"/>
|
|
12
|
+
<rect x="152" y="30" width="36" height="26" rx="8" fill="#171C27" stroke="#2D3342"/>
|
|
13
|
+
<circle cx="170" cy="43" r="7" stroke="#6C7387" stroke-width="1.5"/>
|
|
14
|
+
<circle cx="224" cy="43" r="8" fill="#33D6BA"/>
|
|
15
|
+
<text x="240" y="48" fill="#EEE7F7" font-family="JetBrains Mono, monospace" font-size="18" font-weight="700">Nomadex</text>
|
|
16
|
+
|
|
17
|
+
<rect x="360" y="29" width="126" height="28" rx="14" fill="#14311F" stroke="#2D6A4D"/>
|
|
18
|
+
<text x="386" y="47" fill="#8DE2A7" font-family="JetBrains Mono, monospace" font-size="14">Full Access</text>
|
|
19
|
+
|
|
20
|
+
<rect x="501" y="30" width="28" height="26" rx="8" fill="#171C27" stroke="#2D3342"/>
|
|
21
|
+
<text x="510" y="47" fill="#A9A0C3" font-family="JetBrains Mono, monospace" font-size="13">96</text>
|
|
22
|
+
<rect x="540" y="30" width="28" height="26" rx="8" fill="#171C27" stroke="#2D3342"/>
|
|
23
|
+
<text x="549" y="47" fill="#A9A0C3" font-family="JetBrains Mono, monospace" font-size="13">v</text>
|
|
24
|
+
<rect x="579" y="30" width="28" height="26" rx="8" fill="#171C27" stroke="#2D3342"/>
|
|
25
|
+
<rect x="588" y="36" width="11" height="12" rx="2" fill="#F1C456"/>
|
|
26
|
+
<rect x="618" y="30" width="28" height="26" rx="8" fill="#171C27" stroke="#2D3342"/>
|
|
27
|
+
<rect x="627" y="35" width="10" height="16" rx="2" fill="#F1E6D7"/>
|
|
28
|
+
<rect x="657" y="30" width="28" height="26" rx="8" fill="#171C27" stroke="#2D3342"/>
|
|
29
|
+
<circle cx="671" cy="43" r="6" stroke="#667088" stroke-width="1.5"/>
|
|
30
|
+
<rect x="697" y="29" width="90" height="28" rx="14" fill="#23172B" stroke="#3A2947"/>
|
|
31
|
+
<circle cx="713" cy="43" r="5" fill="#8B60E6"/>
|
|
32
|
+
<text x="727" y="47" fill="#D7C7F5" font-family="JetBrains Mono, monospace" font-size="13">Plasma</text>
|
|
33
|
+
|
|
34
|
+
<rect x="1420" y="28" width="140" height="30" rx="12" fill="#171C27" stroke="#2D3342"/>
|
|
35
|
+
<circle cx="1437" cy="43" r="5" fill="#39D39A"/>
|
|
36
|
+
<text x="1450" y="47" fill="#B4B8CD" font-family="JetBrains Mono, monospace" font-size="14">gpt-5.4</text>
|
|
37
|
+
|
|
38
|
+
<rect x="20" y="72" width="250" height="868" fill="#141018"/>
|
|
39
|
+
<rect x="34" y="88" width="220" height="44" rx="8" fill="#18141C" stroke="#2E2432"/>
|
|
40
|
+
<text x="50" y="115" fill="#F2EDF6" font-family="JetBrains Mono, monospace" font-size="14">+ New Session</text>
|
|
41
|
+
|
|
42
|
+
<text x="34" y="160" fill="#6E697C" font-family="JetBrains Mono, monospace" font-size="11">TODAY</text>
|
|
43
|
+
<circle cx="46" cy="186" r="5" fill="#E7DFF1"/>
|
|
44
|
+
<text x="60" y="191" fill="#F2EDF6" font-family="JetBrains Mono, monospace" font-size="13">it was slow because the first...</text>
|
|
45
|
+
<rect x="40" y="198" width="180" height="2" rx="1" fill="#3FE0D0"/>
|
|
46
|
+
|
|
47
|
+
<circle cx="46" cy="224" r="5" fill="#E7DFF1"/>
|
|
48
|
+
<text x="60" y="229" fill="#B2ACBD" font-family="JetBrains Mono, monospace" font-size="13">fix this please</text>
|
|
49
|
+
<circle cx="46" cy="262" r="5" fill="#E7DFF1"/>
|
|
50
|
+
<text x="60" y="267" fill="#B2ACBD" font-family="JetBrains Mono, monospace" font-size="13">hi,i want you to make me a ui...</text>
|
|
51
|
+
<circle cx="46" cy="300" r="5" fill="#E7DFF1"/>
|
|
52
|
+
<text x="60" y="305" fill="#B2ACBD" font-family="JetBrains Mono, monospace" font-size="13">give me current project loca...</text>
|
|
53
|
+
|
|
54
|
+
<text x="34" y="352" fill="#6E697C" font-family="JetBrains Mono, monospace" font-size="11">YESTERDAY</text>
|
|
55
|
+
<circle cx="46" cy="378" r="5" fill="#E7DFF1"/>
|
|
56
|
+
<text x="60" y="383" fill="#B2ACBD" font-family="JetBrains Mono, monospace" font-size="13">this is a test</text>
|
|
57
|
+
<circle cx="46" cy="416" r="5" fill="#E7DFF1"/>
|
|
58
|
+
<text x="60" y="421" fill="#B2ACBD" font-family="JetBrains Mono, monospace" font-size="13">test</text>
|
|
59
|
+
<circle cx="46" cy="454" r="5" fill="#E7DFF1"/>
|
|
60
|
+
<text x="60" y="459" fill="#B2ACBD" font-family="JetBrains Mono, monospace" font-size="13">any latch briefly</text>
|
|
61
|
+
<circle cx="46" cy="492" r="5" fill="#E7DFF1"/>
|
|
62
|
+
<text x="60" y="497" fill="#B2ACBD" font-family="JetBrains Mono, monospace" font-size="13">hello</text>
|
|
63
|
+
|
|
64
|
+
<text x="34" y="548" fill="#6E697C" font-family="JetBrains Mono, monospace" font-size="11">EARLIER</text>
|
|
65
|
+
<circle cx="46" cy="574" r="5" fill="#E7DFF1"/>
|
|
66
|
+
<text x="60" y="579" fill="#B2ACBD" font-family="JetBrains Mono, monospace" font-size="13">hi</text>
|
|
67
|
+
<circle cx="46" cy="612" r="5" fill="#E7DFF1"/>
|
|
68
|
+
<text x="60" y="617" fill="#B2ACBD" font-family="JetBrains Mono, monospace" font-size="13">run the shell command "slmp"</text>
|
|
69
|
+
<circle cx="46" cy="650" r="5" fill="#E7DFF1"/>
|
|
70
|
+
<text x="60" y="655" fill="#B2ACBD" font-family="JetBrains Mono, monospace" font-size="13">can you create me a new ui st...</text>
|
|
71
|
+
<circle cx="46" cy="688" r="5" fill="#E7DFF1"/>
|
|
72
|
+
<text x="60" y="693" fill="#B2ACBD" font-family="JetBrains Mono, monospace" font-size="13">this is my staging repo://ta...</text>
|
|
73
|
+
<circle cx="46" cy="726" r="5" fill="#E7DFF1"/>
|
|
74
|
+
<text x="60" y="731" fill="#B2ACBD" font-family="JetBrains Mono, monospace" font-size="13">Add Discord bot and reset row</text>
|
|
75
|
+
<circle cx="46" cy="764" r="5" fill="#E7DFF1"/>
|
|
76
|
+
<text x="60" y="769" fill="#B2ACBD" font-family="JetBrains Mono, monospace" font-size="13">implement this please</text>
|
|
77
|
+
<circle cx="46" cy="802" r="5" fill="#E7DFF1"/>
|
|
78
|
+
<text x="60" y="807" fill="#B2ACBD" font-family="JetBrains Mono, monospace" font-size="13">https://github.com/fbuls2/com...</text>
|
|
79
|
+
|
|
80
|
+
<text x="34" y="860" fill="#7B738A" font-family="JetBrains Mono, monospace" font-size="12">Command palette</text>
|
|
81
|
+
<rect x="182" y="846" width="38" height="20" rx="6" fill="#211A29" stroke="#342B3D"/>
|
|
82
|
+
<text x="194" y="860" fill="#A79FBD" font-family="JetBrains Mono, monospace" font-size="11">K</text>
|
|
83
|
+
<text x="34" y="892" fill="#B9B0C9" font-family="JetBrains Mono, monospace" font-size="12">/review working tree</text>
|
|
84
|
+
<text x="34" y="922" fill="#B9B0C9" font-family="JetBrains Mono, monospace" font-size="12">/fork session</text>
|
|
85
|
+
|
|
86
|
+
<rect x="270" y="72" width="960" height="868" fill="#11161C"/>
|
|
87
|
+
<rect x="270" y="72" width="960" height="34" fill="#121820"/>
|
|
88
|
+
<text x="292" y="94" fill="#EEE7F7" font-family="JetBrains Mono, monospace" font-size="13">it was slow because...</text>
|
|
89
|
+
<text x="523" y="94" fill="#7D728F" font-family="JetBrains Mono, monospace" font-size="13">fix this please</text>
|
|
90
|
+
<text x="678" y="94" fill="#7D728F" font-family="JetBrains Mono, monospace" font-size="13">+</text>
|
|
91
|
+
<rect x="294" y="104" width="230" height="3" rx="1.5" fill="#3FE0D0"/>
|
|
92
|
+
|
|
93
|
+
<rect x="312" y="132" width="560" height="22" rx="6" fill="#16131A" stroke="#302633"/>
|
|
94
|
+
<rect x="326" y="137" width="118" height="12" rx="6" fill="#5F5D17"/>
|
|
95
|
+
<text x="337" y="146" fill="#E7E0AB" font-family="JetBrains Mono, monospace" font-size="10">index.css L17706</text>
|
|
96
|
+
<rect x="456" y="137" width="44" height="12" rx="6" fill="#231A2B"/>
|
|
97
|
+
<text x="470" y="146" fill="#B2A3C8" font-family="JetBrains Mono, monospace" font-size="10">DB</text>
|
|
98
|
+
|
|
99
|
+
<rect x="336" y="198" width="824" height="70" rx="10" fill="#6A5B7C" stroke="#8D7AA4"/>
|
|
100
|
+
<circle cx="362" cy="222" r="7" fill="#FF6659"/>
|
|
101
|
+
<circle cx="382" cy="222" r="7" fill="#F3BF4E"/>
|
|
102
|
+
<circle cx="402" cy="222" r="7" fill="#36D074"/>
|
|
103
|
+
<text x="735" y="226" fill="#EFEAF5" font-family="JetBrains Mono, monospace" font-size="13">index.css</text>
|
|
104
|
+
<rect x="1072" y="210" width="72" height="16" rx="6" fill="#30493E"/>
|
|
105
|
+
<text x="1083" y="221" fill="#A9E0B8" font-family="JetBrains Mono, monospace" font-size="10">COMPLETED</text>
|
|
106
|
+
<text x="354" y="252" fill="#E9E1F4" font-family="JetBrains Mono, monospace" font-size="13">rg -n "terminalDockReady|startBottomShell|workspace terminal dock loading|Opening terminal" src/app/WorkspaceShell.tsx src/index.css</text>
|
|
107
|
+
<rect x="354" y="258" width="126" height="14" rx="6" fill="#201924"/>
|
|
108
|
+
<text x="366" y="268" fill="#A79BB8" font-family="JetBrains Mono, monospace" font-size="10">~/trade-console</text>
|
|
109
|
+
<rect x="488" y="258" width="40" height="14" rx="6" fill="#201924"/>
|
|
110
|
+
<text x="499" y="268" fill="#A79BB8" font-family="JetBrains Mono, monospace" font-size="10">17706</text>
|
|
111
|
+
<rect x="535" y="258" width="30" height="14" rx="6" fill="#201924"/>
|
|
112
|
+
<text x="545" y="268" fill="#A79BB8" font-family="JetBrains Mono, monospace" font-size="10">0ms</text>
|
|
113
|
+
|
|
114
|
+
<circle cx="332" cy="318" r="10" fill="#7E61D6"/>
|
|
115
|
+
<text x="356" y="323" fill="#B9B1C8" font-family="JetBrains Mono, monospace" font-size="14">Agent</text>
|
|
116
|
+
<text x="1122" y="323" fill="#6F6A77" font-family="JetBrains Mono, monospace" font-size="12">completed</text>
|
|
117
|
+
<text x="330" y="366" fill="#EEE7F7" font-family="JetBrains Mono, monospace" font-size="16">It was slow because the first shell open was doing too much in one interaction:</text>
|
|
118
|
+
<text x="330" y="394" fill="#EEE7F7" font-family="JetBrains Mono, monospace" font-size="16">showing the dock, mounting the terminal UI, and starting the pty shell at the same time.</text>
|
|
119
|
+
<text x="330" y="422" fill="#EEE7F7" font-family="JetBrains Mono, monospace" font-size="16">I changed that in WorkspaceShell.tsx so the bottom dock paints first, the</text>
|
|
120
|
+
<text x="330" y="450" fill="#EEE7F7" font-family="JetBrains Mono, monospace" font-size="16">heavier terminal content mounts on the next frame, and the shell starts after that.</text>
|
|
121
|
+
<text x="330" y="478" fill="#EEE7F7" font-family="JetBrains Mono, monospace" font-size="16">I also added a lightweight Opening terminal placeholder in WorkspaceShell.tsx.</text>
|
|
122
|
+
<text x="330" y="532" fill="#EEE7F7" font-family="JetBrains Mono, monospace" font-size="16">npm run build passes. Hard refresh Nomadex and try the Shell button again.</text>
|
|
123
|
+
|
|
124
|
+
<rect x="330" y="566" width="102" height="20" rx="6" fill="#17141A" stroke="#2E2432"/>
|
|
125
|
+
<text x="342" y="580" fill="#A89FBC" font-family="JetBrains Mono, monospace" font-size="11">/fork</text>
|
|
126
|
+
<rect x="440" y="566" width="68" height="20" rx="6" fill="#17141A" stroke="#2E2432"/>
|
|
127
|
+
<text x="451" y="580" fill="#A89FBC" font-family="JetBrains Mono, monospace" font-size="11">/plan</text>
|
|
128
|
+
<rect x="516" y="566" width="22" height="20" rx="6" fill="#17141A" stroke="#2E2432"/>
|
|
129
|
+
<text x="523" y="580" fill="#A89FBC" font-family="JetBrains Mono, monospace" font-size="11">[]</text>
|
|
130
|
+
|
|
131
|
+
<rect x="330" y="636" width="620" height="54" rx="10" fill="#161A20" stroke="#2C313A"/>
|
|
132
|
+
<text x="346" y="667" fill="#B4ACC4" font-family="JetBrains Mono, monospace" font-size="13">this video</text>
|
|
133
|
+
|
|
134
|
+
<rect x="296" y="724" width="874" height="34" fill="#12171D"/>
|
|
135
|
+
<text x="306" y="746" fill="#7B7486" font-family="JetBrains Mono, monospace" font-size="12">Auto</text>
|
|
136
|
+
<text x="372" y="746" fill="#7B7486" font-family="JetBrains Mono, monospace" font-size="12">Plan</text>
|
|
137
|
+
<text x="440" y="746" fill="#7B7486" font-family="JetBrains Mono, monospace" font-size="12">Mention</text>
|
|
138
|
+
<text x="526" y="746" fill="#7B7486" font-family="JetBrains Mono, monospace" font-size="12">Files</text>
|
|
139
|
+
<text x="592" y="746" fill="#7B7486" font-family="JetBrains Mono, monospace" font-size="12">Image</text>
|
|
140
|
+
<text x="660" y="746" fill="#7B7486" font-family="JetBrains Mono, monospace" font-size="12">Shell</text>
|
|
141
|
+
<text x="730" y="746" fill="#7B7486" font-family="JetBrains Mono, monospace" font-size="12">Web</text>
|
|
142
|
+
<text x="794" y="746" fill="#7B7486" font-family="JetBrains Mono, monospace" font-size="12">Review</text>
|
|
143
|
+
<text x="876" y="746" fill="#7B7486" font-family="JetBrains Mono, monospace" font-size="12">Agents</text>
|
|
144
|
+
<text x="958" y="746" fill="#7B7486" font-family="JetBrains Mono, monospace" font-size="12">Trim</text>
|
|
145
|
+
<text x="1024" y="746" fill="#7B7486" font-family="JetBrains Mono, monospace" font-size="12">Editor</text>
|
|
146
|
+
|
|
147
|
+
<rect x="296" y="758" width="874" height="144" rx="10" fill="#12171D" stroke="#2A303A"/>
|
|
148
|
+
<rect x="330" y="796" width="732" height="80" rx="10" fill="#151A21" stroke="#343A45"/>
|
|
149
|
+
<text x="350" y="844" fill="#697487" font-family="JetBrains Mono, monospace" font-size="16">Ask Nomadex... / for slash commands - @ mention - $ skills - ! shell - Ctrl+G editor</text>
|
|
150
|
+
<rect x="1108" y="812" width="34" height="50" rx="10" fill="#1A1F28" stroke="#323845"/>
|
|
151
|
+
<text x="1120" y="844" fill="#EDE7F7" font-family="JetBrains Mono, monospace" font-size="20">^</text>
|
|
152
|
+
|
|
153
|
+
<text x="328" y="898" fill="#776F81" font-family="JetBrains Mono, monospace" font-size="12">Shift+Enter</text>
|
|
154
|
+
<text x="936" y="898" fill="#776F81" font-family="JetBrains Mono, monospace" font-size="12">Context 65.7k / 200k</text>
|
|
155
|
+
<rect x="1086" y="882" width="52" height="20" rx="10" fill="#1E232B" stroke="#343A45"/>
|
|
156
|
+
<text x="1098" y="896" fill="#938CA1" font-family="JetBrains Mono, monospace" font-size="11">5h 79%</text>
|
|
157
|
+
<rect x="1146" y="882" width="58" height="20" rx="10" fill="#1E232B" stroke="#343A45"/>
|
|
158
|
+
<text x="1158" y="896" fill="#938CA1" font-family="JetBrains Mono, monospace" font-size="11">Week 82%</text>
|
|
159
|
+
|
|
160
|
+
<rect x="1230" y="72" width="350" height="868" fill="#12161E"/>
|
|
161
|
+
<text x="1248" y="110" fill="#EEE7F7" font-family="JetBrains Mono, monospace" font-size="20" font-weight="700">Files</text>
|
|
162
|
+
<text x="1248" y="144" fill="#B2ACBD" font-family="JetBrains Mono, monospace" font-size="13">Files</text>
|
|
163
|
+
<text x="1314" y="144" fill="#6F6A77" font-family="JetBrains Mono, monospace" font-size="13">Branches</text>
|
|
164
|
+
<text x="1410" y="144" fill="#6F6A77" font-family="JetBrains Mono, monospace" font-size="13">Diff</text>
|
|
165
|
+
<text x="1462" y="144" fill="#6F6A77" font-family="JetBrains Mono, monospace" font-size="13">Agents</text>
|
|
166
|
+
<text x="1536" y="144" fill="#6F6A77" font-family="JetBrains Mono, monospace" font-size="13">Config</text>
|
|
167
|
+
<rect x="1248" y="154" width="54" height="2" rx="1" fill="#3FE0D0"/>
|
|
168
|
+
|
|
169
|
+
<rect x="1248" y="182" width="110" height="24" rx="12" fill="#182332" stroke="#2C3C52"/>
|
|
170
|
+
<text x="1266" y="198" fill="#A5C8FF" font-family="JetBrains Mono, monospace" font-size="12">~/xaenic/nomadex</text>
|
|
171
|
+
<text x="1248" y="224" fill="#7D778A" font-family="JetBrains Mono, monospace" font-size="12">codex-console - 10 modified</text>
|
|
172
|
+
|
|
173
|
+
<rect x="1258" y="252" width="116" height="24" rx="12" fill="#18263A" stroke="#30527B"/>
|
|
174
|
+
<text x="1276" y="268" fill="#9FC7FF" font-family="JetBrains Mono, monospace" font-size="12">codex-console</text>
|
|
175
|
+
<text x="1258" y="312" fill="#F0B34A" font-family="JetBrains Mono, monospace" font-size="16">dist</text>
|
|
176
|
+
<text x="1258" y="350" fill="#F0B34A" font-family="JetBrains Mono, monospace" font-size="16">docs</text>
|
|
177
|
+
<text x="1258" y="388" fill="#F0B34A" font-family="JetBrains Mono, monospace" font-size="16">public</text>
|
|
178
|
+
<text x="1258" y="426" fill="#F0B34A" font-family="JetBrains Mono, monospace" font-size="16">scripts</text>
|
|
179
|
+
<text x="1258" y="464" fill="#F0B34A" font-family="JetBrains Mono, monospace" font-size="16">src</text>
|
|
180
|
+
<text x="1258" y="502" fill="#F0B34A" font-family="JetBrains Mono, monospace" font-size="16">test-results</text>
|
|
181
|
+
<text x="1258" y="540" fill="#D6D0E1" font-family="JetBrains Mono, monospace" font-size="16">.gitignore</text>
|
|
182
|
+
<text x="1258" y="578" fill="#D6D0E1" font-family="JetBrains Mono, monospace" font-size="16">eslint.config.js</text>
|
|
183
|
+
<text x="1258" y="616" fill="#D6D0E1" font-family="JetBrains Mono, monospace" font-size="16">index.html</text>
|
|
184
|
+
<text x="1258" y="654" fill="#D6D0E1" font-family="JetBrains Mono, monospace" font-size="16">package-lock.json</text>
|
|
185
|
+
<text x="1258" y="692" fill="#D6D0E1" font-family="JetBrains Mono, monospace" font-size="16">package.json</text>
|
|
186
|
+
<text x="1258" y="730" fill="#D6D0E1" font-family="JetBrains Mono, monospace" font-size="16">README.md</text>
|
|
187
|
+
|
|
188
|
+
<rect x="1560" y="162" width="6" height="742" rx="3" fill="#2D2B2F"/>
|
|
189
|
+
<rect x="1560" y="172" width="6" height="168" rx="3" fill="#AAA6B0"/>
|
|
190
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
<svg width="430" height="932" viewBox="0 0 430 932" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<rect width="430" height="932" rx="28" fill="#180D12"/>
|
|
3
|
+
<rect x="14" y="14" width="402" height="904" rx="22" fill="#1B0F14" stroke="#38242D"/>
|
|
4
|
+
|
|
5
|
+
<rect x="14" y="14" width="402" height="54" rx="22" fill="#19101A"/>
|
|
6
|
+
<rect x="24" y="24" width="24" height="24" rx="7" fill="#191E28" stroke="#2E3341"/>
|
|
7
|
+
<text x="32" y="40" fill="#AFB7CA" font-family="JetBrains Mono, monospace" font-size="12">=</text>
|
|
8
|
+
<rect x="58" y="24" width="26" height="24" rx="7" fill="#191E28" stroke="#2E3341"/>
|
|
9
|
+
<rect x="67" y="31" width="9" height="10" rx="2" fill="#557BFF"/>
|
|
10
|
+
<text x="95" y="40" fill="#F1EAF6" font-family="JetBrains Mono, monospace" font-size="15" font-weight="700">Nomadex</text>
|
|
11
|
+
<rect x="170" y="23" width="110" height="26" rx="13" fill="#163422" stroke="#2B6D4B"/>
|
|
12
|
+
<text x="193" y="40" fill="#9AE0A9" font-family="JetBrains Mono, monospace" font-size="13">Full Access</text>
|
|
13
|
+
<rect x="289" y="24" width="24" height="24" rx="7" fill="#191E28" stroke="#2E3341"/>
|
|
14
|
+
<text x="297" y="40" fill="#B8AFC5" font-family="JetBrains Mono, monospace" font-size="12">96</text>
|
|
15
|
+
<rect x="321" y="24" width="24" height="24" rx="7" fill="#191E28" stroke="#2E3341"/>
|
|
16
|
+
<text x="330" y="40" fill="#B8AFC5" font-family="JetBrains Mono, monospace" font-size="12">v</text>
|
|
17
|
+
<rect x="353" y="24" width="24" height="24" rx="7" fill="#191E28" stroke="#2E3341"/>
|
|
18
|
+
<circle cx="365" cy="36" r="5" stroke="#6E7484" stroke-width="1.5"/>
|
|
19
|
+
<rect x="385" y="24" width="24" height="24" rx="7" fill="#2A141B" stroke="#653242"/>
|
|
20
|
+
<circle cx="397" cy="36" r="5" fill="#FF5877"/>
|
|
21
|
+
|
|
22
|
+
<rect x="28" y="84" width="290" height="26" rx="8" fill="#18131A" stroke="#34212A"/>
|
|
23
|
+
<circle cx="38" cy="97" r="4" fill="#E6DFF0"/>
|
|
24
|
+
<text x="52" y="101" fill="#EDE7F7" font-family="JetBrains Mono, monospace" font-size="13">I'm making the ...</text>
|
|
25
|
+
<text x="292" y="101" fill="#8A8098" font-family="JetBrains Mono, monospace" font-size="13">+</text>
|
|
26
|
+
<rect x="30" y="112" width="198" height="2" rx="1" fill="#F0548D"/>
|
|
27
|
+
|
|
28
|
+
<circle cx="30" cy="150" r="10" fill="#B23A55"/>
|
|
29
|
+
<text x="52" y="154" fill="#BDB4C9" font-family="JetBrains Mono, monospace" font-size="13">Agent</text>
|
|
30
|
+
<text x="370" y="154" fill="#6E6879" font-family="JetBrains Mono, monospace" font-size="11">live</text>
|
|
31
|
+
|
|
32
|
+
<text x="42" y="190" fill="#F1EAF6" font-family="JetBrains Mono, monospace" font-size="16">I'm making the open path cancellable too, so a</text>
|
|
33
|
+
<text x="42" y="216" fill="#F1EAF6" font-family="JetBrains Mono, monospace" font-size="16">quick open-close tap on mobile doesn't leave a</text>
|
|
34
|
+
<text x="42" y="242" fill="#F1EAF6" font-family="JetBrains Mono, monospace" font-size="16">queued shell startup running after the panel is</text>
|
|
35
|
+
<text x="42" y="268" fill="#F1EAF6" font-family="JetBrains Mono, monospace" font-size="16">already gone.</text>
|
|
36
|
+
|
|
37
|
+
<rect x="40" y="298" width="10" height="20" rx="5" fill="#D4C7E8"/>
|
|
38
|
+
<rect x="42" y="336" width="84" height="20" rx="6" fill="#17141A" stroke="#32242D"/>
|
|
39
|
+
<text x="53" y="350" fill="#A59AB7" font-family="JetBrains Mono, monospace" font-size="11">/fork</text>
|
|
40
|
+
<rect x="134" y="336" width="68" height="20" rx="6" fill="#17141A" stroke="#32242D"/>
|
|
41
|
+
<text x="145" y="350" fill="#A59AB7" font-family="JetBrains Mono, monospace" font-size="11">/plan</text>
|
|
42
|
+
<rect x="210" y="336" width="22" height="20" rx="6" fill="#17141A" stroke="#32242D"/>
|
|
43
|
+
<text x="217" y="350" fill="#A59AB7" font-family="JetBrains Mono, monospace" font-size="11">[]</text>
|
|
44
|
+
|
|
45
|
+
<rect x="28" y="388" width="374" height="90" rx="12" fill="#31191E" stroke="#5B2D38"/>
|
|
46
|
+
<circle cx="44" cy="406" r="6" fill="#FF6659"/>
|
|
47
|
+
<circle cx="62" cy="406" r="6" fill="#F3BF4E"/>
|
|
48
|
+
<circle cx="80" cy="406" r="6" fill="#36D074"/>
|
|
49
|
+
<text x="166" y="410" fill="#EDE7F7" font-family="JetBrains Mono, monospace" font-size="12">WorkspaceShell.tsx</text>
|
|
50
|
+
<rect x="324" y="396" width="62" height="16" rx="6" fill="#32483E"/>
|
|
51
|
+
<text x="334" y="407" fill="#A5DEB5" font-family="JetBrains Mono, monospace" font-size="10">COMPLETED</text>
|
|
52
|
+
<text x="42" y="444" fill="#EDE7F7" font-family="JetBrains Mono, monospace" font-size="13">sed -n '1,80p' src/app/WorkspaceShell.tsx</text>
|
|
53
|
+
<rect x="42" y="452" width="110" height="14" rx="6" fill="#20161B"/>
|
|
54
|
+
<text x="52" y="462" fill="#A89CB5" font-family="JetBrains Mono, monospace" font-size="10">~/code-console</text>
|
|
55
|
+
<rect x="160" y="452" width="38" height="14" rx="6" fill="#20161B"/>
|
|
56
|
+
<text x="170" y="462" fill="#A89CB5" font-family="JetBrains Mono, monospace" font-size="10">4132</text>
|
|
57
|
+
<rect x="204" y="452" width="26" height="14" rx="6" fill="#20161B"/>
|
|
58
|
+
<text x="212" y="462" fill="#A89CB5" font-family="JetBrains Mono, monospace" font-size="10">0ms</text>
|
|
59
|
+
|
|
60
|
+
<rect x="28" y="494" width="374" height="90" rx="12" fill="#31191E" stroke="#5B2D38"/>
|
|
61
|
+
<circle cx="44" cy="512" r="6" fill="#FF6659"/>
|
|
62
|
+
<circle cx="62" cy="512" r="6" fill="#F3BF4E"/>
|
|
63
|
+
<circle cx="80" cy="512" r="6" fill="#36D074"/>
|
|
64
|
+
<text x="180" y="516" fill="#EDE7F7" font-family="JetBrains Mono, monospace" font-size="12">index.css</text>
|
|
65
|
+
<rect x="324" y="502" width="62" height="16" rx="6" fill="#32483E"/>
|
|
66
|
+
<text x="334" y="513" fill="#A5DEB5" font-family="JetBrains Mono, monospace" font-size="10">COMPLETED</text>
|
|
67
|
+
<text x="42" y="550" fill="#EDE7F7" font-family="JetBrains Mono, monospace" font-size="13">sed -n '4560,4625p' src/index.css</text>
|
|
68
|
+
<rect x="42" y="558" width="110" height="14" rx="6" fill="#20161B"/>
|
|
69
|
+
<text x="52" y="568" fill="#A89CB5" font-family="JetBrains Mono, monospace" font-size="10">~/code-console</text>
|
|
70
|
+
<rect x="160" y="558" width="38" height="14" rx="6" fill="#20161B"/>
|
|
71
|
+
<text x="170" y="568" fill="#A89CB5" font-family="JetBrains Mono, monospace" font-size="10">86510</text>
|
|
72
|
+
<rect x="204" y="558" width="26" height="14" rx="6" fill="#20161B"/>
|
|
73
|
+
<text x="212" y="568" fill="#A89CB5" font-family="JetBrains Mono, monospace" font-size="10">0ms</text>
|
|
74
|
+
|
|
75
|
+
<rect x="28" y="594" width="374" height="32" rx="8" fill="#17141A" stroke="#342731"/>
|
|
76
|
+
<text x="46" y="614" fill="#B3A9C4" font-family="JetBrains Mono, monospace" font-size="13">this video</text>
|
|
77
|
+
|
|
78
|
+
<text x="42" y="656" fill="#9487A5" font-family="JetBrains Mono, monospace" font-size="13">Writing response</text>
|
|
79
|
+
<rect x="32" y="646" width="12" height="12" rx="6" stroke="#6D5A86" stroke-width="1.5"/>
|
|
80
|
+
|
|
81
|
+
<rect x="28" y="688" width="374" height="86" rx="12" fill="#3A1A25" stroke="#6A3546"/>
|
|
82
|
+
<text x="40" y="710" fill="#D9CEDF" font-family="JetBrains Mono, monospace" font-size="14">Changing</text>
|
|
83
|
+
<text x="384" y="710" fill="#8E7D95" font-family="JetBrains Mono, monospace" font-size="13">2</text>
|
|
84
|
+
<rect x="42" y="728" width="104" height="28" rx="14" fill="#231923" stroke="#3B293A"/>
|
|
85
|
+
<text x="55" y="746" fill="#E7B642" font-family="JetBrains Mono, monospace" font-size="12">MOD</text>
|
|
86
|
+
<text x="94" y="746" fill="#EDE7F7" font-family="JetBrains Mono, monospace" font-size="12">index.css</text>
|
|
87
|
+
<rect x="156" y="728" width="164" height="28" rx="14" fill="#231923" stroke="#3B293A"/>
|
|
88
|
+
<text x="169" y="746" fill="#E7B642" font-family="JetBrains Mono, monospace" font-size="12">MOD</text>
|
|
89
|
+
<text x="208" y="746" fill="#EDE7F7" font-family="JetBrains Mono, monospace" font-size="12">WorkspaceShell.tsx</text>
|
|
90
|
+
|
|
91
|
+
<rect x="20" y="784" width="390" height="28" fill="#17141A"/>
|
|
92
|
+
<text x="30" y="802" fill="#7E748E" font-family="JetBrains Mono, monospace" font-size="11">Auto</text>
|
|
93
|
+
<text x="84" y="802" fill="#7E748E" font-family="JetBrains Mono, monospace" font-size="11">Plan</text>
|
|
94
|
+
<text x="140" y="802" fill="#7E748E" font-family="JetBrains Mono, monospace" font-size="11">Mention</text>
|
|
95
|
+
<text x="222" y="802" fill="#7E748E" font-family="JetBrains Mono, monospace" font-size="11">Files</text>
|
|
96
|
+
<text x="272" y="802" fill="#7E748E" font-family="JetBrains Mono, monospace" font-size="11">Image</text>
|
|
97
|
+
<text x="326" y="802" fill="#D3A2C3" font-family="JetBrains Mono, monospace" font-size="11">Shell</text>
|
|
98
|
+
|
|
99
|
+
<rect x="20" y="812" width="390" height="104" rx="10" fill="#17141A" stroke="#372B33"/>
|
|
100
|
+
<rect x="30" y="830" width="318" height="70" rx="8" fill="#1C171D" stroke="#473541"/>
|
|
101
|
+
<text x="42" y="870" fill="#6A6175" font-family="JetBrains Mono, monospace" font-size="14">Ask Nomadex... / for slash commands - @ mention...</text>
|
|
102
|
+
<rect x="362" y="838" width="30" height="54" rx="10" fill="#1F1419" stroke="#7B3348"/>
|
|
103
|
+
<text x="372" y="871" fill="#F6EAF3" font-family="JetBrains Mono, monospace" font-size="16">^</text>
|
|
104
|
+
<rect x="398" y="838" width="20" height="54" rx="10" fill="#2A141B" stroke="#A33A59"/>
|
|
105
|
+
<text x="404" y="871" fill="#FF6B89" font-family="JetBrains Mono, monospace" font-size="16">[]</text>
|
|
106
|
+
|
|
107
|
+
<text x="24" y="914" fill="#867A8C" font-family="JetBrains Mono, monospace" font-size="11">Shift+Enter</text>
|
|
108
|
+
<text x="132" y="914" fill="#867A8C" font-family="JetBrains Mono, monospace" font-size="11">Context 65.2k / 200k</text>
|
|
109
|
+
<rect x="316" y="902" width="44" height="18" rx="9" fill="#1F1B22" stroke="#393541"/>
|
|
110
|
+
<text x="324" y="914" fill="#A093A8" font-family="JetBrains Mono, monospace" font-size="10">5h 75%</text>
|
|
111
|
+
<rect x="364" y="902" width="50" height="18" rx="9" fill="#1F1B22" stroke="#393541"/>
|
|
112
|
+
<text x="371" y="914" fill="#A093A8" font-family="JetBrains Mono, monospace" font-size="10">Week 82%</text>
|
|
113
|
+
</svg>
|