@lerianstudio/matcher-mcp 5.0.1 → 5.0.2

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 CHANGED
@@ -279,7 +279,6 @@ full embedded OpenAPI spec.
279
279
  | `ingestion_*` | Inspect a context's import lifecycle — list jobs, get a job, list a job's per-row errors and transactions, search transactions, ignore a transaction, and upload files through `ingestion_upload` or `ingestion_upload_begin`. |
280
280
  | `dashboard_*` | Read combined aggregates and focused slices (cash-impact, match-rate, metrics, SLA, source-breakdown, volume). The console uses the aggregate for volume, match rate and SLA, plus separate metrics, source-breakdown and cash-impact queries. Only standalone volume, match-rate and SLA reads have no console consumer. |
281
281
  | `report_*` | Pull a context's reports — paginated matched/unmatched/variance reads, the summary read, four counts (exceptions/matched/unmatched/transactions), and five base64 exports (exceptions/matched/summary/unmatched/variance). |
282
- | `workspace_usage` | Read the caller's own commercial state and free-tier consumption — plan, billing status, both trial axes (days remaining, matched lines against the cap), the expiry verdict, and the derived percentage consumed. Takes no arguments; the workspace comes from the relayed credential. |
283
282
 
284
283
  ### Generic trio
285
284
 
@@ -73,10 +73,9 @@ async function parseProblem(res) {
73
73
  return {
74
74
  type: str('type'),
75
75
  title: str('title') ?? fallbackTitle,
76
- // `message` is NOT RFC 9457: it is what matcher's legacy Fiber writer
77
- // (RespondProductError) emits, and every middleware error still travels in
78
- // it — the billing gate's 403 MTCH-0021 and the quota gate's 402 MTCH-0020
79
- // among them. Read only as a fallback for `detail`, never in preference.
76
+ // `message` is NOT RFC 9457: lib-commons' flat {code,title,message} envelope
77
+ // carries it, the rate limiter's 429 among them. Read only as a fallback for
78
+ // `detail`, never in preference.
80
79
  detail: str('detail') ?? str('message'),
81
80
  code: str('code'),
82
81
  instance: str('instance'),
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/matcher/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/matcher/client.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -23,7 +23,6 @@ import { registerMatchRuleTools } from './tools/match-rule/index.js';
23
23
  import { registerMatchingTools } from './tools/matching/index.js';
24
24
  import { registerReportTools } from './tools/report/index.js';
25
25
  import { registerSourceTools } from './tools/source/index.js';
26
- import { registerWorkspaceUsageTool } from './tools/workspace/usage.js';
27
26
  import { start } from './transport/http.js';
28
27
  /** The static reply the placeholder tool returns. */
29
28
  export const PING_REPLY = 'pong';
@@ -107,7 +106,6 @@ function registerTools(server) {
107
106
  registerDashboardTools(server);
108
107
  registerReportTools(server);
109
108
  registerFieldMapTools(server);
110
- registerWorkspaceUsageTool(server);
111
109
  }
112
110
  /**
113
111
  * Wrap registrations once per freshly built server, before tools are registered.
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -136,8 +136,6 @@ export const CURATED_OPERATIONS = {
136
136
  getSummaryReport: 'GET /v1/reports/contexts/{contextId}/summary', // report_summary
137
137
  getUnmatchedReport: 'GET /v1/reports/contexts/{contextId}/unmatched', // report_unmatched
138
138
  getVarianceReport: 'GET /v1/reports/contexts/{contextId}/variance', // report_variance
139
- // workspace (src/tools/workspace/) — 1 (standalone-SaaS Phase 3)
140
- 'workspace-billing': 'GET /v1/workspace/billing', // workspace_usage (tenant from the token)
141
139
  };
142
140
  /** Just the covered operationIds, keeping the literal union the policy tables need. */
143
141
  export const CURATED_OPERATION_IDS = Object.keys(CURATED_OPERATIONS);
@@ -167,38 +165,5 @@ export const GENERIC_ONLY_OPERATION_IDS = [
167
165
  // discovery hub (generic-only) — inbound streaming-hub event receiver; signed,
168
166
  // hub-driven delivery, not an operator-initiated action (cf. above).
169
167
  'receiveHubEvent', // POST /v1/discovery/hub/events
170
- // self-service onboarding (generic-only) — PUBLIC, anonymous, PRE-TENANT
171
- // routes for the console signup flow. The MCP relay authenticates every call
172
- // with an already-provisioned tenant token, so "create me a workspace" is not
173
- // an operator action on this surface (cf. the webhook receivers above).
174
- 'signup', // POST /v1/signup
175
- 'signup-verify', // POST /v1/signup/verify
176
- // PUBLIC pre-login PKCE bootstrap for the console (client id + issuer per
177
- // workspace slug); browser-facing discovery, not an operator action.
178
- 'workspace-auth-config', // GET /v1/workspaces/{slug}/auth-config
179
- // standalone-SaaS Phase 2 control-plane (generic-only) — backoffice
180
- // workspace-lifecycle admin: an internal operator surface for Lerian staff,
181
- // not an action the tenant-scoped copilot takes. (The sibling tenant billing
182
- // read was promoted to curated as `workspace_usage` — "how much of my free
183
- // tier is left" is exactly what the copilot must answer, and the generic path
184
- // required knowing the operationId.)
185
- 'admin-suspend-workspace', // PUT /v1/admin/workspaces/{slug}/suspend
186
- 'admin-reactivate-workspace', // PUT /v1/admin/workspaces/{slug}/reactivate
187
- // The enterprise plan assignment joins its two siblings above, and is the one of the
188
- // four an agent must least be able to reach: it changes what a company is charged, on
189
- // a workspace named in the path rather than in the caller's own token.
190
- 'admin-assign-workspace-plan', // PUT /v1/admin/workspaces/{slug}/plan
191
- // The backoffice invoicing read belongs with its two siblings above and NOT with the
192
- // curated tools, for a reason stronger than "it is an operator surface": it is
193
- // addressed by slug and answers with another company's name, address and CPF/CNPJ.
194
- // The copilot is tenant-scoped, so a curated tool here would be a tool whose whole
195
- // purpose is to read a stranger's tax id.
196
- 'admin-workspace-billing', // GET /v1/admin/workspaces/{slug}/billing
197
- // billing webhook (generic-only) — the inbound payment-processor receiver. It is
198
- // not an operator action in any sense: it is JWT-less, authenticated by a signature
199
- // over the raw body under a secret only the server holds, and the relay
200
- // authenticates with a tenant token that would not verify. A curated tool for it
201
- // could not be called successfully by anyone (cf. the two webhook receivers above).
202
- 'receiveBillingWebhook', // POST /v1/billing/webhook
203
168
  ];
204
169
  //# sourceMappingURL=curated-operations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"curated-operations.js","sourceRoot":"","sources":["../../src/spec/curated-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"curated-operations.js","sourceRoot":"","sources":["../../src/spec/curated-operations.ts"],"names":[],"mappings":"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"}
@@ -239,78 +239,6 @@ components:
239
239
  - createdAt
240
240
  - updatedAt
241
241
  type: object
242
- AdminAssignPlanInputBody:
243
- additionalProperties: false
244
- properties:
245
- plan:
246
- description: "The plan code to assign. ONLY \"enterprise\" is accepted: self-serve plans are bought through checkout and converged from the live subscription's price, so assigning one here would be a payment-processor bypass the next processor delivery silently reverts. Any other code is refused with 409."
247
- maxLength: 64
248
- type: string
249
- required:
250
- - plan
251
- type: object
252
- AdminAssignPlanResult:
253
- additionalProperties: false
254
- properties:
255
- billingStatus:
256
- description: The commercial standing the workspace now holds. An enterprise contract is in good standing the moment it is signed, so this is always "active".
257
- type: string
258
- plan:
259
- description: The plan the workspace now holds.
260
- type: string
261
- slug:
262
- description: The workspace assigned.
263
- type: string
264
- required:
265
- - slug
266
- - plan
267
- - billingStatus
268
- type: object
269
- AdminWorkspaceBilling:
270
- additionalProperties: false
271
- properties:
272
- companyName:
273
- description: Legal name the workspace signed up with — the party the invoice is issued to.
274
- type: string
275
- email:
276
- description: Billing contact the invoice is sent to.
277
- type: string
278
- overageUncoveredCents:
279
- description: "Overage already incurred that the credit balance has not covered, in integer BRL cents — what this workspace owes, and the amount to invoice. It is a receivable and never a negative balance: a new billing period does NOT clear it, it survives a trial-to-paid conversion, and a credit purchase settles it. 0 when nothing is owed."
280
- format: int64
281
- type: integer
282
- slug:
283
- description: The workspace read.
284
- type: string
285
- taxIdStatus:
286
- description: "Whether the tax id could be read: \"available\" (on file, returned below), \"not_collected\" (the customer supplied none, or never reached checkout), or \"unavailable\" (the payment processor could not be asked — retry; this is NOT \"none supplied\")."
287
- type: string
288
- taxIdType:
289
- description: "Which Brazilian tax id is held: br_cpf (individual) or br_cnpj (company). Present only when taxIdStatus is \"available\"."
290
- type: string
291
- taxIdValue:
292
- description: The CPF/CNPJ as the customer entered it. Customer PII — present only when taxIdStatus is "available".
293
- type: string
294
- required:
295
- - slug
296
- - companyName
297
- - email
298
- - taxIdStatus
299
- - overageUncoveredCents
300
- type: object
301
- AdminWorkspaceResult:
302
- additionalProperties: false
303
- properties:
304
- action:
305
- description: "The action applied: \"suspended\" or \"reactivated\"."
306
- type: string
307
- slug:
308
- description: The workspace acted on.
309
- type: string
310
- required:
311
- - slug
312
- - action
313
- type: object
314
242
  AgeBucketDTO:
315
243
  additionalProperties: false
316
244
  properties:
@@ -1318,38 +1246,6 @@ components:
1318
1246
  required:
1319
1247
  - status
1320
1248
  type: object
1321
- CheckoutBody:
1322
- additionalProperties: false
1323
- properties:
1324
- interval:
1325
- description: "Billing interval: \"monthly\" or \"annual\". It selects the payment methods the session offers — monthly is card, annual is boleto and Pix."
1326
- examples:
1327
- - monthly
1328
- maxLength: 16
1329
- type: string
1330
- plan:
1331
- description: Plan code to subscribe to. Must be a self-serve plan in the price list.
1332
- examples:
1333
- - tier_1
1334
- maxLength: 64
1335
- type: string
1336
- required:
1337
- - plan
1338
- - interval
1339
- type: object
1340
- CheckoutSessionResponse:
1341
- additionalProperties: false
1342
- properties:
1343
- sessionId:
1344
- description: "Processor-side session identifier, for support and correlation. It activates nothing: activation happens only through the verified webhook."
1345
- type: string
1346
- url:
1347
- description: Hosted checkout URL. Redirect the browser here.
1348
- type: string
1349
- required:
1350
- - url
1351
- - sessionId
1352
- type: object
1353
1249
  CloneContextRequest:
1354
1250
  additionalProperties: false
1355
1251
  properties:
@@ -2609,75 +2505,6 @@ components:
2609
2505
  - credentialId
2610
2506
  - createdAt
2611
2507
  type: object
2612
- CreditLedgerEntry:
2613
- additionalProperties: false
2614
- properties:
2615
- amountCents:
2616
- description: "How much the balance moved, in integer BRL cents. SIGNED: positive for a purchase, negative for a debit, so the entries sum to the balance."
2617
- format: int64
2618
- type: integer
2619
- balanceAfterCents:
2620
- description: The balance this movement left behind, in integer BRL cents.
2621
- format: int64
2622
- type: integer
2623
- createdAt:
2624
- description: When the movement was recorded (UTC).
2625
- format: date-time
2626
- type: string
2627
- period:
2628
- description: The enforcement period a debit was taken FOR. Omitted on a purchase, which belongs to no period, and on a trial's lifetime debit, which has none.
2629
- format: date-time
2630
- type: string
2631
- reason:
2632
- description: "Why the balance moved: \"purchase\", \"overage_debit\", or \"overage_debit_shortfall\" (the debit could not be covered in full and took the balance to zero)."
2633
- type: string
2634
- stripePaymentId:
2635
- description: The payment behind a purchase, for support and correlation. Omitted on a debit, which charges nothing.
2636
- type: string
2637
- required:
2638
- - amountCents
2639
- - balanceAfterCents
2640
- - reason
2641
- - createdAt
2642
- type: object
2643
- CreditLedgerPage:
2644
- additionalProperties: false
2645
- properties:
2646
- entries:
2647
- description: Recorded movements of the prepaid overage balance, newest first, capped server-side.
2648
- items:
2649
- $ref: "#/components/schemas/CreditLedgerEntry"
2650
- type:
2651
- - array
2652
- - "null"
2653
- required:
2654
- - entries
2655
- type: object
2656
- CreditPurchaseBody:
2657
- additionalProperties: false
2658
- properties:
2659
- amountCents:
2660
- description: How much credit to buy, in integer cents (BRL). The minimum and maximum come from the price list.
2661
- examples:
2662
- - 50000
2663
- format: int64
2664
- type: integer
2665
- required:
2666
- - amountCents
2667
- type: object
2668
- CreditPurchaseResponse:
2669
- additionalProperties: false
2670
- properties:
2671
- sessionId:
2672
- description: "Processor-side session identifier, for support and correlation. It credits nothing: the balance moves only through the verified webhook."
2673
- type: string
2674
- url:
2675
- description: Hosted payment URL. Redirect the browser here.
2676
- type: string
2677
- required:
2678
- - url
2679
- - sessionId
2680
- type: object
2681
2508
  CurrencyExposureResponse:
2682
2509
  additionalProperties: false
2683
2510
  properties:
@@ -6156,15 +5983,6 @@ components:
6156
5983
  - createdAt
6157
5984
  - updatedAt
6158
5985
  type: object
6159
- PortalSessionResponse:
6160
- additionalProperties: false
6161
- properties:
6162
- url:
6163
- description: Hosted customer-portal URL. Redirect the browser here. It is short-lived and single-customer.
6164
- type: string
6165
- required:
6166
- - url
6167
- type: object
6168
5986
  ProcessCallbackRequest:
6169
5987
  additionalProperties: false
6170
5988
  properties:
@@ -7391,43 +7209,6 @@ components:
7391
7209
  - left
7392
7210
  - right
7393
7211
  type: object
7394
- SignupBody:
7395
- additionalProperties: false
7396
- properties:
7397
- acceptTos:
7398
- description: Must be true; acceptance is recorded with a timestamp.
7399
- type: boolean
7400
- companyName:
7401
- description: Company/organization name; a URL-safe slug is derived from it.
7402
- examples:
7403
- - Acme Payments
7404
- maxLength: 200
7405
- type: string
7406
- email:
7407
- description: Work email; disposable domains are rejected.
7408
- examples:
7409
- - founder@acme.com
7410
- maxLength: 254
7411
- type: string
7412
- password:
7413
- description: Account password; 12–72 characters with letters and digits. The 72-byte cap is bcrypt's input limit.
7414
- maxLength: 72
7415
- type: string
7416
- required:
7417
- - email
7418
- - password
7419
- - companyName
7420
- - acceptTos
7421
- type: object
7422
- SignupResponse:
7423
- additionalProperties: false
7424
- properties:
7425
- message:
7426
- description: Human-readable acknowledgement (identical for known and unknown emails).
7427
- type: string
7428
- required:
7429
- - message
7430
- type: object
7431
7212
  SimulateFeeItem:
7432
7213
  additionalProperties: false
7433
7214
  properties:
@@ -8979,29 +8760,6 @@ components:
8979
8760
  - adjustmentsApplied
8980
8761
  - outstandingVariance
8981
8762
  type: object
8982
- VerifyBody:
8983
- additionalProperties: false
8984
- properties:
8985
- token:
8986
- description: The verification token from the signup email link.
8987
- maxLength: 512
8988
- type: string
8989
- required:
8990
- - token
8991
- type: object
8992
- VerifyResponse:
8993
- additionalProperties: false
8994
- properties:
8995
- message:
8996
- description: Human-readable verification result.
8997
- type: string
8998
- slug:
8999
- description: Workspace handle (the company slug) whose setup is now under way. Empty when the link was already used or has expired.
9000
- type: string
9001
- required:
9002
- - message
9003
- - slug
9004
- type: object
9005
8763
  VersionBody:
9006
8764
  additionalProperties: false
9007
8765
  properties:
@@ -9076,125 +8834,12 @@ components:
9076
8834
  - periodStart
9077
8835
  - periodEnd
9078
8836
  type: object
9079
- WorkspaceAuthConfig:
9080
- additionalProperties: false
9081
- properties:
9082
- clientId:
9083
- description: OAuth client id of the workspace's console application.
9084
- type: string
9085
- issuer:
9086
- description: Public base URL of the identity provider (the PKCE issuer).
9087
- type: string
9088
- organization:
9089
- description: Identity-provider organization name for the workspace.
9090
- type: string
9091
- required:
9092
- - clientId
9093
- - organization
9094
- - issuer
9095
- type: object
9096
- WorkspaceBilling:
9097
- additionalProperties: false
9098
- properties:
9099
- billingStatus:
9100
- description: "Commercial lifecycle: trialing, active, past_due, trial_expired (the free trial ran out of clock — the console stays readable and the upgrade path stays open), or suspended."
9101
- type: string
9102
- daysRemaining:
9103
- description: Whole days left in the trial (time axis), derived server-side. 0 when there is no trial or it has already ended.
9104
- format: int64
9105
- type: integer
9106
- expiryReason:
9107
- description: "Why the trial is over: \"\" (not expired), \"time\", \"volume\", or \"time_and_volume\"."
9108
- type: string
9109
- linesRemaining:
9110
- description: Free matched-line allotment left (volume axis), floored at 0. 0 when there is no trial or the allotment is spent.
9111
- format: int64
9112
- type: integer
9113
- matchedLineLimit:
9114
- description: Free-trial line ceiling the volume axis is measured against, read from the plan catalogue.
9115
- format: int64
9116
- type: integer
9117
- matchedLines:
9118
- description: "Lines consumed against the free-trial allotment (volume axis): distinct transactions matched, so a transaction re-matched under a different classification consumes one line and not two — the same figure the quota gate enforces on. Meaningful for a trialing or lapsed workspace; 0 for a paid plan."
9119
- format: int64
9120
- type: integer
9121
- maxCreditPurchaseCents:
9122
- description: Largest credit purchase the payment route accepts, in integer BRL cents.
9123
- format: int64
9124
- type: integer
9125
- minCreditPurchaseCents:
9126
- description: Smallest credit purchase the payment route accepts, in integer BRL cents.
9127
- format: int64
9128
- type: integer
9129
- monthlyLineAllowance:
9130
- description: Billable lines the plan includes per month, from the price list. Monthly on every plan regardless of billing interval. 0 when the plan is unmetered (see volumeUnmetered) or the stored plan code is not in the catalogue.
9131
- format: int64
9132
- type: integer
9133
- overageCreditBalanceCents:
9134
- description: Prepaid overage credit left, in integer BRL cents. Overage is debited from it daily; an exhausted balance blocks new matching, and unspent credit never expires.
9135
- format: int64
9136
- type: integer
9137
- overageRateCentsPerThousandLines:
9138
- description: What lines beyond the allowance cost, in integer BRL cents per THOUSAND lines (per-thousand because the entry rate is 0,4 cents a line and would truncate to zero). 0 when the plan is unmetered (see volumeUnmetered) or the stored plan code is not in the catalogue.
9139
- format: int64
9140
- type: integer
9141
- overageUncoveredCents:
9142
- description: "Overage already incurred that the credit balance has not covered, in integer BRL cents — what the workspace owes. It is a receivable and never a negative balance: a new billing period does NOT clear it, it survives a trial-to-paid conversion, and the next credit purchase settles it. 0 when nothing is owed."
9143
- format: int64
9144
- type: integer
9145
- plan:
9146
- description: Commercial plan the workspace is on ("free" or a paid tier).
9147
- type: string
9148
- provisioningFailed:
9149
- description: Whether setup has terminally failed. A failed setup is NOT retried — re-driving it cannot resolve the cause — and is distinguishable from one still in progress without reading logs.
9150
- type: boolean
9151
- provisioningState:
9152
- description: "Setup lifecycle of the workspace: \"provisioning\" (still being built), \"active\" (ready to use), or \"failed\" (setup will not complete on its own — we have been told)."
9153
- type: string
9154
- provisioningStep:
9155
- description: "The setup step that is owed: \"create_tenant\", \"associate_service\", \"migrate_tenant\", \"provision_console\", \"grant_admin\", or \"\" when nothing is owed. On a failed workspace this is the step it died on."
9156
- type: string
9157
- trialEndsAt:
9158
- description: When the free trial ends (UTC). Omitted for a paid plan that never trialed.
9159
- format: date-time
9160
- type: string
9161
- trialExpired:
9162
- description: Whether the trial is over on EITHER axis (time or volume), or the workspace is already suspended.
9163
- type: boolean
9164
- volumeUnmetered:
9165
- description: "Whether this plan is unmetered: its volume ceiling and its overage price are contractual (enterprise) rather than from the price list. When true, monthlyLineAllowance and overageRateCentsPerThousandLines are both 0 because no figure applies — do NOT render them as terms, and do not read the zero rate as free overage."
9166
- type: boolean
9167
- required:
9168
- - plan
9169
- - billingStatus
9170
- - daysRemaining
9171
- - matchedLines
9172
- - matchedLineLimit
9173
- - linesRemaining
9174
- - trialExpired
9175
- - expiryReason
9176
- - provisioningState
9177
- - provisioningStep
9178
- - provisioningFailed
9179
- - volumeUnmetered
9180
- - monthlyLineAllowance
9181
- - overageRateCentsPerThousandLines
9182
- - overageCreditBalanceCents
9183
- - overageUncoveredCents
9184
- - minCreditPurchaseCents
9185
- - maxCreditPurchaseCents
9186
- type: object
9187
8837
  securitySchemes:
9188
8838
  BearerAuth:
9189
8839
  bearerFormat: JWT
9190
8840
  description: JWT bearer token issued by the identity provider.
9191
8841
  scheme: bearer
9192
8842
  type: http
9193
- BillingWebhookSignature:
9194
- description: Timestamped HMAC-SHA256 over the raw request body under the configured signing secret, proving an inbound billing event originated from the payment processor and is inside its tolerance window.
9195
- in: header
9196
- name: Stripe-Signature
9197
- type: apiKey
9198
8843
  CallbackToken:
9199
8844
  description: Opaque bearer token authenticating an external system's inbound exception callback.
9200
8845
  in: header
@@ -9222,11 +8867,11 @@ info:
9222
8867
 
9223
8868
  A retry must repeat the original request. On an ordinary route the body is part of what identifies it, so a completed key re-sent with a DIFFERENT body is refused with 422 and nothing is applied — send the correction under a new key. The two file routes (`POST /v1/imports/contexts/{contextId}/sources/{sourceId}/upload` and the matching `/preview`) consume their body as a live stream and cannot re-read it, so there the key itself is the identity under that method and path: a completed key re-sent replays the first answer whatever file the retry carries.
9224
8869
 
9225
- A key is ONE attempt. A refusal the request earned is recorded like any other answer, and every resend under that key replays it for the retention window — a caller that wants to correct its request mints a new key. Three answers do NOT spend the key, because none of them is an answer to the request itself: a 429 from the rate limiter, a 402 from the volume quota, and a 502 with code `MTCH-0513`, where the dispatch target answered and DECLINED before anything was created there. Every other 5xx HOLDS the key, including that code's near neighbour, the dispatch whose outcome could not be confirmed (502, code `MTCH-0514`), whose exception may already exist in the target system: the outcome was not recorded, so every resend under that key is refused 409 and nothing is sent again. Deliberately attempting such an operation again therefore requires a NEW key.
8870
+ A key is ONE attempt. A refusal the request earned is recorded like any other answer, and every resend under that key replays it for the retention window — a caller that wants to correct its request mints a new key. Two answers do NOT spend the key, because neither is an answer to the request itself: a 429 from the rate limiter and a 502 with code `MTCH-0513`, where the dispatch target answered and DECLINED before anything was created there. Every other 5xx HOLDS the key, including that code's near neighbour, the dispatch whose outcome could not be confirmed (502, code `MTCH-0514`), whose exception may already exist in the target system: the outcome was not recorded, so every resend under that key is refused 409 and nothing is sent again. Deliberately attempting such an operation again therefore requires a NEW key.
9226
8871
 
9227
8872
  `X-Idempotency-Fenced` rides every response whose outcome the guard could not receipt, a 2xx included. `true` means the hold landed: the key still protects the operation and every resend under it is refused 409. Only `false` means a resend would EXECUTE — the answer in hand may already have applied and the key no longer protects it, so check whether the first attempt took effect before sending anything again.
9228
8873
 
9229
- Two bounds close the contract. A response larger than about 1 MB is delivered to its caller in full, but it is not stored for replay: a duplicate under the same key is answered 409 instead of replayed. And an over-sized body is refused with 413 and spends nothing. On every route but one the service-wide request body limit refuses it before the key is read. The streaming upload (`POST /v1/imports/contexts/{contextId}/sources/{sourceId}/upload`) is exempt from that limit: the key is read first and ingestion enforces its own upload limit inside the handler, so its 413 is a fourth answer that releases the key, and a smaller file may be re-sent under it.
8874
+ Two bounds close the contract. A response larger than about 1 MB is delivered to its caller in full, but it is not stored for replay: a duplicate under the same key is answered 409 instead of replayed. And an over-sized body is refused with 413 and spends nothing. On every route but one the service-wide request body limit refuses it before the key is read. The streaming upload (`POST /v1/imports/contexts/{contextId}/sources/{sourceId}/upload`) is exempt from that limit: the key is read first and ingestion enforces its own upload limit inside the handler, so its 413 is a third answer that releases the key, and a smaller file may be re-sent under it.
9230
8875
 
9231
8876
  Secret mints are another, sharper exception. `POST /v1/discovery/aggregator-connections/{id}/connect-token`, `POST /v1/discovery/webhooks/tokens`, `POST /v1/exceptions/callbacks/credentials` and `POST /v1/exceptions/callbacks/credentials/{credentialId}/rotate` each return a raw credential exactly ONCE, and storing that answer would keep the secret re-readable for the life of the key — so those four routes IGNORE the idempotency header entirely. Nothing is stored, nothing is replayed, and `X-Idempotency-Replayed` is never sent on them. A retry under the same key MINTS AGAIN and leaves a second live credential behind, so treat a mint as non-idempotent: read the first attempt's response rather than resending it. A surplus callback credential can be revoked through its own operation; a surplus aggregator webhook token has no revoke operation today and stays live.
9232
8877
  license:
@@ -9282,169 +8927,6 @@ paths:
9282
8927
  summary: Readiness check
9283
8928
  tags:
9284
8929
  - Health
9285
- /v1/admin/workspaces/{slug}/billing:
9286
- get:
9287
- description: "Returns what a human needs to issue this workspace's NFS-e by hand: the legal name, the billing contact, the CPF/CNPJ the customer supplied at checkout — read through from the payment processor on demand, never stored on this side — and the standing unpaid overage the invoice is for, in integer BRL cents. That amount is a receivable, not a negative balance: a new billing period does not clear it and it survives a trial-to-paid conversion, so what an operator reads here is what the customer still owes. taxIdStatus distinguishes \"available\" from \"not_collected\" (the customer supplied none) and \"unavailable\" (the processor could not be asked), so an unreachable processor degrades to a stated answer instead of an error and is never mistaken for a customer with no tax id. The tax id is customer PII and is returned ONLY here, to an operator gated by the workspace admin action; it is never logged or traced. The target slug comes from the URL path: this is a backoffice operation, NOT a tenant-scoped route. An unknown workspace returns 404. Errors use RFC 9457 problem+json."
9288
- operationId: admin-workspace-billing
9289
- parameters:
9290
- - description: Slug of the workspace to act on.
9291
- in: path
9292
- name: slug
9293
- required: true
9294
- schema:
9295
- description: Slug of the workspace to act on.
9296
- maxLength: 255
9297
- type: string
9298
- responses:
9299
- "200":
9300
- content:
9301
- application/json:
9302
- schema:
9303
- $ref: "#/components/schemas/AdminWorkspaceBilling"
9304
- description: OK
9305
- default:
9306
- content:
9307
- application/problem+json:
9308
- schema:
9309
- $ref: "#/components/schemas/Detail"
9310
- description: Error
9311
- security:
9312
- - BearerAuth: []
9313
- summary: Read a workspace's invoicing identification (backoffice)
9314
- tags:
9315
- - Onboarding
9316
- /v1/admin/workspaces/{slug}/plan:
9317
- put:
9318
- description: "Puts a workspace on the contractual enterprise plan: persists plan=enterprise and billing_status=active together, then evicts the billing edge-gate and volume-resolver caches so the contractual ceiling applies immediately. ONLY \"enterprise\" is accepted. This is not a generic set-plan operation: self-serve plans are bought through hosted checkout and converged from the live subscription's price, so assigning one by hand would be a payment-processor bypass that the next processor delivery silently reverts — any other plan code returns 409. It REFUSES a workspace whose subscription the payment processor could still bill (409): the operator cancels there first, where the proration and refund decision gets human eyes, and this route never moves processor money. That refusal covers every subscription that is not permanently over — one awaiting card authentication or one that is paused is not charging today and resumes tomorrow, and it would revert this plan the moment it does; only a cancelled or expired subscription is assignable over. If the processor cannot be asked, the request is refused as retryable (503) rather than allowed through. A suspended workspace is refused (409) because this operation moves no access posture — reactivate it first, and the write is compare-and-swapped on the status read, so a suspension landing mid-request is refused rather than reversed. There is no reverse: removing the enterprise plan is not offered. The target slug comes from the URL path (backoffice operation, workspace admin action). An unknown workspace returns 404. Errors use RFC 9457 problem+json. Every refusal on this route carries its own product code, because the sentence of a 503 is scrubbed before it leaves the process and the code is then the whole answer: 409 MTCH-0803 (a subscription the processor can still bill — cancel it there first), 409 MTCH-0804 (a plan code other than enterprise), 409 MTCH-0805 (the workspace's billing status does not allow the change — reload it), 503 MTCH-0802 (the processor could not be asked — retry) and 503 MTCH-0801 (no payment processor is configured on this deployment — NO retry clears it; the lever is configuration). MTCH-0805 is the same code the suspend and reactivate routes answer for a refused billing-status transition."
9319
- operationId: admin-assign-workspace-plan
9320
- parameters:
9321
- - description: Slug of the workspace to assign the plan to.
9322
- in: path
9323
- name: slug
9324
- required: true
9325
- schema:
9326
- description: Slug of the workspace to assign the plan to.
9327
- maxLength: 255
9328
- type: string
9329
- requestBody:
9330
- content:
9331
- application/json:
9332
- schema:
9333
- $ref: "#/components/schemas/AdminAssignPlanInputBody"
9334
- required: true
9335
- responses:
9336
- "200":
9337
- content:
9338
- application/json:
9339
- schema:
9340
- $ref: "#/components/schemas/AdminAssignPlanResult"
9341
- description: OK
9342
- default:
9343
- content:
9344
- application/problem+json:
9345
- schema:
9346
- $ref: "#/components/schemas/Detail"
9347
- description: Error
9348
- security:
9349
- - BearerAuth: []
9350
- summary: Assign the enterprise plan to a workspace (backoffice)
9351
- tags:
9352
- - Onboarding
9353
- /v1/admin/workspaces/{slug}/reactivate:
9354
- put:
9355
- description: "Restores a suspended workspace: persists billing_status=active, re-enables interactive console login at the IdP, reactivates the tenant at the Tenant Manager (best-effort), and evicts the billing edge-gate cache. The target slug comes from the URL path (backoffice operation, workspace admin action). Idempotent. Errors use RFC 9457 problem+json."
9356
- operationId: admin-reactivate-workspace
9357
- parameters:
9358
- - description: Slug of the workspace to act on.
9359
- in: path
9360
- name: slug
9361
- required: true
9362
- schema:
9363
- description: Slug of the workspace to act on.
9364
- maxLength: 255
9365
- type: string
9366
- responses:
9367
- "200":
9368
- content:
9369
- application/json:
9370
- schema:
9371
- $ref: "#/components/schemas/AdminWorkspaceResult"
9372
- description: OK
9373
- default:
9374
- content:
9375
- application/problem+json:
9376
- schema:
9377
- $ref: "#/components/schemas/Detail"
9378
- description: Error
9379
- security:
9380
- - BearerAuth: []
9381
- summary: Reactivate a suspended workspace (backoffice)
9382
- tags:
9383
- - Onboarding
9384
- /v1/admin/workspaces/{slug}/suspend:
9385
- put:
9386
- description: "Suspends a workspace's commercial access: persists billing_status=suspended (source of truth), cuts interactive console login at the IdP, suspends the tenant's matcher service association at the Tenant Manager (best-effort), and evicts the billing edge-gate cache so API traffic is cut within the gate TTL. The target slug comes from the URL path: this is a backoffice operation gated by the workspace admin action, NOT a tenant-scoped route — the operator acts across workspaces. Idempotent. Errors use RFC 9457 problem+json."
9387
- operationId: admin-suspend-workspace
9388
- parameters:
9389
- - description: Slug of the workspace to act on.
9390
- in: path
9391
- name: slug
9392
- required: true
9393
- schema:
9394
- description: Slug of the workspace to act on.
9395
- maxLength: 255
9396
- type: string
9397
- responses:
9398
- "200":
9399
- content:
9400
- application/json:
9401
- schema:
9402
- $ref: "#/components/schemas/AdminWorkspaceResult"
9403
- description: OK
9404
- default:
9405
- content:
9406
- application/problem+json:
9407
- schema:
9408
- $ref: "#/components/schemas/Detail"
9409
- description: Error
9410
- security:
9411
- - BearerAuth: []
9412
- summary: Suspend a workspace (backoffice)
9413
- tags:
9414
- - Onboarding
9415
- /v1/billing/webhook:
9416
- post:
9417
- description: "Receives a signed billing event from the payment processor and applies it to the workspace's commercial state. This route carries NO operator JWT and no tenant identifier of any kind: a processor event has no tenant until its customer id is resolved server-side. Authentication is the Stripe-Signature signature over the RAW request body, verified inside the processor's own tolerance window. It is fail-closed on configuration — with no signing secret configured every event is rejected, and there is no value that means accept anything. Delivery is idempotent by the processor's event id: a redelivery of an event already applied returns a quiet 200 and changes nothing, an event still being applied elsewhere returns 503 so the processor retries, and an event id reused with a DIFFERENT body is a 409 rather than an acknowledgement. A processing failure returns 5xx and never records the event as applied, so the processor's retry reclaims it. Errors use the RFC 9457 application/problem+json contract and never echo the signature, the secret or the body. The divergent-replay conflict carries its own product code, 409 MTCH-0811."
9418
- operationId: receiveBillingWebhook
9419
- parameters:
9420
- - description: The processor's signature over the raw body, verified inside the processor's own tolerance window.
9421
- in: header
9422
- name: Stripe-Signature
9423
- schema:
9424
- description: The processor's signature over the raw body, verified inside the processor's own tolerance window.
9425
- type: string
9426
- requestBody:
9427
- content:
9428
- application/octet-stream:
9429
- schema:
9430
- contentMediaType: application/octet-stream
9431
- format: binary
9432
- type: string
9433
- required: true
9434
- responses:
9435
- "200":
9436
- description: OK
9437
- default:
9438
- content:
9439
- application/problem+json:
9440
- schema:
9441
- $ref: "#/components/schemas/Detail"
9442
- description: Error
9443
- security:
9444
- - BillingWebhookSignature: []
9445
- summary: Receive a payment-processor billing event
9446
- tags:
9447
- - Onboarding
9448
8930
  /v1/contexts:
9449
8931
  get:
9450
8932
  description: Returns a cursor-paginated list of reconciliation contexts, optionally filtered by type and status.
@@ -17067,219 +16549,6 @@ paths:
17067
16549
  summary: Export variance report
17068
16550
  tags:
17069
16551
  - Reporting
17070
- /v1/signup:
17071
- post:
17072
- description: "Starts self-service onboarding. This is a PUBLIC, anonymous, pre-tenant route: it carries no operator JWT and creates no account yet. It validates the payload (email, password policy, company name, and mandatory Terms of Service acceptance) and stores a pending record whose TTL is the whole expiry mechanism. A company name whose derived slug is reserved (e.g. admin, api, www) is rejected with a 400 application/problem+json error. To prevent account enumeration, an email that is already registered or pending returns the SAME 202 response as a new one; a repeat signup for a still-pending email re-sends the verification email, throttled per address. The route is rate-limited per client IP. All errors use the RFC 9457 application/problem+json contract."
17073
- operationId: signup
17074
- requestBody:
17075
- content:
17076
- application/json:
17077
- schema:
17078
- $ref: "#/components/schemas/SignupBody"
17079
- required: true
17080
- responses:
17081
- "202":
17082
- content:
17083
- application/json:
17084
- schema:
17085
- $ref: "#/components/schemas/SignupResponse"
17086
- description: Accepted
17087
- default:
17088
- content:
17089
- application/problem+json:
17090
- schema:
17091
- $ref: "#/components/schemas/Detail"
17092
- description: Error
17093
- security: []
17094
- summary: Create a self-service signup
17095
- tags:
17096
- - Onboarding
17097
- /v1/signup/verify:
17098
- post:
17099
- description: "Completes email verification and starts self-service onboarding. This is a PUBLIC, anonymous, pre-tenant route: it exchanges the emailed verification token for a workspace whose setup is now under way, and returns the workspace handle. It does NOT wait for setup to finish — creating the environment includes a schema migration whose duration the server does not control, so a background worker drives it to completion and the response comes back immediately. It is idempotent: a repeat call records nothing new, and a token that no longer resolves (already used or expired) returns the same 200 response. The route is rate-limited per client IP. Its two conflicts carry their own product codes, and they are not the same answer: 409 MTCH-0812 (the workspace already exists and MAY be the caller's own — sign in, or sign up under another company name) and 409 MTCH-0813 (the name belongs to another account — only a different company name clears it)."
17100
- operationId: signup-verify
17101
- requestBody:
17102
- content:
17103
- application/json:
17104
- schema:
17105
- $ref: "#/components/schemas/VerifyBody"
17106
- required: true
17107
- responses:
17108
- "200":
17109
- content:
17110
- application/json:
17111
- schema:
17112
- $ref: "#/components/schemas/VerifyResponse"
17113
- description: OK
17114
- default:
17115
- content:
17116
- application/problem+json:
17117
- schema:
17118
- $ref: "#/components/schemas/Detail"
17119
- description: Error
17120
- security: []
17121
- summary: Verify a self-service signup
17122
- tags:
17123
- - Onboarding
17124
- /v1/workspace/billing:
17125
- get:
17126
- description: "Returns the authenticated tenant's own commercial state: its plan, billing status, and BOTH trial axes — the time axis (trial deadline + whole days remaining) and the volume axis (matched lines consumed, the free-tier ceiling, and lines remaining) — plus the unified trial-expiry verdict (whether the trial is over and why), all derived server-side. The tenant is resolved from the JWT tenant-slug claim — this endpoint never accepts a tenant identifier in the request and can only read the caller's own workspace. A tenant with no self-serve workspace record (the default/system tenant, or an unknown slug) returns 404. Errors use the RFC 9457 application/problem+json contract."
17127
- operationId: workspace-billing
17128
- responses:
17129
- "200":
17130
- content:
17131
- application/json:
17132
- schema:
17133
- $ref: "#/components/schemas/WorkspaceBilling"
17134
- description: OK
17135
- default:
17136
- content:
17137
- application/problem+json:
17138
- schema:
17139
- $ref: "#/components/schemas/Detail"
17140
- description: Error
17141
- security:
17142
- - BearerAuth: []
17143
- summary: Read the current workspace's commercial state
17144
- tags:
17145
- - Onboarding
17146
- /v1/workspace/billing-portal:
17147
- post:
17148
- description: "Opens the payment processor's hosted customer portal for the AUTHENTICATED tenant's own workspace and returns the URL to redirect the browser to. Card update, invoice history and cancellation live there, not here; cancellation takes effect at the end of the period already paid for. Errors use the RFC 9457 application/problem+json contract. Its two refusals carry their own product codes: 409 MTCH-0806 (plan set by contract, so there is no self-serve subscription to manage) and 409 MTCH-0810 (no billing account yet — subscribe first)."
17149
- operationId: workspace-billing-portal
17150
- responses:
17151
- "200":
17152
- content:
17153
- application/json:
17154
- schema:
17155
- $ref: "#/components/schemas/PortalSessionResponse"
17156
- description: OK
17157
- default:
17158
- content:
17159
- application/problem+json:
17160
- schema:
17161
- $ref: "#/components/schemas/Detail"
17162
- description: Error
17163
- security:
17164
- - BearerAuth: []
17165
- summary: Open the customer billing portal for the current workspace
17166
- tags:
17167
- - Onboarding
17168
- /v1/workspace/checkout:
17169
- post:
17170
- description: "Opens a hosted checkout session that subscribes the AUTHENTICATED tenant's own workspace to a self-serve plan, and returns the URL to redirect the browser to. The workspace is resolved from the JWT tenant-slug claim: this endpoint never accepts a tenant identifier in the body, path, query or headers, and the session is bound to the caller's tenant. The billing interval selects the payment methods — monthly is card, annual is boleto and Pix — so a session is never created with an instrument the amount cannot clear. A plan that is not self-serve, an unknown plan or interval, and a workspace that already has a subscription are all refused before the processor is called. The return URLs carry no activation-bearing parameter: the plan is activated only by the verified webhook, and the return page reads the resulting state from GET /v1/workspace/billing. Errors use the RFC 9457 application/problem+json contract. Each refusal carries its own product code so a client never has to read the sentence: 409 MTCH-0806 (plan set by contract), 409 MTCH-0807 (already subscribed), 409 MTCH-0808 (a checkout is open for a different plan or interval), 409 MTCH-0809 (a checkout is being opened right now — retry), 422 MTCH-0814 (the plan is not sold self-serve) and 400 MTCH-0001 (unknown plan or interval)."
17171
- operationId: workspace-checkout
17172
- requestBody:
17173
- content:
17174
- application/json:
17175
- schema:
17176
- $ref: "#/components/schemas/CheckoutBody"
17177
- required: true
17178
- responses:
17179
- "200":
17180
- content:
17181
- application/json:
17182
- schema:
17183
- $ref: "#/components/schemas/CheckoutSessionResponse"
17184
- description: OK
17185
- default:
17186
- content:
17187
- application/problem+json:
17188
- schema:
17189
- $ref: "#/components/schemas/Detail"
17190
- description: Error
17191
- security:
17192
- - BearerAuth: []
17193
- summary: Open a subscription checkout for the current workspace
17194
- tags:
17195
- - Onboarding
17196
- /v1/workspace/credit-ledger:
17197
- get:
17198
- description: "Returns the AUTHENTICATED tenant's own prepaid overage-credit movements, newest first: every purchase and every daily overage debit, each with its signed amount, the balance it left behind, and why it happened. The daily debit only does its job if the customer can see it — a balance that moves with no readable explanation is money nobody can reconcile. The workspace is resolved from the JWT tenant-slug claim: this endpoint never accepts a tenant identifier in the request and can only read the caller's own movements. The result is capped server-side and has no pagination. A tenant with no self-serve workspace record returns 404. Errors use the RFC 9457 application/problem+json contract."
17199
- operationId: workspace-credit-ledger
17200
- responses:
17201
- "200":
17202
- content:
17203
- application/json:
17204
- schema:
17205
- $ref: "#/components/schemas/CreditLedgerPage"
17206
- description: OK
17207
- default:
17208
- content:
17209
- application/problem+json:
17210
- schema:
17211
- $ref: "#/components/schemas/Detail"
17212
- description: Error
17213
- security:
17214
- - BearerAuth: []
17215
- summary: Read the current workspace's prepaid-credit movements
17216
- tags:
17217
- - Onboarding
17218
- /v1/workspace/credit-purchase:
17219
- post:
17220
- description: "Opens a ONE-OFF hosted payment session that buys prepaid overage credit for the AUTHENTICATED tenant's own workspace, and returns the URL to redirect the browser to. It is never a subscription. The workspace is resolved from the JWT tenant-slug claim: this endpoint never accepts a tenant identifier in the body, path, query or headers. Any workspace on a self-serve plan may buy — trialing, lapsed, monthly or annual — because the customer who has run out of allowance is the one being told to buy. A workspace on a CONTRACTUAL plan is refused with 409: its volume is not metered, so prepaid overage credit buys it nothing. Payment is by CARD on every plan, including annual: the instrument that funds overage credit is deliberately not the subscription's instrument, and the card is saved for future CREDIT purchases only. An amount outside the price list's minimum and maximum is refused before the processor is called. The credit balance moves ONLY when the processor confirms the payment through the verified webhook — never on the return page and never in this response. Errors use the RFC 9457 application/problem+json contract. Its two refusals carry their own product codes: 422 MTCH-0815 (the amount is outside the purchasable range) and 409 MTCH-0806 (plan set by contract, so volume is not metered and credit buys nothing)."
17221
- operationId: workspace-credit-purchase
17222
- requestBody:
17223
- content:
17224
- application/json:
17225
- schema:
17226
- $ref: "#/components/schemas/CreditPurchaseBody"
17227
- required: true
17228
- responses:
17229
- "200":
17230
- content:
17231
- application/json:
17232
- schema:
17233
- $ref: "#/components/schemas/CreditPurchaseResponse"
17234
- description: OK
17235
- default:
17236
- content:
17237
- application/problem+json:
17238
- schema:
17239
- $ref: "#/components/schemas/Detail"
17240
- description: Error
17241
- security:
17242
- - BearerAuth: []
17243
- summary: Buy prepaid overage credit for the current workspace
17244
- tags:
17245
- - Onboarding
17246
- /v1/workspaces/{slug}/auth-config:
17247
- get:
17248
- description: "Resolves the minimum a browser needs to start a PKCE login for a workspace: the console OAuth client id, the identity-provider organization, and the public issuer URL. This is a PUBLIC, anonymous, read-only, pre-tenant route: it carries no operator JWT and returns nothing about the account, its owner, or its lifecycle. It answers only for ACTIVE workspaces; a nonexistent, still-provisioning, or suspended workspace returns an IDENTICAL 404 (no enumeration of lifecycle state). The response is briefly cacheable and the route is rate-limited per client IP. Errors use the RFC 9457 application/problem+json contract."
17249
- operationId: workspace-auth-config
17250
- parameters:
17251
- - description: Workspace slug as typed on the login screen.
17252
- in: path
17253
- name: slug
17254
- required: true
17255
- schema:
17256
- description: Workspace slug as typed on the login screen.
17257
- examples:
17258
- - acme
17259
- maxLength: 63
17260
- type: string
17261
- responses:
17262
- "200":
17263
- content:
17264
- application/json:
17265
- schema:
17266
- $ref: "#/components/schemas/WorkspaceAuthConfig"
17267
- description: OK
17268
- headers:
17269
- Cache-Control:
17270
- schema:
17271
- description: Short public cache lifetime for the login config.
17272
- type: string
17273
- default:
17274
- content:
17275
- application/problem+json:
17276
- schema:
17277
- $ref: "#/components/schemas/Detail"
17278
- description: Error
17279
- security: []
17280
- summary: Resolve a workspace's public login configuration
17281
- tags:
17282
- - Onboarding
17283
16552
  /version:
17284
16553
  get:
17285
16554
  description: Returns the service build version (from the VERSION environment variable, default 0.0.0) and the server UTC timestamp.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lerianstudio/matcher-mcp",
3
- "version": "5.0.1",
3
+ "version": "5.0.2",
4
4
  "type": "module",
5
5
  "description": "Model Context Protocol server for the Matcher reconciliation engine",
6
6
  "license": "Apache-2.0",
@@ -1,111 +0,0 @@
1
- // `workspace_usage` — curated GET /v1/workspace/billing, the ONE tenant-usage
2
- // surface, plus the single derived number the answer needs.
3
- //
4
- // "How much of my free tier is left?" is the question the copilot is expected to
5
- // answer (and to raise proactively), and until now it could only be reached by
6
- // the generic trio — which requires the model to already know the operationId
7
- // `workspace-billing`. Cost of curating it: one tool, no input, read-only.
8
- //
9
- // The backend is the authority on the verdict: `trialExpired` / `expiryReason` /
10
- // `daysRemaining` / `linesRemaining` are all derived by the TrialExpiry oracle
11
- // server-side and are relayed VERBATIM here — this tool never re-decides whether
12
- // a trial is over. It adds exactly one field, `usedPercent`, because that is
13
- // presentation (the shape of the answer), not enforcement.
14
- //
15
- // There is no input at all: the tenant comes from the relayed token's claims, so
16
- // there is nothing for a caller to pass — and nothing that could be spoofed.
17
- import { dispatchToolRequest } from '../shared-dispatch.js';
18
- /** The billing read path (tenant-scoped; tenant resolved from the token, not the path). */
19
- const WORKSPACE_BILLING_PATH = '/v1/workspace/billing';
20
- /**
21
- * Free-tier consumption as an already-scaled percent, rounded to one decimal, or
22
- * `null` when no honest percentage exists.
23
- *
24
- * Normally 0..100, but NOT clamped there: the matched-line counter is monotonic
25
- * and uncapped and the quota gate only refuses the next request, so a run already
26
- * in flight overshoots the cap. Clamping would hide the overshoot; the true
27
- * number is the honest answer, and the tool description says it can exceed 100.
28
- *
29
- * `null` off-trial is the point, not a fallback: the backend reads the
30
- * matched-line counter ONLY for a trialing workspace, so a converted/paid tenant
31
- * comes back with `matchedLines: 0` against a non-zero limit. Reporting that as
32
- * "0% consumed" would tell the model a paid plan has a full free allotment
33
- * waiting — it has no free-tier cap at all. Same for a non-positive limit or a
34
- * missing figure: no denominator, no percentage.
35
- */
36
- export function usedPercent(body) {
37
- if (body?.billingStatus !== 'trialing') {
38
- return null;
39
- }
40
- const { matchedLines, matchedLineLimit } = body;
41
- if (typeof matchedLines !== 'number' || typeof matchedLineLimit !== 'number') {
42
- return null;
43
- }
44
- if (!(matchedLineLimit > 0)) {
45
- return null;
46
- }
47
- // One decimal is all a spoken answer needs, and it keeps float noise
48
- // (82.00000000000001) out of the model's context.
49
- return Math.round((matchedLines / matchedLineLimit) * 1000) / 10;
50
- }
51
- /**
52
- * Register `workspace_usage`. Reads the caller's own commercial state through the
53
- * SHARED fail-closed relay — the additive percent rides its success-body
54
- * transform, so the credential refusal and the RFC 9457 mapping are the shared
55
- * ones rather than a local copy (that copy was BUG-06) — and returns the body
56
- * verbatim plus `usedPercent`. A matcher error
57
- * (404 for a tenant with no self-serve workspace, 403 MTCH-0021 for a
58
- * billing-suspended one) surfaces via the shared toToolError, so the model can
59
- * branch on `status`/`code` exactly as it does on every other tool.
60
- */
61
- export function registerWorkspaceUsageTool(server) {
62
- server.registerTool('workspace_usage', {
63
- description: "Report how much of the free tier is left for the caller's own " +
64
- 'workspace. Takes NO arguments — the workspace is resolved from your ' +
65
- 'relayed credential, so there is no tenant to pass. Returns the ' +
66
- 'commercial state as the backend derives it: plan; billingStatus ' +
67
- '(trialing, active, past_due, suspended); the TIME axis (trialEndsAt, ' +
68
- 'daysRemaining); the VOLUME axis (matchedLines consumed, ' +
69
- 'matchedLineLimit, linesRemaining); the unified verdict (trialExpired, ' +
70
- 'and expiryReason — "", "time", "volume", or "time_and_volume"); plus ' +
71
- 'usedPercent, the volume axis as a percentage — normally 0..100, but it ' +
72
- 'can exceed 100 when a match run already in flight walks past the cap ' +
73
- '(the counter is uncapped and the quota gate only refuses the NEXT ' +
74
- 'request), and it is reported unclamped so the overshoot stays visible. ' +
75
- 'usedPercent is ' +
76
- 'null when the workspace is NOT trialing: a paid plan has no free-tier ' +
77
- 'cap, so its zeroed volume figures mean "not measured", not "nothing ' +
78
- 'consumed" — say the plan has no free-tier limit rather than quoting ' +
79
- '0%. Never re-derive whether the trial is over; trialExpired and ' +
80
- 'expiryReason are the authority. Returns a structured RFC 9457 error on ' +
81
- 'failure (404 when the caller has no self-serve workspace, 403 ' +
82
- 'MTCH-0021 when billing has suspended it). Also returns the money in ' +
83
- 'both directions, in integer BRL cents: overageCreditBalanceCents ' +
84
- '(prepaid credit left) and overageUncoveredCents (overage already ' +
85
- 'incurred that the credit did not cover — what the workspace OWES). ' +
86
- 'The second is a receivable, not a negative balance: a new billing ' +
87
- 'period does not clear it, so never tell a customer a rollover settled ' +
88
- 'it, and never report it as a credit. ' +
89
- 'When a commercial ACTION on this workspace is refused, the refusal ' +
90
- 'carries a code from onboarding\'s own MTCH-08xx family and the code is ' +
91
- 'the answer, not the sentence: 0801 no payment processor is configured ' +
92
- '(retrying never clears it) vs 0802 the processor could not be asked ' +
93
- '(retry) — both arrive as a 503 whose detail is scrubbed to "internal ' +
94
- 'error"; 0803 a subscription the processor can still bill; 0804 only ' +
95
- 'the enterprise plan is operator-assigned; 0805 the billing status ' +
96
- 'forbids the change; 0806 the plan is set by contract, so nothing ' +
97
- 'self-serve applies; 0807 already subscribed; 0808 a checkout is open ' +
98
- 'for a different plan or interval; 0809 a checkout is being opened ' +
99
- 'right now; 0810 no billing account yet; 0811 a billing event id was ' +
100
- 'replayed with different content; 0812 the workspace exists and may be ' +
101
- 'the caller\'s own; 0813 the name belongs to another account; 0814 the ' +
102
- 'plan is not sold self-serve; 0815 the credit amount is out of range.',
103
- }, async (extra) => dispatchToolRequest({ method: 'GET', path: WORKSPACE_BILLING_PATH }, extra, undefined,
104
- // Spread, don't rebuild: the backend's fields are relayed unchanged and
105
- // the derived percent is purely additive.
106
- (billing) => ({
107
- ...billing,
108
- usedPercent: usedPercent(billing),
109
- })));
110
- }
111
- //# sourceMappingURL=usage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../src/tools/workspace/usage.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4DAA4D;AAC5D,EAAE;AACF,iFAAiF;AACjF,+EAA+E;AAC/E,8EAA8E;AAC9E,2EAA2E;AAC3E,EAAE;AACF,iFAAiF;AACjF,+EAA+E;AAC/E,iFAAiF;AACjF,6EAA6E;AAC7E,2DAA2D;AAC3D,EAAE;AACF,iFAAiF;AACjF,6EAA6E;AAI7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,2FAA2F;AAC3F,MAAM,sBAAsB,GAAG,uBAAuB,CAAA;AAatD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CACzB,IAAsC;IAEtC,IAAI,IAAI,EAAE,aAAa,KAAK,UAAU,EAAE,CAAC;QACvC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAA;IAC/C,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAC7E,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,qEAAqE;IACrE,kDAAkD;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,gBAAgB,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;AAClE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,gEAAgE;YAChE,sEAAsE;YACtE,iEAAiE;YACjE,kEAAkE;YAClE,uEAAuE;YACvE,0DAA0D;YAC1D,wEAAwE;YACxE,uEAAuE;YACvE,yEAAyE;YACzE,uEAAuE;YACvE,oEAAoE;YACpE,yEAAyE;YACzE,iBAAiB;YACjB,wEAAwE;YACxE,sEAAsE;YACtE,sEAAsE;YACtE,kEAAkE;YAClE,yEAAyE;YACzE,gEAAgE;YAChE,sEAAsE;YACtE,mEAAmE;YACnE,mEAAmE;YACnE,qEAAqE;YACrE,oEAAoE;YACpE,wEAAwE;YACxE,uCAAuC;YACvC,qEAAqE;YACrE,yEAAyE;YACzE,wEAAwE;YACxE,sEAAsE;YACtE,uEAAuE;YACvE,sEAAsE;YACtE,oEAAoE;YACpE,mEAAmE;YACnE,uEAAuE;YACvE,oEAAoE;YACpE,sEAAsE;YACtE,wEAAwE;YACxE,wEAAwE;YACxE,sEAAsE;KACzE,EACD,KAAK,EAAE,KAAK,EAAE,EAAE,CACd,mBAAmB,CACjB,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAC/C,KAAK,EACL,SAAS;IACT,wEAAwE;IACxE,0CAA0C;IAC1C,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACZ,GAAI,OAA4C;QAChD,WAAW,EAAE,WAAW,CAAC,OAA2C,CAAC;KACtE,CAAC,CACH,CACJ,CAAA;AACH,CAAC"}