@heyditto/cli 2.9.1 → 2.11.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 +54 -0
- package/dist/api.d.ts +251 -0
- package/dist/api.js +153 -0
- package/dist/api.js.map +1 -1
- package/dist/app-commands.d.ts +53 -0
- package/dist/app-commands.js +485 -0
- package/dist/app-commands.js.map +1 -0
- package/dist/cli.js +14 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +22 -1
- package/dist/commands.js +5 -5
- package/dist/commands.js.map +1 -1
- package/dist/org-commands.d.ts +52 -0
- package/dist/org-commands.js +511 -0
- package/dist/org-commands.js.map +1 -0
- package/dist/store.d.ts +9 -0
- package/dist/store.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -141,6 +141,11 @@ heyditto graphs sharing (--enable|--disable) [--title <t>] [--description <d>]
|
|
|
141
141
|
heyditto init [--name <name>] [--subscribe <@graph>]... [<@graph>...] [--json]
|
|
142
142
|
heyditto login [<key>] [--paste] [--stdin]
|
|
143
143
|
heyditto endpoints [--set-default <slug>] [--clear-default]
|
|
144
|
+
heyditto apps list [--company <id>]
|
|
145
|
+
heyditto apps create <name> [--gh-secret NAME --repo o/r | --gcp-secret NAME | …]
|
|
146
|
+
heyditto apps show|update|oidc|icon set|origins verify|secret rotate|consent set …
|
|
147
|
+
heyditto apps endpoints list|attach|billing|detach <app> [<endpoint>]
|
|
148
|
+
heyditto receipts [--leg ditto|byok|covered] [--app <app_id>] [--days <n>]
|
|
144
149
|
heyditto claude [options] [-- <claude args>]
|
|
145
150
|
heyditto codex [options] [-- <codex args>]
|
|
146
151
|
heyditto sessions [--json] [--all]
|
|
@@ -306,6 +311,55 @@ heyditto knowledge-graphs --output json
|
|
|
306
311
|
heyditto graph-sharing --enable --title "Support Graph" --description "Public support notes"
|
|
307
312
|
```
|
|
308
313
|
|
|
314
|
+
### `apps` — developer apps ("Sign in with Ditto")
|
|
315
|
+
|
|
316
|
+
Everything the developer console (developer.heyditto.ai) does for an app, from the
|
|
317
|
+
shell, so an agent can set an app up end to end. The client secret follows the same
|
|
318
|
+
rule as endpoint keys: it is **forwarded straight into a secret store** over that
|
|
319
|
+
store CLI's stdin and never printed.
|
|
320
|
+
|
|
321
|
+
```bash
|
|
322
|
+
heyditto apps create "DittoBench" --gh-secret DITTO_OIDC_CLIENT_SECRET --repo ditto-assistant/ditto-subnet
|
|
323
|
+
heyditto apps origins verify dittobench-3f9a https://dittobench.ai # serve the token, then:
|
|
324
|
+
heyditto apps origins verify dittobench-3f9a https://dittobench.ai --confirm
|
|
325
|
+
heyditto apps consent set dittobench-3f9a credits:spend "Pays for the inference your miner uses."
|
|
326
|
+
heyditto apps icon set dittobench-3f9a ./logo.png
|
|
327
|
+
heyditto apps oidc dittobench-3f9a --callback https://dittobench.ai/auth/ditto/callback >> .env
|
|
328
|
+
heyditto apps endpoints attach dittobench-3f9a screener --billing sponsor
|
|
329
|
+
heyditto apps endpoints attach dittobench-3f9a competition --billing user
|
|
330
|
+
heyditto endpoints keys create competition --gh-secret DITTO_ROUTER_KEY --repo ditto-assistant/ditto-subnet
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
- `create` mints the app and its secret. With a store flag the secret is stored and
|
|
334
|
+
never shown; without one it is minted but hidden — rotate it into a store later
|
|
335
|
+
with `apps secret rotate` (the previous secret stops working).
|
|
336
|
+
- `oidc` prints the non-secret OIDC configuration (`DITTO_OIDC_ISSUER`,
|
|
337
|
+
`DITTO_OIDC_CLIENT_ID`, authorization/token/userinfo/JWKS endpoints) as env lines
|
|
338
|
+
or `--output json`. `client_id` is the app id; redirect URIs must live on a
|
|
339
|
+
verified callback origin.
|
|
340
|
+
- `consent set <app> <scope> "<why>"` sets the app's own reason under each requested
|
|
341
|
+
permission on the consent screen; `consent show` renders the public consent
|
|
342
|
+
profile (`GET /api/v5/consent-profile/<app>`).
|
|
343
|
+
- `endpoints attach <app> <endpoint> --billing user|sponsor` makes a Router endpoint
|
|
344
|
+
app-owned: the app's users get inference through it (never keys or edits). `user`
|
|
345
|
+
bills the consenting user under their `credits:spend` grant to this app
|
|
346
|
+
(`X-Ditto-On-Behalf-Of: <ditto uid>` from your server, 402 when not authorized);
|
|
347
|
+
`sponsor` bills the endpoint owner and only records the user for attribution.
|
|
348
|
+
- `apps` commands use your first-party key against `/api/v5/admin/apps`; pass
|
|
349
|
+
`--company <id>` to act on an organization's apps.
|
|
350
|
+
|
|
351
|
+
### `receipts`
|
|
352
|
+
|
|
353
|
+
Your receipts for the last 30 days by billing leg (`ditto` = your balance, `byok` =
|
|
354
|
+
your own provider keys, no Ditto charge, `covered` = paid by Ditto) and by the app
|
|
355
|
+
that spent under your consent; sponsored app calls show up on the sponsor's account.
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
heyditto receipts
|
|
359
|
+
heyditto receipts --leg byok --days 7
|
|
360
|
+
heyditto receipts --app dittobench-3f9a --output json
|
|
361
|
+
```
|
|
362
|
+
|
|
309
363
|
### `status`
|
|
310
364
|
|
|
311
365
|
Print whether `DITTO_API_KEY` is set and the configured MCP endpoint resolves.
|
package/dist/api.d.ts
CHANGED
|
@@ -250,3 +250,254 @@ export interface ChatAgent {
|
|
|
250
250
|
connections?: AgentConnection[];
|
|
251
251
|
}
|
|
252
252
|
export declare function listChatAgents(): Promise<ChatAgent[]>;
|
|
253
|
+
/** A developer app as GET /api/v5/admin/apps returns it. */
|
|
254
|
+
export interface DeveloperApp {
|
|
255
|
+
appID: string;
|
|
256
|
+
name: string;
|
|
257
|
+
slug?: string;
|
|
258
|
+
kind?: string;
|
|
259
|
+
enabled: boolean;
|
|
260
|
+
archived: boolean;
|
|
261
|
+
createdAt: string;
|
|
262
|
+
/** Returned ONLY by create and rotate-secret; never on reads. */
|
|
263
|
+
appSecret?: string;
|
|
264
|
+
metadata?: {
|
|
265
|
+
description?: string;
|
|
266
|
+
landingURL?: string;
|
|
267
|
+
appURL?: string;
|
|
268
|
+
xURL?: string;
|
|
269
|
+
youtubeURL?: string;
|
|
270
|
+
instagramURL?: string;
|
|
271
|
+
linkedinURL?: string;
|
|
272
|
+
};
|
|
273
|
+
consentRationale?: Record<string, string>;
|
|
274
|
+
}
|
|
275
|
+
export interface AppEndpoint extends InferenceEndpoint {
|
|
276
|
+
appBilling: "user" | "sponsor";
|
|
277
|
+
}
|
|
278
|
+
export interface ConsentProfile {
|
|
279
|
+
appID: string;
|
|
280
|
+
name: string;
|
|
281
|
+
iconUrl?: string;
|
|
282
|
+
description?: string;
|
|
283
|
+
landingURL?: string;
|
|
284
|
+
appURL?: string;
|
|
285
|
+
ownerName?: string;
|
|
286
|
+
enabled: boolean;
|
|
287
|
+
rationale: Record<string, string>;
|
|
288
|
+
endpoints: {
|
|
289
|
+
slug: string;
|
|
290
|
+
name: string;
|
|
291
|
+
model?: string;
|
|
292
|
+
billing?: string;
|
|
293
|
+
}[];
|
|
294
|
+
callbackOrigins: string[];
|
|
295
|
+
}
|
|
296
|
+
export declare function listApps(companyId?: string): Promise<DeveloperApp[]>;
|
|
297
|
+
/** Resolves an app by app id, slug or (unique) name. */
|
|
298
|
+
export declare function findApp(ref: string, companyId?: string): Promise<DeveloperApp>;
|
|
299
|
+
export declare function createApp(name: string, companyId?: string): Promise<DeveloperApp>;
|
|
300
|
+
export interface AppPatch {
|
|
301
|
+
name?: string;
|
|
302
|
+
enabled?: boolean;
|
|
303
|
+
archived?: boolean;
|
|
304
|
+
description?: string;
|
|
305
|
+
landingURL?: string;
|
|
306
|
+
appURL?: string;
|
|
307
|
+
xURL?: string;
|
|
308
|
+
youtubeURL?: string;
|
|
309
|
+
instagramURL?: string;
|
|
310
|
+
linkedinURL?: string;
|
|
311
|
+
consentRationale?: Record<string, string>;
|
|
312
|
+
}
|
|
313
|
+
export declare function updateApp(appId: string, patch: AppPatch): Promise<DeveloperApp>;
|
|
314
|
+
/** Mints a fresh app secret. The response is the ONLY copy. */
|
|
315
|
+
export declare function rotateAppSecret(appId: string): Promise<{
|
|
316
|
+
appID: string;
|
|
317
|
+
appSecret: string;
|
|
318
|
+
}>;
|
|
319
|
+
export interface OriginChallenge {
|
|
320
|
+
origin: string;
|
|
321
|
+
token?: string;
|
|
322
|
+
wellKnown?: string;
|
|
323
|
+
verified: boolean;
|
|
324
|
+
callbackOrigins?: string[];
|
|
325
|
+
}
|
|
326
|
+
export declare function verifyCallbackOrigin(appId: string, origin: string, confirm: boolean): Promise<OriginChallenge>;
|
|
327
|
+
export declare function uploadAppIcon(appId: string, contentType: string, dataBase64: string): Promise<{
|
|
328
|
+
iconURL?: string;
|
|
329
|
+
iconUrl?: string;
|
|
330
|
+
}>;
|
|
331
|
+
export declare function listAppEndpoints(appId: string): Promise<{
|
|
332
|
+
endpoints: AppEndpoint[];
|
|
333
|
+
baseUrl: string;
|
|
334
|
+
onBehalfOfHeader: string;
|
|
335
|
+
}>;
|
|
336
|
+
export declare function attachAppEndpoint(appId: string, endpointId: string, billing: "user" | "sponsor"): Promise<AppEndpoint>;
|
|
337
|
+
export declare function setAppEndpointBilling(appId: string, endpointId: string, billing: "user" | "sponsor"): Promise<AppEndpoint>;
|
|
338
|
+
export declare function detachAppEndpoint(appId: string, endpointId: string): Promise<void>;
|
|
339
|
+
/** Public: what the consent screen shows for an app. */
|
|
340
|
+
export declare function getConsentProfile(appId: string): Promise<ConsentProfile>;
|
|
341
|
+
export interface Receipt {
|
|
342
|
+
id: number;
|
|
343
|
+
timestamp: string;
|
|
344
|
+
leg: string;
|
|
345
|
+
serviceName?: string;
|
|
346
|
+
appID?: string;
|
|
347
|
+
model?: string;
|
|
348
|
+
provider?: string;
|
|
349
|
+
billing?: string;
|
|
350
|
+
dittoTokens: number;
|
|
351
|
+
estimatedTokens: number;
|
|
352
|
+
inputTokens: number;
|
|
353
|
+
outputTokens: number;
|
|
354
|
+
totalTokens: number;
|
|
355
|
+
}
|
|
356
|
+
export interface ReceiptSummaryLine {
|
|
357
|
+
leg: string;
|
|
358
|
+
appID?: string;
|
|
359
|
+
appName?: string;
|
|
360
|
+
calls: number;
|
|
361
|
+
dittoTokens: number;
|
|
362
|
+
estimatedTokens: number;
|
|
363
|
+
}
|
|
364
|
+
export interface ReceiptsResponse {
|
|
365
|
+
since?: string;
|
|
366
|
+
receipts: Receipt[];
|
|
367
|
+
summary: ReceiptSummaryLine[];
|
|
368
|
+
}
|
|
369
|
+
export declare function listReceipts(input: {
|
|
370
|
+
leg?: string;
|
|
371
|
+
app?: string;
|
|
372
|
+
days?: number;
|
|
373
|
+
limit?: number;
|
|
374
|
+
}): Promise<ReceiptsResponse>;
|
|
375
|
+
export interface Company {
|
|
376
|
+
id: string;
|
|
377
|
+
slug: string;
|
|
378
|
+
name: string;
|
|
379
|
+
kind: string;
|
|
380
|
+
/** The caller's role: owner, admin, member or viewer. */
|
|
381
|
+
role: string;
|
|
382
|
+
}
|
|
383
|
+
export declare function listCompanies(): Promise<Company[]>;
|
|
384
|
+
/**
|
|
385
|
+
* Resolve a slug, id or `@handle` to one organization the caller belongs to.
|
|
386
|
+
*
|
|
387
|
+
* Matching happens here rather than server-side because the error is much
|
|
388
|
+
* better: naming the organizations you ARE in beats a 404 that leaves you
|
|
389
|
+
* guessing whether you typed it wrong or were never a member.
|
|
390
|
+
*/
|
|
391
|
+
export declare function resolveCompany(wanted: string): Promise<Company>;
|
|
392
|
+
export interface MCPConnectionConfig {
|
|
393
|
+
url: string;
|
|
394
|
+
authType: string;
|
|
395
|
+
/** Names only. Values are stored encrypted and never returned. */
|
|
396
|
+
headerNames?: string[];
|
|
397
|
+
}
|
|
398
|
+
export interface MCPConnection {
|
|
399
|
+
id: string;
|
|
400
|
+
companyId: string;
|
|
401
|
+
name: string;
|
|
402
|
+
description?: string;
|
|
403
|
+
transport: string;
|
|
404
|
+
/** The stable tool namespace: tools dispatch as `<prefix>__<tool>`. */
|
|
405
|
+
prefix: string;
|
|
406
|
+
connectedByUid?: string;
|
|
407
|
+
/** "not_connected" | "connected" | "expired" for OAuth; "" otherwise. */
|
|
408
|
+
oauthStatus?: string;
|
|
409
|
+
enabled: boolean;
|
|
410
|
+
createdAt?: string;
|
|
411
|
+
updatedAt?: string;
|
|
412
|
+
lastUsedAt?: string | null;
|
|
413
|
+
config: MCPConnectionConfig;
|
|
414
|
+
}
|
|
415
|
+
export interface MCPConnectionList {
|
|
416
|
+
servers: MCPConnection[];
|
|
417
|
+
canManage: boolean;
|
|
418
|
+
}
|
|
419
|
+
export interface MCPConnectionInput {
|
|
420
|
+
name?: string;
|
|
421
|
+
description?: string;
|
|
422
|
+
transport?: string;
|
|
423
|
+
enabled?: boolean;
|
|
424
|
+
config?: {
|
|
425
|
+
url?: string;
|
|
426
|
+
authType?: string;
|
|
427
|
+
headers?: Record<string, string>;
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
export declare function listMCPConnections(companyId: string): Promise<MCPConnectionList>;
|
|
431
|
+
export declare function createMCPConnection(companyId: string, input: MCPConnectionInput): Promise<MCPConnection>;
|
|
432
|
+
export declare function updateMCPConnection(companyId: string, serverId: string, input: MCPConnectionInput): Promise<MCPConnection>;
|
|
433
|
+
export declare function deleteMCPConnection(companyId: string, serverId: string): Promise<void>;
|
|
434
|
+
export declare function startMCPOAuth(serverId: string): Promise<string>;
|
|
435
|
+
export interface EndpointTool {
|
|
436
|
+
name: string;
|
|
437
|
+
title?: string;
|
|
438
|
+
description?: string;
|
|
439
|
+
kind?: string;
|
|
440
|
+
group?: string;
|
|
441
|
+
enabled?: boolean;
|
|
442
|
+
requiresApproval?: boolean;
|
|
443
|
+
mcpServerId?: string;
|
|
444
|
+
tier?: string;
|
|
445
|
+
tierSource?: string;
|
|
446
|
+
}
|
|
447
|
+
export interface EndpointToolCatalog {
|
|
448
|
+
tools: EndpointTool[];
|
|
449
|
+
selected: string[];
|
|
450
|
+
toolApprovalMode: string;
|
|
451
|
+
autoApproveTools: string[];
|
|
452
|
+
}
|
|
453
|
+
/** One endpoint's catalog, resolved from the ENDPOINT rather than the caller. */
|
|
454
|
+
export declare function listEndpointTools(endpointId: string): Promise<EndpointToolCatalog>;
|
|
455
|
+
export interface ToolApproval {
|
|
456
|
+
id: string;
|
|
457
|
+
status: string;
|
|
458
|
+
surface?: string;
|
|
459
|
+
endpointId?: string;
|
|
460
|
+
companyId?: string;
|
|
461
|
+
sessionId?: string;
|
|
462
|
+
/** Every call one inbound request parked shares this. */
|
|
463
|
+
requestId: string;
|
|
464
|
+
seq: number;
|
|
465
|
+
toolName: string;
|
|
466
|
+
toolTitle?: string;
|
|
467
|
+
mcpServerId?: string;
|
|
468
|
+
summary?: string;
|
|
469
|
+
tier?: string;
|
|
470
|
+
/** "annotations" (the server declared it) | "catalog" | "heuristic". */
|
|
471
|
+
tierSource?: string;
|
|
472
|
+
arguments?: unknown;
|
|
473
|
+
result?: unknown;
|
|
474
|
+
error?: string;
|
|
475
|
+
createdAt?: string;
|
|
476
|
+
expiresAt?: string;
|
|
477
|
+
executedAt?: string | null;
|
|
478
|
+
}
|
|
479
|
+
export interface ToolApprovalList {
|
|
480
|
+
approvals: ToolApproval[];
|
|
481
|
+
/**
|
|
482
|
+
* Whether the caller may decide what is listed.
|
|
483
|
+
*
|
|
484
|
+
* Only ever false for `--endpoint` on an organization endpoint: any active
|
|
485
|
+
* member may READ that queue, while deciding is an owner/admin action. Worth
|
|
486
|
+
* reporting rather than letting someone read a row and then take a 404 from
|
|
487
|
+
* `approvals allow`.
|
|
488
|
+
*/
|
|
489
|
+
canDecide: boolean;
|
|
490
|
+
}
|
|
491
|
+
export declare function listToolApprovals(opts?: {
|
|
492
|
+
companyId?: string;
|
|
493
|
+
endpointId?: string;
|
|
494
|
+
}): Promise<ToolApprovalList>;
|
|
495
|
+
/**
|
|
496
|
+
* Run one held tool now.
|
|
497
|
+
*
|
|
498
|
+
* It does NOT resume the run that parked it: that request is over, and on a
|
|
499
|
+
* Code Mode endpoint the sandboxed script and its workspace are gone. The
|
|
500
|
+
* result is recorded on the approval.
|
|
501
|
+
*/
|
|
502
|
+
export declare function approveToolApproval(id: string): Promise<ToolApproval>;
|
|
503
|
+
export declare function rejectToolApproval(id: string): Promise<ToolApproval>;
|
package/dist/api.js
CHANGED
|
@@ -205,4 +205,157 @@ export async function listChatAgents() {
|
|
|
205
205
|
const out = await apiFetch("/api/v5/chat-agents");
|
|
206
206
|
return out.agents ?? [];
|
|
207
207
|
}
|
|
208
|
+
const APPS = "/api/v5/admin/apps";
|
|
209
|
+
export async function listApps(companyId) {
|
|
210
|
+
const query = companyId ? `?company=${encodeURIComponent(companyId)}` : "";
|
|
211
|
+
const out = await apiFetch(`${APPS}${query}`);
|
|
212
|
+
return out.apps ?? [];
|
|
213
|
+
}
|
|
214
|
+
/** Resolves an app by app id, slug or (unique) name. */
|
|
215
|
+
export async function findApp(ref, companyId) {
|
|
216
|
+
const apps = await listApps(companyId);
|
|
217
|
+
const wanted = ref.trim().toLowerCase();
|
|
218
|
+
const matches = apps.filter((a) => a.appID.toLowerCase() === wanted || (a.slug ?? "").toLowerCase() === wanted || a.name.toLowerCase() === wanted);
|
|
219
|
+
if (matches.length === 1)
|
|
220
|
+
return matches[0];
|
|
221
|
+
if (matches.length === 0) {
|
|
222
|
+
const known = apps.map((a) => a.appID).join(", ") || "(none)";
|
|
223
|
+
throw new Error(`no app "${ref}". Known apps: ${known}`);
|
|
224
|
+
}
|
|
225
|
+
throw new Error(`"${ref}" matches several apps (${matches.map((a) => a.appID).join(", ")}); pass the app id`);
|
|
226
|
+
}
|
|
227
|
+
export function createApp(name, companyId) {
|
|
228
|
+
return apiFetch(APPS, { method: "POST", body: { name, ...(companyId ? { companyId } : {}) } });
|
|
229
|
+
}
|
|
230
|
+
export function updateApp(appId, patch) {
|
|
231
|
+
return apiFetch(`${APPS}/${encodeURIComponent(appId)}`, { method: "PATCH", body: patch });
|
|
232
|
+
}
|
|
233
|
+
/** Mints a fresh app secret. The response is the ONLY copy. */
|
|
234
|
+
export function rotateAppSecret(appId) {
|
|
235
|
+
return apiFetch(`${APPS}/${encodeURIComponent(appId)}/rotate-secret`, { method: "POST", body: {} });
|
|
236
|
+
}
|
|
237
|
+
export function verifyCallbackOrigin(appId, origin, confirm) {
|
|
238
|
+
return apiFetch(`${APPS}/${encodeURIComponent(appId)}/verify-callback-origin`, {
|
|
239
|
+
method: "POST",
|
|
240
|
+
body: { origin, confirm },
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
export function uploadAppIcon(appId, contentType, dataBase64) {
|
|
244
|
+
return apiFetch(`${APPS}/${encodeURIComponent(appId)}/icon`, { method: "POST", body: { contentType, dataBase64 } });
|
|
245
|
+
}
|
|
246
|
+
export async function listAppEndpoints(appId) {
|
|
247
|
+
const out = await apiFetch(`${APPS}/${encodeURIComponent(appId)}/endpoints`);
|
|
248
|
+
return { endpoints: out.endpoints ?? [], baseUrl: out.baseUrl ?? "", onBehalfOfHeader: out.onBehalfOfHeader ?? "X-Ditto-On-Behalf-Of" };
|
|
249
|
+
}
|
|
250
|
+
export function attachAppEndpoint(appId, endpointId, billing) {
|
|
251
|
+
return apiFetch(`${APPS}/${encodeURIComponent(appId)}/endpoints`, { method: "POST", body: { endpointId, billing } });
|
|
252
|
+
}
|
|
253
|
+
export function setAppEndpointBilling(appId, endpointId, billing) {
|
|
254
|
+
return apiFetch(`${APPS}/${encodeURIComponent(appId)}/endpoints/${encodeURIComponent(endpointId)}`, {
|
|
255
|
+
method: "PATCH",
|
|
256
|
+
body: { billing },
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
export function detachAppEndpoint(appId, endpointId) {
|
|
260
|
+
return apiFetch(`${APPS}/${encodeURIComponent(appId)}/endpoints/${encodeURIComponent(endpointId)}`, { method: "DELETE" });
|
|
261
|
+
}
|
|
262
|
+
/** Public: what the consent screen shows for an app. */
|
|
263
|
+
export function getConsentProfile(appId) {
|
|
264
|
+
return apiFetch(`/api/v5/consent-profile/${encodeURIComponent(appId)}`, { auth: false });
|
|
265
|
+
}
|
|
266
|
+
export function listReceipts(input) {
|
|
267
|
+
const params = new URLSearchParams();
|
|
268
|
+
if (input.leg)
|
|
269
|
+
params.set("leg", input.leg);
|
|
270
|
+
if (input.app)
|
|
271
|
+
params.set("app", input.app);
|
|
272
|
+
if (input.days)
|
|
273
|
+
params.set("days", String(input.days));
|
|
274
|
+
if (input.limit)
|
|
275
|
+
params.set("limit", String(input.limit));
|
|
276
|
+
const qs = params.toString();
|
|
277
|
+
return apiFetch(`/api/v5/me/receipts${qs ? `?${qs}` : ""}`);
|
|
278
|
+
}
|
|
279
|
+
export async function listCompanies() {
|
|
280
|
+
const out = await apiFetch("/api/v5/companies");
|
|
281
|
+
return out.companies ?? [];
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Resolve a slug, id or `@handle` to one organization the caller belongs to.
|
|
285
|
+
*
|
|
286
|
+
* Matching happens here rather than server-side because the error is much
|
|
287
|
+
* better: naming the organizations you ARE in beats a 404 that leaves you
|
|
288
|
+
* guessing whether you typed it wrong or were never a member.
|
|
289
|
+
*/
|
|
290
|
+
export async function resolveCompany(wanted) {
|
|
291
|
+
const needle = wanted.trim().replace(/^@/, "").toLowerCase();
|
|
292
|
+
if (!needle)
|
|
293
|
+
throw new Error("--org needs an organization slug or id");
|
|
294
|
+
const companies = await listCompanies();
|
|
295
|
+
const match = companies.find((c) => c.id.toLowerCase() === needle || c.slug.toLowerCase() === needle);
|
|
296
|
+
if (match)
|
|
297
|
+
return match;
|
|
298
|
+
const known = companies.map((c) => c.slug).join(", ");
|
|
299
|
+
throw new Error(`you are not a member of an organization called "${wanted}".` +
|
|
300
|
+
(known ? `\n\nOrganizations you belong to: ${known}` : "\n\nYou are not in any organization."));
|
|
301
|
+
}
|
|
302
|
+
export async function listMCPConnections(companyId) {
|
|
303
|
+
const out = await apiFetch(`/api/v5/companies/${encodeURIComponent(companyId)}/mcp-servers`);
|
|
304
|
+
return { servers: out.servers ?? [], canManage: out.canManage ?? false };
|
|
305
|
+
}
|
|
306
|
+
export async function createMCPConnection(companyId, input) {
|
|
307
|
+
return apiFetch(`/api/v5/companies/${encodeURIComponent(companyId)}/mcp-servers`, {
|
|
308
|
+
method: "POST",
|
|
309
|
+
body: input,
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
export async function updateMCPConnection(companyId, serverId, input) {
|
|
313
|
+
return apiFetch(`/api/v5/companies/${encodeURIComponent(companyId)}/mcp-servers/${encodeURIComponent(serverId)}`, { method: "PATCH", body: input });
|
|
314
|
+
}
|
|
315
|
+
export async function deleteMCPConnection(companyId, serverId) {
|
|
316
|
+
await apiFetch(`/api/v5/companies/${encodeURIComponent(companyId)}/mcp-servers/${encodeURIComponent(serverId)}`, { method: "DELETE" });
|
|
317
|
+
}
|
|
318
|
+
export async function startMCPOAuth(serverId) {
|
|
319
|
+
const out = await apiFetch(`/api/v2/mcp/servers/${encodeURIComponent(serverId)}/oauth/start`, { method: "POST" });
|
|
320
|
+
return out.authorization_url ?? "";
|
|
321
|
+
}
|
|
322
|
+
/** One endpoint's catalog, resolved from the ENDPOINT rather than the caller. */
|
|
323
|
+
export async function listEndpointTools(endpointId) {
|
|
324
|
+
const out = await apiFetch(`/api/v5/inference/endpoints/${encodeURIComponent(endpointId)}/tools`);
|
|
325
|
+
return {
|
|
326
|
+
tools: out.tools ?? [],
|
|
327
|
+
selected: out.selected ?? [],
|
|
328
|
+
toolApprovalMode: out.toolApprovalMode ?? "off",
|
|
329
|
+
autoApproveTools: out.autoApproveTools ?? [],
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
export async function listToolApprovals(opts = {}) {
|
|
333
|
+
const params = new URLSearchParams();
|
|
334
|
+
if (opts.companyId)
|
|
335
|
+
params.set("company", opts.companyId);
|
|
336
|
+
if (opts.endpointId)
|
|
337
|
+
params.set("endpoint", opts.endpointId);
|
|
338
|
+
const query = params.toString();
|
|
339
|
+
const out = await apiFetch(`/api/v5/tool-approvals${query ? `?${query}` : ""}`);
|
|
340
|
+
// A backend that predates the field only ever served queues the caller could
|
|
341
|
+
// act on, so absent means yes.
|
|
342
|
+
return { approvals: out.approvals ?? [], canDecide: out.canDecide ?? true };
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Run one held tool now.
|
|
346
|
+
*
|
|
347
|
+
* It does NOT resume the run that parked it: that request is over, and on a
|
|
348
|
+
* Code Mode endpoint the sandboxed script and its workspace are gone. The
|
|
349
|
+
* result is recorded on the approval.
|
|
350
|
+
*/
|
|
351
|
+
export async function approveToolApproval(id) {
|
|
352
|
+
return apiFetch(`/api/v5/tool-approvals/${encodeURIComponent(id)}/approve`, {
|
|
353
|
+
method: "POST",
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
export async function rejectToolApproval(id) {
|
|
357
|
+
return apiFetch(`/api/v5/tool-approvals/${encodeURIComponent(id)}/reject`, {
|
|
358
|
+
method: "POST",
|
|
359
|
+
});
|
|
360
|
+
}
|
|
208
361
|
//# sourceMappingURL=api.js.map
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Command, Option } from "commander";
|
|
2
|
+
import { type DeveloperApp } from "./api.js";
|
|
3
|
+
import { type KeysCreateOptions } from "./commands.js";
|
|
4
|
+
interface ScopeOptions {
|
|
5
|
+
output?: string;
|
|
6
|
+
company?: string;
|
|
7
|
+
}
|
|
8
|
+
/** OIDC/OAuth values a relying app needs; none of them are secret. */
|
|
9
|
+
export declare function oidcConfig(app: DeveloperApp, base?: string): Record<string, string>;
|
|
10
|
+
/** Renders {KEY: value} as KEY=value lines (values quoted only when needed). */
|
|
11
|
+
export declare function envLines(values: Record<string, string>): string;
|
|
12
|
+
export declare function cmdAppsList(options: ScopeOptions): Promise<void>;
|
|
13
|
+
export declare function cmdAppsCreate(name: string, options: KeysCreateOptions & ScopeOptions): Promise<void>;
|
|
14
|
+
export declare function cmdAppsShow(ref: string, options: ScopeOptions): Promise<void>;
|
|
15
|
+
export declare function cmdAppsUpdate(ref: string, options: ScopeOptions & {
|
|
16
|
+
name?: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
landingUrl?: string;
|
|
19
|
+
appUrl?: string;
|
|
20
|
+
enable?: boolean;
|
|
21
|
+
disable?: boolean;
|
|
22
|
+
archive?: boolean;
|
|
23
|
+
restore?: boolean;
|
|
24
|
+
}): Promise<void>;
|
|
25
|
+
export declare function cmdAppsConsentShow(ref: string, options: ScopeOptions): Promise<void>;
|
|
26
|
+
export declare function cmdAppsConsentSet(ref: string, scope: string, why: string | undefined, options: ScopeOptions & {
|
|
27
|
+
clear?: boolean;
|
|
28
|
+
}): Promise<void>;
|
|
29
|
+
export declare function cmdAppsIconSet(ref: string, file: string, options: ScopeOptions): Promise<void>;
|
|
30
|
+
export declare function cmdAppsOriginsVerify(ref: string, origin: string, options: ScopeOptions & {
|
|
31
|
+
confirm?: boolean;
|
|
32
|
+
}): Promise<void>;
|
|
33
|
+
export declare function cmdAppsSecretRotate(ref: string, options: KeysCreateOptions & ScopeOptions): Promise<void>;
|
|
34
|
+
export declare function cmdAppsOidc(ref: string, options: ScopeOptions & {
|
|
35
|
+
callback?: string;
|
|
36
|
+
}): Promise<void>;
|
|
37
|
+
export declare function cmdAppsEndpointsList(ref: string, options: ScopeOptions): Promise<void>;
|
|
38
|
+
export declare function cmdAppsEndpointsAttach(ref: string, endpointRef: string, options: ScopeOptions & {
|
|
39
|
+
billing?: string;
|
|
40
|
+
}): Promise<void>;
|
|
41
|
+
export declare function cmdAppsEndpointsBilling(ref: string, endpointRef: string, billing: string, options: ScopeOptions): Promise<void>;
|
|
42
|
+
export declare function cmdAppsEndpointsDetach(ref: string, endpointRef: string, options: ScopeOptions & {
|
|
43
|
+
yes?: boolean;
|
|
44
|
+
}): Promise<void>;
|
|
45
|
+
export declare function cmdReceipts(options: {
|
|
46
|
+
output?: string;
|
|
47
|
+
leg?: string;
|
|
48
|
+
app?: string;
|
|
49
|
+
days?: string;
|
|
50
|
+
limit?: string;
|
|
51
|
+
}): Promise<void>;
|
|
52
|
+
export declare function registerAppCommands(program: Command, addExamples: (command: Command, examples: string) => Command, outputOption: () => Option): void;
|
|
53
|
+
export {};
|