@nexart/cli 0.2.0 → 0.2.2
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/README.md +87 -17
- package/dist/index.d.ts +2 -2
- package/dist/index.js +133 -45
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,23 +1,74 @@
|
|
|
1
|
-
# @nexart/cli v0.2
|
|
1
|
+
# @nexart/cli v0.2.2
|
|
2
2
|
|
|
3
3
|
Command-line interface for NexArt CodeMode — run, replay, and verify deterministic generative art.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
+
# Global install (recommended)
|
|
8
9
|
npm install -g @nexart/cli
|
|
10
|
+
|
|
11
|
+
# After global install, use the `nexart` command directly:
|
|
12
|
+
nexart run sketch.js --seed 12345
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Quick Start (npx)
|
|
16
|
+
|
|
17
|
+
Run without installing globally:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Using npx (no install required)
|
|
21
|
+
npx @nexart/cli run sketch.js --seed 12345
|
|
22
|
+
npx @nexart/cli verify out.snapshot.json
|
|
23
|
+
npx @nexart/cli replay out.snapshot.json --out replay.png
|
|
9
24
|
```
|
|
10
25
|
|
|
11
26
|
## Overview
|
|
12
27
|
|
|
13
28
|
The CLI renders Code Mode sketches via a **remote canonical renderer** and creates verifiable snapshots.
|
|
14
29
|
|
|
15
|
-
**v0.2 features:**
|
|
30
|
+
**v0.2.2 features:**
|
|
31
|
+
- Authenticated remote rendering with API keys
|
|
16
32
|
- Real PNG output via remote renderer
|
|
17
33
|
- Snapshot v1 format with SHA-256 hashing
|
|
18
34
|
- Verify and replay commands
|
|
19
35
|
- Optional code embedding in snapshots
|
|
20
36
|
|
|
37
|
+
## Authentication
|
|
38
|
+
|
|
39
|
+
Remote rendering requires an API key for metered access.
|
|
40
|
+
|
|
41
|
+
### Setup
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Set environment variables
|
|
45
|
+
export NEXART_RENDERER_ENDPOINT=https://nexart-canonical-renderer-production.up.railway.app
|
|
46
|
+
export NEXART_API_KEY=nx_live_your_key_here
|
|
47
|
+
|
|
48
|
+
# Run with authentication
|
|
49
|
+
npx @nexart/cli@0.2.2 run sketch.js --seed 12345 --include-code --out out.png
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### API Key Options
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Via environment variable (recommended)
|
|
56
|
+
export NEXART_API_KEY=nx_live_...
|
|
57
|
+
nexart run sketch.js --seed 12345
|
|
58
|
+
|
|
59
|
+
# Via CLI flag
|
|
60
|
+
nexart run sketch.js --seed 12345 --api-key nx_live_...
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Error Messages
|
|
64
|
+
|
|
65
|
+
If authentication fails:
|
|
66
|
+
```
|
|
67
|
+
[nexart] Error: Missing API key for remote rendering.
|
|
68
|
+
[nexart] Set NEXART_API_KEY environment variable or pass --api-key.
|
|
69
|
+
[nexart] Get your API key at: https://nexart.art/dashboard/api
|
|
70
|
+
```
|
|
71
|
+
|
|
21
72
|
## Commands
|
|
22
73
|
|
|
23
74
|
### Run
|
|
@@ -25,13 +76,13 @@ The CLI renders Code Mode sketches via a **remote canonical renderer** and creat
|
|
|
25
76
|
Execute a sketch and create a snapshot:
|
|
26
77
|
|
|
27
78
|
```bash
|
|
28
|
-
# With remote renderer (default)
|
|
79
|
+
# With remote renderer (default, requires API key for remote endpoints)
|
|
29
80
|
nexart run sketch.js --seed 12345 --out render.png
|
|
30
81
|
|
|
31
82
|
# With code embedded for standalone verify/replay
|
|
32
83
|
nexart run sketch.js --seed 12345 --include-code
|
|
33
84
|
|
|
34
|
-
#
|
|
85
|
+
# Local mode (placeholder PNG, no auth required)
|
|
35
86
|
nexart run sketch.js --renderer local
|
|
36
87
|
```
|
|
37
88
|
|
|
@@ -45,6 +96,7 @@ nexart run sketch.js --renderer local
|
|
|
45
96
|
| `--height` | 2400 | Canvas height |
|
|
46
97
|
| `--renderer` | remote | `remote` or `local` |
|
|
47
98
|
| `--endpoint` | env/localhost:5000 | Remote renderer URL |
|
|
99
|
+
| `--api-key` | env | API key for authentication |
|
|
48
100
|
| `--include-code` | false | Embed code in snapshot |
|
|
49
101
|
| `--runtime-hash` | auto | Override runtime hash |
|
|
50
102
|
|
|
@@ -86,10 +138,11 @@ The CLI calls a canonical Node.js renderer endpoint for real PNG generation.
|
|
|
86
138
|
|
|
87
139
|
```bash
|
|
88
140
|
# Via environment variable
|
|
89
|
-
export NEXART_RENDERER_ENDPOINT=
|
|
141
|
+
export NEXART_RENDERER_ENDPOINT=https://nexart-canonical-renderer-production.up.railway.app
|
|
142
|
+
export NEXART_API_KEY=nx_live_...
|
|
90
143
|
|
|
91
|
-
# Via CLI
|
|
92
|
-
nexart run sketch.js --endpoint
|
|
144
|
+
# Via CLI flags
|
|
145
|
+
nexart run sketch.js --endpoint https://render.nexart.io --api-key nx_live_...
|
|
93
146
|
```
|
|
94
147
|
|
|
95
148
|
### Expected API
|
|
@@ -97,6 +150,7 @@ nexart run sketch.js --endpoint http://render.nexart.io
|
|
|
97
150
|
```
|
|
98
151
|
POST /api/render
|
|
99
152
|
Content-Type: application/json
|
|
153
|
+
Authorization: Bearer <api_key>
|
|
100
154
|
|
|
101
155
|
{
|
|
102
156
|
"code": "...",
|
|
@@ -112,12 +166,14 @@ Headers:
|
|
|
112
166
|
X-Runtime-Hash: <hash>
|
|
113
167
|
```
|
|
114
168
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
"
|
|
120
|
-
|
|
169
|
+
### Equivalent curl
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
curl -X POST https://nexart-canonical-renderer-production.up.railway.app/api/render \
|
|
173
|
+
-H "Content-Type: application/json" \
|
|
174
|
+
-H "Authorization: Bearer nx_live_..." \
|
|
175
|
+
-d '{"code":"createCanvas(400,400);\nbackground(0);\n","seed":12345,"VAR":[0,0,0,0,0,0,0,0,0,0],"width":400,"height":400,"protocolVersion":"1.2.0"}' \
|
|
176
|
+
--output render.png
|
|
121
177
|
```
|
|
122
178
|
|
|
123
179
|
## Snapshot Format (v1)
|
|
@@ -133,7 +189,7 @@ Or JSON response:
|
|
|
133
189
|
"VAR": [0,0,0,0,0,0,0,0,0,0],
|
|
134
190
|
"canvas": { "width": 1950, "height": 2400 },
|
|
135
191
|
"outputHash": "<sha256>",
|
|
136
|
-
"createdAt": "2026-01-
|
|
192
|
+
"createdAt": "2026-01-25T...",
|
|
137
193
|
"code": "..." // optional, if --include-code
|
|
138
194
|
}
|
|
139
195
|
```
|
|
@@ -143,15 +199,29 @@ Or JSON response:
|
|
|
143
199
|
- `codeHash` = SHA-256 of normalized code
|
|
144
200
|
- `runtimeHash` = From renderer or SHA-256 of SDK version
|
|
145
201
|
|
|
146
|
-
##
|
|
202
|
+
## Renderer Modes
|
|
147
203
|
|
|
148
|
-
|
|
204
|
+
| Mode | Description |
|
|
205
|
+
|------|-------------|
|
|
206
|
+
| `--renderer remote` | **Default.** Calls canonical renderer with auth, produces real PNG output. |
|
|
207
|
+
| `--renderer local` | **NOT implemented yet.** Outputs a 1x1 placeholder image only. No auth required. |
|
|
149
208
|
|
|
150
209
|
```bash
|
|
210
|
+
# Remote (default) — real PNG output, requires API key for remote endpoints
|
|
211
|
+
nexart run sketch.js --seed 12345
|
|
212
|
+
|
|
213
|
+
# Local — NOT implemented, placeholder only, no auth
|
|
151
214
|
nexart run sketch.js --renderer local
|
|
152
215
|
```
|
|
153
216
|
|
|
154
|
-
|
|
217
|
+
Real local/offline rendering is planned for a future release.
|
|
218
|
+
|
|
219
|
+
## Environment Variables
|
|
220
|
+
|
|
221
|
+
| Variable | Description |
|
|
222
|
+
|----------|-------------|
|
|
223
|
+
| `NEXART_RENDERER_ENDPOINT` | Remote renderer URL (default: http://localhost:5000) |
|
|
224
|
+
| `NEXART_API_KEY` | API key for authenticated rendering |
|
|
155
225
|
|
|
156
226
|
## License
|
|
157
227
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* @nexart/cli v0.2 — NexArt CodeMode CLI
|
|
3
|
+
* @nexart/cli v0.2.2 — NexArt CodeMode CLI
|
|
4
4
|
*
|
|
5
5
|
* Commands:
|
|
6
6
|
* - nexart run <file> — Execute via remote renderer and create snapshot
|
|
7
7
|
* - nexart replay <snapshot> — Re-execute from snapshot
|
|
8
8
|
* - nexart verify <snapshot> — Verify snapshot hash
|
|
9
9
|
*
|
|
10
|
-
* Remote rendering via canonical Node renderer endpoint.
|
|
10
|
+
* Remote rendering via canonical Node renderer endpoint with API key auth.
|
|
11
11
|
*/
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* @nexart/cli v0.2 — NexArt CodeMode CLI
|
|
3
|
+
* @nexart/cli v0.2.2 — NexArt CodeMode CLI
|
|
4
4
|
*
|
|
5
5
|
* Commands:
|
|
6
6
|
* - nexart run <file> — Execute via remote renderer and create snapshot
|
|
7
7
|
* - nexart replay <snapshot> — Re-execute from snapshot
|
|
8
8
|
* - nexart verify <snapshot> — Verify snapshot hash
|
|
9
9
|
*
|
|
10
|
-
* Remote rendering via canonical Node renderer endpoint.
|
|
10
|
+
* Remote rendering via canonical Node renderer endpoint with API key auth.
|
|
11
11
|
*/
|
|
12
12
|
import yargs from 'yargs';
|
|
13
13
|
import { hideBin } from 'yargs/helpers';
|
|
14
14
|
import * as fs from 'fs';
|
|
15
|
+
import * as path from 'path';
|
|
15
16
|
import * as crypto from 'crypto';
|
|
16
17
|
import * as http from 'http';
|
|
17
18
|
import * as https from 'https';
|
|
18
|
-
const CLI_VERSION = '0.2.
|
|
19
|
-
const SDK_VERSION = '1.8.
|
|
19
|
+
const CLI_VERSION = '0.2.2';
|
|
20
|
+
const SDK_VERSION = '1.8.4';
|
|
20
21
|
const PROTOCOL_VERSION = '1.2.0';
|
|
21
22
|
const DEFAULT_ENDPOINT = process.env.NEXART_RENDERER_ENDPOINT || 'http://localhost:5000';
|
|
23
|
+
const DEFAULT_API_KEY = process.env.NEXART_API_KEY || '';
|
|
22
24
|
function sha256(data) {
|
|
23
25
|
const buffer = typeof data === 'string' ? Buffer.from(data, 'utf-8') : data;
|
|
24
26
|
return crypto.createHash('sha256').update(buffer).digest('hex');
|
|
@@ -47,10 +49,40 @@ function parseVars(varsStr) {
|
|
|
47
49
|
const parts = varsStr.split(',').map(s => parseInt(s.trim(), 10) || 0);
|
|
48
50
|
return normalizeVAR(parts);
|
|
49
51
|
}
|
|
52
|
+
function isRemoteEndpoint(endpoint) {
|
|
53
|
+
try {
|
|
54
|
+
const url = new URL(endpoint);
|
|
55
|
+
const host = url.hostname.toLowerCase();
|
|
56
|
+
return host !== 'localhost' && host !== '127.0.0.1' && host !== '::1';
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function validateApiKey(apiKey, endpoint) {
|
|
63
|
+
if (isRemoteEndpoint(endpoint) && !apiKey) {
|
|
64
|
+
console.error('[nexart] Error: Missing API key for remote rendering.');
|
|
65
|
+
console.error('[nexart] Set NEXART_API_KEY environment variable or pass --api-key.');
|
|
66
|
+
console.error('[nexart] Get your API key at: https://nexart.art/dashboard/api');
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function writeFileWithAbsolutePath(filePath, data) {
|
|
71
|
+
const absolutePath = path.resolve(process.cwd(), filePath);
|
|
72
|
+
try {
|
|
73
|
+
fs.writeFileSync(absolutePath, data);
|
|
74
|
+
return absolutePath;
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
console.error(`[nexart] Error: Failed to write file: ${absolutePath}`);
|
|
78
|
+
console.error(`[nexart] ${error}`);
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
50
82
|
/**
|
|
51
|
-
* Call remote renderer endpoint
|
|
83
|
+
* Call remote renderer endpoint with optional API key auth
|
|
52
84
|
*/
|
|
53
|
-
async function callRenderer(endpoint, code, seed, VAR, width, height) {
|
|
85
|
+
async function callRenderer(endpoint, code, seed, VAR, width, height, apiKey) {
|
|
54
86
|
const url = new URL('/api/render', endpoint);
|
|
55
87
|
const isHttps = url.protocol === 'https:';
|
|
56
88
|
const httpModule = isHttps ? https : http;
|
|
@@ -62,29 +94,53 @@ async function callRenderer(endpoint, code, seed, VAR, width, height) {
|
|
|
62
94
|
height,
|
|
63
95
|
protocolVersion: PROTOCOL_VERSION,
|
|
64
96
|
});
|
|
97
|
+
const headers = {
|
|
98
|
+
'Content-Type': 'application/json',
|
|
99
|
+
'Content-Length': Buffer.byteLength(body),
|
|
100
|
+
};
|
|
101
|
+
if (apiKey) {
|
|
102
|
+
headers['Authorization'] = `Bearer ${apiKey}`;
|
|
103
|
+
}
|
|
65
104
|
return new Promise((resolve, reject) => {
|
|
66
105
|
const req = httpModule.request({
|
|
67
106
|
hostname: url.hostname,
|
|
68
107
|
port: url.port || (isHttps ? 443 : 80),
|
|
69
108
|
path: url.pathname,
|
|
70
109
|
method: 'POST',
|
|
71
|
-
headers
|
|
72
|
-
'Content-Type': 'application/json',
|
|
73
|
-
'Content-Length': Buffer.byteLength(body),
|
|
74
|
-
},
|
|
110
|
+
headers,
|
|
75
111
|
}, (res) => {
|
|
76
112
|
const chunks = [];
|
|
77
113
|
res.on('data', (chunk) => chunks.push(chunk));
|
|
78
114
|
res.on('end', () => {
|
|
79
115
|
const responseBuffer = Buffer.concat(chunks);
|
|
80
116
|
const contentType = res.headers['content-type'] || '';
|
|
81
|
-
|
|
117
|
+
if (res.statusCode === 401) {
|
|
118
|
+
reject(new Error('Authentication failed. Check your API key.'));
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
if (res.statusCode === 403) {
|
|
122
|
+
reject(new Error('Access denied. Your API key may not have render permissions.'));
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
if (res.statusCode === 429) {
|
|
126
|
+
reject(new Error('Rate limited. Please wait before making more requests.'));
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (res.statusCode && res.statusCode >= 400) {
|
|
130
|
+
try {
|
|
131
|
+
const json = JSON.parse(responseBuffer.toString('utf-8'));
|
|
132
|
+
reject(new Error(json.error || `Server error: ${res.statusCode}`));
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
reject(new Error(`Server error: ${res.statusCode}`));
|
|
136
|
+
}
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
82
139
|
if (contentType.includes('image/png')) {
|
|
83
140
|
const runtimeHash = res.headers['x-runtime-hash'] || sha256(SDK_VERSION);
|
|
84
141
|
resolve({ pngBytes: responseBuffer, runtimeHash });
|
|
85
142
|
return;
|
|
86
143
|
}
|
|
87
|
-
// Handle JSON response (with base64 PNG or error)
|
|
88
144
|
try {
|
|
89
145
|
const json = JSON.parse(responseBuffer.toString('utf-8'));
|
|
90
146
|
if (json.error) {
|
|
@@ -131,7 +187,7 @@ async function runCommand(file, options) {
|
|
|
131
187
|
console.log(`[nexart] Running: ${file}`);
|
|
132
188
|
console.log(`[nexart] Renderer: ${options.renderer}`);
|
|
133
189
|
if (!fs.existsSync(file)) {
|
|
134
|
-
console.error(`Error: File not found: ${file}`);
|
|
190
|
+
console.error(`[nexart] Error: File not found: ${file}`);
|
|
135
191
|
process.exit(1);
|
|
136
192
|
}
|
|
137
193
|
const code = fs.readFileSync(file, 'utf-8');
|
|
@@ -144,22 +200,24 @@ async function runCommand(file, options) {
|
|
|
144
200
|
let pngBytes;
|
|
145
201
|
let runtimeHash;
|
|
146
202
|
if (options.renderer === 'remote') {
|
|
203
|
+
validateApiKey(options.apiKey, options.endpoint);
|
|
147
204
|
console.log(`[nexart] Endpoint: ${options.endpoint}`);
|
|
205
|
+
if (options.apiKey) {
|
|
206
|
+
console.log(`[nexart] Auth: Bearer ***${options.apiKey.slice(-4)}`);
|
|
207
|
+
}
|
|
148
208
|
try {
|
|
149
|
-
const result = await callRenderer(options.endpoint, code, seed, VAR, width, height);
|
|
209
|
+
const result = await callRenderer(options.endpoint, code, seed, VAR, width, height, options.apiKey);
|
|
150
210
|
pngBytes = result.pngBytes;
|
|
151
211
|
runtimeHash = options.runtimeHash || result.runtimeHash;
|
|
152
212
|
console.log(`[nexart] Received ${pngBytes.length} bytes from renderer`);
|
|
153
213
|
}
|
|
154
214
|
catch (error) {
|
|
155
215
|
console.error(`[nexart] Remote render failed: ${error}`);
|
|
156
|
-
|
|
157
|
-
pngBytes = createPlaceholderPng();
|
|
158
|
-
runtimeHash = options.runtimeHash || sha256(SDK_VERSION);
|
|
216
|
+
process.exit(1);
|
|
159
217
|
}
|
|
160
218
|
}
|
|
161
219
|
else {
|
|
162
|
-
console.log(`[nexart]
|
|
220
|
+
console.log(`[nexart] WARNING: Local renderer NOT implemented yet — outputs placeholder image only`);
|
|
163
221
|
pngBytes = createPlaceholderPng();
|
|
164
222
|
runtimeHash = options.runtimeHash || sha256(SDK_VERSION);
|
|
165
223
|
}
|
|
@@ -181,25 +239,24 @@ async function runCommand(file, options) {
|
|
|
181
239
|
}
|
|
182
240
|
const outPath = options.out;
|
|
183
241
|
const snapshotPath = outPath.replace(/\.png$/i, '.snapshot.json');
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
console.log(`[nexart]
|
|
187
|
-
console.log(`[nexart] Snapshot: ${
|
|
242
|
+
const pngAbsPath = writeFileWithAbsolutePath(outPath, pngBytes);
|
|
243
|
+
const snapshotAbsPath = writeFileWithAbsolutePath(snapshotPath, JSON.stringify(snapshot, null, 2));
|
|
244
|
+
console.log(`[nexart] Wrote PNG: ${pngAbsPath}`);
|
|
245
|
+
console.log(`[nexart] Wrote Snapshot: ${snapshotAbsPath}`);
|
|
188
246
|
console.log(`[nexart] outputHash: ${outputHash}`);
|
|
189
247
|
console.log(`[nexart] codeHash: ${codeHash}`);
|
|
190
248
|
}
|
|
191
249
|
async function replayCommand(snapshotFile, options) {
|
|
192
250
|
console.log(`[nexart] Replaying from: ${snapshotFile}`);
|
|
193
251
|
if (!fs.existsSync(snapshotFile)) {
|
|
194
|
-
console.error(`Error: Snapshot not found: ${snapshotFile}`);
|
|
252
|
+
console.error(`[nexart] Error: Snapshot not found: ${snapshotFile}`);
|
|
195
253
|
process.exit(1);
|
|
196
254
|
}
|
|
197
255
|
const snapshot = JSON.parse(fs.readFileSync(snapshotFile, 'utf-8'));
|
|
198
256
|
if (snapshot.protocol !== 'nexart') {
|
|
199
|
-
console.error('Error: Invalid snapshot format');
|
|
257
|
+
console.error('[nexart] Error: Invalid snapshot format');
|
|
200
258
|
process.exit(1);
|
|
201
259
|
}
|
|
202
|
-
// Get code from snapshot, --code flag, or error
|
|
203
260
|
let code;
|
|
204
261
|
if (options.code && fs.existsSync(options.code)) {
|
|
205
262
|
code = fs.readFileSync(options.code, 'utf-8');
|
|
@@ -210,8 +267,8 @@ async function replayCommand(snapshotFile, options) {
|
|
|
210
267
|
console.log(`[nexart] Using embedded code from snapshot`);
|
|
211
268
|
}
|
|
212
269
|
else {
|
|
213
|
-
console.error('Error: No code available. Provide --code <file> or use a snapshot with embedded code.');
|
|
214
|
-
console.error('Hint: Use --include-code when running to embed code in snapshot.');
|
|
270
|
+
console.error('[nexart] Error: No code available. Provide --code <file> or use a snapshot with embedded code.');
|
|
271
|
+
console.error('[nexart] Hint: Use --include-code when running to embed code in snapshot.');
|
|
215
272
|
process.exit(1);
|
|
216
273
|
}
|
|
217
274
|
console.log(`[nexart] Protocol: ${snapshot.protocolVersion}`);
|
|
@@ -220,37 +277,41 @@ async function replayCommand(snapshotFile, options) {
|
|
|
220
277
|
console.log(`[nexart] Canvas: ${snapshot.canvas.width}x${snapshot.canvas.height}`);
|
|
221
278
|
let pngBytes;
|
|
222
279
|
if (options.renderer === 'remote') {
|
|
280
|
+
validateApiKey(options.apiKey, options.endpoint);
|
|
223
281
|
console.log(`[nexart] Endpoint: ${options.endpoint}`);
|
|
282
|
+
if (options.apiKey) {
|
|
283
|
+
console.log(`[nexart] Auth: Bearer ***${options.apiKey.slice(-4)}`);
|
|
284
|
+
}
|
|
224
285
|
try {
|
|
225
|
-
const result = await callRenderer(options.endpoint, code, snapshot.seed, snapshot.VAR, snapshot.canvas.width, snapshot.canvas.height);
|
|
286
|
+
const result = await callRenderer(options.endpoint, code, snapshot.seed, snapshot.VAR, snapshot.canvas.width, snapshot.canvas.height, options.apiKey);
|
|
226
287
|
pngBytes = result.pngBytes;
|
|
227
288
|
console.log(`[nexart] Received ${pngBytes.length} bytes from renderer`);
|
|
228
289
|
}
|
|
229
290
|
catch (error) {
|
|
230
291
|
console.error(`[nexart] Remote render failed: ${error}`);
|
|
231
|
-
|
|
292
|
+
process.exit(1);
|
|
232
293
|
}
|
|
233
294
|
}
|
|
234
295
|
else {
|
|
296
|
+
console.log(`[nexart] WARNING: Local renderer NOT implemented yet — outputs placeholder image only`);
|
|
235
297
|
pngBytes = createPlaceholderPng();
|
|
236
298
|
}
|
|
237
299
|
const outputHash = sha256(pngBytes);
|
|
238
|
-
|
|
239
|
-
console.log(`[nexart]
|
|
300
|
+
const pngAbsPath = writeFileWithAbsolutePath(options.out, pngBytes);
|
|
301
|
+
console.log(`[nexart] Wrote PNG: ${pngAbsPath}`);
|
|
240
302
|
console.log(`[nexart] outputHash: ${outputHash}`);
|
|
241
303
|
}
|
|
242
304
|
async function verifyCommand(snapshotFile, options) {
|
|
243
305
|
console.log(`[nexart] Verifying: ${snapshotFile}`);
|
|
244
306
|
if (!fs.existsSync(snapshotFile)) {
|
|
245
|
-
console.error(`Error: Snapshot not found: ${snapshotFile}`);
|
|
307
|
+
console.error(`[nexart] Error: Snapshot not found: ${snapshotFile}`);
|
|
246
308
|
process.exit(1);
|
|
247
309
|
}
|
|
248
310
|
const snapshot = JSON.parse(fs.readFileSync(snapshotFile, 'utf-8'));
|
|
249
311
|
if (snapshot.protocol !== 'nexart') {
|
|
250
|
-
console.error('Error: Invalid snapshot format');
|
|
312
|
+
console.error('[nexart] Error: Invalid snapshot format');
|
|
251
313
|
process.exit(1);
|
|
252
314
|
}
|
|
253
|
-
// Get code
|
|
254
315
|
let code;
|
|
255
316
|
if (options.code && fs.existsSync(options.code)) {
|
|
256
317
|
code = fs.readFileSync(options.code, 'utf-8');
|
|
@@ -261,12 +322,11 @@ async function verifyCommand(snapshotFile, options) {
|
|
|
261
322
|
console.log(`[nexart] Using embedded code from snapshot`);
|
|
262
323
|
}
|
|
263
324
|
else {
|
|
264
|
-
console.error('Error: No code available for verification.');
|
|
265
|
-
console.error('Provide --code <file> or use a snapshot with embedded code.');
|
|
266
|
-
console.error('Hint: Use --include-code when running to embed code in snapshot.');
|
|
325
|
+
console.error('[nexart] Error: No code available for verification.');
|
|
326
|
+
console.error('[nexart] Provide --code <file> or use a snapshot with embedded code.');
|
|
327
|
+
console.error('[nexart] Hint: Use --include-code when running to embed code in snapshot.');
|
|
267
328
|
process.exit(1);
|
|
268
329
|
}
|
|
269
|
-
// Verify codeHash matches
|
|
270
330
|
const computedCodeHash = hashCode(code);
|
|
271
331
|
if (computedCodeHash !== snapshot.codeHash) {
|
|
272
332
|
console.error(`[nexart] Code hash mismatch!`);
|
|
@@ -278,9 +338,13 @@ async function verifyCommand(snapshotFile, options) {
|
|
|
278
338
|
const expected = snapshot.outputHash;
|
|
279
339
|
let actual;
|
|
280
340
|
if (options.renderer === 'remote') {
|
|
341
|
+
validateApiKey(options.apiKey, options.endpoint);
|
|
281
342
|
console.log(`[nexart] Endpoint: ${options.endpoint}`);
|
|
343
|
+
if (options.apiKey) {
|
|
344
|
+
console.log(`[nexart] Auth: Bearer ***${options.apiKey.slice(-4)}`);
|
|
345
|
+
}
|
|
282
346
|
try {
|
|
283
|
-
const result = await callRenderer(options.endpoint, code, snapshot.seed, snapshot.VAR, snapshot.canvas.width, snapshot.canvas.height);
|
|
347
|
+
const result = await callRenderer(options.endpoint, code, snapshot.seed, snapshot.VAR, snapshot.canvas.width, snapshot.canvas.height, options.apiKey);
|
|
284
348
|
actual = sha256(result.pngBytes);
|
|
285
349
|
}
|
|
286
350
|
catch (error) {
|
|
@@ -290,6 +354,7 @@ async function verifyCommand(snapshotFile, options) {
|
|
|
290
354
|
}
|
|
291
355
|
}
|
|
292
356
|
else {
|
|
357
|
+
console.log(`[nexart] WARNING: Local renderer NOT implemented — using placeholder hash`);
|
|
293
358
|
actual = sha256(createPlaceholderPng());
|
|
294
359
|
}
|
|
295
360
|
console.log(`[nexart] Expected: ${expected}`);
|
|
@@ -303,7 +368,13 @@ async function verifyCommand(snapshotFile, options) {
|
|
|
303
368
|
process.exit(1);
|
|
304
369
|
}
|
|
305
370
|
}
|
|
306
|
-
|
|
371
|
+
const apiKeyOption = {
|
|
372
|
+
'api-key': {
|
|
373
|
+
describe: 'API key for authenticated remote rendering',
|
|
374
|
+
type: 'string',
|
|
375
|
+
default: DEFAULT_API_KEY,
|
|
376
|
+
},
|
|
377
|
+
};
|
|
307
378
|
yargs(hideBin(process.argv))
|
|
308
379
|
.command('run <file>', 'Execute a Code Mode sketch and create snapshot', (yargs) => {
|
|
309
380
|
return yargs
|
|
@@ -342,7 +413,7 @@ yargs(hideBin(process.argv))
|
|
|
342
413
|
default: 2400,
|
|
343
414
|
})
|
|
344
415
|
.option('renderer', {
|
|
345
|
-
describe: 'Renderer mode:
|
|
416
|
+
describe: 'Renderer mode: remote (default, real PNG) or local (NOT implemented, placeholder only)',
|
|
346
417
|
choices: ['local', 'remote'],
|
|
347
418
|
default: 'remote',
|
|
348
419
|
})
|
|
@@ -351,6 +422,7 @@ yargs(hideBin(process.argv))
|
|
|
351
422
|
type: 'string',
|
|
352
423
|
default: DEFAULT_ENDPOINT,
|
|
353
424
|
})
|
|
425
|
+
.options(apiKeyOption)
|
|
354
426
|
.option('runtime-hash', {
|
|
355
427
|
describe: 'Override runtime hash (advanced)',
|
|
356
428
|
type: 'string',
|
|
@@ -369,6 +441,7 @@ yargs(hideBin(process.argv))
|
|
|
369
441
|
height: argv.height,
|
|
370
442
|
renderer: argv.renderer,
|
|
371
443
|
endpoint: argv.endpoint,
|
|
444
|
+
apiKey: argv['api-key'],
|
|
372
445
|
runtimeHash: argv['runtime-hash'],
|
|
373
446
|
includeCode: argv['include-code'],
|
|
374
447
|
});
|
|
@@ -400,13 +473,15 @@ yargs(hideBin(process.argv))
|
|
|
400
473
|
describe: 'Remote renderer endpoint URL',
|
|
401
474
|
type: 'string',
|
|
402
475
|
default: DEFAULT_ENDPOINT,
|
|
403
|
-
})
|
|
476
|
+
})
|
|
477
|
+
.options(apiKeyOption);
|
|
404
478
|
}, async (argv) => {
|
|
405
479
|
await replayCommand(argv.snapshot, {
|
|
406
480
|
out: argv.out,
|
|
407
481
|
code: argv.code,
|
|
408
482
|
renderer: argv.renderer,
|
|
409
483
|
endpoint: argv.endpoint,
|
|
484
|
+
apiKey: argv['api-key'],
|
|
410
485
|
});
|
|
411
486
|
})
|
|
412
487
|
.command('verify <snapshot>', 'Verify a snapshot produces the expected output', (yargs) => {
|
|
@@ -430,12 +505,14 @@ yargs(hideBin(process.argv))
|
|
|
430
505
|
describe: 'Remote renderer endpoint URL',
|
|
431
506
|
type: 'string',
|
|
432
507
|
default: DEFAULT_ENDPOINT,
|
|
433
|
-
})
|
|
508
|
+
})
|
|
509
|
+
.options(apiKeyOption);
|
|
434
510
|
}, async (argv) => {
|
|
435
511
|
await verifyCommand(argv.snapshot, {
|
|
436
512
|
code: argv.code,
|
|
437
513
|
renderer: argv.renderer,
|
|
438
514
|
endpoint: argv.endpoint,
|
|
515
|
+
apiKey: argv['api-key'],
|
|
439
516
|
});
|
|
440
517
|
})
|
|
441
518
|
.demandCommand(1, 'You must provide a command')
|
|
@@ -443,13 +520,24 @@ yargs(hideBin(process.argv))
|
|
|
443
520
|
.version(CLI_VERSION)
|
|
444
521
|
.epilog(`
|
|
445
522
|
Environment Variables:
|
|
446
|
-
NEXART_RENDERER_ENDPOINT
|
|
523
|
+
NEXART_RENDERER_ENDPOINT Remote renderer URL (default: http://localhost:5000)
|
|
524
|
+
NEXART_API_KEY API key for authenticated rendering
|
|
447
525
|
|
|
448
526
|
Examples:
|
|
527
|
+
# Run with API key (remote)
|
|
528
|
+
export NEXART_RENDERER_ENDPOINT=https://nexart-canonical-renderer-production.up.railway.app
|
|
529
|
+
export NEXART_API_KEY=nx_live_...
|
|
449
530
|
nexart run sketch.js --seed 12345 --include-code
|
|
531
|
+
|
|
532
|
+
# Or pass API key directly
|
|
533
|
+
nexart run sketch.js --seed 12345 --api-key nx_live_...
|
|
534
|
+
|
|
535
|
+
# Local mode (placeholder only, no auth needed)
|
|
536
|
+
nexart run sketch.js --renderer local
|
|
537
|
+
|
|
538
|
+
# Verify and replay
|
|
450
539
|
nexart verify out.snapshot.json
|
|
451
540
|
nexart replay out.snapshot.json --out replay.png
|
|
452
|
-
nexart run sketch.js --renderer local # Use placeholder (offline)
|
|
453
541
|
`)
|
|
454
542
|
.parse();
|
|
455
543
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nexart/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "NexArt CodeMode CLI - Run, replay, and verify deterministic generative art",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
7
8
|
"bin": {
|
|
8
|
-
"nexart": "
|
|
9
|
+
"nexart": "dist/index.js"
|
|
9
10
|
},
|
|
10
11
|
"scripts": {
|
|
11
12
|
"build": "tsc",
|