@crvouga/mockingbird-service-junction 3.7.0 → 3.7.1

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/CHANGELOG.md CHANGED
@@ -1,6 +1,12 @@
1
1
  # Changelog — @crvouga/mockingbird-service-junction
2
2
 
3
- ## 3.7.0 (2026-10-19)
3
+ ## 3.7.1 (2026-10-20)
4
+
5
+ ### Fixes and improvements
6
+
7
+ - resolve issues without an oracle gate ([96e84be](https://github.com/crvouga/mockingbird/commit/96e84be3964a0baa5d8d82c59339d4bbc264b1a6))
8
+
9
+ ## 3.7.0 (2026-10-18)
4
10
 
5
11
  ### Features
6
12
 
package/README.md CHANGED
@@ -1049,32 +1049,71 @@ from the public contract, **not measured production parity**. Both `expected-con
1049
1049
  and `sandbox-observed` return the persisted account association in POST/GET; a synthetic
1050
1050
  requisition uses that same stored provider account number.
1051
1051
 
1052
- `sandbox-observed` uses explicit, account-owned observations, never a global delegated
1053
- account billing override. For example, with synthetic fixture IDs:
1052
+ For [#440](https://github.com/crvouga/mockingbird/issues/440), the scoped account-owned
1053
+ billing control is a **best guess, not oracle-verified**. The reporter observed an explicit
1054
+ `client_bill` refusal for a root-selected delegated BioReference account even though its listing
1055
+ allowed that billing in AZ. They reported `400 {"detail":"Lab 13 does not support billing type patient_bill_passthrough"}`
1056
+ in the sandbox and the same error with `Lab 14` in production, including sandbox panel/add-on,
1057
+ home/walk-in and physician-present controls. These are report-derived errors; neither their
1058
+ cause nor a general vendor billing rule has been established. The repository's
1059
+ [2026-10-20 sanitized probe](https://github.com/crvouga/mockingbird/actions/runs/39397939244)
1060
+ could not find matching account/test inventory, recorded no order observations and created no
1061
+ user or orders. This evidence limit does not prevent a suite from testing the explicit fallback.
1062
+
1063
+ Configure the reported refusal against the ID of a synthetic account loaded by `labAccounts`
1064
+ or your corpus. For example:
1054
1065
 
1055
1066
  ```ts
1056
1067
  import { createRuntime } from "@crvouga/mockingbird-service-junction"
1057
1068
 
1069
+ const delegatedAccountId = "11111111-1111-4111-8111-111111111111"
1058
1070
  const runtime = createRuntime({
1071
+ labAccounts: [{
1072
+ id: delegatedAccountId,
1073
+ lab: "bioreference",
1074
+ org_id: "55555555-5555-4555-8555-555555555555",
1075
+ delegated_flow: "order_delegated",
1076
+ allowed_billing: { client_bill: ["AZ"] },
1077
+ }],
1059
1078
  labAccountBehavior: {
1060
- profile: "sandbox-observed",
1079
+ profile: "observed",
1080
+ oracle: "sandbox",
1061
1081
  accounts: {
1062
- "synthetic-delegated-id": {
1082
+ [delegatedAccountId]: {
1063
1083
  rejectBilling: { client_bill: "Lab 13 does not support billing type patient_bill_passthrough" },
1064
1084
  },
1065
- "synthetic-ny-id": { allowBilling: { client_bill: ["NY", "NJ"] } },
1066
1085
  },
1067
1086
  },
1068
1087
  })
1069
1088
  ```
1070
1089
 
1071
- These controls encode the independently reported observations in #440/#441. For #440 the
1072
- reporter states that production returns the same refusal for a delegated BioReference
1073
- account with explicit `client_bill` ("Lab 14 ..." there, "Lab 13 ..." in the sandbox);
1074
- that is a reported observation, not a repository probe, and the vendor has not explained it,
1075
- so no billing rule is built in. Exceptions apply only to explicit
1076
- root account IDs and explicit billing. `defaultBillingTypes` still governs omitted
1077
- billing independently. `GET/PUT /__admin/lab-account-behavior` inspect/change one
1090
+ Load a BioReference panel or marker catalog in the same runtime's corpus, then submit your
1091
+ normal valid order with root `lab_account_id: delegatedAccountId` and
1092
+ `billing_type: "client_bill"`. This configuration returns the exact configured 400 detail before
1093
+ creating an order or webhook, including when `physician` is present. It applies to both panel
1094
+ and add-on orders and home/walk-in collection. To model the production report, choose
1095
+ `oracle: "production"` and change the configured detail to `Lab 14 ...`; the oracle label
1096
+ describes the intended environment, not proof of verification. `sandbox-observed` remains an
1097
+ alias for `observed` with `oracle: "sandbox"`.
1098
+
1099
+ The fallback is deliberately narrow: only that listed account's explicit root ID and explicit
1100
+ billing activate `rejectBilling`. Other delegated accounts keep their own policies. Omitting
1101
+ `billing_type` still uses `defaultBillingTypes` (or `client_bill` when no default is configured)
1102
+ and checks the account's listed billing. Thus this fixture accepts an omitted default
1103
+ `client_bill` even though it refuses explicit `client_bill`; configuring an omitted
1104
+ `patient_bill_passthrough` default rejects because the account lacks that billing, independently
1105
+ of `rejectBilling`. This distinction is the chosen emulator contract, not a verified production
1106
+ omission behavior. Nested-only IDs do not select the customer account. In the sandbox profile
1107
+ they follow the platform fallback with null POST/GET association; a successful root-selected
1108
+ account retains its persisted ID on both responses. Never treat nested-only acceptance as a
1109
+ successful delegated-account selection or retry a rejected customer order by dropping its ID.
1110
+
1111
+ These controls do not model why Junction overrides the requested billing, validate physician
1112
+ selection, or establish any production omission/returned-identity rule. Native behavior remains
1113
+ the default. For the separately reported NY/NJ exception in #441, `allowBilling` can map an
1114
+ explicit billing type to allowed states on that fixture's account, for example
1115
+ `{ allowBilling: { client_bill: ["NY", "NJ"] } }`; this too is a best guess, not oracle-verified.
1116
+ `GET/PUT /__admin/lab-account-behavior` inspect/change one
1078
1117
  namespace's policy; changes survive its reset and never affect another namespace.
1079
1118
  Unknown profile names are rejected. CLI/server equivalents are `--lab-account-profile`
1080
1119
  and `--lab-account-sandbox-policies <json-file>` (the account-policy object).
package/SUPPORT.md CHANGED
@@ -25,7 +25,7 @@ Generated from `openapi.yaml`; do not edit by hand.
25
25
  | `get_markers_v3_lab_tests_markers_get` | `GET /v3/lab_tests/markers` | ✅ supported | ❌ disabled | the marker inventory is the team's catalog (and any configured marker catalog); prices and availability are account-owned, so the emulator models the documented shape and filters, not a live inventory |
26
26
  | `get_markers_for_lab_test_v3_lab_tests__lab_test_id__markers_get` | `GET /v3/lab_tests/{lab_test_id}/markers` | ✅ supported | ✅ | |
27
27
  | `list_order_set_markers_v3_lab_tests_list_order_set_markers_post` | `POST /v3/lab_tests/list_order_set_markers` | ✅ supported | ✅ | |
28
- | `create_order_v3_order_post` | `POST /v3/order` | ✅ supported | ✅ | Native profile parity only; explicit account profiles add fixture-owned billing policies and custom-marker orders, without production parity certification. |
28
+ | `create_order_v3_order_post` | `POST /v3/order` | ✅ supported | ✅ | Native profile parity only; explicit account profiles add fixture-owned billing policies and custom-marker orders as a best guess, not oracle-verified. Account-specific billing refusals are opt-in report-derived behavior, not a global vendor rule. |
29
29
  | `get_area_info_v3_order_area_info_get` | `GET /v3/order/area/info` | ✅ supported | ❌ disabled | central_labs presence, within_radius counts and getlabs market coverage are provider-owned geo data that an emulator cannot replicate per-zip; covered by the client-parity scenario shape checks instead |
30
30
  | `get_psc_info_v3_order_psc_info_get` | `GET /v3/order/psc/info` | ✅ supported | ❌ disabled | patient_service_centers are real site inventories per zip (thousands of sites, result-capped at 30) that a fixture emulator cannot replicate per-zip; covered by the client-parity scenario shape checks instead |
31
31
  | `get_phlebotomy_appointment_availability_v3_order_phlebotomy_appointment_availability_post` | `POST /v3/order/phlebotomy/appointment/availability` | ✅ supported | ❌ disabled | availability slots are provider-side data whose values shift between sandbox calls; covered by the emulator-internal scheduling property suite instead |
@@ -13,7 +13,7 @@ import {
13
13
  pullCorpus,
14
14
  resolveAdminPrefix,
15
15
  restoreClock
16
- } from "./chunk-27N4VA23.js";
16
+ } from "./chunk-ZJCE4VM4.js";
17
17
  import {
18
18
  defaultCorpus
19
19
  } from "./chunk-2FZJPMTR.js";
@@ -3070,7 +3070,7 @@ async function preflightFleet(config, options) {
3070
3070
  break;
3071
3071
  }
3072
3072
  }
3073
- targets.set(name, { ...target, packageVersion: packageVersion ?? "3.7.0" });
3073
+ targets.set(name, { ...target, packageVersion: packageVersion ?? "3.7.1" });
3074
3074
  } catch (error) {
3075
3075
  throw new Error(`service ${name}: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
3076
3076
  }
@@ -5255,4 +5255,4 @@ export {
5255
5255
  createServer2 as createServer,
5256
5256
  serveTarget
5257
5257
  };
5258
- //# sourceMappingURL=chunk-NTGGNJKR.js.map
5258
+ //# sourceMappingURL=chunk-BGYGWODK.js.map