T3.Threads (T3 v0.3.0)

Copy Markdown View Source

Thread MCP operations with original string-keyed arguments.

Outside clients have no implicit project: supply projectId where required. Every operation also has an exact wire-name counterpart in T3.Tools. Existing ID/message convenience signatures remain available.

Summary

Functions

Read a thread's provider, model, and modes, or set its provider, model, and options with modelSelection. Omit threadId for this thread. Permission modes stay. Values from orchestrator_capabilities.

Create new top-level threads in this checkout. Not delegation. One thread or its own worktree: t3_thread_launch. Project, branch, and worktree inherit.

Pin, snooze, settle, archive, or mark a thread unread. Omit threadId for this thread. snooze needs snoozedUntil. Settling this thread applies at turn end. A failed turn or queued message leaves it active.

Move context between threads. Omit threadId for this thread. fork: copy it from sourcePoint (default latest stable run) into a new thread with the same setup; no turn runs yet. merge_back: merge it from sourcePoint into a related targetThreadId in the same project. status: its context transfers.

Rename a thread (action:'rename' with title) or regenerate its title. Omit threadId for this thread. Workspace and branch cannot change here.

Wait for a thread's run to finish. No runId: latest. Idle: at once. On timeout, with next end your turn; without, call again.

Functions

configure(client, arguments \\ %{})

@spec configure(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}

Read a thread's provider, model, and modes, or set its provider, model, and options with modelSelection. Omit threadId for this thread. Permission modes stay. Values from orchestrator_capabilities.

Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.

create_many(client, arguments \\ %{})

@spec create_many(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}

Create new top-level threads in this checkout. Not delegation. One thread or its own worktree: t3_thread_launch. Project, branch, and worktree inherit.

Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.

interrupt(client, args)

interrupt(client, id, args)

launch(client, args)

launch(client, title, args)

list(client, args \\ %{})

organize(client, arguments \\ %{})

@spec organize(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}

Pin, snooze, settle, archive, or mark a thread unread. Omit threadId for this thread. snooze needs snoozedUntil. Settling this thread applies at turn end. A failed turn or queued message leaves it active.

Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.

read(client, args)

read(client, id, args)

search(client, args)

search(client, query, args)

send(client, args)

send(client, id, message, args \\ %{})

transfer(client, arguments \\ %{})

@spec transfer(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}

Move context between threads. Omit threadId for this thread. fork: copy it from sourcePoint (default latest stable run) into a new thread with the same setup; no turn runs yet. merge_back: merge it from sourcePoint into a related targetThreadId in the same project. status: its context transfers.

Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.

update(client, arguments \\ %{})

@spec update(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}

Rename a thread (action:'rename' with title) or regenerate its title. Omit threadId for this thread. Workspace and branch cannot change here.

Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.

wait(client, arguments \\ %{})

@spec wait(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}

Wait for a thread's run to finish. No runId: latest. Idle: at once. On timeout, with next end your turn; without, call again.

Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.