clearotron 0.2.2 → 0.2.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.
Files changed (118) hide show
  1. package/.env.example +28 -0
  2. package/.nvmrc +1 -1
  3. package/INSTALL.md +13 -11
  4. package/README.md +11 -16
  5. package/THIRD-PARTY-NOTICES.md +1 -1
  6. package/bin/clearotron.mjs +22 -0
  7. package/bin/example.mjs +4 -0
  8. package/bin/onboard.mjs +195 -19
  9. package/bin/start.mjs +154 -8
  10. package/build-info.json +2 -2
  11. package/demo/full-country-search/run/_driver/framework.json +1 -1
  12. package/demo/global-preliminary-search/run/_driver/framework.json +1 -1
  13. package/demo/knockout-search/run/_driver/framework.json +1 -1
  14. package/demo/multi-country-focus-search/run/_driver/framework.json +1 -1
  15. package/docs/E2E.md +5 -5
  16. package/docs/PORTAL.md +2 -2
  17. package/docs/README.md +5 -4
  18. package/docs/SECURITY.md +17 -0
  19. package/docs/architecture/04-configuration-reference.md +2 -0
  20. package/docs/architecture/05-config-governance.md +14 -0
  21. package/docs/architecture/05-customer-profiles.md +2 -2
  22. package/docs/configuration.md +4 -3
  23. package/driver/CHANGELOG.md +56 -0
  24. package/driver/common-law-receipts.mjs +1 -1
  25. package/driver/config-staleness.mjs +1 -1
  26. package/driver/dev-portal.mjs +2 -2
  27. package/driver/driver.config.mjs +1 -1
  28. package/driver/engine/cli-version.mjs +103 -0
  29. package/driver/enqueue-schema.mjs +8 -8
  30. package/driver/feedback-store.mjs +1 -1
  31. package/driver/findings-model.mjs +52 -2
  32. package/driver/flag-snapshot.mjs +20 -0
  33. package/driver/framework.mjs +1 -1
  34. package/driver/gateway.mjs +18 -1
  35. package/driver/package.json +3 -3
  36. package/driver/party-facts.mjs +2 -2
  37. package/driver/phase0.mjs +1 -1
  38. package/driver/pipeline.mjs +5 -5
  39. package/driver/plain-register.mjs +120 -0
  40. package/driver/portal-access.mjs +1 -1
  41. package/driver/portal-config-view.mjs +40 -1
  42. package/driver/portal-families.mjs +1 -1
  43. package/driver/portal-report.mjs +1 -1
  44. package/driver/portal-service.mjs +26 -7
  45. package/driver/portal-upstream.mjs +2 -2
  46. package/driver/predelivery-lint.mjs +121 -1
  47. package/driver/profile-page.html +10 -2
  48. package/driver/profile-service.mjs +4 -4
  49. package/driver/profiles/README.md +3 -3
  50. package/driver/profiles.mjs +144 -12
  51. package/driver/publish/index.mjs +2 -2
  52. package/driver/publish/knockout.mjs +7 -1
  53. package/driver/publish/render-knockout.mjs +453 -118
  54. package/driver/publish/render.mjs +2 -2
  55. package/driver/reference-strip-signatures.mjs +20 -0
  56. package/driver/search-policy.mjs +2 -2
  57. package/driver/skills/blind-frame/SKILL.md +1 -1
  58. package/driver/skills/knockout-assess/SKILL.md +84 -0
  59. package/driver/skills/matter-frame/SKILL.md +6 -6
  60. package/driver/skills/matter-frame/watchlist-reference.md +2 -2
  61. package/driver/skills/prelim-common-law/SKILL.md +1 -1
  62. package/driver/skills/prelim-search/SKILL.md +1 -1
  63. package/driver/skills/prelim-search/report-prose.md +82 -0
  64. package/driver/skills/prelim-search/risk-framework-demo.manifest.json +1 -1
  65. package/driver/skills/prelim-search/risk-framework-triage.manifest.json +1 -1
  66. package/driver/skills/prelim-search/risk-framework.manifest.json +1 -1
  67. package/driver/skills/prelim-search/synthesis-rules.md +1 -1
  68. package/driver/skills/prelim-variants/SKILL.md +3 -3
  69. package/driver/stages.mjs +4 -4
  70. package/driver/suite-census.json +134 -38
  71. package/driver/unit-inventory.mjs +184 -27
  72. package/driver/verify.mjs +1 -1
  73. package/driver/whatif-memo-run.mjs +26 -4
  74. package/driver/whatif-memo.mjs +19 -1
  75. package/examples/README.md +2 -2
  76. package/examples/grants.example.json +6 -7
  77. package/mcp-server/CHANGELOG.md +2 -0
  78. package/mcp-server/lib/scrub.mjs +1 -1
  79. package/mcp-server/lib/whatif.mjs +2 -2
  80. package/mcp-server/package.json +1 -1
  81. package/mcp-server/packs/ops/EXAMPLES.md +2 -2
  82. package/mcp-server/server.mjs +1 -1
  83. package/package.json +28 -10
  84. package/portal-ui/dist/assets/{index-Ct3iQtZ2.css → index-1ziUJX1E.css} +43 -2
  85. package/portal-ui/dist/assets/{index-BUGgiYtF.js → index-CEYvXdqH.js} +226 -49
  86. package/portal-ui/dist/index.html +2 -2
  87. package/portal-ui/package.json +1 -1
  88. package/providers/_shared/term-shape.mjs +1 -1
  89. package/providers/oauth-mcp-bridge/CHANGELOG.md +2 -0
  90. package/providers/oauth-mcp-bridge/package.json +1 -1
  91. package/providers/uspto-local/src/index-store.js +2 -2
  92. package/scripts/citation-line-check.mjs +121 -2
  93. package/scripts/env-classify.mjs +67 -3
  94. package/scripts/live-surface-check.mjs +38 -1
  95. package/scripts/nightly-notice.mjs +0 -2
  96. package/scripts/preinstall-node-check.mjs +24 -0
  97. package/scripts/strip-tracker-citations.mjs +29 -6
  98. package/scripts/test-run.mjs +16 -0
  99. package/shared/anon-overlay.mjs +3 -3
  100. package/shared/customer-store.mjs +1 -1
  101. package/shared/invocation.mjs +28 -0
  102. package/shared/names-in-force.mjs +2 -0
  103. package/shared/node-floor.mjs +97 -0
  104. package/shared/staff-domain.mjs +154 -0
  105. package/shared/store-in-repo.mjs +23 -2
  106. package/skills/clearotron-ops/SKILL.md +1 -1
  107. package/driver/recipes/README.md +0 -49
  108. package/driver/skills/prelim-search/risk-framework-aurora.manifest.json +0 -19
  109. package/driver/skills/prelim-search/risk-framework-aurora.md +0 -77
  110. package/driver/skills/prelim-search/risk-framework-zephyr.manifest.json +0 -14
  111. package/driver/skills/prelim-search/risk-framework-zephyr.md +0 -33
  112. package/driver/skills/prelim-search/worked-examples-aurora.md +0 -10
  113. package/driver/skills/prelim-search/worked-examples-zephyr.md +0 -10
  114. package/scripts/ai-page-render-check.mjs +0 -532
  115. package/scripts/clearances-render-check.mjs +0 -480
  116. package/scripts/composer-render-check.mjs +0 -1027
  117. package/scripts/home-render-check.mjs +0 -526
  118. package/scripts/portal-lifecycle-check.mjs +0 -639
@@ -82,8 +82,8 @@
82
82
  "todos": 0
83
83
  },
84
84
  "a-capture-that-stopped-describing-the-box-says-so.test.mjs": {
85
- "tests": 12,
86
- "asserts": 23,
85
+ "tests": 16,
86
+ "asserts": 32,
87
87
  "skips": 0,
88
88
  "todos": 0
89
89
  },
@@ -105,12 +105,24 @@
105
105
  "skips": 0,
106
106
  "todos": 0
107
107
  },
108
+ "a-child-failure-quotes-the-child.test.mjs": {
109
+ "tests": 6,
110
+ "asserts": 13,
111
+ "skips": 0,
112
+ "todos": 0
113
+ },
108
114
  "a-claim-may-not-outlive-its-evidence.test.mjs": {
109
115
  "tests": 14,
110
116
  "asserts": 46,
111
117
  "skips": 0,
112
118
  "todos": 0
113
119
  },
120
+ "a-clean-install-offers-generic-alone.test.mjs": {
121
+ "tests": 9,
122
+ "asserts": 14,
123
+ "skips": 0,
124
+ "todos": 0
125
+ },
114
126
  "a-credential-file-is-written-one-way.test.mjs": {
115
127
  "tests": 4,
116
128
  "asserts": 13,
@@ -129,6 +141,12 @@
129
141
  "skips": 0,
130
142
  "todos": 0
131
143
  },
144
+ "a-declared-non-knob-is-not-a-deletion-candidate.test.mjs": {
145
+ "tests": 4,
146
+ "asserts": 7,
147
+ "skips": 0,
148
+ "todos": 0
149
+ },
132
150
  "a-deduped-read-must-exist-on-the-card.test.mjs": {
133
151
  "tests": 8,
134
152
  "asserts": 16,
@@ -190,8 +208,8 @@
190
208
  "todos": 0
191
209
  },
192
210
  "a-door-that-is-not-there-is-not-a-door-that-agrees.test.mjs": {
193
- "tests": 19,
194
- "asserts": 69,
211
+ "tests": 20,
212
+ "asserts": 75,
195
213
  "skips": 0,
196
214
  "todos": 0
197
215
  },
@@ -304,14 +322,14 @@
304
322
  "todos": 0
305
323
  },
306
324
  "a-memo-has-a-door-onto-it.test.mjs": {
307
- "tests": 24,
308
- "asserts": 80,
325
+ "tests": 26,
326
+ "asserts": 85,
309
327
  "skips": 0,
310
328
  "todos": 0
311
329
  },
312
330
  "a-memo-over-a-delivered-report-leaves-it-alone.test.mjs": {
313
- "tests": 13,
314
- "asserts": 52,
331
+ "tests": 16,
332
+ "asserts": 60,
315
333
  "skips": 0,
316
334
  "todos": 0
317
335
  },
@@ -327,6 +345,12 @@
327
345
  "skips": 0,
328
346
  "todos": 0
329
347
  },
348
+ "a-new-citation-carries-something-that-can-be-checked.test.mjs": {
349
+ "tests": 7,
350
+ "asserts": 15,
351
+ "skips": 0,
352
+ "todos": 0
353
+ },
330
354
  "a-packaged-install-resolves-every-workspace-dependency.test.mjs": {
331
355
  "tests": 2,
332
356
  "asserts": 7,
@@ -507,6 +531,12 @@
507
531
  "skips": 0,
508
532
  "todos": 0
509
533
  },
534
+ "a-run-records-the-tool-that-served-it.test.mjs": {
535
+ "tests": 13,
536
+ "asserts": 32,
537
+ "skips": 0,
538
+ "todos": 0
539
+ },
510
540
  "a-run-that-cannot-settle-says-so.test.mjs": {
511
541
  "tests": 4,
512
542
  "asserts": 12,
@@ -555,6 +585,12 @@
555
585
  "skips": 0,
556
586
  "todos": 0
557
587
  },
588
+ "a-shipped-framework-states-provenance-a-customer-can-read.test.mjs": {
589
+ "tests": 2,
590
+ "asserts": 8,
591
+ "skips": 0,
592
+ "todos": 0
593
+ },
558
594
  "a-signal-immune-fixture-is-reaped-by-its-owner.test.mjs": {
559
595
  "tests": 10,
560
596
  "asserts": 20,
@@ -579,6 +615,12 @@
579
615
  "skips": 0,
580
616
  "todos": 0
581
617
  },
618
+ "a-staff-domain-is-a-grant-not-a-guess.test.mjs": {
619
+ "tests": 17,
620
+ "asserts": 77,
621
+ "skips": 0,
622
+ "todos": 0
623
+ },
582
624
  "a-stopped-run-says-why-it-stopped.test.mjs": {
583
625
  "tests": 3,
584
626
  "asserts": 11,
@@ -597,6 +639,12 @@
597
639
  "skips": 2,
598
640
  "todos": 0
599
641
  },
642
+ "a-timer-is-asked-about-as-a-timer.test.mjs": {
643
+ "tests": 7,
644
+ "asserts": 16,
645
+ "skips": 0,
646
+ "todos": 0
647
+ },
600
648
  "a-unit-configuration-cannot-reach-is-resolved-at-install.test.mjs": {
601
649
  "tests": 5,
602
650
  "asserts": 14,
@@ -627,6 +675,12 @@
627
675
  "skips": 2,
628
676
  "todos": 0
629
677
  },
678
+ "a-visible-line-is-written-for-the-client.test.mjs": {
679
+ "tests": 10,
680
+ "asserts": 23,
681
+ "skips": 0,
682
+ "todos": 0
683
+ },
630
684
  "a-wait-the-driver-could-not-measure-says-so.test.mjs": {
631
685
  "tests": 3,
632
686
  "asserts": 9,
@@ -1601,13 +1655,13 @@
1601
1655
  },
1602
1656
  "doctor-names-who-is-in-the-store.test.mjs": {
1603
1657
  "tests": 5,
1604
- "asserts": 14,
1658
+ "asserts": 15,
1605
1659
  "skips": 0,
1606
1660
  "todos": 0
1607
1661
  },
1608
1662
  "doctor-reads-the-units-not-the-shell.test.mjs": {
1609
- "tests": 20,
1610
- "asserts": 47,
1663
+ "tests": 24,
1664
+ "asserts": 66,
1611
1665
  "skips": 0,
1612
1666
  "todos": 0
1613
1667
  },
@@ -2230,8 +2284,8 @@
2230
2284
  "todos": 0
2231
2285
  },
2232
2286
  "invocation-prefix.test.mjs": {
2233
- "tests": 9,
2234
- "asserts": 15,
2287
+ "tests": 12,
2288
+ "asserts": 22,
2235
2289
  "skips": 0,
2236
2290
  "todos": 0
2237
2291
  },
@@ -2338,8 +2392,8 @@
2338
2392
  "todos": 0
2339
2393
  },
2340
2394
  "knockout-structured-read.test.mjs": {
2341
- "tests": 10,
2342
- "asserts": 47,
2395
+ "tests": 11,
2396
+ "asserts": 53,
2343
2397
  "skips": 0,
2344
2398
  "todos": 0
2345
2399
  },
@@ -2517,6 +2571,12 @@
2517
2571
  "skips": 4,
2518
2572
  "todos": 0
2519
2573
  },
2574
+ "no-test-account-reaches-the-package.test.mjs": {
2575
+ "tests": 15,
2576
+ "asserts": 26,
2577
+ "skips": 0,
2578
+ "todos": 0
2579
+ },
2520
2580
  "no-test-writes-inside-the-checkout.test.mjs": {
2521
2581
  "tests": 16,
2522
2582
  "asserts": 35,
@@ -2572,9 +2632,15 @@
2572
2632
  "todos": 0
2573
2633
  },
2574
2634
  "one-name-per-command.test.mjs": {
2575
- "tests": 2,
2576
- "asserts": 4,
2577
- "skips": 2,
2635
+ "tests": 4,
2636
+ "asserts": 9,
2637
+ "skips": 4,
2638
+ "todos": 0
2639
+ },
2640
+ "one-node-floor-read-in-one-place.test.mjs": {
2641
+ "tests": 7,
2642
+ "asserts": 24,
2643
+ "skips": 0,
2578
2644
  "todos": 0
2579
2645
  },
2580
2646
  "one-repeat-detector-three-receivers.test.mjs": {
@@ -2733,6 +2799,12 @@
2733
2799
  "skips": 0,
2734
2800
  "todos": 0
2735
2801
  },
2802
+ "plain-words-on-what-the-reader-sees-first.test.mjs": {
2803
+ "tests": 14,
2804
+ "asserts": 35,
2805
+ "skips": 0,
2806
+ "todos": 0
2807
+ },
2736
2808
  "plan-qid-is-an-identity.test.mjs": {
2737
2809
  "tests": 10,
2738
2810
  "asserts": 30,
@@ -2830,8 +2902,8 @@
2830
2902
  "todos": 0
2831
2903
  },
2832
2904
  "portal-service.test.mjs": {
2833
- "tests": 116,
2834
- "asserts": 621,
2905
+ "tests": 117,
2906
+ "asserts": 626,
2835
2907
  "skips": 0,
2836
2908
  "todos": 0
2837
2909
  },
@@ -3221,7 +3293,7 @@
3221
3293
  },
3222
3294
  "register-count.test.mjs": {
3223
3295
  "tests": 20,
3224
- "asserts": 148,
3296
+ "asserts": 153,
3225
3297
  "skips": 0,
3226
3298
  "todos": 0
3227
3299
  },
@@ -3623,7 +3695,7 @@
3623
3695
  },
3624
3696
  "runner.knockout-e2e.test.mjs": {
3625
3697
  "tests": 3,
3626
- "asserts": 112,
3698
+ "asserts": 115,
3627
3699
  "skips": 0,
3628
3700
  "todos": 0
3629
3701
  },
@@ -3976,8 +4048,8 @@
3976
4048
  "todos": 0
3977
4049
  },
3978
4050
  "store-in-repo.test.mjs": {
3979
- "tests": 19,
3980
- "asserts": 54,
4051
+ "tests": 23,
4052
+ "asserts": 64,
3981
4053
  "skips": 0,
3982
4054
  "todos": 0
3983
4055
  },
@@ -4156,8 +4228,8 @@
4156
4228
  "todos": 0
4157
4229
  },
4158
4230
  "the-citation-strip-removes-openers-and-nothing-else.test.mjs": {
4159
- "tests": 6,
4160
- "asserts": 18,
4231
+ "tests": 8,
4232
+ "asserts": 28,
4161
4233
  "skips": 0,
4162
4234
  "todos": 0
4163
4235
  },
@@ -4335,6 +4407,12 @@
4335
4407
  "skips": 0,
4336
4408
  "todos": 0
4337
4409
  },
4410
+ "the-knockout-page-leads-with-the-read.test.mjs": {
4411
+ "tests": 27,
4412
+ "asserts": 64,
4413
+ "skips": 0,
4414
+ "todos": 0
4415
+ },
4338
4416
  "the-link-we-send-opens.test.mjs": {
4339
4417
  "tests": 6,
4340
4418
  "asserts": 14,
@@ -4451,7 +4529,7 @@
4451
4529
  },
4452
4530
  "the-reference-strip-left-sentences-unfinished.test.mjs": {
4453
4531
  "tests": 6,
4454
- "asserts": 13,
4532
+ "asserts": 14,
4455
4533
  "skips": 3,
4456
4534
  "todos": 0
4457
4535
  },
@@ -4503,6 +4581,12 @@
4503
4581
  "skips": 0,
4504
4582
  "todos": 0
4505
4583
  },
4584
+ "the-runtime-floor-is-read-not-restated.test.mjs": {
4585
+ "tests": 10,
4586
+ "asserts": 26,
4587
+ "skips": 0,
4588
+ "todos": 0
4589
+ },
4506
4590
  "the-seats-attestation-decides-the-use-source.test.mjs": {
4507
4591
  "tests": 5,
4508
4592
  "asserts": 9,
@@ -4557,6 +4641,12 @@
4557
4641
  "skips": 0,
4558
4642
  "todos": 0
4559
4643
  },
4644
+ "the-two-register-rule-says-the-same-thing-to-both-products.test.mjs": {
4645
+ "tests": 5,
4646
+ "asserts": 7,
4647
+ "skips": 0,
4648
+ "todos": 0
4649
+ },
4560
4650
  "the-verb-table-resolves-to-files-that-ship.test.mjs": {
4561
4651
  "tests": 6,
4562
4652
  "asserts": 12,
@@ -4733,7 +4823,7 @@
4733
4823
  },
4734
4824
  "update-refuses-on-a-packaged-install.test.mjs": {
4735
4825
  "tests": 6,
4736
- "asserts": 20,
4826
+ "asserts": 21,
4737
4827
  "skips": 0,
4738
4828
  "todos": 0
4739
4829
  },
@@ -5198,8 +5288,8 @@
5198
5288
  "ext": "ts",
5199
5289
  "perFile": {
5200
5290
  "api.test.ts": {
5201
- "tests": 34,
5202
- "asserts": 124,
5291
+ "tests": 35,
5292
+ "asserts": 128,
5203
5293
  "skips": 0,
5204
5294
  "todos": 0
5205
5295
  },
@@ -5222,8 +5312,8 @@
5222
5312
  "todos": 0
5223
5313
  },
5224
5314
  "composerProduct.test.ts": {
5225
- "tests": 21,
5226
- "asserts": 93,
5315
+ "tests": 27,
5316
+ "asserts": 108,
5227
5317
  "skips": 0,
5228
5318
  "todos": 0
5229
5319
  },
@@ -5270,8 +5360,8 @@
5270
5360
  "todos": 0
5271
5361
  },
5272
5362
  "guard.test.ts": {
5273
- "tests": 14,
5274
- "asserts": 37,
5363
+ "tests": 15,
5364
+ "asserts": 43,
5275
5365
  "skips": 0,
5276
5366
  "todos": 0
5277
5367
  },
@@ -5324,8 +5414,8 @@
5324
5414
  "todos": 0
5325
5415
  },
5326
5416
  "newClearanceStructure.test.ts": {
5327
- "tests": 3,
5328
- "asserts": 29,
5417
+ "tests": 8,
5418
+ "asserts": 57,
5329
5419
  "skips": 0,
5330
5420
  "todos": 0
5331
5421
  },
@@ -5371,6 +5461,12 @@
5371
5461
  "skips": 0,
5372
5462
  "todos": 0
5373
5463
  },
5464
+ "readiness.test.ts": {
5465
+ "tests": 6,
5466
+ "asserts": 19,
5467
+ "skips": 0,
5468
+ "todos": 0
5469
+ },
5374
5470
  "reads.test.ts": {
5375
5471
  "tests": 18,
5376
5472
  "asserts": 38,
@@ -5402,8 +5498,8 @@
5402
5498
  "todos": 0
5403
5499
  },
5404
5500
  "screenCopy.test.ts": {
5405
- "tests": 51,
5406
- "asserts": 163,
5501
+ "tests": 56,
5502
+ "asserts": 178,
5407
5503
  "skips": 0,
5408
5504
  "todos": 0
5409
5505
  },