@runfile-ai/schemas 0.1.0

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.
Files changed (41) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +163 -0
  3. package/dist/canonical.d.ts +32 -0
  4. package/dist/canonical.d.ts.map +1 -0
  5. package/dist/canonical.js +46 -0
  6. package/dist/canonical.js.map +1 -0
  7. package/dist/control-mapping.d.ts +85 -0
  8. package/dist/control-mapping.d.ts.map +1 -0
  9. package/dist/control-mapping.js +31 -0
  10. package/dist/control-mapping.js.map +1 -0
  11. package/dist/event.d.ts +866 -0
  12. package/dist/event.d.ts.map +1 -0
  13. package/dist/event.js +289 -0
  14. package/dist/event.js.map +1 -0
  15. package/dist/evidence.d.ts +955 -0
  16. package/dist/evidence.d.ts.map +1 -0
  17. package/dist/evidence.js +31 -0
  18. package/dist/evidence.js.map +1 -0
  19. package/dist/index.d.ts +8 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +8 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/ingest.d.ts +1595 -0
  24. package/dist/ingest.d.ts.map +1 -0
  25. package/dist/ingest.js +177 -0
  26. package/dist/ingest.js.map +1 -0
  27. package/dist/manifest.d.ts +110 -0
  28. package/dist/manifest.d.ts.map +1 -0
  29. package/dist/manifest.js +46 -0
  30. package/dist/manifest.js.map +1 -0
  31. package/dist/vault.d.ts +459 -0
  32. package/dist/vault.d.ts.map +1 -0
  33. package/dist/vault.js +188 -0
  34. package/dist/vault.js.map +1 -0
  35. package/generated/json-schema/control_mapping.json +107 -0
  36. package/generated/json-schema/event.json +600 -0
  37. package/generated/json-schema/evidence.json +721 -0
  38. package/generated/json-schema/ingest.json +800 -0
  39. package/generated/json-schema/manifest.json +148 -0
  40. package/generated/json-schema/vault.json +468 -0
  41. package/package.json +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"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"}
package/dist/event.js ADDED
@@ -0,0 +1,289 @@
1
+ import { z } from 'zod';
2
+ const sha256Hex = z.string().regex(/^sha256:[a-f0-9]{64}$/, 'sha256:<64 lowercase hex>');
3
+ const ulid = z.string().regex(/^[0-9A-HJKMNP-TV-Z]{26}$/, 'Crockford base32 ULID');
4
+ const semver = z.string().regex(/^\d+\.\d+\.\d+$/, 'semver MAJOR.MINOR.PATCH');
5
+ const semverWithPre = z.string().regex(/^\d+\.\d+\.\d+(-[a-z0-9.-]+)?$/);
6
+ export const ActorSchema = z
7
+ .object({
8
+ type: z.enum(['agent', 'human', 'tool', 'system']),
9
+ agent_identity: z
10
+ .string()
11
+ .regex(/^did:[a-z][a-z0-9]*:[A-Za-z0-9._:-]+$/)
12
+ .optional()
13
+ .describe('DID-format identifier of the agent. Required when type=agent.'),
14
+ human_principal: z
15
+ .string()
16
+ .regex(/^tok_[A-Za-z0-9]{16,64}$/)
17
+ .optional()
18
+ .describe('Vault token identifying the human principal.'),
19
+ delegation_chain: z.array(z.string()).max(16).default([]),
20
+ tool_id: z
21
+ .string()
22
+ .regex(/^tool:[a-z0-9_.-]+:[a-z0-9_.-]+$/)
23
+ .optional(),
24
+ tool_version_hash: sha256Hex.optional(),
25
+ })
26
+ .strict()
27
+ .superRefine((data, ctx) => {
28
+ if (data.type === 'agent' && !data.agent_identity) {
29
+ ctx.addIssue({
30
+ code: z.ZodIssueCode.custom,
31
+ message: 'agent_identity is required when actor.type=agent',
32
+ path: ['agent_identity'],
33
+ });
34
+ }
35
+ if (data.type === 'tool') {
36
+ if (!data.tool_id) {
37
+ ctx.addIssue({
38
+ code: z.ZodIssueCode.custom,
39
+ message: 'tool_id is required when actor.type=tool',
40
+ path: ['tool_id'],
41
+ });
42
+ }
43
+ if (!data.tool_version_hash) {
44
+ ctx.addIssue({
45
+ code: z.ZodIssueCode.custom,
46
+ message: 'tool_version_hash is required when actor.type=tool',
47
+ path: ['tool_version_hash'],
48
+ });
49
+ }
50
+ }
51
+ });
52
+ export const ActionKindEnum = z.enum([
53
+ 'agent_run_start',
54
+ 'agent_run_end',
55
+ 'graph_node_enter',
56
+ 'graph_node_exit',
57
+ 'llm_call',
58
+ 'tool_call',
59
+ 'tool_result',
60
+ 'state_read',
61
+ 'state_write',
62
+ 'decision',
63
+ 'handoff',
64
+ 'human_approval',
65
+ 'human_input',
66
+ 'policy_check',
67
+ 'anomaly_flag',
68
+ 'sdk_diagnostic',
69
+ ]);
70
+ export const ActionOutcomeEnum = z.enum(['success', 'failure', 'partial', 'timeout', 'cancelled']);
71
+ export const ActionSchema = z
72
+ .object({
73
+ kind: ActionKindEnum,
74
+ name: z.string().max(256),
75
+ outcome: ActionOutcomeEnum.optional(),
76
+ duration_ms: z.number().int().nonnegative().optional(),
77
+ })
78
+ .strict();
79
+ export const DataClassificationEnum = z.enum([
80
+ 'public',
81
+ 'internal',
82
+ 'confidential',
83
+ 'pii',
84
+ 'phi',
85
+ 'pci',
86
+ 'fci',
87
+ ]);
88
+ export const SubjectSchema = z
89
+ .object({
90
+ resource_urn: z
91
+ .string()
92
+ .regex(/^urn:[a-z0-9][a-z0-9-]{0,31}:.+$/)
93
+ .max(512)
94
+ .optional(),
95
+ data_classification: DataClassificationEnum.optional(),
96
+ regulatory_tags: z.array(z.string().regex(/^[a-z0-9_]+$/)).max(32).optional(),
97
+ })
98
+ .strict();
99
+ export const ModelProviderEnum = z.enum([
100
+ 'anthropic',
101
+ 'openai',
102
+ 'google',
103
+ 'aws_bedrock',
104
+ 'azure_openai',
105
+ 'ollama',
106
+ 'self_hosted',
107
+ 'other',
108
+ ]);
109
+ export const ModelRefSchema = z
110
+ .object({
111
+ provider: ModelProviderEnum,
112
+ model_id: z.string().max(128),
113
+ model_version_hash: sha256Hex.optional(),
114
+ system_prompt_hash: sha256Hex.optional(),
115
+ tools_hash: sha256Hex.optional(),
116
+ input_tokens: z.number().int().nonnegative().optional(),
117
+ output_tokens: z.number().int().nonnegative().optional(),
118
+ temperature: z.number().min(0).max(2).optional(),
119
+ })
120
+ .strict();
121
+ export const DecisionOutcomeEnum = z.enum([
122
+ 'approved',
123
+ 'denied',
124
+ 'escalated',
125
+ 'deferred',
126
+ 'no_action',
127
+ 'custom',
128
+ ]);
129
+ export const DecisionSchema = z
130
+ .object({
131
+ outcome: DecisionOutcomeEnum,
132
+ outcome_label: z.string().max(64).optional(),
133
+ confidence: z.number().min(0).max(1).optional(),
134
+ human_in_the_loop: z.boolean().optional(),
135
+ policy_thresholds_crossed: z.array(z.string().max(64)).max(16).optional(),
136
+ reversed_by_event: ulid.optional(),
137
+ })
138
+ .strict();
139
+ export const ContentTypeEnum = z.enum([
140
+ 'application/json',
141
+ 'text/plain',
142
+ 'application/vnd.runfile.llm-request+json',
143
+ 'application/vnd.runfile.llm-response+json',
144
+ 'application/vnd.runfile.tool-call+json',
145
+ 'application/vnd.runfile.tool-result+json',
146
+ 'application/vnd.runfile.state-snapshot+json',
147
+ ]);
148
+ export const RedactionAppliedSchema = z
149
+ .object({
150
+ redacted_classes: z.array(z.string()).max(32).optional(),
151
+ tokenized_classes: z.array(z.string()).max(32).optional(),
152
+ classifier_version: semver.optional(),
153
+ })
154
+ .strict();
155
+ export const PayloadEncryptionSchema = z
156
+ .object({
157
+ algorithm: z.literal('aes-256-gcm'),
158
+ data_key_wrapped: z.string().max(4096),
159
+ kms_key_arn: z
160
+ .string()
161
+ .regex(/^arn:aws:kms:[a-z0-9-]+:[0-9]+:key\/[a-f0-9-]+$/)
162
+ .optional(),
163
+ })
164
+ .strict();
165
+ export const PayloadRefSchema = z
166
+ .object({
167
+ s3_uri: z
168
+ .string()
169
+ .regex(/^s3:\/\/[a-z0-9.-]{3,63}\/.+$/)
170
+ .max(1024),
171
+ sha256: sha256Hex,
172
+ size_bytes: z.number().int().min(0).max(67_108_864),
173
+ encryption: PayloadEncryptionSchema,
174
+ content_type: ContentTypeEnum.optional(),
175
+ redaction_applied: RedactionAppliedSchema.optional(),
176
+ })
177
+ .strict();
178
+ export const AnomalyCodeEnum = z.enum([
179
+ 'missing_ambient_context',
180
+ 'chain_break',
181
+ 'out_of_order_arrival',
182
+ 'model_version_drift',
183
+ 'unknown_agent_identity',
184
+ 'data_classification_mismatch',
185
+ 'policy_threshold_without_hitl',
186
+ 'unauthorized_tool_invocation',
187
+ 'redaction_policy_mismatch',
188
+ 'schema_version_warning',
189
+ ]);
190
+ export const AnomalySeverityEnum = z.enum(['info', 'warning', 'error', 'critical']);
191
+ export const AnomalyFlagSchema = z
192
+ .object({
193
+ code: AnomalyCodeEnum,
194
+ severity: AnomalySeverityEnum,
195
+ detail: z.string().max(1024).optional(),
196
+ })
197
+ .strict();
198
+ export const WallClockSourceEnum = z.enum(['aws_time_sync', 'ntp', 'host_system', 'unknown']);
199
+ export const SdkNameEnum = z.enum(['runfile-py', '@runfile/sdk']);
200
+ export const SdkFrameworkEnum = z.enum([
201
+ 'langgraph',
202
+ 'langgraph_js',
203
+ 'openai_agents',
204
+ 'openai_agents_js',
205
+ 'anthropic_claude',
206
+ 'anthropic_claude_js',
207
+ 'mastra',
208
+ 'vercel_ai_sdk',
209
+ 'mcp_client',
210
+ 'otel_generic',
211
+ 'manual',
212
+ ]);
213
+ export const SdkMetadataSchema = z
214
+ .object({
215
+ name: SdkNameEnum,
216
+ version: semverWithPre,
217
+ framework: SdkFrameworkEnum,
218
+ framework_version: semverWithPre.optional(),
219
+ host: z.string().max(256).optional(),
220
+ })
221
+ .strict();
222
+ export const EnvironmentEnum = z.enum(['production', 'staging', 'development']);
223
+ export const LabelsSchema = z
224
+ .record(z.string().regex(/^[a-z][a-z0-9_]{0,31}$/), z.string().max(128))
225
+ .refine((labels) => Object.keys(labels).length <= 16, {
226
+ message: 'labels: maximum 16 keys',
227
+ });
228
+ export const MerkleInclusionSchema = z
229
+ .object({
230
+ manifest_uri: z.string().regex(/^s3:\/\/[a-z0-9.-]{3,63}\/.+$/),
231
+ leaf_index: z.number().int().nonnegative(),
232
+ merkle_root: sha256Hex,
233
+ })
234
+ .strict();
235
+ /**
236
+ * RunfileEvent — the canonical event shape every service in the system reads, writes, or
237
+ * reasons about. Hash-chained within `agent_run_id` and committed to a daily Merkle root.
238
+ *
239
+ * Conditional-required fields (enforced via superRefine below):
240
+ * - kind=llm_call → model_ref required
241
+ * - kind=decision → decision required
242
+ * - actor.type=agent → actor.agent_identity required (also enforced inside ActorSchema)
243
+ * - actor.type=tool → actor.tool_id + actor.tool_version_hash required (also enforced inside ActorSchema)
244
+ */
245
+ export const RunfileEventSchema = z
246
+ .object({
247
+ schema_version: semver,
248
+ event_id: ulid,
249
+ tenant_id: z.string().regex(/^tnt_[0-9a-z]{12}$/),
250
+ agent_run_id: z.string().regex(/^run_[0-9A-HJKMNP-TV-Z]{26}$/),
251
+ parent_event_id: ulid.nullable(),
252
+ captured_at: z.string().datetime(),
253
+ received_at: z.string().datetime(),
254
+ wall_clock_source: WallClockSourceEnum,
255
+ sdk: SdkMetadataSchema,
256
+ actor: ActorSchema,
257
+ action: ActionSchema,
258
+ subject: SubjectSchema,
259
+ model_ref: ModelRefSchema.optional(),
260
+ decision: DecisionSchema.optional(),
261
+ payload_ref: PayloadRefSchema.optional(),
262
+ redaction_policy_version: semver,
263
+ regulatory_scope_version: semver.optional(),
264
+ anomaly_flags: z.array(AnomalyFlagSchema).max(32).optional(),
265
+ environment: EnvironmentEnum.optional(),
266
+ labels: LabelsSchema.optional(),
267
+ prev_hash: sha256Hex,
268
+ event_hash: sha256Hex,
269
+ merkle_inclusion: MerkleInclusionSchema.optional(),
270
+ })
271
+ .strict()
272
+ .superRefine((data, ctx) => {
273
+ if (data.action.kind === 'llm_call' && !data.model_ref) {
274
+ ctx.addIssue({
275
+ code: z.ZodIssueCode.custom,
276
+ message: 'model_ref is required when action.kind=llm_call',
277
+ path: ['model_ref'],
278
+ });
279
+ }
280
+ if (data.action.kind === 'decision' && !data.decision) {
281
+ ctx.addIssue({
282
+ code: z.ZodIssueCode.custom,
283
+ message: 'decision is required when action.kind=decision',
284
+ path: ['decision'],
285
+ });
286
+ }
287
+ });
288
+ export const ZERO_PREV_HASH = `sha256:${'0'.repeat(64)}`;
289
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"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"}