@promptframe/cli 0.1.0 → 0.1.3
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 +34 -1
- package/dist/index.js +634 -73
- package/dist/index.js.map +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -2,4 +2,37 @@
|
|
|
2
2
|
|
|
3
3
|
PromptFrame component authoring CLI.
|
|
4
4
|
|
|
5
|
-
Use it to inspect the
|
|
5
|
+
Use it to inspect the public component standard, check component folders, validate manifests, package source archives, upload components, check build status, rebuild evidence indexes, and rerun layout/security probes.
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -D @promptframe/cli
|
|
9
|
+
npx promptframe validate .
|
|
10
|
+
npx promptframe package . --out ./component.zip
|
|
11
|
+
npx promptframe upload ./component.zip --endpoint https://your-promptframe.example/api-proxy
|
|
12
|
+
npx promptframe status <buildId> --endpoint https://your-promptframe.example/api-proxy
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Endpoint resolution is explicit and public-safe:
|
|
16
|
+
|
|
17
|
+
1. `--endpoint`
|
|
18
|
+
2. `PROMPTFRAME_API_BASE`
|
|
19
|
+
3. `REMOTION_MEDIA_API_BASE`
|
|
20
|
+
4. local config written by `promptframe configure --endpoint <url>`
|
|
21
|
+
|
|
22
|
+
The CLI embeds no production, Tailscale, local Docker, or private PromptFrame endpoint default. Upload success only means the platform accepted the source package for trust-pipeline admission; use `status`, `reindex`, and `probe` to inspect build readiness, evidence/search readiness, and layout/security diagnostics.
|
|
23
|
+
|
|
24
|
+
Local and remote commands support stable JSON output:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npx promptframe standard --json
|
|
28
|
+
npx promptframe doctor . --json
|
|
29
|
+
npx promptframe validate . --json
|
|
30
|
+
npx promptframe upload ./component.zip --endpoint "$PROMPTFRAME_API_BASE" --json
|
|
31
|
+
npx promptframe status <buildId> --json
|
|
32
|
+
npx promptframe reindex <buildId> --provider-kind cloud_embedding --json
|
|
33
|
+
npx promptframe probe <buildId> --level standard --json
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Every JSON response includes a stable `diagnostic.code`, for example `standard.completed`, `doctor.completed`, `validate.completed`, `upload.completed`, `status.completed`, `reindex.completed`, or `probe.completed`. `validate --json` also reports `checkedRuleIds` for the public policy checks it ran. JSON failures include `failureReason` and `retryable`. Missing endpoint failures exit with code `2` and use `<command>.endpoint.missing`.
|
|
37
|
+
|
|
38
|
+
`validate` and `package` consume public policies from `@promptframe/contracts`: required files, preview limits, deterministic Remotion source rules, and deterministic security gate patterns such as `code.eval`, `code.new_function`, `code.string_timer`, and `host.fs_process_env`. These local checks are early author feedback; the platform admission pipeline remains the final trust gate.
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createHash } from 'node:crypto';
|
|
3
|
-
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import { COMPONENT_MANIFEST_SCHEMA_VERSION, COMPONENT_REF_VERSION, COMPONENT_STANDARD_VERSION, PROMPTFRAME_CONTRACTS_VERSION, parseComponentManifest, } from '@promptframe/contracts';
|
|
3
|
+
import { existsSync, mkdirSync, readFileSync, readdirSync, statSync, writeFileSync, } from 'node:fs';
|
|
4
|
+
import os from 'node:os';
|
|
5
|
+
import { basename, dirname, join, relative, resolve } from 'node:path';
|
|
6
|
+
import { COMPONENT_MANIFEST_SCHEMA_VERSION, COMPONENT_REF_VERSION, COMPONENT_STANDARD_VERSION, PROMPTFRAME_PUBLIC_SECURITY_POLICY, PROMPTFRAME_PUBLIC_STANDARD_POLICY, PROMPTFRAME_CONTRACTS_VERSION, parseComponentManifest, } from '@promptframe/contracts';
|
|
7
7
|
const command = process.argv[2] ?? 'help';
|
|
8
8
|
const args = process.argv.slice(3);
|
|
9
|
+
const REQUIRED_COMPONENT_FILES = PROMPTFRAME_PUBLIC_STANDARD_POLICY.requiredFiles;
|
|
10
|
+
const VALIDATE_CHECKED_RULE_IDS = [
|
|
11
|
+
'manifest.identity.version',
|
|
12
|
+
'manifest.component_type.supported',
|
|
13
|
+
'evidence.schema_source_hash_present',
|
|
14
|
+
'runtime.deterministic.remotion',
|
|
15
|
+
'security.forbidden.browser_apis',
|
|
16
|
+
'security.no_raw_remote_url_import',
|
|
17
|
+
'package.no_parent_imports',
|
|
18
|
+
];
|
|
9
19
|
class PromptFrameCliError extends Error {
|
|
10
20
|
code;
|
|
11
21
|
exitCode;
|
|
@@ -15,34 +25,28 @@ class PromptFrameCliError extends Error {
|
|
|
15
25
|
this.exitCode = exitCode;
|
|
16
26
|
}
|
|
17
27
|
}
|
|
18
|
-
|
|
19
|
-
switch (
|
|
28
|
+
async function run(name, argv) {
|
|
29
|
+
switch (name) {
|
|
20
30
|
case 'standard':
|
|
21
|
-
|
|
22
|
-
contractsVersion: PROMPTFRAME_CONTRACTS_VERSION,
|
|
23
|
-
manifestSchemaVersion: COMPONENT_MANIFEST_SCHEMA_VERSION,
|
|
24
|
-
componentStandardVersion: COMPONENT_STANDARD_VERSION,
|
|
25
|
-
componentRefVersion: COMPONENT_REF_VERSION,
|
|
26
|
-
supportedComponentTypes: ['scene_template', 'contained_widget', 'overlay', 'transition_effect'],
|
|
27
|
-
});
|
|
31
|
+
standard();
|
|
28
32
|
break;
|
|
29
33
|
case 'doctor':
|
|
30
|
-
doctor(
|
|
34
|
+
doctor(argv);
|
|
31
35
|
break;
|
|
32
36
|
case 'validate':
|
|
33
|
-
validate(
|
|
37
|
+
validate(argv);
|
|
34
38
|
break;
|
|
35
39
|
case 'package':
|
|
36
|
-
packageComponent(
|
|
40
|
+
packageComponent(argv);
|
|
37
41
|
break;
|
|
38
42
|
case 'upload':
|
|
39
43
|
case 'status':
|
|
40
44
|
case 'reindex':
|
|
41
45
|
case 'probe':
|
|
42
|
-
remoteCommand(
|
|
46
|
+
await remoteCommand(name, argv);
|
|
43
47
|
break;
|
|
44
48
|
case 'configure':
|
|
45
|
-
configure(
|
|
49
|
+
configure(argv);
|
|
46
50
|
break;
|
|
47
51
|
case 'help':
|
|
48
52
|
case '--help':
|
|
@@ -50,76 +54,420 @@ try {
|
|
|
50
54
|
help();
|
|
51
55
|
break;
|
|
52
56
|
default:
|
|
53
|
-
fail(`Unknown command: ${
|
|
57
|
+
fail(`Unknown command: ${name}`, 'cli.command.unknown');
|
|
54
58
|
}
|
|
55
59
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
function standard() {
|
|
61
|
+
printJson({
|
|
62
|
+
command: 'standard',
|
|
63
|
+
contractsVersion: PROMPTFRAME_CONTRACTS_VERSION,
|
|
64
|
+
manifestSchemaVersion: COMPONENT_MANIFEST_SCHEMA_VERSION,
|
|
65
|
+
componentStandardVersion: COMPONENT_STANDARD_VERSION,
|
|
66
|
+
componentRefVersion: COMPONENT_REF_VERSION,
|
|
67
|
+
supportedComponentTypes: ['scene_template', 'contained_widget', 'overlay', 'transition_effect'],
|
|
68
|
+
standardPolicyVersion: PROMPTFRAME_PUBLIC_STANDARD_POLICY.policyVersion,
|
|
69
|
+
securityPolicyVersion: PROMPTFRAME_PUBLIC_SECURITY_POLICY.policyVersion,
|
|
70
|
+
previewLimits: PROMPTFRAME_PUBLIC_STANDARD_POLICY.previewLimits,
|
|
71
|
+
diagnostic: diagnostic('standard.completed', 'info', 'Public PromptFrame component standard fetched.'),
|
|
72
|
+
});
|
|
63
73
|
}
|
|
64
|
-
function doctor(
|
|
65
|
-
const dir = resolve(
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
'
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
'
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
function doctor(argv) {
|
|
75
|
+
const dir = resolve(firstPositionalArg(argv) ?? '.');
|
|
76
|
+
assertRequiredFiles(dir);
|
|
77
|
+
const output = {
|
|
78
|
+
command: 'doctor',
|
|
79
|
+
dir,
|
|
80
|
+
requiredFiles: REQUIRED_COMPONENT_FILES,
|
|
81
|
+
diagnostic: diagnostic('doctor.completed', 'info', 'Component directory contains required authoring files.'),
|
|
82
|
+
};
|
|
83
|
+
if (hasFlag(argv, '--json')) {
|
|
84
|
+
printJson(output);
|
|
85
|
+
return;
|
|
76
86
|
}
|
|
77
87
|
console.log(`doctor passed: ${dir}`);
|
|
78
88
|
}
|
|
79
|
-
function validate(
|
|
80
|
-
|
|
81
|
-
const
|
|
89
|
+
function validate(argv) {
|
|
90
|
+
const dir = resolve(firstPositionalArg(argv) ?? '.');
|
|
91
|
+
const manifest = validateComponentDirectory(dir);
|
|
92
|
+
const output = {
|
|
93
|
+
command: 'validate',
|
|
94
|
+
dir,
|
|
95
|
+
manifest: {
|
|
96
|
+
id: manifest.id,
|
|
97
|
+
name: manifest.name,
|
|
98
|
+
displayName: manifest.displayName,
|
|
99
|
+
version: manifest.version,
|
|
100
|
+
componentType: manifest.componentType ?? manifest.layer,
|
|
101
|
+
},
|
|
102
|
+
checkedRuleIds: VALIDATE_CHECKED_RULE_IDS,
|
|
103
|
+
diagnostic: diagnostic('validate.completed', 'info', 'Component manifest and public source boundaries validated.'),
|
|
104
|
+
};
|
|
105
|
+
if (hasFlag(argv, '--json')) {
|
|
106
|
+
printJson(output);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
console.log(`validate passed: ${dir}`);
|
|
110
|
+
}
|
|
111
|
+
function packageComponent(argv) {
|
|
112
|
+
const artifact = packageDirectory(argv[0] ?? '.', valueAfter(argv, '--out'));
|
|
113
|
+
printJson({
|
|
114
|
+
command: 'package',
|
|
115
|
+
diagnostic: diagnostic('package.completed', 'info', 'Component source archive created.'),
|
|
116
|
+
out: artifact.out,
|
|
117
|
+
sizeBytes: artifact.sizeBytes,
|
|
118
|
+
sha256: artifact.sha256,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
function validateComponentDirectory(dir) {
|
|
122
|
+
assertRequiredFiles(dir);
|
|
82
123
|
const manifestPath = join(dir, 'manifest.json');
|
|
83
124
|
const manifest = JSON.parse(readFileSync(manifestPath, 'utf8'));
|
|
84
|
-
parseComponentManifest(normalizeLegacyManifest(manifest));
|
|
125
|
+
const parsed = parseComponentManifest(normalizeLegacyManifest(manifest));
|
|
126
|
+
validatePreviewProps(dir);
|
|
127
|
+
validateSourceSafety(dir);
|
|
128
|
+
validateSecurityPolicy(dir);
|
|
85
129
|
checkImportBoundary(dir);
|
|
86
|
-
|
|
130
|
+
return parsed;
|
|
87
131
|
}
|
|
88
|
-
function
|
|
89
|
-
const componentDir = argv[0] ?? '.';
|
|
90
|
-
validate(componentDir);
|
|
132
|
+
function packageDirectory(componentDir, outArg) {
|
|
91
133
|
const dir = resolve(componentDir);
|
|
92
|
-
const
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
134
|
+
const manifest = validateComponentDirectory(dir);
|
|
135
|
+
const out = resolve(outArg ?? join(dir, '.component-packages', `${manifest.name}.zip`));
|
|
136
|
+
const files = collectPackageFiles(dir);
|
|
137
|
+
mkdirSync(dirname(out), { recursive: true });
|
|
138
|
+
writeFileSync(out, buildStoredZip(files));
|
|
97
139
|
const sizeBytes = statSync(out).size;
|
|
98
|
-
const sha256 = createHash('sha256').update(readFileSync(out)).digest('hex')
|
|
99
|
-
|
|
140
|
+
const sha256 = `sha256:${createHash('sha256').update(readFileSync(out)).digest('hex')}`;
|
|
141
|
+
return { out, sizeBytes, sha256 };
|
|
100
142
|
}
|
|
101
|
-
function remoteCommand(name, argv) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
143
|
+
async function remoteCommand(name, argv) {
|
|
144
|
+
switch (name) {
|
|
145
|
+
case 'upload':
|
|
146
|
+
await uploadComponent(argv);
|
|
147
|
+
break;
|
|
148
|
+
case 'status':
|
|
149
|
+
await showStatus(argv);
|
|
150
|
+
break;
|
|
151
|
+
case 'reindex':
|
|
152
|
+
await reindexEvidence(argv);
|
|
153
|
+
break;
|
|
154
|
+
case 'probe':
|
|
155
|
+
await runProbe(argv);
|
|
156
|
+
break;
|
|
105
157
|
}
|
|
106
|
-
|
|
107
|
-
|
|
158
|
+
}
|
|
159
|
+
async function uploadComponent(argv) {
|
|
160
|
+
const target = resolve(argv[0] ?? '.');
|
|
161
|
+
const endpoint = resolveEndpoint('upload', argv);
|
|
162
|
+
const artifact = target.endsWith('.zip')
|
|
163
|
+
? packageArtifactFromZip(target)
|
|
164
|
+
: packageDirectory(target, valueAfter(argv, '--out'));
|
|
165
|
+
const file = readFileSync(artifact.out);
|
|
166
|
+
const form = new FormData();
|
|
167
|
+
form.set('file', new Blob([new Uint8Array(file)], { type: 'application/zip' }), basename(artifact.out));
|
|
168
|
+
const payload = await fetchJson(`${endpoint}/components/marketplace/upload`, {
|
|
169
|
+
method: 'POST',
|
|
170
|
+
body: form,
|
|
171
|
+
headers: buildContextHeaders(argv),
|
|
172
|
+
}, 'upload.http.failed');
|
|
173
|
+
const output = {
|
|
174
|
+
...payload,
|
|
175
|
+
command: 'upload',
|
|
176
|
+
endpoint,
|
|
177
|
+
jobId: getBuildId(payload),
|
|
178
|
+
package: artifact,
|
|
179
|
+
diagnostic: diagnostic('upload.completed', 'info', 'Component upload accepted by platform.'),
|
|
180
|
+
};
|
|
181
|
+
if (hasFlag(argv, '--json')) {
|
|
182
|
+
printJson(output);
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
console.log('Upload accepted by PromptFrame platform.');
|
|
186
|
+
console.log(`Build: ${output.jobId ?? 'unknown'}`);
|
|
187
|
+
console.log(`Status: ${stringValue(payload.status) ?? stringValue(asRecord(payload.build)?.status) ?? 'queued'}`);
|
|
188
|
+
printStatusUrl(endpoint, payload);
|
|
189
|
+
}
|
|
190
|
+
async function showStatus(argv) {
|
|
191
|
+
const buildId = requiredArg(argv[0], 'status requires a build id', 'status.build_id.missing');
|
|
192
|
+
const endpoint = resolveEndpoint('status', argv);
|
|
193
|
+
const payload = await fetchJson(`${endpoint}/components/marketplace/builds/${encodeURIComponent(buildId)}`, {
|
|
194
|
+
headers: buildContextHeaders(argv),
|
|
195
|
+
}, 'status.http.failed');
|
|
196
|
+
const output = {
|
|
197
|
+
...payload,
|
|
198
|
+
command: 'status',
|
|
108
199
|
endpoint,
|
|
109
|
-
|
|
110
|
-
|
|
200
|
+
diagnostic: diagnostic('status.completed', 'info', 'Component build status fetched.'),
|
|
201
|
+
};
|
|
202
|
+
if (hasFlag(argv, '--json')) {
|
|
203
|
+
printJson(output);
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
printBuildSummary(output);
|
|
207
|
+
}
|
|
208
|
+
async function reindexEvidence(argv) {
|
|
209
|
+
const buildId = requiredArg(argv[0], 'reindex requires a build id', 'reindex.build_id.missing');
|
|
210
|
+
const endpoint = resolveEndpoint('reindex', argv);
|
|
211
|
+
const body = compactRecord({
|
|
212
|
+
providerKind: valueAfter(argv, '--provider-kind'),
|
|
213
|
+
providerName: valueAfter(argv, '--provider-name'),
|
|
111
214
|
});
|
|
215
|
+
const payload = await fetchJson(`${endpoint}/components/marketplace/builds/${encodeURIComponent(buildId)}/evidence/reindex`, {
|
|
216
|
+
method: 'POST',
|
|
217
|
+
headers: {
|
|
218
|
+
'content-type': 'application/json',
|
|
219
|
+
...buildContextHeaders(argv),
|
|
220
|
+
},
|
|
221
|
+
body: JSON.stringify(body),
|
|
222
|
+
}, 'reindex.http.failed');
|
|
223
|
+
const output = {
|
|
224
|
+
...payload,
|
|
225
|
+
command: 'reindex',
|
|
226
|
+
endpoint,
|
|
227
|
+
diagnostic: diagnostic('reindex.completed', 'info', 'Component evidence reindex requested.'),
|
|
228
|
+
};
|
|
229
|
+
if (hasFlag(argv, '--json')) {
|
|
230
|
+
printJson(output);
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
console.log('Evidence reindex completed.');
|
|
234
|
+
console.log(`Evidence items: ${arrayValue(payload.evidence).length}`);
|
|
235
|
+
console.log(`Providers: ${arrayValue(payload.providers).length}`);
|
|
236
|
+
}
|
|
237
|
+
async function runProbe(argv) {
|
|
238
|
+
const buildId = requiredArg(argv[0], 'probe requires a build id', 'probe.build_id.missing');
|
|
239
|
+
const endpoint = resolveEndpoint('probe', argv);
|
|
240
|
+
const level = valueAfter(argv, '--level') ?? 'quick';
|
|
241
|
+
const payload = await fetchJson(`${endpoint}/components/marketplace/builds/${encodeURIComponent(buildId)}/probes/run`, {
|
|
242
|
+
method: 'POST',
|
|
243
|
+
headers: {
|
|
244
|
+
'content-type': 'application/json',
|
|
245
|
+
...buildContextHeaders(argv),
|
|
246
|
+
},
|
|
247
|
+
body: JSON.stringify({ level }),
|
|
248
|
+
}, 'probe.http.failed');
|
|
249
|
+
const output = {
|
|
250
|
+
...payload,
|
|
251
|
+
command: 'probe',
|
|
252
|
+
endpoint,
|
|
253
|
+
diagnostic: diagnostic('probe.completed', 'info', 'Component layout/security probe rerun requested.'),
|
|
254
|
+
};
|
|
255
|
+
if (hasFlag(argv, '--json')) {
|
|
256
|
+
printJson(output);
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
const probe = asRecord(payload.probe);
|
|
260
|
+
console.log(`Probe: ${stringValue(probe?.level) ?? level} -> ${stringValue(probe?.status) ?? 'unknown'}`);
|
|
261
|
+
for (const item of arrayValue(probe?.diagnostics)) {
|
|
262
|
+
const diagnosticItem = asRecord(item);
|
|
263
|
+
console.log(`${stringValue(diagnosticItem?.severity)?.toUpperCase() ?? 'INFO'} ${stringValue(diagnosticItem?.code) ?? 'unknown'}: ${stringValue(diagnosticItem?.message) ?? ''}`);
|
|
264
|
+
}
|
|
112
265
|
}
|
|
113
266
|
function configure(argv) {
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
267
|
+
const current = readConfig(argv);
|
|
268
|
+
const next = compactRecord({
|
|
269
|
+
...current,
|
|
270
|
+
endpoint: valueAfter(argv, '--endpoint') ? normalizeEndpoint(requiredValue(argv, '--endpoint')) : current.endpoint,
|
|
271
|
+
tenantId: valueAfter(argv, '--tenant-id') ?? current.tenantId,
|
|
272
|
+
userId: valueAfter(argv, '--user-id') ?? current.userId,
|
|
273
|
+
projectId: valueAfter(argv, '--project-id') ?? current.projectId,
|
|
274
|
+
sessionId: valueAfter(argv, '--session-id') ?? current.sessionId,
|
|
275
|
+
});
|
|
276
|
+
if (hasFlag(argv, '--show')) {
|
|
277
|
+
printJson({ configPath: resolveConfigPath(argv), config: redactConfig(next) });
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
const changed = ['--endpoint', '--tenant-id', '--user-id', '--project-id', '--session-id']
|
|
281
|
+
.some((flag) => valueAfter(argv, flag) !== undefined);
|
|
282
|
+
if (!changed) {
|
|
283
|
+
printJson({ configPath: resolveConfigPath(argv), config: redactConfig(next) });
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
writeConfig(argv, next);
|
|
117
287
|
printJson({
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
288
|
+
command: 'configure',
|
|
289
|
+
configPath: resolveConfigPath(argv),
|
|
290
|
+
config: redactConfig(next),
|
|
291
|
+
diagnostic: diagnostic('configure.completed', 'info', 'Local PromptFrame CLI config written.'),
|
|
121
292
|
});
|
|
122
293
|
}
|
|
294
|
+
function resolveEndpoint(commandName, argv) {
|
|
295
|
+
const config = readConfig(argv);
|
|
296
|
+
const endpoint = valueAfter(argv, '--endpoint')
|
|
297
|
+
?? process.env.PROMPTFRAME_API_BASE
|
|
298
|
+
?? process.env.REMOTION_MEDIA_API_BASE
|
|
299
|
+
?? stringValue(config.endpoint);
|
|
300
|
+
if (!endpoint) {
|
|
301
|
+
fail(`${commandName} requires --endpoint, PROMPTFRAME_API_BASE, REMOTION_MEDIA_API_BASE, or local config. No default production endpoint is embedded in the public CLI.`, `${commandName}.endpoint.missing`, 2);
|
|
302
|
+
}
|
|
303
|
+
return normalizeEndpoint(endpoint);
|
|
304
|
+
}
|
|
305
|
+
function buildContextHeaders(argv) {
|
|
306
|
+
const config = readConfig(argv);
|
|
307
|
+
return compactRecord({
|
|
308
|
+
'x-tenant-id': valueAfter(argv, '--tenant-id') ?? stringValue(config.tenantId),
|
|
309
|
+
'x-user-id': valueAfter(argv, '--user-id') ?? stringValue(config.userId),
|
|
310
|
+
'x-project-id': valueAfter(argv, '--project-id') ?? stringValue(config.projectId),
|
|
311
|
+
'x-session-id': valueAfter(argv, '--session-id') ?? stringValue(config.sessionId),
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
function readConfig(argv) {
|
|
315
|
+
const path = resolveConfigPath(argv);
|
|
316
|
+
if (!existsSync(path))
|
|
317
|
+
return {};
|
|
318
|
+
try {
|
|
319
|
+
return JSON.parse(readFileSync(path, 'utf8'));
|
|
320
|
+
}
|
|
321
|
+
catch {
|
|
322
|
+
return {};
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
function writeConfig(argv, config) {
|
|
326
|
+
const path = resolveConfigPath(argv);
|
|
327
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
328
|
+
writeFileSync(path, `${JSON.stringify(config, null, 2)}\n`, 'utf8');
|
|
329
|
+
}
|
|
330
|
+
function resolveConfigPath(argv) {
|
|
331
|
+
return resolve(valueAfter(argv, '--config') ?? process.env.PROMPTFRAME_CONFIG ?? join(os.homedir(), '.promptframe', 'component-authoring.json'));
|
|
332
|
+
}
|
|
333
|
+
async function fetchJson(url, init, code) {
|
|
334
|
+
const response = await fetch(url, init);
|
|
335
|
+
const payload = await response.json().catch(() => ({}));
|
|
336
|
+
if (!response.ok || payload.success === false) {
|
|
337
|
+
fail(stringValue(payload.error) ?? `${url} failed: HTTP ${response.status}`, code);
|
|
338
|
+
}
|
|
339
|
+
return payload;
|
|
340
|
+
}
|
|
341
|
+
function assertRequiredFiles(dir) {
|
|
342
|
+
const missing = REQUIRED_COMPONENT_FILES.filter((file) => !existsSync(join(dir, file)));
|
|
343
|
+
if (missing.length > 0) {
|
|
344
|
+
fail(`Missing required files: ${missing.join(', ')}`, 'doctor.required_files.missing');
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
function validatePreviewProps(dir) {
|
|
348
|
+
const previewPath = join(dir, 'src/preview-props.json');
|
|
349
|
+
const preview = asRecord(JSON.parse(readFileSync(previewPath, 'utf8')));
|
|
350
|
+
if (!preview) {
|
|
351
|
+
fail('src/preview-props.json must be a JSON object.', 'component_standard.preview.object');
|
|
352
|
+
}
|
|
353
|
+
const limits = PROMPTFRAME_PUBLIC_STANDARD_POLICY.previewLimits;
|
|
354
|
+
const allowedFps = limits.allowedFps;
|
|
355
|
+
const durationFrames = Number(preview.durationFrames);
|
|
356
|
+
const width = Number(preview.width);
|
|
357
|
+
const height = Number(preview.height);
|
|
358
|
+
const fps = Number(preview.fps);
|
|
359
|
+
if (!Number.isInteger(durationFrames) || durationFrames <= 0) {
|
|
360
|
+
fail('preview durationFrames must be a positive integer.', 'component_standard.preview.duration_frames.positive');
|
|
361
|
+
}
|
|
362
|
+
if (durationFrames > limits.maxDurationFrames) {
|
|
363
|
+
fail(`preview durationFrames exceeds the public standard limit: ${durationFrames} > ${limits.maxDurationFrames}.`, 'component_standard.preview.duration_frames.max');
|
|
364
|
+
}
|
|
365
|
+
if (!Number.isInteger(width) || width <= 0) {
|
|
366
|
+
fail('preview width must be a positive integer.', 'component_standard.preview.width.positive');
|
|
367
|
+
}
|
|
368
|
+
if (width > limits.maxWidth) {
|
|
369
|
+
fail(`preview width exceeds the public standard limit: ${width} > ${limits.maxWidth}.`, 'component_standard.preview.width.max');
|
|
370
|
+
}
|
|
371
|
+
if (!Number.isInteger(height) || height <= 0) {
|
|
372
|
+
fail('preview height must be a positive integer.', 'component_standard.preview.height.positive');
|
|
373
|
+
}
|
|
374
|
+
if (height > limits.maxHeight) {
|
|
375
|
+
fail(`preview height exceeds the public standard limit: ${height} > ${limits.maxHeight}.`, 'component_standard.preview.height.max');
|
|
376
|
+
}
|
|
377
|
+
if (!Number.isInteger(fps) || !allowedFps.includes(fps)) {
|
|
378
|
+
fail(`preview fps must be one of: ${allowedFps.join(', ')}.`, 'component_standard.preview.fps.allowed');
|
|
379
|
+
}
|
|
380
|
+
if (!asRecord(preview.props)) {
|
|
381
|
+
fail('src/preview-props.json must include a props object.', 'component_standard.preview.props.object');
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
function validateSourceSafety(dir) {
|
|
385
|
+
for (const entry of collectPackageFiles(dir)) {
|
|
386
|
+
if (!isSourceSafetyScannableFile(entry.name))
|
|
387
|
+
continue;
|
|
388
|
+
const source = entry.data.toString('utf8');
|
|
389
|
+
for (const rule of PROMPTFRAME_PUBLIC_STANDARD_POLICY.sourceSafetyRules) {
|
|
390
|
+
const match = source.match(new RegExp(rule.pattern, 'i'));
|
|
391
|
+
if (!match)
|
|
392
|
+
continue;
|
|
393
|
+
fail(`${entry.name}: ${rule.message} ${rule.repairHint}`, rule.id);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
function validateSecurityPolicy(dir) {
|
|
398
|
+
for (const entry of collectPackageFiles(dir)) {
|
|
399
|
+
if (!isSecurityScannableFile(entry.name))
|
|
400
|
+
continue;
|
|
401
|
+
const source = entry.data.toString('utf8');
|
|
402
|
+
const finding = firstSecurityFinding(entry.name, source);
|
|
403
|
+
if (!finding)
|
|
404
|
+
continue;
|
|
405
|
+
fail(`${entry.name}: ${finding.label}: ${finding.reason} ${finding.recommendation}`, finding.id);
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
function firstSecurityFinding(file, source) {
|
|
409
|
+
for (const rule of PROMPTFRAME_PUBLIC_SECURITY_POLICY.forbiddenApis) {
|
|
410
|
+
if (!shouldScanSecurityRule(file, rule.id))
|
|
411
|
+
continue;
|
|
412
|
+
if (matchesAnyPattern(source, rule.patterns))
|
|
413
|
+
return rule;
|
|
414
|
+
}
|
|
415
|
+
for (const rule of PROMPTFRAME_PUBLIC_SECURITY_POLICY.mediatedApis) {
|
|
416
|
+
if (!shouldScanSecurityRule(file, rule.id))
|
|
417
|
+
continue;
|
|
418
|
+
if (matchesAnyPattern(source, rule.rawApis.map(apiToSecurityPattern)))
|
|
419
|
+
return rule;
|
|
420
|
+
}
|
|
421
|
+
for (const rule of PROMPTFRAME_PUBLIC_SECURITY_POLICY.warningApis) {
|
|
422
|
+
if (!shouldScanSecurityRule(file, rule.id))
|
|
423
|
+
continue;
|
|
424
|
+
if (matchesAnyPattern(source, rule.patterns))
|
|
425
|
+
return rule;
|
|
426
|
+
}
|
|
427
|
+
return undefined;
|
|
428
|
+
}
|
|
429
|
+
function matchesAnyPattern(source, patterns) {
|
|
430
|
+
return patterns.some((pattern) => new RegExp(pattern, 'i').test(source));
|
|
431
|
+
}
|
|
432
|
+
function apiToSecurityPattern(api) {
|
|
433
|
+
const escaped = api.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
434
|
+
if (api === 'fetch')
|
|
435
|
+
return '\\bfetch\\s*\\(';
|
|
436
|
+
if (api === 'XMLHttpRequest')
|
|
437
|
+
return '\\bnew\\s+XMLHttpRequest\\b|\\bXMLHttpRequest\\s*\\(';
|
|
438
|
+
if (api === 'WebSocket')
|
|
439
|
+
return '\\bnew\\s+WebSocket\\b|\\bWebSocket\\s*\\(';
|
|
440
|
+
if (api === 'EventSource')
|
|
441
|
+
return '\\bnew\\s+EventSource\\b|\\bEventSource\\s*\\(';
|
|
442
|
+
if (api === 'navigator.sendBeacon')
|
|
443
|
+
return 'navigator\\.sendBeacon\\s*\\(';
|
|
444
|
+
return api.includes('.')
|
|
445
|
+
? `${escaped}\\s*\\(`
|
|
446
|
+
: `\\b${escaped}\\b`;
|
|
447
|
+
}
|
|
448
|
+
function shouldScanSecurityRule(file, ruleId) {
|
|
449
|
+
if (isDocumentationSecurityFile(file)) {
|
|
450
|
+
return ruleId === 'prompt.injection_string' || ruleId === 'network.remote_url';
|
|
451
|
+
}
|
|
452
|
+
if (isPackageManifestSecurityFile(file)) {
|
|
453
|
+
return ruleId === 'package.install_script'
|
|
454
|
+
|| ruleId === 'prompt.injection_string'
|
|
455
|
+
|| ruleId === 'network.remote_url';
|
|
456
|
+
}
|
|
457
|
+
return true;
|
|
458
|
+
}
|
|
459
|
+
function isSourceSafetyScannableFile(fileName) {
|
|
460
|
+
return /\.(tsx?|jsx?|css)$/i.test(fileName);
|
|
461
|
+
}
|
|
462
|
+
function isSecurityScannableFile(fileName) {
|
|
463
|
+
return /\.(tsx?|jsx?|mjs|cjs|json|md|mdx)$/i.test(fileName);
|
|
464
|
+
}
|
|
465
|
+
function isDocumentationSecurityFile(fileName) {
|
|
466
|
+
return /\.(md|mdx)$/i.test(fileName);
|
|
467
|
+
}
|
|
468
|
+
function isPackageManifestSecurityFile(fileName) {
|
|
469
|
+
return /(^|\/)package\.json$/i.test(fileName);
|
|
470
|
+
}
|
|
123
471
|
function checkImportBoundary(dir) {
|
|
124
472
|
const component = readIfExists(join(dir, 'src/Component.tsx'));
|
|
125
473
|
const schema = readIfExists(join(dir, 'src/schema.ts'));
|
|
@@ -136,15 +484,198 @@ function normalizeLegacyManifest(input) {
|
|
|
136
484
|
}
|
|
137
485
|
return input;
|
|
138
486
|
}
|
|
487
|
+
function packageArtifactFromZip(path) {
|
|
488
|
+
const file = readFileSync(path);
|
|
489
|
+
return {
|
|
490
|
+
out: path,
|
|
491
|
+
sizeBytes: file.byteLength,
|
|
492
|
+
sha256: `sha256:${createHash('sha256').update(file).digest('hex')}`,
|
|
493
|
+
};
|
|
494
|
+
}
|
|
495
|
+
function collectPackageFiles(root) {
|
|
496
|
+
const files = [];
|
|
497
|
+
function walk(dir) {
|
|
498
|
+
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
499
|
+
if (['node_modules', 'dist', '.git', '.component-packages', '.promptframe'].includes(entry.name))
|
|
500
|
+
continue;
|
|
501
|
+
const full = join(dir, entry.name);
|
|
502
|
+
if (entry.isDirectory()) {
|
|
503
|
+
walk(full);
|
|
504
|
+
}
|
|
505
|
+
else if (entry.isFile()) {
|
|
506
|
+
files.push({
|
|
507
|
+
name: relative(root, full).replace(/\\/g, '/'),
|
|
508
|
+
data: readFileSync(full),
|
|
509
|
+
});
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
walk(root);
|
|
514
|
+
return files.sort((a, b) => a.name.localeCompare(b.name));
|
|
515
|
+
}
|
|
516
|
+
function buildStoredZip(files) {
|
|
517
|
+
const localParts = [];
|
|
518
|
+
const centralParts = [];
|
|
519
|
+
let offset = 0;
|
|
520
|
+
for (const file of files) {
|
|
521
|
+
const name = Buffer.from(file.name);
|
|
522
|
+
const data = Buffer.from(file.data);
|
|
523
|
+
const crc = crc32(data);
|
|
524
|
+
const local = Buffer.alloc(30 + name.length);
|
|
525
|
+
local.writeUInt32LE(0x04034b50, 0);
|
|
526
|
+
local.writeUInt16LE(20, 4);
|
|
527
|
+
local.writeUInt16LE(0, 6);
|
|
528
|
+
local.writeUInt16LE(0, 8);
|
|
529
|
+
local.writeUInt16LE(0, 10);
|
|
530
|
+
local.writeUInt16LE(0, 12);
|
|
531
|
+
local.writeUInt32LE(crc, 14);
|
|
532
|
+
local.writeUInt32LE(data.length, 18);
|
|
533
|
+
local.writeUInt32LE(data.length, 22);
|
|
534
|
+
local.writeUInt16LE(name.length, 26);
|
|
535
|
+
local.writeUInt16LE(0, 28);
|
|
536
|
+
name.copy(local, 30);
|
|
537
|
+
localParts.push(local, data);
|
|
538
|
+
const central = Buffer.alloc(46 + name.length);
|
|
539
|
+
central.writeUInt32LE(0x02014b50, 0);
|
|
540
|
+
central.writeUInt16LE(20, 4);
|
|
541
|
+
central.writeUInt16LE(20, 6);
|
|
542
|
+
central.writeUInt16LE(0, 8);
|
|
543
|
+
central.writeUInt16LE(0, 10);
|
|
544
|
+
central.writeUInt16LE(0, 12);
|
|
545
|
+
central.writeUInt16LE(0, 14);
|
|
546
|
+
central.writeUInt32LE(crc, 16);
|
|
547
|
+
central.writeUInt32LE(data.length, 20);
|
|
548
|
+
central.writeUInt32LE(data.length, 24);
|
|
549
|
+
central.writeUInt16LE(name.length, 28);
|
|
550
|
+
central.writeUInt16LE(0, 30);
|
|
551
|
+
central.writeUInt16LE(0, 32);
|
|
552
|
+
central.writeUInt16LE(0, 34);
|
|
553
|
+
central.writeUInt16LE(0, 36);
|
|
554
|
+
central.writeUInt32LE(0, 38);
|
|
555
|
+
central.writeUInt32LE(offset, 42);
|
|
556
|
+
name.copy(central, 46);
|
|
557
|
+
centralParts.push(central);
|
|
558
|
+
offset += local.length + data.length;
|
|
559
|
+
}
|
|
560
|
+
const centralOffset = offset;
|
|
561
|
+
const central = Buffer.concat(centralParts);
|
|
562
|
+
const end = Buffer.alloc(22);
|
|
563
|
+
end.writeUInt32LE(0x06054b50, 0);
|
|
564
|
+
end.writeUInt16LE(0, 4);
|
|
565
|
+
end.writeUInt16LE(0, 6);
|
|
566
|
+
end.writeUInt16LE(files.length, 8);
|
|
567
|
+
end.writeUInt16LE(files.length, 10);
|
|
568
|
+
end.writeUInt32LE(central.length, 12);
|
|
569
|
+
end.writeUInt32LE(centralOffset, 16);
|
|
570
|
+
end.writeUInt16LE(0, 20);
|
|
571
|
+
return Buffer.concat([...localParts, central, end]);
|
|
572
|
+
}
|
|
573
|
+
function crc32(buffer) {
|
|
574
|
+
let crc = 0xffffffff;
|
|
575
|
+
for (const byte of buffer) {
|
|
576
|
+
crc = CRC_TABLE[(crc ^ byte) & 0xff] ^ (crc >>> 8);
|
|
577
|
+
}
|
|
578
|
+
return (crc ^ 0xffffffff) >>> 0;
|
|
579
|
+
}
|
|
580
|
+
const CRC_TABLE = Array.from({ length: 256 }, (_, index) => {
|
|
581
|
+
let c = index;
|
|
582
|
+
for (let k = 0; k < 8; k += 1) {
|
|
583
|
+
c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
|
|
584
|
+
}
|
|
585
|
+
return c >>> 0;
|
|
586
|
+
});
|
|
587
|
+
function requiredArg(value, message, code) {
|
|
588
|
+
if (!value)
|
|
589
|
+
fail(message, code, 2);
|
|
590
|
+
return value;
|
|
591
|
+
}
|
|
592
|
+
function requiredValue(argv, flag) {
|
|
593
|
+
const value = valueAfter(argv, flag);
|
|
594
|
+
if (!value)
|
|
595
|
+
fail(`${flag} requires a value`, `cli${flag.replaceAll('-', '.')}.missing`, 2);
|
|
596
|
+
return value;
|
|
597
|
+
}
|
|
139
598
|
function valueAfter(argv, flag) {
|
|
599
|
+
const inline = argv.find((arg) => arg.startsWith(`${flag}=`));
|
|
600
|
+
if (inline)
|
|
601
|
+
return inline.slice(flag.length + 1);
|
|
140
602
|
const index = argv.indexOf(flag);
|
|
141
603
|
if (index < 0)
|
|
142
604
|
return undefined;
|
|
143
|
-
|
|
605
|
+
const next = argv[index + 1];
|
|
606
|
+
return next && !next.startsWith('--') ? next : undefined;
|
|
607
|
+
}
|
|
608
|
+
function firstPositionalArg(argv) {
|
|
609
|
+
return argv.find((arg) => !arg.startsWith('--'));
|
|
610
|
+
}
|
|
611
|
+
function hasFlag(argv, flag) {
|
|
612
|
+
return argv.includes(flag);
|
|
144
613
|
}
|
|
145
614
|
function readIfExists(path) {
|
|
146
615
|
return existsSync(path) ? readFileSync(path, 'utf8') : '';
|
|
147
616
|
}
|
|
617
|
+
function normalizeEndpoint(endpoint) {
|
|
618
|
+
return endpoint.replace(/\/+$/, '');
|
|
619
|
+
}
|
|
620
|
+
function redactConfig(config) {
|
|
621
|
+
return compactRecord({
|
|
622
|
+
endpoint: config.endpoint,
|
|
623
|
+
tenantId: config.tenantId,
|
|
624
|
+
userId: config.userId,
|
|
625
|
+
projectId: config.projectId,
|
|
626
|
+
sessionId: config.sessionId,
|
|
627
|
+
});
|
|
628
|
+
}
|
|
629
|
+
function diagnostic(code, severity, message) {
|
|
630
|
+
return { code, severity, message };
|
|
631
|
+
}
|
|
632
|
+
function compactRecord(input) {
|
|
633
|
+
const output = {};
|
|
634
|
+
for (const [key, value] of Object.entries(input)) {
|
|
635
|
+
if (typeof value === 'string' && value.length > 0)
|
|
636
|
+
output[key] = value;
|
|
637
|
+
}
|
|
638
|
+
return output;
|
|
639
|
+
}
|
|
640
|
+
function getBuildId(payload) {
|
|
641
|
+
return stringValue(payload.jobId)
|
|
642
|
+
?? stringValue(payload.buildId)
|
|
643
|
+
?? stringValue(asRecord(payload.build)?.buildId)
|
|
644
|
+
?? stringValue(asRecord(payload.build)?.id);
|
|
645
|
+
}
|
|
646
|
+
function printBuildSummary(payload) {
|
|
647
|
+
const build = asRecord(payload.build);
|
|
648
|
+
if (!build) {
|
|
649
|
+
printJson(payload);
|
|
650
|
+
return;
|
|
651
|
+
}
|
|
652
|
+
console.log(`Build: ${stringValue(build.buildId) ?? stringValue(build.id) ?? 'unknown'}`);
|
|
653
|
+
console.log(`Status: ${stringValue(build.status) ?? 'unknown'}`);
|
|
654
|
+
printStatusUrl(stringValue(payload.endpoint) ?? '', build);
|
|
655
|
+
for (const item of arrayValue(build.diagnostics)) {
|
|
656
|
+
const diagnosticItem = asRecord(item);
|
|
657
|
+
console.log(`${stringValue(diagnosticItem?.severity)?.toUpperCase() ?? 'INFO'} ${stringValue(diagnosticItem?.code) ?? 'unknown'}: ${stringValue(diagnosticItem?.message) ?? ''}`);
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
function printStatusUrl(endpoint, payload) {
|
|
661
|
+
const statusUrl = stringValue(payload.statusUrl) ?? stringValue(asRecord(payload.build)?.statusUrl);
|
|
662
|
+
if (!statusUrl)
|
|
663
|
+
return;
|
|
664
|
+
if (/^https?:\/\//i.test(statusUrl)) {
|
|
665
|
+
console.log(`Status URL: ${statusUrl}`);
|
|
666
|
+
return;
|
|
667
|
+
}
|
|
668
|
+
console.log(`Status URL: ${endpoint}${statusUrl.startsWith('/') ? statusUrl : `/${statusUrl}`}`);
|
|
669
|
+
}
|
|
670
|
+
function asRecord(value) {
|
|
671
|
+
return value && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
|
|
672
|
+
}
|
|
673
|
+
function arrayValue(value) {
|
|
674
|
+
return Array.isArray(value) ? value : [];
|
|
675
|
+
}
|
|
676
|
+
function stringValue(value) {
|
|
677
|
+
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
678
|
+
}
|
|
148
679
|
function printJson(value) {
|
|
149
680
|
console.log(JSON.stringify(value, null, 2));
|
|
150
681
|
}
|
|
@@ -155,11 +686,41 @@ function help() {
|
|
|
155
686
|
console.log(`PromptFrame CLI
|
|
156
687
|
|
|
157
688
|
Commands:
|
|
158
|
-
standard
|
|
159
|
-
doctor <dir>
|
|
160
|
-
validate <dir>
|
|
161
|
-
package <dir> --out <
|
|
162
|
-
upload
|
|
689
|
+
standard Print current public component standard versions
|
|
690
|
+
doctor <dir> Check required component files
|
|
691
|
+
validate <dir> Validate manifest and basic source boundaries
|
|
692
|
+
package <dir> --out <zip> Validate and package a component source zip
|
|
693
|
+
upload <dir|zip> Upload component source package to PromptFrame
|
|
694
|
+
status <buildId> Fetch component build status
|
|
695
|
+
reindex <buildId> Rebuild component search/evidence indexes
|
|
696
|
+
probe <buildId> --level <level> Rerun component layout/security probe
|
|
697
|
+
configure --endpoint <url> Write local CLI endpoint/context config
|
|
698
|
+
|
|
699
|
+
Endpoint resolution:
|
|
700
|
+
--endpoint, PROMPTFRAME_API_BASE, REMOTION_MEDIA_API_BASE, then local config.
|
|
701
|
+
The public CLI embeds no production/private endpoint defaults.
|
|
163
702
|
`);
|
|
164
703
|
}
|
|
704
|
+
try {
|
|
705
|
+
await run(command, args);
|
|
706
|
+
}
|
|
707
|
+
catch (error) {
|
|
708
|
+
if (error instanceof PromptFrameCliError) {
|
|
709
|
+
if (hasFlag(args, '--json')) {
|
|
710
|
+
console.error(JSON.stringify({
|
|
711
|
+
success: false,
|
|
712
|
+
command,
|
|
713
|
+
diagnostic: diagnostic(error.code, 'error', error.message),
|
|
714
|
+
failureReason: error.message,
|
|
715
|
+
retryable: false,
|
|
716
|
+
}, null, 2));
|
|
717
|
+
}
|
|
718
|
+
else {
|
|
719
|
+
console.error(`${error.code}: ${error.message}`);
|
|
720
|
+
}
|
|
721
|
+
process.exit(error.exitCode);
|
|
722
|
+
}
|
|
723
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
724
|
+
process.exit(1);
|
|
725
|
+
}
|
|
165
726
|
//# 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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptframe/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -36,13 +36,14 @@
|
|
|
36
36
|
},
|
|
37
37
|
"homepage": "https://github.com/ty-teams/promptframe-component-authoring#readme",
|
|
38
38
|
"scripts": {
|
|
39
|
-
"build": "tsc",
|
|
39
|
+
"build": "pnpm --filter @promptframe/contracts build && tsc",
|
|
40
40
|
"lint": "pnpm --filter @promptframe/contracts build && tsc --noEmit",
|
|
41
|
-
"test": "
|
|
41
|
+
"test": "pnpm build && node --test test/*.test.mjs",
|
|
42
|
+
"pack:dry-run": "pnpm build && npm pack --dry-run --json",
|
|
42
43
|
"clean": "rm -rf dist"
|
|
43
44
|
},
|
|
44
45
|
"dependencies": {
|
|
45
|
-
"@promptframe/contracts": "^0.1.
|
|
46
|
+
"@promptframe/contracts": "^0.1.2"
|
|
46
47
|
},
|
|
47
48
|
"devDependencies": {
|
|
48
49
|
"@types/node": "^24.12.4",
|