@noresponse/mcp 0.5.5 → 0.5.7

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,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.5.7
4
+
5
+ * `SDK.assessments.create()`: `response` **Changed**
6
+ * `SDK.assessments.get()`: `response` **Changed**
7
+ * `SDK.assessments.query()`: `response.items[].risk` **Changed**
8
+ * `SDK.accounts.listChanged()`: `response.items[].risk.reasons[]` **Changed**
9
+ * `SDK.accounts.get()`: `response.risk.reasons[]` **Changed**
10
+ * `SDK.accounts.listAssessments()`: `response.items[].risk` **Changed**
11
+
12
+ ## 0.5.6
13
+
14
+ * `SDK.assessments.create()`: `response.account.risk.reasons[].code` **Changed** (Breaking ⚠️)
15
+ * `SDK.assessments.get()`: `response.account.risk.reasons[].code` **Changed** (Breaking ⚠️)
16
+ * `SDK.assessments.query()`: `response.items[].risk.reasons[].code` **Changed** (Breaking ⚠️)
17
+ * `SDK.accounts.listChanged()`: `response.items[].risk.reasons[].code` **Changed** (Breaking ⚠️)
18
+ * `SDK.accounts.get()`: `response.risk.reasons[].code` **Changed** (Breaking ⚠️)
19
+ * `SDK.accounts.listAssessments()`: `response.items[].risk.reasons[].code` **Changed** (Breaking ⚠️)
20
+
3
21
  ## 0.5.5
4
22
 
5
23
  * `SDK.integrations.create()`:
package/bin/mcp-server.js CHANGED
@@ -48104,9 +48104,9 @@ var init_config = __esm(() => {
48104
48104
  SDK_METADATA = {
48105
48105
  language: "typescript",
48106
48106
  openapiDocVersion: "1",
48107
- sdkVersion: "0.5.5",
48107
+ sdkVersion: "0.5.7",
48108
48108
  genVersion: "internal",
48109
- userAgent: "noresponse-sdk/mcp-typescript 0.5.5 internal 1 @noresponse/mcp"
48109
+ userAgent: "noresponse-sdk/mcp-typescript 0.5.7 internal 1 @noresponse/mcp"
48110
48110
  };
48111
48111
  });
48112
48112
 
@@ -50272,6 +50272,29 @@ var init_accountdecisionsbyflow = __esm(() => {
50272
50272
  }).describe("The decision for each flow: the account's score under that flow's thresholds. A flow the workspace has not set uses its account_creation thresholds, so the flows differ only where it set them. The flow of the current assessment is held while that flow's admission is held and the assessment's investigation has not completed.");
50273
50273
  });
50274
50274
 
50275
+ // src/models/direction.ts
50276
+ var Direction$zodSchema;
50277
+ var init_direction = __esm(() => {
50278
+ init_zod();
50279
+ Direction$zodSchema = _enum([
50280
+ "raises",
50281
+ "lowers",
50282
+ "neutral"
50283
+ ]);
50284
+ });
50285
+
50286
+ // src/models/impact.ts
50287
+ var Impact$zodSchema;
50288
+ var init_impact = __esm(() => {
50289
+ init_zod();
50290
+ Impact$zodSchema = _enum([
50291
+ "none",
50292
+ "low",
50293
+ "medium",
50294
+ "high"
50295
+ ]);
50296
+ });
50297
+
50275
50298
  // src/models/reasoncode.ts
50276
50299
  var ReasonCode$zodSchema;
50277
50300
  var init_reasoncode = __esm(() => {
@@ -50318,7 +50341,13 @@ var init_reasoncode = __esm(() => {
50318
50341
  "email_domain_no_mx",
50319
50342
  "email_domain_nonexistent",
50320
50343
  "forum_sanctioned",
50321
- "prior_payment_abuse"
50344
+ "prior_payment_abuse",
50345
+ "ip_history_match",
50346
+ "identity_attribute_conflict",
50347
+ "impossible_identity_age",
50348
+ "breach_shared_ip",
50349
+ "nationality_mismatch",
50350
+ "minor_identity"
50322
50351
  ]).describe("A stable reason code. New codes may appear; ignore any you do not know.");
50323
50352
  });
50324
50353
 
@@ -50340,13 +50369,17 @@ var init_reasonidentifier = __esm(() => {
50340
50369
  var AccountRiskReason$zodSchema;
50341
50370
  var init_accountriskreason = __esm(() => {
50342
50371
  init_zod();
50372
+ init_direction();
50373
+ init_impact();
50343
50374
  init_reasoncode();
50344
50375
  init_reasonidentifier();
50345
50376
  AccountRiskReason$zodSchema = object({
50346
50377
  code: ReasonCode$zodSchema.describe("A stable reason code. New codes may appear; ignore any you do not know."),
50378
+ direction: Direction$zodSchema,
50347
50379
  identifier: ReasonIdentifier$zodSchema.optional().describe("The submitted identifier or client context field a reason concerns; absent when it concerns the whole assessment. Client context is a claimed hint, not a device fingerprint."),
50348
- weight: int()
50349
- });
50380
+ impact: Impact$zodSchema,
50381
+ weight: literal(0).default(0).optional().describe("Deprecated and always 0: the policy's weights are not published. It is sent so that SDK versions that require it keep reading reasons. Read direction and impact.")
50382
+ }).describe("One reason that fired. direction is whether it raises or lowers the score, or is neutral (informational, it moves nothing). impact is a coarse band of how much it moves the score: none for a neutral reason, otherwise low, medium or high.");
50350
50383
  });
50351
50384
 
50352
50385
  // src/models/accountrisk.ts
@@ -50357,7 +50390,7 @@ var init_accountrisk = __esm(() => {
50357
50390
  init_accountriskreason();
50358
50391
  AccountRisk$zodSchema = object({
50359
50392
  decision: AccountDecision$zodSchema.describe("block when the score reached your block threshold (risk.block of the assessment), otherwise the assessment's recommendation. held only for a flow whose admission is held (settings flows.<flow>.admission), when the account's current assessment was made for that flow and its investigation has not completed (status partial): the final decision arrives as account.risk_changed when the investigation completes, decided by its score, or when the hold's deadline (hold_seconds after the assessment was created) passes first, as the flow's on_expiry action or the decision the evidence so far gives, whichever is stricter. Your application applies it."),
50360
- reasons: array(AccountRiskReason$zodSchema).describe("Every reason that fired, highest weight first. The weights sum to score before clamping."),
50393
+ reasons: array(AccountRiskReason$zodSchema).describe("Every reason that fired: risk-raising reasons first, then neutral, then risk-lowering, each strongest impact band first and then by code. The policy's numeric weights are kept private, so a reason carries only its direction and impact band."),
50361
50394
  score: int().describe("0 (safe) to 100 (risky), as risk.score of the assessment.")
50362
50395
  });
50363
50396
  });
@@ -50569,7 +50602,7 @@ var init_breachselector = __esm(() => {
50569
50602
  "email",
50570
50603
  "username",
50571
50604
  "ip"
50572
- ]).describe("The submitted identifier a breach table matched on: email or username. Phone and name are not breach selectors.");
50605
+ ]).describe("The submitted email or username whose own search matched the table. A submitted full name is searched as well, and what it finds feeds the identity's reasons rather than this list.");
50573
50606
  });
50574
50607
 
50575
50608
  // src/models/breach.ts
@@ -50584,7 +50617,7 @@ var init_breach = __esm(() => {
50584
50617
  domain: string2().optional().describe("The breached site's domain, lower case. Absent when the table has none (a credential list, for example)."),
50585
50618
  exposed: array(BreachExposed$zodSchema).optional(),
50586
50619
  kind: BreachKind$zodSchema.describe("Who is in the table: site_breach, a site's own users; credential_list, a combolist or compilation; stealer_log, malware or botnet victims; scrape; hacking_forum, a criminal hacking, cracking or carding community; abuse_service, the customers of DDoS-for-hire, account generators, dump or card shops, darknet markets, stalkerware or breach-lookup services; darkweb_site, an onion site of unknown purpose."),
50587
- matched_on: BreachSelector$zodSchema.describe("The submitted identifier a breach table matched on: email or username. Phone and name are not breach selectors."),
50620
+ matched_on: BreachSelector$zodSchema.describe("The submitted email or username whose own search matched the table. A submitted full name is searched as well, and what it finds feeds the identity's reasons rather than this list."),
50588
50621
  month: int().optional().describe("Absent when only the year is known."),
50589
50622
  name: string2(),
50590
50623
  year: int().optional().describe("A breach table's date year.")
@@ -50601,6 +50634,58 @@ var init_riskdetailsbreachname = __esm(() => {
50601
50634
  });
50602
50635
  });
50603
50636
 
50637
+ // src/models/footprintfamily.ts
50638
+ var FootprintFamily$zodSchema;
50639
+ var init_footprintfamily = __esm(() => {
50640
+ init_zod();
50641
+ FootprintFamily$zodSchema = _enum([
50642
+ "account_presence",
50643
+ "auth_provider",
50644
+ "breach",
50645
+ "breach_abuse",
50646
+ "code_hosting"
50647
+ ]).describe("The source-neutral kind of evidence: account_presence (an account found on a site), auth_provider (the account at your auth provider), breach (breach and credential tables), breach_abuse (abuse and fraud communities' tables) and code_hosting (a code hosting profile).");
50648
+ });
50649
+
50650
+ // src/models/identifier.ts
50651
+ var Identifier$zodSchema;
50652
+ var init_identifier = __esm(() => {
50653
+ init_zod();
50654
+ Identifier$zodSchema = _enum([
50655
+ "email",
50656
+ "username"
50657
+ ]);
50658
+ });
50659
+
50660
+ // src/models/riskdetailseventkind.ts
50661
+ var RiskDetailsEventKind$zodSchema;
50662
+ var init_riskdetailseventkind = __esm(() => {
50663
+ init_zod();
50664
+ RiskDetailsEventKind$zodSchema = _enum([
50665
+ "created",
50666
+ "last_active",
50667
+ "breached"
50668
+ ]);
50669
+ });
50670
+
50671
+ // src/models/riskdetailsevent.ts
50672
+ var RiskDetailsEvent$zodSchema;
50673
+ var init_riskdetailsevent = __esm(() => {
50674
+ init_zod();
50675
+ init_footprintfamily();
50676
+ init_identifier();
50677
+ init_riskdetailseventkind();
50678
+ RiskDetailsEvent$zodSchema = object({
50679
+ category: string2(),
50680
+ family: FootprintFamily$zodSchema.describe("The source-neutral kind of evidence: account_presence (an account found on a site), auth_provider (the account at your auth provider), breach (breach and credential tables), breach_abuse (abuse and fraud communities' tables) and code_hosting (a code hosting profile)."),
50681
+ identifier: Identifier$zodSchema,
50682
+ kind: RiskDetailsEventKind$zodSchema,
50683
+ month: int().optional(),
50684
+ site: string2(),
50685
+ year: int()
50686
+ });
50687
+ });
50688
+
50604
50689
  // src/models/riskdetailsphonename.ts
50605
50690
  var RiskDetailsPhoneName$zodSchema;
50606
50691
  var init_riskdetailsphonename = __esm(() => {
@@ -50617,10 +50702,12 @@ var init_riskdetails = __esm(() => {
50617
50702
  init_zod();
50618
50703
  init_breach();
50619
50704
  init_riskdetailsbreachname();
50705
+ init_riskdetailsevent();
50620
50706
  init_riskdetailsphonename();
50621
50707
  RiskDetails$zodSchema = object({
50622
50708
  breach_names: array(RiskDetailsBreachName$zodSchema).optional().describe("Names found next to the identifiers in breach records, merged, with the number of distinct tables each was seen in."),
50623
50709
  breaches: array(Breach$zodSchema).optional().describe("The matching breach tables, newest first, at most 50."),
50710
+ events: array(RiskDetailsEvent$zodSchema).optional().describe("The identity's dated footprint events, newest first, at most 100: the year and month, what happened (created, last_active, breached), the site, its category, the kind of evidence and the identifier it belongs to. No breach value: dates are coarsened to the month."),
50624
50711
  phone_names: array(RiskDetailsPhoneName$zodSchema).optional()
50625
50712
  }).describe("Detailed view only (response_mode=detailed, which needs the detailed scope); a standard answer leaves it out. Merged observations without provider, source, origin, raw breach record, value or score.");
50626
50713
  });
@@ -50629,13 +50716,17 @@ var init_riskdetails = __esm(() => {
50629
50716
  var RiskReason$zodSchema;
50630
50717
  var init_riskreason = __esm(() => {
50631
50718
  init_zod();
50719
+ init_direction();
50720
+ init_impact();
50632
50721
  init_reasoncode();
50633
50722
  init_reasonidentifier();
50634
50723
  RiskReason$zodSchema = object({
50635
50724
  code: ReasonCode$zodSchema.describe("A stable reason code. New codes may appear; ignore any you do not know."),
50725
+ direction: Direction$zodSchema,
50636
50726
  identifier: ReasonIdentifier$zodSchema.optional().describe("The submitted identifier or client context field a reason concerns; absent when it concerns the whole assessment. Client context is a claimed hint, not a device fingerprint."),
50637
- weight: int()
50638
- });
50727
+ impact: Impact$zodSchema,
50728
+ weight: literal(0).default(0).optional().describe("Deprecated and always 0: the policy's weights are not published. It is sent so that SDK versions that require it keep reading reasons. Read direction and impact.")
50729
+ }).describe("One reason that fired. direction is whether it raises or lowers the score, or is neutral (informational, it moves nothing). impact is a coarse band of how much it moves the score: none for a neutral reason, otherwise low, medium or high.");
50639
50730
  });
50640
50731
 
50641
50732
  // src/models/consistencyvalue.ts
@@ -50675,6 +50766,78 @@ var init_consistency = __esm(() => {
50675
50766
  }).describe("Cross-identifier agreement, computed from facts only. Every member is optional; absent makes no claim.");
50676
50767
  });
50677
50768
 
50769
+ // src/models/agreement.ts
50770
+ var Agreement$zodSchema;
50771
+ var init_agreement = __esm(() => {
50772
+ init_zod();
50773
+ Agreement$zodSchema = _enum([
50774
+ "match",
50775
+ "partial",
50776
+ "mismatch"
50777
+ ]);
50778
+ });
50779
+
50780
+ // src/models/attributeagreement.ts
50781
+ var AttributeAgreement$zodSchema;
50782
+ var init_attributeagreement = __esm(() => {
50783
+ init_zod();
50784
+ init_agreement();
50785
+ AttributeAgreement$zodSchema = object({
50786
+ agreement: Agreement$zodSchema,
50787
+ support: int(),
50788
+ values: int()
50789
+ }).describe("How far independent sources agree on one attribute: values is the number of distinct values reported, support the tables and profiles reporting any, and agreement match (one value), partial (the most reported value holds more than half the support) or mismatch. The values themselves are not served.");
50790
+ });
50791
+
50792
+ // src/models/footprintcoherence.ts
50793
+ var FootprintCoherence$zodSchema;
50794
+ var init_footprintcoherence = __esm(() => {
50795
+ init_zod();
50796
+ init_attributeagreement();
50797
+ FootprintCoherence$zodSchema = object({
50798
+ birth_date: AttributeAgreement$zodSchema.optional().describe("How far independent sources agree on one attribute: values is the number of distinct values reported, support the tables and profiles reporting any, and agreement match (one value), partial (the most reported value holds more than half the support) or mismatch. The values themselves are not served."),
50799
+ city: AttributeAgreement$zodSchema.optional().describe("How far independent sources agree on one attribute: values is the number of distinct values reported, support the tables and profiles reporting any, and agreement match (one value), partial (the most reported value holds more than half the support) or mismatch. The values themselves are not served."),
50800
+ company: AttributeAgreement$zodSchema.optional().describe("How far independent sources agree on one attribute: values is the number of distinct values reported, support the tables and profiles reporting any, and agreement match (one value), partial (the most reported value holds more than half the support) or mismatch. The values themselves are not served."),
50801
+ country: AttributeAgreement$zodSchema.optional().describe("How far independent sources agree on one attribute: values is the number of distinct values reported, support the tables and profiles reporting any, and agreement match (one value), partial (the most reported value holds more than half the support) or mismatch. The values themselves are not served."),
50802
+ gender: AttributeAgreement$zodSchema.optional().describe("How far independent sources agree on one attribute: values is the number of distinct values reported, support the tables and profiles reporting any, and agreement match (one value), partial (the most reported value holds more than half the support) or mismatch. The values themselves are not served."),
50803
+ name: AttributeAgreement$zodSchema.optional().describe("How far independent sources agree on one attribute: values is the number of distinct values reported, support the tables and profiles reporting any, and agreement match (one value), partial (the most reported value holds more than half the support) or mismatch. The values themselves are not served."),
50804
+ nationality: AttributeAgreement$zodSchema.optional().describe("How far independent sources agree on one attribute: values is the number of distinct values reported, support the tables and profiles reporting any, and agreement match (one value), partial (the most reported value holds more than half the support) or mismatch. The values themselves are not served."),
50805
+ social: AttributeAgreement$zodSchema.optional().describe("How far independent sources agree on one attribute: values is the number of distinct values reported, support the tables and profiles reporting any, and agreement match (one value), partial (the most reported value holds more than half the support) or mismatch. The values themselves are not served."),
50806
+ website: AttributeAgreement$zodSchema.optional().describe("How far independent sources agree on one attribute: values is the number of distinct values reported, support the tables and profiles reporting any, and agreement match (one value), partial (the most reported value holds more than half the support) or mismatch. The values themselves are not served."),
50807
+ zip: AttributeAgreement$zodSchema.optional().describe("How far independent sources agree on one attribute: values is the number of distinct values reported, support the tables and profiles reporting any, and agreement match (one value), partial (the most reported value holds more than half the support) or mismatch. The values themselves are not served.")
50808
+ });
50809
+ });
50810
+
50811
+ // src/models/footprinttimeline.ts
50812
+ var FootprintTimeline$zodSchema;
50813
+ var init_footprinttimeline = __esm(() => {
50814
+ init_zod();
50815
+ init_footprintfamily();
50816
+ FootprintTimeline$zodSchema = object({
50817
+ families: array(FootprintFamily$zodSchema),
50818
+ first_seen_year: int(),
50819
+ last_active_year: int().optional(),
50820
+ last_seen_year: int(),
50821
+ sites: int(),
50822
+ span_years: int()
50823
+ }).describe("One identifier's dated footprint across every source: the first and last year any event was seen, the years between them, the latest year a source dated activity (omitted when none did), how many distinct sites and which kinds of evidence saw it.");
50824
+ });
50825
+
50826
+ // src/models/footprint.ts
50827
+ var Footprint$zodSchema;
50828
+ var init_footprint = __esm(() => {
50829
+ init_zod();
50830
+ init_footprintcoherence();
50831
+ init_footprintfamily();
50832
+ init_footprinttimeline();
50833
+ Footprint$zodSchema = object({
50834
+ coherence: FootprintCoherence$zodSchema.optional(),
50835
+ email: FootprintTimeline$zodSchema.optional().describe("One identifier's dated footprint across every source: the first and last year any event was seen, the years between them, the latest year a source dated activity (omitted when none did), how many distinct sites and which kinds of evidence saw it."),
50836
+ families: array(FootprintFamily$zodSchema),
50837
+ username: FootprintTimeline$zodSchema.optional().describe("One identifier's dated footprint across every source: the first and last year any event was seen, the years between them, the latest year a source dated activity (omitted when none did), how many distinct sites and which kinds of evidence saw it.")
50838
+ }).describe("How long and how widely the signup's email and username have existed, and how far independent sources agree on the person behind them, in years and counts only. families are the kinds of evidence that found either identifier. Omitted when nothing found them: a footprint lookup that failed makes no claim, and absence is no_digital_footprint's to state.");
50839
+ });
50840
+
50678
50841
  // src/models/ipsummarytype.ts
50679
50842
  var IpSummaryType$zodSchema;
50680
50843
  var init_ipsummarytype = __esm(() => {
@@ -50773,6 +50936,7 @@ var RiskSummary$zodSchema;
50773
50936
  var init_risksummary = __esm(() => {
50774
50937
  init_zod();
50775
50938
  init_consistency();
50939
+ init_footprint();
50776
50940
  init_ipsummary();
50777
50941
  init_risksummaryemail();
50778
50942
  init_risksummaryphone();
@@ -50780,6 +50944,7 @@ var init_risksummary = __esm(() => {
50780
50944
  RiskSummary$zodSchema = object({
50781
50945
  consistency: Consistency$zodSchema.optional().describe("Cross-identifier agreement, computed from facts only. Every member is optional; absent makes no claim."),
50782
50946
  email: RiskSummaryEmail$zodSchema.optional(),
50947
+ footprint: Footprint$zodSchema.optional().describe("How long and how widely the signup's email and username have existed, and how far independent sources agree on the person behind them, in years and counts only. families are the kinds of evidence that found either identifier. Omitted when nothing found them: a footprint lookup that failed makes no claim, and absence is no_digital_footprint's to state."),
50783
50948
  ip: IpSummary$zodSchema.optional().describe("Facts about the submitted IP from the offline database and this workspace's own recent assessments. Every member is optional; absent makes no claim."),
50784
50949
  phone: RiskSummaryPhone$zodSchema.optional(),
50785
50950
  username: RiskSummaryUsername$zodSchema.optional()
@@ -50805,12 +50970,12 @@ var init_risk = __esm(() => {
50805
50970
  coverage: RiskCoverage$zodSchema.describe("Sources counted by state, not named."),
50806
50971
  details: RiskDetails$zodSchema.optional().describe("Detailed view only (response_mode=detailed, which needs the detailed scope); a standard answer leaves it out. Merged observations without provider, source, origin, raw breach record, value or score."),
50807
50972
  policy_basis: literal("heuristic_unvalidated").default("heuristic_unvalidated").optional().describe("Labels the v0 policy as hand-authored and not statistically validated."),
50808
- policy_version: string2().describe("Version of the hand-authored heuristic weights that produced the recommendation, for example 'risk-2026-10.7'. A workspace threshold override adds a +t<N> suffix, e.g. 'risk-2026-10.7+t3'."),
50809
- reasons: array(RiskReason$zodSchema).describe("Every reason that fired, highest weight first. The weights sum to score before clamping."),
50973
+ policy_version: string2().describe("Version of the hand-authored heuristic policy that produced the recommendation, for example 'risk-2026-10.7'. A workspace threshold override adds a +t<N> suffix, e.g. 'risk-2026-10.7+t3'."),
50974
+ reasons: array(RiskReason$zodSchema).describe("Every reason that fired: risk-raising reasons first, then neutral, then risk-lowering, each strongest impact band first and then by code. The policy's numeric weights are kept private, so a reason carries only its direction and impact band."),
50810
50975
  recommendation: Recommendation$zodSchema.describe("The recommended action: allow, step_up or review. Your application applies it."),
50811
50976
  score: int(),
50812
50977
  summary: RiskSummary$zodSchema.optional().describe("A few typed facts per identifier. Every fact is optional: absent means the evidence did not answer and makes no claim, while false or 0 is a definite answer. Lanes that do not exist yet leave their members absent.")
50813
- }).describe("The one risk decision for this event. score is 0 (safe) to 100 (risky): the sum of the weights of the reasons that fired, clamped to 0 to 100, from hand-set versioned weights. Every answer with a recommendation carries it, and the top-level recommendation equals risk.recommendation. It names no source or provider.");
50978
+ }).describe("The one risk decision for this event. score is 0 (safe) to 100 (risky), set by the reasons that fired under a hand-set, versioned heuristic policy. Each reason carries its direction and impact band; the policy's weights are not published. Every answer with a recommendation carries it, and the top-level recommendation equals risk.recommendation. It names no source or provider.");
50814
50979
  });
50815
50980
 
50816
50981
  // src/models/failurereason.ts
@@ -51071,10 +51236,10 @@ var init_assessmentdetail = __esm(() => {
51071
51236
  expires_at: string2().describe("After this instant the assessment is no longer served: GET /v1/assessments/{assessment_id} answers 404 and it leaves the account history. It is created_at plus your retention period at creation (default and maximum 365 days) and is fixed per record: a later revision keeps it, and a new assessment for the same account starts its own clock. If you later shorten retention, the effective expiry becomes created_at plus the shorter of the two periods."),
51072
51237
  incomplete_sources: array(IncompleteSource$zodSchema).describe("The lanes that did not settle, each listed once with a reason; lanes, not sources. In a detailed view a lane is listed exactly when one of its signals did not settle; a standard view carries no signals to match."),
51073
51238
  policy_basis: literal("heuristic_unvalidated").default("heuristic_unvalidated").optional().describe("Labels the v0 policy as hand-authored and not statistically validated."),
51074
- policy_version: string2().describe("Version of the hand-authored heuristic weights that produced the recommendation, for example 'risk-2026-10.7'. A workspace threshold override adds a +t<N> suffix, e.g. 'risk-2026-10.7+t3'."),
51239
+ policy_version: string2().describe("Version of the hand-authored heuristic policy that produced the recommendation, for example 'risk-2026-10.7'. A workspace threshold override adds a +t<N> suffix, e.g. 'risk-2026-10.7+t3'."),
51075
51240
  recommendation: Recommendation$zodSchema.optional().describe("The recommended action: allow, step_up or review. Your application applies it."),
51076
51241
  request_id: string2().optional().describe("An optional provider correlation id, echoed back. It is not an idempotency key. Refuses an exact-shape JWT or a bare 40, 64 or 128 character hex digest; a UUID is accepted."),
51077
- risk: Risk$zodSchema.optional().describe("The one risk decision for this event. score is 0 (safe) to 100 (risky): the sum of the weights of the reasons that fired, clamped to 0 to 100, from hand-set versioned weights. Every answer with a recommendation carries it, and the top-level recommendation equals risk.recommendation. It names no source or provider."),
51242
+ risk: Risk$zodSchema.optional().describe("The one risk decision for this event. score is 0 (safe) to 100 (risky), set by the reasons that fired under a hand-set, versioned heuristic policy. Each reason carries its direction and impact band; the policy's weights are not published. Every answer with a recommendation carries it, and the top-level recommendation equals risk.recommendation. It names no source or provider."),
51078
51243
  schema_version: literal("1").default("1").optional().describe("Version of the body shape."),
51079
51244
  signals: array(Signal$zodSchema).optional().describe("Detailed view only (response_mode=detailed, which needs the detailed scope): a standard answer omits signals[], and a detailed one always carries it, possibly empty. The body does not name its mode, so that rule is the serving gate's; the schema states the half it can: an answer with risk.details is a detailed view and carries signals[]. At most one signal per (type, source_id, identifier)."),
51080
51245
  status: Status$zodSchema.describe("complete: final; nothing is still running. A lane that failed or missed its 10 s deadline stays listed in incomplete_sources, and confidence is lower. partial: a recommendation exists and at least one lane is still running or did not settle (see incomplete_sources). pending: nothing usable before the deadline; no recommendation yet, poll or wait for the webhook."),
@@ -52864,7 +53029,7 @@ var init_assessmentrequestidentifiers = __esm(() => {
52864
53029
  AssessmentRequestIdentifiers$zodSchema = object({
52865
53030
  email: string2().optional().describe("One address: a 1 to 64 character local part without whitespace, angle brackets, control or invisible characters, '@', and a domain with a letter TLD. Send an internationalised domain in punycode. Nothing is trimmed. The local part keeps its case and the domain is lower-cased; no alias rewriting ('+tag', dots or provider heuristics) is applied."),
52866
53031
  ip: string2().optional().describe("The account_creation's client IP address: an IPv4 dotted quad without leading zeros, or an IPv6 address in its RFC 5952 text form (lower case, no leading zeros, the longest zero run compressed). Send an IPv4 client as a dotted quad, not IPv4-mapped. No zone, port or prefix. The server refuses a non-canonical IPv6 spelling, and every private, loopback, link-local, multicast, documentation or otherwise reserved address (the IANA special-purpose registries), with 400: only a public address says anything about a signup."),
52867
- name: string2().optional().describe("The full name as the user typed it, 1 to 128 characters with no control or invisible characters. It is used only to match names in the evidence."),
53032
+ name: string2().optional().describe("The full name as the user typed it, 1 to 128 characters with no control or invisible characters. It is searched in breach data and matched against names in the evidence. A row holding the signup's own email or username confirms the name; rows sharing another identifier add to the identity's history."),
52868
53033
  phone: string2().optional().describe("Strict E.164: '+', then 8 to 15 digits, the first not 0, with no separators. Phone evidence is gathered asynchronously, so a phone-only request answers 202 pending and the phone is listed in incomplete_sources on the synchronous answer."),
52869
53034
  username: string2().optional().describe("The handle the account is signing up with: 1 to 64 characters, no whitespace, control or invisible characters, and not a credential hash or token. Echoed as received; compared case-insensitively.")
52870
53035
  }).describe("At least one of email, username or phone. name and ip refine the match and travel beside a lookup identifier; a body with only name or ip is refused with 400.");
@@ -56220,7 +56385,7 @@ endpoint.verification sends a signed challenge now and answers whether the endpo
56220
56385
  function createMCPServer(deps) {
56221
56386
  const server = new McpServer({
56222
56387
  name: "NoResponse",
56223
- version: "0.5.5"
56388
+ version: "0.5.7"
56224
56389
  });
56225
56390
  const getClient = deps.getSDK || (() => new NoResponseCore({
56226
56391
  security: deps.security,
@@ -64957,7 +65122,7 @@ var routes = buildRouteMap({
64957
65122
  var app = buildApplication(routes, {
64958
65123
  name: "mcp",
64959
65124
  versionInfo: {
64960
- currentVersion: "0.5.5"
65125
+ currentVersion: "0.5.7"
64961
65126
  }
64962
65127
  });
64963
65128
  run(app, process3.argv.slice(2), buildContext(process3));
@@ -64965,5 +65130,5 @@ export {
64965
65130
  app
64966
65131
  };
64967
65132
 
64968
- //# debugId=2367DD60D5FC400A64756E2164756E21
65133
+ //# debugId=F1F49377161C671264756E2164756E21
64969
65134
  //# sourceMappingURL=mcp-server.js.map