@proof-holdings/mcp-server 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +223 -216
- package/dist/authBoundary.d.ts +182 -0
- package/dist/authBoundary.d.ts.map +1 -0
- package/dist/authBoundary.js +328 -0
- package/dist/authBoundary.js.map +1 -0
- package/dist/factory.d.ts +33 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +123 -0
- package/dist/factory.js.map +1 -0
- package/dist/http.d.ts +63 -3
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +183 -4
- package/dist/http.js.map +1 -1
- package/dist/remote.d.ts +111 -0
- package/dist/remote.d.ts.map +1 -0
- package/dist/remote.js +787 -0
- package/dist/remote.js.map +1 -0
- package/dist/server.js +11 -57
- package/dist/server.js.map +1 -1
- package/dist/tools/{projects.d.ts → accounts.d.ts} +1 -1
- package/dist/tools/accounts.d.ts.map +1 -0
- package/dist/tools/accounts.js +70 -0
- package/dist/tools/accounts.js.map +1 -0
- package/dist/tools/api-keys.d.ts.map +1 -1
- package/dist/tools/api-keys.js +14 -5
- package/dist/tools/api-keys.js.map +1 -1
- package/dist/tools/auth-flows.d.ts +4 -0
- package/dist/tools/auth-flows.d.ts.map +1 -0
- package/dist/tools/auth-flows.js +34 -0
- package/dist/tools/auth-flows.js.map +1 -0
- package/dist/tools/authorizations.d.ts +4 -0
- package/dist/tools/authorizations.d.ts.map +1 -0
- package/dist/tools/authorizations.js +111 -0
- package/dist/tools/authorizations.js.map +1 -0
- package/dist/tools/circles.d.ts +4 -0
- package/dist/tools/circles.d.ts.map +1 -0
- package/dist/tools/circles.js +215 -0
- package/dist/tools/circles.js.map +1 -0
- package/dist/tools/confirmations.d.ts +4 -0
- package/dist/tools/confirmations.d.ts.map +1 -0
- package/dist/tools/confirmations.js +86 -0
- package/dist/tools/confirmations.js.map +1 -0
- package/dist/tools/delegation-verify-outcomes.d.ts +23 -0
- package/dist/tools/delegation-verify-outcomes.d.ts.map +1 -0
- package/dist/tools/delegation-verify-outcomes.js +51 -0
- package/dist/tools/delegation-verify-outcomes.js.map +1 -0
- package/dist/tools/delegation-verify.d.ts +24 -0
- package/dist/tools/delegation-verify.d.ts.map +1 -0
- package/dist/tools/delegation-verify.js +192 -0
- package/dist/tools/delegation-verify.js.map +1 -0
- package/dist/tools/delegations.d.ts +4 -0
- package/dist/tools/delegations.d.ts.map +1 -0
- package/dist/tools/delegations.js +84 -0
- package/dist/tools/delegations.js.map +1 -0
- package/dist/tools/domains.d.ts.map +1 -1
- package/dist/tools/domains.js +1 -2
- package/dist/tools/domains.js.map +1 -1
- package/dist/tools/hitl-keys.d.ts +4 -0
- package/dist/tools/hitl-keys.d.ts.map +1 -0
- package/dist/tools/hitl-keys.js +52 -0
- package/dist/tools/hitl-keys.js.map +1 -0
- package/dist/tools/hitl.d.ts +4 -0
- package/dist/tools/hitl.d.ts.map +1 -0
- package/dist/tools/hitl.js +151 -0
- package/dist/tools/hitl.js.map +1 -0
- package/dist/tools/phones.js +1 -1
- package/dist/tools/phones.js.map +1 -1
- package/dist/tools/profiles.d.ts.map +1 -1
- package/dist/tools/profiles.js +73 -0
- package/dist/tools/profiles.js.map +1 -1
- package/dist/tools/proof-me.d.ts +4 -0
- package/dist/tools/proof-me.d.ts.map +1 -0
- package/dist/tools/proof-me.js +107 -0
- package/dist/tools/proof-me.js.map +1 -0
- package/dist/tools/proofs.d.ts.map +1 -1
- package/dist/tools/proofs.js +9 -6
- package/dist/tools/proofs.js.map +1 -1
- package/dist/tools/render-auth-link.d.ts +3 -0
- package/dist/tools/render-auth-link.d.ts.map +1 -0
- package/dist/tools/render-auth-link.js +30 -0
- package/dist/tools/render-auth-link.js.map +1 -0
- package/dist/tools/sessions.js +5 -5
- package/dist/tools/sessions.js.map +1 -1
- package/dist/tools/settings.d.ts.map +1 -1
- package/dist/tools/settings.js +69 -0
- package/dist/tools/settings.js.map +1 -1
- package/dist/tools/twofa.d.ts.map +1 -1
- package/dist/tools/twofa.js +16 -3
- package/dist/tools/twofa.js.map +1 -1
- package/dist/tools/user-requests.d.ts.map +1 -1
- package/dist/tools/user-requests.js +1 -2
- package/dist/tools/user-requests.js.map +1 -1
- package/dist/tools/verification-requests.d.ts.map +1 -1
- package/dist/tools/verification-requests.js +40 -13
- package/dist/tools/verification-requests.js.map +1 -1
- package/dist/tools/verifications.d.ts.map +1 -1
- package/dist/tools/verifications.js +59 -12
- package/dist/tools/verifications.js.map +1 -1
- package/dist/types.d.ts +18 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +114 -5
- package/dist/types.js.map +1 -1
- package/package.json +11 -5
- package/dist/tools/projects.d.ts.map +0 -1
- package/dist/tools/projects.js +0 -159
- package/dist/tools/projects.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -1,66 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
2
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
|
-
import {
|
|
5
|
-
import { registerTools as registerVerifications } from './tools/verifications.js';
|
|
6
|
-
import { registerTools as registerVerificationRequests } from './tools/verification-requests.js';
|
|
7
|
-
import { registerTools as registerProofs } from './tools/proofs.js';
|
|
8
|
-
import { registerTools as registerSessions } from './tools/sessions.js';
|
|
9
|
-
import { registerTools as registerAssets } from './tools/assets.js';
|
|
10
|
-
import { registerTools as registerAuth } from './tools/auth.js';
|
|
11
|
-
import { registerTools as registerSettings } from './tools/settings.js';
|
|
12
|
-
import { registerTools as registerTemplates } from './tools/templates.js';
|
|
13
|
-
import { registerTools as registerWebhookDeliveries } from './tools/webhook-deliveries.js';
|
|
14
|
-
import { registerTools as registerBilling } from './tools/billing.js';
|
|
15
|
-
import { registerTools as registerProjects } from './tools/projects.js';
|
|
16
|
-
import { registerTools as registerProfiles } from './tools/profiles.js';
|
|
17
|
-
import { registerTools as registerEmails } from './tools/emails.js';
|
|
18
|
-
import { registerTools as registerPhones } from './tools/phones.js';
|
|
19
|
-
import { registerTools as registerApiKeys } from './tools/api-keys.js';
|
|
20
|
-
import { registerTools as registerTwofa } from './tools/twofa.js';
|
|
21
|
-
import { registerTools as registerDomains } from './tools/domains.js';
|
|
22
|
-
import { registerTools as registerDnsCredentials } from './tools/dns-credentials.js';
|
|
23
|
-
import { registerTools as registerUserRequests } from './tools/user-requests.js';
|
|
24
|
-
import { registerTools as registerUserDomainVerify } from './tools/user-domain-verify.js';
|
|
25
|
-
import { registerTools as registerPublicProfiles } from './tools/public-profiles.js';
|
|
3
|
+
import { createProofServer } from './factory.js';
|
|
26
4
|
const API_KEY = process.env.PROOF_API_KEY;
|
|
27
5
|
const BASE_URL = process.env.PROOF_BASE_URL ?? 'https://api.proof.holdings';
|
|
6
|
+
// PUBLIC MODE: no key is required to START. The bootstrap surface (create_account, start_login and
|
|
7
|
+
// their polls) and the public verification surface (validate_proof, list_revoked_proofs,
|
|
8
|
+
// verify_delegation*) work with no credential; every other tool answers `api_key_required` from
|
|
9
|
+
// HttpClient. Exiting here instead would make trying Proof impossible without an account already
|
|
10
|
+
// in hand, which is the precondition both the publisher showcase and the remote server need.
|
|
28
11
|
if (!API_KEY) {
|
|
29
|
-
console.error('
|
|
30
|
-
console.error('
|
|
31
|
-
process.exit(1);
|
|
12
|
+
console.error('Notice: PROOF_API_KEY is not set — starting in public mode.');
|
|
13
|
+
console.error('Account-bootstrap, login and public verification tools work; the rest ask for a key.');
|
|
32
14
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
});
|
|
37
|
-
const server = new McpServer({
|
|
38
|
-
name: 'proof-holdings',
|
|
39
|
-
version: '1.0.0',
|
|
40
|
-
});
|
|
41
|
-
// Register all tool modules
|
|
42
|
-
const tool = server.tool.bind(server);
|
|
43
|
-
registerVerifications(tool, http);
|
|
44
|
-
registerVerificationRequests(tool, http);
|
|
45
|
-
registerProofs(tool, http);
|
|
46
|
-
registerSessions(tool, http);
|
|
47
|
-
registerAssets(tool, http);
|
|
48
|
-
registerAuth(tool, http);
|
|
49
|
-
registerSettings(tool, http);
|
|
50
|
-
registerTemplates(tool, http);
|
|
51
|
-
registerWebhookDeliveries(tool, http);
|
|
52
|
-
registerBilling(tool, http);
|
|
53
|
-
registerProjects(tool, http);
|
|
54
|
-
registerProfiles(tool, http);
|
|
55
|
-
registerEmails(tool, http);
|
|
56
|
-
registerPhones(tool, http);
|
|
57
|
-
registerApiKeys(tool, http);
|
|
58
|
-
registerTwofa(tool, http);
|
|
59
|
-
registerDomains(tool, http);
|
|
60
|
-
registerDnsCredentials(tool, http);
|
|
61
|
-
registerUserRequests(tool, http);
|
|
62
|
-
registerUserDomainVerify(tool, http);
|
|
63
|
-
registerPublicProfiles(tool, http);
|
|
15
|
+
// One server + one HTTP client, built by the SAME factory the remote server calls per connection.
|
|
16
|
+
// stdio serves a single user, so one instance for the whole process is correct here.
|
|
17
|
+
const { server } = createProofServer({ apiKey: API_KEY, baseUrl: BASE_URL });
|
|
64
18
|
// Catch unhandled errors to avoid silent crashes
|
|
65
19
|
process.on('uncaughtException', (err) => {
|
|
66
20
|
console.error('Uncaught exception:', err.message);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,4BAA4B,CAAC;AAE5E,mGAAmG;AACnG,yFAAyF;AACzF,gGAAgG;AAChG,iGAAiG;AACjG,6FAA6F;AAC7F,IAAI,CAAC,OAAO,EAAE,CAAC;IACb,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC7E,OAAO,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAC;AACxG,CAAC;AAED,kGAAkG;AAClG,qFAAqF;AACrF,MAAM,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;AAE7E,iDAAiD;AACjD,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;IACtC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AACH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE;IACvC,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,oBAAoB;AACpB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/tools/accounts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,QAqFlE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { jsonResult, errorResult, pollUntilTerminal, WAIT_DEFAULT_SECONDS } from '../types.js';
|
|
3
|
+
import { ApiError } from '../http.js';
|
|
4
|
+
export function registerTools(tool, http) {
|
|
5
|
+
tool('create_account', 'Create an account-bootstrap session for agent-driven onboarding. Public endpoint (no API key required). Returns a session id, channel-specific instructions, and — FOR TELEGRAM AND WHATSAPP ONLY — deep_link, qr_code (base64 PNG) and qr_text (UTF-8 text QR).\n\nThe endpoint is safe to call regardless of whether the submitted identity is new: completing verification transparently creates a User when none exists, or logs the user in when one already does. The response is intentionally uniform — the server does NOT reveal whether the identity is already registered (this would be a user-enumeration oracle). If the agent needs to distinguish new-vs-returning users, call `get_current_user` after verification and inspect the user\'s `created_at`.\n\nEMAIL CHANNEL SENDS NOTHING HERE. The response carries email_sent=false and send_required=true: confirm with the user that the address is theirs, then call send_account_email. The other channels dispatch nothing either way — the user sends the first message themselves (reverse OTP).\n\nAgent usage: (1) Call create_account with the user\'s chosen channel. (2) For email, confirm with the user and call send_account_email. On telegram/whatsapp pass `deep_link` to render_auth_link, which prints the clickable link and a QR code beneath it. On sms `deep_link` is an EMPTY STRING and render_auth_link will reject it — show `sms_message`, which is what the user sends; this response carries no destination number, so do not invent one. Do not hand `qr_text` to a link renderer either — it is the link already rendered as QR art; print it verbatim inside a fenced code block if a real terminal needs the QR. (3) Call wait_for_account_creation with the session id until verification completes. (4) On verified, JWT + refresh cookies are set; proceed with whatever follow-up the agent was asked to do.', {
|
|
6
|
+
channel: z.enum(['telegram', 'whatsapp', 'sms', 'email']).describe('Authentication channel the user will verify through'),
|
|
7
|
+
phone_number: z.string().optional().describe('E.164 phone number. Required for SMS channel (determines DID routing).'),
|
|
8
|
+
email: z.string().email().optional().describe('Email address. Required for email channel.'),
|
|
9
|
+
}, async (args) => {
|
|
10
|
+
try {
|
|
11
|
+
const result = await http.post('/api/v1/accounts', args);
|
|
12
|
+
return jsonResult(result);
|
|
13
|
+
}
|
|
14
|
+
catch (e) {
|
|
15
|
+
if (e instanceof ApiError)
|
|
16
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
17
|
+
throw e;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
tool('send_account_email', 'Deliver the verification email for an account-bootstrap session created with channel "email". Public endpoint (no API key required).\n\nWhy this is a separate call: create_account deliberately sends NOTHING. A message from proof.holdings arriving in someone\'s inbox is an act with a person on the other end, so it takes an explicit second step rather than being a side effect of creating a session. ASK THE USER to confirm the address is theirs before calling this — do not call it automatically after create_account.\n\nThe other channels (telegram, whatsapp, sms) never need this: the user sends the first message themselves (reverse OTP), so nothing is dispatched to them at all.\n\nOne session sends at most one email, including under concurrent calls. A repeat answers 410 already_sent, which means the material backing the send is gone: usually because the email went out, occasionally because an attempt was interrupted mid-send and nothing was delivered. Do not tell the user a message was sent on the strength of a 410 — create a new session instead. (A session the recipient cancelled via the decline link, or an expired one, answers 404, not 410.) If delivery fails the response carries email_sent=false and the call can be retried.', {
|
|
21
|
+
id: z.string().describe('Account session id from create_account'),
|
|
22
|
+
}, async ({ id }) => {
|
|
23
|
+
try {
|
|
24
|
+
const result = await http.post(`/api/v1/accounts/${encodeURIComponent(id)}/send`);
|
|
25
|
+
return jsonResult(result);
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
if (e instanceof ApiError)
|
|
29
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
30
|
+
throw e;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
tool('wait_for_account_creation', 'Poll an account-bootstrap session until the user completes verification. Uses exponential backoff (2s initial, 1.5x, 30s max) with jitter.\n\nAgent usage: Call this after create_account with the returned session id. Terminal states: "verified" (this server keeps the session for this connection; the `user_id` field in the terminal body identifies the authenticated user), "expired". A result with status "pending" means the wait ran out before the user finished — call this tool again with the same id. Works identically whether the underlying flow created a new User or logged in an existing one.', {
|
|
34
|
+
id: z.string().describe('Account session id from create_account'),
|
|
35
|
+
timeout_seconds: z.number().int().min(1).max(600).optional().describe(`Maximum wait time in seconds (default: ${WAIT_DEFAULT_SECONDS}, max: 600). Keep it under your MCP client's request timeout (the SDK default is 60 s) — a longer wait is cut off by the client while the server is still polling. On timeout the tool answers status "pending"; call it again with the same identifier.`),
|
|
36
|
+
}, async ({ id, timeout_seconds }) => {
|
|
37
|
+
try {
|
|
38
|
+
return await pollUntilTerminal(() => http.get(`/api/v1/accounts/${encodeURIComponent(id)}`), ['verified', 'expired'], timeout_seconds ?? WAIT_DEFAULT_SECONDS, `account session ${id}`);
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
if (e instanceof ApiError)
|
|
42
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
43
|
+
throw e;
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
tool('start_2fa_for_action', 'Start a 2FA challenge that grants the authenticated user permission to perform a sensitive action. The 2FA must complete on a channel DIFFERENT from the user\'s last login channel (the backend enforces this). On success a grant is stored keyed by the user id and action_type; middleware on the protected endpoint reads the grant and allows the mutation.\n\nDestructive action types (api_key_create, api_key_revoke, api_key_regenerate, api_key_view, account_delete, phone_remove, email_remove, revocation_bulk) are capped at 5min TTL and forced single-use by server policy. Configuration scopes (settings_write, profile_update, templates_write) allow up to 24h TTL and caller-chosen single_use — useful for agents making multiple settings mutations in one session.\n\nAgent usage: (1) Attempt the sensitive call; if you get `403 2fa_required` note the `action_type`. (2) Call start_2fa_for_action with that action_type and a channel different from the login channel. (3) Present the challenge: on telegram/whatsapp pass `deep_link` to render_auth_link; on sms show `sms_message` and the number to send it to; on email check the response first: with more than one verified email and no `email_id` given, it answers 200 with `requires_email_selection: true` and `available_emails` — NO session was started and nothing was sent, so ask the user which address and call again with `email_id` rather than telling them to open a mailbox. Never hand `qr_text` to a link renderer — it is the link already rendered as QR art. Print it verbatim inside a fenced code block only when a real terminal needs the QR. (4) Call wait_for_2fa until the session is verified. (5) Retry the original sensitive call.', {
|
|
47
|
+
action_type: z.enum([
|
|
48
|
+
'api_key_create', 'api_key_revoke', 'api_key_regenerate', 'api_key_view',
|
|
49
|
+
'phone_remove', 'email_remove',
|
|
50
|
+
'account_delete', 'revocation_bulk',
|
|
51
|
+
'settings_write', 'profile_update', 'templates_write',
|
|
52
|
+
]).describe('The sensitive action the 2FA grant will authorize. Destructive scopes (api_key_*, account_delete, phone_remove, email_remove, revocation_bulk) are capped at 5 min TTL + forced single-use. Configuration scopes (settings_write, profile_update, templates_write) allow up to 24h TTL with caller-chosen single_use. See config/twoFAPolicy.ts on the backend for the canonical policy.'),
|
|
53
|
+
channel: z.enum(['telegram', 'whatsapp', 'sms', 'email']).describe('Channel for the 2FA challenge — must differ from the user\'s last login channel'),
|
|
54
|
+
email_id: z.string().optional().describe('Optional: specific UserEmail id for email-channel 2FA'),
|
|
55
|
+
phone_id: z.string().optional().describe('Optional: specific UserPhone id for phone-channel 2FA'),
|
|
56
|
+
ttl_seconds: z.number().int().min(60).max(86400).optional().describe('Requested grant lifetime in seconds. Server caps to 300s for destructive action types, 86400s for configuration scopes. Defaults to 300 if omitted.'),
|
|
57
|
+
single_use: z.boolean().optional().describe('Whether the grant is consumed on first use. Server forces true for destructive action types. Defaults to true.'),
|
|
58
|
+
}, async (args) => {
|
|
59
|
+
try {
|
|
60
|
+
const result = await http.post('/api/v1/me/2fa/start', args);
|
|
61
|
+
return jsonResult(result);
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
if (e instanceof ApiError)
|
|
65
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
66
|
+
throw e;
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=accounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/tools/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../src/tools/api-keys.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../src/tools/api-keys.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA0BjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,QAqElE"}
|
package/dist/tools/api-keys.js
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { jsonResult, errorResult } from '../types.js';
|
|
3
3
|
import { ApiError } from '../http.js';
|
|
4
|
-
// Mirrors validApiKeyScopes
|
|
4
|
+
// Mirrors validApiKeyScopes — the canonical scope taxonomy in the backend's
|
|
5
|
+
// src/constants/apiKeyScopes.ts. This package is published to npm and cannot import
|
|
6
|
+
// backend src/, so it carries its own copy; the backend drift test
|
|
7
|
+
// src/__tests__/drift/api-key-scopes.test.ts fails CI if this list diverges.
|
|
5
8
|
const validScopes = [
|
|
6
9
|
'verifications:read', 'verifications:write', 'verifications:create', 'verifications:*',
|
|
7
10
|
'proofs:read', 'proofs:*',
|
|
11
|
+
'delegations:read', 'delegations:write', 'delegations:create', 'delegations:*',
|
|
12
|
+
'lookalike-watch:read', 'lookalike-watch:write', 'lookalike-watch:*',
|
|
8
13
|
'templates:read', 'templates:write', 'templates:*',
|
|
14
|
+
'authorizations:read', 'authorizations:write', 'authorizations:create', 'authorizations:*',
|
|
15
|
+
'hitl:read', 'hitl:write', 'hitl:create', 'hitl:*',
|
|
16
|
+
'confirmations:read', 'confirmations:write', 'confirmations:create', 'confirmations:*',
|
|
17
|
+
'circles:read', 'circles:write', 'circles:create', 'circles:*',
|
|
9
18
|
'profiles:read', 'profiles:write', 'profiles:*',
|
|
10
|
-
'projects:read', 'projects:write', 'projects:*',
|
|
11
19
|
'billing:read', 'billing:write', 'billing:*',
|
|
12
20
|
'settings:read', 'settings:write', 'settings:*',
|
|
13
21
|
'assets:read', 'assets:write', 'assets:*',
|
|
@@ -26,10 +34,11 @@ export function registerTools(tool, http) {
|
|
|
26
34
|
throw e;
|
|
27
35
|
}
|
|
28
36
|
});
|
|
29
|
-
tool('create_api_key', 'Create a new API key. The secret key value is returned ONLY in this response — store it securely. Note: the secret will be visible in the AI conversation context.
|
|
37
|
+
tool('create_api_key', 'Create a new API key. The secret key value is returned ONLY in this response — store it securely. Note: the secret will be visible in the AI conversation context. Optionally bind the key to a sub-account (project) via profile_id — outbound messages sent with the key are then branded as that project.\n\nAgent usage: This operation requires 2FA. Before calling, complete the 2FA flow: (1) call start_2fa with action_type "api_key_create" and the user\'s preferred channel, (2) tell the user a code was sent and wait for them to verify, (3) poll get_2fa_status until status is "verified", (4) then call create_api_key — the backend session will be elevated. If you get a 403, the 2FA session has expired — restart the flow.', {
|
|
30
38
|
name: z.string().min(1).max(100).optional().describe('Human-readable key name'),
|
|
31
39
|
environment: z.enum(['production', 'test']).optional().describe('Key environment (default: production)'),
|
|
32
40
|
scopes: z.array(z.enum(validScopes)).max(20).optional().describe('Permission scopes for the key'),
|
|
41
|
+
profile_id: z.string().optional().describe('Bind the new key to a sub-account (PublicProfile) project you own (24-hex id). Immutable after creation; omit for an unbound account-wide key.'),
|
|
33
42
|
}, async (args) => {
|
|
34
43
|
try {
|
|
35
44
|
const result = await http.post('/api/v1/me/api-keys', args);
|
|
@@ -41,7 +50,7 @@ export function registerTools(tool, http) {
|
|
|
41
50
|
throw e;
|
|
42
51
|
}
|
|
43
52
|
});
|
|
44
|
-
tool('revoke_api_key', 'Revoke an API key by ID. The key will immediately stop working. This action cannot be undone.', {
|
|
53
|
+
tool('revoke_api_key', 'Revoke an API key by ID. The key will immediately stop working. This action cannot be undone.\n\nAgent usage: This operation requires 2FA. Before calling, complete the 2FA flow: (1) call start_2fa with action_type "api_key_revoke", (2) wait for user to verify the code, (3) poll get_2fa_status until "verified", (4) then call revoke_api_key.', {
|
|
45
54
|
id: z.string().describe('API key ID to revoke'),
|
|
46
55
|
}, async ({ id }) => {
|
|
47
56
|
try {
|
|
@@ -54,7 +63,7 @@ export function registerTools(tool, http) {
|
|
|
54
63
|
throw e;
|
|
55
64
|
}
|
|
56
65
|
});
|
|
57
|
-
tool('regenerate_api_key', 'Regenerate an API key, issuing a new secret while keeping the same ID and settings. The old key stops working immediately. The new secret is returned ONLY in this response. Note: the secret will be visible in the AI conversation context.', {
|
|
66
|
+
tool('regenerate_api_key', 'Regenerate an API key, issuing a new secret while keeping the same ID and settings. The old key stops working immediately. The new secret is returned ONLY in this response. Note: the secret will be visible in the AI conversation context.\n\nAgent usage: This operation requires 2FA. Before calling, complete the 2FA flow: (1) call start_2fa with action_type "api_key_regenerate", (2) wait for user to verify the code, (3) poll get_2fa_status until "verified", (4) then call regenerate_api_key.', {
|
|
58
67
|
id: z.string().describe('API key ID to regenerate'),
|
|
59
68
|
}, async ({ id }) => {
|
|
60
69
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../src/tools/api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,
|
|
1
|
+
{"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../src/tools/api-keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-flows.d.ts","sourceRoot":"","sources":["../../src/tools/auth-flows.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,QAyClE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { jsonResult, errorResult, pollUntilTerminal, WAIT_DEFAULT_SECONDS } from '../types.js';
|
|
3
|
+
import { ApiError } from '../http.js';
|
|
4
|
+
export function registerTools(tool, http) {
|
|
5
|
+
tool('start_login', 'Start a login session by sending an authentication challenge to the user\'s chosen channel (Telegram, WhatsApp, SMS, or email). Returns a session ID and, FOR TELEGRAM AND WHATSAPP ONLY, deep_link, qr_code (base64 PNG) and qr_text (UTF-8 text QR for terminal display); on sms it returns sms_message with sms_dids instead, and on email nothing to display.\n\nAgent usage: (1) Call start_login with the desired channel and phone_number (for SMS) or email (for email). (2) Present the challenge, and WHICH FIELD depends on the channel. On telegram/whatsapp pass `deep_link` to render_auth_link, which prints the clickable link and a QR code; in a chat client the link is what the user acts on, since they are usually on the same machine. On sms `deep_link` is an EMPTY STRING and render_auth_link will reject it — show `sms_message` and let the user pick a number from `sms_dids`. `suggested_region` is always set, but the matching ENTRY in `sms_dids` may be missing (europe and israel appear only when a number is configured) or present with an empty `did`, so offer that region first only when `sms_dids[suggested_region]` exists and carries a number, and otherwise offer whatever the object does. On email there is no link either — check `email_sent` before telling the user to open their mail: on a delivery failure it is false and `email_error` says why, and waiting on an inbox nothing reached is the wrong next step. Never hand `qr_text` to a link renderer — it is the link already rendered as QR art, so print it verbatim inside a fenced code block or not at all, because its rows stop scanning the moment one wraps or a blank line lands between them. (3) Call wait_for_login with the returned session ID to poll until the user completes authentication. Terminal states: "verified" (login succeeded), "failed", "expired".', {
|
|
6
|
+
channel: z.enum(['telegram', 'whatsapp', 'sms', 'email']).describe('Authentication channel'),
|
|
7
|
+
phone_number: z.string().optional().describe('Phone number in E.164 format (required for SMS channel)'),
|
|
8
|
+
email: z.string().email().optional().describe('Email address (required for email channel)'),
|
|
9
|
+
}, async (args) => {
|
|
10
|
+
try {
|
|
11
|
+
const result = await http.post('/api/v1/auth/sessions', args);
|
|
12
|
+
return jsonResult(result);
|
|
13
|
+
}
|
|
14
|
+
catch (e) {
|
|
15
|
+
if (e instanceof ApiError)
|
|
16
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
17
|
+
throw e;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
tool('wait_for_login', 'Poll a login session until the user completes authentication. Uses exponential backoff (2s initial, 1.5x, 30s max) with jitter.\n\nAgent usage: Call this after start_login with the returned session ID. Terminal states: "verified" (login succeeded — this server keeps the session for this connection and signs your own account records with it: emails, phones, domains, API keys, 2FA, DNS credentials, verification requests, your public profile\'s username and proof list), "failed", "expired". A result with status "pending" means the wait ran out before the user finished — call this tool again with the same id.', {
|
|
21
|
+
id: z.string().describe('Auth session ID from start_login'),
|
|
22
|
+
timeout_seconds: z.number().int().min(1).max(600).optional().describe(`Maximum wait time in seconds (default: ${WAIT_DEFAULT_SECONDS}, max: 600). Keep it under your MCP client's request timeout (the SDK default is 60 s) — a longer wait is cut off by the client while the server is still polling. On timeout the tool answers status "pending"; call it again with the same identifier.`),
|
|
23
|
+
}, async ({ id, timeout_seconds }) => {
|
|
24
|
+
try {
|
|
25
|
+
return await pollUntilTerminal(() => http.get(`/api/v1/auth/sessions/${encodeURIComponent(id)}`), ['verified', 'failed', 'expired'], timeout_seconds ?? WAIT_DEFAULT_SECONDS, `login session ${id}`);
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
if (e instanceof ApiError)
|
|
29
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
30
|
+
throw e;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=auth-flows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-flows.js","sourceRoot":"","sources":["../../src/tools/auth-flows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,UAAU,aAAa,CAAC,IAAmB,EAAE,IAAgB;IACjE,IAAI,CACF,aAAa,EACb,myDAAmyD,EACnyD;QACE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAC5F,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;QACvG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;KAC5F,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;YAC9D,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;IAEF,IAAI,CACF,gBAAgB,EAChB,smBAAsmB,EACtmB;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC3D,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,oBAAoB,0PAA0P,CAAC;KAChY,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,OAAO,MAAM,iBAAiB,CAC5B,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAqC,EACrG,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,EACjC,eAAe,IAAI,oBAAoB,EACvC,iBAAiB,EAAE,EAAE,CACtB,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorizations.d.ts","sourceRoot":"","sources":["../../src/tools/authorizations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,QAiHlE"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { jsonResult, errorResult, BSUID_REGEX } from '../types.js';
|
|
3
|
+
import { ApiError } from '../http.js';
|
|
4
|
+
const authorizationChannelEnum = z.enum(['whatsapp', 'telegram', 'sms', 'email']);
|
|
5
|
+
const authorizationScopeEnum = z.enum(['confirmations']);
|
|
6
|
+
const authorizationStatusEnum = z.enum(['pending', 'active', 'expired', 'revoked', 'denied']);
|
|
7
|
+
export function registerTools(tool, http) {
|
|
8
|
+
tool('create_authorization', 'Create a new authorization request. Authorizations grant permission to send confirmations to a user via a specific channel. The user must approve the authorization before confirmations can be sent.', {
|
|
9
|
+
hitl_id: z.string().regex(/^[0-9a-fA-F]{24}$/).describe('HITL configuration ID to link this authorization to'),
|
|
10
|
+
recipient: z.string().min(1).max(255).describe('Channel-specific recipient identifier (chat_id for Telegram, phone/BSUID for WhatsApp)'),
|
|
11
|
+
phone: z.string().regex(/^\+[1-9]\d{1,14}$/).describe('Target phone number in E.164 format (e.g., +15551234567)'),
|
|
12
|
+
bsuid: z.string().regex(BSUID_REGEX).optional().describe('WhatsApp Business-Scoped User ID (alternative to phone for WhatsApp channel)'),
|
|
13
|
+
channel: authorizationChannelEnum.describe('Channel for sending confirmations'),
|
|
14
|
+
scope: authorizationScopeEnum.optional().describe('Authorization scope (default: confirmations)'),
|
|
15
|
+
business_name: z.string().min(1).max(200).describe('Business name displayed to user during authorization'),
|
|
16
|
+
business_profile_id: z.string().regex(/^[0-9a-fA-F]{24}$/).optional().describe('Public profile ID for branding'),
|
|
17
|
+
expires_in: z.number().int().positive().max(7776000).optional().describe('Expiry in seconds (max 90 days, default 90 days)'),
|
|
18
|
+
}, async (args) => {
|
|
19
|
+
try {
|
|
20
|
+
const result = await http.post('/api/v1/authorizations', args);
|
|
21
|
+
return jsonResult(result);
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
if (e instanceof ApiError)
|
|
25
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
26
|
+
throw e;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
tool('get_authorization', 'Get an authorization by ID. Returns the current state of the authorization including status and usage statistics.', {
|
|
30
|
+
id: z.string().describe('Authorization ID'),
|
|
31
|
+
}, async ({ id }) => {
|
|
32
|
+
try {
|
|
33
|
+
const result = await http.get(`/api/v1/authorizations/${encodeURIComponent(id)}`);
|
|
34
|
+
return jsonResult(result);
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
if (e instanceof ApiError)
|
|
38
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
39
|
+
throw e;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
tool('list_authorizations', 'List authorizations with optional filters. Returns paginated results.', {
|
|
43
|
+
status: authorizationStatusEnum.optional().describe('Filter by authorization status'),
|
|
44
|
+
phone: z.string().optional().describe('Filter by phone number'),
|
|
45
|
+
channel: authorizationChannelEnum.optional().describe('Filter by channel'),
|
|
46
|
+
page: z.number().int().positive().optional().describe('Page number'),
|
|
47
|
+
limit: z.number().int().min(1).max(100).optional().describe('Items per page'),
|
|
48
|
+
}, async (args) => {
|
|
49
|
+
try {
|
|
50
|
+
const query = {};
|
|
51
|
+
if (args.status !== undefined)
|
|
52
|
+
query.status = args.status;
|
|
53
|
+
if (args.phone !== undefined)
|
|
54
|
+
query.phone = args.phone;
|
|
55
|
+
if (args.channel !== undefined)
|
|
56
|
+
query.channel = args.channel;
|
|
57
|
+
if (args.page !== undefined)
|
|
58
|
+
query.page = args.page;
|
|
59
|
+
if (args.limit !== undefined)
|
|
60
|
+
query.limit = args.limit;
|
|
61
|
+
const result = await http.get('/api/v1/authorizations', query);
|
|
62
|
+
return jsonResult(result);
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
if (e instanceof ApiError)
|
|
66
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
67
|
+
throw e;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
tool('revoke_authorization', 'Revoke an active or pending authorization. Only authorizations with status "active" or "pending" can be revoked.', {
|
|
71
|
+
id: z.string().describe('Authorization ID to revoke'),
|
|
72
|
+
reason: z.string().min(1).max(500).optional().describe('Reason for revocation'),
|
|
73
|
+
}, async ({ id, reason }) => {
|
|
74
|
+
try {
|
|
75
|
+
const body = reason !== undefined ? { reason } : undefined;
|
|
76
|
+
const result = await http.del(`/api/v1/authorizations/${encodeURIComponent(id)}`, body);
|
|
77
|
+
return jsonResult(result);
|
|
78
|
+
}
|
|
79
|
+
catch (e) {
|
|
80
|
+
if (e instanceof ApiError)
|
|
81
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
82
|
+
throw e;
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
tool('export_authorizations', 'Export authorizations as CSV or JSON. Supports date range and status filtering. Maximum 10,000 records.', {
|
|
86
|
+
format: z.enum(['csv', 'json']).optional().describe('Export format (default: json)'),
|
|
87
|
+
from: z.string().optional().describe('Start date filter (ISO 8601)'),
|
|
88
|
+
to: z.string().optional().describe('End date filter (ISO 8601)'),
|
|
89
|
+
status: authorizationStatusEnum.optional().describe('Filter by status'),
|
|
90
|
+
}, async (args) => {
|
|
91
|
+
try {
|
|
92
|
+
const query = {};
|
|
93
|
+
if (args.format !== undefined)
|
|
94
|
+
query.format = args.format;
|
|
95
|
+
if (args.from !== undefined)
|
|
96
|
+
query.from = args.from;
|
|
97
|
+
if (args.to !== undefined)
|
|
98
|
+
query.to = args.to;
|
|
99
|
+
if (args.status !== undefined)
|
|
100
|
+
query.status = args.status;
|
|
101
|
+
const result = await http.get('/api/v1/authorizations/export', query);
|
|
102
|
+
return jsonResult(result);
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
if (e instanceof ApiError)
|
|
106
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
107
|
+
throw e;
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=authorizations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorizations.js","sourceRoot":"","sources":["../../src/tools/authorizations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circles.d.ts","sourceRoot":"","sources":["../../src/tools/circles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAgBjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,QAiQlE"}
|