babel-validate 0.2.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.
@@ -0,0 +1,407 @@
1
+ "use strict";
2
+ // ═══════════════════════════════════════════════
3
+ // BABEL VALIDATOR — Grammar Rules Engine
4
+ // Spec: Babel v0.2 (Feb 16, 2026)
5
+ // Source: Notion — "Babel — Agent-to-Agent Language Protocol"
6
+ // 5 MUST rules (hard errors — envelope rejected)
7
+ // 6 SHOULD rules (warnings — envelope passes)
8
+ // ═══════════════════════════════════════════════
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.validate = validate;
11
+ exports.validateChain = validateChain;
12
+ // --- MUST Rules (hard errors) ---
13
+ /**
14
+ * M1: intent == SPECULATE → max(confidence[].score) < 0.7
15
+ * "You cannot speculate with high confidence. Pick one."
16
+ */
17
+ function checkM1(envelope) {
18
+ if (envelope.intent !== 'SPECULATE')
19
+ return [];
20
+ const maxScore = Math.max(...envelope.confidence.map((c) => c.score));
21
+ if (maxScore >= 0.7) {
22
+ return [
23
+ {
24
+ rule: 'M1',
25
+ severity: 'MUST',
26
+ message: `Intent is SPECULATE but max confidence score is ${maxScore} (>= 0.7). You cannot speculate with high confidence.`,
27
+ details: { field: 'confidence', value: maxScore, threshold: 0.7 },
28
+ },
29
+ ];
30
+ }
31
+ return [];
32
+ }
33
+ /**
34
+ * M2: intent == REQUEST_ACTION → min(confidence[].score) > 0.3 OR grounds.length > 0
35
+ * "Don't ask someone to act on unfounded claims unless org context justifies it."
36
+ */
37
+ function checkM2(envelope) {
38
+ if (envelope.intent !== 'REQUEST_ACTION')
39
+ return [];
40
+ const minScore = Math.min(...envelope.confidence.map((c) => c.score));
41
+ const hasGrounds = envelope.grounds && envelope.grounds.length > 0;
42
+ if (minScore <= 0.3 && !hasGrounds) {
43
+ return [
44
+ {
45
+ rule: 'M2',
46
+ severity: 'MUST',
47
+ message: `REQUEST_ACTION with min confidence ${minScore} (<= 0.3) and no grounds. Don't ask someone to act on unfounded claims unless org context justifies it.`,
48
+ details: { field: 'confidence', value: minScore, threshold: 0.3 },
49
+ },
50
+ ];
51
+ }
52
+ return [];
53
+ }
54
+ /**
55
+ * M3: grounds[].authority == REGULATORY → override == false
56
+ * "Regulatory constraints are never overridable."
57
+ */
58
+ function checkM3(envelope) {
59
+ if (!envelope.grounds)
60
+ return [];
61
+ const violations = [];
62
+ for (const g of envelope.grounds) {
63
+ if (g.authority === 'REGULATORY' && g.override === true) {
64
+ violations.push({
65
+ rule: 'M3',
66
+ severity: 'MUST',
67
+ message: `Regulatory constraint "${truncate(g.constraint)}" cannot have override=true. Regulatory constraints are never overridable.`,
68
+ details: { field: 'grounds', value: g },
69
+ });
70
+ }
71
+ }
72
+ return violations;
73
+ }
74
+ /**
75
+ * M4: confidence[].basis == UNKNOWN → score <= 0.5
76
+ * "If you don't know why you're confident, you can't be very confident."
77
+ */
78
+ function checkM4(envelope) {
79
+ const violations = [];
80
+ for (const c of envelope.confidence) {
81
+ if ((!c.basis || c.basis === 'UNKNOWN') && c.score > 0.5) {
82
+ violations.push({
83
+ rule: 'M4',
84
+ severity: 'MUST',
85
+ message: `Assertion "${truncate(c.assertion)}" has basis ${c.basis || 'undefined'} with score ${c.score} > 0.5. If you don't know why you're confident, you can't be very confident.`,
86
+ details: { field: 'confidence', value: c, threshold: 0.5 },
87
+ });
88
+ }
89
+ }
90
+ return violations;
91
+ }
92
+ /**
93
+ * M5: chain_id present → seq == previous_envelope.seq + 1
94
+ * "Chain sequencing must be monotonic. No gaps, no duplicates."
95
+ * Single-envelope: seq >= 0. Cross-envelope: see validateChain().
96
+ */
97
+ function checkM5(envelope) {
98
+ if (envelope.meta.seq < 0) {
99
+ return [
100
+ {
101
+ rule: 'M5',
102
+ severity: 'MUST',
103
+ message: `Chain sequence ${envelope.meta.seq} is negative. Sequence numbers must be >= 0.`,
104
+ details: { field: 'meta.seq', value: envelope.meta.seq },
105
+ },
106
+ ];
107
+ }
108
+ return [];
109
+ }
110
+ // --- SHOULD Rules (warnings) ---
111
+ /**
112
+ * S1: intent == ESCALATE AND register == CUSTOMER_EXTERNAL → WARN
113
+ * "Escalation language directed at customers."
114
+ */
115
+ function checkS1(envelope) {
116
+ if (envelope.intent === 'ESCALATE' && envelope.register === 'CUSTOMER_EXTERNAL') {
117
+ return [
118
+ {
119
+ rule: 'S1',
120
+ severity: 'SHOULD',
121
+ message: `ESCALATE intent with CUSTOMER_EXTERNAL register. Escalation language directed at customers requires explicit override or register change.`,
122
+ details: { field: 'register', value: envelope.register },
123
+ },
124
+ ];
125
+ }
126
+ return [];
127
+ }
128
+ /**
129
+ * S2: affect.certainty > 0.5 AND max(confidence[].score) < 0.4 → WARN
130
+ * "Sender feels certain but evidence is weak."
131
+ */
132
+ function checkS2(envelope) {
133
+ if (!envelope.affect)
134
+ return [];
135
+ const maxScore = Math.max(...envelope.confidence.map((c) => c.score));
136
+ if (envelope.affect.certainty > 0.5 && maxScore < 0.4) {
137
+ return [
138
+ {
139
+ rule: 'S2',
140
+ severity: 'SHOULD',
141
+ message: `Affect certainty is ${envelope.affect.certainty} but max confidence score is only ${maxScore}. Sender feels certain but evidence is weak.`,
142
+ details: { field: 'affect.certainty', value: envelope.affect.certainty },
143
+ },
144
+ ];
145
+ }
146
+ return [];
147
+ }
148
+ /**
149
+ * S3: intent == INFORM AND any(confidence[].score < 0.5) → WARN
150
+ * "Informing with low-confidence assertions — consider FLAG_RISK."
151
+ */
152
+ function checkS3(envelope) {
153
+ if (envelope.intent !== 'INFORM')
154
+ return [];
155
+ const lowConf = envelope.confidence.filter((c) => c.score < 0.5);
156
+ if (lowConf.length > 0) {
157
+ return [
158
+ {
159
+ rule: 'S3',
160
+ severity: 'SHOULD',
161
+ message: `INFORM intent with ${lowConf.length} low-confidence assertion(s) (score < 0.5). Consider FLAG_RISK intent instead.`,
162
+ details: {
163
+ field: 'confidence',
164
+ value: lowConf.map((c) => ({ assertion: truncate(c.assertion), score: c.score })),
165
+ },
166
+ },
167
+ ];
168
+ }
169
+ return [];
170
+ }
171
+ /**
172
+ * S4: trajectory.direction == DEGRADING AND intent == INFORM → WARN
173
+ * "Degrading pattern reported as neutral inform — consider ESCALATE."
174
+ */
175
+ function checkS4(envelope) {
176
+ if (!envelope.trajectory)
177
+ return [];
178
+ if (envelope.trajectory.direction === 'DEGRADING' && envelope.intent === 'INFORM') {
179
+ return [
180
+ {
181
+ rule: 'S4',
182
+ severity: 'SHOULD',
183
+ message: `Degrading trajectory ("${truncate(envelope.trajectory.pattern)}") with INFORM intent. Degrading patterns deserve urgency — consider ESCALATE.`,
184
+ details: { field: 'trajectory.direction', value: envelope.trajectory.direction },
185
+ },
186
+ ];
187
+ }
188
+ return [];
189
+ }
190
+ /**
191
+ * S5: grounds.length == 0 AND register == REGULATORY → WARN
192
+ * "Regulatory register without explicit grounds."
193
+ */
194
+ function checkS5(envelope) {
195
+ if (envelope.register !== 'REGULATORY')
196
+ return [];
197
+ if (!envelope.grounds || envelope.grounds.length === 0) {
198
+ return [
199
+ {
200
+ rule: 'S5',
201
+ severity: 'SHOULD',
202
+ message: `REGULATORY register without any grounds. Regulatory communications should carry explicit organizational constraints.`,
203
+ details: { field: 'grounds' },
204
+ },
205
+ ];
206
+ }
207
+ return [];
208
+ }
209
+ /**
210
+ * S6: confidence[].basis == DERIVED AND score > 0.80 → WARN
211
+ * "Derived assertion scored as near-verified — verify derivation method."
212
+ * Experiment 11: agents over-confident on DERIVED 60% of the time (+0.144 mean error).
213
+ * Most common form of subtle metacognitive poisoning.
214
+ */
215
+ function checkS6(envelope) {
216
+ const violations = [];
217
+ for (const c of envelope.confidence) {
218
+ if (c.basis === 'DERIVED' && c.score > 0.8) {
219
+ violations.push({
220
+ rule: 'S6',
221
+ severity: 'SHOULD',
222
+ message: `Assertion "${truncate(c.assertion)}" has DERIVED basis with score ${c.score} > 0.80. Derived assertions are over-confident 60% of the time (+0.144 mean error, Experiment 11). Verify derivation method or lower score.`,
223
+ details: { field: 'confidence', value: c, threshold: 0.8 },
224
+ });
225
+ }
226
+ }
227
+ return violations;
228
+ }
229
+ // --- Structural Validation ---
230
+ function checkStructure(envelope) {
231
+ const errors = [];
232
+ if (!envelope.meta) {
233
+ errors.push({ rule: 'STRUCT', severity: 'MUST', message: 'Missing meta field.' });
234
+ return errors;
235
+ }
236
+ if (!envelope.meta.version || !envelope.meta.version.startsWith('babel/')) {
237
+ errors.push({
238
+ rule: 'STRUCT',
239
+ severity: 'MUST',
240
+ message: `Invalid or missing version "${envelope.meta.version}". Expected "babel/0.2".`,
241
+ });
242
+ }
243
+ if (!envelope.meta.sender) {
244
+ errors.push({ rule: 'STRUCT', severity: 'MUST', message: 'Missing meta.sender.' });
245
+ }
246
+ if (!envelope.meta.recipient) {
247
+ errors.push({ rule: 'STRUCT', severity: 'MUST', message: 'Missing meta.recipient.' });
248
+ }
249
+ if (!envelope.meta.chain_id) {
250
+ errors.push({ rule: 'STRUCT', severity: 'MUST', message: 'Missing meta.chain_id.' });
251
+ }
252
+ if (!envelope.meta.timestamp) {
253
+ errors.push({ rule: 'STRUCT', severity: 'MUST', message: 'Missing meta.timestamp.' });
254
+ }
255
+ if (!Array.isArray(envelope.confidence) || envelope.confidence.length === 0) {
256
+ errors.push({
257
+ rule: 'STRUCT',
258
+ severity: 'MUST',
259
+ message: 'Envelope must include at least one confidence assertion.',
260
+ });
261
+ }
262
+ else {
263
+ for (let i = 0; i < envelope.confidence.length; i++) {
264
+ const c = envelope.confidence[i];
265
+ if (typeof c.score !== 'number' || c.score < 0 || c.score > 1) {
266
+ errors.push({
267
+ rule: 'STRUCT',
268
+ severity: 'MUST',
269
+ message: `confidence[${i}].score must be a number in [0, 1]. Got ${c.score}.`,
270
+ });
271
+ }
272
+ if (!c.assertion || typeof c.assertion !== 'string') {
273
+ errors.push({
274
+ rule: 'STRUCT',
275
+ severity: 'MUST',
276
+ message: `confidence[${i}].assertion must be a non-empty string.`,
277
+ });
278
+ }
279
+ }
280
+ }
281
+ const validIntents = [
282
+ 'INFORM', 'REQUEST_ACTION', 'ESCALATE', 'FLAG_RISK',
283
+ 'SPECULATE', 'PERSUADE', 'DELEGATE', 'SYNTHESIZE',
284
+ ];
285
+ if (!validIntents.includes(envelope.intent)) {
286
+ errors.push({
287
+ rule: 'STRUCT',
288
+ severity: 'MUST',
289
+ message: `Invalid intent "${envelope.intent}". Must be one of: ${validIntents.join(', ')}.`,
290
+ });
291
+ }
292
+ const validRegisters = [
293
+ 'BOARD_FACING', 'ENGINEERING', 'CUSTOMER_EXTERNAL',
294
+ 'REGULATORY', 'INTERNAL_MEMO', 'AGENT_INTERNAL',
295
+ ];
296
+ if (!validRegisters.includes(envelope.register)) {
297
+ errors.push({
298
+ rule: 'STRUCT',
299
+ severity: 'MUST',
300
+ message: `Invalid register "${envelope.register}". Must be one of: ${validRegisters.join(', ')}.`,
301
+ });
302
+ }
303
+ if (envelope.affect) {
304
+ for (const axis of ['expansion', 'activation', 'certainty']) {
305
+ const val = envelope.affect[axis];
306
+ if (typeof val !== 'number' || val < -1 || val > 1) {
307
+ errors.push({
308
+ rule: 'STRUCT',
309
+ severity: 'MUST',
310
+ message: `affect.${axis} must be a number in [-1, 1]. Got ${val}.`,
311
+ });
312
+ }
313
+ }
314
+ }
315
+ if (!envelope.payload || typeof envelope.payload !== 'string') {
316
+ errors.push({
317
+ rule: 'STRUCT',
318
+ severity: 'MUST',
319
+ message: 'Envelope must include a non-empty payload string.',
320
+ });
321
+ }
322
+ return errors;
323
+ }
324
+ // --- Validate ---
325
+ function validate(envelope) {
326
+ const structural = checkStructure(envelope);
327
+ if (structural.length > 0) {
328
+ return { valid: false, errors: structural, warnings: [], envelope };
329
+ }
330
+ const mustViolations = [
331
+ ...checkM1(envelope),
332
+ ...checkM2(envelope),
333
+ ...checkM3(envelope),
334
+ ...checkM4(envelope),
335
+ ...checkM5(envelope),
336
+ ];
337
+ const shouldViolations = [
338
+ ...checkS1(envelope),
339
+ ...checkS2(envelope),
340
+ ...checkS3(envelope),
341
+ ...checkS4(envelope),
342
+ ...checkS5(envelope),
343
+ ...checkS6(envelope),
344
+ ];
345
+ return {
346
+ valid: mustViolations.length === 0,
347
+ errors: mustViolations,
348
+ warnings: shouldViolations,
349
+ envelope,
350
+ };
351
+ }
352
+ // --- Chain Validation ---
353
+ function validateChain(envelopes) {
354
+ const violations = [];
355
+ const chains = new Map();
356
+ for (const env of envelopes) {
357
+ const chain = chains.get(env.meta.chain_id) || [];
358
+ chain.push(env);
359
+ chains.set(env.meta.chain_id, chain);
360
+ }
361
+ for (const [chainId, chain] of chains) {
362
+ const byTimestamp = [...chain].sort((a, b) => new Date(a.meta.timestamp).getTime() - new Date(b.meta.timestamp).getTime());
363
+ for (let i = 1; i < byTimestamp.length; i++) {
364
+ if (byTimestamp[i].meta.seq <= byTimestamp[i - 1].meta.seq) {
365
+ violations.push({
366
+ rule: 'M5',
367
+ severity: 'MUST',
368
+ message: `Chain ${chainId}: seq ${byTimestamp[i].meta.seq} arrived after seq ${byTimestamp[i - 1].meta.seq} but has lower/equal sequence number.`,
369
+ details: {
370
+ field: 'meta.seq',
371
+ value: { current: byTimestamp[i].meta.seq, prior: byTimestamp[i - 1].meta.seq },
372
+ },
373
+ });
374
+ }
375
+ }
376
+ const sorted = [...chain].sort((a, b) => a.meta.seq - b.meta.seq);
377
+ for (let i = 1; i < sorted.length; i++) {
378
+ if (sorted[i].meta.seq !== sorted[i - 1].meta.seq + 1) {
379
+ violations.push({
380
+ rule: 'M5',
381
+ severity: 'MUST',
382
+ message: `Chain ${chainId}: gap between seq ${sorted[i - 1].meta.seq} and seq ${sorted[i].meta.seq}. No gaps or duplicates.`,
383
+ details: {
384
+ field: 'meta.seq',
385
+ value: { prior: sorted[i - 1].meta.seq, current: sorted[i].meta.seq },
386
+ },
387
+ });
388
+ }
389
+ }
390
+ const seqs = chain.map((e) => e.meta.seq);
391
+ const uniqueSeqs = new Set(seqs);
392
+ if (uniqueSeqs.size < seqs.length) {
393
+ violations.push({
394
+ rule: 'M5',
395
+ severity: 'MUST',
396
+ message: `Chain ${chainId}: duplicate sequence numbers detected.`,
397
+ details: { field: 'meta.seq', value: seqs },
398
+ });
399
+ }
400
+ }
401
+ return violations;
402
+ }
403
+ // --- Helpers ---
404
+ function truncate(s, len = 60) {
405
+ return s.length > len ? s.slice(0, len) + '...' : s;
406
+ }
407
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":";AAAA,kDAAkD;AAClD,yCAAyC;AACzC,kCAAkC;AAClC,8DAA8D;AAC9D,iDAAiD;AACjD,8CAA8C;AAC9C,kDAAkD;;AA0VlD,4BA6BC;AAID,sCAuDC;AAxaD,mCAAmC;AAEnC;;;GAGG;AACH,SAAS,OAAO,CAAC,QAAuB;IACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,EAAE,CAAC;IAE/C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;QACpB,OAAO;YACL;gBACE,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,mDAAmD,QAAQ,uDAAuD;gBAC3H,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE;aAClE;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,QAAuB;IACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,gBAAgB;QAAE,OAAO,EAAE,CAAC;IAEpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAEnE,IAAI,QAAQ,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,OAAO;YACL;gBACE,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,sCAAsC,QAAQ,yGAAyG;gBAChK,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE;aAClE;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,QAAuB;IACtC,IAAI,CAAC,QAAQ,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,CAAC,SAAS,KAAK,YAAY,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACxD,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,0BAA0B,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,4EAA4E;gBACrI,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE;aACxC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,QAAuB;IACtC,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC;YACzD,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,cAAc,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,IAAI,WAAW,eAAe,CAAC,CAAC,KAAK,8EAA8E;gBACrL,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE;aAC3D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,SAAS,OAAO,CAAC,QAAuB;IACtC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL;gBACE,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,kBAAkB,QAAQ,CAAC,IAAI,CAAC,GAAG,8CAA8C;gBAC1F,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE;aACzD;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,kCAAkC;AAElC;;;GAGG;AACH,SAAS,OAAO,CAAC,QAAuB;IACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,IAAI,QAAQ,CAAC,QAAQ,KAAK,mBAAmB,EAAE,CAAC;QAChF,OAAO;YACL;gBACE,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,2IAA2I;gBACpJ,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;aACzD;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,QAAuB;IACtC,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,GAAG,GAAG,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;QACtD,OAAO;YACL;gBACE,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,uBAAuB,QAAQ,CAAC,MAAM,CAAC,SAAS,qCAAqC,QAAQ,8CAA8C;gBACpJ,OAAO,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE;aACzE;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,QAAuB;IACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAE5C,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IACjE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO;YACL;gBACE,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,sBAAsB,OAAO,CAAC,MAAM,gFAAgF;gBAC7H,OAAO,EAAE;oBACP,KAAK,EAAE,YAAY;oBACnB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;iBAClF;aACF;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,QAAuB;IACtC,IAAI,CAAC,QAAQ,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAEpC,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClF,OAAO;YACL;gBACE,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,0BAA0B,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,gFAAgF;gBACxJ,OAAO,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE;aACjF;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,QAAuB;IACtC,IAAI,QAAQ,CAAC,QAAQ,KAAK,YAAY;QAAE,OAAO,EAAE,CAAC;IAElD,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO;YACL;gBACE,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,sHAAsH;gBAC/H,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;aAC9B;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;GAKG;AACH,SAAS,OAAO,CAAC,QAAuB;IACtC,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC;YAC3C,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,cAAc,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC,KAAK,6IAA6I;gBAClO,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE;aAC3D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,gCAAgC;AAEhC,SAAS,cAAc,CAAC,QAAuB;IAC7C,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;QAClF,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1E,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,+BAA+B,QAAQ,CAAC,IAAI,CAAC,OAAO,0BAA0B;SACxF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5E,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,0DAA0D;SACpE,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC9D,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,cAAc,CAAC,2CAA2C,CAAC,CAAC,KAAK,GAAG;iBAC9E,CAAC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,cAAc,CAAC,yCAAyC;iBAClE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG;QACnB,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW;QACnD,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY;KAClD,CAAC;IACF,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,mBAAmB,QAAQ,CAAC,MAAM,sBAAsB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SAC5F,CAAC,CAAC;IACL,CAAC;IAED,MAAM,cAAc,GAAG;QACrB,cAAc,EAAE,aAAa,EAAE,mBAAmB;QAClD,YAAY,EAAE,eAAe,EAAE,gBAAgB;KAChD,CAAC;IACF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,qBAAqB,QAAQ,CAAC,QAAQ,sBAAsB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SAClG,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAU,EAAE,CAAC;YACrE,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACnD,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,UAAU,IAAI,qCAAqC,GAAG,GAAG;iBACnE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,mDAAmD;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mBAAmB;AAEnB,SAAgB,QAAQ,CAAC,QAAuB;IAC9C,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;IACtE,CAAC;IAED,MAAM,cAAc,GAAG;QACrB,GAAG,OAAO,CAAC,QAAQ,CAAC;QACpB,GAAG,OAAO,CAAC,QAAQ,CAAC;QACpB,GAAG,OAAO,CAAC,QAAQ,CAAC;QACpB,GAAG,OAAO,CAAC,QAAQ,CAAC;QACpB,GAAG,OAAO,CAAC,QAAQ,CAAC;KACrB,CAAC;IAEF,MAAM,gBAAgB,GAAG;QACvB,GAAG,OAAO,CAAC,QAAQ,CAAC;QACpB,GAAG,OAAO,CAAC,QAAQ,CAAC;QACpB,GAAG,OAAO,CAAC,QAAQ,CAAC;QACpB,GAAG,OAAO,CAAC,QAAQ,CAAC;QACpB,GAAG,OAAO,CAAC,QAAQ,CAAC;QACpB,GAAG,OAAO,CAAC,QAAQ,CAAC;KACrB,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,cAAc,CAAC,MAAM,KAAK,CAAC;QAClC,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,2BAA2B;AAE3B,SAAgB,aAAa,CAAC,SAA0B;IACtD,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CACtF,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC3D,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,SAAS,OAAO,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,sBAAsB,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,uCAAuC;oBACjJ,OAAO,EAAE;wBACP,KAAK,EAAE,UAAU;wBACjB,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;qBAChF;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;gBACtD,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,SAAS,OAAO,qBAAqB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,YAAY,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,0BAA0B;oBAC5H,OAAO,EAAE;wBACP,KAAK,EAAE,UAAU;wBACjB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;qBACtE;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAClC,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,SAAS,OAAO,wCAAwC;gBACjE,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE;aAC5C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,kBAAkB;AAElB,SAAS,QAAQ,CAAC,CAAS,EAAE,MAAc,EAAE;IAC3C,OAAO,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "babel-validate",
3
+ "version": "0.2.0",
4
+ "description": "Babel wire protocol — validation, creation, and audit for agent-to-agent cognitive state transfer. Catches metacognitive poisoning before it propagates.",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist",
9
+ "README.md"
10
+ ],
11
+ "scripts": {
12
+ "build": "tsc",
13
+ "test": "node dist/test.js",
14
+ "prepublishOnly": "npm run build"
15
+ },
16
+ "keywords": [
17
+ "babel",
18
+ "agent-to-agent",
19
+ "multi-agent",
20
+ "metacognitive-poisoning",
21
+ "confidence",
22
+ "wire-protocol",
23
+ "validation",
24
+ "crewai",
25
+ "langgraph",
26
+ "autogen",
27
+ "paratext",
28
+ "hearth"
29
+ ],
30
+ "author": "Hearth <hello@hearth.so>",
31
+ "license": "MIT",
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/mdiskint/babel-validate"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "^25.2.3",
38
+ "typescript": "^5.3.0"
39
+ }
40
+ }