@heyditto/cli 2.10.0 → 2.12.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.
Files changed (53) hide show
  1. package/README.md +74 -0
  2. package/dist/agents/launch.d.ts +11 -0
  3. package/dist/agents/launch.js +207 -9
  4. package/dist/agents/launch.js.map +1 -1
  5. package/dist/api.d.ts +129 -0
  6. package/dist/api.js +82 -0
  7. package/dist/api.js.map +1 -1
  8. package/dist/cli.js +14 -0
  9. package/dist/cli.js.map +1 -1
  10. package/dist/commands.js +5 -1
  11. package/dist/commands.js.map +1 -1
  12. package/dist/org-commands.d.ts +52 -0
  13. package/dist/org-commands.js +511 -0
  14. package/dist/org-commands.js.map +1 -0
  15. package/dist/remote/attachments.d.ts +22 -0
  16. package/dist/remote/attachments.js +0 -0
  17. package/dist/remote/attachments.js.map +1 -0
  18. package/dist/remote/catalog.d.ts +18 -0
  19. package/dist/remote/catalog.js +309 -0
  20. package/dist/remote/catalog.js.map +1 -0
  21. package/dist/remote/controller.d.ts +76 -0
  22. package/dist/remote/controller.js +352 -0
  23. package/dist/remote/controller.js.map +1 -0
  24. package/dist/remote/fork-command.d.ts +8 -0
  25. package/dist/remote/fork-command.js +50 -0
  26. package/dist/remote/fork-command.js.map +1 -0
  27. package/dist/remote/fork.d.ts +22 -0
  28. package/dist/remote/fork.js +113 -0
  29. package/dist/remote/fork.js.map +1 -0
  30. package/dist/remote/headless.d.ts +30 -0
  31. package/dist/remote/headless.js +75 -0
  32. package/dist/remote/headless.js.map +1 -0
  33. package/dist/remote/hook.d.ts +2 -0
  34. package/dist/remote/hook.js +69 -0
  35. package/dist/remote/hook.js.map +1 -0
  36. package/dist/remote/hooks.d.ts +30 -0
  37. package/dist/remote/hooks.js +95 -0
  38. package/dist/remote/hooks.js.map +1 -0
  39. package/dist/remote/host.d.ts +63 -0
  40. package/dist/remote/host.js +240 -0
  41. package/dist/remote/host.js.map +1 -0
  42. package/dist/remote/protocol.d.ts +163 -0
  43. package/dist/remote/protocol.js +11 -0
  44. package/dist/remote/protocol.js.map +1 -0
  45. package/dist/remote/pty.d.ts +56 -0
  46. package/dist/remote/pty.js +100 -0
  47. package/dist/remote/pty.js.map +1 -0
  48. package/dist/store.d.ts +11 -0
  49. package/dist/store.js.map +1 -1
  50. package/dist/teleport/commands.d.ts +6 -0
  51. package/dist/teleport/commands.js +11 -0
  52. package/dist/teleport/commands.js.map +1 -1
  53. package/package.json +9 -2
package/README.md CHANGED
@@ -615,6 +615,80 @@ List your Ditto agents (`GET /api/v5/chat-agents`): id, kind (`main`, `chat`,
615
615
  `inference_endpoint`, `mcp`, `connector`), name, thread count, last activity and
616
616
  the live connections (API keys, OAuth grants, endpoints) writing into each.
617
617
 
618
+ ## Remote Control
619
+
620
+ Every `heyditto claude` / `heyditto codex` session is reachable from the Ditto
621
+ app by default: open the session's thread on your phone and the chat input
622
+ becomes the terminal's input. Text and attachments you send there are typed
623
+ into the harness on your machine; the harness's own slash commands, skills and
624
+ permission prompts work from the app too.
625
+
626
+ ```bash
627
+ heyditto claude # remote-controllable (the default)
628
+ heyditto claude --no-remote-control # local only: never talks to the host bridge
629
+ heyditto codex --headless # no terminal UI; each app prompt runs one turn until Ctrl+C
630
+ heyditto claude --headless -p "start" # run one turn now, then keep taking turns from the app
631
+ ```
632
+
633
+ How it works:
634
+
635
+ - The CLI opens one WebSocket to `/api/v5/hosts/ws` (host bridge protocol
636
+ v1.1), announces the session (`session.announce`) and its command catalog
637
+ (`session.commands`), and reconnects with backoff when the backend goes
638
+ away. The host id the backend assigns is kept in the CLI config so a
639
+ machine stays the same device across launches. A backend without the bridge,
640
+ or no network, never blocks the harness: remote control just stays off.
641
+ - **TUI mode** runs the harness in a pseudo-terminal the CLI owns (via the
642
+ optional `node-pty` dependency) and mirrors it to your terminal. A prompt
643
+ from the app is pasted into the harness's input box (bracketed paste) and
644
+ submitted; `turn.interrupt` sends Esc (Claude Code) or Ctrl+C (Codex).
645
+ Without `node-pty`, or outside a terminal, the launch falls back to a plain
646
+ spawn and says why remote control is off.
647
+ - **Turn boundaries come from the harnesses, not from parsing the screen.**
648
+ Claude Code is launched with `--settings` hooks (`UserPromptSubmit`, `Stop`,
649
+ `Notification`, `PreToolUse` for `AskUserQuestion`); Codex with
650
+ `-c notify=[…]`. Each hook runs `dist/remote/hook.js`, which writes one JSON
651
+ line to a Unix socket the CLI listens on. `Stop` / `agent-turn-complete`
652
+ mark `turn.finished`; if a harness never reports (older builds, builtin
653
+ commands that run no model turn), a quiet-screen fallback ends the turn.
654
+ - **Attachments** are downloaded to `<cwd>/.tmp/ditto/attachments/<turnId>/`
655
+ (size and sha256 verified, mode 0600). `.tmp/` is added to the clone's
656
+ `.git/info/exclude`, never to `.gitignore`. The prompt the harness sees is
657
+ your text followed by `Attached files:` and the relative paths.
658
+ - **Commands** (`turn.deliver {kind: "command"}`): the catalog lists Claude
659
+ Code builtins, `.claude/commands/**` and `~/.claude/commands/**`, skills from
660
+ `.claude/skills` and `~/.claude/skills`, installed plugin skills; Codex
661
+ builtins, `~/.codex/prompts/*.md` (as `/prompts:<name>`) and skills (as
662
+ `$<name>`). It is re-sent when those directories change. TUI mode types the
663
+ command; headless mode runs it through `claude -p "/name args" --resume` or
664
+ `codex exec resume --last`, and answers `turn.finished {unsupported}` for
665
+ TUI-only builtins.
666
+ - **Prompts** (`prompt.request` / `prompt.answer`): a Claude Code permission
667
+ dialog or `AskUserQuestion` is forwarded to the app with its options; the
668
+ answer is typed back as the option's hotkey (or as text). Codex exposes no
669
+ hook for its approval dialogs, so those still need the keyboard.
670
+ - **Headless mode** runs one `claude -p --resume <id> --output-format
671
+ stream-json` / `codex exec resume --last` per turn, prints a compact progress
672
+ line per event, and reports `turn.finished {exitCode}`. Ctrl+C finishes the
673
+ current turn, announces the session closed and revokes the session key.
674
+ - `checkpoint.request` runs the same push as `heyditto teleport push` and
675
+ answers `checkpoint.done {generation}`.
676
+
677
+ ### `fork`
678
+
679
+ Start a new session from a copy of an existing conversation.
680
+
681
+ ```bash
682
+ heyditto fork <session-id> # copy the transcript under a new session id
683
+ heyditto fork <session-id> --worktree try-b # same, in <repo>/.worktrees/try-b on branch try-b
684
+ heyditto fork <session-id> --cloud # teleport the fork and resume it in Ditto Cloud
685
+ ```
686
+
687
+ Claude Code transcripts are copied to a new uuid (session id fields rewritten,
688
+ and the project directory moved when the fork lives in a new worktree); Codex
689
+ rollouts are copied under a new thread id. The original stays untouched; the
690
+ fork is a normal local session (`heyditto sessions`, `--resume <new-id>`).
691
+
618
692
  ## Teleport
619
693
 
620
694
  Worktrees, clones, package caches and agent traces pile up until a laptop runs
@@ -22,6 +22,17 @@ export interface LaunchOptions {
22
22
  * restored transcript even when the original directory still exists.
23
23
  */
24
24
  cwd?: string;
25
+ /**
26
+ * Remote Control: announce the session to the Ditto backend so the app can
27
+ * send prompts (with attachments) into this terminal. On by default;
28
+ * `--no-remote-control` turns it off.
29
+ */
30
+ remoteControl?: boolean;
31
+ /**
32
+ * Headless Remote Control: no terminal UI. Each prompt from the app runs one
33
+ * `claude -p` / `codex exec` turn in the session's thread until Ctrl+C.
34
+ */
35
+ headless?: boolean;
25
36
  }
26
37
  /** Interactive numbered picker; also accepts a slug or id. Exported for `heyditto endpoints pick`. */
27
38
  export declare function pickEndpoint(endpoints: InferenceEndpoint[], defaultSlug?: string): Promise<InferenceEndpoint>;
@@ -6,7 +6,7 @@ import path from "node:path";
6
6
  import { createInterface } from "node:readline/promises";
7
7
  import { ApiError, createEndpoint, createKey, findEndpoint, isEndpointPending, listEndpoints, revokeKey, } from "../api.js";
8
8
  import { openInBrowser } from "../browser.js";
9
- import { endpointURL, resolveApiKey } from "../config.js";
9
+ import { apiBaseURL, endpointURL, resolveApiKey } from "../config.js";
10
10
  import { deviceLogin } from "../device-login.js";
11
11
  import { formatActivation } from "../endpoint-format.js";
12
12
  import { readStoredAuth, saveLogin, updateStoredAuth } from "../store.js";
@@ -16,6 +16,11 @@ import { planCodex } from "./codex.js";
16
16
  import { latestSession, readSession, writeSession } from "./sessions.js";
17
17
  import { DEFAULT_LAUNCH_EXPIRY, KEY_EXPIRIES, childEnv, maskKey, stripSeparator, } from "./types.js";
18
18
  import { defaultWorktreeName, ensureWorktree } from "./worktree.js";
19
+ import { RemoteSession } from "../remote/controller.js";
20
+ import { startHeadlessTurn } from "../remote/headless.js";
21
+ import { claudeHookSettings, codexNotifyOverride, startHookServer, withHookArgs } from "../remote/hooks.js";
22
+ import { loadPty, spawnInPty } from "../remote/pty.js";
23
+ import { checkpointPush } from "../teleport/commands.js";
19
24
  const DRY_RUN_KEY = "ditto_inf_<minted-at-launch>";
20
25
  function log(line) {
21
26
  process.stderr.write(`${c("dim", "ditto:")} ${line}\n`);
@@ -412,18 +417,29 @@ export async function launchHarness(harness, rawArgs, options) {
412
417
  launches: (record?.launches ?? 0) + 1,
413
418
  };
414
419
  await writeSession(nextRecord);
415
- const child = spawn(plan.command, plan.args, {
416
- stdio: "inherit",
417
- env: childEnv(plan, process.env),
418
- cwd,
419
- });
420
- const restore = forwardSignals(child);
420
+ const remote = remoteMode(options);
421
421
  let exitCode = null;
422
422
  try {
423
- exitCode = await waitForExit(child, plan.command, cwd);
423
+ if (remote === "headless") {
424
+ exitCode = await runHeadless(harness, {
425
+ cwd,
426
+ sessionId,
427
+ harnessSessionId,
428
+ baseUrl: catalog.baseUrl,
429
+ apiKey: key.key ?? "",
430
+ model,
431
+ options,
432
+ record: nextRecord,
433
+ });
434
+ }
435
+ else if (remote === "tui") {
436
+ exitCode = await runInTerminalWithRemote(harness, plan, { cwd, sessionId, harnessSessionId, record: nextRecord });
437
+ }
438
+ else {
439
+ exitCode = await runInTerminal(plan, cwd);
440
+ }
424
441
  }
425
442
  finally {
426
- restore();
427
443
  process.stderr.write("\n");
428
444
  if (key.expiresAt && Date.parse(key.expiresAt) <= Date.now()) {
429
445
  // The gateway answers an expired key with a 401 the harness shows, not us;
@@ -450,4 +466,186 @@ export async function launchHarness(harness, rawArgs, options) {
450
466
  }
451
467
  process.exitCode = exitCode ?? 1;
452
468
  }
469
+ /**
470
+ * Every interactive launch is remote-controllable unless the user opts out.
471
+ * One-shot `-p` runs are scripts, not sessions to type into, so they never
472
+ * connect (unless `--headless` asked for a long-lived headless session).
473
+ */
474
+ function remoteMode(options) {
475
+ if (options.headless)
476
+ return "headless";
477
+ if (options.remoteControl === false)
478
+ return "off";
479
+ if (options.prompt !== undefined)
480
+ return "off";
481
+ if (process.env.HEYDITTO_REMOTE_CONTROL === "0")
482
+ return "off";
483
+ return "tui";
484
+ }
485
+ /** The hook flags that make a harness report its turn boundaries to `hooks`. */
486
+ function hookArgs(harness, hooks) {
487
+ return harness === "claude"
488
+ ? ["--settings", claudeHookSettings(hooks.socketPath)]
489
+ : ["-c", codexNotifyOverride(hooks.socketPath)];
490
+ }
491
+ /** Plain launch: the harness owns the terminal directly. */
492
+ async function runInTerminal(plan, cwd) {
493
+ const child = spawn(plan.command, plan.args, {
494
+ stdio: "inherit",
495
+ env: childEnv(plan, process.env),
496
+ cwd,
497
+ });
498
+ const restore = forwardSignals(child);
499
+ try {
500
+ return await waitForExit(child, plan.command, cwd);
501
+ }
502
+ finally {
503
+ restore();
504
+ }
505
+ }
506
+ /**
507
+ * Remote-controllable TUI: the harness runs in a pseudo-terminal this process
508
+ * owns and mirrors to the real one, so prompts from the app can be typed into
509
+ * its input box. Anything that stops that (no node-pty, not a terminal) falls
510
+ * back to the plain launch with a note, never a failure.
511
+ */
512
+ async function runInTerminalWithRemote(harness, plan, ctx) {
513
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
514
+ log(`remote control off: not running in a terminal (use --headless to control a session without one)`);
515
+ return runInTerminal(plan, ctx.cwd);
516
+ }
517
+ const loaded = loadPty();
518
+ if (!loaded.pty) {
519
+ log(`${c("yellow", "remote control off:")} ${loaded.reason}`);
520
+ return runInTerminal(plan, ctx.cwd);
521
+ }
522
+ const { key: apiKey } = await resolveApiKey();
523
+ const baseUrl = apiBaseURL();
524
+ if (!apiKey) {
525
+ log("remote control off: no Ditto login");
526
+ return runInTerminal(plan, ctx.cwd);
527
+ }
528
+ const hooks = await startHookServer();
529
+ const session = new RemoteSession({
530
+ harness,
531
+ sessionId: ctx.sessionId,
532
+ cwd: ctx.cwd,
533
+ mode: "tui",
534
+ baseUrl,
535
+ apiKey,
536
+ log,
537
+ checkpoint: (root) => checkpointPush(root, harness, ctx.harnessSessionId),
538
+ }, hooks);
539
+ let pty;
540
+ try {
541
+ pty = await spawnInPty(plan.command, withHookArgs(harness, plan.args, hookArgs(harness, hooks)), {
542
+ cwd: ctx.cwd,
543
+ env: childEnv(plan, process.env),
544
+ });
545
+ }
546
+ catch (err) {
547
+ await hooks.close();
548
+ log(`${c("yellow", "remote control off:")} ${err instanceof Error ? err.message : String(err)}`);
549
+ return runInTerminal(plan, ctx.cwd);
550
+ }
551
+ session.attachTui(pty);
552
+ const onTerm = () => pty.kill();
553
+ process.on("SIGTERM", onTerm);
554
+ process.on("SIGHUP", onTerm);
555
+ // Announce in the background; the harness is already on screen.
556
+ void session.start().then((ok) => {
557
+ if (ok)
558
+ log(`${c("green", "remote control on")} — send prompts from the Ditto app to session ${c("bold", ctx.sessionId)}`);
559
+ else
560
+ log("remote control: backend not reachable yet; retrying in the background");
561
+ });
562
+ try {
563
+ return await pty.exit;
564
+ }
565
+ finally {
566
+ process.off("SIGTERM", onTerm);
567
+ process.off("SIGHUP", onTerm);
568
+ session.stop();
569
+ await hooks.close();
570
+ }
571
+ }
572
+ /**
573
+ * Headless Remote Control: no terminal UI, one harness invocation per turn
574
+ * delivered from the app, all in the same thread, until Ctrl+C. Close the
575
+ * laptop lid later; keep talking from the phone until then.
576
+ */
577
+ async function runHeadless(harness, ctx) {
578
+ const { key: dittoKey } = await resolveApiKey();
579
+ if (!dittoKey)
580
+ throw new Error("headless remote control needs a Ditto login (run `heyditto login`)");
581
+ const hooks = await startHookServer();
582
+ // Claude's first turn creates the session under our id; later turns resume it.
583
+ let claudeStarted = ctx.record.launches > 1;
584
+ let codexStarted = ctx.record.launches > 1;
585
+ let running = false;
586
+ const session = new RemoteSession({
587
+ harness,
588
+ sessionId: ctx.sessionId,
589
+ cwd: ctx.cwd,
590
+ mode: "headless",
591
+ baseUrl: apiBaseURL(),
592
+ apiKey: dittoKey,
593
+ log,
594
+ checkpoint: (root) => checkpointPush(root, harness, ctx.harnessSessionId),
595
+ }, hooks);
596
+ const runTurn = (prompt) => {
597
+ running = true;
598
+ const resumeId = harness === "claude" && claudeStarted ? (ctx.harnessSessionId ?? ctx.sessionId) : undefined;
599
+ const resumeLast = harness === "codex" && codexStarted;
600
+ const turn = startHeadlessTurn({
601
+ harness,
602
+ base: {
603
+ baseUrl: ctx.baseUrl,
604
+ apiKey: ctx.apiKey,
605
+ sessionId: ctx.sessionId,
606
+ model: ctx.model,
607
+ yolo: ctx.options.yolo,
608
+ yellow: ctx.options.yellow,
609
+ env: process.env,
610
+ },
611
+ prompt,
612
+ resumeId,
613
+ resumeLast,
614
+ cwd: ctx.cwd,
615
+ extraArgs: harness === "codex" ? hookArgs(harness, hooks) : [],
616
+ onProgress: (line) => process.stderr.write(`${c("dim", " ›")} ${line}\n`),
617
+ });
618
+ void turn.exit.then(() => {
619
+ running = false;
620
+ if (harness === "claude")
621
+ claudeStarted = true;
622
+ else
623
+ codexStarted = true;
624
+ });
625
+ return turn;
626
+ };
627
+ session.attachHeadless(runTurn);
628
+ if (ctx.options.prompt !== undefined) {
629
+ // `-p` together with `--headless`: the given prompt is the first turn,
630
+ // finished before the session is announced so app turns queue behind it.
631
+ log(`running the first turn from -p before going remote`);
632
+ await runTurn(ctx.options.prompt).exit;
633
+ }
634
+ const ok = await session.start();
635
+ log(ok
636
+ ? `${c("green", "headless remote control on")} — prompts sent from the Ditto app to session ${c("bold", ctx.sessionId)} run here; Ctrl+C to stop`
637
+ : `${c("yellow", "backend not reachable yet")}; retrying in the background (Ctrl+C to stop)`);
638
+ await new Promise((resolve) => {
639
+ const stop = () => {
640
+ if (running)
641
+ log("stopping after the current turn (press Ctrl+C again to abort it)");
642
+ resolve();
643
+ };
644
+ process.once("SIGINT", stop);
645
+ process.once("SIGTERM", stop);
646
+ });
647
+ session.stop();
648
+ await hooks.close();
649
+ return 0;
650
+ }
453
651
  //# sourceMappingURL=launch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/agents/launch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/agents/launch.ts"],"names":[],"mappings":"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"}
package/dist/api.d.ts CHANGED
@@ -372,3 +372,132 @@ export declare function listReceipts(input: {
372
372
  days?: number;
373
373
  limit?: number;
374
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
@@ -276,4 +276,86 @@ export function listReceipts(input) {
276
276
  const qs = params.toString();
277
277
  return apiFetch(`/api/v5/me/receipts${qs ? `?${qs}` : ""}`);
278
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
+ }
279
361
  //# sourceMappingURL=api.js.map