@amerged/ohmyhost-mcp 0.1.10 → 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/README.md +1 -1
- package/dist/{chunk-7MV2EVXV.js → chunk-475EJ7IK.js} +13 -4
- package/dist/index.js +1 -1
- package/dist/stdio-main.js +101 -7
- package/package.json +1 -1
- package/src/apps/mcp/local-client.ts +21 -0
- package/src/apps/mcp/local-server.ts +38 -2
- package/src/apps/product-cli/cli.ts +39 -0
- package/src/apps/product-cli/command.ts +44 -0
- package/src/apps/product-cli/composition.ts +5 -3
- package/src/apps/product-cli/product-api.ts +33 -0
- package/src/apps/product-cli/repository-init.ts +25 -1
- package/src/apps/product-cli/runtime-contract.ts +41 -6
- package/src/packages/agent-skills/generated-skill-resources.ts +12 -3
- package/src/packages/contracts/credit-pricing.ts +1 -1
- package/src/packages/sdk-ts/generated/index.ts +13 -0
- package/src/packages/sdk-ts/generated/sdk.gen.ts +97 -3
- package/src/packages/sdk-ts/generated/types.gen.ts +160 -4
|
@@ -15,6 +15,8 @@ import type {
|
|
|
15
15
|
ApplyPaidProjectDomainResponses,
|
|
16
16
|
ChangeDatabaseComputeErrors,
|
|
17
17
|
ChangeDatabaseComputeResponses,
|
|
18
|
+
ChangeProjectHandleErrors,
|
|
19
|
+
ChangeProjectHandleResponses,
|
|
18
20
|
CompleteCloudflareDnsAuthorizationErrors,
|
|
19
21
|
CompleteCloudflareDnsAuthorizationResponses,
|
|
20
22
|
CompleteGithubSourceAuthorizationErrors,
|
|
@@ -100,6 +102,8 @@ import type {
|
|
|
100
102
|
GetProjectErrors,
|
|
101
103
|
GetProjectExportErrors,
|
|
102
104
|
GetProjectExportResponses,
|
|
105
|
+
GetProjectHandleAvailabilityErrors,
|
|
106
|
+
GetProjectHandleAvailabilityResponses,
|
|
103
107
|
GetProjectMailDomainErrors,
|
|
104
108
|
GetProjectMailDomainResponses,
|
|
105
109
|
GetProjectResponses,
|
|
@@ -447,7 +451,7 @@ export const getFeatureInterests = <ThrowOnError extends boolean = true>(
|
|
|
447
451
|
"data"
|
|
448
452
|
>({
|
|
449
453
|
responseStyle: "data",
|
|
450
|
-
url: "/v1/
|
|
454
|
+
url: "/v1/site/feature-interests",
|
|
451
455
|
...options,
|
|
452
456
|
...params,
|
|
453
457
|
});
|
|
@@ -492,7 +496,7 @@ export const registerFeatureInterest = <ThrowOnError extends boolean = true>(
|
|
|
492
496
|
"data"
|
|
493
497
|
>({
|
|
494
498
|
responseStyle: "data",
|
|
495
|
-
url: "/v1/
|
|
499
|
+
url: "/v1/site/feature-interests",
|
|
496
500
|
...options,
|
|
497
501
|
...params,
|
|
498
502
|
headers: {
|
|
@@ -521,7 +525,7 @@ export const getPublicDeploymentStats = <ThrowOnError extends boolean = true>(
|
|
|
521
525
|
"data"
|
|
522
526
|
>({
|
|
523
527
|
responseStyle: "data",
|
|
524
|
-
url: "/v1/
|
|
528
|
+
url: "/v1/site/stats",
|
|
525
529
|
...options,
|
|
526
530
|
});
|
|
527
531
|
|
|
@@ -1682,6 +1686,48 @@ export const getProjectStatus = <ThrowOnError extends boolean = true>(
|
|
|
1682
1686
|
});
|
|
1683
1687
|
};
|
|
1684
1688
|
|
|
1689
|
+
/**
|
|
1690
|
+
* Check whether a project handle is free
|
|
1691
|
+
*
|
|
1692
|
+
* Reports whether a handle can be used for a project and why not when it cannot, with free alternatives an agent can offer. A handle is one to five lowercase words of letters and digits separated by single hyphens, three to fifty-nine characters, and never one of the reserved words. Availability is answered across all projects without revealing which organization holds a taken handle.
|
|
1693
|
+
*/
|
|
1694
|
+
export const getProjectHandleAvailability = <ThrowOnError extends boolean = true>(
|
|
1695
|
+
parameters: {
|
|
1696
|
+
"X-Request-Id"?: string;
|
|
1697
|
+
handle: string;
|
|
1698
|
+
},
|
|
1699
|
+
options?: Options<never, ThrowOnError>,
|
|
1700
|
+
): RequestResult<
|
|
1701
|
+
GetProjectHandleAvailabilityResponses,
|
|
1702
|
+
GetProjectHandleAvailabilityErrors,
|
|
1703
|
+
ThrowOnError,
|
|
1704
|
+
"data"
|
|
1705
|
+
> => {
|
|
1706
|
+
const params = buildClientParams(
|
|
1707
|
+
[parameters],
|
|
1708
|
+
[
|
|
1709
|
+
{
|
|
1710
|
+
args: [
|
|
1711
|
+
{ in: "headers", key: "X-Request-Id" },
|
|
1712
|
+
{ in: "path", key: "handle" },
|
|
1713
|
+
],
|
|
1714
|
+
},
|
|
1715
|
+
],
|
|
1716
|
+
);
|
|
1717
|
+
return (options?.client ?? client).get<
|
|
1718
|
+
GetProjectHandleAvailabilityResponses,
|
|
1719
|
+
GetProjectHandleAvailabilityErrors,
|
|
1720
|
+
ThrowOnError,
|
|
1721
|
+
"data"
|
|
1722
|
+
>({
|
|
1723
|
+
responseStyle: "data",
|
|
1724
|
+
security: [{ scheme: "bearer", type: "http" }],
|
|
1725
|
+
url: "/v1/project-handles/{handle}",
|
|
1726
|
+
...options,
|
|
1727
|
+
...params,
|
|
1728
|
+
});
|
|
1729
|
+
};
|
|
1730
|
+
|
|
1685
1731
|
/**
|
|
1686
1732
|
* Create a single-use dev access ticket
|
|
1687
1733
|
*
|
|
@@ -2026,6 +2072,54 @@ export const getCloudflareDnsAuthorizationStatus = <ThrowOnError extends boolean
|
|
|
2026
2072
|
});
|
|
2027
2073
|
};
|
|
2028
2074
|
|
|
2075
|
+
/**
|
|
2076
|
+
* Move a project to a chosen address
|
|
2077
|
+
*
|
|
2078
|
+
* Starts a durable operation that re-publishes the project's Dev and Prod gateways at the chosen address and stores it only once both serve it. The previous address stops answering and returns to the pool for any project to claim. Ask GET /v1/project-handles/{handle} first; a taken, unusable or unchanged address is refused before any gateway moves, and a project with an operation in flight is refused until it finishes.
|
|
2079
|
+
*/
|
|
2080
|
+
export const changeProjectHandle = <ThrowOnError extends boolean = true>(
|
|
2081
|
+
parameters: {
|
|
2082
|
+
"X-Request-Id"?: string;
|
|
2083
|
+
"Idempotency-Key": string;
|
|
2084
|
+
"If-Match": string;
|
|
2085
|
+
project_id: Ulid;
|
|
2086
|
+
handle: string;
|
|
2087
|
+
},
|
|
2088
|
+
options?: Options<never, ThrowOnError>,
|
|
2089
|
+
): RequestResult<ChangeProjectHandleResponses, ChangeProjectHandleErrors, ThrowOnError, "data"> => {
|
|
2090
|
+
const params = buildClientParams(
|
|
2091
|
+
[parameters],
|
|
2092
|
+
[
|
|
2093
|
+
{
|
|
2094
|
+
args: [
|
|
2095
|
+
{ in: "headers", key: "X-Request-Id" },
|
|
2096
|
+
{ in: "headers", key: "Idempotency-Key" },
|
|
2097
|
+
{ in: "headers", key: "If-Match" },
|
|
2098
|
+
{ in: "path", key: "project_id" },
|
|
2099
|
+
{ in: "body", key: "handle" },
|
|
2100
|
+
],
|
|
2101
|
+
},
|
|
2102
|
+
],
|
|
2103
|
+
);
|
|
2104
|
+
return (options?.client ?? client).put<
|
|
2105
|
+
ChangeProjectHandleResponses,
|
|
2106
|
+
ChangeProjectHandleErrors,
|
|
2107
|
+
ThrowOnError,
|
|
2108
|
+
"data"
|
|
2109
|
+
>({
|
|
2110
|
+
responseStyle: "data",
|
|
2111
|
+
security: [{ scheme: "bearer", type: "http" }],
|
|
2112
|
+
url: "/v1/projects/{project_id}/handle",
|
|
2113
|
+
...options,
|
|
2114
|
+
...params,
|
|
2115
|
+
headers: {
|
|
2116
|
+
"Content-Type": "application/json",
|
|
2117
|
+
...options?.headers,
|
|
2118
|
+
...params.headers,
|
|
2119
|
+
},
|
|
2120
|
+
});
|
|
2121
|
+
};
|
|
2122
|
+
|
|
2029
2123
|
/**
|
|
2030
2124
|
* Apply the server-derived project domains
|
|
2031
2125
|
*
|
|
@@ -807,7 +807,7 @@ export type OrganizationAccount = {
|
|
|
807
807
|
name: string;
|
|
808
808
|
workos_organization_id: string;
|
|
809
809
|
plan: "free" | "paid";
|
|
810
|
-
plan_source: "free" | "stripe" | "
|
|
810
|
+
plan_source: "free" | "stripe" | "granted" | "manual";
|
|
811
811
|
paid_until: string | null;
|
|
812
812
|
available_micros: CreditMicros;
|
|
813
813
|
monthly_micros: CreditMicros;
|
|
@@ -845,7 +845,30 @@ export type ProjectEnvironment = {
|
|
|
845
845
|
name: string;
|
|
846
846
|
};
|
|
847
847
|
|
|
848
|
+
export type ProjectHandleAvailability = {
|
|
849
|
+
/**
|
|
850
|
+
* The handle exactly as it was asked about.
|
|
851
|
+
*/
|
|
852
|
+
handle: string;
|
|
853
|
+
/**
|
|
854
|
+
* True when a project may take this handle now.
|
|
855
|
+
*/
|
|
856
|
+
available: boolean;
|
|
857
|
+
/**
|
|
858
|
+
* Why the handle cannot be used. Absent when it is available.
|
|
859
|
+
*/
|
|
860
|
+
reason?: "taken" | "too_short" | "too_long" | "invalid_shape" | "prohibited_word";
|
|
861
|
+
/**
|
|
862
|
+
* Free handles to offer instead, empty when the handle is available.
|
|
863
|
+
*/
|
|
864
|
+
alternatives: Array<string>;
|
|
865
|
+
};
|
|
866
|
+
|
|
848
867
|
export type ProjectStatus = {
|
|
868
|
+
/**
|
|
869
|
+
* Optimistic-concurrency token for changing this project address; use it as If-Match on the handle endpoint.
|
|
870
|
+
*/
|
|
871
|
+
etag: string;
|
|
849
872
|
project_id: Ulid;
|
|
850
873
|
handle: string;
|
|
851
874
|
region: HostingRegion;
|
|
@@ -893,9 +916,14 @@ export type ProblemDetails = {
|
|
|
893
916
|
| "mail_domain_required"
|
|
894
917
|
| "storage_jurisdiction_conflict"
|
|
895
918
|
| "framework_conversion_required"
|
|
919
|
+
| "repository_configuration_missing"
|
|
896
920
|
| "migration_filename_noncanonical"
|
|
897
921
|
| "environment_secret_mutation_blocked"
|
|
898
922
|
| "workers_runtime_incompatible"
|
|
923
|
+
| "project_handle_invalid"
|
|
924
|
+
| "project_handle_taken"
|
|
925
|
+
| "project_handle_unchanged"
|
|
926
|
+
| "project_rename_blocked"
|
|
899
927
|
| "payload_too_large"
|
|
900
928
|
| "rate_limited"
|
|
901
929
|
| "insufficient_organization_credits"
|
|
@@ -1589,7 +1617,7 @@ export type GetFeatureInterestsData = {
|
|
|
1589
1617
|
};
|
|
1590
1618
|
path?: never;
|
|
1591
1619
|
query?: never;
|
|
1592
|
-
url: "/v1/
|
|
1620
|
+
url: "/v1/site/feature-interests";
|
|
1593
1621
|
};
|
|
1594
1622
|
|
|
1595
1623
|
export type GetFeatureInterestsErrors = {
|
|
@@ -1633,7 +1661,7 @@ export type RegisterFeatureInterestData = {
|
|
|
1633
1661
|
};
|
|
1634
1662
|
path?: never;
|
|
1635
1663
|
query?: never;
|
|
1636
|
-
url: "/v1/
|
|
1664
|
+
url: "/v1/site/feature-interests";
|
|
1637
1665
|
};
|
|
1638
1666
|
|
|
1639
1667
|
export type RegisterFeatureInterestErrors = {
|
|
@@ -1683,7 +1711,7 @@ export type GetPublicDeploymentStatsData = {
|
|
|
1683
1711
|
body?: never;
|
|
1684
1712
|
path?: never;
|
|
1685
1713
|
query?: never;
|
|
1686
|
-
url: "/v1/
|
|
1714
|
+
url: "/v1/site/stats";
|
|
1687
1715
|
};
|
|
1688
1716
|
|
|
1689
1717
|
export type GetPublicDeploymentStatsErrors = {
|
|
@@ -3255,6 +3283,60 @@ export type GetProjectStatusResponses = {
|
|
|
3255
3283
|
|
|
3256
3284
|
export type GetProjectStatusResponse = GetProjectStatusResponses[keyof GetProjectStatusResponses];
|
|
3257
3285
|
|
|
3286
|
+
export type GetProjectHandleAvailabilityData = {
|
|
3287
|
+
body?: never;
|
|
3288
|
+
headers?: {
|
|
3289
|
+
/**
|
|
3290
|
+
* Optional caller-provided correlation identifier.
|
|
3291
|
+
*/
|
|
3292
|
+
"X-Request-Id"?: string;
|
|
3293
|
+
};
|
|
3294
|
+
path: {
|
|
3295
|
+
/**
|
|
3296
|
+
* The handle a customer would like to use.
|
|
3297
|
+
*/
|
|
3298
|
+
handle: string;
|
|
3299
|
+
};
|
|
3300
|
+
query?: never;
|
|
3301
|
+
url: "/v1/project-handles/{handle}";
|
|
3302
|
+
};
|
|
3303
|
+
|
|
3304
|
+
export type GetProjectHandleAvailabilityErrors = {
|
|
3305
|
+
/**
|
|
3306
|
+
* The request failed.
|
|
3307
|
+
*/
|
|
3308
|
+
400: ProblemDetails;
|
|
3309
|
+
/**
|
|
3310
|
+
* The request failed.
|
|
3311
|
+
*/
|
|
3312
|
+
401: ProblemDetails;
|
|
3313
|
+
/**
|
|
3314
|
+
* The request failed.
|
|
3315
|
+
*/
|
|
3316
|
+
403: ProblemDetails;
|
|
3317
|
+
/**
|
|
3318
|
+
* The request failed.
|
|
3319
|
+
*/
|
|
3320
|
+
429: ProblemDetails;
|
|
3321
|
+
/**
|
|
3322
|
+
* The request failed.
|
|
3323
|
+
*/
|
|
3324
|
+
503: ProblemDetails;
|
|
3325
|
+
};
|
|
3326
|
+
|
|
3327
|
+
export type GetProjectHandleAvailabilityError =
|
|
3328
|
+
GetProjectHandleAvailabilityErrors[keyof GetProjectHandleAvailabilityErrors];
|
|
3329
|
+
|
|
3330
|
+
export type GetProjectHandleAvailabilityResponses = {
|
|
3331
|
+
/**
|
|
3332
|
+
* Whether the handle is usable, and alternatives when it is not.
|
|
3333
|
+
*/
|
|
3334
|
+
200: ProjectHandleAvailability;
|
|
3335
|
+
};
|
|
3336
|
+
|
|
3337
|
+
export type GetProjectHandleAvailabilityResponse =
|
|
3338
|
+
GetProjectHandleAvailabilityResponses[keyof GetProjectHandleAvailabilityResponses];
|
|
3339
|
+
|
|
3258
3340
|
export type CreateProjectDevAccessTicketData = {
|
|
3259
3341
|
body?: never;
|
|
3260
3342
|
headers?: {
|
|
@@ -3739,6 +3821,80 @@ export type GetCloudflareDnsAuthorizationStatusResponses = {
|
|
|
3739
3821
|
export type GetCloudflareDnsAuthorizationStatusResponse =
|
|
3740
3822
|
GetCloudflareDnsAuthorizationStatusResponses[keyof GetCloudflareDnsAuthorizationStatusResponses];
|
|
3741
3823
|
|
|
3824
|
+
export type ChangeProjectHandleData = {
|
|
3825
|
+
body: {
|
|
3826
|
+
/**
|
|
3827
|
+
* One to five lowercase words of letters and digits.
|
|
3828
|
+
*/
|
|
3829
|
+
handle: string;
|
|
3830
|
+
};
|
|
3831
|
+
headers: {
|
|
3832
|
+
/**
|
|
3833
|
+
* Optional caller-provided correlation identifier.
|
|
3834
|
+
*/
|
|
3835
|
+
"X-Request-Id"?: string;
|
|
3836
|
+
/**
|
|
3837
|
+
* Identifies one mutation and its canonical request payload.
|
|
3838
|
+
*/
|
|
3839
|
+
"Idempotency-Key": string;
|
|
3840
|
+
/**
|
|
3841
|
+
* Exact ETag returned for the current project or deployment state.
|
|
3842
|
+
*/
|
|
3843
|
+
"If-Match": string;
|
|
3844
|
+
};
|
|
3845
|
+
path: {
|
|
3846
|
+
/**
|
|
3847
|
+
* Project identifier.
|
|
3848
|
+
*/
|
|
3849
|
+
project_id: Ulid;
|
|
3850
|
+
};
|
|
3851
|
+
query?: never;
|
|
3852
|
+
url: "/v1/projects/{project_id}/handle";
|
|
3853
|
+
};
|
|
3854
|
+
|
|
3855
|
+
export type ChangeProjectHandleErrors = {
|
|
3856
|
+
/**
|
|
3857
|
+
* The request failed.
|
|
3858
|
+
*/
|
|
3859
|
+
400: ProblemDetails;
|
|
3860
|
+
/**
|
|
3861
|
+
* The request failed.
|
|
3862
|
+
*/
|
|
3863
|
+
401: ProblemDetails;
|
|
3864
|
+
/**
|
|
3865
|
+
* The request failed.
|
|
3866
|
+
*/
|
|
3867
|
+
403: ProblemDetails;
|
|
3868
|
+
/**
|
|
3869
|
+
* The resource does not exist or is not visible to the authenticated principal.
|
|
3870
|
+
*/
|
|
3871
|
+
404: ProblemDetails;
|
|
3872
|
+
/**
|
|
3873
|
+
* The idempotency key was already used with a different canonical request.
|
|
3874
|
+
*/
|
|
3875
|
+
409: IdempotencyConflictProblem;
|
|
3876
|
+
/**
|
|
3877
|
+
* The request failed.
|
|
3878
|
+
*/
|
|
3879
|
+
429: ProblemDetails;
|
|
3880
|
+
/**
|
|
3881
|
+
* The request failed.
|
|
3882
|
+
*/
|
|
3883
|
+
503: ProblemDetails;
|
|
3884
|
+
};
|
|
3885
|
+
|
|
3886
|
+
export type ChangeProjectHandleError = ChangeProjectHandleErrors[keyof ChangeProjectHandleErrors];
|
|
3887
|
+
|
|
3888
|
+
export type ChangeProjectHandleResponses = {
|
|
3889
|
+
/**
|
|
3890
|
+
* The mutation was accepted for asynchronous processing.
|
|
3891
|
+
*/
|
|
3892
|
+
202: Operation;
|
|
3893
|
+
};
|
|
3894
|
+
|
|
3895
|
+
export type ChangeProjectHandleResponse =
|
|
3896
|
+
ChangeProjectHandleResponses[keyof ChangeProjectHandleResponses];
|
|
3897
|
+
|
|
3742
3898
|
export type ConfigureProjectDomainsData = {
|
|
3743
3899
|
body?: never;
|
|
3744
3900
|
headers: {
|