@leaflow/sdk 0.27.0 → 0.29.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.
@@ -934,6 +934,8 @@ export interface components {
934
934
  ContextResource: {
935
935
  /** Format: int64 */
936
936
  compactAt: number | null;
937
+ /** @description What kinds of input the model behind this conversation accepts, as modality names: text, image. A client uses this to decide whether a control exists — an attach button on a model that cannot read pictures is a control whose only outcome is a refusal, and the refusal arrives after somebody has chosen a file. An empty list is not a claim that the model reads nothing: it means this deployment has not stated the modalities, or the conversation names a model that has since been retired. Treat empty as unknown and keep the control, because hiding one for a reason nobody can see is worse than a refusal that says why. */
938
+ inputModalities: string[];
937
939
  model: string;
938
940
  /** Format: int64 */
939
941
  used: number | null;
@@ -6,10 +6,20 @@ export type ListBillingAccountsResult = operations["list-billing-accounts"]["res
6
6
  export type CreateBillingAccountResult = operations["create-billing-account"]["responses"][200]["content"]["application/json"];
7
7
  /** `POST /account/v1/billing-accounts` 的请求体。 */
8
8
  export type CreateBillingAccountBody = NonNullable<operations["create-billing-account"]["requestBody"]>["content"]["application/json"];
9
+ /** `GET /account/v1/billing-accounts/{accountKey}` 成功时的响应体。 */
10
+ export type GetBillingAccountResult = operations["get-billing-account"]["responses"][200]["content"]["application/json"];
11
+ /** `PUT /account/v1/billing-accounts/{accountKey}` 成功时的响应体。 */
12
+ export type UpdateBillingAccountResult = operations["update-billing-account"]["responses"][200]["content"]["application/json"];
13
+ /** `PUT /account/v1/billing-accounts/{accountKey}` 的请求体。 */
14
+ export type UpdateBillingAccountBody = NonNullable<operations["update-billing-account"]["requestBody"]>["content"]["application/json"];
15
+ /** `GET /account/v1/billing-accounts/{accountKey}/credit-transactions` 成功时的响应体。 */
16
+ export type ListCreditTransactionsResult = operations["list-credit-transactions"]["responses"][200]["content"]["application/json"];
9
17
  /** `GET /account/v1/billing-accounts/{accountKey}/balance` 成功时的响应体。 */
10
18
  export type ReadBillingAccountBalanceResult = operations["read-billing-account-balance"]["responses"][200]["content"]["application/json"];
11
19
  /** `PUT /account/v1/billing-accounts/{accountKey}/projects/{projectId}` 成功时的响应体。 */
12
20
  export type BindProjectToBillingAccountResult = operations["bind-project-to-billing-account"]["responses"][200]["content"]["application/json"];
21
+ /** `GET /account/v1/billing-accounts/{accountKey}/top-ups` 成功时的响应体。 */
22
+ export type ListTopUpsResult = operations["list-top-ups"]["responses"][200]["content"]["application/json"];
13
23
  /** `POST /account/v1/billing-accounts/{accountKey}/top-ups` 成功时的响应体。 */
14
24
  export type StartTopUpResult = operations["start-top-up"]["responses"][200]["content"]["application/json"];
15
25
  /** `POST /account/v1/billing-accounts/{accountKey}/top-ups` 的请求体。 */
@@ -38,6 +38,63 @@ export interface paths {
38
38
  patch?: never;
39
39
  trace?: never;
40
40
  };
41
+ "/account/v1/billing-accounts/{accountKey}": {
42
+ parameters: {
43
+ query?: never;
44
+ header?: never;
45
+ path?: never;
46
+ cookie?: never;
47
+ };
48
+ /**
49
+ * Read one of my billing accounts
50
+ * @description One account, with the projects it currently pays for.
51
+ *
52
+ * The list returns the same objects, so this exists for the case the list cannot serve: a link
53
+ * straight to one account. Making the caller fetch every account and filter turns a bookmarked
54
+ * page into a request whose cost grows with how many accounts they hold.
55
+ */
56
+ get: operations["get-billing-account"];
57
+ /**
58
+ * Rename a billing account
59
+ * @description Changes the display name. Nothing else about the account can be changed here.
60
+ *
61
+ * The key is not among the fields and never will be: ownership is stated by the key, and
62
+ * invoices already issued refer to it. The name is what tells two accounts apart in a list, so
63
+ * a mistake made while creating one is otherwise permanent.
64
+ */
65
+ put: operations["update-billing-account"];
66
+ post?: never;
67
+ delete?: never;
68
+ options?: never;
69
+ head?: never;
70
+ patch?: never;
71
+ trace?: never;
72
+ };
73
+ "/account/v1/billing-accounts/{accountKey}/credit-transactions": {
74
+ parameters: {
75
+ query?: never;
76
+ header?: never;
77
+ path?: never;
78
+ cookie?: never;
79
+ };
80
+ /**
81
+ * How the balance got to where it is
82
+ * @description Every movement of credit on this account: what was added, what was spent, what expired, what
83
+ * was voided. Newest first.
84
+ *
85
+ * The balance on its own is a number with no account of itself. Asked why it is lower than
86
+ * expected, it cannot answer, and the holder is left to guess between "I was charged" and
87
+ * "something expired" — which lead to different next steps.
88
+ */
89
+ get: operations["list-credit-transactions"];
90
+ put?: never;
91
+ post?: never;
92
+ delete?: never;
93
+ options?: never;
94
+ head?: never;
95
+ patch?: never;
96
+ trace?: never;
97
+ };
41
98
  "/account/v1/billing-accounts/{accountKey}/balance": {
42
99
  parameters: {
43
100
  query?: never;
@@ -90,7 +147,21 @@ export interface paths {
90
147
  */
91
148
  put: operations["bind-project-to-billing-account"];
92
149
  post?: never;
93
- delete?: never;
150
+ /**
151
+ * Stop paying for a project
152
+ * @description Unbinds the project from this account. Nothing pays for it afterwards, and **everything in it
153
+ * is refused admission** until some account takes it on — no new machines, no forwarded
154
+ * requests.
155
+ *
156
+ * That consequence is the reason this exists rather than an argument against it: a project
157
+ * bound to the wrong account has no other way out, and moving it to another of the caller's
158
+ * accounts is not a correction when the answer is that this account should not be paying for
159
+ * it at all.
160
+ *
161
+ * Charges already accrued stay where they are. They were incurred while this account held the
162
+ * project, and an invoice has to keep pointing at what it was based on.
163
+ */
164
+ delete: operations["unbind-project-from-billing-account"];
94
165
  options?: never;
95
166
  head?: never;
96
167
  patch?: never;
@@ -103,7 +174,16 @@ export interface paths {
103
174
  path?: never;
104
175
  cookie?: never;
105
176
  };
106
- get?: never;
177
+ /**
178
+ * My top-ups
179
+ * @description Every top-up this account has made, newest first.
180
+ *
181
+ * Reading one top-up requires already holding its identifier, and the only place that
182
+ * identifier appears is the redirect that started it — so without this list a top-up becomes
183
+ * unfindable the moment the browser tab is closed, which is exactly when somebody wants to
184
+ * check whether their money arrived.
185
+ */
186
+ get: operations["list-top-ups"];
107
187
  put?: never;
108
188
  /**
109
189
  * Start a top-up
@@ -485,6 +565,43 @@ export interface components {
485
565
  */
486
566
  one_time?: boolean;
487
567
  };
568
+ UpdateBillingAccountRequestBody: {
569
+ display_name: string;
570
+ };
571
+ TopUpList: {
572
+ top_ups: components["schemas"]["TopUpStatus"][];
573
+ };
574
+ CreditTransactionList: {
575
+ transactions: components["schemas"]["CreditTransaction"][];
576
+ };
577
+ /**
578
+ * @description One movement of credit. Immutable — a correction is another movement, never an edit of this
579
+ * one, which is what lets the balance be recomputed from the list at any time
580
+ */
581
+ CreditTransaction: {
582
+ id: string;
583
+ type: components["schemas"]["CreditTransactionType"];
584
+ /** @description A decimal string. Never a float — a balance that rounds is a balance that drifts */
585
+ amount: string;
586
+ currency: string;
587
+ /**
588
+ * Format: date-time
589
+ * @description When it landed on the ledger, which is not always when it was requested
590
+ */
591
+ booked_at: string;
592
+ /**
593
+ * @description What the balance became. Recorded by the metering engine rather than recomputed here —
594
+ * recomputing assumes our understanding of the burn-down order matches its own, and this
595
+ * is its own account of it
596
+ */
597
+ balance_after: string;
598
+ };
599
+ /**
600
+ * @description `funded` is credit arriving, `consumed` is it being spent, `expired` is a grant reaching the
601
+ * end of its life unspent, and `voided` is one cancelled — a refund, or a correction
602
+ * @enum {string}
603
+ */
604
+ CreditTransactionType: "funded" | "consumed" | "expired" | "voided";
488
605
  /**
489
606
  * @description What a top-up bundle costs and what it grants. Present only on offers that sell credit.
490
607
  *
@@ -731,11 +848,16 @@ export interface components {
731
848
  currency?: components["schemas"]["Currency"];
732
849
  };
733
850
  /**
734
- * @description ISO 4217. `USD` is the only value the platform issues today; the field is carried so that an
735
- * amount is never ambiguous about what it is denominated in.
736
- * @enum {string}
851
+ * @description ISO 4217, uppercase. `USD` is the only value the platform issues today, and a request
852
+ * naming any other is refused with `BILLING_CURRENCY_UNSUPPORTED`.
853
+ *
854
+ * Deliberately not an enumeration. The set of currency codes is governed outside this API, so
855
+ * a client generated today must still be able to read a response naming a code added later —
856
+ * an enumeration turns that response into a decode failure in a client nobody can redeploy.
857
+ * Restricting what may be *sent* is a rule about what the platform supports, and it lives
858
+ * where that rule can change without regenerating anything.
737
859
  */
738
- Currency: "USD";
860
+ Currency: string;
739
861
  };
740
862
  responses: never;
741
863
  parameters: {
@@ -813,6 +935,115 @@ export interface operations {
813
935
  };
814
936
  };
815
937
  };
938
+ "get-billing-account": {
939
+ parameters: {
940
+ query?: never;
941
+ header?: never;
942
+ path: {
943
+ /**
944
+ * @description The account's key, of the form `u_<user_id>_<seq>`. Ownership is stated by the key itself,
945
+ * which is why the key is what addresses the account.
946
+ */
947
+ accountKey: components["parameters"]["AccountKey"];
948
+ };
949
+ cookie?: never;
950
+ };
951
+ requestBody?: never;
952
+ responses: {
953
+ /** @description OK */
954
+ 200: {
955
+ headers: {
956
+ [name: string]: unknown;
957
+ };
958
+ content: {
959
+ "application/json": components["schemas"]["BillingAccount"];
960
+ };
961
+ };
962
+ /** @description Error */
963
+ default: {
964
+ headers: {
965
+ [name: string]: unknown;
966
+ };
967
+ content: {
968
+ "application/json": components["schemas"]["Error"];
969
+ };
970
+ };
971
+ };
972
+ };
973
+ "update-billing-account": {
974
+ parameters: {
975
+ query?: never;
976
+ header?: never;
977
+ path: {
978
+ /**
979
+ * @description The account's key, of the form `u_<user_id>_<seq>`. Ownership is stated by the key itself,
980
+ * which is why the key is what addresses the account.
981
+ */
982
+ accountKey: components["parameters"]["AccountKey"];
983
+ };
984
+ cookie?: never;
985
+ };
986
+ requestBody: {
987
+ content: {
988
+ "application/json": components["schemas"]["UpdateBillingAccountRequestBody"];
989
+ };
990
+ };
991
+ responses: {
992
+ /** @description OK */
993
+ 200: {
994
+ headers: {
995
+ [name: string]: unknown;
996
+ };
997
+ content: {
998
+ "application/json": components["schemas"]["BillingAccount"];
999
+ };
1000
+ };
1001
+ /** @description Error */
1002
+ default: {
1003
+ headers: {
1004
+ [name: string]: unknown;
1005
+ };
1006
+ content: {
1007
+ "application/json": components["schemas"]["Error"];
1008
+ };
1009
+ };
1010
+ };
1011
+ };
1012
+ "list-credit-transactions": {
1013
+ parameters: {
1014
+ query?: never;
1015
+ header?: never;
1016
+ path: {
1017
+ /**
1018
+ * @description The account's key, of the form `u_<user_id>_<seq>`. Ownership is stated by the key itself,
1019
+ * which is why the key is what addresses the account.
1020
+ */
1021
+ accountKey: components["parameters"]["AccountKey"];
1022
+ };
1023
+ cookie?: never;
1024
+ };
1025
+ requestBody?: never;
1026
+ responses: {
1027
+ /** @description OK */
1028
+ 200: {
1029
+ headers: {
1030
+ [name: string]: unknown;
1031
+ };
1032
+ content: {
1033
+ "application/json": components["schemas"]["CreditTransactionList"];
1034
+ };
1035
+ };
1036
+ /** @description Error */
1037
+ default: {
1038
+ headers: {
1039
+ [name: string]: unknown;
1040
+ };
1041
+ content: {
1042
+ "application/json": components["schemas"]["Error"];
1043
+ };
1044
+ };
1045
+ };
1046
+ };
816
1047
  "read-billing-account-balance": {
817
1048
  parameters: {
818
1049
  query?: never;
@@ -885,6 +1116,76 @@ export interface operations {
885
1116
  };
886
1117
  };
887
1118
  };
1119
+ "unbind-project-from-billing-account": {
1120
+ parameters: {
1121
+ query?: never;
1122
+ header?: never;
1123
+ path: {
1124
+ /**
1125
+ * @description The account's key, of the form `u_<user_id>_<seq>`. Ownership is stated by the key itself,
1126
+ * which is why the key is what addresses the account.
1127
+ */
1128
+ accountKey: components["parameters"]["AccountKey"];
1129
+ /** @description The project to stop paying for */
1130
+ projectId: string;
1131
+ };
1132
+ cookie?: never;
1133
+ };
1134
+ requestBody?: never;
1135
+ responses: {
1136
+ /** @description Unbound */
1137
+ 204: {
1138
+ headers: {
1139
+ [name: string]: unknown;
1140
+ };
1141
+ content?: never;
1142
+ };
1143
+ /** @description Error */
1144
+ default: {
1145
+ headers: {
1146
+ [name: string]: unknown;
1147
+ };
1148
+ content: {
1149
+ "application/json": components["schemas"]["Error"];
1150
+ };
1151
+ };
1152
+ };
1153
+ };
1154
+ "list-top-ups": {
1155
+ parameters: {
1156
+ query?: never;
1157
+ header?: never;
1158
+ path: {
1159
+ /**
1160
+ * @description The account's key, of the form `u_<user_id>_<seq>`. Ownership is stated by the key itself,
1161
+ * which is why the key is what addresses the account.
1162
+ */
1163
+ accountKey: components["parameters"]["AccountKey"];
1164
+ };
1165
+ cookie?: never;
1166
+ };
1167
+ requestBody?: never;
1168
+ responses: {
1169
+ /** @description OK */
1170
+ 200: {
1171
+ headers: {
1172
+ [name: string]: unknown;
1173
+ };
1174
+ content: {
1175
+ "application/json": components["schemas"]["TopUpList"];
1176
+ };
1177
+ };
1178
+ /** @description Error */
1179
+ default: {
1180
+ headers: {
1181
+ [name: string]: unknown;
1182
+ };
1183
+ content: {
1184
+ "application/json": components["schemas"]["Error"];
1185
+ };
1186
+ };
1187
+ };
1188
+ };
888
1189
  "start-top-up": {
889
1190
  parameters: {
890
1191
  query?: never;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leaflow/sdk",
3
- "version": "0.27.0",
3
+ "version": "0.29.0",
4
4
  "description": "Leaflow 平台 API 的 TypeScript SDK",
5
5
  "license": "MIT",
6
6
  "repository": {