@promptframe/cli 0.1.69 → 0.1.71
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 +5 -3
- package/dist/component-file-selection.d.ts +23 -0
- package/dist/component-file-selection.d.ts.map +1 -0
- package/dist/component-file-selection.js +132 -0
- package/dist/component-file-selection.js.map +1 -0
- package/dist/development-workspace.d.ts.map +1 -1
- package/dist/development-workspace.js +40 -36
- package/dist/development-workspace.js.map +1 -1
- package/dist/index.js +35 -48
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ PromptFrame component authoring CLI.
|
|
|
8
8
|
|
|
9
9
|
Use it to inspect the public component standard, check component folders, validate manifests, inspect the local preview envelope, package source archives, upload components, check build status, rebuild evidence indexes, and rerun layout/security probes.
|
|
10
10
|
|
|
11
|
-
Current source baseline is `@promptframe/cli@0.1.
|
|
11
|
+
Current source baseline is `@promptframe/cli@0.1.71`, `@promptframe/contracts@0.1.39`, `@promptframe/component-kit@0.1.33`, and `create-promptframe-component@0.1.61`. The published CLI consumes the contracts AST-aware public security policy evaluator, reports `securityPolicyDigest` / `securityEvaluatorMode` in JSON output, rejects red-team browser capability vectors such as Image/Audio beacons, Worker/SharedWorker, `window.open`, `postMessage`, dynamic script/iframe creation, browser fingerprinting, storage/cookie access, and dangerous HTML, reports `publicResources` for component-level public assets, keeps native `<img>` / `<video>` source checks case-sensitive so Remotion `<Img>` / `<Video>` remain valid, validates preview props against statically declared `propsSchema` fields and requires readable public prop descriptions, enforces strict Slot-first layout/source diagnostics, supports endpoint discovery, project list/current diagnostics, self-service CI token create/list/revoke, single-component and workspace GitHub workflow setup with `promptframe-workflow-version: 2`, `setup-ci --upgrade` stale-template repair, dynamic workspace matrix discovery, `RUNNER_LABELS` and pnpm 10 workflow support, pnpm workspace root lockfile evidence without component symlinks, `promptframe-workspace.json` validation, workspace root `check .` / `upload .` auto-detection, explicit `workspace:*` shared-package diagnostics, workspace upload source metadata headers, packages sanitized lockfile evidence for platform admission, release notes forwarding to upload, stderr NDJSON upload progress for `--json`, human-readable token kind/expiry summaries for `login`, `whoami`, and authenticated `upload`, server version auto-bump notes, and supports `status --fail-on-build-failed` for CI build-status gating.
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
npm install -D @promptframe/cli
|
|
@@ -100,11 +100,11 @@ The upload-to-publish lifecycle has multiple gates. `upload` returning success m
|
|
|
100
100
|
promptframe dev . --studio-origin https://studio.example
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
入口监听一个 loopback
|
|
103
|
+
入口监听一个 loopback 地址,默认从24000—24999选择工作区稳定端口;`--port 0` 由系统分配端口,也可用 `--port` 显式指定。成功监听后输出实际 URL、稳定连接 ID、精确 Studio Origin 和本次进程新生成的连接凭据。凭据只用于本机显式连接,不是平台登录或上传 Token;不要提交或放进组件代码。远程浏览器、SSH/WSL 和 HTTPS 到本机的访问仍需真实桥接及浏览器许可,不能根据命令启动推断可达。
|
|
104
104
|
|
|
105
105
|
`/__promptframe/registry` 和 `events` 以精确 Host/Origin/Authorization 返回模块的当前捕获版本、checking/checked/failed、固定诊断及明确的 lastChecked。精确版本的 bundle 接口一次返回 Component/schema/index ESM、共享 chunk 和已捕获 public 资源;输出不附原包锁或连接凭据。原始 Vite 文件、`/@fs`、默认 HTML/HMR、子配置和 npm 脚本入口关闭。
|
|
106
106
|
|
|
107
|
-
每个模块先捕获自身文件、实际 workspace pnpm 锁和声明,再运行普通 CLI validate、固定 Vite 闭合图构建和当前内容重捕获。漏通知、快速保存或旧构建晚回不能授权旧字节覆盖新版;失败保留明确标记的 lastChecked。检查状态是构建/规则事实,Player
|
|
107
|
+
每个模块先捕获自身文件、实际 workspace pnpm 锁和声明,再运行普通 CLI validate、固定 Vite 闭合图构建和当前内容重捕获。漏通知、快速保存或旧构建晚回不能授权旧字节覆盖新版;失败保留明确标记的 lastChecked。检查状态是构建/规则事实,Player 必须在隔离执行后另报实际加载版本。Studio 开发连接面板消费该连接;只有 Player 回报的实际加载版本能证明画面已更新,根服务 checked 状态不代替此回报或平台正式 upload/admission。
|
|
108
108
|
|
|
109
109
|
构建采用 Vite 8.0.10 和自动 JSX,支持捕获内的 JS/TS/JSON 静态图与 `.module.css`。CSS Modules 的类名按捕获版本和文件路径隔离,样式随实际组件挂载和卸载;默认脚手架的 `propsSchema`、命名 index 与 manifest 指定的组件导出会对齐 Player 原有入口。样式只支持本模块类选择器和纯布局、颜色表达式,不解析 CSS import、URL、composition、全局选择器或独立动画时钟;资源仍使用原公共资源 helper。React/ReactDOM/Remotion、zod 及 PromptFrame 公共 runtime 作为明确列出的共享 external,由消费端按兼容合同提供;不从作者 `node_modules` 偷读依赖。其它 npm/本机 alias、父目录源码、普通全局 CSS、`import.meta` 和非字面动态 import 尚不支持,返回确定诊断。锁文件捕获证明实际输入,不冒依赖安装或解析完整性;正式各模块独立包仍走原检查和上传。
|
|
110
110
|
|
|
@@ -237,3 +237,5 @@ promptframe resource clear .
|
|
|
237
237
|
平台素材使用同一选择命令的 `--asset-ref` 和原作品 `--session-id`,不得与 `--file` 同用。项目来自正常 `promptframe init` 写入的无凭据上下文。需要先沿正常 `promptframe login --endpoint <平台API> --with-assets` 授予 `asset.read`;旧组件上传凭据不会自动扩大权限。开发服务复用现有 CLI 凭据,逐次请求当前用户、项目与作品范围内的短时只读表示,核字节 SHA 后向浏览器提供本机地址。凭据、签名 URL 和私有文件路径不会发送给组件。断网、撤权、文件变化或选择过期时,预览明确提示不可用并标明正在展示包内示例;恢复条件后刷新。
|
|
238
238
|
|
|
239
239
|
市场预览的素材选择读取访问者当前作品中的就绪素材,不改变组件包或上传新素材。正式使用时将合法素材引用冻结在 Spec,渲染入口沿原授权、素材存储和预下载合同准备本地表示;签名 URL 不保存到 Spec。
|
|
240
|
+
|
|
241
|
+
工作区 dev 与 package 共用模块目录及子目录的 `.gitignore` 选择语义,不隐式读取工作区祖先的 ignore 规则;新增且未提交的合法源码仍会捕获。忽略的出图不读入快照或使已检查模块失效,必要入口、原始锁文件和 public 资源被误排时明确报错。dev 保留原始锁和工作区声明,正式源码包继续生成原锁证据;两者不是同一种字节格式。
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare class ComponentFileSelectionError extends Error {
|
|
2
|
+
readonly code: string;
|
|
3
|
+
readonly description: string;
|
|
4
|
+
constructor(code: string, description?: string);
|
|
5
|
+
}
|
|
6
|
+
/** Package and dev share module-local and nested ignore semantics. Ancestor
|
|
7
|
+
* workspace ignores are not implicitly imported into an individual module. */
|
|
8
|
+
export declare function selectComponentSourceFiles(root: string, requiredPaths: ReadonlySet<string>, options?: {
|
|
9
|
+
maximumFiles?: number;
|
|
10
|
+
maximumEntries?: number;
|
|
11
|
+
maximumDepth?: number;
|
|
12
|
+
rejectSpecialFiles?: boolean;
|
|
13
|
+
}): {
|
|
14
|
+
paths: string[];
|
|
15
|
+
ignoreInputs: Array<{
|
|
16
|
+
path: string;
|
|
17
|
+
sha256: string;
|
|
18
|
+
}>;
|
|
19
|
+
};
|
|
20
|
+
/** Deleted paths use the same rules without reopening the deleted source.
|
|
21
|
+
* Changes to active ignore controls still invalidate the selected snapshot. */
|
|
22
|
+
export declare function isComponentSourcePathIgnored(root: string, name: string): boolean;
|
|
23
|
+
//# sourceMappingURL=component-file-selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-file-selection.d.ts","sourceRoot":"","sources":["../src/component-file-selection.ts"],"names":[],"mappings":"AAOA,qBAAa,2BAA4B,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAE,QAAQ,CAAC,WAAW,EAAE,MAAM;gBAA1C,IAAI,EAAE,MAAM,EAAW,WAAW,GAAE,MAAa;CACvE;AA2CD;8EAC8E;AAC9E,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,GAAE;IACpG,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChG,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CA0BlF;AAED;+EAC+E;AAC/E,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAYhF"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { closeSync, constants, existsSync, fstatSync, lstatSync, openSync, readSync, readdirSync, realpathSync } from 'node:fs';
|
|
3
|
+
import { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
|
|
4
|
+
import ignore from 'ignore';
|
|
5
|
+
const excluded = new Set(['node_modules', 'dist', '.git', '.component-packages', '.promptframe']);
|
|
6
|
+
export class ComponentFileSelectionError extends Error {
|
|
7
|
+
code;
|
|
8
|
+
description;
|
|
9
|
+
constructor(code, description = code) {
|
|
10
|
+
super(code);
|
|
11
|
+
this.code = code;
|
|
12
|
+
this.description = description;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function readIgnore(root, directory) {
|
|
16
|
+
const file = join(directory, '.gitignore');
|
|
17
|
+
if (!existsSync(file))
|
|
18
|
+
return undefined;
|
|
19
|
+
const checkDirectory = () => {
|
|
20
|
+
const local = relative(realpathSync(root), realpathSync(directory));
|
|
21
|
+
if (local === '..' || local.startsWith('..' + sep) || isAbsolute(local))
|
|
22
|
+
throw new ComponentFileSelectionError('development.capture.outside_root');
|
|
23
|
+
for (let current = directory;; current = dirname(current)) {
|
|
24
|
+
const entry = lstatSync(current);
|
|
25
|
+
if (entry.isSymbolicLink() || !entry.isDirectory())
|
|
26
|
+
throw new ComponentFileSelectionError('development.capture.symlink');
|
|
27
|
+
if (current === root)
|
|
28
|
+
break;
|
|
29
|
+
if (current === dirname(current))
|
|
30
|
+
throw new ComponentFileSelectionError('development.capture.outside_root');
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
checkDirectory();
|
|
34
|
+
if (!lstatSync(file).isFile())
|
|
35
|
+
throw new ComponentFileSelectionError('package.gitignore.invalid', '.gitignore must be an ordinary package-local file.');
|
|
36
|
+
const descriptor = openSync(file, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0) | (constants.O_NONBLOCK ?? 0));
|
|
37
|
+
try {
|
|
38
|
+
const before = fstatSync(descriptor, { bigint: true });
|
|
39
|
+
if (!before.isFile() || before.size > 1024n * 1024n)
|
|
40
|
+
throw new ComponentFileSelectionError('package.gitignore.invalid');
|
|
41
|
+
const bytes = Buffer.alloc(Number(before.size) + 1);
|
|
42
|
+
let used = 0;
|
|
43
|
+
while (used < bytes.length) {
|
|
44
|
+
const count = readSync(descriptor, bytes, used, bytes.length - used, null);
|
|
45
|
+
if (!count)
|
|
46
|
+
break;
|
|
47
|
+
used += count;
|
|
48
|
+
}
|
|
49
|
+
const after = fstatSync(descriptor, { bigint: true }), current = lstatSync(file, { bigint: true });
|
|
50
|
+
checkDirectory();
|
|
51
|
+
if (used !== Number(before.size) || ['dev', 'ino', 'size', 'mtimeNs', 'ctimeNs'].some(key => {
|
|
52
|
+
const field = key;
|
|
53
|
+
return before[field] !== after[field] || after[field] !== current[field];
|
|
54
|
+
}))
|
|
55
|
+
throw new ComponentFileSelectionError('development.capture.changed_during_read');
|
|
56
|
+
return { rule: { root: directory, matcher: ignore({ ignorecase: false }).add(bytes.subarray(0, used).toString('utf8')) }, bytes: bytes.subarray(0, used) };
|
|
57
|
+
}
|
|
58
|
+
finally {
|
|
59
|
+
closeSync(descriptor);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function isIgnored(file, directory, rules) {
|
|
63
|
+
let ignored = false;
|
|
64
|
+
for (const rule of rules) {
|
|
65
|
+
const result = rule.matcher.test(relative(rule.root, file).replace(/\\/g, '/') + (directory ? '/' : ''));
|
|
66
|
+
if (result.ignored)
|
|
67
|
+
ignored = true;
|
|
68
|
+
else if (result.unignored)
|
|
69
|
+
ignored = false;
|
|
70
|
+
}
|
|
71
|
+
return ignored;
|
|
72
|
+
}
|
|
73
|
+
/** Package and dev share module-local and nested ignore semantics. Ancestor
|
|
74
|
+
* workspace ignores are not implicitly imported into an individual module. */
|
|
75
|
+
export function selectComponentSourceFiles(root, requiredPaths, options = {}) {
|
|
76
|
+
const paths = [], ignoreInputs = [];
|
|
77
|
+
let entries = 0;
|
|
78
|
+
const walk = (directory, inherited, depth) => {
|
|
79
|
+
if (depth > (options.maximumDepth ?? Infinity))
|
|
80
|
+
throw new ComponentFileSelectionError('development.capture.directory_limit');
|
|
81
|
+
const local = readIgnore(root, directory), rules = local ? [...inherited, local.rule] : inherited;
|
|
82
|
+
if (local)
|
|
83
|
+
ignoreInputs.push({ path: relative(root, join(directory, '.gitignore')).replace(/\\/g, '/'),
|
|
84
|
+
sha256: 'sha256:' + createHash('sha256').update(local.bytes).digest('hex') });
|
|
85
|
+
for (const entry of readdirSync(directory, { withFileTypes: true })) {
|
|
86
|
+
if (++entries > (options.maximumEntries ?? Infinity))
|
|
87
|
+
throw new ComponentFileSelectionError('development.capture.directory_limit');
|
|
88
|
+
if (excluded.has(entry.name))
|
|
89
|
+
continue;
|
|
90
|
+
const full = join(directory, entry.name), name = relative(root, full).replace(/\\/g, '/');
|
|
91
|
+
if (isIgnored(full, entry.isDirectory(), rules)) {
|
|
92
|
+
if ([...requiredPaths].some(path => path === name || entry.isDirectory() && path.startsWith(name + '/'))
|
|
93
|
+
|| name === 'public' || name.startsWith('public/'))
|
|
94
|
+
throw new ComponentFileSelectionError('package.required_file.ignored', `.gitignore excludes required component content: ${name}. Remove that rule or explicitly include the required source/resource.`);
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
if (entry.isDirectory())
|
|
98
|
+
walk(full, rules, depth + 1);
|
|
99
|
+
else if (entry.isFile())
|
|
100
|
+
paths.push(name);
|
|
101
|
+
else if (options.rejectSpecialFiles)
|
|
102
|
+
throw new ComponentFileSelectionError(entry.isSymbolicLink() ? 'development.capture.symlink' : 'development.capture.not_file');
|
|
103
|
+
if (paths.length > (options.maximumFiles ?? Infinity))
|
|
104
|
+
throw new ComponentFileSelectionError('development.contents.file_count');
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
walk(root, [], 0);
|
|
108
|
+
return { paths: paths.sort(), ignoreInputs };
|
|
109
|
+
}
|
|
110
|
+
/** Deleted paths use the same rules without reopening the deleted source.
|
|
111
|
+
* Changes to active ignore controls still invalidate the selected snapshot. */
|
|
112
|
+
export function isComponentSourcePathIgnored(root, name) {
|
|
113
|
+
if (!name || name.startsWith('/') || name.includes('\\') || name.split('/').some(part => !part || part === '.' || part === '..'))
|
|
114
|
+
return false;
|
|
115
|
+
const parts = name.split('/'), rules = [];
|
|
116
|
+
let directory = root;
|
|
117
|
+
for (let index = 0; index < parts.length; index++) {
|
|
118
|
+
if (excluded.has(parts[index]))
|
|
119
|
+
return true;
|
|
120
|
+
const local = readIgnore(root, directory);
|
|
121
|
+
if (local)
|
|
122
|
+
rules.push(local.rule);
|
|
123
|
+
const full = resolve(directory, parts[index]);
|
|
124
|
+
if (index === parts.length - 1 && parts[index] === '.gitignore')
|
|
125
|
+
return false;
|
|
126
|
+
if (isIgnored(full, index < parts.length - 1, rules))
|
|
127
|
+
return true;
|
|
128
|
+
directory = full;
|
|
129
|
+
}
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=component-file-selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-file-selection.js","sourceRoot":"","sources":["../src/component-file-selection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development-workspace.d.ts","sourceRoot":"","sources":["../src/development-workspace.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"development-workspace.d.ts","sourceRoot":"","sources":["../src/development-workspace.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAMjE,MAAM,WAAW,0BAA0B;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAExE;gFACgF;AAChF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,0BAA0B,GAAG,mBAAmB,CAkD9G;AAED;6EAC6E;AAC7E,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACvD,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IACnF,IAAI,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAC,MAAM,CAAC;IAAC,YAAY,CAAC,EAAC,OAAO,CAAC;IACvF,aAAa,CAAC,EAAC,MAAM,CAAC;IAAC,WAAW,CAAC,EAAC,MAAM,CAAC;CAC5C;;;;;;;;;;;gBAyMwC,MAAM;gBAAQ,OAAO;;;IAuB7D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { randomBytes, timingSafeEqual } from 'node:crypto';
|
|
2
|
-
import { existsSync, lstatSync,
|
|
1
|
+
import { createHash, randomBytes, timingSafeEqual } from 'node:crypto';
|
|
2
|
+
import { existsSync, lstatSync, realpathSync } from 'node:fs';
|
|
3
3
|
import { createServer as createHttpServer } from 'node:http';
|
|
4
4
|
import { dirname, join, posix, relative, resolve, sep } from 'node:path';
|
|
5
5
|
import { createServer as createViteServer } from 'vite';
|
|
@@ -7,7 +7,8 @@ import { buildDevelopmentContents } from './development-build.js';
|
|
|
7
7
|
import { DevelopmentModuleCoordinator } from './development-coordinator.js';
|
|
8
8
|
import { captureDevelopmentFiles } from './development-files.js';
|
|
9
9
|
import { DevelopmentContents } from './development-revisions.js';
|
|
10
|
-
|
|
10
|
+
import { PROMPTFRAME_PUBLIC_STANDARD_POLICY } from '@promptframe/contracts';
|
|
11
|
+
import { isComponentSourcePathIgnored, selectComponentSourceFiles } from './component-file-selection.js';
|
|
11
12
|
const limits = { maximumFiles: 2048, maximumBytes: 16 * 1024 * 1024 };
|
|
12
13
|
const lockfiles = ['package-lock.json', 'npm-shrinkwrap.json', 'pnpm-lock.yaml', 'yarn.lock', 'bun.lock', 'bun.lockb'];
|
|
13
14
|
/** One capture includes the module and its real shared pnpm lock bytes. Source
|
|
@@ -23,37 +24,20 @@ export function captureDevelopmentModule(root, module) {
|
|
|
23
24
|
if (lstatSync(path).isSymbolicLink())
|
|
24
25
|
throw new Error('development.capture.symlink');
|
|
25
26
|
}
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
throw new Error('development.capture.symlink');
|
|
41
|
-
if (entry.isDirectory())
|
|
42
|
-
walk(path, name + '/', depth + 1);
|
|
43
|
-
else if (entry.isFile()) {
|
|
44
|
-
names.push(name);
|
|
45
|
-
if (names.length > limits.maximumFiles)
|
|
46
|
-
throw new Error('development.contents.file_count');
|
|
47
|
-
}
|
|
48
|
-
else
|
|
49
|
-
throw new Error('development.capture.not_file');
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
finally {
|
|
53
|
-
handle.closeSync();
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
walk(directory, '', 0);
|
|
27
|
+
const manifestBytes = Buffer.from(captureDevelopmentFiles(directory, ['manifest.json'], limits).readFiles()[0].bytes);
|
|
28
|
+
const manifestInput = JSON.parse(manifestBytes.toString('utf8'));
|
|
29
|
+
const required = new Set(PROMPTFRAME_PUBLIC_STANDARD_POLICY.requiredFiles);
|
|
30
|
+
for (const value of [manifestInput.entry?.sourcePath, manifestInput.entry?.propsSchemaPath])
|
|
31
|
+
if (typeof value === 'string')
|
|
32
|
+
required.add(value);
|
|
33
|
+
for (const name of lockfiles)
|
|
34
|
+
if (existsSync(join(directory, name)))
|
|
35
|
+
required.add(name);
|
|
36
|
+
const selection = selectComponentSourceFiles(directory, required, { maximumFiles: limits.maximumFiles,
|
|
37
|
+
maximumEntries: 8192, maximumDepth: 32, rejectSpecialFiles: true });
|
|
38
|
+
// Ignore controls are raw source inputs even if an ignore rule excludes its
|
|
39
|
+
// own file. Their observed bytes must still match the captured selection.
|
|
40
|
+
const names = [...new Set([...selection.paths, ...selection.ignoreInputs.map(file => file.path)])];
|
|
57
41
|
const sharedLock = !lockfiles.some(name => names.includes(name))
|
|
58
42
|
&& existsSync(join(base, 'pnpm-workspace.yaml')) && existsSync(join(base, 'pnpm-lock.yaml'));
|
|
59
43
|
const prefix = module.path + '/';
|
|
@@ -62,6 +46,10 @@ export function captureDevelopmentModule(root, module) {
|
|
|
62
46
|
paths.push('pnpm-workspace.yaml', 'pnpm-lock.yaml');
|
|
63
47
|
paths.push('promptframe-workspace.json');
|
|
64
48
|
const captured = captureDevelopmentFiles(base, paths, limits);
|
|
49
|
+
const capturedFiles = new Map(captured.readFiles().map(file => [file.path, file.bytes]));
|
|
50
|
+
if (!manifestBytes.equals(Buffer.from(capturedFiles.get(prefix + 'manifest.json'))) || selection.ignoreInputs.some(file => 'sha256:' + createHash('sha256').update(capturedFiles.get(prefix + file.path)).digest('hex') !== file.sha256)) {
|
|
51
|
+
throw new Error('development.capture.changed_during_read');
|
|
52
|
+
}
|
|
65
53
|
const normalized = new DevelopmentContents(captured.readFiles().map(file => ({
|
|
66
54
|
path: file.path.startsWith(prefix) ? file.path.slice(prefix.length)
|
|
67
55
|
: file.path === 'promptframe-workspace.json' ? 'promptframe-workspace.captured.json' : file.path,
|
|
@@ -304,9 +292,25 @@ export async function startDevelopmentWorkspace(options) {
|
|
|
304
292
|
const changed = (_event, path) => {
|
|
305
293
|
const local = relative(root, resolve(path)).split(sep).join('/');
|
|
306
294
|
for (const [id, module] of modules) {
|
|
307
|
-
if (local === module.path || local
|
|
308
|
-
|| local === '
|
|
295
|
+
if (local === module.path || local === 'pnpm-lock.yaml' || local === 'package.json'
|
|
296
|
+
|| local === 'pnpm-workspace.yaml' || local === 'promptframe-workspace.json') {
|
|
309
297
|
enqueue(id);
|
|
298
|
+
continue;
|
|
299
|
+
}
|
|
300
|
+
if (!local.startsWith(module.path + '/'))
|
|
301
|
+
continue;
|
|
302
|
+
const name = local.slice(module.path.length + 1);
|
|
303
|
+
// Public resources and required/lock controls must produce an explicit
|
|
304
|
+
// failure when newly ignored. Ordinary ignored outputs do not invalidate
|
|
305
|
+
// an already checked module or enter the build queue.
|
|
306
|
+
if (!name.startsWith('public/') && name !== 'public' && !lockfiles.includes(name)) {
|
|
307
|
+
try {
|
|
308
|
+
if (isComponentSourcePathIgnored(resolve(root, module.path), name))
|
|
309
|
+
continue;
|
|
310
|
+
}
|
|
311
|
+
catch { /* A changed/invalid rule is recaptured and reported by the checker. */ }
|
|
312
|
+
}
|
|
313
|
+
enqueue(id);
|
|
310
314
|
}
|
|
311
315
|
};
|
|
312
316
|
vite.watcher.on('all', changed);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development-workspace.js","sourceRoot":"","sources":["../src/development-workspace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"development-workspace.js","sourceRoot":"","sources":["../src/development-workspace.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,10 @@ import { basename, dirname, extname, join, relative, resolve } from 'node:path';
|
|
|
8
8
|
import { inflateRawSync } from 'node:zlib';
|
|
9
9
|
import { cliBearerToken, readCliConfiguration } from './configuration.js';
|
|
10
10
|
import ignore from 'ignore';
|
|
11
|
-
import {
|
|
11
|
+
import { ComponentFileSelectionError, selectComponentSourceFiles } from './component-file-selection.js';
|
|
12
|
+
import { COMPONENT_MANIFEST_SCHEMA_VERSION, COMPONENT_PUBLIC_RESOURCES_CONTRACT_VERSION, COMPONENT_REF_VERSION, COMPONENT_STANDARD_SOURCE_HASH, COMPONENT_STANDARD_VERSION, PROMPTFRAME_AUTHORING_STANDARD_RELEASE, PROMPTFRAME_PUBLIC_RESOURCE_LIMITS, PROMPTFRAME_PUBLIC_RESOURCE_POLICY, PROMPTFRAME_PUBLIC_SECURITY_POLICY, PROMPTFRAME_PUBLIC_SECURITY_POLICY_DIGEST, PROMPTFRAME_PUBLIC_STANDARD_POLICY, PROMPTFRAME_LAYOUT_POLICY_RULE_IDS, PROMPTFRAME_CONTRACTS_VERSION, PROMPTFRAME_PUBLIC_DEPENDENCY_POLICY, detectPromptFrameUnknownCustomStyleProps, collectPromptFrameResourceReferences, authoringUploadTargetSchema, parseComponentManifest, selectComponentPreviewDurationFrames, } from '@promptframe/contracts';
|
|
13
|
+
import { evaluatePromptFrameLayoutPolicy } from '@promptframe/contracts/layout-evaluator';
|
|
14
|
+
import { evaluatePromptFrameDependencyPolicy } from '@promptframe/contracts/dependency-evaluator';
|
|
12
15
|
import { evaluatePromptFrameSecurityPolicySource, } from '@promptframe/contracts/security-evaluator';
|
|
13
16
|
import { evaluatePromptFrameSchemaSource, } from '@promptframe/contracts/schema-evaluator';
|
|
14
17
|
import { applyPackageChanges, buildFreshnessDecision, computePackageChanges, computePackageFreshnessDiagnostics, computeScaffoldFreshnessDiagnostics, resolveLocalPreviewScript, } from './lifecycle.js';
|
|
@@ -443,7 +446,7 @@ function preview(argv) {
|
|
|
443
446
|
const input = resolveComponentInput(argv);
|
|
444
447
|
const dir = input.dir;
|
|
445
448
|
const manifest = validateComponentDirectory(dir);
|
|
446
|
-
const previewEnvelope =
|
|
449
|
+
const previewEnvelope = playbackPreviewProps(dir, manifest);
|
|
447
450
|
const previewScript = resolveLocalPreviewScript(readPackageManifest(join(dir, 'package.json')));
|
|
448
451
|
const localPreviewReport = hasFlag(argv, '--write-local-report')
|
|
449
452
|
? writeLocalPreviewReport({
|
|
@@ -505,7 +508,7 @@ async function dev(argv) {
|
|
|
505
508
|
const manifest = validateComponentDirectory(dir);
|
|
506
509
|
assertAuthoringPackageFreshness(dir, target);
|
|
507
510
|
const freshness = await resolveSoftRemoteStandardFreshness(argv, target, 'dev');
|
|
508
|
-
const previewEnvelope =
|
|
511
|
+
const previewEnvelope = playbackPreviewProps(dir, manifest);
|
|
509
512
|
const publicResources = evaluateDirectoryPublicResources(dir);
|
|
510
513
|
assertPublicResourcesAccepted(publicResources);
|
|
511
514
|
const devPublicResources = writeDevPublicResourceArtifacts(dir, publicResources);
|
|
@@ -669,7 +672,10 @@ function packageComponent(argv) {
|
|
|
669
672
|
}
|
|
670
673
|
function validateComponentDirectory(dir, options = {}) {
|
|
671
674
|
assertRequiredFiles(dir, options);
|
|
672
|
-
|
|
675
|
+
const dependencyPolicy = evaluateDirectoryDependencyPolicy(dir);
|
|
676
|
+
const installErrors = dependencyPolicy.diagnostics.filter(row => row.severity === 'error' && row.code.startsWith('dependency.install.'));
|
|
677
|
+
if (installErrors.length)
|
|
678
|
+
assertDependencyPolicyAccepted({ ...dependencyPolicy, diagnostics: installErrors });
|
|
673
679
|
const manifestPath = join(dir, 'manifest.json');
|
|
674
680
|
const manifest = JSON.parse(readFileSync(manifestPath, 'utf8'));
|
|
675
681
|
const parsed = parseComponentManifest(normalizeLegacyManifest(manifest));
|
|
@@ -678,6 +684,7 @@ function validateComponentDirectory(dir, options = {}) {
|
|
|
678
684
|
validateSourceSafety(dir, options);
|
|
679
685
|
validateSecurityPolicy(dir, options);
|
|
680
686
|
checkImportBoundary(dir);
|
|
687
|
+
assertDependencyPolicyAccepted(dependencyPolicy);
|
|
681
688
|
return parsed;
|
|
682
689
|
}
|
|
683
690
|
function manifestSummary(manifest) {
|
|
@@ -718,9 +725,13 @@ function readScaffoldMetadata(dir) {
|
|
|
718
725
|
}
|
|
719
726
|
}
|
|
720
727
|
function evaluateDirectoryDependencyPolicy(dir) {
|
|
728
|
+
const manifest = parseComponentManifest(normalizeLegacyManifest(JSON.parse(readFileSync(join(dir, 'manifest.json'), 'utf8'))));
|
|
721
729
|
return evaluatePromptFrameDependencyPolicy({
|
|
722
730
|
packageJson: readPackageManifest(join(dir, 'package.json')),
|
|
723
731
|
lockfilePresent: hasPackageManagerLockfile(dir),
|
|
732
|
+
runtimeEntryPaths: [manifest.entry.sourcePath, manifest.entry.propsSchemaPath, 'src/index.ts'],
|
|
733
|
+
files: collectPackageFiles(dir).map(file => ({ path: file.name,
|
|
734
|
+
sourceText: /\.[cm]?[jt]sx?$/i.test(file.name) ? file.data.toString('utf8') : '' })),
|
|
724
735
|
});
|
|
725
736
|
}
|
|
726
737
|
function hasPackageManagerLockfile(dir) {
|
|
@@ -729,7 +740,7 @@ function hasPackageManagerLockfile(dir) {
|
|
|
729
740
|
function assertDependencyPolicyAccepted(receipt) {
|
|
730
741
|
if (receipt.status !== 'reject')
|
|
731
742
|
return;
|
|
732
|
-
const first = receipt.diagnostics[0];
|
|
743
|
+
const first = receipt.diagnostics.find(row => row.severity === 'error') ?? receipt.diagnostics[0];
|
|
733
744
|
fail(first?.message ?? 'PromptFrame dependency policy rejected this component package.', first?.code ?? 'dependency.policy.rejected');
|
|
734
745
|
}
|
|
735
746
|
function packageDirectory(componentDir, outArg) {
|
|
@@ -3376,7 +3387,8 @@ function validatePreviewProps(dir, manifest) {
|
|
|
3376
3387
|
function assertPreviewDurationMatchesManifest(preview, manifest) {
|
|
3377
3388
|
const durationFrames = Number(preview.durationFrames);
|
|
3378
3389
|
const { min, max } = manifest.designedDurationRange;
|
|
3379
|
-
|
|
3390
|
+
const cap = Number(preview.fps) * 30;
|
|
3391
|
+
if (durationFrames >= Math.min(min, cap) && durationFrames <= Math.min(max, cap))
|
|
3380
3392
|
return;
|
|
3381
3393
|
fail(`src/preview-props.json durationFrames (${durationFrames}) must be within manifest.designedDurationRange (${min}-${max}).`, 'component_standard.preview.duration_frames.designed_range');
|
|
3382
3394
|
}
|
|
@@ -3388,6 +3400,12 @@ function readPreviewProps(dir) {
|
|
|
3388
3400
|
}
|
|
3389
3401
|
return preview;
|
|
3390
3402
|
}
|
|
3403
|
+
function playbackPreviewProps(dir, manifest) {
|
|
3404
|
+
const preview = readPreviewProps(dir);
|
|
3405
|
+
return { ...preview, durationFrames: selectComponentPreviewDurationFrames({
|
|
3406
|
+
fps: Number(preview.fps), durationFrames: Number(preview.durationFrames), designedDurationRange: manifest.designedDurationRange,
|
|
3407
|
+
}) };
|
|
3408
|
+
}
|
|
3391
3409
|
function assertPreviewPropsMatchStaticSchema(manifest, preview, schemaFacts) {
|
|
3392
3410
|
const previewProps = asRecord(preview.props) ?? {};
|
|
3393
3411
|
const previewPropNames = Object.keys(previewProps);
|
|
@@ -3796,6 +3814,7 @@ import { StrictMode } from 'react';
|
|
|
3796
3814
|
import { createRoot } from 'react-dom/client';
|
|
3797
3815
|
import Component from './Component';
|
|
3798
3816
|
import previewEnvelope from './preview-props.json';
|
|
3817
|
+
import manifest from '../manifest.json';
|
|
3799
3818
|
import { promptFrameDevPublicResources } from './promptframe-dev-public-resources.generated';
|
|
3800
3819
|
import { propsSchema, type ComponentProps } from './schema';
|
|
3801
3820
|
|
|
@@ -3826,6 +3845,7 @@ createRoot(root).render(
|
|
|
3826
3845
|
<StrictMode>
|
|
3827
3846
|
<PromptFramePreviewApp<ComponentProps>
|
|
3828
3847
|
previewEnvelope={{ ...preview, props: propsSchema.parse(preview.props ?? {}) }}
|
|
3848
|
+
designedDurationRange={manifest.designedDurationRange}
|
|
3829
3849
|
initialProps={initialProps}
|
|
3830
3850
|
propsSchema={propsSchema}
|
|
3831
3851
|
publicResources={promptFrameDevPublicResources}
|
|
@@ -4036,51 +4056,18 @@ function collectPackageFiles(root) {
|
|
|
4036
4056
|
manifest.entry.sourcePath,
|
|
4037
4057
|
manifest.entry.propsSchemaPath,
|
|
4038
4058
|
]);
|
|
4039
|
-
|
|
4040
|
-
const
|
|
4041
|
-
|
|
4042
|
-
if (existsSync(ignorePath)) {
|
|
4043
|
-
if (!lstatSync(ignorePath).isFile()) {
|
|
4044
|
-
fail('.gitignore must be an ordinary file inside the component directory.', 'package.gitignore.invalid');
|
|
4045
|
-
}
|
|
4046
|
-
rules.push({ root: dir, matcher: ignore({ ignorecase: false }).add(readFileSync(ignorePath, 'utf8')) });
|
|
4047
|
-
}
|
|
4048
|
-
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
4049
|
-
if (['node_modules', 'dist', '.git', '.component-packages', '.promptframe'].includes(entry.name))
|
|
4050
|
-
continue;
|
|
4051
|
-
const full = join(dir, entry.name);
|
|
4052
|
-
const name = relative(root, full).replace(/\\/g, '/');
|
|
4053
|
-
let ignored = false;
|
|
4054
|
-
for (const rule of rules) {
|
|
4055
|
-
const result = rule.matcher.test(`${relative(rule.root, full).replace(/\\/g, '/')}${entry.isDirectory() ? '/' : ''}`);
|
|
4056
|
-
if (result.ignored)
|
|
4057
|
-
ignored = true;
|
|
4058
|
-
else if (result.unignored)
|
|
4059
|
-
ignored = false;
|
|
4060
|
-
}
|
|
4061
|
-
if (ignored) {
|
|
4062
|
-
const containsRequiredPath = [...requiredPaths].some((requiredPath) => requiredPath === name || (entry.isDirectory() && requiredPath.startsWith(`${name}/`)));
|
|
4063
|
-
if (containsRequiredPath || name === 'public' || name.startsWith('public/')) {
|
|
4064
|
-
fail(`.gitignore excludes required component content: ${name}. Remove that rule or explicitly include the required source/resource.`, 'package.required_file.ignored');
|
|
4065
|
-
}
|
|
4059
|
+
try {
|
|
4060
|
+
for (const name of selectComponentSourceFiles(root, requiredPaths).paths) {
|
|
4061
|
+
if (basename(name) === LOCKFILE_EVIDENCE_FILE_NAME || isPackageManagerLockfile(basename(name)))
|
|
4066
4062
|
continue;
|
|
4067
|
-
}
|
|
4068
|
-
if (entry.isDirectory()) {
|
|
4069
|
-
walk(full, rules);
|
|
4070
|
-
}
|
|
4071
|
-
else if (entry.isFile()) {
|
|
4072
|
-
if (entry.name === LOCKFILE_EVIDENCE_FILE_NAME)
|
|
4073
|
-
continue;
|
|
4074
|
-
if (isPackageManagerLockfile(entry.name))
|
|
4075
|
-
continue;
|
|
4076
|
-
files.push({
|
|
4077
|
-
name,
|
|
4078
|
-
data: readFileSync(full),
|
|
4079
|
-
});
|
|
4080
|
-
}
|
|
4063
|
+
files.push({ name, data: readFileSync(join(root, name)) });
|
|
4081
4064
|
}
|
|
4082
4065
|
}
|
|
4083
|
-
|
|
4066
|
+
catch (error) {
|
|
4067
|
+
if (error instanceof ComponentFileSelectionError)
|
|
4068
|
+
fail(error.description, error.code);
|
|
4069
|
+
throw error;
|
|
4070
|
+
}
|
|
4084
4071
|
const evidence = buildLockfileEvidenceFile(root);
|
|
4085
4072
|
if (evidence)
|
|
4086
4073
|
files.push(evidence);
|