@arnaudjnn/billing-tools 22.2.1 → 23.1.0
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/billing.d.ts +16 -1
- package/dist/billing.d.ts.map +1 -1
- package/dist/billing.js +47 -3
- package/dist/billing.js.map +1 -1
- package/dist/bound-api.d.ts +23 -14
- package/dist/bound-api.d.ts.map +1 -1
- package/dist/bound-api.js +15 -5
- package/dist/bound-api.js.map +1 -1
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +35 -53
- package/dist/cli/commands.js.map +1 -1
- package/dist/create-billing.d.ts +11 -12
- package/dist/create-billing.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ladder.d.ts +48 -1
- package/dist/ladder.d.ts.map +1 -1
- package/dist/ladder.js.map +1 -1
- package/dist/plan-request.d.ts +34 -0
- package/dist/plan-request.d.ts.map +1 -1
- package/dist/plan-request.js +62 -1
- package/dist/plan-request.js.map +1 -1
- package/dist/tools/quotes.d.ts +4 -6
- package/dist/tools/quotes.d.ts.map +1 -1
- package/dist/tools/quotes.js +133 -174
- package/dist/tools/quotes.js.map +1 -1
- package/dist/tools/register.d.ts +2 -2
- package/dist/tools/register.d.ts.map +1 -1
- package/dist/tools/register.js +7 -7
- package/dist/tools/register.js.map +1 -1
- package/package.json +1 -1
- package/dist/credit-quotes.d.ts +0 -115
- package/dist/credit-quotes.d.ts.map +0 -1
- package/dist/credit-quotes.js +0 -123
- package/dist/credit-quotes.js.map +0 -1
package/dist/plan-request.js
CHANGED
|
@@ -162,7 +162,10 @@ export async function requestPlanChange(adapter, orgId, input) {
|
|
|
162
162
|
const list = await read(adapter, orgId);
|
|
163
163
|
// One open ask per member, for the same reason the top-up has one: the button that files it
|
|
164
164
|
// cannot choose anything, so pressing it twice would queue the same sentence twice.
|
|
165
|
-
|
|
165
|
+
// An ask that is waiting on a PRICE is open too. `pending` is "nobody has looked at it";
|
|
166
|
+
// `quoted` is "an operator answered and the admin has not accepted yet" — and filing a
|
|
167
|
+
// second ask in either state queues the same conversation twice.
|
|
168
|
+
const open = list.find((r) => r.memberId === input.memberId && (r.status === "pending" || r.status === "quoted"));
|
|
166
169
|
if (open && !isSatisfied(open, input.plans, currentPlan)) {
|
|
167
170
|
return { ok: false, reason: "already_pending", pending: open, plan: open.plan };
|
|
168
171
|
}
|
|
@@ -174,6 +177,8 @@ export async function requestPlanChange(adapter, orgId, input) {
|
|
|
174
177
|
status: "pending",
|
|
175
178
|
createdAt: new Date(input.now ?? Date.now()).toISOString(),
|
|
176
179
|
...(input.note ? { note: input.note.slice(0, 140) } : {}),
|
|
180
|
+
...(input.seats ? { seats: Math.round(input.seats) } : {}),
|
|
181
|
+
...(input.contact ? { contact: input.contact } : {}),
|
|
177
182
|
};
|
|
178
183
|
if (!(await write(adapter, orgId, [...list.filter((r) => r.id !== request.id), request]))) {
|
|
179
184
|
return { ok: false, reason: "queue_full" };
|
|
@@ -181,6 +186,62 @@ export async function requestPlanChange(adapter, orgId, input) {
|
|
|
181
186
|
notifyRequested(input.notify, orgId, request);
|
|
182
187
|
return { ok: true, id: request.id, plan: target };
|
|
183
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Price an open ask — the operator's half, and the only place a per-credit rate is set.
|
|
191
|
+
*
|
|
192
|
+
* Per CREDIT rather than a total, because that is what a negotiation is actually about:
|
|
193
|
+
* "we can do 0.7¢" survives the customer changing how much they want, and a total does not.
|
|
194
|
+
* The total is arithmetic and is computed here, so the number the customer accepts and the
|
|
195
|
+
* number they are charged cannot drift.
|
|
196
|
+
*/
|
|
197
|
+
export async function quotePlanRequest(adapter, orgId, input) {
|
|
198
|
+
if (!Number.isFinite(input.credits) ||
|
|
199
|
+
input.credits <= 0 ||
|
|
200
|
+
!Number.isFinite(input.unitPriceMinor) ||
|
|
201
|
+
input.unitPriceMinor <= 0) {
|
|
202
|
+
return { ok: false, reason: "invalid_amount" };
|
|
203
|
+
}
|
|
204
|
+
const list = await read(adapter, orgId);
|
|
205
|
+
const found = list.find((r) => r.id === input.requestId && (r.status === "pending" || r.status === "quoted"));
|
|
206
|
+
if (!found)
|
|
207
|
+
return { ok: false, reason: "not_found" };
|
|
208
|
+
const updated = {
|
|
209
|
+
...found,
|
|
210
|
+
// Re-quoting an already-quoted ask is a NEW price on the same conversation, not a second
|
|
211
|
+
// request: a negotiation that goes back and forth is the normal case.
|
|
212
|
+
status: "quoted",
|
|
213
|
+
quote: {
|
|
214
|
+
credits: Math.round(input.credits),
|
|
215
|
+
unitPriceMinor: input.unitPriceMinor,
|
|
216
|
+
totalMinor: Math.round(input.credits * input.unitPriceMinor),
|
|
217
|
+
...(input.validUntil ? { validUntil: input.validUntil } : {}),
|
|
218
|
+
...(input.note ? { note: input.note.slice(0, 280) } : {}),
|
|
219
|
+
at: new Date(input.now ?? Date.now()).toISOString(),
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
if (!(await write(adapter, orgId, list.map((r) => (r.id === updated.id ? updated : r))))) {
|
|
223
|
+
return { ok: false, reason: "queue_full" };
|
|
224
|
+
}
|
|
225
|
+
input.notify?.({
|
|
226
|
+
id: `quote-sent:${updated.id}:${updated.quote.at}`,
|
|
227
|
+
type: "quote.resolved",
|
|
228
|
+
orgId,
|
|
229
|
+
to: [],
|
|
230
|
+
audience: { kind: "member", memberId: updated.memberId },
|
|
231
|
+
data: { quoteId: updated.id, member: { id: updated.memberId, email: null }, quote: updated },
|
|
232
|
+
});
|
|
233
|
+
return { ok: true, request: updated };
|
|
234
|
+
}
|
|
235
|
+
/** Mark a quoted ask as accepted, once the money half has been arranged. */
|
|
236
|
+
export async function markPlanQuoteAccepted(adapter, orgId, input) {
|
|
237
|
+
const list = await read(adapter, orgId);
|
|
238
|
+
const found = list.find((r) => r.id === input.requestId && r.status === "quoted");
|
|
239
|
+
if (!found)
|
|
240
|
+
return null;
|
|
241
|
+
const updated = { ...found, status: "done", accepted: input.accepted };
|
|
242
|
+
await write(adapter, orgId, list.map((r) => (r.id === updated.id ? updated : r)));
|
|
243
|
+
return updated;
|
|
244
|
+
}
|
|
184
245
|
/** The rung nobody's money can climb alone: the admins are the only ones who can answer. */
|
|
185
246
|
function notifyRequested(notify, orgId, request) {
|
|
186
247
|
notify?.({
|
package/dist/plan-request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-request.js","sourceRoot":"","sources":["../src/plan-request.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plan-request.js","sourceRoot":"","sources":["../src/plan-request.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/quotes.d.ts
CHANGED
|
@@ -5,13 +5,11 @@ export interface QuoteToolOptions {
|
|
|
5
5
|
config: ResolvedConfig;
|
|
6
6
|
notify?: Notify;
|
|
7
7
|
/**
|
|
8
|
-
* Register the OPERATOR half (`
|
|
8
|
+
* Register the OPERATOR half (`quote_plan_change`, `sell_credits`). Default true.
|
|
9
9
|
*
|
|
10
|
-
* `false` builds the customer's tool set
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* negotiated price" describes a capability they will never have, and an agent reading
|
|
14
|
-
* that list will try it.
|
|
10
|
+
* `false` builds the customer's tool set. Not a security boundary — `enforceOperator` is,
|
|
11
|
+
* wherever these exist — but a list that offers "price somebody else's workspace" to
|
|
12
|
+
* somebody who can never do it is a list that sends agents at a 403.
|
|
15
13
|
*/
|
|
16
14
|
operatorTools?: boolean;
|
|
17
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quotes.d.ts","sourceRoot":"","sources":["../../src/tools/quotes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"quotes.d.ts","sourceRoot":"","sources":["../../src/tools/quotes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AA+ClE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,QAyJpG"}
|
package/dist/tools/quotes.js
CHANGED
|
@@ -1,127 +1,173 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
2
|
+
import { enforceAdmin, enforceOperator } from "../auth.js";
|
|
3
3
|
import { getBillingCustomerId, sellCredits } from "../billing.js";
|
|
4
|
-
import {
|
|
5
|
-
//
|
|
4
|
+
import { listPlanRequests, markPlanQuoteAccepted, quotePlanRequest } from "../plan-request.js";
|
|
5
|
+
// Custom pricing, in the taxonomy that already existed.
|
|
6
6
|
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
//
|
|
7
|
+
// This was briefly its own family — `request_credit_quote`, `list_credit_quotes`,
|
|
8
|
+
// `resolve_credit_quote`, over a store of its own — and that was the mistake. Asking to move
|
|
9
|
+
// to a plan you cannot buy self-serve is the SAME act as asking to move to one you can:
|
|
10
|
+
// `request_plan_change` already means "I want to move up", already keeps one open ask per
|
|
11
|
+
// member, and already tells the people who can answer. A quote-only plan does not need
|
|
12
|
+
// another verb; it needs the answer to be able to carry a price.
|
|
13
|
+
//
|
|
14
|
+
// So the record grew (`seats`, `contact`, `quote`, `accepted` on `PlanRequest`) and what is
|
|
15
|
+
// left here is the two halves the existing tools did not have:
|
|
16
|
+
//
|
|
17
|
+
// • `quote_plan_change` — OPERATOR: a quantity, and a price PER CREDIT.
|
|
18
|
+
// • `accept_plan_quote` — ADMIN: takes it, and pays it.
|
|
19
|
+
//
|
|
20
|
+
// Plus `sell_credits`: the same sale with no request behind it, for a conversation that
|
|
21
|
+
// started on a call.
|
|
12
22
|
const json = (data) => ({ content: [{ type: "text", text: JSON.stringify(data) }] });
|
|
13
23
|
const err = (text) => ({ isError: true, content: [{ type: "text", text }] });
|
|
24
|
+
/** What a charge did, in the shape a tool answers with — `sellCredits` returns one of two. */
|
|
25
|
+
function saleResult(sale, credits) {
|
|
26
|
+
if (sale.status === "charged") {
|
|
27
|
+
return {
|
|
28
|
+
status: "charged",
|
|
29
|
+
invoice_id: sale.invoiceId,
|
|
30
|
+
invoice_url: sale.hostedInvoiceUrl,
|
|
31
|
+
credits_on_payment: credits,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
if (sale.status === "invoiced") {
|
|
35
|
+
return {
|
|
36
|
+
status: "invoiced",
|
|
37
|
+
invoice_id: sale.invoiceId,
|
|
38
|
+
invoice_url: sale.hostedInvoiceUrl,
|
|
39
|
+
due_at: sale.dueAt,
|
|
40
|
+
emailed: sale.emailed,
|
|
41
|
+
// Said plainly, because "invoiced" reads like "done".
|
|
42
|
+
credits_on_payment: credits,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
return { status: "refused", reason: sale.reason, message: sale.message };
|
|
46
|
+
}
|
|
14
47
|
export function registerQuoteTools(server, adapter, opts) {
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
// advertisement this library keeps deleting.
|
|
48
|
+
// The ask and its answer both live in org metadata. An adapter that cannot hold one gets
|
|
49
|
+
// neither tool, rather than a pair that could only ever answer "not supported".
|
|
18
50
|
if (!adapter.getOrgMetadata || !adapter.setOrgMetadata)
|
|
19
51
|
return;
|
|
20
|
-
server.tool("
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
volume_amount: z.number().positive().optional().describe('Your own unit, e.g. 20000 for "20000 searches"'),
|
|
27
|
-
volume_unit: z.string().max(40).optional().describe('What those are: "searches", "documents", …'),
|
|
28
|
-
volume_per: z.enum(["month", "year"]).optional().default("month"),
|
|
29
|
-
term: z.enum(["one_off", "monthly", "annual"]).default("one_off").describe("One purchase, or a commitment"),
|
|
30
|
-
seats: z.number().int().positive().optional().describe("How many people will use it"),
|
|
31
|
-
budget: z.number().positive().optional().describe("What you expect to pay, in whole currency units"),
|
|
32
|
-
needed_by: z.string().optional().describe("ISO date you need it live by"),
|
|
33
|
-
payment_method: z.enum(["invoice", "card"]).default("invoice"),
|
|
34
|
-
purchase_order: z.string().max(30).optional().describe("Your PO number, if procurement needs one on the invoice"),
|
|
35
|
-
note: z.string().max(280).optional().describe("What you are doing with it"),
|
|
36
|
-
first_name: z.string().max(80).optional(),
|
|
37
|
-
last_name: z.string().max(80).optional(),
|
|
38
|
-
work_email: z
|
|
39
|
-
.string()
|
|
40
|
-
.email()
|
|
41
|
-
.optional()
|
|
42
|
-
.describe("Address on the company's own domain — who we answer, and where"),
|
|
52
|
+
server.tool("accept_plan_quote", `Accept the price an operator quoted for a plan change (workspace admins). Charges the
|
|
53
|
+
card on file if there is one, otherwise emails a payable invoice — either way the credits
|
|
54
|
+
land when the invoice is PAID. Nothing is charged until this is called.`, {
|
|
55
|
+
request_id: z.string().describe("The quoted request"),
|
|
56
|
+
purchase_order: z.string().max(30).optional().describe("Your PO number, printed on the invoice"),
|
|
57
|
+
days_until_due: z.number().int().positive().optional().describe("Net terms when it is invoiced. Default 30"),
|
|
43
58
|
}, async (a) => {
|
|
44
|
-
// An
|
|
45
|
-
|
|
46
|
-
const auth = await enforceAdmin(adapter, "requesting a credit quote");
|
|
59
|
+
// An ADMIN, because accepting is agreeing to be charged.
|
|
60
|
+
const auth = await enforceAdmin(adapter, "accepting a quote");
|
|
47
61
|
if ("isError" in auth)
|
|
48
62
|
return auth;
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
63
|
+
const open = (await listPlanRequests(adapter, auth.orgId)).find((r) => r.id === a.request_id && r.status === "quoted");
|
|
64
|
+
if (!open?.quote)
|
|
65
|
+
return err("No quoted request with that id.");
|
|
66
|
+
// A price with an expiry that has passed is not a price. Re-quoting is one operator
|
|
67
|
+
// call; charging somebody last month's rate is a refund and an apology.
|
|
68
|
+
if (open.quote.validUntil && Date.parse(open.quote.validUntil) < Date.now()) {
|
|
69
|
+
return err("That price has expired. Ask for a new one and we will re-quote it.");
|
|
70
|
+
}
|
|
71
|
+
const customerId = await getBillingCustomerId(adapter, auth.orgId);
|
|
72
|
+
if (!customerId)
|
|
73
|
+
return err("This workspace has no billing account.");
|
|
74
|
+
const sale = await sellCredits(customerId, auth.orgId, opts.config, {
|
|
75
|
+
credits: open.quote.credits,
|
|
76
|
+
amountMinor: open.quote.totalMinor,
|
|
77
|
+
description: `${open.quote.credits.toLocaleString("en-US")} credits`,
|
|
78
|
+
...(a.days_until_due ? { daysUntilDue: a.days_until_due } : {}),
|
|
62
79
|
...(a.purchase_order ? { purchaseOrder: a.purchase_order } : {}),
|
|
80
|
+
// The REQUEST id is the idempotency key: accepting twice reuses the invoice rather
|
|
81
|
+
// than billing a second time.
|
|
82
|
+
idempotencyKey: `quote:${open.id}`,
|
|
83
|
+
});
|
|
84
|
+
if (sale.status === "refused")
|
|
85
|
+
return err(sale.message);
|
|
86
|
+
await markPlanQuoteAccepted(adapter, auth.orgId, {
|
|
87
|
+
requestId: open.id,
|
|
88
|
+
accepted: {
|
|
89
|
+
at: new Date().toISOString(),
|
|
90
|
+
method: sale.status === "charged" ? "saved_card" : "invoice",
|
|
91
|
+
invoiceId: sale.invoiceId,
|
|
92
|
+
...(sale.hostedInvoiceUrl ? { invoiceUrl: sale.hostedInvoiceUrl } : {}),
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
return json(saleResult(sale, open.quote.credits));
|
|
96
|
+
});
|
|
97
|
+
if (opts.operatorTools === false)
|
|
98
|
+
return;
|
|
99
|
+
server.tool("quote_plan_change", `Price an open plan-change request (platform operators only). Give a credit quantity and
|
|
100
|
+
a price PER CREDIT — the total is computed here, so the figure a customer accepts and the
|
|
101
|
+
figure they are charged cannot drift. Charges nothing: they accept with accept_plan_quote.`, {
|
|
102
|
+
workspace_id: z.string().describe("The workspace whose request this is"),
|
|
103
|
+
request_id: z.string(),
|
|
104
|
+
credits: z.number().int().positive().describe("How many credits the deal is for"),
|
|
105
|
+
price_per_credit: z
|
|
106
|
+
.number()
|
|
107
|
+
.positive()
|
|
108
|
+
.describe("Minor units per credit — 0.7 is 0.7 cents. Fractions are allowed"),
|
|
109
|
+
valid_until: z.string().optional().describe("ISO date the price expires"),
|
|
110
|
+
note: z.string().max(280).optional(),
|
|
111
|
+
}, async (a) => {
|
|
112
|
+
// Cross-org by design, which is exactly why this gate fails closed.
|
|
113
|
+
const operator = enforceOperator("quoting a plan change");
|
|
114
|
+
if ("isError" in operator)
|
|
115
|
+
return operator;
|
|
116
|
+
const res = await quotePlanRequest(adapter, a.workspace_id, {
|
|
117
|
+
requestId: a.request_id,
|
|
118
|
+
credits: a.credits,
|
|
119
|
+
unitPriceMinor: a.price_per_credit,
|
|
120
|
+
notify: opts.notify,
|
|
121
|
+
...(a.valid_until ? { validUntil: a.valid_until } : {}),
|
|
63
122
|
...(a.note ? { note: a.note } : {}),
|
|
64
|
-
...(a.work_email
|
|
65
|
-
? {
|
|
66
|
-
contact: {
|
|
67
|
-
firstName: a.first_name ?? "",
|
|
68
|
-
lastName: a.last_name ?? "",
|
|
69
|
-
email: a.work_email,
|
|
70
|
-
},
|
|
71
|
-
}
|
|
72
|
-
: {}),
|
|
73
123
|
});
|
|
74
124
|
if (!res.ok) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
: "This workspace's quote history is full. Ask an operator to settle the open one first.");
|
|
125
|
+
return err(res.reason === "not_found"
|
|
126
|
+
? "No open request with that id in that workspace."
|
|
127
|
+
: res.reason === "invalid_amount"
|
|
128
|
+
? "Both `credits` and `price_per_credit` must be positive."
|
|
129
|
+
: "That workspace's request queue is full.");
|
|
81
130
|
}
|
|
82
|
-
return json({
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
if ("isError" in auth)
|
|
89
|
-
return auth;
|
|
90
|
-
return json({ quotes: await listCreditQuotes(adapter, auth.orgId) });
|
|
131
|
+
return json({
|
|
132
|
+
status: "quoted",
|
|
133
|
+
request: res.request,
|
|
134
|
+
total_minor: res.request.quote.totalMinor,
|
|
135
|
+
currency: opts.config.currency,
|
|
136
|
+
});
|
|
91
137
|
});
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
deliberately independent, which is the whole point: every other path here prices credits at
|
|
97
|
-
the list rate. Needs no quote on file, so an operator can price a conversation that started
|
|
98
|
-
anywhere.`, {
|
|
138
|
+
server.tool("sell_credits", `Sell a workspace credits at a negotiated price, with no request on file (platform
|
|
139
|
+
operators only). Charges the card on file if there is one, otherwise emails an invoice;
|
|
140
|
+
credits land when it is PAID. For a deal that started on a call rather than in the app,
|
|
141
|
+
where making the customer file a request so we can answer it is theatre.`, {
|
|
99
142
|
workspace_id: z.string().describe("Whose wallet the credits land in when it is paid"),
|
|
100
143
|
credits: z.number().int().positive().describe("What they get"),
|
|
101
144
|
amount: z.number().positive().describe("What they pay, in whole currency units"),
|
|
102
145
|
description: z.string().max(120).optional().describe("What the invoice line says"),
|
|
103
146
|
days_until_due: z.number().int().positive().optional().describe("Net terms. Default 30"),
|
|
104
147
|
purchase_order: z.string().max(30).optional().describe("Their PO, printed on the invoice"),
|
|
148
|
+
method: z
|
|
149
|
+
.enum(["auto", "saved_card", "invoice"])
|
|
150
|
+
.optional()
|
|
151
|
+
.describe("Default auto: the card on file, else an emailed invoice"),
|
|
105
152
|
reference: z
|
|
106
153
|
.string()
|
|
107
154
|
.max(60)
|
|
108
155
|
.optional()
|
|
109
156
|
.describe("Your own idempotency key — the same one reuses the invoice rather than raising a second"),
|
|
110
157
|
}, async (a) => {
|
|
111
|
-
// Cross-org by design: the argument names a workspace that is not the caller's, which
|
|
112
|
-
// is exactly why this is the one gate in the library that fails closed.
|
|
113
158
|
const operator = enforceOperator("selling credits");
|
|
114
159
|
if ("isError" in operator)
|
|
115
160
|
return operator;
|
|
116
161
|
const customerId = await getBillingCustomerId(adapter, a.workspace_id);
|
|
117
162
|
if (!customerId)
|
|
118
163
|
return err("That workspace has no billing account.");
|
|
119
|
-
// Tax is resolved from `config.tax` inside, like every other charge on the account:
|
|
120
|
-
//
|
|
121
|
-
//
|
|
164
|
+
// Tax is resolved from `config.tax` inside, like every other charge on the account: a
|
|
165
|
+
// negotiated invoice is still a real invoice, and carries the same rate and the same
|
|
166
|
+
// mandatory mention as one raised by `buy_credits`.
|
|
122
167
|
const sale = await sellCredits(customerId, a.workspace_id, opts.config, {
|
|
123
168
|
credits: a.credits,
|
|
124
169
|
amountMinor: Math.round(a.amount * 100),
|
|
170
|
+
...(a.method ? { method: a.method } : {}),
|
|
125
171
|
...(a.description ? { description: a.description } : {}),
|
|
126
172
|
...(a.days_until_due ? { daysUntilDue: a.days_until_due } : {}),
|
|
127
173
|
...(a.purchase_order ? { purchaseOrder: a.purchase_order } : {}),
|
|
@@ -129,94 +175,7 @@ anywhere.`, {
|
|
|
129
175
|
});
|
|
130
176
|
if (sale.status === "refused")
|
|
131
177
|
return err(sale.message);
|
|
132
|
-
return json(
|
|
133
|
-
status: "invoiced",
|
|
134
|
-
invoice_id: sale.invoiceId,
|
|
135
|
-
invoice_url: sale.hostedInvoiceUrl,
|
|
136
|
-
due_at: sale.dueAt,
|
|
137
|
-
emailed: sale.emailed,
|
|
138
|
-
// Said plainly, because an operator reading "sold" would reasonably assume the
|
|
139
|
-
// credits are already there. They are not: the invoice.paid branch grants them.
|
|
140
|
-
credits_on_payment: a.credits,
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
server.tool("resolve_credit_quote", `Answer a credit quote (platform operators only). Approving raises a Stripe invoice for
|
|
144
|
-
\`amount\` and grants \`credits\` when it is PAID — the two are deliberately independent, which
|
|
145
|
-
is what makes a negotiated price possible. Denying records the decision and charges nothing.`, {
|
|
146
|
-
workspace_id: z.string().describe("The workspace whose quote this is"),
|
|
147
|
-
quote_id: z.string(),
|
|
148
|
-
outcome: z.enum(["approved", "denied"]).default("approved"),
|
|
149
|
-
credits: z.number().int().positive().optional().describe("What they get. Required to approve"),
|
|
150
|
-
amount: z.number().positive().optional().describe("What they pay, in whole currency units. Required to approve"),
|
|
151
|
-
valid_until: z.string().optional().describe("ISO date the price expires"),
|
|
152
|
-
days_until_due: z.number().int().positive().optional().describe("Net terms on the invoice. Default 30"),
|
|
153
|
-
note: z.string().max(280).optional(),
|
|
154
|
-
}, async (a) => {
|
|
155
|
-
// FAILS CLOSED, unlike every other gate here: this one stands between a customer and
|
|
156
|
-
// their own discount.
|
|
157
|
-
const operator = enforceOperator("resolving a credit quote");
|
|
158
|
-
if ("isError" in operator)
|
|
159
|
-
return operator;
|
|
160
|
-
if (a.outcome === "denied") {
|
|
161
|
-
const res = await answerCreditQuote(adapter, a.workspace_id, {
|
|
162
|
-
quoteId: a.quote_id,
|
|
163
|
-
outcome: "denied",
|
|
164
|
-
notify: opts.notify,
|
|
165
|
-
...(a.note ? { answer: { credits: 0, amountMinor: 0, currency: opts.config.currency, note: a.note } } : {}),
|
|
166
|
-
});
|
|
167
|
-
return res.ok ? json({ status: "denied", quote: res.quote }) : err("No open quote with that id.");
|
|
168
|
-
}
|
|
169
|
-
if (!a.credits || !a.amount) {
|
|
170
|
-
return err("Approving needs both `credits` (what they get) and `amount` (what they pay).");
|
|
171
|
-
}
|
|
172
|
-
const customerId = await getBillingCustomerId(adapter, a.workspace_id);
|
|
173
|
-
if (!customerId)
|
|
174
|
-
return err("That workspace has no billing account.");
|
|
175
|
-
const quotes = await listCreditQuotes(adapter, a.workspace_id);
|
|
176
|
-
const open = quotes.find((q) => q.id === a.quote_id && q.status === "pending");
|
|
177
|
-
if (!open)
|
|
178
|
-
return err("No open quote with that id.");
|
|
179
|
-
// The INVOICE first, then the record. A record saying "approved" with no invoice
|
|
180
|
-
// behind it is a promise nobody can collect on; an invoice with no record is a bill
|
|
181
|
-
// the customer can still pay, and the next approval is refused as a duplicate by
|
|
182
|
-
// Stripe's idempotency key rather than billing them twice.
|
|
183
|
-
// `config` carries the currency AND the tax declaration, so the negotiated invoice is
|
|
184
|
-
// taxed by whatever decided every other charge on this account.
|
|
185
|
-
const sale = await sellCredits(customerId, a.workspace_id, opts.config, {
|
|
186
|
-
credits: a.credits,
|
|
187
|
-
amountMinor: Math.round(a.amount * 100),
|
|
188
|
-
description: `${a.credits.toLocaleString("en-US")} credits`,
|
|
189
|
-
...(a.days_until_due ? { daysUntilDue: a.days_until_due } : {}),
|
|
190
|
-
...(open.purchaseOrder ? { purchaseOrder: open.purchaseOrder } : {}),
|
|
191
|
-
idempotencyKey: `quote:${a.quote_id}`,
|
|
192
|
-
});
|
|
193
|
-
if (sale.status === "refused")
|
|
194
|
-
return err(sale.message);
|
|
195
|
-
const res = await answerCreditQuote(adapter, a.workspace_id, {
|
|
196
|
-
quoteId: a.quote_id,
|
|
197
|
-
outcome: "approved",
|
|
198
|
-
notify: opts.notify,
|
|
199
|
-
answer: {
|
|
200
|
-
credits: a.credits,
|
|
201
|
-
amountMinor: Math.round(a.amount * 100),
|
|
202
|
-
currency: opts.config.currency,
|
|
203
|
-
invoiceId: sale.invoiceId,
|
|
204
|
-
...(sale.hostedInvoiceUrl ? { invoiceUrl: sale.hostedInvoiceUrl } : {}),
|
|
205
|
-
...(a.valid_until ? { validUntil: a.valid_until } : {}),
|
|
206
|
-
...(a.note ? { note: a.note } : {}),
|
|
207
|
-
},
|
|
208
|
-
});
|
|
209
|
-
return json({
|
|
210
|
-
status: "approved",
|
|
211
|
-
invoice_url: sale.hostedInvoiceUrl,
|
|
212
|
-
invoice_id: sale.invoiceId,
|
|
213
|
-
due_at: sale.dueAt,
|
|
214
|
-
emailed: sale.emailed,
|
|
215
|
-
// The credits land when the invoice is PAID, through the same branch every other
|
|
216
|
-
// invoice goes through. Said plainly, because "approved" reads like "granted".
|
|
217
|
-
credits_on_payment: a.credits,
|
|
218
|
-
quote: res.ok ? res.quote : null,
|
|
219
|
-
});
|
|
178
|
+
return json(saleResult(sale, a.credits));
|
|
220
179
|
});
|
|
221
180
|
}
|
|
222
181
|
//# sourceMappingURL=quotes.js.map
|
package/dist/tools/quotes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quotes.js","sourceRoot":"","sources":["../../src/tools/quotes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quotes.js","sourceRoot":"","sources":["../../src/tools/quotes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAI/F,wDAAwD;AACxD,EAAE;AACF,kFAAkF;AAClF,6FAA6F;AAC7F,wFAAwF;AACxF,0FAA0F;AAC1F,uFAAuF;AACvF,iEAAiE;AACjE,EAAE;AACF,4FAA4F;AAC5F,+DAA+D;AAC/D,EAAE;AACF,0EAA0E;AAC1E,0DAA0D;AAC1D,EAAE;AACF,wFAAwF;AACxF,qBAAqB;AAErB,MAAM,IAAI,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACvG,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAa,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAEvG,8FAA8F;AAC9F,SAAS,UAAU,CAAC,IAA6C,EAAE,OAAe;IAChF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO;YACL,MAAM,EAAE,SAAkB;YAC1B,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,WAAW,EAAE,IAAI,CAAC,gBAAgB;YAClC,kBAAkB,EAAE,OAAO;SAC5B,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO;YACL,MAAM,EAAE,UAAmB;YAC3B,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,WAAW,EAAE,IAAI,CAAC,gBAAgB;YAClC,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,sDAAsD;YACtD,kBAAkB,EAAE,OAAO;SAC5B,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,SAAkB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACpF,CAAC;AAeD,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,OAAuB,EAAE,IAAsB;IACnG,yFAAyF;IACzF,gFAAgF;IAChF,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,cAAc;QAAE,OAAO;IAE/D,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB;;wEAEoE,EACpE;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACrD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QAChG,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;KAC7G,EACD,KAAK,EAAE,CAAC,EAAE,EAAE;QACV,yDAAyD;QACzD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QAC9D,IAAI,SAAS,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEnC,MAAM,IAAI,GAAG,CAAC,MAAM,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAC7D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CACtD,CAAC;QACF,IAAI,CAAC,IAAI,EAAE,KAAK;YAAE,OAAO,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAChE,oFAAoF;QACpF,wEAAwE;QACxE,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC5E,OAAO,GAAG,CAAC,oEAAoE,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC,wCAAwC,CAAC,CAAC;QAEtE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;YAClE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;YAClC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU;YACpE,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,mFAAmF;YACnF,8BAA8B;YAC9B,cAAc,EAAE,SAAS,IAAI,CAAC,EAAE,EAAE;SACnC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAExD,MAAM,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE;YAC/C,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,QAAQ,EAAE;gBACR,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;gBAC5D,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE;SACF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,CAAC,CACF,CAAC;IAEF,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK;QAAE,OAAO;IAEzC,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB;;2FAEuF,EACvF;QACE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QACxE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QACjF,gBAAgB,EAAE,CAAC;aAChB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,kEAAkE,CAAC;QAC/E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACzE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;KACrC,EACD,KAAK,EAAE,CAAC,EAAE,EAAE;QACV,oEAAoE;QACpE,MAAM,QAAQ,GAAG,eAAe,CAAC,uBAAuB,CAAC,CAAC;QAC1D,IAAI,SAAS,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE3C,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE;YAC1D,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,cAAc,EAAE,CAAC,CAAC,gBAAgB;YAClC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,GAAG,CACR,GAAG,CAAC,MAAM,KAAK,WAAW;gBACxB,CAAC,CAAC,iDAAiD;gBACnD,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,gBAAgB;oBAC/B,CAAC,CAAC,yDAAyD;oBAC3D,CAAC,CAAC,yCAAyC,CAChD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;YACV,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,KAAM,CAAC,UAAU;YAC1C,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;SAC/B,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd;;;yEAGqE,EACrE;QACE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QACrF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QAChF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAClF,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACxF,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC1F,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;aACvC,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,GAAG,CAAC,EAAE,CAAC;aACP,QAAQ,EAAE;aACV,QAAQ,CAAC,yFAAyF,CAAC;KACvG,EACD,KAAK,EAAE,CAAC,EAAE,EAAE;QACV,MAAM,QAAQ,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACpD,IAAI,SAAS,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE3C,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;QACvE,IAAI,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC,wCAAwC,CAAC,CAAC;QAEtE,sFAAsF;QACtF,qFAAqF;QACrF,oDAAoD;QACpD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE;YACtE,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;YACvC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/register.d.ts
CHANGED
|
@@ -85,6 +85,6 @@ export declare function registerBillingTools(server: McpServer, opts: RegisterBi
|
|
|
85
85
|
* actually refuses them is `enforceOperator`, at call time, and it does not care whether
|
|
86
86
|
* they were advertised.
|
|
87
87
|
*/
|
|
88
|
-
export declare const OPERATOR_TOOL_NAMES: readonly ["
|
|
89
|
-
export declare const BILLING_TOOL_NAMES: readonly ["get_api_key", "list_api_keys", "create_api_key", "revoke_api_key", "get_credit_balance", "buy_credits", "preview_credit_purchase", "set_auto_reload", "get_spend_controls", "set_spend_controls", "get_billing_portal", "list_invoices", "view_invoice", "download_invoice", "list_plans", "list_members", "invite_member", "list_invitations", "revoke_invitation", "change_member_role", "remove_member", "rename_workspace", "close_workspace", "get_usage", "get_usage_limits", "get_org_usage", "list_seats", "assign_seat_type", "list_top_up_requests", "request_top_up", "approve_top_up", "grant_top_up", "deny_top_up", "
|
|
88
|
+
export declare const OPERATOR_TOOL_NAMES: readonly ["quote_plan_change", "sell_credits"];
|
|
89
|
+
export declare const BILLING_TOOL_NAMES: readonly ["get_api_key", "list_api_keys", "create_api_key", "revoke_api_key", "get_credit_balance", "buy_credits", "preview_credit_purchase", "set_auto_reload", "get_spend_controls", "set_spend_controls", "get_billing_portal", "list_invoices", "view_invoice", "download_invoice", "list_plans", "list_members", "invite_member", "list_invitations", "revoke_invitation", "change_member_role", "remove_member", "rename_workspace", "close_workspace", "get_usage", "get_usage_limits", "get_org_usage", "list_seats", "assign_seat_type", "list_top_up_requests", "request_top_up", "approve_top_up", "grant_top_up", "deny_top_up", "accept_plan_quote", "quote_plan_change", "sell_credits", "get_billing_profile", "set_billing_profile", "set_tax_id", "list_payment_methods", "set_default_payment_method", "remove_payment_method", "get_plan", "preview_plan_change", "change_plan", "cancel_plan", "request_plan_change", "request_seat_change", "resolve_plan_request"];
|
|
90
90
|
//# sourceMappingURL=register.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/tools/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjE,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE/E,OAAO,EAA+C,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGnG,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAA2C,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAyB1B,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,QAkBpD;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;+EAC2E;IAC3E,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;sEAEkE;IAClE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxD;2DACuD;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;uCAEmC;IACnC,iBAAiB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IACrE;gFAC4E;IAC5E,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAID,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,2BAA2B,QA6DxF;AA0DD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/tools/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjE,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE/E,OAAO,EAA+C,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGnG,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAA2C,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAyB1B,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,QAkBpD;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;+EAC2E;IAC3E,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;sEAEkE;IAClE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxD;2DACuD;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;uCAEmC;IACnC,iBAAiB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IACrE;gFAC4E;IAC5E,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAID,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,2BAA2B,QA6DxF;AA0DD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,gDAAiD,CAAC;AAElF,eAAO,MAAM,kBAAkB,07BAwErB,CAAC"}
|
package/dist/tools/register.js
CHANGED
|
@@ -149,7 +149,7 @@ function registerPlanTools(server, plans, defaultPlan, currency) {
|
|
|
149
149
|
* actually refuses them is `enforceOperator`, at call time, and it does not care whether
|
|
150
150
|
* they were advertised.
|
|
151
151
|
*/
|
|
152
|
-
export const OPERATOR_TOOL_NAMES = ["
|
|
152
|
+
export const OPERATOR_TOOL_NAMES = ["quote_plan_change", "sell_credits"];
|
|
153
153
|
export const BILLING_TOOL_NAMES = [
|
|
154
154
|
"get_api_key",
|
|
155
155
|
"list_api_keys",
|
|
@@ -199,12 +199,12 @@ export const BILLING_TOOL_NAMES = [
|
|
|
199
199
|
"approve_top_up",
|
|
200
200
|
"grant_top_up",
|
|
201
201
|
"deny_top_up",
|
|
202
|
-
//
|
|
203
|
-
//
|
|
204
|
-
//
|
|
205
|
-
|
|
206
|
-
"
|
|
207
|
-
"
|
|
202
|
+
// Custom pricing (registerQuoteTools). The ASK is `request_plan_change` above — asking to
|
|
203
|
+
// move to a plan you cannot buy self-serve is the same act as asking to move to one you
|
|
204
|
+
// can — so what is here is only the answer, its acceptance, and the sale that needs no
|
|
205
|
+
// request behind it.
|
|
206
|
+
"accept_plan_quote",
|
|
207
|
+
"quote_plan_change",
|
|
208
208
|
"sell_credits",
|
|
209
209
|
// The billing account itself (registerProfileTools).
|
|
210
210
|
"get_billing_profile",
|