@promptframe/contracts 0.1.1 → 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
@@ -1,5 +1,5 @@
1
1
  # @promptframe/contracts
2
2
 
3
- Public contracts for PromptFrame component manifests, component references, diagnostics and layout capability cards.
3
+ Public contracts for PromptFrame component manifests, component references, diagnostics, layout capability cards, and public authoring policy metadata.
4
4
 
5
- This package is intentionally small and safe to consume from authoring tools, templates and platform integration code.
5
+ This package is intentionally small and safe to consume from authoring tools, templates, and platform integration code. It exports the public standard/security policy IDs used by `@promptframe/cli` so automation can rely on stable diagnostics without reading platform-internal docs.
package/dist/index.d.ts CHANGED
@@ -2,9 +2,192 @@ import { z } from 'zod';
2
2
  export declare const PROMPTFRAME_CONTRACTS_VERSION: "promptframe-contracts.v0.1.0";
3
3
  export declare const COMPONENT_MANIFEST_SCHEMA_VERSION: "component-manifest.v0.1.0";
4
4
  export declare const COMPONENT_STANDARD_VERSION: "component-standard.v0.1.0";
5
+ export declare const COMPONENT_STANDARD_SOURCE_HASH: "sha256:8c1e01c36155b4b646981064d24df9bd8cda501fd9cd9da93e5b62f40db22d52";
5
6
  export declare const COMPONENT_REF_VERSION: "component-ref.v0.1.0";
6
7
  export declare const LAYOUT_CAPABILITY_VERSION: "layout-capability.v0.1.0";
7
8
  export declare const CAPABILITY_CARD_VERSION: "component-capability-card.v0.1.0";
9
+ export declare const COMPONENT_STANDARD_POLICY_VERSION: "component-standard-policy.v0.1.0";
10
+ export declare const COMPONENT_SECURITY_POLICY_VERSION: "component-security-policy.v0.1.0";
11
+ export declare const PROMPTFRAME_PUBLIC_STANDARD_POLICY: {
12
+ readonly policyVersion: "component-standard-policy.v0.1.0";
13
+ readonly sourceVersion: "component-standard.v0.1.0";
14
+ readonly sourceHash: "sha256:8c1e01c36155b4b646981064d24df9bd8cda501fd9cd9da93e5b62f40db22d52";
15
+ readonly manifestSchemaVersion: "component-manifest.v0.1.0";
16
+ readonly requiredFiles: readonly ["manifest.json", "package.json", "src/Component.tsx", "src/schema.ts", "src/index.ts", "src/preview-props.json"];
17
+ readonly ignoredPackageDirectories: readonly ["node_modules", "dist", ".git", ".component-packages", ".promptframe"];
18
+ readonly previewLimits: {
19
+ readonly maxDurationFrames: 180;
20
+ readonly maxWidth: 1280;
21
+ readonly maxHeight: 720;
22
+ readonly allowedFps: readonly [30];
23
+ };
24
+ readonly sourceSafetyRules: readonly [{
25
+ readonly id: "component_standard.source.no_math_random";
26
+ readonly stage: "build";
27
+ readonly severity: "error";
28
+ readonly pattern: "Math\\.random\\s*\\(";
29
+ readonly message: "Math.random() is not allowed in PromptFrame components; use Remotion random(seed).";
30
+ readonly repairHint: "Derive random-looking values from props, frame, or a stable seed.";
31
+ }, {
32
+ readonly id: "component_standard.source.no_date_now";
33
+ readonly stage: "build";
34
+ readonly severity: "error";
35
+ readonly pattern: "Date\\.now\\s*\\(";
36
+ readonly message: "Date.now() is not allowed because renders must be deterministic.";
37
+ readonly repairHint: "Use useCurrentFrame(), useVideoConfig(), and props-derived timing.";
38
+ }, {
39
+ readonly id: "component_standard.source.no_native_img";
40
+ readonly stage: "build";
41
+ readonly severity: "error";
42
+ readonly pattern: "<img\\b";
43
+ readonly message: "Native <img> is not allowed; use Remotion <Img>.";
44
+ readonly repairHint: "Import Img from remotion and replace native img tags.";
45
+ }, {
46
+ readonly id: "component_standard.source.no_native_video";
47
+ readonly stage: "build";
48
+ readonly severity: "error";
49
+ readonly pattern: "<video\\b";
50
+ readonly message: "Native <video> is not allowed; use Remotion <Video>.";
51
+ readonly repairHint: "Import Video from remotion and replace native video tags.";
52
+ }, {
53
+ readonly id: "component_standard.source.no_css_transition";
54
+ readonly stage: "build";
55
+ readonly severity: "error";
56
+ readonly pattern: "transition\\s*:";
57
+ readonly message: "CSS transition is not allowed; animation must be frame-driven.";
58
+ readonly repairHint: "Use interpolate(), spring(), or frame-derived styles.";
59
+ }, {
60
+ readonly id: "component_standard.source.no_css_keyframes";
61
+ readonly stage: "build";
62
+ readonly severity: "error";
63
+ readonly pattern: "@keyframes";
64
+ readonly message: "CSS keyframes are not allowed; animation must be frame-driven.";
65
+ readonly repairHint: "Replace keyframes with Remotion frame-driven animation.";
66
+ }];
67
+ };
68
+ export declare const PROMPTFRAME_PUBLIC_SECURITY_POLICY: {
69
+ readonly policyVersion: "component-security-policy.v0.1.0";
70
+ readonly forbiddenApis: readonly [{
71
+ readonly id: "code.eval";
72
+ readonly label: "Dynamic code execution";
73
+ readonly patterns: readonly ["\\beval\\s*\\("];
74
+ readonly action: "reject";
75
+ readonly category: "dynamic_code_execution";
76
+ readonly severity: "high";
77
+ readonly reason: "Third-party components cannot execute string code.";
78
+ readonly recommendation: "Remove eval and use deterministic props/frame-driven logic.";
79
+ }, {
80
+ readonly id: "code.new_function";
81
+ readonly label: "new Function dynamic execution";
82
+ readonly patterns: readonly ["\\bnew\\s+Function\\s*\\("];
83
+ readonly action: "reject";
84
+ readonly category: "dynamic_code_execution";
85
+ readonly severity: "high";
86
+ readonly reason: "Third-party components cannot build and run arbitrary code strings.";
87
+ readonly recommendation: "Remove new Function.";
88
+ }, {
89
+ readonly id: "code.string_timer";
90
+ readonly label: "String timer execution";
91
+ readonly patterns: readonly ["\\bset(?:Timeout|Interval)\\s*\\(\\s*['\"`]"];
92
+ readonly action: "reject";
93
+ readonly category: "dynamic_code_execution";
94
+ readonly severity: "high";
95
+ readonly reason: "String timers are equivalent to dynamic code execution.";
96
+ readonly recommendation: "Do not pass strings to setTimeout or setInterval.";
97
+ }, {
98
+ readonly id: "host.fs_process_env";
99
+ readonly label: "Host filesystem, process, or env access";
100
+ readonly patterns: readonly ["\\b(node:fs|fs\\/promises|child_process|process\\.env|Bun\\.|Deno\\.)\\b"];
101
+ readonly action: "reject";
102
+ readonly category: "filesystem_process_env_access";
103
+ readonly severity: "critical";
104
+ readonly reason: "Components must not read host files, spawn processes, or access environment variables.";
105
+ readonly recommendation: "Use only platform-provided props and trusted artifacts.";
106
+ }];
107
+ readonly mediatedApis: readonly [{
108
+ readonly id: "network.raw_fetch";
109
+ readonly label: "Raw network access";
110
+ readonly rawApis: readonly ["fetch", "XMLHttpRequest", "WebSocket", "EventSource", "navigator.sendBeacon"];
111
+ readonly defaultAction: "manual_review";
112
+ readonly category: "network_exfiltration";
113
+ readonly severity: "high";
114
+ readonly reason: "Marketplace components must not self-network; assets should be injected by the platform.";
115
+ readonly recommendation: "Remove raw network access or use an audited platform wrapper with an allowlist.";
116
+ }, {
117
+ readonly id: "network.runtime_fetch_json_unconfigured";
118
+ readonly label: "Unconfigured platform JSON network access";
119
+ readonly rawApis: readonly ["componentRuntime.fetchJson"];
120
+ readonly defaultAction: "manual_review";
121
+ readonly category: "network_exfiltration";
122
+ readonly severity: "high";
123
+ readonly reason: "Platform-mediated network calls still require an explicit allowlist.";
124
+ readonly recommendation: "Configure an allowlist or remove the network dependency.";
125
+ }];
126
+ readonly warningApis: readonly [{
127
+ readonly id: "dom.dangerous_html";
128
+ readonly label: "Dangerous HTML injection";
129
+ readonly patterns: readonly ["dangerouslySetInnerHTML|\\.innerHTML\\s*="];
130
+ readonly action: "manual_review";
131
+ readonly category: "dangerous_html_injection";
132
+ readonly severity: "high";
133
+ readonly reason: "HTML injection can bypass component rendering boundaries.";
134
+ readonly recommendation: "Render React nodes or sanitized text structures.";
135
+ }, {
136
+ readonly id: "package.install_script";
137
+ readonly label: "Install script signal";
138
+ readonly patterns: readonly ["postinstall|preinstall|prepare"];
139
+ readonly action: "manual_review";
140
+ readonly category: "dependency_supply_chain";
141
+ readonly severity: "medium";
142
+ readonly reason: "Third-party component packages should not rely on install scripts.";
143
+ readonly recommendation: "Remove install scripts before upload.";
144
+ }, {
145
+ readonly id: "resource.exhaustion_pattern";
146
+ readonly label: "Resource exhaustion signal";
147
+ readonly patterns: readonly ["while\\s*\\(\\s*true\\s*\\)|for\\s*\\(\\s*;\\s*;\\s*\\)|new\\s+Array\\s*\\(\\s*1\\d{6,}"];
148
+ readonly action: "warn";
149
+ readonly category: "resource_exhaustion";
150
+ readonly severity: "medium";
151
+ readonly reason: "Infinite loops or very large arrays can break preview or render.";
152
+ readonly recommendation: "Bound loops, arrays, canvas operations, and particles.";
153
+ }, {
154
+ readonly id: "tenant.identity_string";
155
+ readonly label: "Tenant or artifact identity signal";
156
+ readonly patterns: readonly ["tenantId|objectKey|sourceArchiveRef|artifactVersion"];
157
+ readonly action: "warn";
158
+ readonly category: "tenant_boundary_bypass";
159
+ readonly severity: "low";
160
+ readonly reason: "Ordinary components should not assemble platform tenant or artifact identifiers.";
161
+ readonly recommendation: "Remove platform identity wiring and use platform-provided props.";
162
+ }, {
163
+ readonly id: "prompt.injection_string";
164
+ readonly label: "Prompt-injection-like string";
165
+ readonly patterns: readonly ["ignore\\s+previous\\s+instructions|rank\\s+this\\s+component\\s+first|忽略.{0,12}规则|自动放行|排名第一"];
166
+ readonly action: "manual_review";
167
+ readonly category: "prompt_injection_string";
168
+ readonly severity: "medium";
169
+ readonly reason: "Source comments and strings cannot ask the platform to change rules, ranking, or admission.";
170
+ readonly recommendation: "Remove prompt-injection-like strings.";
171
+ }, {
172
+ readonly id: "storage.browser_storage";
173
+ readonly label: "Browser storage access";
174
+ readonly patterns: readonly ["document\\.cookie|localStorage|sessionStorage"];
175
+ readonly action: "warn";
176
+ readonly category: "unsafe_browser_storage";
177
+ readonly severity: "medium";
178
+ readonly reason: "Marketplace components must not read user browser storage.";
179
+ readonly recommendation: "Use platform-provided props for state.";
180
+ }, {
181
+ readonly id: "network.remote_url";
182
+ readonly label: "Hardcoded remote URL";
183
+ readonly patterns: readonly ["https?:\\/\\/"];
184
+ readonly action: "warn";
185
+ readonly category: "remote_url";
186
+ readonly severity: "medium";
187
+ readonly reason: "Remote assets must go through platform asset management and authorization.";
188
+ readonly recommendation: "Do not hardcode remote URLs in component source.";
189
+ }];
190
+ };
8
191
  export declare const sha256Schema: z.ZodString;
9
192
  export declare const nonEmptyStringSchema: z.ZodString;
10
193
  export declare const semverSchema: z.ZodString;
@@ -54,14 +237,14 @@ export declare const componentDiagnosticSchema: z.ZodObject<{
54
237
  }, "strip", z.ZodTypeAny, {
55
238
  code: string;
56
239
  message: string;
57
- severity: "info" | "warning" | "error";
58
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
240
+ severity: "error" | "info" | "warning";
241
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
59
242
  repairHint?: string | undefined;
60
243
  }, {
61
244
  code: string;
62
245
  message: string;
63
- severity: "info" | "warning" | "error";
64
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
246
+ severity: "error" | "info" | "warning";
247
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
65
248
  repairHint?: string | undefined;
66
249
  }>;
67
250
  export type ComponentDiagnostic = z.infer<typeof componentDiagnosticSchema>;
@@ -99,14 +282,14 @@ export declare const layoutCapabilitySchema: z.ZodObject<{
99
282
  }, "strip", z.ZodTypeAny, {
100
283
  code: string;
101
284
  message: string;
102
- severity: "info" | "warning" | "error";
103
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
285
+ severity: "error" | "info" | "warning";
286
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
104
287
  repairHint?: string | undefined;
105
288
  }, {
106
289
  code: string;
107
290
  message: string;
108
- severity: "info" | "warning" | "error";
109
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
291
+ severity: "error" | "info" | "warning";
292
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
110
293
  repairHint?: string | undefined;
111
294
  }>, "many">>;
112
295
  }, "strip", z.ZodTypeAny, {
@@ -124,8 +307,8 @@ export declare const layoutCapabilitySchema: z.ZodObject<{
124
307
  diagnostics: {
125
308
  code: string;
126
309
  message: string;
127
- severity: "info" | "warning" | "error";
128
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
310
+ severity: "error" | "info" | "warning";
311
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
129
312
  repairHint?: string | undefined;
130
313
  }[];
131
314
  lastVerifiedAt?: string | undefined;
@@ -145,8 +328,8 @@ export declare const layoutCapabilitySchema: z.ZodObject<{
145
328
  diagnostics?: {
146
329
  code: string;
147
330
  message: string;
148
- severity: "info" | "warning" | "error";
149
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
331
+ severity: "error" | "info" | "warning";
332
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
150
333
  repairHint?: string | undefined;
151
334
  }[] | undefined;
152
335
  }>;
@@ -251,14 +434,14 @@ export declare const componentManifestSchema: z.ZodEffects<z.ZodObject<{
251
434
  }, "strip", z.ZodTypeAny, {
252
435
  code: string;
253
436
  message: string;
254
- severity: "info" | "warning" | "error";
255
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
437
+ severity: "error" | "info" | "warning";
438
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
256
439
  repairHint?: string | undefined;
257
440
  }, {
258
441
  code: string;
259
442
  message: string;
260
- severity: "info" | "warning" | "error";
261
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
443
+ severity: "error" | "info" | "warning";
444
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
262
445
  repairHint?: string | undefined;
263
446
  }>, "many">>>;
264
447
  }, "strip", z.ZodTypeAny, {
@@ -277,8 +460,8 @@ export declare const componentManifestSchema: z.ZodEffects<z.ZodObject<{
277
460
  diagnostics?: {
278
461
  code: string;
279
462
  message: string;
280
- severity: "info" | "warning" | "error";
281
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
463
+ severity: "error" | "info" | "warning";
464
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
282
465
  repairHint?: string | undefined;
283
466
  }[] | undefined;
284
467
  }, {
@@ -297,8 +480,8 @@ export declare const componentManifestSchema: z.ZodEffects<z.ZodObject<{
297
480
  diagnostics?: {
298
481
  code: string;
299
482
  message: string;
300
- severity: "info" | "warning" | "error";
301
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
483
+ severity: "error" | "info" | "warning";
484
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
302
485
  repairHint?: string | undefined;
303
486
  }[] | undefined;
304
487
  }>>;
@@ -378,8 +561,8 @@ export declare const componentManifestSchema: z.ZodEffects<z.ZodObject<{
378
561
  diagnostics?: {
379
562
  code: string;
380
563
  message: string;
381
- severity: "info" | "warning" | "error";
382
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
564
+ severity: "error" | "info" | "warning";
565
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
383
566
  repairHint?: string | undefined;
384
567
  }[] | undefined;
385
568
  } | undefined;
@@ -432,8 +615,8 @@ export declare const componentManifestSchema: z.ZodEffects<z.ZodObject<{
432
615
  diagnostics?: {
433
616
  code: string;
434
617
  message: string;
435
- severity: "info" | "warning" | "error";
436
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
618
+ severity: "error" | "info" | "warning";
619
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
437
620
  repairHint?: string | undefined;
438
621
  }[] | undefined;
439
622
  } | undefined;
@@ -494,8 +677,8 @@ export declare const componentManifestSchema: z.ZodEffects<z.ZodObject<{
494
677
  diagnostics?: {
495
678
  code: string;
496
679
  message: string;
497
- severity: "info" | "warning" | "error";
498
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
680
+ severity: "error" | "info" | "warning";
681
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
499
682
  repairHint?: string | undefined;
500
683
  }[] | undefined;
501
684
  } | undefined;
@@ -548,8 +731,8 @@ export declare const componentManifestSchema: z.ZodEffects<z.ZodObject<{
548
731
  diagnostics?: {
549
732
  code: string;
550
733
  message: string;
551
- severity: "info" | "warning" | "error";
552
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
734
+ severity: "error" | "info" | "warning";
735
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
553
736
  repairHint?: string | undefined;
554
737
  }[] | undefined;
555
738
  } | undefined;
@@ -623,14 +806,14 @@ export declare const componentCapabilityCardSchema: z.ZodObject<{
623
806
  }, "strip", z.ZodTypeAny, {
624
807
  code: string;
625
808
  message: string;
626
- severity: "info" | "warning" | "error";
627
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
809
+ severity: "error" | "info" | "warning";
810
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
628
811
  repairHint?: string | undefined;
629
812
  }, {
630
813
  code: string;
631
814
  message: string;
632
- severity: "info" | "warning" | "error";
633
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
815
+ severity: "error" | "info" | "warning";
816
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
634
817
  repairHint?: string | undefined;
635
818
  }>, "many">>;
636
819
  }, "strip", z.ZodTypeAny, {
@@ -648,8 +831,8 @@ export declare const componentCapabilityCardSchema: z.ZodObject<{
648
831
  diagnostics: {
649
832
  code: string;
650
833
  message: string;
651
- severity: "info" | "warning" | "error";
652
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
834
+ severity: "error" | "info" | "warning";
835
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
653
836
  repairHint?: string | undefined;
654
837
  }[];
655
838
  lastVerifiedAt?: string | undefined;
@@ -669,8 +852,8 @@ export declare const componentCapabilityCardSchema: z.ZodObject<{
669
852
  diagnostics?: {
670
853
  code: string;
671
854
  message: string;
672
- severity: "info" | "warning" | "error";
673
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
855
+ severity: "error" | "info" | "warning";
856
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
674
857
  repairHint?: string | undefined;
675
858
  }[] | undefined;
676
859
  }>;
@@ -684,14 +867,14 @@ export declare const componentCapabilityCardSchema: z.ZodObject<{
684
867
  }, "strip", z.ZodTypeAny, {
685
868
  code: string;
686
869
  message: string;
687
- severity: "info" | "warning" | "error";
688
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
870
+ severity: "error" | "info" | "warning";
871
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
689
872
  repairHint?: string | undefined;
690
873
  }, {
691
874
  code: string;
692
875
  message: string;
693
- severity: "info" | "warning" | "error";
694
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
876
+ severity: "error" | "info" | "warning";
877
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
695
878
  repairHint?: string | undefined;
696
879
  }>, "many">>;
697
880
  }, "strip", z.ZodTypeAny, {
@@ -699,8 +882,8 @@ export declare const componentCapabilityCardSchema: z.ZodObject<{
699
882
  diagnostics: {
700
883
  code: string;
701
884
  message: string;
702
- severity: "info" | "warning" | "error";
703
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
885
+ severity: "error" | "info" | "warning";
886
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
704
887
  repairHint?: string | undefined;
705
888
  }[];
706
889
  displayName: string;
@@ -730,8 +913,8 @@ export declare const componentCapabilityCardSchema: z.ZodObject<{
730
913
  diagnostics: {
731
914
  code: string;
732
915
  message: string;
733
- severity: "info" | "warning" | "error";
734
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
916
+ severity: "error" | "info" | "warning";
917
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
735
918
  repairHint?: string | undefined;
736
919
  }[];
737
920
  lastVerifiedAt?: string | undefined;
@@ -766,8 +949,8 @@ export declare const componentCapabilityCardSchema: z.ZodObject<{
766
949
  diagnostics?: {
767
950
  code: string;
768
951
  message: string;
769
- severity: "info" | "warning" | "error";
770
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
952
+ severity: "error" | "info" | "warning";
953
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
771
954
  repairHint?: string | undefined;
772
955
  }[] | undefined;
773
956
  };
@@ -775,8 +958,8 @@ export declare const componentCapabilityCardSchema: z.ZodObject<{
775
958
  diagnostics?: {
776
959
  code: string;
777
960
  message: string;
778
- severity: "info" | "warning" | "error";
779
- stage: "authoring" | "doctor" | "validate" | "package" | "upload" | "build" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
961
+ severity: "error" | "info" | "warning";
962
+ stage: "build" | "authoring" | "doctor" | "validate" | "package" | "upload" | "manifest" | "schema" | "policy" | "preview" | "probe" | "publish";
780
963
  repairHint?: string | undefined;
781
964
  }[] | undefined;
782
965
  policyRuleIds?: ("manifest.identity.version" | "manifest.component_type.supported" | "schema.props.explicit" | "runtime.deterministic.remotion" | "runtime.no_global_scripts" | "security.forbidden.browser_apis" | "security.no_raw_remote_url_import" | "layout.root_fills_parent" | "layout.no_fixed_root_canvas" | "package.no_parent_imports" | "package.no_path_traversal" | "evidence.schema_source_hash_present")[] | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,6BAA6B,EAAG,8BAAuC,CAAC;AACrF,eAAO,MAAM,iCAAiC,EAAG,2BAAoC,CAAC;AACtF,eAAO,MAAM,0BAA0B,EAAG,2BAAoC,CAAC;AAC/E,eAAO,MAAM,qBAAqB,EAAG,sBAA+B,CAAC;AACrE,eAAO,MAAM,yBAAyB,EAAG,0BAAmC,CAAC;AAC7E,eAAO,MAAM,uBAAuB,EAAG,kCAA2C,CAAC;AAEnF,eAAO,MAAM,YAAY,aAA4C,CAAC;AACtE,eAAO,MAAM,oBAAoB,aAA2B,CAAC;AAC7D,eAAO,MAAM,YAAY,aAA+E,CAAC;AACzG,eAAO,MAAM,iBAAiB,aAA0E,CAAC;AACzG,eAAO,MAAM,mBAAmB,aAAgD,CAAC;AACjF,eAAO,MAAM,kBAAkB,aAAuC,CAAC;AAEvE,eAAO,MAAM,8BAA8B,mFAKzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,8BAA8B,0EAMzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,iCAAiC,6GAU5C,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F,eAAO,MAAM,yBAAyB,wEAMpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EAQ7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;EAmBpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,wBAAwB,2YAanC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,sBAAsB,uEAAqE,CAAC;AACzG,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,wBAAwB,4FAOnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,6BAA6B;;;;;;;;;EAGxC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;EAOvC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8ChC,CAAC;AACL,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAExE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAE9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,6BAA6B,EAAG,8BAAuC,CAAC;AACrF,eAAO,MAAM,iCAAiC,EAAG,2BAAoC,CAAC;AACtF,eAAO,MAAM,0BAA0B,EAAG,2BAAoC,CAAC;AAC/E,eAAO,MAAM,8BAA8B,EAAG,yEAAkF,CAAC;AACjI,eAAO,MAAM,qBAAqB,EAAG,sBAA+B,CAAC;AACrE,eAAO,MAAM,yBAAyB,EAAG,0BAAmC,CAAC;AAC7E,eAAO,MAAM,uBAAuB,EAAG,kCAA2C,CAAC;AACnF,eAAO,MAAM,iCAAiC,EAAG,kCAA2C,CAAC;AAC7F,eAAO,MAAM,iCAAiC,EAAG,kCAA2C,CAAC;AAE7F,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4ErC,CAAC;AAEX,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0IrC,CAAC;AAEX,eAAO,MAAM,YAAY,aAA4C,CAAC;AACtE,eAAO,MAAM,oBAAoB,aAA2B,CAAC;AAC7D,eAAO,MAAM,YAAY,aAA+E,CAAC;AACzG,eAAO,MAAM,iBAAiB,aAA0E,CAAC;AACzG,eAAO,MAAM,mBAAmB,aAAgD,CAAC;AACjF,eAAO,MAAM,kBAAkB,aAAuC,CAAC;AAEvE,eAAO,MAAM,8BAA8B,mFAKzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,8BAA8B,0EAMzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,iCAAiC,6GAU5C,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F,eAAO,MAAM,yBAAyB,wEAMpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EAQ7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;EAmBpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,wBAAwB,2YAanC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,sBAAsB,uEAAqE,CAAC;AACzG,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,wBAAwB,4FAOnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,6BAA6B;;;;;;;;;EAGxC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;EAOvC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8ChC,CAAC;AACL,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAExE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAE9D"}
package/dist/index.js CHANGED
@@ -2,9 +2,228 @@ import { z } from 'zod';
2
2
  export const PROMPTFRAME_CONTRACTS_VERSION = 'promptframe-contracts.v0.1.0';
3
3
  export const COMPONENT_MANIFEST_SCHEMA_VERSION = 'component-manifest.v0.1.0';
4
4
  export const COMPONENT_STANDARD_VERSION = 'component-standard.v0.1.0';
5
+ export const COMPONENT_STANDARD_SOURCE_HASH = 'sha256:8c1e01c36155b4b646981064d24df9bd8cda501fd9cd9da93e5b62f40db22d52';
5
6
  export const COMPONENT_REF_VERSION = 'component-ref.v0.1.0';
6
7
  export const LAYOUT_CAPABILITY_VERSION = 'layout-capability.v0.1.0';
7
8
  export const CAPABILITY_CARD_VERSION = 'component-capability-card.v0.1.0';
9
+ export const COMPONENT_STANDARD_POLICY_VERSION = 'component-standard-policy.v0.1.0';
10
+ export const COMPONENT_SECURITY_POLICY_VERSION = 'component-security-policy.v0.1.0';
11
+ export const PROMPTFRAME_PUBLIC_STANDARD_POLICY = {
12
+ policyVersion: COMPONENT_STANDARD_POLICY_VERSION,
13
+ sourceVersion: COMPONENT_STANDARD_VERSION,
14
+ sourceHash: COMPONENT_STANDARD_SOURCE_HASH,
15
+ manifestSchemaVersion: COMPONENT_MANIFEST_SCHEMA_VERSION,
16
+ requiredFiles: [
17
+ 'manifest.json',
18
+ 'package.json',
19
+ 'src/Component.tsx',
20
+ 'src/schema.ts',
21
+ 'src/index.ts',
22
+ 'src/preview-props.json',
23
+ ],
24
+ ignoredPackageDirectories: [
25
+ 'node_modules',
26
+ 'dist',
27
+ '.git',
28
+ '.component-packages',
29
+ '.promptframe',
30
+ ],
31
+ previewLimits: {
32
+ maxDurationFrames: 180,
33
+ maxWidth: 1280,
34
+ maxHeight: 720,
35
+ allowedFps: [30],
36
+ },
37
+ sourceSafetyRules: [
38
+ {
39
+ id: 'component_standard.source.no_math_random',
40
+ stage: 'build',
41
+ severity: 'error',
42
+ pattern: 'Math\\.random\\s*\\(',
43
+ message: 'Math.random() is not allowed in PromptFrame components; use Remotion random(seed).',
44
+ repairHint: 'Derive random-looking values from props, frame, or a stable seed.',
45
+ },
46
+ {
47
+ id: 'component_standard.source.no_date_now',
48
+ stage: 'build',
49
+ severity: 'error',
50
+ pattern: 'Date\\.now\\s*\\(',
51
+ message: 'Date.now() is not allowed because renders must be deterministic.',
52
+ repairHint: 'Use useCurrentFrame(), useVideoConfig(), and props-derived timing.',
53
+ },
54
+ {
55
+ id: 'component_standard.source.no_native_img',
56
+ stage: 'build',
57
+ severity: 'error',
58
+ pattern: '<img\\b',
59
+ message: 'Native <img> is not allowed; use Remotion <Img>.',
60
+ repairHint: 'Import Img from remotion and replace native img tags.',
61
+ },
62
+ {
63
+ id: 'component_standard.source.no_native_video',
64
+ stage: 'build',
65
+ severity: 'error',
66
+ pattern: '<video\\b',
67
+ message: 'Native <video> is not allowed; use Remotion <Video>.',
68
+ repairHint: 'Import Video from remotion and replace native video tags.',
69
+ },
70
+ {
71
+ id: 'component_standard.source.no_css_transition',
72
+ stage: 'build',
73
+ severity: 'error',
74
+ pattern: 'transition\\s*:',
75
+ message: 'CSS transition is not allowed; animation must be frame-driven.',
76
+ repairHint: 'Use interpolate(), spring(), or frame-derived styles.',
77
+ },
78
+ {
79
+ id: 'component_standard.source.no_css_keyframes',
80
+ stage: 'build',
81
+ severity: 'error',
82
+ pattern: '@keyframes',
83
+ message: 'CSS keyframes are not allowed; animation must be frame-driven.',
84
+ repairHint: 'Replace keyframes with Remotion frame-driven animation.',
85
+ },
86
+ ],
87
+ };
88
+ export const PROMPTFRAME_PUBLIC_SECURITY_POLICY = {
89
+ policyVersion: COMPONENT_SECURITY_POLICY_VERSION,
90
+ forbiddenApis: [
91
+ {
92
+ id: 'code.eval',
93
+ label: 'Dynamic code execution',
94
+ patterns: ['\\beval\\s*\\('],
95
+ action: 'reject',
96
+ category: 'dynamic_code_execution',
97
+ severity: 'high',
98
+ reason: 'Third-party components cannot execute string code.',
99
+ recommendation: 'Remove eval and use deterministic props/frame-driven logic.',
100
+ },
101
+ {
102
+ id: 'code.new_function',
103
+ label: 'new Function dynamic execution',
104
+ patterns: ['\\bnew\\s+Function\\s*\\('],
105
+ action: 'reject',
106
+ category: 'dynamic_code_execution',
107
+ severity: 'high',
108
+ reason: 'Third-party components cannot build and run arbitrary code strings.',
109
+ recommendation: 'Remove new Function.',
110
+ },
111
+ {
112
+ id: 'code.string_timer',
113
+ label: 'String timer execution',
114
+ patterns: ['\\bset(?:Timeout|Interval)\\s*\\(\\s*[\'"`]'],
115
+ action: 'reject',
116
+ category: 'dynamic_code_execution',
117
+ severity: 'high',
118
+ reason: 'String timers are equivalent to dynamic code execution.',
119
+ recommendation: 'Do not pass strings to setTimeout or setInterval.',
120
+ },
121
+ {
122
+ id: 'host.fs_process_env',
123
+ label: 'Host filesystem, process, or env access',
124
+ patterns: ['\\b(node:fs|fs\\/promises|child_process|process\\.env|Bun\\.|Deno\\.)\\b'],
125
+ action: 'reject',
126
+ category: 'filesystem_process_env_access',
127
+ severity: 'critical',
128
+ reason: 'Components must not read host files, spawn processes, or access environment variables.',
129
+ recommendation: 'Use only platform-provided props and trusted artifacts.',
130
+ },
131
+ ],
132
+ mediatedApis: [
133
+ {
134
+ id: 'network.raw_fetch',
135
+ label: 'Raw network access',
136
+ rawApis: ['fetch', 'XMLHttpRequest', 'WebSocket', 'EventSource', 'navigator.sendBeacon'],
137
+ defaultAction: 'manual_review',
138
+ category: 'network_exfiltration',
139
+ severity: 'high',
140
+ reason: 'Marketplace components must not self-network; assets should be injected by the platform.',
141
+ recommendation: 'Remove raw network access or use an audited platform wrapper with an allowlist.',
142
+ },
143
+ {
144
+ id: 'network.runtime_fetch_json_unconfigured',
145
+ label: 'Unconfigured platform JSON network access',
146
+ rawApis: ['componentRuntime.fetchJson'],
147
+ defaultAction: 'manual_review',
148
+ category: 'network_exfiltration',
149
+ severity: 'high',
150
+ reason: 'Platform-mediated network calls still require an explicit allowlist.',
151
+ recommendation: 'Configure an allowlist or remove the network dependency.',
152
+ },
153
+ ],
154
+ warningApis: [
155
+ {
156
+ id: 'dom.dangerous_html',
157
+ label: 'Dangerous HTML injection',
158
+ patterns: ['dangerouslySetInnerHTML|\\.innerHTML\\s*='],
159
+ action: 'manual_review',
160
+ category: 'dangerous_html_injection',
161
+ severity: 'high',
162
+ reason: 'HTML injection can bypass component rendering boundaries.',
163
+ recommendation: 'Render React nodes or sanitized text structures.',
164
+ },
165
+ {
166
+ id: 'package.install_script',
167
+ label: 'Install script signal',
168
+ patterns: ['postinstall|preinstall|prepare'],
169
+ action: 'manual_review',
170
+ category: 'dependency_supply_chain',
171
+ severity: 'medium',
172
+ reason: 'Third-party component packages should not rely on install scripts.',
173
+ recommendation: 'Remove install scripts before upload.',
174
+ },
175
+ {
176
+ id: 'resource.exhaustion_pattern',
177
+ label: 'Resource exhaustion signal',
178
+ patterns: ['while\\s*\\(\\s*true\\s*\\)|for\\s*\\(\\s*;\\s*;\\s*\\)|new\\s+Array\\s*\\(\\s*1\\d{6,}'],
179
+ action: 'warn',
180
+ category: 'resource_exhaustion',
181
+ severity: 'medium',
182
+ reason: 'Infinite loops or very large arrays can break preview or render.',
183
+ recommendation: 'Bound loops, arrays, canvas operations, and particles.',
184
+ },
185
+ {
186
+ id: 'tenant.identity_string',
187
+ label: 'Tenant or artifact identity signal',
188
+ patterns: ['tenantId|objectKey|sourceArchiveRef|artifactVersion'],
189
+ action: 'warn',
190
+ category: 'tenant_boundary_bypass',
191
+ severity: 'low',
192
+ reason: 'Ordinary components should not assemble platform tenant or artifact identifiers.',
193
+ recommendation: 'Remove platform identity wiring and use platform-provided props.',
194
+ },
195
+ {
196
+ id: 'prompt.injection_string',
197
+ label: 'Prompt-injection-like string',
198
+ patterns: ['ignore\\s+previous\\s+instructions|rank\\s+this\\s+component\\s+first|忽略.{0,12}规则|自动放行|排名第一'],
199
+ action: 'manual_review',
200
+ category: 'prompt_injection_string',
201
+ severity: 'medium',
202
+ reason: 'Source comments and strings cannot ask the platform to change rules, ranking, or admission.',
203
+ recommendation: 'Remove prompt-injection-like strings.',
204
+ },
205
+ {
206
+ id: 'storage.browser_storage',
207
+ label: 'Browser storage access',
208
+ patterns: ['document\\.cookie|localStorage|sessionStorage'],
209
+ action: 'warn',
210
+ category: 'unsafe_browser_storage',
211
+ severity: 'medium',
212
+ reason: 'Marketplace components must not read user browser storage.',
213
+ recommendation: 'Use platform-provided props for state.',
214
+ },
215
+ {
216
+ id: 'network.remote_url',
217
+ label: 'Hardcoded remote URL',
218
+ patterns: ['https?:\\/\\/'],
219
+ action: 'warn',
220
+ category: 'remote_url',
221
+ severity: 'medium',
222
+ reason: 'Remote assets must go through platform asset management and authorization.',
223
+ recommendation: 'Do not hardcode remote URLs in component source.',
224
+ },
225
+ ],
226
+ };
8
227
  export const sha256Schema = z.string().regex(/^sha256:[a-f0-9]{64}$/);
9
228
  export const nonEmptyStringSchema = z.string().trim().min(1);
10
229
  export const semverSchema = z.string().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/);
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/contracts",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -36,7 +36,8 @@
36
36
  "scripts": {
37
37
  "build": "tsc",
38
38
  "lint": "tsc --noEmit",
39
- "test": "node -e \"console.log('placeholder test: @promptframe/contracts')\"",
39
+ "test": "pnpm build && node --test test/*.test.mjs",
40
+ "pack:dry-run": "pnpm build && npm pack --dry-run --json",
40
41
  "clean": "rm -rf dist"
41
42
  },
42
43
  "dependencies": {