@promptframe/cli 0.1.71 → 0.1.73

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.
@@ -1,8 +1,8 @@
1
1
  import { spawn } from 'node:child_process';
2
- import { mkdtemp, mkdir, rm, writeFile } from 'node:fs/promises';
3
- import { tmpdir } from 'node:os';
2
+ import { mkdir, writeFile } from 'node:fs/promises';
4
3
  import { dirname, join } from 'node:path';
5
4
  import { fileURLToPath } from 'node:url';
5
+ import { createDevelopmentTemporary } from './development-temporary.js';
6
6
  export class DevelopmentValidationError extends Error {
7
7
  code;
8
8
  diagnosticCode;
@@ -28,7 +28,7 @@ export async function validateDevelopmentContents(contents, options = {}) {
28
28
  throw new DevelopmentValidationError('development.validation.excluded_input');
29
29
  }
30
30
  }
31
- const directory = await mkdtemp(join(options.temporaryParent ?? tmpdir(), 'promptframe-check-'));
31
+ const temporary = await createDevelopmentTemporary('check', options.temporaryParent), directory = temporary.directory;
32
32
  let hadFailure = false;
33
33
  try {
34
34
  for (const file of files) {
@@ -37,7 +37,7 @@ export async function validateDevelopmentContents(contents, options = {}) {
37
37
  await mkdir(dirname(path), { recursive: true });
38
38
  await writeFile(path, file.bytes, { flag: 'wx', mode: 0o400 });
39
39
  }
40
- const result = await runCapturedValidation(directory, timeoutMs, options.signal);
40
+ const result = await runCapturedValidation(directory, timeoutMs, options.signal, temporary);
41
41
  const output = JSON.parse(result);
42
42
  if (output.command !== 'validate' || output.securityEvaluatorMode !== 'ast'
43
43
  || typeof output.securityPolicyVersion !== 'string' || typeof output.securityPolicyDigest !== 'string'
@@ -56,7 +56,7 @@ export async function validateDevelopmentContents(contents, options = {}) {
56
56
  // runCapturedValidation waits for actual child close, also after abort or
57
57
  // timeout. Its reader cannot outlive this private input directory.
58
58
  try {
59
- await rm(directory, { recursive: true, force: true });
59
+ temporary.release();
60
60
  }
61
61
  catch (error) {
62
62
  if (!hadFailure)
@@ -65,11 +65,13 @@ export async function validateDevelopmentContents(contents, options = {}) {
65
65
  }
66
66
  }
67
67
  }
68
- function runCapturedValidation(directory, timeoutMs, signal) {
68
+ function runCapturedValidation(directory, timeoutMs, signal, temporary) {
69
69
  signal?.throwIfAborted();
70
+ temporary?.beforeSpawn();
70
71
  return new Promise((resolve, reject) => {
71
72
  const child = spawn(process.execPath, [fileURLToPath(new URL('./index.js', import.meta.url)), 'validate', directory, '--json'], {
72
73
  cwd: directory, stdio: ['ignore', 'pipe', 'pipe'],
74
+ detached: Boolean(temporary && process.platform === 'linux'),
73
75
  // Validation is local. Neither endpoint/auth configuration nor arbitrary
74
76
  // Node preload options from the host belong in this subprocess.
75
77
  env: { NO_COLOR: '1', ...(process.platform === 'win32' && process.env.SystemRoot ? { SystemRoot: process.env.SystemRoot } : {}) },
@@ -101,6 +103,15 @@ function runCapturedValidation(directory, timeoutMs, signal) {
101
103
  child.once('close', code => {
102
104
  clearTimeout(timeout);
103
105
  signal?.removeEventListener('abort', abort);
106
+ try {
107
+ temporary?.joined();
108
+ }
109
+ catch (error) {
110
+ if (!failed) {
111
+ failed = true;
112
+ firstError = error;
113
+ }
114
+ }
104
115
  if (failed)
105
116
  return reject(firstError);
106
117
  if (code === 0)
@@ -115,6 +126,12 @@ function runCapturedValidation(directory, timeoutMs, signal) {
115
126
  catch { /* Unstructured child output is not a diagnostic contract. */ }
116
127
  reject(new DevelopmentValidationError('development.validation.rejected', diagnosticCode));
117
128
  });
129
+ try {
130
+ temporary?.spawned(child.pid);
131
+ }
132
+ catch (error) {
133
+ fail(error);
134
+ }
118
135
  if (signal?.aborted)
119
136
  abort();
120
137
  });
@@ -1 +1 @@
1
- {"version":3,"file":"development-validation.js","sourceRoot":"","sources":["../src/development-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"development-validation.js","sourceRoot":"","sources":["../src/development-validation.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -80,6 +80,42 @@ class PromptFrameCliError extends Error {
80
80
  }
81
81
  }
82
82
  async function run(name, argv) {
83
+ // Resolve CLI help before a handler can package, contact a platform, or write
84
+ // configuration. Arguments after `--` belong to an explicitly launched tool.
85
+ const ownArgs = argv.slice(0, argv.includes('--') ? argv.indexOf('--') : argv.length);
86
+ const valueOptions = new Set([
87
+ '--allowed-upload-target', '--asset-ref', '--auth-permissions', '--auth-roles',
88
+ '--component-id', '--component-path', '--config', '--cursor', '--description',
89
+ '--display-name', '--endpoint', '--expires-at', '--file', '--host', '--id',
90
+ '--idle-timeout', '--level', '--limit', '--name', '--out', '--page-size',
91
+ '--poll-interval-seconds', '--port', '--project-context', '--project-id',
92
+ '--project-namespace', '--prop', '--provider', '--provider-kind', '--provider-name',
93
+ '--reason', '--release-notes', '--scope', '--session-id', '--status', '--studio-origin', '--target',
94
+ '--tenant-id', '--timeout-seconds', '--token', '--token-id', '--upload-target',
95
+ '--user-id', '--version-notes', '--workspace-component', '--workspace-config',
96
+ ]);
97
+ const flagOptions = new Set([
98
+ '--apply', '--check-latest', '--dry-run', '--fail-on-build-failed', '--force',
99
+ '--help', '-h', '--json', '--replace', '--show', '--strict', '--upgrade',
100
+ '--with-assets', '--workspace', '--write-local-report',
101
+ ]);
102
+ for (let index = 0; index < ownArgs.length; index++) {
103
+ const argument = ownArgs[index];
104
+ if (!argument.startsWith('-'))
105
+ continue;
106
+ const option = argument.split('=', 1)[0];
107
+ if (!valueOptions.has(option) && !flagOptions.has(option)) {
108
+ fail(`Unknown option: ${option}`, 'cli.option.unknown', 2);
109
+ }
110
+ if (valueOptions.has(option) && !argument.includes('=')
111
+ && ownArgs[index + 1] && !ownArgs[index + 1].startsWith('--')
112
+ && ownArgs[index + 1] !== '-h')
113
+ index++;
114
+ }
115
+ if (ownArgs.includes('--help') || ownArgs.includes('-h')) {
116
+ help(name);
117
+ return;
118
+ }
83
119
  switch (name) {
84
120
  case 'standard':
85
121
  standard();
@@ -4401,8 +4437,11 @@ function printJson(value) {
4401
4437
  function fail(message, code, exitCode = 1, repairHint) {
4402
4438
  throw new PromptFrameCliError(message, code, exitCode, repairHint);
4403
4439
  }
4404
- function help() {
4405
- console.log(`PromptFrame CLI
4440
+ function help(subject) {
4441
+ console.log(`PromptFrame CLI${subject ? ` — ${subject}` : ''}
4442
+
4443
+ Usage: promptframe ${subject ?? '<command>'} [arguments] [options]
4444
+ Use --help or -h before -- for CLI help without executing the command.
4406
4445
 
4407
4446
  Commands:
4408
4447
  standard Print current public component standard versions