clearotron 0.3.2-beta.1 → 0.3.2-beta.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/.env.example +29 -0
- package/INSTALL.md +2 -0
- package/README.md +15 -10
- package/bin/onboard.mjs +4 -4
- package/build-info.json +2 -2
- package/docs/CLIENT-MCP.md +54 -54
- package/docs/DELIVERY.md +16 -15
- package/docs/E2E.md +8 -8
- package/docs/GLOSSARY.md +2 -2
- package/docs/INTAKE.md +11 -11
- package/docs/ONBOARDING.md +17 -16
- package/docs/PORTAL.md +18 -16
- package/docs/README.md +10 -10
- package/docs/SECURITY.md +20 -20
- package/docs/architecture/01-product-overview.md +17 -16
- package/docs/architecture/02-architecture.md +6 -6
- package/docs/architecture/03-run-lifecycle.md +7 -7
- package/docs/architecture/04-configuration-reference.md +15 -13
- package/docs/architecture/05-config-governance.md +39 -30
- package/docs/architecture/05-customer-profiles.md +35 -35
- package/docs/architecture/06-operations-runbook.md +20 -20
- package/docs/architecture/07-quality-and-audit.md +17 -17
- package/docs/architecture/08-development-guide.md +3 -3
- package/docs/architecture/09-security-and-data.md +27 -27
- package/docs/architecture/README.md +1 -1
- package/docs/branding.md +8 -3
- package/docs/configuration.md +18 -18
- package/docs/writing-standard.md +3 -3
- package/driver/CHANGELOG.md +33 -0
- package/driver/driver.config.mjs +19 -3
- package/driver/package.json +1 -1
- package/driver/portal-service.mjs +34 -4
- package/driver/suite-census.json +118 -46
- package/mcp-server/CHANGELOG.md +8 -0
- package/mcp-server/package.json +1 -1
- package/mcp-server/packs/client/CONNECT.md +6 -6
- package/package.json +1 -1
- package/portal-ui/dist/assets/{index-BsbasHjM.js → index-Bki5jT_N.js} +3376 -2971
- package/portal-ui/dist/assets/{index-DNQpLYZF.css → index-De2RFLbT.css} +972 -205
- package/portal-ui/dist/index.html +2 -2
- package/portal-ui/package.json +1 -1
- package/providers/oauth-mcp-bridge/CHANGELOG.md +8 -0
- package/providers/oauth-mcp-bridge/package.json +1 -1
- package/providers/signa/src/core.js +29 -1
- package/scripts/ask-ai-render-check.mjs +287 -105
- package/scripts/release-note-required.mjs +16 -2
- package/scripts/release-pre-gate.mjs +111 -0
- package/scripts/settings-render-check.mjs +575 -0
- package/shared/brand.mjs +29 -0
- package/shared/connect-clients.mjs +99 -47
- package/shared/names-in-force.mjs +1 -0
- package/shared/stdio-connect.mjs +16 -2
- package/shared/writing-standard-classes.mjs +34 -3
|
@@ -49,8 +49,8 @@
|
|
|
49
49
|
-->
|
|
50
50
|
<link rel="preconnect" href="https://api.fontshare.com" crossorigin />
|
|
51
51
|
<link href="https://api.fontshare.com/v2/css?f[]=satoshi@400,500,700,900&display=swap" rel="stylesheet" />
|
|
52
|
-
<script type="module" crossorigin src="/portal/assets/index-
|
|
53
|
-
<link rel="stylesheet" crossorigin href="/portal/assets/index-
|
|
52
|
+
<script type="module" crossorigin src="/portal/assets/index-Bki5jT_N.js"></script>
|
|
53
|
+
<link rel="stylesheet" crossorigin href="/portal/assets/index-De2RFLbT.css">
|
|
54
54
|
</head>
|
|
55
55
|
<body>
|
|
56
56
|
<div id="root"></div>
|
package/portal-ui/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "portal-ui",
|
|
3
3
|
"private": true,
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "0.3.2-beta.
|
|
5
|
+
"version": "0.3.2-beta.3",
|
|
6
6
|
"license": "AGPL-3.0-only",
|
|
7
7
|
"description": "The unified trademark portal UI. One address, one login: who you are decides what you see. Built as a static bundle, served by driver/portal-service.mjs — the browser never reaches profile-service or recipe-service.",
|
|
8
8
|
"engines": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "trademark-oauth-mcp-bridge",
|
|
3
|
-
"version": "0.3.2-beta.
|
|
3
|
+
"version": "0.3.2-beta.3",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"private": true,
|
|
6
6
|
"description": "OAuth 2.1 MCP stdio bridge used by the engine's case-law gather stage (courtlistener / legaldatahunter).",
|
|
@@ -576,7 +576,35 @@ export function toSignaParams(p = {}) {
|
|
|
576
576
|
const mode = String(p.match_mode ?? "").trim();
|
|
577
577
|
if (mode === "exact" || mode === "phonetic" || mode === "prefix") out.strategies = [mode];
|
|
578
578
|
else if (mode === "starts_with" || mode === "ends_with" || mode === "contains") out.match = mode;
|
|
579
|
-
|
|
579
|
+
// ── `default` IS THE COUNT LANE'S WORD FOR THE SAME UNANCHORED QUERY THE PLAN LANE CALLS `{}` ────
|
|
580
|
+
//
|
|
581
|
+
// THE DEFECT. The count lane hands `match_mode: "default"` straight through — that is the word
|
|
582
|
+
// `COUNT_PREDICATES` gives the CONTAINING predicate, the one whose figure a client reads under
|
|
583
|
+
// "Filings containing the name". `default` matched none of the branches here, so neither request
|
|
584
|
+
// shape was selected, and `buildSearchRequest`'s else branch sent `strategies: ["exact"]`. The
|
|
585
|
+
// containing column therefore printed an exact count, on the axis that most signals how crowded a
|
|
586
|
+
// field is, and a client was told the field was less busy than it is in a number the report states
|
|
587
|
+
// as fact. Nothing failed and nothing was logged: a narrower query answers perfectly well, it just
|
|
588
|
+
// answers a different question.
|
|
589
|
+
//
|
|
590
|
+
// The branch below already does exactly this for the plan lane, which reaches here with NO mode at
|
|
591
|
+
// all. The two lanes mean the same thing by different words; they now take the same shape.
|
|
592
|
+
else if (mode === "default") {
|
|
593
|
+
if (typeof out.query === "string" && !out.query.includes("*")) out.match = "contains";
|
|
594
|
+
}
|
|
595
|
+
// ── AN UNRECOGNISED MODE REFUSES; IT DOES NOT QUIETLY BECOME A NARROWER SEARCH ──────────────────
|
|
596
|
+
//
|
|
597
|
+
// THE CLASS, and it has now bitten twice. This function's own header records `starts_with` falling
|
|
598
|
+
// through to a plain exact search — "a NARROWER query than the plan asked for, answering as though it
|
|
599
|
+
// were the one requested" — and `default` has just done the same on a client-facing figure. Both were
|
|
600
|
+
// fixed by adding the missing word. Adding words one defect at a time leaves the next unmapped mode
|
|
601
|
+
// to do it a third time, silently, in whichever direction happens to be wrong.
|
|
602
|
+
//
|
|
603
|
+
// So a mode this provider cannot express is now NAMED rather than approximated. The caller turns it
|
|
604
|
+
// into a refused cell, and a refused cell is a disclosed gap a reader can see; a wrong number is not
|
|
605
|
+
// visible at all. This can only fire where a number would otherwise have been silently wrong.
|
|
606
|
+
else if (mode) out.unsupported_match_mode = mode;
|
|
607
|
+
if (!mode && !p.match && !(Array.isArray(p.strategies) && p.strategies.length)) {
|
|
580
608
|
// ── THE `default` PREDICATE, WHICH JUST MADE EXECUTABLE ────────────────────────────────
|
|
581
609
|
// `planPredicateParams` returns {} for the plan's `default` predicate — no match_mode at all —
|
|
582
610
|
// and this branch is the only thing standing between that and `strategies: ["exact"]`. With
|