@theoremjs/agents 0.3.4-next.484.g20d8b9d → 0.3.4-next.508.geda6db0
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 +61 -51
- package/esm/mod.d.ts +2 -2
- package/esm/mod.js +1 -1
- package/esm/src/guardrails/credential-scan.d.ts +1 -1
- package/esm/src/guardrails/credential-scan.js +41 -18
- package/esm/src/guardrails/destinations.js +6 -2
- package/esm/src/guardrails/detect-at.d.ts +1 -3
- package/esm/src/guardrails/detect-at.js +6 -22
- package/esm/src/guardrails/egress-automata.js +203 -202
- package/esm/src/guardrails/egress-stream.js +10 -3
- package/esm/src/guardrails/egress-urls.js +4 -2
- package/esm/src/guardrails/injection-patterns.d.ts +3 -1
- package/esm/src/guardrails/injection-patterns.js +87 -4
- package/esm/src/guardrails/labels.d.ts +2 -2
- package/esm/src/guardrails/labels.js +7 -5
- package/esm/src/guardrails/mod.d.ts +1 -1
- package/esm/src/guardrails/normalize.js +4 -2
- package/esm/src/guardrails/prompt-echo.js +4 -2
- package/esm/src/guardrails/sensitive.d.ts +2 -2
- package/esm/src/guardrails/sensitive.js +1 -1
- package/esm/src/interface/profile-interface.js +13 -0
- package/esm/src/kernel/answer-tool.d.ts +14 -0
- package/esm/src/kernel/answer-tool.js +26 -0
- package/esm/src/kernel/engine/decision-references.d.ts +14 -0
- package/esm/src/kernel/engine/decision-references.js +55 -0
- package/esm/src/kernel/engine/decision.d.ts +3 -3
- package/esm/src/kernel/engine/decision.js +38 -22
- package/esm/src/kernel/engine/embedding.js +0 -2
- package/esm/src/kernel/engine/runner/gates.js +38 -4
- package/esm/src/kernel/engine/runner/steps.js +47 -10
- package/esm/src/kernel/engine/runner/stream.d.ts +14 -8
- package/esm/src/kernel/engine/runner/stream.js +25 -13
- package/esm/src/kernel/mod.d.ts +1 -1
- package/esm/src/kernel/mod.js +1 -1
- package/esm/src/kernel/profile-presence.js +12 -0
- package/esm/src/kernel/profile-scope.js +14 -14
- package/esm/src/kernel/protocols/binding.d.ts +3 -1
- package/esm/src/kernel/protocols/binding.js +6 -0
- package/esm/src/kernel/protocols/limits.d.ts +10 -11
- package/esm/src/kernel/protocols/limits.js +9 -23
- package/esm/src/kernel/protocols/runtime.d.ts +3 -2
- package/esm/src/kernel/protocols/runtime.js +1 -2
- package/esm/src/kernel/provider-budget.d.ts +2 -2
- package/esm/src/kernel/provider-budget.js +22 -12
- package/esm/src/kernel/provider-runtime.js +2 -2
- package/esm/src/kernel/registry/profiles.js +1 -1
- package/esm/src/kernel/registry/resolve.js +4 -0
- package/esm/src/kernel/registry/schemas.js +1 -1
- package/esm/src/kernel/schema.js +12 -2
- package/esm/src/kernel/types.d.ts +4 -2
- package/esm/src/observability/spans.js +7 -8
- package/esm/src/providers/embedding-limits.js +4 -4
- package/esm/src/providers/gemini/{embedding-protocol.d.ts → embeddings-protocol.d.ts} +3 -3
- package/esm/src/providers/gemini/{embedding-protocol.js → embeddings-protocol.js} +3 -3
- package/esm/src/providers/gemini/live-protocol.js +4 -1
- package/esm/src/providers/gemini/provider.js +2 -2
- package/esm/src/providers/local/embeddings-protocol.d.ts +7 -0
- package/esm/src/providers/local/{embedding-protocol.js → embeddings-protocol.js} +2 -2
- package/esm/src/providers/local/provider.js +2 -2
- package/esm/src/providers/mod.d.ts +3 -3
- package/esm/src/providers/mod.js +3 -3
- package/esm/src/providers/openrouter/decisions-protocol.js +11 -8
- package/esm/src/providers/openrouter/embeddings-protocol.d.ts +6 -0
- package/esm/src/providers/openrouter/{embedding-protocol.js → embeddings-protocol.js} +2 -2
- package/esm/src/providers/openrouter/provider.js +2 -2
- package/package.json +1 -1
- package/esm/src/providers/local/embedding-protocol.d.ts +0 -7
- package/esm/src/providers/openrouter/embedding-protocol.d.ts +0 -6
|
@@ -471,7 +471,7 @@ const FORWARD_AUTOMATON = {
|
|
|
471
471
|
18938, 18985, 18998, 19054, 19136, 19239, 19332, 19427, 19537, 19610, 19694, 19810, 19918,
|
|
472
472
|
20026, 20121, 20186, 20221, 20294, 20383, 20493, 20562, 20656, 20822, 20930, 21075, 21227,
|
|
473
473
|
21365, 21450, 21533, 21617, 21643, 21672, 21700, 21733, 21750, 21856, 21881, 21921, 21975,
|
|
474
|
-
|
|
474
|
+
21995, 22020, 22029, 22036, 22055, 22073, 22076, 22093, 22110, 22128, 22146, 22183, 22198,
|
|
475
475
|
],
|
|
476
476
|
leads: [
|
|
477
477
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
@@ -22492,229 +22492,230 @@ const FORWARD_AUTOMATON = {
|
|
|
22492
22492
|
[272, 0, 21989, 85],
|
|
22493
22493
|
[272, 0, 21990, 85],
|
|
22494
22494
|
[272, 0, 21991, 85],
|
|
22495
|
-
[272, 1,
|
|
22496
|
-
[272, 1, 21993, 86],
|
|
22495
|
+
[272, 1, 21992, 85, 21993, 86],
|
|
22496
|
+
[272, 1, 21992, 85, 21993, 86],
|
|
22497
|
+
[272, 1, 21994, 86],
|
|
22497
22498
|
[272, 1],
|
|
22498
|
-
[273, 0, 21995, 80],
|
|
22499
22499
|
[273, 0, 21996, 80],
|
|
22500
|
-
[273, 0, 21997,
|
|
22501
|
-
[273, 0, 21998, 80],
|
|
22500
|
+
[273, 0, 21997, 80],
|
|
22501
|
+
[273, 0, 21998, 6, 21999, 80],
|
|
22502
22502
|
[273, 0, 21999, 80],
|
|
22503
|
-
[273, 0, 22000,
|
|
22504
|
-
[273, 0, 22001, 80],
|
|
22503
|
+
[273, 0, 22000, 80],
|
|
22504
|
+
[273, 0, 22001, 6, 22002, 80],
|
|
22505
22505
|
[273, 0, 22002, 80],
|
|
22506
|
-
[273, 0, 22003,
|
|
22507
|
-
[273, 0, 22004, 80],
|
|
22506
|
+
[273, 0, 22003, 80],
|
|
22507
|
+
[273, 0, 22004, 6, 22005, 80],
|
|
22508
22508
|
[273, 0, 22005, 80],
|
|
22509
|
-
[273, 0, 22006,
|
|
22510
|
-
[273, 0, 22007, 80],
|
|
22509
|
+
[273, 0, 22006, 80],
|
|
22510
|
+
[273, 0, 22007, 6, 22008, 80],
|
|
22511
22511
|
[273, 0, 22008, 80],
|
|
22512
|
-
[273, 0, 22009,
|
|
22513
|
-
[273, 0, 22010, 80],
|
|
22512
|
+
[273, 0, 22009, 80],
|
|
22513
|
+
[273, 0, 22010, 6, 22011, 80],
|
|
22514
22514
|
[273, 0, 22011, 80],
|
|
22515
|
-
[273, 0, 22012,
|
|
22516
|
-
[273, 0, 22013, 80],
|
|
22515
|
+
[273, 0, 22012, 80],
|
|
22516
|
+
[273, 0, 22013, 6, 22014, 80],
|
|
22517
22517
|
[273, 0, 22014, 80],
|
|
22518
|
-
[273, 0, 22015,
|
|
22519
|
-
[273, 0, 22016, 80],
|
|
22518
|
+
[273, 0, 22015, 80],
|
|
22519
|
+
[273, 0, 22016, 6, 22017, 80],
|
|
22520
22520
|
[273, 0, 22017, 80],
|
|
22521
|
-
[273,
|
|
22522
|
-
[273, 1,
|
|
22523
|
-
[
|
|
22524
|
-
[274, 0, 22021,
|
|
22525
|
-
[274, 0, 22022,
|
|
22526
|
-
[274, 0, 22023,
|
|
22527
|
-
[274, 0, 22024,
|
|
22528
|
-
[274, 0, 22025,
|
|
22529
|
-
[274, 0,
|
|
22530
|
-
[274,
|
|
22521
|
+
[273, 0, 22018, 80],
|
|
22522
|
+
[273, 1, 22019, 6, 22017, 80],
|
|
22523
|
+
[273, 1, 22017, 80],
|
|
22524
|
+
[274, 0, 22021, 144],
|
|
22525
|
+
[274, 0, 22022, 171],
|
|
22526
|
+
[274, 0, 22023, 144],
|
|
22527
|
+
[274, 0, 22024, 171],
|
|
22528
|
+
[274, 0, 22025, 144],
|
|
22529
|
+
[274, 0, 22026, 171],
|
|
22530
|
+
[274, 0, 22025, 144, 22027, 144],
|
|
22531
|
+
[274, 1, 22028, 26],
|
|
22531
22532
|
[274, 1],
|
|
22532
|
-
[275, 0,
|
|
22533
|
-
[275, 0,
|
|
22534
|
-
[275, 0,
|
|
22535
|
-
[275, 0,
|
|
22536
|
-
[275, 0,
|
|
22537
|
-
[275, 1,
|
|
22533
|
+
[275, 0, 22030, 144],
|
|
22534
|
+
[275, 0, 22030, 144, 22031, 51],
|
|
22535
|
+
[275, 0, 22032, 144],
|
|
22536
|
+
[275, 0, 22032, 144, 22033, 51],
|
|
22537
|
+
[275, 0, 22032, 144, 22034, 144],
|
|
22538
|
+
[275, 1, 22034, 144, 22035, 26],
|
|
22538
22539
|
[275, 1],
|
|
22539
|
-
[276, 0,
|
|
22540
|
-
[276, 0,
|
|
22541
|
-
[276, 0,
|
|
22542
|
-
[276, 0,
|
|
22543
|
-
[276, 0,
|
|
22544
|
-
[276, 0,
|
|
22545
|
-
[276, 0,
|
|
22546
|
-
[276, 0,
|
|
22547
|
-
[276, 0,
|
|
22548
|
-
[276, 0,
|
|
22549
|
-
[276, 0,
|
|
22550
|
-
[276, 0,
|
|
22551
|
-
[276, 0,
|
|
22552
|
-
[276, 0,
|
|
22553
|
-
[276, 1,
|
|
22554
|
-
[276, 0,
|
|
22555
|
-
[276, 0,
|
|
22556
|
-
[276, 0,
|
|
22540
|
+
[276, 0, 22037, 184],
|
|
22541
|
+
[276, 0, 22038, 50],
|
|
22542
|
+
[276, 0, 22039, 49, 22040, 138, 22041, 49, 22042, 48],
|
|
22543
|
+
[276, 0, 22043, 142, 22040, 185],
|
|
22544
|
+
[276, 0, 22039, 49, 22040, 138, 22041, 49, 22042, 48],
|
|
22545
|
+
[276, 0, 22044, 142, 22042, 48],
|
|
22546
|
+
[276, 0, 22045, 186],
|
|
22547
|
+
[276, 0, 22043, 142, 22040, 185],
|
|
22548
|
+
[276, 0, 22044, 142, 22042, 48],
|
|
22549
|
+
[276, 0, 22046, 142, 22047, 49, 22048, 44, 22049, 93, 22050, 187],
|
|
22550
|
+
[276, 0, 22046, 142, 22047, 49, 22048, 44, 22049, 93, 22050, 187],
|
|
22551
|
+
[276, 0, 22051, 142, 22048, 44, 22049, 93, 22050, 187],
|
|
22552
|
+
[276, 0, 22052, 93, 22053, 188, 22054, 47],
|
|
22553
|
+
[276, 0, 22050, 185],
|
|
22554
|
+
[276, 1, 22049, 93, 22050, 187],
|
|
22555
|
+
[276, 0, 22051, 142, 22048, 44, 22049, 93, 22050, 187],
|
|
22556
|
+
[276, 0, 22053, 138],
|
|
22557
|
+
[276, 0, 22052, 93, 22053, 188, 22054, 47],
|
|
22557
22558
|
[276, 1],
|
|
22558
|
-
[277, 0,
|
|
22559
|
-
[277, 0,
|
|
22560
|
-
[277, 0,
|
|
22561
|
-
[277, 0,
|
|
22562
|
-
[277, 0,
|
|
22563
|
-
[277, 0,
|
|
22564
|
-
[277, 0,
|
|
22565
|
-
[277, 0,
|
|
22566
|
-
[277, 0,
|
|
22567
|
-
[277, 0,
|
|
22568
|
-
[277, 0,
|
|
22569
|
-
[277, 0,
|
|
22570
|
-
[277, 0,
|
|
22571
|
-
[277, 1,
|
|
22572
|
-
[277, 0,
|
|
22573
|
-
[277, 0,
|
|
22574
|
-
[277, 0,
|
|
22559
|
+
[277, 0, 22056, 49, 22057, 171, 22058, 50],
|
|
22560
|
+
[277, 0, 22057, 171, 22058, 50],
|
|
22561
|
+
[277, 0, 22059, 171, 22058, 50],
|
|
22562
|
+
[277, 0, 22060, 93, 22061, 189],
|
|
22563
|
+
[277, 0, 22062, 171, 22058, 50],
|
|
22564
|
+
[277, 0, 22061, 33],
|
|
22565
|
+
[277, 0, 22060, 93, 22061, 189, 22063, 48],
|
|
22566
|
+
[277, 0, 22058, 50],
|
|
22567
|
+
[277, 0, 22064, 23],
|
|
22568
|
+
[277, 0, 22065, 142, 22066, 49, 22067, 44, 22068, 185],
|
|
22569
|
+
[277, 0, 22065, 142, 22066, 49, 22067, 44, 22068, 185],
|
|
22570
|
+
[277, 0, 22069, 142, 22067, 44, 22068, 185],
|
|
22571
|
+
[277, 0, 22070, 93, 22071, 188, 22072, 47],
|
|
22572
|
+
[277, 1, 22068, 185],
|
|
22573
|
+
[277, 0, 22069, 142, 22067, 44, 22068, 185],
|
|
22574
|
+
[277, 0, 22071, 138],
|
|
22575
|
+
[277, 0, 22070, 93, 22071, 188, 22072, 47],
|
|
22575
22576
|
[277, 1],
|
|
22576
|
-
[278, 0,
|
|
22577
|
-
[278, 0,
|
|
22577
|
+
[278, 0, 22074, 184],
|
|
22578
|
+
[278, 0, 22075, 50],
|
|
22578
22579
|
[278, 1],
|
|
22579
|
-
[279, 0,
|
|
22580
|
-
[279, 0,
|
|
22581
|
-
[279, 0,
|
|
22582
|
-
[279, 0,
|
|
22583
|
-
[279, 0,
|
|
22584
|
-
[279, 0,
|
|
22580
|
+
[279, 0, 22077, 44],
|
|
22581
|
+
[279, 0, 22078, 144],
|
|
22582
|
+
[279, 0, 22079, 190, 22080, 190, 22081, 191, 22082, 47],
|
|
22583
|
+
[279, 0, 22079, 190, 22080, 190, 22081, 191, 22082, 47],
|
|
22584
|
+
[279, 0, 22083, 192, 22084, 193, 22085, 86, 22080, 190, 22081, 191, 22082, 47],
|
|
22585
|
+
[279, 0, 22080, 190, 22081, 191, 22082, 47],
|
|
22585
22586
|
[279, 1],
|
|
22586
|
-
[279, 0,
|
|
22587
|
-
[279, 0,
|
|
22588
|
-
[279, 0,
|
|
22589
|
-
[279, 0,
|
|
22590
|
-
[279, 0,
|
|
22591
|
-
[279, 0,
|
|
22592
|
-
[279, 0,
|
|
22593
|
-
[279, 0,
|
|
22594
|
-
[279, 0,
|
|
22595
|
-
[279, 0,
|
|
22596
|
-
[280, 0,
|
|
22597
|
-
[280, 0,
|
|
22598
|
-
[280, 0,
|
|
22599
|
-
[280, 0,
|
|
22600
|
-
[280, 0,
|
|
22601
|
-
[280, 0,
|
|
22602
|
-
[280, 0,
|
|
22603
|
-
[280, 0,
|
|
22604
|
-
[280, 0,
|
|
22605
|
-
[280, 0,
|
|
22606
|
-
[280, 0,
|
|
22607
|
-
[280, 0,
|
|
22608
|
-
[280, 0,
|
|
22609
|
-
[280, 0,
|
|
22610
|
-
[280, 0,
|
|
22611
|
-
[280, 0,
|
|
22587
|
+
[279, 0, 22083, 192, 22084, 193, 22085, 86, 22080, 190, 22081, 191, 22082, 47],
|
|
22588
|
+
[279, 0, 22084, 193, 22085, 86, 22080, 190, 22081, 191, 22082, 47],
|
|
22589
|
+
[279, 0, 22086, 193, 22087, 143, 22088, 28, 22089, 194, 22080, 190, 22081, 191, 22082, 47],
|
|
22590
|
+
[279, 0, 22086, 193, 22087, 143, 22088, 28, 22089, 194, 22080, 190, 22081, 191, 22082, 47],
|
|
22591
|
+
[279, 0, 22090, 147, 22081, 143],
|
|
22592
|
+
[279, 0, 22091, 149, 22081, 28],
|
|
22593
|
+
[279, 0, 22092, 195, 22080, 190, 22081, 191, 22082, 47],
|
|
22594
|
+
[279, 0, 22090, 147, 22081, 143],
|
|
22595
|
+
[279, 0, 22091, 149, 22081, 28],
|
|
22596
|
+
[279, 0, 22092, 195, 22080, 190, 22081, 191, 22082, 47],
|
|
22597
|
+
[280, 0, 22094, 44],
|
|
22598
|
+
[280, 0, 22095, 14],
|
|
22599
|
+
[280, 0, 22096, 15],
|
|
22600
|
+
[280, 0, 22097, 16],
|
|
22601
|
+
[280, 0, 22098, 9],
|
|
22602
|
+
[280, 0, 22099, 5],
|
|
22603
|
+
[280, 0, 22100, 196],
|
|
22604
|
+
[280, 0, 22101, 33, 22102, 44],
|
|
22605
|
+
[280, 0, 22101, 33, 22102, 44],
|
|
22606
|
+
[280, 0, 22103, 46],
|
|
22607
|
+
[280, 0, 22104, 14],
|
|
22608
|
+
[280, 0, 22105, 15],
|
|
22609
|
+
[280, 0, 22106, 16],
|
|
22610
|
+
[280, 0, 22107, 9],
|
|
22611
|
+
[280, 0, 22108, 5],
|
|
22612
|
+
[280, 0, 22109, 196],
|
|
22612
22613
|
[280, 1],
|
|
22613
|
-
[281, 0,
|
|
22614
|
-
[281, 0,
|
|
22615
|
-
[281, 0,
|
|
22616
|
-
[281, 0,
|
|
22617
|
-
[281, 0,
|
|
22618
|
-
[281, 0,
|
|
22619
|
-
[281, 0,
|
|
22620
|
-
[281, 0,
|
|
22621
|
-
[281, 0,
|
|
22622
|
-
[281, 0,
|
|
22623
|
-
[281, 0,
|
|
22624
|
-
[281, 0,
|
|
22625
|
-
[281, 0,
|
|
22626
|
-
[281, 1,
|
|
22627
|
-
[281, 0,
|
|
22628
|
-
[281, 0,
|
|
22629
|
-
[281, 0,
|
|
22614
|
+
[281, 0, 22111, 50],
|
|
22615
|
+
[281, 0, 22112, 49, 22113, 138, 22114, 49, 22115, 48],
|
|
22616
|
+
[281, 0, 22116, 142, 22113, 185],
|
|
22617
|
+
[281, 0, 22112, 49, 22113, 138, 22114, 49, 22115, 48],
|
|
22618
|
+
[281, 0, 22117, 142, 22115, 48],
|
|
22619
|
+
[281, 0, 22118, 186],
|
|
22620
|
+
[281, 0, 22116, 142, 22113, 185],
|
|
22621
|
+
[281, 0, 22117, 142, 22115, 48],
|
|
22622
|
+
[281, 0, 22119, 142, 22120, 49, 22121, 44, 22122, 93, 22123, 187],
|
|
22623
|
+
[281, 0, 22119, 142, 22120, 49, 22121, 44, 22122, 93, 22123, 187],
|
|
22624
|
+
[281, 0, 22124, 142, 22121, 44, 22122, 93, 22123, 187],
|
|
22625
|
+
[281, 0, 22125, 93, 22126, 188, 22127, 47],
|
|
22626
|
+
[281, 0, 22123, 185],
|
|
22627
|
+
[281, 1, 22122, 93, 22123, 187],
|
|
22628
|
+
[281, 0, 22124, 142, 22121, 44, 22122, 93, 22123, 187],
|
|
22629
|
+
[281, 0, 22126, 138],
|
|
22630
|
+
[281, 0, 22125, 93, 22126, 188, 22127, 47],
|
|
22630
22631
|
[281, 1],
|
|
22631
|
-
[282, 0,
|
|
22632
|
-
[282, 0,
|
|
22633
|
-
[282, 0,
|
|
22634
|
-
[282, 0,
|
|
22635
|
-
[282, 0,
|
|
22636
|
-
[282, 0,
|
|
22637
|
-
[282, 0,
|
|
22638
|
-
[282, 0,
|
|
22639
|
-
[282, 0,
|
|
22640
|
-
[282, 0,
|
|
22641
|
-
[282, 0,
|
|
22642
|
-
[282, 0,
|
|
22643
|
-
[282, 0,
|
|
22644
|
-
[282, 1,
|
|
22645
|
-
[282, 0,
|
|
22646
|
-
[282, 0,
|
|
22647
|
-
[282, 0,
|
|
22632
|
+
[282, 0, 22129, 49, 22130, 171, 22131, 50],
|
|
22633
|
+
[282, 0, 22130, 171, 22131, 50],
|
|
22634
|
+
[282, 0, 22132, 171, 22131, 50],
|
|
22635
|
+
[282, 0, 22133, 93, 22134, 189],
|
|
22636
|
+
[282, 0, 22135, 171, 22131, 50],
|
|
22637
|
+
[282, 0, 22134, 33],
|
|
22638
|
+
[282, 0, 22133, 93, 22134, 189, 22136, 48],
|
|
22639
|
+
[282, 0, 22131, 50],
|
|
22640
|
+
[282, 0, 22137, 23],
|
|
22641
|
+
[282, 0, 22138, 142, 22139, 49, 22140, 44, 22141, 185],
|
|
22642
|
+
[282, 0, 22138, 142, 22139, 49, 22140, 44, 22141, 185],
|
|
22643
|
+
[282, 0, 22142, 142, 22140, 44, 22141, 185],
|
|
22644
|
+
[282, 0, 22143, 93, 22144, 188, 22145, 47],
|
|
22645
|
+
[282, 1, 22141, 185],
|
|
22646
|
+
[282, 0, 22142, 142, 22140, 44, 22141, 185],
|
|
22647
|
+
[282, 0, 22144, 138],
|
|
22648
|
+
[282, 0, 22143, 93, 22144, 188, 22145, 47],
|
|
22648
22649
|
[282, 1],
|
|
22649
|
-
[283, 0,
|
|
22650
|
-
[283, 0,
|
|
22651
|
-
[283, 0,
|
|
22652
|
-
[283, 0,
|
|
22653
|
-
[283, 0,
|
|
22654
|
-
[283, 0,
|
|
22655
|
-
[283, 0,
|
|
22656
|
-
[283, 0,
|
|
22650
|
+
[283, 0, 22147, 44],
|
|
22651
|
+
[283, 0, 22148, 144],
|
|
22652
|
+
[283, 0, 22149, 197],
|
|
22653
|
+
[283, 0, 22150, 197, 22151, 23],
|
|
22654
|
+
[283, 0, 22152, 197, 22151, 23],
|
|
22655
|
+
[283, 0, 22153, 198, 22154, 47],
|
|
22656
|
+
[283, 0, 22155, 197, 22151, 23],
|
|
22657
|
+
[283, 0, 22153, 198, 22154, 47],
|
|
22657
22658
|
[283, 1],
|
|
22658
|
-
[283, 0,
|
|
22659
|
-
[283, 0,
|
|
22660
|
-
[283, 0,
|
|
22661
|
-
[283, 0,
|
|
22662
|
-
[283, 0,
|
|
22663
|
-
[283, 0,
|
|
22664
|
-
[283, 0,
|
|
22665
|
-
[283, 0,
|
|
22666
|
-
[283, 0,
|
|
22667
|
-
[283, 0,
|
|
22668
|
-
[283, 0,
|
|
22669
|
-
[283, 0,
|
|
22670
|
-
[283, 0,
|
|
22671
|
-
[283, 0,
|
|
22672
|
-
[283, 0,
|
|
22673
|
-
[283, 0,
|
|
22674
|
-
[283, 0,
|
|
22675
|
-
[283, 0,
|
|
22676
|
-
[283, 0,
|
|
22677
|
-
[283, 0,
|
|
22678
|
-
[283, 0,
|
|
22679
|
-
[283, 0,
|
|
22680
|
-
[283, 0,
|
|
22681
|
-
[283, 0,
|
|
22682
|
-
[283, 0,
|
|
22683
|
-
[283, 0,
|
|
22684
|
-
[283, 0,
|
|
22685
|
-
[283, 0,
|
|
22686
|
-
[284, 0,
|
|
22687
|
-
[284, 0, 22186, 15],
|
|
22659
|
+
[283, 0, 22156, 197, 22151, 23],
|
|
22660
|
+
[283, 0, 22157, 197, 22151, 23],
|
|
22661
|
+
[283, 0, 22158, 197, 22151, 23],
|
|
22662
|
+
[283, 0, 22159, 197, 22151, 23],
|
|
22663
|
+
[283, 0, 22160, 197, 22151, 23],
|
|
22664
|
+
[283, 0, 22161, 197, 22151, 23],
|
|
22665
|
+
[283, 0, 22162, 197, 22151, 23],
|
|
22666
|
+
[283, 0, 22163, 197, 22151, 23],
|
|
22667
|
+
[283, 0, 22164, 197, 22151, 23],
|
|
22668
|
+
[283, 0, 22165, 197, 22151, 23],
|
|
22669
|
+
[283, 0, 22166, 197, 22151, 23],
|
|
22670
|
+
[283, 0, 22167, 197, 22151, 23],
|
|
22671
|
+
[283, 0, 22168, 197, 22151, 23],
|
|
22672
|
+
[283, 0, 22169, 197, 22151, 23],
|
|
22673
|
+
[283, 0, 22170, 197, 22151, 23],
|
|
22674
|
+
[283, 0, 22171, 197, 22151, 23],
|
|
22675
|
+
[283, 0, 22172, 197, 22151, 23],
|
|
22676
|
+
[283, 0, 22173, 197, 22151, 23],
|
|
22677
|
+
[283, 0, 22174, 197, 22151, 23],
|
|
22678
|
+
[283, 0, 22175, 197, 22151, 23],
|
|
22679
|
+
[283, 0, 22176, 197, 22151, 23],
|
|
22680
|
+
[283, 0, 22177, 197, 22151, 23],
|
|
22681
|
+
[283, 0, 22178, 197, 22151, 23],
|
|
22682
|
+
[283, 0, 22179, 197, 22151, 23],
|
|
22683
|
+
[283, 0, 22180, 197, 22151, 23],
|
|
22684
|
+
[283, 0, 22181, 197, 22151, 23],
|
|
22685
|
+
[283, 0, 22182, 197, 22151, 23],
|
|
22686
|
+
[283, 0, 22151, 23],
|
|
22687
|
+
[284, 0, 22184, 21, 22185, 18, 22186, 22],
|
|
22688
22688
|
[284, 0, 22187, 15],
|
|
22689
|
-
[284, 0, 22188,
|
|
22690
|
-
[284, 0, 22189,
|
|
22691
|
-
[284, 0, 22190,
|
|
22692
|
-
[284, 0, 22191,
|
|
22693
|
-
[284, 0, 22192,
|
|
22694
|
-
[284, 0, 22193,
|
|
22695
|
-
[284, 0, 22194,
|
|
22696
|
-
[284, 0,
|
|
22689
|
+
[284, 0, 22188, 15],
|
|
22690
|
+
[284, 0, 22189, 22],
|
|
22691
|
+
[284, 0, 22190, 15],
|
|
22692
|
+
[284, 0, 22191, 8],
|
|
22693
|
+
[284, 0, 22192, 22],
|
|
22694
|
+
[284, 0, 22193, 8],
|
|
22695
|
+
[284, 0, 22194, 23],
|
|
22696
|
+
[284, 0, 22195, 78],
|
|
22697
|
+
[284, 0, 22191, 14, 22194, 23],
|
|
22698
|
+
[284, 0, 22196, 46],
|
|
22699
|
+
[284, 1, 22197, 199],
|
|
22697
22700
|
[284, 0, 22195, 46],
|
|
22698
|
-
[284, 1,
|
|
22699
|
-
[
|
|
22700
|
-
[
|
|
22701
|
-
[285, 0,
|
|
22702
|
-
[285, 0,
|
|
22703
|
-
[285, 0,
|
|
22704
|
-
[285, 0,
|
|
22705
|
-
[285, 0, 22204, 192, 22205, 193, 22206, 86, 22201, 190, 22202, 191, 22203, 47],
|
|
22706
|
-
[285, 0, 22201, 190, 22202, 191, 22203, 47],
|
|
22701
|
+
[284, 1, 22197, 199],
|
|
22702
|
+
[285, 0, 22199, 44],
|
|
22703
|
+
[285, 0, 22200, 144],
|
|
22704
|
+
[285, 0, 22201, 190, 22202, 190, 22203, 191, 22204, 47],
|
|
22705
|
+
[285, 0, 22201, 190, 22202, 190, 22203, 191, 22204, 47],
|
|
22706
|
+
[285, 0, 22205, 192, 22206, 193, 22207, 86, 22202, 190, 22203, 191, 22204, 47],
|
|
22707
|
+
[285, 0, 22202, 190, 22203, 191, 22204, 47],
|
|
22707
22708
|
[285, 1],
|
|
22708
|
-
[285, 0,
|
|
22709
|
-
[285, 0,
|
|
22710
|
-
[285, 0,
|
|
22711
|
-
[285, 0,
|
|
22712
|
-
[285, 0,
|
|
22713
|
-
[285, 0,
|
|
22714
|
-
[285, 0,
|
|
22715
|
-
[285, 0,
|
|
22716
|
-
[285, 0,
|
|
22717
|
-
[285, 0,
|
|
22709
|
+
[285, 0, 22205, 192, 22206, 193, 22207, 86, 22202, 190, 22203, 191, 22204, 47],
|
|
22710
|
+
[285, 0, 22206, 193, 22207, 86, 22202, 190, 22203, 191, 22204, 47],
|
|
22711
|
+
[285, 0, 22208, 193, 22209, 143, 22210, 28, 22211, 194, 22202, 190, 22203, 191, 22204, 47],
|
|
22712
|
+
[285, 0, 22208, 193, 22209, 143, 22210, 28, 22211, 194, 22202, 190, 22203, 191, 22204, 47],
|
|
22713
|
+
[285, 0, 22212, 147, 22203, 143],
|
|
22714
|
+
[285, 0, 22213, 149, 22203, 28],
|
|
22715
|
+
[285, 0, 22214, 195, 22202, 190, 22203, 191, 22204, 47],
|
|
22716
|
+
[285, 0, 22212, 147, 22203, 143],
|
|
22717
|
+
[285, 0, 22213, 149, 22203, 28],
|
|
22718
|
+
[285, 0, 22214, 195, 22202, 190, 22203, 191, 22204, 47],
|
|
22718
22719
|
],
|
|
22719
22720
|
};
|
|
22720
22721
|
/** Each reversed injection pattern, loosened the same way. */
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
import { EGRESS_PATTERNS, notePattern, } from './egress-patterns.js';
|
|
21
21
|
import { IMAGE_PATTERNS, imageReadings, LINK_PATTERNS, linkReadings, } from './egress-urls.js';
|
|
22
22
|
import { decodeUrlRuns, INJECTION_BLOBS, TYPO_TARGETS, tryLeet, tryRot13, typoNormalize, } from './injection.js';
|
|
23
|
+
import { freshPattern } from './injection-patterns.js';
|
|
23
24
|
import { REVERSED_INJECTION_PATTERNS } from './injection-reversed.js';
|
|
24
25
|
import { isEmoji, normalizeCodePoint } from './normalize.js';
|
|
25
26
|
import { detectRule } from './rules.js';
|
|
@@ -471,7 +472,7 @@ function forwardPatterns(detectors, { given, allow, skipImages }) {
|
|
|
471
472
|
out.push({
|
|
472
473
|
...rule,
|
|
473
474
|
id,
|
|
474
|
-
regex:
|
|
475
|
+
regex: freshPattern(entry.pattern),
|
|
475
476
|
...patternReading(entry.kind, entry.pattern, urls),
|
|
476
477
|
});
|
|
477
478
|
});
|
|
@@ -487,7 +488,7 @@ function injectionPatterns() {
|
|
|
487
488
|
out.push({
|
|
488
489
|
...INJECTION_RULE,
|
|
489
490
|
id,
|
|
490
|
-
regex:
|
|
491
|
+
regex: freshPattern(pattern),
|
|
491
492
|
...(hit ? { hit } : {}),
|
|
492
493
|
});
|
|
493
494
|
});
|
|
@@ -649,6 +650,12 @@ function createScan(view, automaton, patterns) {
|
|
|
649
650
|
resume[p] = Math.max(from, at) + 1;
|
|
650
651
|
return { rule, severity, start: view.rawAt(at), detector };
|
|
651
652
|
}
|
|
653
|
+
let lowered = { text: '', lower: '' };
|
|
654
|
+
const lower = () => {
|
|
655
|
+
if (lowered.text !== view.text)
|
|
656
|
+
lowered = { text: view.text, lower: view.text.toLowerCase() };
|
|
657
|
+
return lowered.lower;
|
|
658
|
+
};
|
|
652
659
|
/** A regex pattern's hit up to `settledTo`. */
|
|
653
660
|
function matched(p, settledTo) {
|
|
654
661
|
if (!reached[p] && !recheck[p]) {
|
|
@@ -667,7 +674,7 @@ function createScan(view, automaton, patterns) {
|
|
|
667
674
|
return undefined;
|
|
668
675
|
}
|
|
669
676
|
const [blob] = match;
|
|
670
|
-
if (blob && (!hit || hit(blob, text, match.index))) {
|
|
677
|
+
if (blob && (!hit || hit(blob, text, match.index, lower))) {
|
|
671
678
|
// why: The scan reads on from the end of the match, so the next call finds the one after it.
|
|
672
679
|
resume[p] = regex.lastIndex;
|
|
673
680
|
recheck[p] = 1;
|
|
@@ -448,8 +448,10 @@ function inlineLeaks(text, openers, scope, meter) {
|
|
|
448
448
|
while (next < openers.length && openers[next].open < end) {
|
|
449
449
|
inside.push(openers[next++]);
|
|
450
450
|
}
|
|
451
|
-
if (inside.length > 0)
|
|
452
|
-
|
|
451
|
+
if (inside.length > 0) {
|
|
452
|
+
for (const span of paragraphLeaks(text, start, end, inside, scope, meter))
|
|
453
|
+
spans.push(span);
|
|
454
|
+
}
|
|
453
455
|
}
|
|
454
456
|
return spans;
|
|
455
457
|
}
|
|
@@ -17,4 +17,6 @@ declare const HEX_BLOB: RegExp;
|
|
|
17
17
|
declare const SPACED_LETTERS: RegExp;
|
|
18
18
|
/** Three+ alphabetic tokens joined by `|` (no shell spaces around pipes). */
|
|
19
19
|
declare const PIPE_SEPARATED: RegExp;
|
|
20
|
-
|
|
20
|
+
/** A pattern of its own for one scan to move `lastIndex` on, of the same class as `pattern`. */
|
|
21
|
+
declare function freshPattern(pattern: RegExp): RegExp;
|
|
22
|
+
export { BASE64_BLOB, freshPattern, HEX_BLOB, INJECTION_PATTERNS, overrideFrame, PIPE_SEPARATED, SPACED_LETTERS, };
|
|
@@ -117,10 +117,93 @@ const INJECTION_PATTERNS = [
|
|
|
117
117
|
IGNORE_MULTILANG,
|
|
118
118
|
OVERRIDE_FRAME,
|
|
119
119
|
];
|
|
120
|
+
/**
|
|
121
|
+
* A pattern whose `exec` is a scan written by hand, which finds exactly the matches of its `source`.
|
|
122
|
+
* V8 grows its regex stack once per step of a repeated group whose steps differ in length, so on a run
|
|
123
|
+
* of millions of characters that regex throws. The egress automata are still built from `source`.
|
|
124
|
+
*/
|
|
125
|
+
class ScannedPattern extends RegExp {
|
|
126
|
+
exec(text) {
|
|
127
|
+
for (let start = this.lastIndex; start < text.length; start++) {
|
|
128
|
+
const end = this.endOf(text, start);
|
|
129
|
+
if (end < 0)
|
|
130
|
+
continue;
|
|
131
|
+
this.lastIndex = end;
|
|
132
|
+
return Object.assign([text.slice(start, end)], {
|
|
133
|
+
index: start,
|
|
134
|
+
input: text,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
this.lastIndex = 0;
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
const WHITESPACE = /\s/;
|
|
142
|
+
function isHex(code) {
|
|
143
|
+
return (code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102);
|
|
144
|
+
}
|
|
145
|
+
function isLetter(code) {
|
|
146
|
+
return (code >= 65 && code <= 90) || (code >= 97 && code <= 122);
|
|
147
|
+
}
|
|
148
|
+
/** A character `\b` counts as part of a word: a letter, a digit, or `_`. */
|
|
149
|
+
function isWordChar(code) {
|
|
150
|
+
return isLetter(code) || (code >= 48 && code <= 57) || code === 95;
|
|
151
|
+
}
|
|
152
|
+
class HexBlob extends ScannedPattern {
|
|
153
|
+
constructor() {
|
|
154
|
+
super('(?:[0-9a-f]{2}[\\s]?){8,}', 'gi');
|
|
155
|
+
}
|
|
156
|
+
endOf(text, start) {
|
|
157
|
+
let at = start;
|
|
158
|
+
let pairs = 0;
|
|
159
|
+
while (isHex(text.charCodeAt(at)) && isHex(text.charCodeAt(at + 1))) {
|
|
160
|
+
at += 2;
|
|
161
|
+
pairs++;
|
|
162
|
+
if (at < text.length && WHITESPACE.test(text[at]))
|
|
163
|
+
at++;
|
|
164
|
+
}
|
|
165
|
+
return pairs >= 8 ? at : -1;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
class PipeSeparated extends ScannedPattern {
|
|
169
|
+
constructor() {
|
|
170
|
+
super('\\b(?:[A-Za-z]+\\|){2,}[A-Za-z]+\\b', 'g');
|
|
171
|
+
}
|
|
172
|
+
endOf(text, start) {
|
|
173
|
+
if (!isLetter(text.charCodeAt(start)) || isWordChar(text.charCodeAt(start - 1)))
|
|
174
|
+
return -1;
|
|
175
|
+
let at = start;
|
|
176
|
+
let piped = 0;
|
|
177
|
+
let lastWordEnd = -1;
|
|
178
|
+
for (;;) {
|
|
179
|
+
let end = at;
|
|
180
|
+
while (isLetter(text.charCodeAt(end)))
|
|
181
|
+
end++;
|
|
182
|
+
if (end > at && text[end] === '|') {
|
|
183
|
+
piped++;
|
|
184
|
+
lastWordEnd = end;
|
|
185
|
+
at = end + 1;
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
if (end > at && piped >= 2 && !isWordChar(text.charCodeAt(end)))
|
|
189
|
+
return end;
|
|
190
|
+
// why: The regex backtracks one step, so the last piped word is the final one.
|
|
191
|
+
return piped >= 3 ? lastWordEnd : -1;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
120
195
|
/** Runs that might encode an injection; each is decoded and checked in `injection.ts`. */
|
|
121
|
-
const BASE64_BLOB = /[A-Za-z0-9+/]{16
|
|
122
|
-
const HEX_BLOB =
|
|
196
|
+
const BASE64_BLOB = /[A-Za-z0-9+/]{16}[A-Za-z0-9+/]*={0,2}/g;
|
|
197
|
+
const HEX_BLOB = new HexBlob();
|
|
123
198
|
const SPACED_LETTERS = /\b(?:[A-Za-z] ){3,}[A-Za-z]\b/g;
|
|
124
199
|
/** Three+ alphabetic tokens joined by `|` (no shell spaces around pipes). */
|
|
125
|
-
const PIPE_SEPARATED =
|
|
126
|
-
|
|
200
|
+
const PIPE_SEPARATED = new PipeSeparated();
|
|
201
|
+
/** A pattern of its own for one scan to move `lastIndex` on, of the same class as `pattern`. */
|
|
202
|
+
function freshPattern(pattern) {
|
|
203
|
+
if (pattern instanceof HexBlob)
|
|
204
|
+
return new HexBlob();
|
|
205
|
+
if (pattern instanceof PipeSeparated)
|
|
206
|
+
return new PipeSeparated();
|
|
207
|
+
return new RegExp(pattern.source, pattern.flags);
|
|
208
|
+
}
|
|
209
|
+
export { BASE64_BLOB, freshPattern, HEX_BLOB, INJECTION_PATTERNS, overrideFrame, PIPE_SEPARATED, SPACED_LETTERS, };
|