@lerianstudio/matcher-mcp 1.5.0-beta.2 → 1.5.0-beta.4
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/dist/server.js
CHANGED
|
@@ -113,7 +113,7 @@ function registerTools(server) {
|
|
|
113
113
|
registerListOperationsTool(server, index);
|
|
114
114
|
registerDescribeOperationTool(server, index);
|
|
115
115
|
// Generic invoke (task 1.2.3): assembles + validates + dispatches any of the
|
|
116
|
-
//
|
|
116
|
+
// 174 operations with the caller's relayed token (fail-closed). Shares the
|
|
117
117
|
// RFC 9457 → tool-error mapping (toToolError) with the curated surface.
|
|
118
118
|
registerInvokeTool(server, index);
|
|
119
119
|
// Curated fee-schedule vertical (task 1.3.2): six typed tools (create/list/
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// covers — the registry the drift guard checks against.
|
|
3
3
|
//
|
|
4
4
|
// WHY THIS EXISTS
|
|
5
|
-
// The server exposes two surfaces over the
|
|
5
|
+
// The server exposes two surfaces over the 174-operation matcher spec:
|
|
6
6
|
// 1. The GENERIC trio (matcher_list_operations / describe / invoke) reads the
|
|
7
7
|
// spec at runtime, so it tracks the spec automatically. `load.test.ts`
|
|
8
|
-
// already pins `index.operations.size ===
|
|
8
|
+
// already pins `index.operations.size === 174` as that side's canary.
|
|
9
9
|
// 2. The CURATED tools (the ~72 hand-written Zod tools under `src/tools/*/`)
|
|
10
10
|
// hard-code their own method+path. NOTHING in those tools consults the
|
|
11
11
|
// spec, and their unit tests assert against the same hard-coded literal —
|
|
@@ -153,5 +153,21 @@ export const GENERIC_ONLY_OPERATION_IDS = [
|
|
|
153
153
|
// discovery hub (generic-only) — inbound streaming-hub event receiver; signed,
|
|
154
154
|
// hub-driven delivery, not an operator-initiated action (cf. above).
|
|
155
155
|
'receiveHubEvent', // POST /v1/discovery/hub/events
|
|
156
|
+
// self-service onboarding (generic-only) — PUBLIC, anonymous, PRE-TENANT
|
|
157
|
+
// routes for the console signup flow. The MCP relay authenticates every call
|
|
158
|
+
// with an already-provisioned tenant token, so "create me a workspace" is not
|
|
159
|
+
// an operator action on this surface (cf. the webhook receivers above).
|
|
160
|
+
'signup', // POST /v1/signup
|
|
161
|
+
'signup-verify', // POST /v1/signup/verify
|
|
162
|
+
// PUBLIC pre-login PKCE bootstrap for the console (client id + issuer per
|
|
163
|
+
// workspace slug); browser-facing discovery, not an operator action.
|
|
164
|
+
'workspace-auth-config', // GET /v1/workspaces/{slug}/auth-config
|
|
165
|
+
// standalone-SaaS Phase 2 control-plane (generic-only) — tenant billing read
|
|
166
|
+
// plus backoffice workspace-lifecycle admin. Straightforward body-less ops
|
|
167
|
+
// nobody has hand-curated a Zod tool for; billing read is tenant-scoped, the
|
|
168
|
+
// admin pair is an internal backoffice surface, not an operator action.
|
|
169
|
+
'workspace-billing', // GET /v1/workspace/billing
|
|
170
|
+
'admin-suspend-workspace', // PUT /v1/admin/workspaces/{slug}/suspend
|
|
171
|
+
'admin-reactivate-workspace', // PUT /v1/admin/workspaces/{slug}/reactivate
|
|
156
172
|
];
|
|
157
173
|
//# 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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"}
|
package/dist/spec/openapi.yaml
CHANGED
|
@@ -224,6 +224,19 @@ components:
|
|
|
224
224
|
- createdAt
|
|
225
225
|
- updatedAt
|
|
226
226
|
type: object
|
|
227
|
+
AdminWorkspaceResult:
|
|
228
|
+
additionalProperties: false
|
|
229
|
+
properties:
|
|
230
|
+
action:
|
|
231
|
+
description: "The action applied: \"suspended\" or \"reactivated\"."
|
|
232
|
+
type: string
|
|
233
|
+
slug:
|
|
234
|
+
description: The workspace acted on.
|
|
235
|
+
type: string
|
|
236
|
+
required:
|
|
237
|
+
- slug
|
|
238
|
+
- action
|
|
239
|
+
type: object
|
|
227
240
|
AgeBucketDTO:
|
|
228
241
|
additionalProperties: false
|
|
229
242
|
properties:
|
|
@@ -6466,6 +6479,43 @@ components:
|
|
|
6466
6479
|
- left
|
|
6467
6480
|
- right
|
|
6468
6481
|
type: object
|
|
6482
|
+
SignupBody:
|
|
6483
|
+
additionalProperties: false
|
|
6484
|
+
properties:
|
|
6485
|
+
acceptTos:
|
|
6486
|
+
description: Must be true; acceptance is recorded with a timestamp.
|
|
6487
|
+
type: boolean
|
|
6488
|
+
companyName:
|
|
6489
|
+
description: Company/organization name; a URL-safe slug is derived from it.
|
|
6490
|
+
examples:
|
|
6491
|
+
- Acme Payments
|
|
6492
|
+
maxLength: 200
|
|
6493
|
+
type: string
|
|
6494
|
+
email:
|
|
6495
|
+
description: Work email; disposable domains are rejected.
|
|
6496
|
+
examples:
|
|
6497
|
+
- founder@acme.com
|
|
6498
|
+
maxLength: 254
|
|
6499
|
+
type: string
|
|
6500
|
+
password:
|
|
6501
|
+
description: Account password; 12–72 characters with letters and digits. The 72-byte cap is bcrypt's input limit.
|
|
6502
|
+
maxLength: 72
|
|
6503
|
+
type: string
|
|
6504
|
+
required:
|
|
6505
|
+
- email
|
|
6506
|
+
- password
|
|
6507
|
+
- companyName
|
|
6508
|
+
- acceptTos
|
|
6509
|
+
type: object
|
|
6510
|
+
SignupResponse:
|
|
6511
|
+
additionalProperties: false
|
|
6512
|
+
properties:
|
|
6513
|
+
message:
|
|
6514
|
+
description: Human-readable acknowledgement (identical for known and unknown emails).
|
|
6515
|
+
type: string
|
|
6516
|
+
required:
|
|
6517
|
+
- message
|
|
6518
|
+
type: object
|
|
6469
6519
|
SimulateFeeItem:
|
|
6470
6520
|
additionalProperties: false
|
|
6471
6521
|
properties:
|
|
@@ -7784,6 +7834,25 @@ components:
|
|
|
7784
7834
|
- totalActual
|
|
7785
7835
|
- netVariance
|
|
7786
7836
|
type: object
|
|
7837
|
+
VerifyBody:
|
|
7838
|
+
additionalProperties: false
|
|
7839
|
+
properties:
|
|
7840
|
+
token:
|
|
7841
|
+
description: The verification token from the signup email link.
|
|
7842
|
+
maxLength: 512
|
|
7843
|
+
type: string
|
|
7844
|
+
required:
|
|
7845
|
+
- token
|
|
7846
|
+
type: object
|
|
7847
|
+
VerifyResponse:
|
|
7848
|
+
additionalProperties: false
|
|
7849
|
+
properties:
|
|
7850
|
+
message:
|
|
7851
|
+
description: Human-readable verification result.
|
|
7852
|
+
type: string
|
|
7853
|
+
required:
|
|
7854
|
+
- message
|
|
7855
|
+
type: object
|
|
7787
7856
|
VersionBody:
|
|
7788
7857
|
additionalProperties: false
|
|
7789
7858
|
properties:
|
|
@@ -7858,6 +7927,45 @@ components:
|
|
|
7858
7927
|
- periodStart
|
|
7859
7928
|
- periodEnd
|
|
7860
7929
|
type: object
|
|
7930
|
+
WorkspaceAuthConfig:
|
|
7931
|
+
additionalProperties: false
|
|
7932
|
+
properties:
|
|
7933
|
+
clientId:
|
|
7934
|
+
description: OAuth client id of the workspace's console application.
|
|
7935
|
+
type: string
|
|
7936
|
+
issuer:
|
|
7937
|
+
description: Public base URL of the identity provider (the PKCE issuer).
|
|
7938
|
+
type: string
|
|
7939
|
+
organization:
|
|
7940
|
+
description: Identity-provider organization name for the workspace.
|
|
7941
|
+
type: string
|
|
7942
|
+
required:
|
|
7943
|
+
- clientId
|
|
7944
|
+
- organization
|
|
7945
|
+
- issuer
|
|
7946
|
+
type: object
|
|
7947
|
+
WorkspaceBilling:
|
|
7948
|
+
additionalProperties: false
|
|
7949
|
+
properties:
|
|
7950
|
+
billingStatus:
|
|
7951
|
+
description: "Commercial lifecycle: trialing, active, past_due, or suspended."
|
|
7952
|
+
type: string
|
|
7953
|
+
daysRemaining:
|
|
7954
|
+
description: Whole days left in the trial, derived server-side. 0 when there is no trial or it has already ended.
|
|
7955
|
+
format: int64
|
|
7956
|
+
type: integer
|
|
7957
|
+
plan:
|
|
7958
|
+
description: Commercial plan the workspace is on ("free" or a paid tier).
|
|
7959
|
+
type: string
|
|
7960
|
+
trialEndsAt:
|
|
7961
|
+
description: When the free trial ends (UTC). Omitted for a paid plan that never trialed.
|
|
7962
|
+
format: date-time
|
|
7963
|
+
type: string
|
|
7964
|
+
required:
|
|
7965
|
+
- plan
|
|
7966
|
+
- billingStatus
|
|
7967
|
+
- daysRemaining
|
|
7968
|
+
type: object
|
|
7861
7969
|
securitySchemes:
|
|
7862
7970
|
BearerAuth:
|
|
7863
7971
|
bearerFormat: JWT
|
|
@@ -7936,6 +8044,68 @@ paths:
|
|
|
7936
8044
|
summary: Readiness check
|
|
7937
8045
|
tags:
|
|
7938
8046
|
- Health
|
|
8047
|
+
/v1/admin/workspaces/{slug}/reactivate:
|
|
8048
|
+
put:
|
|
8049
|
+
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."
|
|
8050
|
+
operationId: admin-reactivate-workspace
|
|
8051
|
+
parameters:
|
|
8052
|
+
- description: Slug of the workspace to act on.
|
|
8053
|
+
in: path
|
|
8054
|
+
name: slug
|
|
8055
|
+
required: true
|
|
8056
|
+
schema:
|
|
8057
|
+
description: Slug of the workspace to act on.
|
|
8058
|
+
maxLength: 255
|
|
8059
|
+
type: string
|
|
8060
|
+
responses:
|
|
8061
|
+
"200":
|
|
8062
|
+
content:
|
|
8063
|
+
application/json:
|
|
8064
|
+
schema:
|
|
8065
|
+
$ref: "#/components/schemas/AdminWorkspaceResult"
|
|
8066
|
+
description: OK
|
|
8067
|
+
default:
|
|
8068
|
+
content:
|
|
8069
|
+
application/problem+json:
|
|
8070
|
+
schema:
|
|
8071
|
+
$ref: "#/components/schemas/Detail"
|
|
8072
|
+
description: Error
|
|
8073
|
+
security:
|
|
8074
|
+
- BearerAuth: []
|
|
8075
|
+
summary: Reactivate a suspended workspace (backoffice)
|
|
8076
|
+
tags:
|
|
8077
|
+
- Onboarding
|
|
8078
|
+
/v1/admin/workspaces/{slug}/suspend:
|
|
8079
|
+
put:
|
|
8080
|
+
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."
|
|
8081
|
+
operationId: admin-suspend-workspace
|
|
8082
|
+
parameters:
|
|
8083
|
+
- description: Slug of the workspace to act on.
|
|
8084
|
+
in: path
|
|
8085
|
+
name: slug
|
|
8086
|
+
required: true
|
|
8087
|
+
schema:
|
|
8088
|
+
description: Slug of the workspace to act on.
|
|
8089
|
+
maxLength: 255
|
|
8090
|
+
type: string
|
|
8091
|
+
responses:
|
|
8092
|
+
"200":
|
|
8093
|
+
content:
|
|
8094
|
+
application/json:
|
|
8095
|
+
schema:
|
|
8096
|
+
$ref: "#/components/schemas/AdminWorkspaceResult"
|
|
8097
|
+
description: OK
|
|
8098
|
+
default:
|
|
8099
|
+
content:
|
|
8100
|
+
application/problem+json:
|
|
8101
|
+
schema:
|
|
8102
|
+
$ref: "#/components/schemas/Detail"
|
|
8103
|
+
description: Error
|
|
8104
|
+
security:
|
|
8105
|
+
- BearerAuth: []
|
|
8106
|
+
summary: Suspend a workspace (backoffice)
|
|
8107
|
+
tags:
|
|
8108
|
+
- Onboarding
|
|
7939
8109
|
/v1/contexts:
|
|
7940
8110
|
get:
|
|
7941
8111
|
description: Returns a cursor-paginated list of reconciliation contexts, optionally filtered by type and status.
|
|
@@ -15345,6 +15515,119 @@ paths:
|
|
|
15345
15515
|
summary: Export variance report
|
|
15346
15516
|
tags:
|
|
15347
15517
|
- Reporting
|
|
15518
|
+
/v1/signup:
|
|
15519
|
+
post:
|
|
15520
|
+
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."
|
|
15521
|
+
operationId: signup
|
|
15522
|
+
requestBody:
|
|
15523
|
+
content:
|
|
15524
|
+
application/json:
|
|
15525
|
+
schema:
|
|
15526
|
+
$ref: "#/components/schemas/SignupBody"
|
|
15527
|
+
required: true
|
|
15528
|
+
responses:
|
|
15529
|
+
"202":
|
|
15530
|
+
content:
|
|
15531
|
+
application/json:
|
|
15532
|
+
schema:
|
|
15533
|
+
$ref: "#/components/schemas/SignupResponse"
|
|
15534
|
+
description: Accepted
|
|
15535
|
+
default:
|
|
15536
|
+
content:
|
|
15537
|
+
application/problem+json:
|
|
15538
|
+
schema:
|
|
15539
|
+
$ref: "#/components/schemas/Detail"
|
|
15540
|
+
description: Error
|
|
15541
|
+
security: []
|
|
15542
|
+
summary: Create a self-service signup
|
|
15543
|
+
tags:
|
|
15544
|
+
- Onboarding
|
|
15545
|
+
/v1/signup/verify:
|
|
15546
|
+
post:
|
|
15547
|
+
description: "Completes self-service onboarding. This is a PUBLIC, anonymous, pre-tenant route: it exchanges the emailed verification token for a provisioned workspace. It is idempotent and re-entrant: a repeat call re-drives an incomplete provisioning to completion, and a token that no longer resolves (already used or expired) returns the same 200 response. The route is rate-limited per client IP."
|
|
15548
|
+
operationId: signup-verify
|
|
15549
|
+
requestBody:
|
|
15550
|
+
content:
|
|
15551
|
+
application/json:
|
|
15552
|
+
schema:
|
|
15553
|
+
$ref: "#/components/schemas/VerifyBody"
|
|
15554
|
+
required: true
|
|
15555
|
+
responses:
|
|
15556
|
+
"200":
|
|
15557
|
+
content:
|
|
15558
|
+
application/json:
|
|
15559
|
+
schema:
|
|
15560
|
+
$ref: "#/components/schemas/VerifyResponse"
|
|
15561
|
+
description: OK
|
|
15562
|
+
default:
|
|
15563
|
+
content:
|
|
15564
|
+
application/problem+json:
|
|
15565
|
+
schema:
|
|
15566
|
+
$ref: "#/components/schemas/Detail"
|
|
15567
|
+
description: Error
|
|
15568
|
+
security: []
|
|
15569
|
+
summary: Verify a self-service signup
|
|
15570
|
+
tags:
|
|
15571
|
+
- Onboarding
|
|
15572
|
+
/v1/workspace/billing:
|
|
15573
|
+
get:
|
|
15574
|
+
description: "Returns the authenticated tenant's own commercial state: its plan, billing status, trial deadline, and the whole days remaining in the trial (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."
|
|
15575
|
+
operationId: workspace-billing
|
|
15576
|
+
responses:
|
|
15577
|
+
"200":
|
|
15578
|
+
content:
|
|
15579
|
+
application/json:
|
|
15580
|
+
schema:
|
|
15581
|
+
$ref: "#/components/schemas/WorkspaceBilling"
|
|
15582
|
+
description: OK
|
|
15583
|
+
default:
|
|
15584
|
+
content:
|
|
15585
|
+
application/problem+json:
|
|
15586
|
+
schema:
|
|
15587
|
+
$ref: "#/components/schemas/Detail"
|
|
15588
|
+
description: Error
|
|
15589
|
+
security:
|
|
15590
|
+
- BearerAuth: []
|
|
15591
|
+
summary: Read the current workspace's commercial state
|
|
15592
|
+
tags:
|
|
15593
|
+
- Onboarding
|
|
15594
|
+
/v1/workspaces/{slug}/auth-config:
|
|
15595
|
+
get:
|
|
15596
|
+
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."
|
|
15597
|
+
operationId: workspace-auth-config
|
|
15598
|
+
parameters:
|
|
15599
|
+
- description: Workspace slug as typed on the login screen.
|
|
15600
|
+
in: path
|
|
15601
|
+
name: slug
|
|
15602
|
+
required: true
|
|
15603
|
+
schema:
|
|
15604
|
+
description: Workspace slug as typed on the login screen.
|
|
15605
|
+
examples:
|
|
15606
|
+
- acme
|
|
15607
|
+
maxLength: 63
|
|
15608
|
+
type: string
|
|
15609
|
+
responses:
|
|
15610
|
+
"200":
|
|
15611
|
+
content:
|
|
15612
|
+
application/json:
|
|
15613
|
+
schema:
|
|
15614
|
+
$ref: "#/components/schemas/WorkspaceAuthConfig"
|
|
15615
|
+
description: OK
|
|
15616
|
+
headers:
|
|
15617
|
+
Cache-Control:
|
|
15618
|
+
schema:
|
|
15619
|
+
description: Short public cache lifetime for the login config.
|
|
15620
|
+
type: string
|
|
15621
|
+
default:
|
|
15622
|
+
content:
|
|
15623
|
+
application/problem+json:
|
|
15624
|
+
schema:
|
|
15625
|
+
$ref: "#/components/schemas/Detail"
|
|
15626
|
+
description: Error
|
|
15627
|
+
security: []
|
|
15628
|
+
summary: Resolve a workspace's public login configuration
|
|
15629
|
+
tags:
|
|
15630
|
+
- Onboarding
|
|
15348
15631
|
/version:
|
|
15349
15632
|
get:
|
|
15350
15633
|
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": "1.5.0-beta.
|
|
3
|
+
"version": "1.5.0-beta.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Model Context Protocol server for the Matcher reconciliation engine",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -48,11 +48,11 @@
|
|
|
48
48
|
"@anthropic-ai/sdk": "^0.110.0",
|
|
49
49
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
50
50
|
"@opentelemetry/api": "1.9.1",
|
|
51
|
-
"@opentelemetry/exporter-metrics-otlp-http": "0.
|
|
52
|
-
"@opentelemetry/exporter-trace-otlp-http": "0.
|
|
53
|
-
"@opentelemetry/resources": "2.
|
|
54
|
-
"@opentelemetry/sdk-metrics": "2.
|
|
55
|
-
"@opentelemetry/sdk-node": "0.
|
|
51
|
+
"@opentelemetry/exporter-metrics-otlp-http": "0.220.0",
|
|
52
|
+
"@opentelemetry/exporter-trace-otlp-http": "0.220.0",
|
|
53
|
+
"@opentelemetry/resources": "2.9.0",
|
|
54
|
+
"@opentelemetry/sdk-metrics": "2.9.0",
|
|
55
|
+
"@opentelemetry/sdk-node": "0.220.0",
|
|
56
56
|
"@opentelemetry/semantic-conventions": "1.41.1",
|
|
57
57
|
"ajv": "^8.20.0",
|
|
58
58
|
"openai": "^6.45.0",
|