@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 CHANGED
@@ -2,4 +2,37 @@
2
2
 
3
3
  PromptFrame component authoring CLI.
4
4
 
5
- Use it to inspect the current public standard, check component folders, validate manifests, package source archives and call platform upload/status/reindex/probe endpoints.
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 { join, resolve } from 'node:path';
5
- import { spawnSync } from 'node:child_process';
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
- try {
19
- switch (command) {
28
+ async function run(name, argv) {
29
+ switch (name) {
20
30
  case 'standard':
21
- printJson({
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(args[0] ?? '.');
34
+ doctor(argv);
31
35
  break;
32
36
  case 'validate':
33
- validate(args[0] ?? '.');
37
+ validate(argv);
34
38
  break;
35
39
  case 'package':
36
- packageComponent(args);
40
+ packageComponent(argv);
37
41
  break;
38
42
  case 'upload':
39
43
  case 'status':
40
44
  case 'reindex':
41
45
  case 'probe':
42
- remoteCommand(command, args);
46
+ await remoteCommand(name, argv);
43
47
  break;
44
48
  case 'configure':
45
- configure(args);
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: ${command}`, 'cli.command.unknown');
57
+ fail(`Unknown command: ${name}`, 'cli.command.unknown');
54
58
  }
55
59
  }
56
- catch (error) {
57
- if (error instanceof PromptFrameCliError) {
58
- console.error(`${error.code}: ${error.message}`);
59
- process.exit(error.exitCode);
60
- }
61
- console.error(error instanceof Error ? error.message : String(error));
62
- process.exit(1);
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(componentDir) {
65
- const dir = resolve(componentDir);
66
- const required = [
67
- 'package.json',
68
- 'manifest.json',
69
- 'src/Component.tsx',
70
- 'src/schema.ts',
71
- 'src/preview-props.json',
72
- ];
73
- const missing = required.filter((file) => !existsSync(join(dir, file)));
74
- if (missing.length > 0) {
75
- fail(`Missing required files: ${missing.join(', ')}`, 'doctor.required_files.missing');
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(componentDir) {
80
- doctor(componentDir);
81
- const dir = resolve(componentDir);
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
- console.log(`validate passed: ${dir}`);
130
+ return parsed;
87
131
  }
88
- function packageComponent(argv) {
89
- const componentDir = argv[0] ?? '.';
90
- validate(componentDir);
132
+ function packageDirectory(componentDir, outArg) {
91
133
  const dir = resolve(componentDir);
92
- const out = valueAfter(argv, '--out') ?? `${dir.replace(/[\\/]$/, '')}.tgz`;
93
- const result = spawnSync('tar', ['-czf', out, '-C', dir, '.'], { encoding: 'utf8' });
94
- if (result.status !== 0) {
95
- fail(result.stderr || 'tar failed while packaging component', 'package.tar.failed');
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
- printJson({ out, sizeBytes, sha256: `sha256:${sha256}` });
140
+ const sha256 = `sha256:${createHash('sha256').update(readFileSync(out)).digest('hex')}`;
141
+ return { out, sizeBytes, sha256 };
100
142
  }
101
- function remoteCommand(name, argv) {
102
- const endpoint = valueAfter(argv, '--endpoint') ?? process.env.PROMPTFRAME_API_BASE ?? process.env.REMOTION_MEDIA_API_BASE;
103
- if (!endpoint) {
104
- fail(`${name} requires --endpoint, PROMPTFRAME_API_BASE, or REMOTION_MEDIA_API_BASE. No default production endpoint is embedded in the public CLI.`, `${name}.endpoint.missing`, 2);
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
- printJson({
107
- command: name,
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
- status: 'not_implemented_first_slice',
110
- diagnostic: `${name}.transport.pending`,
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 endpoint = valueAfter(argv, '--endpoint');
115
- if (!endpoint)
116
- fail('configure requires --endpoint <url>', 'configure.endpoint.missing', 2);
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
- status: 'not_persisted_first_slice',
119
- endpoint,
120
- diagnostic: 'configure.storage.pending',
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
- return argv[index + 1];
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 Print current public component standard versions
159
- doctor <dir> Check required component files
160
- validate <dir> Validate manifest and basic source boundaries
161
- package <dir> --out <tgz> Validate and package a component directory
162
- upload/status/reindex/probe Endpoint-backed commands; require --endpoint or env
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":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EACL,iCAAiC,EACjC,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,EAC7B,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;AAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,MAAM,mBAAoB,SAAQ,KAAK;IACQ;IAA8B;IAA3E,YAAY,OAAe,EAAkB,IAAY,EAAkB,WAAW,CAAC;QACrF,KAAK,CAAC,OAAO,CAAC,CAAC;QAD4B,SAAI,GAAJ,IAAI,CAAQ;QAAkB,aAAQ,GAAR,QAAQ,CAAI;IAEvF,CAAC;CACF;AAED,IAAI,CAAC;IACH,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,UAAU;YACb,SAAS,CAAC;gBACR,gBAAgB,EAAE,6BAA6B;gBAC/C,qBAAqB,EAAE,iCAAiC;gBACxD,wBAAwB,EAAE,0BAA0B;gBACpD,mBAAmB,EAAE,qBAAqB;gBAC1C,uBAAuB,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,EAAE,mBAAmB,CAAC;aAChG,CAAC,CAAC;YACH,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YACvB,MAAM;QACR,KAAK,UAAU;YACb,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YACzB,MAAM;QACR,KAAK,SAAS;YACZ,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM;QACR,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,OAAO;YACV,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC7B,MAAM;QACR,KAAK,WAAW;YACd,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,MAAM;QACR,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI;YACP,IAAI,EAAE,CAAC;YACP,MAAM;QACR;YACE,IAAI,CAAC,oBAAoB,OAAO,EAAE,EAAE,qBAAqB,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,MAAM,CAAC,YAAoB;IAClC,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG;QACf,cAAc;QACd,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,wBAAwB;KACzB,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,2BAA2B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,+BAA+B,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,QAAQ,CAAC,YAAoB;IACpC,MAAM,CAAC,YAAY,CAAC,CAAC;IACrB,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAChE,sBAAsB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1D,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAc;IACtC,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACvB,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC;IAC5E,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACrF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,sCAAsC,EAAE,oBAAoB,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5E,SAAS,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,MAAM,EAAE,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,IAAc;IACjD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAC3H,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,CACF,GAAG,IAAI,uIAAuI,EAC9I,GAAG,IAAI,mBAAmB,EAC1B,CAAC,CACF,CAAC;IACJ,CAAC;IACD,SAAS,CAAC;QACR,OAAO,EAAE,IAAI;QACb,QAAQ;QACR,MAAM,EAAE,6BAA6B;QACrC,UAAU,EAAE,GAAG,IAAI,oBAAoB;KACxC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,qCAAqC,EAAE,4BAA4B,EAAE,CAAC,CAAC,CAAC;IAC5F,SAAS,CAAC;QACR,MAAM,EAAE,2BAA2B;QACnC,QAAQ;QACR,UAAU,EAAE,2BAA2B;KACxC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,GAAG,SAAS,KAAK,MAAM,EAAE,CAAC;IACzC,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACpF,IAAI,CAAC,gEAAgE,EAAE,2BAA2B,CAAC,CAAC;IACtG,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,KAA8B;IAC7D,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1D,IAAI,KAAK,CAAC,KAAK,KAAK,gBAAgB,IAAI,KAAK,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QAC5E,OAAO,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;IACvD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,IAAc,EAAE,IAAY;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAChC,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,IAAI,CAAC,OAAe,EAAE,IAAY,EAAE,QAAQ,GAAG,CAAC;IACvD,MAAM,IAAI,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,IAAI;IACX,OAAO,CAAC,GAAG,CAAC;;;;;;;;CAQb,CAAC,CAAC;AACH,CAAC"}
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.0",
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": "node -e \"console.log('placeholder test: @promptframe/cli')\"",
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.0"
46
+ "@promptframe/contracts": "^0.1.2"
46
47
  },
47
48
  "devDependencies": {
48
49
  "@types/node": "^24.12.4",