@featureflip/mcp 0.1.12 → 0.1.13
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/cli.mjs +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/generated/api-types.d.ts +246 -0
- package/dist/generated/api-types.d.ts.map +1 -1
- package/dist/generated/output-schemas.json.d.ts +2964 -0
- package/dist/index.mjs +1 -2
- package/dist/org-D-y_4-WG.js +1357 -0
- package/dist/tools/environments.d.ts.map +1 -1
- package/dist/tools/flag-environments.d.ts.map +1 -1
- package/dist/tools/flags.d.ts.map +1 -1
- package/dist/tools/outputs.d.ts +18 -0
- package/dist/tools/outputs.d.ts.map +1 -0
- package/dist/tools/params.d.ts +9 -0
- package/dist/tools/params.d.ts.map +1 -0
- package/dist/tools/projects.d.ts.map +1 -1
- package/dist/tools/segments.d.ts.map +1 -1
- package/dist/tools/targeting.d.ts.map +1 -1
- package/dist/tools/variations.d.ts.map +1 -1
- package/dist/tools/webhooks.d.ts.map +1 -1
- package/dist/tools/workflows/stale-flags.d.ts.map +1 -1
- package/dist/tools/workflows/wrap-feature.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/org-Dq8g_Duu.js +0 -1034
package/dist/cli.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as e, i as t, n, o as r, s as i, t as a } from "./org-
|
|
1
|
+
import { a as e, i as t, n, o as r, s as i, t as a } from "./org-D-y_4-WG.js";
|
|
2
2
|
import { serveStdio as o } from "@modelcontextprotocol/server/stdio";
|
|
3
3
|
//#region src/unconfigured.ts
|
|
4
4
|
var s = class extends i {
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAOhD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAqBpD;AAED,wBAAsB,GAAG,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAM5E"}
|
|
@@ -4014,6 +4014,219 @@ export interface paths {
|
|
|
4014
4014
|
patch?: never;
|
|
4015
4015
|
trace?: never;
|
|
4016
4016
|
};
|
|
4017
|
+
"/api/v1/orgs/{org}/projects/{project}/default-flag-lifetime": {
|
|
4018
|
+
parameters: {
|
|
4019
|
+
query?: never;
|
|
4020
|
+
header?: never;
|
|
4021
|
+
path?: never;
|
|
4022
|
+
cookie?: never;
|
|
4023
|
+
};
|
|
4024
|
+
get?: never;
|
|
4025
|
+
/**
|
|
4026
|
+
* Sets or removes the project's default flag lifetime, in days (1–3650; null removes it).
|
|
4027
|
+
* @description Temporary
|
|
4028
|
+
* flags with no expiry date of their own then expire that many days after they were created, reported
|
|
4029
|
+
* as `expirySource: "project-default"`. Takes effect at the next hourly staleness run. Requires at
|
|
4030
|
+
* least Member, and the default-flag-lifetime feature to set one (400 `FEATURE_NOT_ENABLED`);
|
|
4031
|
+
* removing one is always allowed.
|
|
4032
|
+
*/
|
|
4033
|
+
put: {
|
|
4034
|
+
parameters: {
|
|
4035
|
+
query?: never;
|
|
4036
|
+
header?: never;
|
|
4037
|
+
path: {
|
|
4038
|
+
org: string;
|
|
4039
|
+
project: string;
|
|
4040
|
+
};
|
|
4041
|
+
cookie?: never;
|
|
4042
|
+
};
|
|
4043
|
+
requestBody?: {
|
|
4044
|
+
content: {
|
|
4045
|
+
"application/json": components["schemas"]["PublicSetDefaultFlagLifetimeRequest"];
|
|
4046
|
+
"text/json": components["schemas"]["PublicSetDefaultFlagLifetimeRequest"];
|
|
4047
|
+
"application/*+json": components["schemas"]["PublicSetDefaultFlagLifetimeRequest"];
|
|
4048
|
+
};
|
|
4049
|
+
};
|
|
4050
|
+
responses: {
|
|
4051
|
+
/** @description No Content */
|
|
4052
|
+
204: {
|
|
4053
|
+
headers: {
|
|
4054
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4055
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4056
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4057
|
+
[name: string]: unknown;
|
|
4058
|
+
};
|
|
4059
|
+
content?: never;
|
|
4060
|
+
};
|
|
4061
|
+
/** @description Bad Request */
|
|
4062
|
+
400: {
|
|
4063
|
+
headers: {
|
|
4064
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4065
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4066
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4067
|
+
[name: string]: unknown;
|
|
4068
|
+
};
|
|
4069
|
+
content: {
|
|
4070
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4071
|
+
};
|
|
4072
|
+
};
|
|
4073
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
4074
|
+
401: {
|
|
4075
|
+
headers: {
|
|
4076
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4077
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4078
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4079
|
+
[name: string]: unknown;
|
|
4080
|
+
};
|
|
4081
|
+
content: {
|
|
4082
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4083
|
+
};
|
|
4084
|
+
};
|
|
4085
|
+
/** @description Forbidden */
|
|
4086
|
+
403: {
|
|
4087
|
+
headers: {
|
|
4088
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4089
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4090
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4091
|
+
[name: string]: unknown;
|
|
4092
|
+
};
|
|
4093
|
+
content: {
|
|
4094
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4095
|
+
};
|
|
4096
|
+
};
|
|
4097
|
+
/** @description Not Found */
|
|
4098
|
+
404: {
|
|
4099
|
+
headers: {
|
|
4100
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4101
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4102
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4103
|
+
[name: string]: unknown;
|
|
4104
|
+
};
|
|
4105
|
+
content: {
|
|
4106
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4107
|
+
};
|
|
4108
|
+
};
|
|
4109
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
4110
|
+
429: {
|
|
4111
|
+
headers: {
|
|
4112
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
4113
|
+
"Retry-After"?: number;
|
|
4114
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4115
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4116
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4117
|
+
[name: string]: unknown;
|
|
4118
|
+
};
|
|
4119
|
+
content: {
|
|
4120
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4121
|
+
};
|
|
4122
|
+
};
|
|
4123
|
+
};
|
|
4124
|
+
};
|
|
4125
|
+
post?: never;
|
|
4126
|
+
delete?: never;
|
|
4127
|
+
options?: never;
|
|
4128
|
+
head?: never;
|
|
4129
|
+
patch?: never;
|
|
4130
|
+
trace?: never;
|
|
4131
|
+
};
|
|
4132
|
+
"/api/v1/orgs/{org}/projects/{project}/default-flag-lifetime/impact": {
|
|
4133
|
+
parameters: {
|
|
4134
|
+
query?: never;
|
|
4135
|
+
header?: never;
|
|
4136
|
+
path?: never;
|
|
4137
|
+
cookie?: never;
|
|
4138
|
+
};
|
|
4139
|
+
/**
|
|
4140
|
+
* Previews a default flag lifetime: how many temporary flags with no expiry date of their own would newly be past expiry, and how many would stop being past the current one.
|
|
4141
|
+
* @description Omit `days` to
|
|
4142
|
+
* preview removing it.
|
|
4143
|
+
*/
|
|
4144
|
+
get: {
|
|
4145
|
+
parameters: {
|
|
4146
|
+
query?: {
|
|
4147
|
+
days?: number;
|
|
4148
|
+
};
|
|
4149
|
+
header?: never;
|
|
4150
|
+
path: {
|
|
4151
|
+
org: string;
|
|
4152
|
+
project: string;
|
|
4153
|
+
};
|
|
4154
|
+
cookie?: never;
|
|
4155
|
+
};
|
|
4156
|
+
requestBody?: never;
|
|
4157
|
+
responses: {
|
|
4158
|
+
/** @description OK */
|
|
4159
|
+
200: {
|
|
4160
|
+
headers: {
|
|
4161
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4162
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4163
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4164
|
+
[name: string]: unknown;
|
|
4165
|
+
};
|
|
4166
|
+
content: {
|
|
4167
|
+
"application/json": components["schemas"]["PublicDefaultFlagLifetimeImpact"];
|
|
4168
|
+
};
|
|
4169
|
+
};
|
|
4170
|
+
/** @description Bad Request */
|
|
4171
|
+
400: {
|
|
4172
|
+
headers: {
|
|
4173
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4174
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4175
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4176
|
+
[name: string]: unknown;
|
|
4177
|
+
};
|
|
4178
|
+
content: {
|
|
4179
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4180
|
+
};
|
|
4181
|
+
};
|
|
4182
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
4183
|
+
401: {
|
|
4184
|
+
headers: {
|
|
4185
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4186
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4187
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4188
|
+
[name: string]: unknown;
|
|
4189
|
+
};
|
|
4190
|
+
content: {
|
|
4191
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4192
|
+
};
|
|
4193
|
+
};
|
|
4194
|
+
/** @description Not Found */
|
|
4195
|
+
404: {
|
|
4196
|
+
headers: {
|
|
4197
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4198
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4199
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4200
|
+
[name: string]: unknown;
|
|
4201
|
+
};
|
|
4202
|
+
content: {
|
|
4203
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4204
|
+
};
|
|
4205
|
+
};
|
|
4206
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
4207
|
+
429: {
|
|
4208
|
+
headers: {
|
|
4209
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
4210
|
+
"Retry-After"?: number;
|
|
4211
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4212
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4213
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4214
|
+
[name: string]: unknown;
|
|
4215
|
+
};
|
|
4216
|
+
content: {
|
|
4217
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4218
|
+
};
|
|
4219
|
+
};
|
|
4220
|
+
};
|
|
4221
|
+
};
|
|
4222
|
+
put?: never;
|
|
4223
|
+
post?: never;
|
|
4224
|
+
delete?: never;
|
|
4225
|
+
options?: never;
|
|
4226
|
+
head?: never;
|
|
4227
|
+
patch?: never;
|
|
4228
|
+
trace?: never;
|
|
4229
|
+
};
|
|
4017
4230
|
"/api/v1/orgs/{org}/projects/{project}/environments/{env}/sdk-keys": {
|
|
4018
4231
|
parameters: {
|
|
4019
4232
|
query?: never;
|
|
@@ -6105,6 +6318,7 @@ export interface components {
|
|
|
6105
6318
|
* public API surfaces environments via their own endpoint (Task 6), not embedded here.
|
|
6106
6319
|
* UpdatedAt is only populated from ProjectDto (the detail/create
|
|
6107
6320
|
* shape); ProjectListItemDto doesn't carry it, so list rows leave it `null`.
|
|
6321
|
+
* DefaultFlagLifetimeDays is the project's default flag lifetime in days, or null (#3194).
|
|
6108
6322
|
* @example {
|
|
6109
6323
|
* "id": "0197b69f-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
|
|
6110
6324
|
* "key": "checkout",
|
|
@@ -6124,6 +6338,8 @@ export interface components {
|
|
|
6124
6338
|
createdAt?: string;
|
|
6125
6339
|
/** Format: date-time */
|
|
6126
6340
|
updatedAt?: string | null;
|
|
6341
|
+
/** Format: int32 */
|
|
6342
|
+
defaultFlagLifetimeDays?: number | null;
|
|
6127
6343
|
/** @description Capability hints: which operations the authenticated caller may perform on this resource, each with allowed + optional reason. Computed from the caller's role and the resource's state. Injected at runtime; safe to ignore. Present only on top-level resource responses — nested occurrences (e.g. a rule inside a targeting-config response) do not carry it. */
|
|
6128
6344
|
_actions?: {
|
|
6129
6345
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
@@ -6530,6 +6746,16 @@ export interface components {
|
|
|
6530
6746
|
secret?: string | null;
|
|
6531
6747
|
warning?: string | null;
|
|
6532
6748
|
};
|
|
6749
|
+
/**
|
|
6750
|
+
* @description Response of `GET .../default-flag-lifetime/impact`: how many temporary flags with no expiry
|
|
6751
|
+
* date of their own would newly be past expiry, and how many would stop being past it.
|
|
6752
|
+
*/
|
|
6753
|
+
PublicDefaultFlagLifetimeImpact: {
|
|
6754
|
+
/** Format: int32 */
|
|
6755
|
+
newlyPastExpiry?: number;
|
|
6756
|
+
/** Format: int32 */
|
|
6757
|
+
noLongerPastExpiry?: number;
|
|
6758
|
+
};
|
|
6533
6759
|
/**
|
|
6534
6760
|
* @description Public representation of an environment, returned by
|
|
6535
6761
|
* `GET /api/v1/orgs/{org}/projects/{project}/environments` (list),
|
|
@@ -6621,6 +6847,9 @@ export interface components {
|
|
|
6621
6847
|
* Variations (a summary-only shape upstream) and
|
|
6622
6848
|
* Staleness, matching the "list is narrower than detail"
|
|
6623
6849
|
* split already present on the Application-layer DTOs.
|
|
6850
|
+
* EffectiveExpiresAtUtc is when the flag counts as past expiry, from its own ExpiresAtUtc
|
|
6851
|
+
* or its project's default lifetime; ExpirySource says which (`explicit` / `project-default`),
|
|
6852
|
+
* both null when neither applies.
|
|
6624
6853
|
*/
|
|
6625
6854
|
PublicFlagListItem: {
|
|
6626
6855
|
/** Format: uuid */
|
|
@@ -6644,6 +6873,9 @@ export interface components {
|
|
|
6644
6873
|
owner?: components["schemas"]["PublicFlagOwner"];
|
|
6645
6874
|
removalPrUrl?: string | null;
|
|
6646
6875
|
isPermanent?: boolean;
|
|
6876
|
+
/** Format: date-time */
|
|
6877
|
+
effectiveExpiresAtUtc?: string | null;
|
|
6878
|
+
expirySource?: string | null;
|
|
6647
6879
|
};
|
|
6648
6880
|
/**
|
|
6649
6881
|
* @description A page of results plus an opaque cursor for the next page, or null when this is the last
|
|
@@ -6716,6 +6948,9 @@ export interface components {
|
|
|
6716
6948
|
* `GET .../flags/{flag}` and the body of a successful create. Drops internal/dashboard-only
|
|
6717
6949
|
* fields present on FeatureFlagDto — notably `ProjectId` (implicit in the
|
|
6718
6950
|
* route) and `Staleness` (an internal analytics signal, not part of the public contract).
|
|
6951
|
+
* EffectiveExpiresAtUtc is when the flag counts as past expiry, from its own ExpiresAtUtc
|
|
6952
|
+
* or its project's default lifetime; ExpirySource says which (`explicit` / `project-default`),
|
|
6953
|
+
* both null when neither applies.
|
|
6719
6954
|
* @example {
|
|
6720
6955
|
* "id": "0197b6a0-5f2a-7c3e-9b4d-1e2f3a4b5c6d",
|
|
6721
6956
|
* "key": "new-checkout-flow",
|
|
@@ -6772,6 +7007,9 @@ export interface components {
|
|
|
6772
7007
|
owner?: components["schemas"]["PublicFlagOwner"];
|
|
6773
7008
|
removalPrUrl?: string | null;
|
|
6774
7009
|
isPermanent?: boolean;
|
|
7010
|
+
/** Format: date-time */
|
|
7011
|
+
effectiveExpiresAtUtc?: string | null;
|
|
7012
|
+
expirySource?: string | null;
|
|
6775
7013
|
/** @description Capability hints: which operations the authenticated caller may perform on this resource, each with allowed + optional reason. Computed from the caller's role and the resource's state. Injected at runtime; safe to ignore. Present only on top-level resource responses — nested occurrences (e.g. a rule inside a targeting-config response) do not carry it. */
|
|
6776
7014
|
_actions?: {
|
|
6777
7015
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
@@ -6940,6 +7178,14 @@ export interface components {
|
|
|
6940
7178
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
6941
7179
|
};
|
|
6942
7180
|
};
|
|
7181
|
+
/**
|
|
7182
|
+
* @description Request body for `PUT /api/v1/orgs/{org}/projects/{project}/default-flag-lifetime`. `days`
|
|
7183
|
+
* is 1–3650; null (or an empty body) removes the default.
|
|
7184
|
+
*/
|
|
7185
|
+
PublicSetDefaultFlagLifetimeRequest: {
|
|
7186
|
+
/** Format: int32 */
|
|
7187
|
+
days?: number | null;
|
|
7188
|
+
};
|
|
6943
7189
|
/**
|
|
6944
7190
|
* @description Request body for `PUT /api/v1/orgs/{org}/projects/{project}/flags/{flag}/expiry`. Expiry is a
|
|
6945
7191
|
* dedicated sub-resource, deliberately NOT a field on PublicUpdateFeatureFlagRequest: that
|