run402-mcp 1.39.0 → 1.40.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/README.md +26 -2
- package/dist/errors.d.ts +13 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +42 -0
- package/dist/errors.js.map +1 -1
- package/dist/sdk.d.ts +14 -0
- package/dist/sdk.d.ts.map +1 -0
- package/dist/sdk.js +21 -0
- package/dist/sdk.js.map +1 -0
- package/dist/tools/add-custom-domain.d.ts.map +1 -1
- package/dist/tools/add-custom-domain.js +28 -36
- package/dist/tools/add-custom-domain.js.map +1 -1
- package/dist/tools/ai-moderate.d.ts.map +1 -1
- package/dist/tools/ai-moderate.js +20 -26
- package/dist/tools/ai-moderate.js.map +1 -1
- package/dist/tools/ai-translate.d.ts.map +1 -1
- package/dist/tools/ai-translate.js +33 -38
- package/dist/tools/ai-translate.js.map +1 -1
- package/dist/tools/ai-usage.d.ts.map +1 -1
- package/dist/tools/ai-usage.js +26 -31
- package/dist/tools/ai-usage.js.map +1 -1
- package/dist/tools/allowance-create.d.ts.map +1 -1
- package/dist/tools/allowance-create.js +31 -47
- package/dist/tools/allowance-create.js.map +1 -1
- package/dist/tools/allowance-export.d.ts.map +1 -1
- package/dist/tools/allowance-export.js +6 -6
- package/dist/tools/allowance-export.js.map +1 -1
- package/dist/tools/allowance-status.d.ts.map +1 -1
- package/dist/tools/allowance-status.js +27 -23
- package/dist/tools/allowance-status.js.map +1 -1
- package/dist/tools/apply-expose.d.ts +6 -6
- package/dist/tools/auth-settings.d.ts.map +1 -1
- package/dist/tools/auth-settings.js +17 -25
- package/dist/tools/auth-settings.js.map +1 -1
- package/dist/tools/billing-history.d.ts.map +1 -1
- package/dist/tools/billing-history.js +23 -24
- package/dist/tools/billing-history.js.map +1 -1
- package/dist/tools/blob-get.d.ts.map +1 -1
- package/dist/tools/blob-get.js +8 -15
- package/dist/tools/blob-get.js.map +1 -1
- package/dist/tools/blob-ls.d.ts.map +1 -1
- package/dist/tools/blob-ls.js +18 -25
- package/dist/tools/blob-ls.js.map +1 -1
- package/dist/tools/blob-put.d.ts.map +1 -1
- package/dist/tools/blob-put.js +30 -116
- package/dist/tools/blob-put.js.map +1 -1
- package/dist/tools/blob-rm.d.ts.map +1 -1
- package/dist/tools/blob-rm.js +9 -16
- package/dist/tools/blob-rm.js.map +1 -1
- package/dist/tools/blob-sign.d.ts.map +1 -1
- package/dist/tools/blob-sign.js +16 -23
- package/dist/tools/blob-sign.js.map +1 -1
- package/dist/tools/browse-apps.d.ts.map +1 -1
- package/dist/tools/browse-apps.js +25 -28
- package/dist/tools/browse-apps.js.map +1 -1
- package/dist/tools/bundle-deploy.d.ts +4 -4
- package/dist/tools/bundle-deploy.d.ts.map +1 -1
- package/dist/tools/bundle-deploy.js +72 -72
- package/dist/tools/bundle-deploy.js.map +1 -1
- package/dist/tools/buy-email-pack.d.ts.map +1 -1
- package/dist/tools/buy-email-pack.js +14 -20
- package/dist/tools/buy-email-pack.js.map +1 -1
- package/dist/tools/check-balance.d.ts.map +1 -1
- package/dist/tools/check-balance.js +29 -29
- package/dist/tools/check-balance.js.map +1 -1
- package/dist/tools/check-domain-status.d.ts.map +1 -1
- package/dist/tools/check-domain-status.js +30 -37
- package/dist/tools/check-domain-status.js.map +1 -1
- package/dist/tools/contract-call.d.ts.map +1 -1
- package/dist/tools/contract-call.js +18 -23
- package/dist/tools/contract-call.js.map +1 -1
- package/dist/tools/contract-read.d.ts.map +1 -1
- package/dist/tools/contract-read.js +13 -14
- package/dist/tools/contract-read.js.map +1 -1
- package/dist/tools/create-checkout.d.ts.map +1 -1
- package/dist/tools/create-checkout.js +21 -22
- package/dist/tools/create-checkout.js.map +1 -1
- package/dist/tools/create-email-billing-account.d.ts.map +1 -1
- package/dist/tools/create-email-billing-account.js +14 -15
- package/dist/tools/create-email-billing-account.js.map +1 -1
- package/dist/tools/create-mailbox.d.ts.map +1 -1
- package/dist/tools/create-mailbox.js +31 -77
- package/dist/tools/create-mailbox.js.map +1 -1
- package/dist/tools/delete-contract-wallet.d.ts.map +1 -1
- package/dist/tools/delete-contract-wallet.js +9 -16
- package/dist/tools/delete-contract-wallet.js.map +1 -1
- package/dist/tools/delete-function.d.ts.map +1 -1
- package/dist/tools/delete-function.js +16 -22
- package/dist/tools/delete-function.js.map +1 -1
- package/dist/tools/delete-mailbox-webhook.d.ts.map +1 -1
- package/dist/tools/delete-mailbox-webhook.js +12 -31
- package/dist/tools/delete-mailbox-webhook.js.map +1 -1
- package/dist/tools/delete-mailbox.d.ts.map +1 -1
- package/dist/tools/delete-mailbox.js +18 -55
- package/dist/tools/delete-mailbox.js.map +1 -1
- package/dist/tools/delete-project.d.ts.map +1 -1
- package/dist/tools/delete-project.js +16 -25
- package/dist/tools/delete-project.js.map +1 -1
- package/dist/tools/delete-secret.d.ts.map +1 -1
- package/dist/tools/delete-secret.js +16 -22
- package/dist/tools/delete-secret.js.map +1 -1
- package/dist/tools/delete-version.d.ts.map +1 -1
- package/dist/tools/delete-version.js +9 -15
- package/dist/tools/delete-version.js.map +1 -1
- package/dist/tools/demote-user.d.ts.map +1 -1
- package/dist/tools/demote-user.js +16 -25
- package/dist/tools/demote-user.js.map +1 -1
- package/dist/tools/deploy-function.d.ts.map +1 -1
- package/dist/tools/deploy-function.js +39 -46
- package/dist/tools/deploy-function.js.map +1 -1
- package/dist/tools/deploy-site.d.ts +2 -2
- package/dist/tools/deploy-site.d.ts.map +1 -1
- package/dist/tools/deploy-site.js +22 -29
- package/dist/tools/deploy-site.js.map +1 -1
- package/dist/tools/disable-inbound.d.ts.map +1 -1
- package/dist/tools/disable-inbound.js +14 -19
- package/dist/tools/disable-inbound.js.map +1 -1
- package/dist/tools/drain-contract-wallet.d.ts.map +1 -1
- package/dist/tools/drain-contract-wallet.js +9 -17
- package/dist/tools/drain-contract-wallet.js.map +1 -1
- package/dist/tools/enable-inbound.d.ts.map +1 -1
- package/dist/tools/enable-inbound.js +17 -23
- package/dist/tools/enable-inbound.js.map +1 -1
- package/dist/tools/fork-app.d.ts.map +1 -1
- package/dist/tools/fork-app.js +25 -34
- package/dist/tools/fork-app.js.map +1 -1
- package/dist/tools/generate-image.d.ts.map +1 -1
- package/dist/tools/generate-image.js +48 -46
- package/dist/tools/generate-image.js.map +1 -1
- package/dist/tools/get-app.d.ts.map +1 -1
- package/dist/tools/get-app.js +32 -32
- package/dist/tools/get-app.js.map +1 -1
- package/dist/tools/get-contract-call-status.d.ts.map +1 -1
- package/dist/tools/get-contract-call-status.js +9 -13
- package/dist/tools/get-contract-call-status.js.map +1 -1
- package/dist/tools/get-contract-wallet.d.ts.map +1 -1
- package/dist/tools/get-contract-wallet.js +9 -13
- package/dist/tools/get-contract-wallet.js.map +1 -1
- package/dist/tools/get-deployment.d.ts.map +1 -1
- package/dist/tools/get-deployment.js +22 -22
- package/dist/tools/get-deployment.js.map +1 -1
- package/dist/tools/get-email-raw.d.ts.map +1 -1
- package/dist/tools/get-email-raw.js +26 -50
- package/dist/tools/get-email-raw.js.map +1 -1
- package/dist/tools/get-email.d.ts.map +1 -1
- package/dist/tools/get-email.js +29 -33
- package/dist/tools/get-email.js.map +1 -1
- package/dist/tools/get-function-logs.d.ts.map +1 -1
- package/dist/tools/get-function-logs.js +31 -42
- package/dist/tools/get-function-logs.js.map +1 -1
- package/dist/tools/get-mailbox-webhook.d.ts.map +1 -1
- package/dist/tools/get-mailbox-webhook.js +15 -32
- package/dist/tools/get-mailbox-webhook.js.map +1 -1
- package/dist/tools/get-mailbox.d.ts.map +1 -1
- package/dist/tools/get-mailbox.js +17 -37
- package/dist/tools/get-mailbox.js.map +1 -1
- package/dist/tools/get-quote.d.ts.map +1 -1
- package/dist/tools/get-quote.js +19 -17
- package/dist/tools/get-quote.js.map +1 -1
- package/dist/tools/get-schema.d.ts.map +1 -1
- package/dist/tools/get-schema.js +36 -43
- package/dist/tools/get-schema.js.map +1 -1
- package/dist/tools/get-usage.d.ts.map +1 -1
- package/dist/tools/get-usage.js +27 -34
- package/dist/tools/get-usage.js.map +1 -1
- package/dist/tools/init.d.ts.map +1 -1
- package/dist/tools/init.js +39 -52
- package/dist/tools/init.js.map +1 -1
- package/dist/tools/invoke-function.d.ts.map +1 -1
- package/dist/tools/invoke-function.js +40 -47
- package/dist/tools/invoke-function.js.map +1 -1
- package/dist/tools/link-wallet-to-account.d.ts.map +1 -1
- package/dist/tools/link-wallet-to-account.js +14 -14
- package/dist/tools/link-wallet-to-account.js.map +1 -1
- package/dist/tools/list-contract-wallets.d.ts.map +1 -1
- package/dist/tools/list-contract-wallets.js +9 -13
- package/dist/tools/list-contract-wallets.js.map +1 -1
- package/dist/tools/list-custom-domains.d.ts.map +1 -1
- package/dist/tools/list-custom-domains.js +27 -34
- package/dist/tools/list-custom-domains.js.map +1 -1
- package/dist/tools/list-emails.d.ts.map +1 -1
- package/dist/tools/list-emails.js +26 -43
- package/dist/tools/list-emails.js.map +1 -1
- package/dist/tools/list-functions.d.ts.map +1 -1
- package/dist/tools/list-functions.js +42 -49
- package/dist/tools/list-functions.js.map +1 -1
- package/dist/tools/list-mailbox-webhooks.d.ts.map +1 -1
- package/dist/tools/list-mailbox-webhooks.js +15 -32
- package/dist/tools/list-mailbox-webhooks.js.map +1 -1
- package/dist/tools/list-projects.d.ts.map +1 -1
- package/dist/tools/list-projects.js +26 -26
- package/dist/tools/list-projects.js.map +1 -1
- package/dist/tools/list-secrets.d.ts.map +1 -1
- package/dist/tools/list-secrets.js +27 -34
- package/dist/tools/list-secrets.js.map +1 -1
- package/dist/tools/list-subdomains.d.ts.map +1 -1
- package/dist/tools/list-subdomains.js +26 -33
- package/dist/tools/list-subdomains.js.map +1 -1
- package/dist/tools/list-versions.d.ts.map +1 -1
- package/dist/tools/list-versions.js +27 -34
- package/dist/tools/list-versions.js.map +1 -1
- package/dist/tools/pin-project.d.ts.map +1 -1
- package/dist/tools/pin-project.js +16 -23
- package/dist/tools/pin-project.js.map +1 -1
- package/dist/tools/project-info.d.ts.map +1 -1
- package/dist/tools/project-info.js +22 -19
- package/dist/tools/project-info.js.map +1 -1
- package/dist/tools/project-keys.d.ts.map +1 -1
- package/dist/tools/project-keys.js +17 -14
- package/dist/tools/project-keys.js.map +1 -1
- package/dist/tools/project-use.js +16 -14
- package/dist/tools/project-use.js.map +1 -1
- package/dist/tools/promote-user.d.ts.map +1 -1
- package/dist/tools/promote-user.js +16 -25
- package/dist/tools/promote-user.js.map +1 -1
- package/dist/tools/provision-contract-wallet.d.ts.map +1 -1
- package/dist/tools/provision-contract-wallet.js +12 -17
- package/dist/tools/provision-contract-wallet.js.map +1 -1
- package/dist/tools/provision.d.ts.map +1 -1
- package/dist/tools/provision.js +42 -47
- package/dist/tools/provision.js.map +1 -1
- package/dist/tools/publish-app.d.ts.map +1 -1
- package/dist/tools/publish-app.js +25 -33
- package/dist/tools/publish-app.js.map +1 -1
- package/dist/tools/register-mailbox-webhook.d.ts.map +1 -1
- package/dist/tools/register-mailbox-webhook.js +18 -36
- package/dist/tools/register-mailbox-webhook.js.map +1 -1
- package/dist/tools/register-sender-domain.d.ts.map +1 -1
- package/dist/tools/register-sender-domain.js +15 -21
- package/dist/tools/register-sender-domain.js.map +1 -1
- package/dist/tools/remove-custom-domain.d.ts.map +1 -1
- package/dist/tools/remove-custom-domain.js +15 -23
- package/dist/tools/remove-custom-domain.js.map +1 -1
- package/dist/tools/remove-sender-domain.d.ts.map +1 -1
- package/dist/tools/remove-sender-domain.js +14 -18
- package/dist/tools/remove-sender-domain.js.map +1 -1
- package/dist/tools/request-faucet.d.ts.map +1 -1
- package/dist/tools/request-faucet.js +25 -46
- package/dist/tools/request-faucet.js.map +1 -1
- package/dist/tools/request-magic-link.d.ts.map +1 -1
- package/dist/tools/request-magic-link.js +18 -26
- package/dist/tools/request-magic-link.js.map +1 -1
- package/dist/tools/send-email.d.ts +0 -12
- package/dist/tools/send-email.d.ts.map +1 -1
- package/dist/tools/send-email.js +30 -96
- package/dist/tools/send-email.js.map +1 -1
- package/dist/tools/send-message.d.ts.map +1 -1
- package/dist/tools/send-message.js +9 -12
- package/dist/tools/send-message.js.map +1 -1
- package/dist/tools/sender-domain-status.d.ts.map +1 -1
- package/dist/tools/sender-domain-status.js +16 -21
- package/dist/tools/sender-domain-status.js.map +1 -1
- package/dist/tools/service-health.d.ts.map +1 -1
- package/dist/tools/service-health.js +17 -8
- package/dist/tools/service-health.js.map +1 -1
- package/dist/tools/service-status.d.ts.map +1 -1
- package/dist/tools/service-status.js +17 -8
- package/dist/tools/service-status.js.map +1 -1
- package/dist/tools/set-agent-contact.d.ts.map +1 -1
- package/dist/tools/set-agent-contact.js +24 -27
- package/dist/tools/set-agent-contact.js.map +1 -1
- package/dist/tools/set-auto-recharge.d.ts.map +1 -1
- package/dist/tools/set-auto-recharge.js +18 -20
- package/dist/tools/set-auto-recharge.js.map +1 -1
- package/dist/tools/set-low-balance-alert.d.ts.map +1 -1
- package/dist/tools/set-low-balance-alert.js +9 -14
- package/dist/tools/set-low-balance-alert.js.map +1 -1
- package/dist/tools/set-recovery-address.d.ts.map +1 -1
- package/dist/tools/set-recovery-address.js +9 -14
- package/dist/tools/set-recovery-address.js.map +1 -1
- package/dist/tools/set-secret.d.ts.map +1 -1
- package/dist/tools/set-secret.js +16 -26
- package/dist/tools/set-secret.js.map +1 -1
- package/dist/tools/set-tier.d.ts.map +1 -1
- package/dist/tools/set-tier.js +40 -40
- package/dist/tools/set-tier.js.map +1 -1
- package/dist/tools/set-user-password.d.ts.map +1 -1
- package/dist/tools/set-user-password.js +21 -28
- package/dist/tools/set-user-password.js.map +1 -1
- package/dist/tools/setup-rls.d.ts.map +1 -1
- package/dist/tools/setup-rls.js +21 -32
- package/dist/tools/setup-rls.js.map +1 -1
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +8 -20
- package/dist/tools/status.js.map +1 -1
- package/dist/tools/subdomain.d.ts.map +1 -1
- package/dist/tools/subdomain.js +30 -45
- package/dist/tools/subdomain.js.map +1 -1
- package/dist/tools/tier-checkout.d.ts.map +1 -1
- package/dist/tools/tier-checkout.js +17 -20
- package/dist/tools/tier-checkout.js.map +1 -1
- package/dist/tools/tier-status.d.ts.map +1 -1
- package/dist/tools/tier-status.js +28 -29
- package/dist/tools/tier-status.js.map +1 -1
- package/dist/tools/update-function.d.ts.map +1 -1
- package/dist/tools/update-function.js +24 -39
- package/dist/tools/update-function.js.map +1 -1
- package/dist/tools/update-mailbox-webhook.d.ts.map +1 -1
- package/dist/tools/update-mailbox-webhook.js +20 -46
- package/dist/tools/update-mailbox-webhook.js.map +1 -1
- package/dist/tools/update-version.d.ts.map +1 -1
- package/dist/tools/update-version.js +14 -25
- package/dist/tools/update-version.js.map +1 -1
- package/dist/tools/verify-magic-link.d.ts.map +1 -1
- package/dist/tools/verify-magic-link.js +16 -27
- package/dist/tools/verify-magic-link.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<img src=".github/logo.svg" width="120" alt="run402 logo">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
<h1 align="center">run402 — MCP Server, CLI & OpenClaw Skill</h1>
|
|
5
|
+
<h1 align="center">run402 — SDK, MCP Server, CLI & OpenClaw Skill</h1>
|
|
6
6
|
|
|
7
7
|
[](https://github.com/kychee-com/run402/actions/workflows/test.yml)
|
|
8
8
|
[](https://github.com/kychee-com/run402/actions/workflows/codeql.yml)
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
[](https://www.npmjs.com/package/run402)
|
|
11
11
|
[](./LICENSE)
|
|
12
12
|
|
|
13
|
-
Developer tools for [Run402](https://run402.com) — provision Postgres databases, deploy static sites, serverless functions, generate images, and manage agent allowances. Available as an MCP server, an OpenClaw skill, and a CLI.
|
|
13
|
+
Developer tools for [Run402](https://run402.com) — provision Postgres databases, deploy static sites, serverless functions, generate images, and manage agent allowances. Available as a typed TypeScript SDK, an MCP server, an OpenClaw skill, and a CLI.
|
|
14
14
|
|
|
15
15
|
English | [简体中文](./README.zh-CN.md)
|
|
16
16
|
|
|
@@ -18,10 +18,34 @@ English | [简体中文](./README.zh-CN.md)
|
|
|
18
18
|
|
|
19
19
|
| Interface | Use when... |
|
|
20
20
|
|-----------|-------------|
|
|
21
|
+
| [`sdk/`](./sdk/) (`@run402/sdk`) | Calling run402 from code — inside user-deployed functions, custom agents, or future code-mode sandboxes |
|
|
21
22
|
| [`cli/`](./cli/) | Terminal, scripts, CI/CD |
|
|
22
23
|
| [`openclaw/`](./openclaw/) | OpenClaw agent (no MCP required) |
|
|
23
24
|
| MCP server (this package) | Claude Desktop, Cursor, Cline, Claude Code |
|
|
24
25
|
|
|
26
|
+
## SDK
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm install @run402/sdk
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Two entry points: `@run402/sdk` (isomorphic — works in Node 22, Deno, Bun, V8 isolates) and `@run402/sdk/node` (zero-config Node defaults: keystore + allowance + x402):
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
import { run402 } from "@run402/sdk/node";
|
|
36
|
+
|
|
37
|
+
const r = run402();
|
|
38
|
+
const project = await r.projects.provision({ tier: "prototype" });
|
|
39
|
+
await r.blobs.put(project.project_id, "hello.txt", { content: "hi" });
|
|
40
|
+
await r.sites.deploy(project.project_id, [
|
|
41
|
+
{ file: "index.html", data: "<h1>hello</h1>" },
|
|
42
|
+
]);
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
17 namespaces: `projects`, `blobs`, `functions`, `secrets`, `subdomains`, `domains`, `sites`, `service`, `tier`, `allowance`, `ai`, `auth`, `senderDomain`, `billing`, `apps`, `email` (+ `webhooks`), `contracts`, `admin`.
|
|
46
|
+
|
|
47
|
+
All failures throw typed errors (`PaymentRequired`, `ProjectNotFound`, `Unauthorized`, `ApiError`, `NetworkError`). See [`sdk/README.md`](./sdk/README.md) for details.
|
|
48
|
+
|
|
25
49
|
## Quick Start
|
|
26
50
|
|
|
27
51
|
```bash
|
package/dist/errors.d.ts
CHANGED
|
@@ -26,4 +26,17 @@ export declare function formatApiError(res: {
|
|
|
26
26
|
* Consistent "project not found in key store" error.
|
|
27
27
|
*/
|
|
28
28
|
export declare function projectNotFound(projectId: string): ToolResult;
|
|
29
|
+
/**
|
|
30
|
+
* Translate an SDK error into the MCP tool-result shape.
|
|
31
|
+
*
|
|
32
|
+
* Routing:
|
|
33
|
+
* - `ProjectNotFound` → {@link projectNotFound} (preserves existing text)
|
|
34
|
+
* - HTTP-backed errors (status !== null) → {@link formatApiError}
|
|
35
|
+
* - `NetworkError` / other `Run402Error` with no status → plain isError text
|
|
36
|
+
* - Unknown throwables → plain isError text
|
|
37
|
+
*
|
|
38
|
+
* Call this in the catch branch of a thin MCP shim that otherwise does
|
|
39
|
+
* nothing but delegate to an SDK method and format the successful result.
|
|
40
|
+
*/
|
|
41
|
+
export declare function mapSdkError(err: unknown, context: string): ToolResult;
|
|
29
42
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qDAAqD;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAQrD,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,EACtC,OAAO,EAAE,MAAM,GACd,UAAU,CA2FZ;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAY7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CA4BrE"}
|
package/dist/errors.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** Shared error formatting for MCP tool handlers. */
|
|
2
|
+
import { Run402Error, NetworkError, ProjectNotFound as SdkProjectNotFound, } from "../sdk/dist/index.js";
|
|
2
3
|
/**
|
|
3
4
|
* Format an API error response into an agent-friendly MCP tool result.
|
|
4
5
|
*
|
|
@@ -104,4 +105,45 @@ export function projectNotFound(projectId) {
|
|
|
104
105
|
isError: true,
|
|
105
106
|
};
|
|
106
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Translate an SDK error into the MCP tool-result shape.
|
|
110
|
+
*
|
|
111
|
+
* Routing:
|
|
112
|
+
* - `ProjectNotFound` → {@link projectNotFound} (preserves existing text)
|
|
113
|
+
* - HTTP-backed errors (status !== null) → {@link formatApiError}
|
|
114
|
+
* - `NetworkError` / other `Run402Error` with no status → plain isError text
|
|
115
|
+
* - Unknown throwables → plain isError text
|
|
116
|
+
*
|
|
117
|
+
* Call this in the catch branch of a thin MCP shim that otherwise does
|
|
118
|
+
* nothing but delegate to an SDK method and format the successful result.
|
|
119
|
+
*/
|
|
120
|
+
export function mapSdkError(err, context) {
|
|
121
|
+
if (err instanceof SdkProjectNotFound) {
|
|
122
|
+
return projectNotFound(err.projectId);
|
|
123
|
+
}
|
|
124
|
+
if (err instanceof Run402Error) {
|
|
125
|
+
if (err.status !== null) {
|
|
126
|
+
return formatApiError({ status: err.status, body: err.body }, context);
|
|
127
|
+
}
|
|
128
|
+
if (err instanceof NetworkError) {
|
|
129
|
+
return {
|
|
130
|
+
content: [{ type: "text", text: `Error ${context}: ${err.message}` }],
|
|
131
|
+
isError: true,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
content: [{ type: "text", text: `Error ${context}: ${err.message}` }],
|
|
136
|
+
isError: true,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
content: [
|
|
141
|
+
{
|
|
142
|
+
type: "text",
|
|
143
|
+
text: `Error ${context}: ${err?.message ?? String(err)}`,
|
|
144
|
+
},
|
|
145
|
+
],
|
|
146
|
+
isError: true,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
107
149
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qDAAqD;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP-side SDK singleton.
|
|
3
|
+
*
|
|
4
|
+
* All MCP tool handlers obtain their API client via {@link getSdk}. The
|
|
5
|
+
* instance is lazily constructed on first use and cached for the lifetime
|
|
6
|
+
* of the process. Tests that mutate `RUN402_API_BASE` / `RUN402_CONFIG_DIR`
|
|
7
|
+
* between runs must call {@link _resetSdk} in their setup hook to discard
|
|
8
|
+
* the cached apiBase and credentials provider.
|
|
9
|
+
*/
|
|
10
|
+
import { type Run402 } from "../sdk/dist/node/index.js";
|
|
11
|
+
export declare function getSdk(): Run402;
|
|
12
|
+
/** Reset the cached SDK instance. Test-only. */
|
|
13
|
+
export declare function _resetSdk(): void;
|
|
14
|
+
//# sourceMappingURL=sdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAIjF,wBAAgB,MAAM,IAAI,MAAM,CAG/B;AAED,gDAAgD;AAChD,wBAAgB,SAAS,IAAI,IAAI,CAEhC"}
|
package/dist/sdk.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP-side SDK singleton.
|
|
3
|
+
*
|
|
4
|
+
* All MCP tool handlers obtain their API client via {@link getSdk}. The
|
|
5
|
+
* instance is lazily constructed on first use and cached for the lifetime
|
|
6
|
+
* of the process. Tests that mutate `RUN402_API_BASE` / `RUN402_CONFIG_DIR`
|
|
7
|
+
* between runs must call {@link _resetSdk} in their setup hook to discard
|
|
8
|
+
* the cached apiBase and credentials provider.
|
|
9
|
+
*/
|
|
10
|
+
import { run402 as createNodeSdk } from "../sdk/dist/node/index.js";
|
|
11
|
+
let cached = null;
|
|
12
|
+
export function getSdk() {
|
|
13
|
+
if (!cached)
|
|
14
|
+
cached = createNodeSdk();
|
|
15
|
+
return cached;
|
|
16
|
+
}
|
|
17
|
+
/** Reset the cached SDK instance. Test-only. */
|
|
18
|
+
export function _resetSdk() {
|
|
19
|
+
cached = null;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=sdk.js.map
|
package/dist/sdk.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,IAAI,aAAa,EAAe,MAAM,2BAA2B,CAAC;AAEjF,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC,MAAM,UAAU,MAAM;IACpB,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,aAAa,EAAE,CAAC;IACtC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,SAAS;IACvB,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-custom-domain.d.ts","sourceRoot":"","sources":["../../src/tools/add-custom-domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"add-custom-domain.d.ts","sourceRoot":"","sources":["../../src/tools/add-custom-domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,qBAAqB;;;;CAUjC,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAuCjF"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { formatApiError, projectNotFound } from "../errors.js";
|
|
2
|
+
import { getSdk } from "../sdk.js";
|
|
3
|
+
import { mapSdkError } from "../errors.js";
|
|
5
4
|
export const addCustomDomainSchema = {
|
|
6
5
|
domain: z
|
|
7
6
|
.string()
|
|
@@ -14,40 +13,33 @@ export const addCustomDomainSchema = {
|
|
|
14
13
|
.describe("The project ID that owns the subdomain"),
|
|
15
14
|
};
|
|
16
15
|
export async function handleAddCustomDomain(args) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
];
|
|
40
|
-
if (body.dns_instructions) {
|
|
41
|
-
const dns = body.dns_instructions;
|
|
42
|
-
lines.push(``, `## DNS Configuration Required`, ``, `Add the following DNS records at your domain registrar:`);
|
|
43
|
-
if (dns.cname_target) {
|
|
44
|
-
lines.push(`- **CNAME**: \`${body.domain}\` → \`${dns.cname_target}\``);
|
|
16
|
+
try {
|
|
17
|
+
const body = await getSdk().domains.add(args.project_id, args.domain, args.subdomain_name);
|
|
18
|
+
const lines = [
|
|
19
|
+
`## Custom Domain Registered`,
|
|
20
|
+
``,
|
|
21
|
+
`| Field | Value |`,
|
|
22
|
+
`|-------|-------|`,
|
|
23
|
+
`| domain | \`${body.domain}\` |`,
|
|
24
|
+
`| url | ${body.url} |`,
|
|
25
|
+
`| subdomain | ${body.subdomain_url} |`,
|
|
26
|
+
`| status | ${body.status} |`,
|
|
27
|
+
];
|
|
28
|
+
if (body.dns_instructions) {
|
|
29
|
+
const dns = body.dns_instructions;
|
|
30
|
+
lines.push(``, `## DNS Configuration Required`, ``, `Add the following DNS records at your domain registrar:`);
|
|
31
|
+
if (dns.cname_target) {
|
|
32
|
+
lines.push(`- **CNAME**: \`${body.domain}\` → \`${dns.cname_target}\``);
|
|
33
|
+
}
|
|
34
|
+
if (dns.txt_name && dns.txt_value) {
|
|
35
|
+
lines.push(`- **TXT**: \`${dns.txt_name}\` → \`${dns.txt_value}\``);
|
|
36
|
+
}
|
|
37
|
+
lines.push(``, `After DNS propagates (up to 60 seconds), check status with \`check_domain_status\`.`);
|
|
45
38
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
39
|
+
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
return mapSdkError(err, "registering custom domain");
|
|
50
43
|
}
|
|
51
|
-
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
52
44
|
}
|
|
53
45
|
//# sourceMappingURL=add-custom-domain.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-custom-domain.js","sourceRoot":"","sources":["../../src/tools/add-custom-domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"add-custom-domain.js","sourceRoot":"","sources":["../../src/tools/add-custom-domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,CAAC,0EAA0E,CAAC;IACvF,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,CAAC,gFAAgF,CAAC;IAC7F,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,CAAC,wCAAwC,CAAC;CACtD,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAI3C;IACC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAE3F,MAAM,KAAK,GAAG;YACZ,6BAA6B;YAC7B,EAAE;YACF,mBAAmB;YACnB,mBAAmB;YACnB,gBAAgB,IAAI,CAAC,MAAM,MAAM;YACjC,WAAW,IAAI,CAAC,GAAG,IAAI;YACvB,iBAAiB,IAAI,CAAC,aAAa,IAAI;YACvC,cAAc,IAAI,CAAC,MAAM,IAAI;SAC9B,CAAC;QAEF,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAClC,KAAK,CAAC,IAAI,CACR,EAAE,EACF,+BAA+B,EAC/B,EAAE,EACF,yDAAyD,CAC1D,CAAC;YACF,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,MAAM,UAAU,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,QAAQ,UAAU,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;YACtE,CAAC;YACD,KAAK,CAAC,IAAI,CACR,EAAE,EACF,qFAAqF,CACtF,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-moderate.d.ts","sourceRoot":"","sources":["../../src/tools/ai-moderate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-moderate.d.ts","sourceRoot":"","sources":["../../src/tools/ai-moderate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,gBAAgB;;;CAG5B,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAsBjF"}
|
|
@@ -1,35 +1,29 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { formatApiError, projectNotFound } from "../errors.js";
|
|
2
|
+
import { getSdk } from "../sdk.js";
|
|
3
|
+
import { mapSdkError } from "../errors.js";
|
|
5
4
|
export const aiModerateSchema = {
|
|
6
5
|
project_id: z.string().describe("The project ID"),
|
|
7
6
|
text: z.string().describe("Text content to check for moderation"),
|
|
8
7
|
};
|
|
9
8
|
export async function handleAiModerate(args) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
for (const [category, flagged] of Object.entries(body.categories)) {
|
|
29
|
-
const score = body.category_scores[category] ?? 0;
|
|
30
|
-
const flag = flagged ? "YES" : "no";
|
|
31
|
-
lines.push(`| ${category} | ${flag} | ${score.toFixed(4)} |`);
|
|
9
|
+
try {
|
|
10
|
+
const body = await getSdk().ai.moderate(args.project_id, args.text);
|
|
11
|
+
const status = body.flagged ? "FLAGGED" : "OK";
|
|
12
|
+
const lines = [
|
|
13
|
+
`## Moderation Result: ${status}`,
|
|
14
|
+
``,
|
|
15
|
+
`| Category | Flagged | Score |`,
|
|
16
|
+
`|----------|---------|-------|`,
|
|
17
|
+
];
|
|
18
|
+
for (const [category, flagged] of Object.entries(body.categories)) {
|
|
19
|
+
const score = body.category_scores[category] ?? 0;
|
|
20
|
+
const flag = flagged ? "YES" : "no";
|
|
21
|
+
lines.push(`| ${category} | ${flag} | ${score.toFixed(4)} |`);
|
|
22
|
+
}
|
|
23
|
+
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
return mapSdkError(err, "moderating content");
|
|
32
27
|
}
|
|
33
|
-
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
34
28
|
}
|
|
35
29
|
//# sourceMappingURL=ai-moderate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-moderate.js","sourceRoot":"","sources":["../../src/tools/ai-moderate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ai-moderate.js","sourceRoot":"","sources":["../../src/tools/ai-moderate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CAClE,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAGtC;IACC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/C,MAAM,KAAK,GAAG;YACZ,yBAAyB,MAAM,EAAE;YACjC,EAAE;YACF,gCAAgC;YAChC,gCAAgC;SACjC,CAAC;QAEF,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAClE,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,MAAM,IAAI,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-translate.d.ts","sourceRoot":"","sources":["../../src/tools/ai-translate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,iBAAiB;;;;;;CAM7B,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"ai-translate.d.ts","sourceRoot":"","sources":["../../src/tools/ai-translate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,iBAAiB;;;;;;CAM7B,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAsCjF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { getSdk } from "../sdk.js";
|
|
3
|
+
import { mapSdkError } from "../errors.js";
|
|
4
|
+
import { PaymentRequired } from "../../sdk/dist/index.js";
|
|
5
5
|
export const aiTranslateSchema = {
|
|
6
6
|
project_id: z.string().describe("The project ID"),
|
|
7
7
|
text: z.string().max(10000).describe("Text to translate (max 10,000 characters)"),
|
|
@@ -10,46 +10,41 @@ export const aiTranslateSchema = {
|
|
|
10
10
|
context: z.string().max(200).optional().describe("Context hint for tone/register (max 200 chars, e.g. 'formal business email')"),
|
|
11
11
|
};
|
|
12
12
|
export async function handleAiTranslate(args) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
body.context = args.context;
|
|
21
|
-
const res = await apiRequest(`/ai/v1/translate`, {
|
|
22
|
-
method: "POST",
|
|
23
|
-
headers: { Authorization: `Bearer ${project.service_key}` },
|
|
24
|
-
body,
|
|
25
|
-
});
|
|
26
|
-
if (res.status === 402) {
|
|
27
|
-
const resBody = res.body;
|
|
28
|
-
const message = resBody.message || "AI Translation add-on required or quota exceeded";
|
|
13
|
+
try {
|
|
14
|
+
const body = await getSdk().ai.translate(args.project_id, {
|
|
15
|
+
text: args.text,
|
|
16
|
+
to: args.to,
|
|
17
|
+
from: args.from,
|
|
18
|
+
context: args.context,
|
|
19
|
+
});
|
|
29
20
|
const lines = [
|
|
30
|
-
`## Translation
|
|
21
|
+
`## Translation`,
|
|
31
22
|
``,
|
|
32
|
-
|
|
23
|
+
`| Field | Value |`,
|
|
24
|
+
`|-------|-------|`,
|
|
25
|
+
`| from | ${body.from} |`,
|
|
26
|
+
`| to | ${body.to} |`,
|
|
33
27
|
``,
|
|
34
|
-
|
|
35
|
-
``,
|
|
36
|
-
`Use \`ai_usage\` to check current quota, or enable the add-on from the project dashboard.`,
|
|
28
|
+
body.text,
|
|
37
29
|
];
|
|
38
30
|
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
39
31
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
32
|
+
catch (err) {
|
|
33
|
+
if (err instanceof PaymentRequired) {
|
|
34
|
+
const resBody = (err.body ?? {});
|
|
35
|
+
const message = resBody.message || "AI Translation add-on required or quota exceeded";
|
|
36
|
+
const lines = [
|
|
37
|
+
`## Translation Unavailable`,
|
|
38
|
+
``,
|
|
39
|
+
`${message}`,
|
|
40
|
+
``,
|
|
41
|
+
`This is not a payment — the AI Translation add-on must be enabled on the project, or the word quota for the current billing cycle has been exceeded.`,
|
|
42
|
+
``,
|
|
43
|
+
`Use \`ai_usage\` to check current quota, or enable the add-on from the project dashboard.`,
|
|
44
|
+
];
|
|
45
|
+
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
46
|
+
}
|
|
47
|
+
return mapSdkError(err, "translating text");
|
|
48
|
+
}
|
|
54
49
|
}
|
|
55
50
|
//# sourceMappingURL=ai-translate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-translate.js","sourceRoot":"","sources":["../../src/tools/ai-translate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ai-translate.js","sourceRoot":"","sources":["../../src/tools/ai-translate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACjF,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IAClF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IAClG,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8EAA8E,CAAC;CACjI,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAMvC;IACC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE;YACxD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG;YACZ,gBAAgB;YAChB,EAAE;YACF,mBAAmB;YACnB,mBAAmB;YACnB,YAAY,IAAI,CAAC,IAAI,IAAI;YACzB,UAAU,IAAI,CAAC,EAAE,IAAI;YACrB,EAAE;YACF,IAAI,CAAC,IAAI;SACV,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;YAC5D,MAAM,OAAO,GAAI,OAAO,CAAC,OAAkB,IAAI,kDAAkD,CAAC;YAClG,MAAM,KAAK,GAAG;gBACZ,4BAA4B;gBAC5B,EAAE;gBACF,GAAG,OAAO,EAAE;gBACZ,EAAE;gBACF,sJAAsJ;gBACtJ,EAAE;gBACF,2FAA2F;aAC5F,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACjE,CAAC;QACD,OAAO,WAAW,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-usage.d.ts","sourceRoot":"","sources":["../../src/tools/ai-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-usage.d.ts","sourceRoot":"","sources":["../../src/tools/ai-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;CAEzB,CAAC;AAEF,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA2BjF"}
|
package/dist/tools/ai-usage.js
CHANGED
|
@@ -1,38 +1,33 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { formatApiError, projectNotFound } from "../errors.js";
|
|
2
|
+
import { getSdk } from "../sdk.js";
|
|
3
|
+
import { mapSdkError } from "../errors.js";
|
|
5
4
|
export const aiUsageSchema = {
|
|
6
5
|
project_id: z.string().describe("The project ID"),
|
|
7
6
|
};
|
|
8
7
|
export async function handleAiUsage(args) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
`| Usage | ${usedPct}% |`,
|
|
34
|
-
`| Billing cycle start | ${t.billing_cycle_start} |`,
|
|
35
|
-
];
|
|
36
|
-
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
8
|
+
try {
|
|
9
|
+
const body = await getSdk().ai.usage(args.project_id);
|
|
10
|
+
const t = body.translation;
|
|
11
|
+
const usedPct = t.included_words > 0
|
|
12
|
+
? ((t.used_words / t.included_words) * 100).toFixed(1)
|
|
13
|
+
: "0.0";
|
|
14
|
+
const lines = [
|
|
15
|
+
`## AI Translation Usage`,
|
|
16
|
+
``,
|
|
17
|
+
`**Status:** ${t.active ? "Active" : "Inactive"}`,
|
|
18
|
+
``,
|
|
19
|
+
`| Metric | Value |`,
|
|
20
|
+
`|--------|-------|`,
|
|
21
|
+
`| Used words | ${t.used_words.toLocaleString()} |`,
|
|
22
|
+
`| Included words | ${t.included_words.toLocaleString()} |`,
|
|
23
|
+
`| Remaining words | ${t.remaining_words.toLocaleString()} |`,
|
|
24
|
+
`| Usage | ${usedPct}% |`,
|
|
25
|
+
`| Billing cycle start | ${t.billing_cycle_start} |`,
|
|
26
|
+
];
|
|
27
|
+
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
return mapSdkError(err, "fetching AI usage");
|
|
31
|
+
}
|
|
37
32
|
}
|
|
38
33
|
//# sourceMappingURL=ai-usage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-usage.js","sourceRoot":"","sources":["../../src/tools/ai-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ai-usage.js","sourceRoot":"","sources":["../../src/tools/ai-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;CAClD,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAEnC;IACC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEtD,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3B,MAAM,OAAO,GAAG,CAAC,CAAC,cAAc,GAAG,CAAC;YAClC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACtD,CAAC,CAAC,KAAK,CAAC;QAEV,MAAM,KAAK,GAAG;YACZ,yBAAyB;YACzB,EAAE;YACF,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE;YACjD,EAAE;YACF,oBAAoB;YACpB,oBAAoB;YACpB,kBAAkB,CAAC,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI;YACnD,sBAAsB,CAAC,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI;YAC3D,uBAAuB,CAAC,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI;YAC7D,aAAa,OAAO,KAAK;YACzB,2BAA2B,CAAC,CAAC,mBAAmB,IAAI;SACrD,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allowance-create.d.ts","sourceRoot":"","sources":["../../src/tools/allowance-create.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"allowance-create.d.ts","sourceRoot":"","sources":["../../src/tools/allowance-create.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,IAAK,CAAC;AAExC,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC3B,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAgChF"}
|