rpc

package
v0.1.52 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2026 License: MIT Imports: 57 Imported by: 0

README

Web conversation transport

This bounded transport implements Protocol, ListSessionEntries, LoadSessionEntries, DeleteSessionEntries, ListSessions, History, Prompt, and Join from internal/rocketclaw/web/proto/web.proto. Steer Prompt waits for Backend RunTurn completion, using the authenticated username. Bare $stop runs cancel through RunTurn and waits for that interrupted turn. Queue Prompt stashes waiting work through existing Backend queue operations and returns without waiting for that turn. ListQueue, SteerQueueItem, RemoveQueueItem, and ReorderQueue use existing Backend queue operations; promotion keeps the queued item's original principal and message ID. ListQueue.delivery distinguishes later work from pending steers. Direct steers retain the client's Prompt.message_id as durable input_id; pure-Web queued/stashed messages retain the supplied stable message ID (or a server-generated ID when omitted). History uses those IDs to move waiting inputs into chat in consumption order without matching text. Dropped items never run. Reorder writes persisted enqueue positions. Join sends only committed, content-free conversation-change hints; it does not replay history or return output through Prompt's private response field. History accepts the last applied revision and returns changed entries, removed keys, the complete ordered key inventory, and running/terminal state. Invalid or differently scoped revisions reset the view. Running turns include those of hidden runs whose sync destination is the chat; each shows after the chat's history under the key its synced copy later takes, and Join reports its changes. A positive limit returns only the newest limit saved entries plus running turns, and its revision follows only those entries, so a read's cost depends on the entries shown, not on the whole chat. start is where the returned entries begin and more says older ones exist. A positive before reads a settled, unfollowed page of older entries: the newest limit of them, or every entry from from onward. If older history is cleared, the next limited read resets. A chat's origin still comes from its first entry when that entry is not returned. SearchSessions applies the same origin rules when it matches the query against every chat the caller may see; cron runs and private External MCP conversations never match.

StageRevert accepts a visible session ID and an optional recorded user message_id; omission selects Undo's predecessor from complete effective history, not the loaded page. It settles the runtime bridge, stages an exclusive durable cutoff, and returns the actual marker and editable TranscriptEvent prompt without its generated header. ClearRevert clears the entire cutoff and wakes preserved work, with no composer payload. Both require a top-level pure Web session; Slack, MCP-bound/private, Cron-origin and delegation sessions are ineligible even through direct calls.

History returns revert_eligible, revert_message_id and can_undo, including an empty first-message cutoff. Its opaque revision includes the cutoff; a change resets page bounds, inventory and delegation links from one database snapshot. Committed marker changes use the existing Join wake-up channel. Clients must reject outstanding reads across mutations/resets, not compare cutoff values alone: Stage followed by Redo can restore the same value. IDs are opaque decimal strings with replay indices; do not convert them to JavaScript numbers.

Prepared new prompt admission reconciles message identity under the history lock and atomically prunes the abandoned suffix, clears the cutoff, rebuilds the summary and stores the new queue owner. Retries of accepted IDs do not prune again. $agent and $stop are controls and leave the cutoff intact. Pending human work is hidden while staged, restored in order on Redo, and removed when a replacement is accepted. Automatic recovery, schedules and goal continuation cannot execute behind the cutoff. Uploads remain available to restored drafts. Revert never compensates files, external tool effects, deliveries or scheduled registrations. Deploy migration 026 with the regenerated protocol and Web assets; clear staged cutoffs before a schema downgrade to avoid exposing hidden history. In-progress turns and saved turns share source-qualified turn keys; item_id is render identity, while message_id identifies saved entry positions for commands. History returns the recorded turn in order, including developer messages, thinking summaries, tool calls, tool results, and user/assistant text. Encrypted reasoning bodies stay stored and are not sent. History retains tool call IDs and names so Web can group each call with its result. Recognized public records in OutputTrace add replay-neutral assistant text and fixed tool/delegation lifecycle states. Unknown trace records are not rendered. Progress rows use producer-qualified item/call identities, never fabricated message_id or input_id values. Per-item completion is independent of the parent turn's running state. Authoritative replay replaces overlapping partial text, including empty final output; retained public records provide display fallback when compaction removes the corresponding replay. Blocked, failed, or stopped delegation metadata suppresses private or reviewer-bearing result text in Web, including saved history, without changing canonical provider replay. Private child diagnostics, review reasons, reasoning bodies, and provisional arguments never enter this public path. History reads neither acknowledge Slack delivery nor change queue/steer boundaries. Slack keeps placeholder-plus-final delivery. New messages save their exact generated bracket header alongside model-facing text as prompt_header in local replay. History and session-list previews remove only that saved prefix from user/developer display text. History exposes it as TranscriptEvent.header; the Web message footer shows it through an info icon on hover or click. New text headers omit media=Text. Old messages are not backfilled or guessed from their text. Model-facing text still includes the generated header; local header metadata is never sent to the provider. Assistant text is unchanged. TranscriptEvent.principal decodes only the stored header's top-level quoted principal, including on attachment-bearing inputs. QueueItem.principal copies the item's recorded author; an item another session's agent wrote has none and shows agent <name> (session <ID>) instead. Web shows it above human text inside the existing bubble and above queue-row text, without replacing it with the viewer's identity. Missing or malformed stored principals stay unlabeled; raw headers remain intact. Previews use the latest nonempty user or assistant message, including the same successful delivery report shown in History. Migration 011_last_message_summaries.sql invalidates the derived user-only previews for the existing background backfill. Session running is true while the conversation has an unfinished turn.

MoveToBackground moves every running execute and task call of agents with permission.rocketclaw.allow_background: allow in the conversation into Background Jobs and reports moved; with nothing eligible it changes nothing. StopBackgroundJob stops one running job by ID, records it as stopped by user, and reports stopped, false when the job had already finished. Stopping a task job also stops its subagent session's running turn and that subagent's own jobs. It reaches the conversation's own jobs and jobs of hidden cron or External MCP runs whose sync destination is this conversation, the same scope as the agent's rocketclaw_stop_background_job. Both authorize like the queue RPCs and are refused for private cron and External MCP conversations. History adds a movable flag, true while such a call runs attached to its turn, and a backgroundJobs list with label, kind, state, tool call ID, subagent key, who stopped it, and a hidden mark. The list holds jobs that are running or whose Completion Note is still pending, including those of hidden runs that report here. History also lists pendingQuestions: the unanswered ask_user_question calls of the conversation's Web turns, read from their saved turn steps, so they survive a closed tab or a restart. AnswerQuestion authorizes like the queue RPCs, then saves the selected values and custom text as the answer to the named question of that conversation and wakes its waiting turn. The first answer wins; any other answer, including one naming another conversation's question, fails with NotFound "no longer pending" and changes nothing. Transcript events that deliver Completion Notes carry them in completionNotes with each job ID, final state, and note text. They come from the stored jobs whose IDs the system input saved as its input ID, never from its text, so output that looks like a note adds no row; the jobs stay until their conversation is deleted, and a fork copies the finished ones its copied notes list, as already read, with their unexpired retained output. A task call's events carry delegation, the Delegation History of the subagent the call started or continued, as recorded in its public progress. Any call's function_call event carries review, the Delegation History its automatic permission reviews save to, derived from the turn ID and call ID; the Web links it only while the response's delegations list it, so a review saved after the row was sent still links. Job changes and movable flips send the usual conversation-change hint.

Session.tags (additive protobuf field 14) carries the owning conversation's durable, lexically sorted active tag names in ListSessions. Missing metadata returns an empty list. The existing session-list query joins tags without adding a request per row or widening private-session discovery. Tag-only changes appear on the next snapshot without changing previews, timestamps, or pin. HTTP retains the same owner/completeness envelopes and ordering; no tag mutation RPC or event is added.

Session discovery starts from explicitly recorded conversations with stored entries, excluding private Cron locators and recorded MCP X bindings. It does not discover orphaned entry rows or backfill records. CreateSession records a fresh opaque ID with the selected loaded agent. ListSessions streams one conversation per response message in list order. The Go HTTP adapter forwards these progressively through a finite SSE response, preserving full previews and gRPC's default 4 MiB per-message receive limit. Each envelope carries the authenticated owner and summary completeness; the final empty envelope marks upstream success and aggregate summary completeness, including for an empty list. An SSE complete event is sent only after successful gRPC EOF. HTTP iterator exhaustion is separate from that application terminal: a failure or wire cut can leave a visible prefix, which is not a completed list. Cancellation cancels the gRPC call, including pending reads, and releases database rows. Identity returns the Go-mapped username separately from Protocol negotiation. ListAgents loads the current runtime definitions. Session allowed_agents comes from those definitions for Web conversations and the existing Slack channel policy for Slack Y. $agent name persists selection and updates the live bridge without resetting history; private producer X cannot be selected. Removed choices are not re-added merely because they remain the current selection.

ListConfig exposes only the retained ConfigView fields: workspace, overlays, model aliases, channel agent choices, MCP server names, logging level, auto-approver model, and enabled flags. It never serializes credentials, database URLs, environment values, MCP commands/headers, or browser/user mappings. ListSkills uses the existing rooted runtime-definition loader and returns loaded skill text and metadata; origin is the loader's relative definition location. With ListSkills.agent, it returns only skills allowed for that loaded agent, excluding denied and review-only permissions; an unavailable agent returns no skills. Omitting the filter retains the full skills-page catalog. The composer supplies its selected agent and lists commands before those skills. Choosing a skill inserts $name , or $skill name for a built-in name collision, without sending. Web-only outer $enqueue queues automatic later work, $stash holds work until explicit send, and $steer sends now or into the active turn. These commands override the requested delivery and strip only the outer command and surrounding prefix whitespace, preserving inner text, spacing, and nested commands. Explicit Prompt.delivery=STASH treats the entire payload as literal text instead, including all three commands. Bare $stop and $agent keep their built-in meanings. Normal Send during a turn queues; Cmd/Ctrl+Enter steers. Skills are loaded when consumed.

ListCronJobs uses the same started Cron manager as scheduled/Slack execution. It exposes parsed definitions and each schedule's next trigger within 24 hours, using persisted due times for recurring schedules rather than restarting their intervals on a read. RunCronJob loads the selected stem through that manager, runs its fresh private X, and returns the actual destination Y only after the existing runner's RunTurn and Sync finish successfully.

Historical Cron rows use existing sync_source_entry_id links to surviving source entries. Backend entry reads expose generic source conversation provenance; RPC decodes the Cron prefix and the timestamp/random suffix from the right. The stored path label is used as-is, including previously stored underscores, without matching current definitions. Runs are deduplicated by source X within each recorded human Y and link only to Y. Rows sort newest-first by the source run timestamp, with Y and X as tie-breakers. A synced row proves a copy, not successful model execution or delivery. Recorded private Cron conversations with saved entries or visible turn checkpoints also supply run timestamps through the same metadata query, without reading replay content. Checkpoint visibility follows the transcript's terminal, supersession, and revert rules. When no human destination has a copy, Web shows “No delivered chat” with an Open chat action. CreateSession.source_conversation_id accepts a recorded Cron producer and creates or reuses web:<source ID>, then calls SyncConversation. Creation and sync are idempotent, including concurrent opens and retries after a failed sync. This creates a writable Web conversation, without Slack creation or Cron execution. The Web chat ID retains its source cron ID to resolve the current definition's channel for agent choices in the picker, session list, and server-side agent changes. Choices use the current configured channel agent order intersected with loaded agents; if no list can be computed, all loaded agents are allowed. Creation selects the first allowed loaded agent; reopening does not overwrite a conversation's selection. Existing delivered chat links are preserved. Authenticated users can read Cron producer history through History, including runs without a delivered chat; this does not grant prompt, queue, deletion, or other mutation access to producers. A delivered copy takes precedence over the undelivered row for the same source. Missing source entries cannot supply history; no migration, backfill, or history rewrite is performed. Web groups runs beneath their definition, retaining groups whose definition is gone. History.source_conversation_id optionally restricts the authorized destination's history to one source run before replay decoding; it does not change access to other private source conversations. The grid uses this filter for quick previews, with a link to the destination chat.

Attachments

UploadAttachment(stream Attachment) -> Attachment accepts one file per call. The first frame supplies conversation_id, name, and optional data; subsequent frames supply data. Each chunk is at most 256 KiB, below gRPC's default 4 MiB receive limit. Close the sending side to finish. The response supplies the immutable ID, basename, detected MIME type, and original byte count. Pass IDs in Prompt.attachment_ids for either steer or queue. Images retain the existing model-side normalization; all uploads are also materialized through os.OpenRoot(cfg.Workspace) at artifacts/uploads/<id>/<basename>. Other files are available to model tools at those paths. The original text, principal, attachment references, and image input travel through existing durable queue content. Prompt text includes attachment:<id> and the safe workspace path so replay retains a file reference without embedding its bytes in transcript RPCs.

DownloadAttachment(Attachment) -> stream Attachment requires the visible conversation ID in conversation_id and the attachment ID in id. It authorizes against that conversation's current history or queued references on every call, including uploads referenced by its selected staged user boundary for composer restoration—not arbitrary uploads or other references in the hidden suffix— then returns exact original bytes in 256 KiB chunks. Merely knowing an ID is not authorization. Private Cron producers and recorded private external MCP sessions are denied, as are unmapped browser IPs. Deleting history revokes its references; deleting a source also revokes its dangling synced copies. Queued references remain valid until removed or consumed.

History and ListQueue carry repeated attachments metadata. The protobuf JSON shape (using protojson) is:

{"id":"opaque-id","name":"image.png","mimeType":"image/png","size":"1520338","originalUnverified":false,"conversationId":"producer-id"}

data is absent from transcript/queue metadata. conversationId there identifies the stored producer, which can differ from the visible conversation for a synced entry. The HTTP proxy must use the currently viewed conversation for download authorization, never substitute this producer field. Standard Go encoding/json uses the generated snake_case tags and a numeric size; the HTTP adapter uses protojson instead. Upload raw bytes to POST /api/UploadAttachment?conversationId=…&name=…. Download through GET /api/DownloadAttachment?conversationId=…&id=…; download=1 forces a download. Both paths stream chunks and cancel gRPC on disconnect.

New tool outputs persist original bytes in the configured filesystem directory or S3 bucket before returning immutable IDs in successful tool replay. PostgreSQL stores ownership, file metadata, and byte counts only; migration 014_attachments.sql creates that metadata table. The default directory is <workspace>/.rocketclaw/attachments (or .femtoclaw/attachments for the legacy configuration). See the root README for the attachments configuration. Historical successful tool calls may recover still-available workspace files once; recovered metadata says original_unverified=true. Later overwrites or removal never replace recovered bytes. Missing or root-escaping historical files are omitted. This is a snapshot of available bytes, not a claim to recover an old file version. Originals are never resized in storage. Unreferenced blobs remain stored but cannot be downloaded; garbage collection is not part of this transport.

Voice

Voice(VoiceRequest) -> stream VoiceEvent runs one GPT-Live call for exactly as long as its request lives. HTTP serves it only as POST /api/Voice, so CrossOriginProtection blocks cross-site starts; it is not a GET stream route. The body is {"conversationId":"<visible-id>","sdp":"<offer>","voice":"<name>"}; voice is optional and must be one the agent's provider offers (ListAgents lists them per agent, the default first: Codex's voices on chatgpt, the public API's on api_key), else the call is refused with InvalidArgument. The handler checks identity and visibility, takes credentials from the provider of the conversation agent's model (api_key uses the public API and honors api_base_url; chatgpt uses the saved login on Codex's fixed internal URLs), creates the call, and attaches its sideband socket before answering. SSE frames are {"answer":{"sdp":"…","route":"public"|"codex"}} first, then any {"notice":"…"} frames, then one {"ended":{"reason":"…"}} with reason stopped, replaced, expired, safety, closed, lost, or error. A notice reports a hand-off the agent refused; the call continues. Errors before the answer are ordinary JSON errors: NotFound for an unrecorded conversation, and FailedPrecondition (HTTP 400, code 9) for missing credentials, a failed ChatGPT token refresh (naming its rocketclaw oai login command), a plain-HTTP api_base_url whose host is not localhost or a loopback IP, or an OpenAI rejection, which reports only the upstream HTTP status. Voice requests to OpenAI drop Authorization, Api-Key and Chatgpt-Account-Id on any redirect to another scheme, host, or port.

Each person (the caller's username) has one live call across all conversations; the newest wins, and the older stream ends with replaced. Different people's calls on one conversation run side by side. The server has no idle or no-speech timers. Aborting the request ends the call: over a live sideband the server sends session.close and waits up to 3 s; it then hangs up a public session that did not confirm, and closes the socket. The handler returns right after ended. OpenAI's session.closed ends the call as expired, safety (a content stop), or closed.

VoiceSettings(VoiceSettingsRequest) -> VoiceSettingsResponse (POST /api/VoiceSettings) reads and changes the caller's voice settings: their current voice conversation, the agent for their next one, their voice, and the transcript view. The action is READ (the default), START (returns the current conversation, or creates one with agent as CreateSession would), RESET (forgets the current conversation while it is still conversationId), or UPDATE (stores the agent, voice and transcript fields that are set; an agent the caller cannot choose or a voice no route offers is InvalidArgument). Every action answers with the caller's whole settings row, and conversationId is empty when none is current. Startup cleanup never deletes a person's current voice conversation; after RESET, ordinary cleanup applies.

When the sideband drops, a public call ends as lost. A Codex call reconnects as Codex does: it waits 200 ms, doubling to 5 s (reset after 30 s connected), then dials up to 5 times. A 404 or 410 ends it as closed, and 5 failed dials as lost. As in Codex, a normal close (1000) of a Codex sideband is no drop: it ends the call as closed at once. Stop cancels a dial in progress at once. While the sideband is down the browser gets reconnecting: true, and false once it is back; it shows "Reconnecting to the agent…" meanwhile. Audio keeps flowing, since it never passes through RocketClaw. Messages that failed to send go out first after reconnecting. A Codex call stopped while disconnected sends no session.close; the browser closing its audio ends it.

Each hand-off is admitted in arrival order through StashQueueItem, without waiting for the turn: it joins the running turn as a Web steer or starts the next turn. It carries media=Voice, the caller's principal, and the hand-off ID as both the queue item ID and web_message_id, so a re-delivered hand-off is admitted once. It bypasses Prompt: $ text in it never runs commands, skills, or workflows. Its text is taken the moment the hand-off arrives and written exactly as Codex wraps it: <realtime_delegation> with the request in <input> and the voice conversation since the previous hand-off in <transcript_delta> (user:/assistant: lines; the request is added as a user line unless already said), XML-escaped and each cut to 4 KiB behind a "…" (the request keeps its start, the transcript its end). Public hand-offs carry no request text, so that conversation is the request too. A hand-off with nothing to send is ignored, and talk after the last hand-off is not stored. A stopping runtime ends the call as error.

Nothing is sent to the voice model while the agent works. When a turn this call handed off finishes, its final reply is sent once, as written, unless it is over 3,960 bytes (about 990 tokens). Then, as Codex shows such a reply on screen, the browser gets it in a reply event and the voice model hears that it is on the screen. A user message typed during the call cancels the reply of every earlier hand-off, as Codex does; only a later hand-off speaks again. It also sends the browser a typed event: the browser mutes the voice model at once and unmutes it when the model begins a reply after the person spoke again, as Codex suppresses its speaker. Each pending question in the conversation is sent once as "I need your input. Please respond in the app." with its text and options; spoken words never answer it. OpenAI receives only the audio, the seed (up to 40 recent user messages and complete assistant replies as written, each cut to 600 bytes, 12,000 bytes in total), those final replies, and those question notices: no tool names, arguments, or results, no progress, reasoning, or attachments.

Start

History summary backfill

Existing histories gain durable session-list summaries in the background when the RocketClaw runtime starts. Backfill does not gate readiness. It commits progress incrementally, so a later runtime start resumes histories that still lack a summary. It does not create conversation records or expose orphaned histories. Normal history writes maintain the summary in the same transaction as the history. New conversation records initialize their summary in the creation transaction, including when they attach existing orphan history. An empty summary is complete; a missing summary is not. Empty histories retain blank previews and display timestamps. Session-list enumeration checks for stored entries and reads stored summaries without decoding replay, including while legacy summaries are still missing. Empty histories are omitted until an entry is stored.

If backfill fails, the runtime logs backfill session summaries with the error and stops that backfill attempt; it does not retry automatically within the same run. Investigate the logged error before restarting to resume. Shutdown cancels and joins the backfill before releasing the runtime lock or closing the store.

Run the Web transport

Session-list Slack labels use stored channel facts. A background lane refreshes known channels every three minutes; rate limits can extend staleness, and failed lookups retain the last known facts. Session-list requests do not wait for Slack. Stored facts do not grant permission: action authorization still uses live checks. Configure rename subscriptions using Slack Channel Rename Subscriptions.

Build the browser assets before compiling Go. Frontend source lives in internal/rocketclaw/web/; the build writes compiled assets to internal/rocketclaw/internal/web/dist/, which Go embeds in the binary. make build, make lint, and make test build these assets as a prerequisite. Bun 1.4.2 or newer is needed for builds and tests, but the deployed binary needs no Bun or Next.js process.

From the repository root:

export TMPDIR="$PWD/.tmp"
(cd internal/rocketclaw/web && bun install --frozen-lockfile && bun run build)
go run ./cmd/rocketclaw

Web always starts. Its HTTP listener defaults to 0.0.0.0:3000; set web.listen_address in rocketclaw.json or femtoclaw.json to change it. The HTTP adapter connects to gRPC entirely in memory inside the same process. No Web environment variables or filesystem sockets are needed. Browser identity on that listener still comes from the connecting IP, using web_users first and Tailscale WhoIs otherwise. When web.tsnet is set, RocketClaw also runs a tailscale.com/tsnet node that serves the same handler over HTTPS on port 443 of its tailnet name; see Identity boundary.

The normal RocketClaw command still starts its existing Slack/Cron runtime. The isolated transport tests below do not start Slack or touch runtime configuration.

Open /s/<base64url-conversation-id> in the Web UI to read the conversation. Thinking and tool traces appear inline within each turn as the browser's Timeline detail setting shapes them (Compact by default: one closed summary row); replies and successful verbatim-delivery reports always remain visible. For example, obtain the URL component with:

bun -e 'console.log(Buffer.from(process.argv[1]).toString("base64url"))' 'slack-thread:C1:1.1'

The DeleteSessionEntries RPC removes saved entries and retained failed/stopped turns for that exact conversation ID, not an unfinished turn or its conversation or goal record, and retains its session tags. Ordinary GC remains responsible for those records; permanent session pruning removes tag metadata too.

Identity boundary

TranscriptEvent carries additive agent, model, optional reasoning_effort, and origin fields. HTTP/SSE uses their protobuf JSON camelCase names. Absent reasoning is unknown; a present empty string means provider default. History resolves replay attribution ranges before the entry snapshot. Join carries no transcript content or execution attribution; clients read these through History. Saved copy locators survive source-row retention without exposing source or destination IDs in the transcript.

RocketClaw accepts browser connections directly (for example over the private network). HTTP mutations and uploads reject cross-origin browser requests using Go's CrossOriginProtection; browser-IP identity never grants cross-origin authority.

The HTTP proxy forwards only the connection's remote IP. It ignores X-Forwarded-For, X-Real-IP, Tailscale-User-*, and client-supplied principal headers. Do not put another HTTP reverse proxy in front of it: that would identify the proxy rather than the browser.

Each opencode server gets a relay on its own port, on the Web listen host and, with web.tsnet, on the tailnet node. The relay admits exactly the browsers the Web admits (by IP on the plain listener, by Tailscale user on the tailnet), adds the server's password, and serves OpenCode's own web app, which the Web frames at /server/<base64url relay origin>/session/<id>. It refuses any request, WebSocket upgrades included, whose Origin is another site, sends OpenCode its own origin so OpenCode's terminal origin check still holds, and lets only pages on the same host frame it. Everyone the Web admits gets full control of every configured OpenCode server, including its shell. Remote sessions are listed from a copy RocketClaw syncs every 5 seconds; once a day the server's full list removes copies of sessions it no longer has. Prompt refuses their opencode: IDs. People tag remote sessions with any tag and RocketClaw sessions with tags their agent allows.

Phones get the secure page that voice needs from the web.tsnet listener (see the root README for setup). There, a wrapping handler asks the node's LocalClient().WhoIs about the connection's remote address and refuses tagged or unknown callers. It passes the login and display name to gRPC as -bin metadata keys, because names may be non-ASCII. When those keys are present, principal and ListConfig use them and never consult web_users or tailscale whois. The listen_address listener never sets those keys and keeps the IP rules below. Tailscale logins and web_users names are separate namespaces, so one person may appear under two names. The node stores its state under os.UserConfigDir()/rocketclaw/tsnet-<hostname>, outside the workspace. rocketclaw ts login logs it in, with web.tsnet.auth_key or a printed login link; the server never prints a link or waits for one. A logged-out node without a key is closed at startup with one "Tailscale authentication unavailable" warning, and a node that loses its login later stops serving the same way. Tailscale's log upload is off. Never use tailscale funnel.

Local processes can still act as the owner. On an untagged host signed in to Tailscale as the owner, a connection from the host to its own Tailscale IP arrives from that IP, and tailscale whois names the host's own user (checked on macOS). A connection from the host to the tsnet name likewise arrives from the owner's device. A 127.0.0.1 mapping, for a browser on the host, adds the direct loopback path but no new local authority there. On a tagged host, where WhoIs rejects every local caller, it does add authority.

Go snapshots configured web_users IP-to-username mappings at startup. An explicit mapping takes precedence; otherwise Go runs tailscale whois --json for the browser IP and uses UserProfile.LoginName as its identity. New prompts instead record UserProfile.DisplayName as their principal, with the login as the fallback for a missing or blank display name. A manual mapping uses its configured name for both. Admission, conversation ownership, inbound routing, and Config's Tailscale user stay login-based. Identity.username remains the login; the separate Identity.principal is used only for new composer/handoff previews. Successful lookups are cached per IP for five minutes and shared with the Config page. Concurrent misses are serialized; expired entries must be looked up again, and a failed refresh denies access rather than using the stale identity. Failed lookups, missing login names, and tagged devices without a manual mapping are rejected with Unauthenticated (HTTP 401). Mapping changes require restart. TypeScript does not read RocketClaw configuration or perform Tailscale WhoIs. For the Config page, Go runs tailscale whois --json with the authenticated browser connection IP and exposes only UserProfile.LoginName as tailscale_user. Lookup failures leave that display field empty; a manually mapped user can still access the Web interface. For Tailscale identification, the CLI must be available on the RocketClaw process's PATH and connected to its local service. Protocol exposes only the schema hash to the trusted local proxy and requires no browser identity, so startup does not require mapping localhost.

Verify without a live Slack runtime

Use a dedicated test PostgreSQL database, never a production database. Each run creates an isolated schema via the existing test helper.

mkdir -p "$PWD/.tmp/test-tmp"
export TMPDIR="$PWD/.tmp/test-tmp"
export ROCKETCLAW_TEST_DATABASE_URL='postgres://postgres:postgres@127.0.0.1:55435/rocketclaw_test?sslmode=disable'
go test -race -count=1 -run '^(TestWebRPC|TestSessionEntries)$' \
  ./cmd/rocketclaw ./internal/rocketclaw/frontend/rpc

TestSessionEntries starts real Unix gRPC and the Go HTTP adapter, uses Bun as its HTTP test client, and verifies PostgreSQL results. It checks spoofed forwarding headers, unmapped IPv6 connections, ordering, empty results, and preservation of unrelated entries and conversation/goal records. Bun must be installed and web dependencies must already be installed. The TypeScript integration test skips when run alone; Go provides its isolated storage fixture.

For real desktop/mobile transcript gestures, build Web first and provide an installed Playwright module and Chromium executable:

(cd internal/rocketclaw/web && bun run build)
export ROCKETCLAW_PLAYWRIGHT_MODULE='/absolute/path/to/playwright-core/index.mjs'
export ROCKETCLAW_CHROMIUM='/absolute/path/to/chromium'
go test -count=1 -timeout=80s -v ./internal/rocketclaw/frontend/rpc

The browser check starts its own Next server on an ephemeral port and checks the default closed activity summary row and visible replies on desktop and at 390px width. It stops only that test process and saves r22-web-desktop.png and r22-web-mobile.png under the repository-local TMPDIR.

After changing the proto, run go generate ./internal/rocketclaw/frontend/rpc with protoc and protoc-gen-go on PATH. This regenerates messages and the schema hash; the network test also compares Go's hash with the TypeScript source.

Documentation

Overview

Package rpc adapts the retained Web protocol to Go-owned conversation storage.

Index

Constants

This section is empty.

Variables

View Source
var (
	PromptDelivery_name = map[int32]string{
		0: "STEER",
		1: "QUEUE",
		2: "STASH",
	}
	PromptDelivery_value = map[string]int32{
		"STEER": 0,
		"QUEUE": 1,
		"STASH": 2,
	}
)

Enum value maps for PromptDelivery.

View Source
var (
	VoiceSettingsAction_name = map[int32]string{
		0: "READ",
		1: "START",
		2: "RESET",
		3: "UPDATE",
	}
	VoiceSettingsAction_value = map[string]int32{
		"READ":   0,
		"START":  1,
		"RESET":  2,
		"UPDATE": 3,
	}
)

Enum value maps for VoiceSettingsAction.

Functions

func NewHTTPHandler

func NewHTTPHandler(connection *grpc.ClientConn, sentry config.SentryConfig) http.Handler

NewHTTPHandler bridges the browser API to the local Web service.

func NewOpenCodeRelay added in v0.1.47

func NewOpenCodeRelay(server config.OpenCodeConfig) http.Handler

NewOpenCodeRelay serves one remote OpenCode server at the root of its own port with the server's password. It refuses any request, WebSocket upgrades included, whose Origin is another site, and sends the upstream its own origin so OpenCode's PTY check still holds. Only pages on the same host may frame it. Callers add admission.

func NewTailnetHandler added in v0.1.30

func NewTailnetHandler(client tailnetWhoIs, next http.Handler) http.Handler

NewTailnetHandler signs each request in by its tailnet connection and refuses tagged or unknown callers. next must be NewHTTPHandler, which appends the IP principal to this identity.

Types

type Agent

type Agent struct {
	Name        string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Model       string `protobuf:"bytes,2,opt,name=model,proto3" json:"model,omitempty"`
	Reasoning   string `protobuf:"bytes,3,opt,name=reasoning,proto3" json:"reasoning,omitempty"`
	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
	Verbosity   string `protobuf:"bytes,5,opt,name=verbosity,proto3" json:"verbosity,omitempty"`
	Prompt      string `protobuf:"bytes,6,opt,name=prompt,proto3" json:"prompt,omitempty"`
	Permissions string `protobuf:"bytes,7,opt,name=permissions,proto3" json:"permissions,omitempty"`
	Origin      string `protobuf:"bytes,8,opt,name=origin,proto3" json:"origin,omitempty"`
	CustomShell string `protobuf:"bytes,9,opt,name=custom_shell,json=customShell,proto3" json:"custom_shell,omitempty"`
	// Voices a call with this agent may use, the default first; empty when its provider offers none.
	Voices []string `protobuf:"bytes,10,rep,name=voices,proto3" json:"voices,omitempty"`
	// New sessions in another space do not offer this agent; empty offers it in every space.
	Space string `protobuf:"bytes,11,opt,name=space,proto3" json:"space,omitempty"`
	// contains filtered or unexported fields
}

func (*Agent) Descriptor deprecated

func (*Agent) Descriptor() ([]byte, []int)

Deprecated: Use Agent.ProtoReflect.Descriptor instead.

func (*Agent) GetCustomShell added in v0.1.30

func (x *Agent) GetCustomShell() string

func (*Agent) GetDescription

func (x *Agent) GetDescription() string

func (*Agent) GetModel

func (x *Agent) GetModel() string

func (*Agent) GetName

func (x *Agent) GetName() string

func (*Agent) GetOrigin

func (x *Agent) GetOrigin() string

func (*Agent) GetPermissions

func (x *Agent) GetPermissions() string

func (*Agent) GetPrompt

func (x *Agent) GetPrompt() string

func (*Agent) GetReasoning

func (x *Agent) GetReasoning() string

func (*Agent) GetSpace added in v0.1.50

func (x *Agent) GetSpace() string

func (*Agent) GetVerbosity

func (x *Agent) GetVerbosity() string

func (*Agent) GetVoices added in v0.1.30

func (x *Agent) GetVoices() []string

func (*Agent) ProtoMessage

func (*Agent) ProtoMessage()

func (*Agent) ProtoReflect

func (x *Agent) ProtoReflect() protoreflect.Message

func (*Agent) Reset

func (x *Agent) Reset()

func (*Agent) String

func (x *Agent) String() string

type AnswerQuestionRequest

type AnswerQuestionRequest struct {
	ConversationId string `protobuf:"bytes,1,opt,name=conversation_id,json=conversationId,proto3" json:"conversation_id,omitempty"`
	// The PendingQuestion ID.
	AskId string `protobuf:"bytes,2,opt,name=ask_id,json=askId,proto3" json:"ask_id,omitempty"`
	// Values of the chosen options.
	Selected []string `protobuf:"bytes,3,rep,name=selected,proto3" json:"selected,omitempty"`
	Custom   string   `protobuf:"bytes,4,opt,name=custom,proto3" json:"custom,omitempty"`
	// contains filtered or unexported fields
}

func (*AnswerQuestionRequest) Descriptor deprecated

func (*AnswerQuestionRequest) Descriptor() ([]byte, []int)

Deprecated: Use AnswerQuestionRequest.ProtoReflect.Descriptor instead.

func (*AnswerQuestionRequest) GetAskId

func (x *AnswerQuestionRequest) GetAskId() string

func (*AnswerQuestionRequest) GetConversationId added in v0.1.27

func (x *AnswerQuestionRequest) GetConversationId() string

func (*AnswerQuestionRequest) GetCustom added in v0.1.27

func (x *AnswerQuestionRequest) GetCustom() string

func (*AnswerQuestionRequest) GetSelected added in v0.1.27

func (x *AnswerQuestionRequest) GetSelected() []string

func (*AnswerQuestionRequest) ProtoMessage

func (*AnswerQuestionRequest) ProtoMessage()

func (*AnswerQuestionRequest) ProtoReflect

func (x *AnswerQuestionRequest) ProtoReflect() protoreflect.Message

func (*AnswerQuestionRequest) Reset

func (x *AnswerQuestionRequest) Reset()

func (*AnswerQuestionRequest) String

func (x *AnswerQuestionRequest) String() string

type AnswerQuestionResponse

type AnswerQuestionResponse struct {
	// contains filtered or unexported fields
}

func (*AnswerQuestionResponse) Descriptor deprecated

func (*AnswerQuestionResponse) Descriptor() ([]byte, []int)

Deprecated: Use AnswerQuestionResponse.ProtoReflect.Descriptor instead.

func (*AnswerQuestionResponse) ProtoMessage

func (*AnswerQuestionResponse) ProtoMessage()

func (*AnswerQuestionResponse) ProtoReflect

func (x *AnswerQuestionResponse) ProtoReflect() protoreflect.Message

func (*AnswerQuestionResponse) Reset

func (x *AnswerQuestionResponse) Reset()

func (*AnswerQuestionResponse) String

func (x *AnswerQuestionResponse) String() string

type Attachment

type Attachment struct {
	Id                 string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name               string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	MimeType           string `protobuf:"bytes,3,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"`
	Size               int64  `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"`
	OriginalUnverified bool   `protobuf:"varint,5,opt,name=original_unverified,json=originalUnverified,proto3" json:"original_unverified,omitempty"`
	Data               []byte `protobuf:"bytes,6,opt,name=data,proto3" json:"data,omitempty"`
	ConversationId     string `protobuf:"bytes,7,opt,name=conversation_id,json=conversationId,proto3" json:"conversation_id,omitempty"`
	// contains filtered or unexported fields
}

Attachment download frames carry at most 256 KiB. History carries metadata only.

func (*Attachment) Descriptor deprecated

func (*Attachment) Descriptor() ([]byte, []int)

Deprecated: Use Attachment.ProtoReflect.Descriptor instead.

func (*Attachment) GetConversationId

func (x *Attachment) GetConversationId() string

func (*Attachment) GetData

func (x *Attachment) GetData() []byte

func (*Attachment) GetId

func (x *Attachment) GetId() string

func (*Attachment) GetMimeType

func (x *Attachment) GetMimeType() string

func (*Attachment) GetName

func (x *Attachment) GetName() string

func (*Attachment) GetOriginalUnverified

func (x *Attachment) GetOriginalUnverified() bool

func (*Attachment) GetSize

func (x *Attachment) GetSize() int64

func (*Attachment) ProtoMessage

func (*Attachment) ProtoMessage()

func (*Attachment) ProtoReflect

func (x *Attachment) ProtoReflect() protoreflect.Message

func (*Attachment) Reset

func (x *Attachment) Reset()

func (*Attachment) String

func (x *Attachment) String() string

type BackgroundJob added in v0.1.19

type BackgroundJob struct {
	JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	// execute or task.
	Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"`
	// running, completed, failed, stopped, or killed.
	State      string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"`
	Label      string `protobuf:"bytes,4,opt,name=label,proto3" json:"label,omitempty"`
	ToolCallId string `protobuf:"bytes,5,opt,name=tool_call_id,json=toolCallId,proto3" json:"tool_call_id,omitempty"`
	// Child-session key of the subagent a task job runs.
	SubagentKey string `protobuf:"bytes,6,opt,name=subagent_key,json=subagentKey,proto3" json:"subagent_key,omitempty"`
	// user or agent, for a stopped job.
	StoppedBy string `protobuf:"bytes,7,opt,name=stopped_by,json=stoppedBy,proto3" json:"stopped_by,omitempty"`
	// The job of a hidden run whose destination is this conversation; its transcript is not here.
	Hidden bool `protobuf:"varint,8,opt,name=hidden,proto3" json:"hidden,omitempty"`
	// The job's Completion Note text, in TranscriptEvent.completion_notes only.
	Note string `protobuf:"bytes,9,opt,name=note,proto3" json:"note,omitempty"`
	// contains filtered or unexported fields
}

A listed Background Job, or the job a Completion Note reports.

func (*BackgroundJob) Descriptor deprecated added in v0.1.19

func (*BackgroundJob) Descriptor() ([]byte, []int)

Deprecated: Use BackgroundJob.ProtoReflect.Descriptor instead.

func (*BackgroundJob) GetHidden added in v0.1.19

func (x *BackgroundJob) GetHidden() bool

func (*BackgroundJob) GetJobId added in v0.1.19

func (x *BackgroundJob) GetJobId() string

func (*BackgroundJob) GetKind added in v0.1.19

func (x *BackgroundJob) GetKind() string

func (*BackgroundJob) GetLabel added in v0.1.19

func (x *BackgroundJob) GetLabel() string

func (*BackgroundJob) GetNote added in v0.1.19

func (x *BackgroundJob) GetNote() string

func (*BackgroundJob) GetState added in v0.1.19

func (x *BackgroundJob) GetState() string

func (*BackgroundJob) GetStoppedBy added in v0.1.19

func (x *BackgroundJob) GetStoppedBy() string

func (*BackgroundJob) GetSubagentKey added in v0.1.19

func (x *BackgroundJob) GetSubagentKey() string

func (*BackgroundJob) GetToolCallId added in v0.1.19

func (x *BackgroundJob) GetToolCallId() string

func (*BackgroundJob) ProtoMessage added in v0.1.19

func (*BackgroundJob) ProtoMessage()

func (*BackgroundJob) ProtoReflect added in v0.1.19

func (x *BackgroundJob) ProtoReflect() protoreflect.Message

func (*BackgroundJob) Reset added in v0.1.19

func (x *BackgroundJob) Reset()

func (*BackgroundJob) String added in v0.1.19

func (x *BackgroundJob) String() string

type ChannelAgentChoices

type ChannelAgentChoices interface {
	ChannelAgentChoices(context.Context, string) ([]string, error)
	SidebarChannelAgentChoices(context.Context, string) (string, []string, error)
	SlackNames(context.Context, []string) map[string]string
	SlackTagsMatching(context.Context, string) []string
}

ChannelAgentChoices supplies live policy for actions and stored facts for display.

type ClearRevertRequest added in v0.1.17

type ClearRevertRequest struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*ClearRevertRequest) Descriptor deprecated added in v0.1.17

func (*ClearRevertRequest) Descriptor() ([]byte, []int)

Deprecated: Use ClearRevertRequest.ProtoReflect.Descriptor instead.

func (*ClearRevertRequest) GetId added in v0.1.17

func (x *ClearRevertRequest) GetId() string

func (*ClearRevertRequest) ProtoMessage added in v0.1.17

func (*ClearRevertRequest) ProtoMessage()

func (*ClearRevertRequest) ProtoReflect added in v0.1.17

func (x *ClearRevertRequest) ProtoReflect() protoreflect.Message

func (*ClearRevertRequest) Reset added in v0.1.17

func (x *ClearRevertRequest) Reset()

func (*ClearRevertRequest) String added in v0.1.17

func (x *ClearRevertRequest) String() string

type ClearRevertResponse added in v0.1.17

type ClearRevertResponse struct {
	// contains filtered or unexported fields
}

func (*ClearRevertResponse) Descriptor deprecated added in v0.1.17

func (*ClearRevertResponse) Descriptor() ([]byte, []int)

Deprecated: Use ClearRevertResponse.ProtoReflect.Descriptor instead.

func (*ClearRevertResponse) ProtoMessage added in v0.1.17

func (*ClearRevertResponse) ProtoMessage()

func (*ClearRevertResponse) ProtoReflect added in v0.1.17

func (x *ClearRevertResponse) ProtoReflect() protoreflect.Message

func (*ClearRevertResponse) Reset added in v0.1.17

func (x *ClearRevertResponse) Reset()

func (*ClearRevertResponse) String added in v0.1.17

func (x *ClearRevertResponse) String() string

type CodeModeCall added in v0.1.46

type CodeModeCall struct {
	Name       string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Arguments  string `protobuf:"bytes,2,opt,name=arguments,proto3" json:"arguments,omitempty"`
	Status     string `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"`
	Outcome    string `protobuf:"bytes,5,opt,name=outcome,proto3" json:"outcome,omitempty"`
	Reason     string `protobuf:"bytes,6,opt,name=reason,proto3" json:"reason,omitempty"`
	ReviewTurn string `protobuf:"bytes,7,opt,name=review_turn,json=reviewTurn,proto3" json:"review_turn,omitempty"`
	// contains filtered or unexported fields
}

One call an Execute script made. Arguments are clipped to 4 KiB. Status is running, ok, error, or denied, and empty when read from an older chat's review. Outcome (allow or deny), reason, and review_turn, the turn under which the script's review saves the approver's answer on this call, are set only when the automatic approver ran.

func (*CodeModeCall) Descriptor deprecated added in v0.1.46

func (*CodeModeCall) Descriptor() ([]byte, []int)

Deprecated: Use CodeModeCall.ProtoReflect.Descriptor instead.

func (*CodeModeCall) GetArguments added in v0.1.46

func (x *CodeModeCall) GetArguments() string

func (*CodeModeCall) GetName added in v0.1.46

func (x *CodeModeCall) GetName() string

func (*CodeModeCall) GetOutcome added in v0.1.46

func (x *CodeModeCall) GetOutcome() string

func (*CodeModeCall) GetReason added in v0.1.46

func (x *CodeModeCall) GetReason() string

func (*CodeModeCall) GetReviewTurn added in v0.1.47

func (x *CodeModeCall) GetReviewTurn() string

func (*CodeModeCall) GetStatus added in v0.1.46

func (x *CodeModeCall) GetStatus() string

func (*CodeModeCall) ProtoMessage added in v0.1.46

func (*CodeModeCall) ProtoMessage()

func (*CodeModeCall) ProtoReflect added in v0.1.46

func (x *CodeModeCall) ProtoReflect() protoreflect.Message

func (*CodeModeCall) Reset added in v0.1.46

func (x *CodeModeCall) Reset()

func (*CodeModeCall) String added in v0.1.46

func (x *CodeModeCall) String() string

type ConfigChannel

type ConfigChannel struct {
	Channel string   `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
	Agents  []string `protobuf:"bytes,2,rep,name=agents,proto3" json:"agents,omitempty"`
	// contains filtered or unexported fields
}

func (*ConfigChannel) Descriptor deprecated

func (*ConfigChannel) Descriptor() ([]byte, []int)

Deprecated: Use ConfigChannel.ProtoReflect.Descriptor instead.

func (*ConfigChannel) GetAgents

func (x *ConfigChannel) GetAgents() []string

func (*ConfigChannel) GetChannel

func (x *ConfigChannel) GetChannel() string

func (*ConfigChannel) ProtoMessage

func (*ConfigChannel) ProtoMessage()

func (*ConfigChannel) ProtoReflect

func (x *ConfigChannel) ProtoReflect() protoreflect.Message

func (*ConfigChannel) Reset

func (x *ConfigChannel) Reset()

func (*ConfigChannel) String

func (x *ConfigChannel) String() string

type ConfigModel

type ConfigModel struct {
	Name  string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Model string `protobuf:"bytes,2,opt,name=model,proto3" json:"model,omitempty"`
	// contains filtered or unexported fields
}

func (*ConfigModel) Descriptor deprecated

func (*ConfigModel) Descriptor() ([]byte, []int)

Deprecated: Use ConfigModel.ProtoReflect.Descriptor instead.

func (*ConfigModel) GetModel

func (x *ConfigModel) GetModel() string

func (*ConfigModel) GetName

func (x *ConfigModel) GetName() string

func (*ConfigModel) ProtoMessage

func (*ConfigModel) ProtoMessage()

func (*ConfigModel) ProtoReflect

func (x *ConfigModel) ProtoReflect() protoreflect.Message

func (*ConfigModel) Reset

func (x *ConfigModel) Reset()

func (*ConfigModel) String

func (x *ConfigModel) String() string

type ConfigView

type ConfigView struct {
	Workspace              string           `protobuf:"bytes,1,opt,name=workspace,proto3" json:"workspace,omitempty"`
	Overlays               []string         `protobuf:"bytes,2,rep,name=overlays,proto3" json:"overlays,omitempty"`
	Models                 []*ConfigModel   `protobuf:"bytes,3,rep,name=models,proto3" json:"models,omitempty"`
	SlackChannels          []*ConfigChannel `protobuf:"bytes,4,rep,name=slack_channels,json=slackChannels,proto3" json:"slack_channels,omitempty"`
	McpServers             []string         `protobuf:"bytes,5,rep,name=mcp_servers,json=mcpServers,proto3" json:"mcp_servers,omitempty"`
	LoggingLevel           string           `protobuf:"bytes,6,opt,name=logging_level,json=loggingLevel,proto3" json:"logging_level,omitempty"`
	AutoApproverModel      string           `protobuf:"bytes,7,opt,name=auto_approver_model,json=autoApproverModel,proto3" json:"auto_approver_model,omitempty"`
	InstrumentationEnabled bool             `` /* 128-byte string literal not displayed */
	McpExternal            bool             `protobuf:"varint,9,opt,name=mcp_external,json=mcpExternal,proto3" json:"mcp_external,omitempty"`
	TailscaleUser          string           `protobuf:"bytes,11,opt,name=tailscale_user,json=tailscaleUser,proto3" json:"tailscale_user,omitempty"`
	// contains filtered or unexported fields
}

func (*ConfigView) Descriptor deprecated

func (*ConfigView) Descriptor() ([]byte, []int)

Deprecated: Use ConfigView.ProtoReflect.Descriptor instead.

func (*ConfigView) GetAutoApproverModel

func (x *ConfigView) GetAutoApproverModel() string

func (*ConfigView) GetInstrumentationEnabled

func (x *ConfigView) GetInstrumentationEnabled() bool

func (*ConfigView) GetLoggingLevel

func (x *ConfigView) GetLoggingLevel() string

func (*ConfigView) GetMcpExternal

func (x *ConfigView) GetMcpExternal() bool

func (*ConfigView) GetMcpServers

func (x *ConfigView) GetMcpServers() []string

func (*ConfigView) GetModels

func (x *ConfigView) GetModels() []*ConfigModel

func (*ConfigView) GetOverlays

func (x *ConfigView) GetOverlays() []string

func (*ConfigView) GetSlackChannels

func (x *ConfigView) GetSlackChannels() []*ConfigChannel

func (*ConfigView) GetTailscaleUser

func (x *ConfigView) GetTailscaleUser() string

func (*ConfigView) GetWorkspace

func (x *ConfigView) GetWorkspace() string

func (*ConfigView) ProtoMessage

func (*ConfigView) ProtoMessage()

func (*ConfigView) ProtoReflect

func (x *ConfigView) ProtoReflect() protoreflect.Message

func (*ConfigView) Reset

func (x *ConfigView) Reset()

func (*ConfigView) String

func (x *ConfigView) String() string

type ConversationChange added in v0.1.12

type ConversationChange struct {
	ConversationId string `protobuf:"bytes,1,opt,name=conversation_id,json=conversationId,proto3" json:"conversation_id,omitempty"`
	Revision       string `protobuf:"bytes,2,opt,name=revision,proto3" json:"revision,omitempty"`
	// contains filtered or unexported fields
}

Wake-up hints only. History returns the revision actually read.

func (*ConversationChange) Descriptor deprecated added in v0.1.12

func (*ConversationChange) Descriptor() ([]byte, []int)

Deprecated: Use ConversationChange.ProtoReflect.Descriptor instead.

func (*ConversationChange) GetConversationId added in v0.1.12

func (x *ConversationChange) GetConversationId() string

func (*ConversationChange) GetRevision added in v0.1.12

func (x *ConversationChange) GetRevision() string

func (*ConversationChange) ProtoMessage added in v0.1.12

func (*ConversationChange) ProtoMessage()

func (*ConversationChange) ProtoReflect added in v0.1.12

func (x *ConversationChange) ProtoReflect() protoreflect.Message

func (*ConversationChange) Reset added in v0.1.12

func (x *ConversationChange) Reset()

func (*ConversationChange) String added in v0.1.12

func (x *ConversationChange) String() string

type CreateSessionRequest

type CreateSessionRequest struct {
	Name                 string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Agent                string `protobuf:"bytes,2,opt,name=agent,proto3" json:"agent,omitempty"`
	SourceConversationId string `protobuf:"bytes,3,opt,name=source_conversation_id,json=sourceConversationId,proto3" json:"source_conversation_id,omitempty"`
	// Set together to create a remote OpenCode session in that folder.
	OpencodeServer string `protobuf:"bytes,4,opt,name=opencode_server,json=opencodeServer,proto3" json:"opencode_server,omitempty"`
	Directory      string `protobuf:"bytes,5,opt,name=directory,proto3" json:"directory,omitempty"`
	// contains filtered or unexported fields
}

func (*CreateSessionRequest) Descriptor deprecated

func (*CreateSessionRequest) Descriptor() ([]byte, []int)

Deprecated: Use CreateSessionRequest.ProtoReflect.Descriptor instead.

func (*CreateSessionRequest) GetAgent

func (x *CreateSessionRequest) GetAgent() string

func (*CreateSessionRequest) GetDirectory added in v0.1.47

func (x *CreateSessionRequest) GetDirectory() string

func (*CreateSessionRequest) GetName

func (x *CreateSessionRequest) GetName() string

func (*CreateSessionRequest) GetOpencodeServer added in v0.1.47

func (x *CreateSessionRequest) GetOpencodeServer() string

func (*CreateSessionRequest) GetSourceConversationId

func (x *CreateSessionRequest) GetSourceConversationId() string

func (*CreateSessionRequest) ProtoMessage

func (*CreateSessionRequest) ProtoMessage()

func (*CreateSessionRequest) ProtoReflect

func (x *CreateSessionRequest) ProtoReflect() protoreflect.Message

func (*CreateSessionRequest) Reset

func (x *CreateSessionRequest) Reset()

func (*CreateSessionRequest) String

func (x *CreateSessionRequest) String() string

type CreateSessionResponse

type CreateSessionResponse struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*CreateSessionResponse) Descriptor deprecated

func (*CreateSessionResponse) Descriptor() ([]byte, []int)

Deprecated: Use CreateSessionResponse.ProtoReflect.Descriptor instead.

func (*CreateSessionResponse) GetId

func (x *CreateSessionResponse) GetId() string

func (*CreateSessionResponse) ProtoMessage

func (*CreateSessionResponse) ProtoMessage()

func (*CreateSessionResponse) ProtoReflect

func (x *CreateSessionResponse) ProtoReflect() protoreflect.Message

func (*CreateSessionResponse) Reset

func (x *CreateSessionResponse) Reset()

func (*CreateSessionResponse) String

func (x *CreateSessionResponse) String() string

type CronJob

type CronJob struct {
	Stem     string   `protobuf:"bytes,1,opt,name=stem,proto3" json:"stem,omitempty"`
	Status   string   `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
	LastRun  string   `protobuf:"bytes,3,opt,name=last_run,json=lastRun,proto3" json:"last_run,omitempty"`
	NextRun  string   `protobuf:"bytes,4,opt,name=next_run,json=nextRun,proto3" json:"next_run,omitempty"`
	Schedule string   `protobuf:"bytes,5,opt,name=schedule,proto3" json:"schedule,omitempty"`
	Body     string   `protobuf:"bytes,6,opt,name=body,proto3" json:"body,omitempty"`
	Agent    string   `protobuf:"bytes,7,opt,name=agent,proto3" json:"agent,omitempty"`
	Channel  string   `protobuf:"bytes,8,opt,name=channel,proto3" json:"channel,omitempty"`
	Upcoming []string `protobuf:"bytes,9,rep,name=upcoming,proto3" json:"upcoming,omitempty"`
	Origin   string   `protobuf:"bytes,10,opt,name=origin,proto3" json:"origin,omitempty"`
	// The job's space, else its agent's; empty shows the job in every space.
	Space string `protobuf:"bytes,11,opt,name=space,proto3" json:"space,omitempty"`
	// contains filtered or unexported fields
}

func (*CronJob) Descriptor deprecated

func (*CronJob) Descriptor() ([]byte, []int)

Deprecated: Use CronJob.ProtoReflect.Descriptor instead.

func (*CronJob) GetAgent

func (x *CronJob) GetAgent() string

func (*CronJob) GetBody

func (x *CronJob) GetBody() string

func (*CronJob) GetChannel

func (x *CronJob) GetChannel() string

func (*CronJob) GetLastRun

func (x *CronJob) GetLastRun() string

func (*CronJob) GetNextRun

func (x *CronJob) GetNextRun() string

func (*CronJob) GetOrigin

func (x *CronJob) GetOrigin() string

func (*CronJob) GetSchedule

func (x *CronJob) GetSchedule() string

func (*CronJob) GetSpace added in v0.1.50

func (x *CronJob) GetSpace() string

func (*CronJob) GetStatus

func (x *CronJob) GetStatus() string

func (*CronJob) GetStem

func (x *CronJob) GetStem() string

func (*CronJob) GetUpcoming

func (x *CronJob) GetUpcoming() []string

func (*CronJob) ProtoMessage

func (*CronJob) ProtoMessage()

func (*CronJob) ProtoReflect

func (x *CronJob) ProtoReflect() protoreflect.Message

func (*CronJob) Reset

func (x *CronJob) Reset()

func (*CronJob) String

func (x *CronJob) String() string

type CronJobs

type CronJobs interface {
	Jobs() ([]cronfrontend.Job, error)
	LoadOneOffCronjob(string) (protocol.OneOffCronjob, error)
	RunOneOffCronjob(context.Context, *protocol.OneOffCronjob) (protocol.CronRunResult, error)
}

CronJobs uses the process's existing Cron manager for reads and execution.

type DeleteSessionEntriesResponse

type DeleteSessionEntriesResponse struct {
	Deleted int64 `protobuf:"varint,1,opt,name=deleted,proto3" json:"deleted,omitempty"`
	// contains filtered or unexported fields
}

func (*DeleteSessionEntriesResponse) Descriptor deprecated

func (*DeleteSessionEntriesResponse) Descriptor() ([]byte, []int)

Deprecated: Use DeleteSessionEntriesResponse.ProtoReflect.Descriptor instead.

func (*DeleteSessionEntriesResponse) GetDeleted

func (x *DeleteSessionEntriesResponse) GetDeleted() int64

func (*DeleteSessionEntriesResponse) ProtoMessage

func (*DeleteSessionEntriesResponse) ProtoMessage()

func (*DeleteSessionEntriesResponse) ProtoReflect

func (*DeleteSessionEntriesResponse) Reset

func (x *DeleteSessionEntriesResponse) Reset()

func (*DeleteSessionEntriesResponse) String

type ForkSessionRequest added in v0.1.3

type ForkSessionRequest struct {
	Id     string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Before string `protobuf:"bytes,2,opt,name=before,proto3" json:"before,omitempty"`
	// contains filtered or unexported fields
}

func (*ForkSessionRequest) Descriptor deprecated added in v0.1.3

func (*ForkSessionRequest) Descriptor() ([]byte, []int)

Deprecated: Use ForkSessionRequest.ProtoReflect.Descriptor instead.

func (*ForkSessionRequest) GetBefore added in v0.1.3

func (x *ForkSessionRequest) GetBefore() string

func (*ForkSessionRequest) GetId added in v0.1.3

func (x *ForkSessionRequest) GetId() string

func (*ForkSessionRequest) ProtoMessage added in v0.1.3

func (*ForkSessionRequest) ProtoMessage()

func (*ForkSessionRequest) ProtoReflect added in v0.1.3

func (x *ForkSessionRequest) ProtoReflect() protoreflect.Message

func (*ForkSessionRequest) Reset added in v0.1.3

func (x *ForkSessionRequest) Reset()

func (*ForkSessionRequest) String added in v0.1.3

func (x *ForkSessionRequest) String() string

type ForkSessionResponse added in v0.1.3

type ForkSessionResponse struct {
	Id     string           `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Prompt *TranscriptEvent `protobuf:"bytes,2,opt,name=prompt,proto3" json:"prompt,omitempty"`
	// contains filtered or unexported fields
}

func (*ForkSessionResponse) Descriptor deprecated added in v0.1.3

func (*ForkSessionResponse) Descriptor() ([]byte, []int)

Deprecated: Use ForkSessionResponse.ProtoReflect.Descriptor instead.

func (*ForkSessionResponse) GetId added in v0.1.3

func (x *ForkSessionResponse) GetId() string

func (*ForkSessionResponse) GetPrompt added in v0.1.3

func (x *ForkSessionResponse) GetPrompt() *TranscriptEvent

func (*ForkSessionResponse) ProtoMessage added in v0.1.3

func (*ForkSessionResponse) ProtoMessage()

func (*ForkSessionResponse) ProtoReflect added in v0.1.3

func (x *ForkSessionResponse) ProtoReflect() protoreflect.Message

func (*ForkSessionResponse) Reset added in v0.1.3

func (x *ForkSessionResponse) Reset()

func (*ForkSessionResponse) String added in v0.1.3

func (x *ForkSessionResponse) String() string

type HandoffRequest added in v0.1.3

type HandoffRequest struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*HandoffRequest) Descriptor deprecated added in v0.1.3

func (*HandoffRequest) Descriptor() ([]byte, []int)

Deprecated: Use HandoffRequest.ProtoReflect.Descriptor instead.

func (*HandoffRequest) GetId added in v0.1.3

func (x *HandoffRequest) GetId() string

func (*HandoffRequest) ProtoMessage added in v0.1.3

func (*HandoffRequest) ProtoMessage()

func (*HandoffRequest) ProtoReflect added in v0.1.3

func (x *HandoffRequest) ProtoReflect() protoreflect.Message

func (*HandoffRequest) Reset added in v0.1.3

func (x *HandoffRequest) Reset()

func (*HandoffRequest) String added in v0.1.3

func (x *HandoffRequest) String() string

type HandoffResponse added in v0.1.3

type HandoffResponse struct {
	Document string `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
	// contains filtered or unexported fields
}

func (*HandoffResponse) Descriptor deprecated added in v0.1.3

func (*HandoffResponse) Descriptor() ([]byte, []int)

Deprecated: Use HandoffResponse.ProtoReflect.Descriptor instead.

func (*HandoffResponse) GetDocument added in v0.1.3

func (x *HandoffResponse) GetDocument() string

func (*HandoffResponse) ProtoMessage added in v0.1.3

func (*HandoffResponse) ProtoMessage()

func (*HandoffResponse) ProtoReflect added in v0.1.3

func (x *HandoffResponse) ProtoReflect() protoreflect.Message

func (*HandoffResponse) Reset added in v0.1.3

func (x *HandoffResponse) Reset()

func (*HandoffResponse) String added in v0.1.3

func (x *HandoffResponse) String() string

type HistoryRequest

type HistoryRequest struct {
	Id                   string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	SourceConversationId string `protobuf:"bytes,2,opt,name=source_conversation_id,json=sourceConversationId,proto3" json:"source_conversation_id,omitempty"`
	// Opaque inventory returned by the last applied History response.
	Revision string `protobuf:"bytes,4,opt,name=revision,proto3" json:"revision,omitempty"`
	// Positive limit returns only the newest limit saved entries plus running
	// turns, and follows only those entries in revision.
	Limit int32 `protobuf:"varint,5,opt,name=limit,proto3" json:"limit,omitempty"`
	// Positive before reads a settled page of entries older than this saved-entry
	// ID: the newest limit of them, or all from saved-entry ID from onward.
	Before int64 `protobuf:"varint,6,opt,name=before,proto3" json:"before,omitempty"`
	From   int64 `protobuf:"varint,7,opt,name=from,proto3" json:"from,omitempty"`
	// contains filtered or unexported fields
}

func (*HistoryRequest) Descriptor deprecated

func (*HistoryRequest) Descriptor() ([]byte, []int)

Deprecated: Use HistoryRequest.ProtoReflect.Descriptor instead.

func (*HistoryRequest) GetBefore added in v0.1.12

func (x *HistoryRequest) GetBefore() int64

func (*HistoryRequest) GetFrom added in v0.1.12

func (x *HistoryRequest) GetFrom() int64

func (*HistoryRequest) GetId

func (x *HistoryRequest) GetId() string

func (*HistoryRequest) GetLimit added in v0.1.12

func (x *HistoryRequest) GetLimit() int32

func (*HistoryRequest) GetRevision added in v0.1.12

func (x *HistoryRequest) GetRevision() string

func (*HistoryRequest) GetSourceConversationId

func (x *HistoryRequest) GetSourceConversationId() string

func (*HistoryRequest) ProtoMessage

func (*HistoryRequest) ProtoMessage()

func (*HistoryRequest) ProtoReflect

func (x *HistoryRequest) ProtoReflect() protoreflect.Message

func (*HistoryRequest) Reset

func (x *HistoryRequest) Reset()

func (*HistoryRequest) String

func (x *HistoryRequest) String() string

type HistoryResponse

type HistoryResponse struct {
	Messages []*TranscriptEvent `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"`
	// JSON object describing the chat's origin. Empty means no origin.
	Origin       string   `protobuf:"bytes,2,opt,name=origin,proto3" json:"origin,omitempty"`
	Delegations  []string `protobuf:"bytes,3,rep,name=delegations,proto3" json:"delegations,omitempty"`
	Revision     string   `protobuf:"bytes,10,opt,name=revision,proto3" json:"revision,omitempty"`
	Reset_       bool     `protobuf:"varint,4,opt,name=reset,proto3" json:"reset,omitempty"`
	ReplacedKeys []string `protobuf:"bytes,5,rep,name=replaced_keys,json=replacedKeys,proto3" json:"replaced_keys,omitempty"`
	RemovedKeys  []string `protobuf:"bytes,6,rep,name=removed_keys,json=removedKeys,proto3" json:"removed_keys,omitempty"`
	EntryKeys    []string `protobuf:"bytes,7,rep,name=entry_keys,json=entryKeys,proto3" json:"entry_keys,omitempty"`
	Running      bool     `protobuf:"varint,8,opt,name=running,proto3" json:"running,omitempty"`
	Terminal     string   `protobuf:"bytes,9,opt,name=terminal,proto3" json:"terminal,omitempty"`
	// Saved-entry ID where these entries begin; zero means the beginning.
	Start int64 `protobuf:"varint,11,opt,name=start,proto3" json:"start,omitempty"`
	// Older saved entries exist before start.
	More            bool   `protobuf:"varint,12,opt,name=more,proto3" json:"more,omitempty"`
	RevertEligible  bool   `protobuf:"varint,13,opt,name=revert_eligible,json=revertEligible,proto3" json:"revert_eligible,omitempty"`
	RevertMessageId string `protobuf:"bytes,14,opt,name=revert_message_id,json=revertMessageId,proto3" json:"revert_message_id,omitempty"`
	CanUndo         bool   `protobuf:"varint,15,opt,name=can_undo,json=canUndo,proto3" json:"can_undo,omitempty"`
	// An allowed agent's execute or task call runs attached, so MoveToBackground has work to move.
	Movable bool `protobuf:"varint,16,opt,name=movable,proto3" json:"movable,omitempty"`
	// Background Jobs running or holding an undelivered Completion Note, including those of hidden
	// cron and External MCP runs whose destination is this conversation.
	BackgroundJobs []*BackgroundJob `protobuf:"bytes,17,rep,name=background_jobs,json=backgroundJobs,proto3" json:"background_jobs,omitempty"`
	// Unanswered ask_user_question calls of this conversation's Web turns, in question ID order.
	PendingQuestions []*PendingQuestion `protobuf:"bytes,18,rep,name=pending_questions,json=pendingQuestions,proto3" json:"pending_questions,omitempty"`
	// Page-scoped turn correlations, including shadows without transcript output.
	Shadows          []*ShadowBinding  `protobuf:"bytes,19,rep,name=shadows,proto3" json:"shadows,omitempty"`
	ReviewRationales map[string]string `` /* 184-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*HistoryResponse) Descriptor deprecated

func (*HistoryResponse) Descriptor() ([]byte, []int)

Deprecated: Use HistoryResponse.ProtoReflect.Descriptor instead.

func (*HistoryResponse) GetBackgroundJobs added in v0.1.19

func (x *HistoryResponse) GetBackgroundJobs() []*BackgroundJob

func (*HistoryResponse) GetCanUndo added in v0.1.17

func (x *HistoryResponse) GetCanUndo() bool

func (*HistoryResponse) GetDelegations added in v0.1.11

func (x *HistoryResponse) GetDelegations() []string

func (*HistoryResponse) GetEntryKeys added in v0.1.12

func (x *HistoryResponse) GetEntryKeys() []string

func (*HistoryResponse) GetMessages

func (x *HistoryResponse) GetMessages() []*TranscriptEvent

func (*HistoryResponse) GetMore added in v0.1.12

func (x *HistoryResponse) GetMore() bool

func (*HistoryResponse) GetMovable added in v0.1.19

func (x *HistoryResponse) GetMovable() bool

func (*HistoryResponse) GetOrigin

func (x *HistoryResponse) GetOrigin() string

func (*HistoryResponse) GetPendingQuestions added in v0.1.27

func (x *HistoryResponse) GetPendingQuestions() []*PendingQuestion

func (*HistoryResponse) GetRemovedKeys added in v0.1.12

func (x *HistoryResponse) GetRemovedKeys() []string

func (*HistoryResponse) GetReplacedKeys added in v0.1.12

func (x *HistoryResponse) GetReplacedKeys() []string

func (*HistoryResponse) GetReset_ added in v0.1.12

func (x *HistoryResponse) GetReset_() bool

func (*HistoryResponse) GetRevertEligible added in v0.1.17

func (x *HistoryResponse) GetRevertEligible() bool

func (*HistoryResponse) GetRevertMessageId added in v0.1.17

func (x *HistoryResponse) GetRevertMessageId() string

func (*HistoryResponse) GetReviewRationales added in v0.1.40

func (x *HistoryResponse) GetReviewRationales() map[string]string

func (*HistoryResponse) GetRevision added in v0.1.12

func (x *HistoryResponse) GetRevision() string

func (*HistoryResponse) GetRunning added in v0.1.12

func (x *HistoryResponse) GetRunning() bool

func (*HistoryResponse) GetShadows added in v0.1.33

func (x *HistoryResponse) GetShadows() []*ShadowBinding

func (*HistoryResponse) GetStart added in v0.1.12

func (x *HistoryResponse) GetStart() int64

func (*HistoryResponse) GetTerminal added in v0.1.12

func (x *HistoryResponse) GetTerminal() string

func (*HistoryResponse) ProtoMessage

func (*HistoryResponse) ProtoMessage()

func (*HistoryResponse) ProtoReflect

func (x *HistoryResponse) ProtoReflect() protoreflect.Message

func (*HistoryResponse) Reset

func (x *HistoryResponse) Reset()

func (*HistoryResponse) String

func (x *HistoryResponse) String() string

type IdentityRequest

type IdentityRequest struct {
	// contains filtered or unexported fields
}

func (*IdentityRequest) Descriptor deprecated

func (*IdentityRequest) Descriptor() ([]byte, []int)

Deprecated: Use IdentityRequest.ProtoReflect.Descriptor instead.

func (*IdentityRequest) ProtoMessage

func (*IdentityRequest) ProtoMessage()

func (*IdentityRequest) ProtoReflect

func (x *IdentityRequest) ProtoReflect() protoreflect.Message

func (*IdentityRequest) Reset

func (x *IdentityRequest) Reset()

func (*IdentityRequest) String

func (x *IdentityRequest) String() string

type IdentityResponse

type IdentityResponse struct {
	Username  string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
	Principal string `protobuf:"bytes,2,opt,name=principal,proto3" json:"principal,omitempty"`
	// contains filtered or unexported fields
}

func (*IdentityResponse) Descriptor deprecated

func (*IdentityResponse) Descriptor() ([]byte, []int)

Deprecated: Use IdentityResponse.ProtoReflect.Descriptor instead.

func (*IdentityResponse) GetPrincipal added in v0.1.12

func (x *IdentityResponse) GetPrincipal() string

func (*IdentityResponse) GetUsername

func (x *IdentityResponse) GetUsername() string

func (*IdentityResponse) ProtoMessage

func (*IdentityResponse) ProtoMessage()

func (*IdentityResponse) ProtoReflect

func (x *IdentityResponse) ProtoReflect() protoreflect.Message

func (*IdentityResponse) Reset

func (x *IdentityResponse) Reset()

func (*IdentityResponse) String

func (x *IdentityResponse) String() string

type JoinRequest

type JoinRequest struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*JoinRequest) Descriptor deprecated

func (*JoinRequest) Descriptor() ([]byte, []int)

Deprecated: Use JoinRequest.ProtoReflect.Descriptor instead.

func (*JoinRequest) GetId

func (x *JoinRequest) GetId() string

func (*JoinRequest) ProtoMessage

func (*JoinRequest) ProtoMessage()

func (*JoinRequest) ProtoReflect

func (x *JoinRequest) ProtoReflect() protoreflect.Message

func (*JoinRequest) Reset

func (x *JoinRequest) Reset()

func (*JoinRequest) String

func (x *JoinRequest) String() string

type ListAgentsRequest

type ListAgentsRequest struct {
	ConversationId string `protobuf:"bytes,1,opt,name=conversation_id,json=conversationId,proto3" json:"conversation_id,omitempty"`
	// contains filtered or unexported fields
}

func (*ListAgentsRequest) Descriptor deprecated

func (*ListAgentsRequest) Descriptor() ([]byte, []int)

Deprecated: Use ListAgentsRequest.ProtoReflect.Descriptor instead.

func (*ListAgentsRequest) GetConversationId

func (x *ListAgentsRequest) GetConversationId() string

func (*ListAgentsRequest) ProtoMessage

func (*ListAgentsRequest) ProtoMessage()

func (*ListAgentsRequest) ProtoReflect

func (x *ListAgentsRequest) ProtoReflect() protoreflect.Message

func (*ListAgentsRequest) Reset

func (x *ListAgentsRequest) Reset()

func (*ListAgentsRequest) String

func (x *ListAgentsRequest) String() string

type ListAgentsResponse

type ListAgentsResponse struct {
	Agents       []*Agent `protobuf:"bytes,1,rep,name=agents,proto3" json:"agents,omitempty"`
	CurrentAgent string   `protobuf:"bytes,2,opt,name=current_agent,json=currentAgent,proto3" json:"current_agent,omitempty"`
	// contains filtered or unexported fields
}

func (*ListAgentsResponse) Descriptor deprecated

func (*ListAgentsResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListAgentsResponse.ProtoReflect.Descriptor instead.

func (*ListAgentsResponse) GetAgents

func (x *ListAgentsResponse) GetAgents() []*Agent

func (*ListAgentsResponse) GetCurrentAgent

func (x *ListAgentsResponse) GetCurrentAgent() string

func (*ListAgentsResponse) ProtoMessage

func (*ListAgentsResponse) ProtoMessage()

func (*ListAgentsResponse) ProtoReflect

func (x *ListAgentsResponse) ProtoReflect() protoreflect.Message

func (*ListAgentsResponse) Reset

func (x *ListAgentsResponse) Reset()

func (*ListAgentsResponse) String

func (x *ListAgentsResponse) String() string

type ListConfigRequest

type ListConfigRequest struct {
	// contains filtered or unexported fields
}

func (*ListConfigRequest) Descriptor deprecated

func (*ListConfigRequest) Descriptor() ([]byte, []int)

Deprecated: Use ListConfigRequest.ProtoReflect.Descriptor instead.

func (*ListConfigRequest) ProtoMessage

func (*ListConfigRequest) ProtoMessage()

func (*ListConfigRequest) ProtoReflect

func (x *ListConfigRequest) ProtoReflect() protoreflect.Message

func (*ListConfigRequest) Reset

func (x *ListConfigRequest) Reset()

func (*ListConfigRequest) String

func (x *ListConfigRequest) String() string

type ListConfigResponse

type ListConfigResponse struct {
	Config *ConfigView `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	// contains filtered or unexported fields
}

func (*ListConfigResponse) Descriptor deprecated

func (*ListConfigResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListConfigResponse.ProtoReflect.Descriptor instead.

func (*ListConfigResponse) GetConfig

func (x *ListConfigResponse) GetConfig() *ConfigView

func (*ListConfigResponse) ProtoMessage

func (*ListConfigResponse) ProtoMessage()

func (*ListConfigResponse) ProtoReflect

func (x *ListConfigResponse) ProtoReflect() protoreflect.Message

func (*ListConfigResponse) Reset

func (x *ListConfigResponse) Reset()

func (*ListConfigResponse) String

func (x *ListConfigResponse) String() string

type ListCronJobsRequest

type ListCronJobsRequest struct {
	// contains filtered or unexported fields
}

func (*ListCronJobsRequest) Descriptor deprecated

func (*ListCronJobsRequest) Descriptor() ([]byte, []int)

Deprecated: Use ListCronJobsRequest.ProtoReflect.Descriptor instead.

func (*ListCronJobsRequest) ProtoMessage

func (*ListCronJobsRequest) ProtoMessage()

func (*ListCronJobsRequest) ProtoReflect

func (x *ListCronJobsRequest) ProtoReflect() protoreflect.Message

func (*ListCronJobsRequest) Reset

func (x *ListCronJobsRequest) Reset()

func (*ListCronJobsRequest) String

func (x *ListCronJobsRequest) String() string

type ListCronJobsResponse

type ListCronJobsResponse struct {
	Jobs []*CronJob `protobuf:"bytes,1,rep,name=jobs,proto3" json:"jobs,omitempty"`
	// contains filtered or unexported fields
}

func (*ListCronJobsResponse) Descriptor deprecated

func (*ListCronJobsResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListCronJobsResponse.ProtoReflect.Descriptor instead.

func (*ListCronJobsResponse) GetJobs

func (x *ListCronJobsResponse) GetJobs() []*CronJob

func (*ListCronJobsResponse) ProtoMessage

func (*ListCronJobsResponse) ProtoMessage()

func (*ListCronJobsResponse) ProtoReflect

func (x *ListCronJobsResponse) ProtoReflect() protoreflect.Message

func (*ListCronJobsResponse) Reset

func (x *ListCronJobsResponse) Reset()

func (*ListCronJobsResponse) String

func (x *ListCronJobsResponse) String() string

type ListPagesRequest added in v0.1.52

type ListPagesRequest struct {
	// contains filtered or unexported fields
}

func (*ListPagesRequest) Descriptor deprecated added in v0.1.52

func (*ListPagesRequest) Descriptor() ([]byte, []int)

Deprecated: Use ListPagesRequest.ProtoReflect.Descriptor instead.

func (*ListPagesRequest) ProtoMessage added in v0.1.52

func (*ListPagesRequest) ProtoMessage()

func (*ListPagesRequest) ProtoReflect added in v0.1.52

func (x *ListPagesRequest) ProtoReflect() protoreflect.Message

func (*ListPagesRequest) Reset added in v0.1.52

func (x *ListPagesRequest) Reset()

func (*ListPagesRequest) String added in v0.1.52

func (x *ListPagesRequest) String() string

type ListPagesResponse added in v0.1.52

type ListPagesResponse struct {
	Pages []*PageEntry `protobuf:"bytes,1,rep,name=pages,proto3" json:"pages,omitempty"`
	// contains filtered or unexported fields
}

ListPagesResponse lists the HTML files of agents that still exist.

func (*ListPagesResponse) Descriptor deprecated added in v0.1.52

func (*ListPagesResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListPagesResponse.ProtoReflect.Descriptor instead.

func (*ListPagesResponse) GetPages added in v0.1.52

func (x *ListPagesResponse) GetPages() []*PageEntry

func (*ListPagesResponse) ProtoMessage added in v0.1.52

func (*ListPagesResponse) ProtoMessage()

func (*ListPagesResponse) ProtoReflect added in v0.1.52

func (x *ListPagesResponse) ProtoReflect() protoreflect.Message

func (*ListPagesResponse) Reset added in v0.1.52

func (x *ListPagesResponse) Reset()

func (*ListPagesResponse) String added in v0.1.52

func (x *ListPagesResponse) String() string

type ListQueueRequest

type ListQueueRequest struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*ListQueueRequest) Descriptor deprecated

func (*ListQueueRequest) Descriptor() ([]byte, []int)

Deprecated: Use ListQueueRequest.ProtoReflect.Descriptor instead.

func (*ListQueueRequest) GetId

func (x *ListQueueRequest) GetId() string

func (*ListQueueRequest) ProtoMessage

func (*ListQueueRequest) ProtoMessage()

func (*ListQueueRequest) ProtoReflect

func (x *ListQueueRequest) ProtoReflect() protoreflect.Message

func (*ListQueueRequest) Reset

func (x *ListQueueRequest) Reset()

func (*ListQueueRequest) String

func (x *ListQueueRequest) String() string

type ListQueueResponse

type ListQueueResponse struct {
	Items []*QueueItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
	// contains filtered or unexported fields
}

func (*ListQueueResponse) Descriptor deprecated

func (*ListQueueResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListQueueResponse.ProtoReflect.Descriptor instead.

func (*ListQueueResponse) GetItems

func (x *ListQueueResponse) GetItems() []*QueueItem

func (*ListQueueResponse) ProtoMessage

func (*ListQueueResponse) ProtoMessage()

func (*ListQueueResponse) ProtoReflect

func (x *ListQueueResponse) ProtoReflect() protoreflect.Message

func (*ListQueueResponse) Reset

func (x *ListQueueResponse) Reset()

func (*ListQueueResponse) String

func (x *ListQueueResponse) String() string

type ListSessionEntriesResponse

type ListSessionEntriesResponse struct {
	Entries []*SessionEntryMeta `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
	// contains filtered or unexported fields
}

func (*ListSessionEntriesResponse) Descriptor deprecated

func (*ListSessionEntriesResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListSessionEntriesResponse.ProtoReflect.Descriptor instead.

func (*ListSessionEntriesResponse) GetEntries

func (x *ListSessionEntriesResponse) GetEntries() []*SessionEntryMeta

func (*ListSessionEntriesResponse) ProtoMessage

func (*ListSessionEntriesResponse) ProtoMessage()

func (*ListSessionEntriesResponse) ProtoReflect

func (*ListSessionEntriesResponse) Reset

func (x *ListSessionEntriesResponse) Reset()

func (*ListSessionEntriesResponse) String

func (x *ListSessionEntriesResponse) String() string

type ListSessionsRequest

type ListSessionsRequest struct {
	// contains filtered or unexported fields
}

func (*ListSessionsRequest) Descriptor deprecated

func (*ListSessionsRequest) Descriptor() ([]byte, []int)

Deprecated: Use ListSessionsRequest.ProtoReflect.Descriptor instead.

func (*ListSessionsRequest) ProtoMessage

func (*ListSessionsRequest) ProtoMessage()

func (*ListSessionsRequest) ProtoReflect

func (x *ListSessionsRequest) ProtoReflect() protoreflect.Message

func (*ListSessionsRequest) Reset

func (x *ListSessionsRequest) Reset()

func (*ListSessionsRequest) String

func (x *ListSessionsRequest) String() string

type ListSessionsResponse

type ListSessionsResponse struct {
	Sessions          []*Session `protobuf:"bytes,1,rep,name=sessions,proto3" json:"sessions,omitempty"`
	Owner             string     `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"`
	UpstreamSuccess   bool       `protobuf:"varint,3,opt,name=upstream_success,json=upstreamSuccess,proto3" json:"upstream_success,omitempty"`
	SummariesComplete bool       `protobuf:"varint,4,opt,name=summaries_complete,json=summariesComplete,proto3" json:"summaries_complete,omitempty"`
	// Sent with the completion message: remote servers, and per agent the tags people may set
	// on its sessions. Remote OpenCode sessions take any tag.
	OpencodeServers map[string]int32 `` // Server name to its relay port.
	/* 181-byte string literal not displayed */
	AgentTags map[string]*TagChoices `` /* 162-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*ListSessionsResponse) Descriptor deprecated

func (*ListSessionsResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListSessionsResponse.ProtoReflect.Descriptor instead.

func (*ListSessionsResponse) GetAgentTags added in v0.1.47

func (x *ListSessionsResponse) GetAgentTags() map[string]*TagChoices

func (*ListSessionsResponse) GetOpencodeServers added in v0.1.47

func (x *ListSessionsResponse) GetOpencodeServers() map[string]int32

func (*ListSessionsResponse) GetOwner

func (x *ListSessionsResponse) GetOwner() string

func (*ListSessionsResponse) GetSessions

func (x *ListSessionsResponse) GetSessions() []*Session

func (*ListSessionsResponse) GetSummariesComplete

func (x *ListSessionsResponse) GetSummariesComplete() bool

func (*ListSessionsResponse) GetUpstreamSuccess

func (x *ListSessionsResponse) GetUpstreamSuccess() bool

func (*ListSessionsResponse) ProtoMessage

func (*ListSessionsResponse) ProtoMessage()

func (*ListSessionsResponse) ProtoReflect

func (x *ListSessionsResponse) ProtoReflect() protoreflect.Message

func (*ListSessionsResponse) Reset

func (x *ListSessionsResponse) Reset()

func (*ListSessionsResponse) String

func (x *ListSessionsResponse) String() string

type ListSkillsRequest

type ListSkillsRequest struct {
	Agent string `protobuf:"bytes,1,opt,name=agent,proto3" json:"agent,omitempty"`
	// contains filtered or unexported fields
}

func (*ListSkillsRequest) Descriptor deprecated

func (*ListSkillsRequest) Descriptor() ([]byte, []int)

Deprecated: Use ListSkillsRequest.ProtoReflect.Descriptor instead.

func (*ListSkillsRequest) GetAgent

func (x *ListSkillsRequest) GetAgent() string

func (*ListSkillsRequest) ProtoMessage

func (*ListSkillsRequest) ProtoMessage()

func (*ListSkillsRequest) ProtoReflect

func (x *ListSkillsRequest) ProtoReflect() protoreflect.Message

func (*ListSkillsRequest) Reset

func (x *ListSkillsRequest) Reset()

func (*ListSkillsRequest) String

func (x *ListSkillsRequest) String() string

type ListSkillsResponse

type ListSkillsResponse struct {
	Skills []*Skill `protobuf:"bytes,1,rep,name=skills,proto3" json:"skills,omitempty"`
	// contains filtered or unexported fields
}

func (*ListSkillsResponse) Descriptor deprecated

func (*ListSkillsResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListSkillsResponse.ProtoReflect.Descriptor instead.

func (*ListSkillsResponse) GetSkills

func (x *ListSkillsResponse) GetSkills() []*Skill

func (*ListSkillsResponse) ProtoMessage

func (*ListSkillsResponse) ProtoMessage()

func (*ListSkillsResponse) ProtoReflect

func (x *ListSkillsResponse) ProtoReflect() protoreflect.Message

func (*ListSkillsResponse) Reset

func (x *ListSkillsResponse) Reset()

func (*ListSkillsResponse) String

func (x *ListSkillsResponse) String() string

type ListWorkflowsRequest added in v0.1.12

type ListWorkflowsRequest struct {
	// contains filtered or unexported fields
}

func (*ListWorkflowsRequest) Descriptor deprecated added in v0.1.12

func (*ListWorkflowsRequest) Descriptor() ([]byte, []int)

Deprecated: Use ListWorkflowsRequest.ProtoReflect.Descriptor instead.

func (*ListWorkflowsRequest) ProtoMessage added in v0.1.12

func (*ListWorkflowsRequest) ProtoMessage()

func (*ListWorkflowsRequest) ProtoReflect added in v0.1.12

func (x *ListWorkflowsRequest) ProtoReflect() protoreflect.Message

func (*ListWorkflowsRequest) Reset added in v0.1.12

func (x *ListWorkflowsRequest) Reset()

func (*ListWorkflowsRequest) String added in v0.1.12

func (x *ListWorkflowsRequest) String() string

type ListWorkflowsResponse added in v0.1.12

type ListWorkflowsResponse struct {
	Workflows []*Workflow `protobuf:"bytes,1,rep,name=workflows,proto3" json:"workflows,omitempty"`
	// contains filtered or unexported fields
}

func (*ListWorkflowsResponse) Descriptor deprecated added in v0.1.12

func (*ListWorkflowsResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListWorkflowsResponse.ProtoReflect.Descriptor instead.

func (*ListWorkflowsResponse) GetWorkflows added in v0.1.12

func (x *ListWorkflowsResponse) GetWorkflows() []*Workflow

func (*ListWorkflowsResponse) ProtoMessage added in v0.1.12

func (*ListWorkflowsResponse) ProtoMessage()

func (*ListWorkflowsResponse) ProtoReflect added in v0.1.12

func (x *ListWorkflowsResponse) ProtoReflect() protoreflect.Message

func (*ListWorkflowsResponse) Reset added in v0.1.12

func (x *ListWorkflowsResponse) Reset()

func (*ListWorkflowsResponse) String added in v0.1.12

func (x *ListWorkflowsResponse) String() string

type LoadSessionEntriesResponse

type LoadSessionEntriesResponse struct {
	Entries []*SessionEntryData `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
	// contains filtered or unexported fields
}

func (*LoadSessionEntriesResponse) Descriptor deprecated

func (*LoadSessionEntriesResponse) Descriptor() ([]byte, []int)

Deprecated: Use LoadSessionEntriesResponse.ProtoReflect.Descriptor instead.

func (*LoadSessionEntriesResponse) GetEntries

func (x *LoadSessionEntriesResponse) GetEntries() []*SessionEntryData

func (*LoadSessionEntriesResponse) ProtoMessage

func (*LoadSessionEntriesResponse) ProtoMessage()

func (*LoadSessionEntriesResponse) ProtoReflect

func (*LoadSessionEntriesResponse) Reset

func (x *LoadSessionEntriesResponse) Reset()

func (*LoadSessionEntriesResponse) String

func (x *LoadSessionEntriesResponse) String() string

type MessageMatch added in v0.1.3

type MessageMatch struct {
	ConversationId string           `protobuf:"bytes,1,opt,name=conversation_id,json=conversationId,proto3" json:"conversation_id,omitempty"`
	Message        *TranscriptEvent `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
	// contains filtered or unexported fields
}

func (*MessageMatch) Descriptor deprecated added in v0.1.3

func (*MessageMatch) Descriptor() ([]byte, []int)

Deprecated: Use MessageMatch.ProtoReflect.Descriptor instead.

func (*MessageMatch) GetConversationId added in v0.1.3

func (x *MessageMatch) GetConversationId() string

func (*MessageMatch) GetMessage added in v0.1.3

func (x *MessageMatch) GetMessage() *TranscriptEvent

func (*MessageMatch) ProtoMessage added in v0.1.3

func (*MessageMatch) ProtoMessage()

func (*MessageMatch) ProtoReflect added in v0.1.3

func (x *MessageMatch) ProtoReflect() protoreflect.Message

func (*MessageMatch) Reset added in v0.1.3

func (x *MessageMatch) Reset()

func (*MessageMatch) String added in v0.1.3

func (x *MessageMatch) String() string

type MoveToBackgroundRequest added in v0.1.19

type MoveToBackgroundRequest struct {
	ConversationId string `protobuf:"bytes,1,opt,name=conversation_id,json=conversationId,proto3" json:"conversation_id,omitempty"`
	// contains filtered or unexported fields
}

func (*MoveToBackgroundRequest) Descriptor deprecated added in v0.1.19

func (*MoveToBackgroundRequest) Descriptor() ([]byte, []int)

Deprecated: Use MoveToBackgroundRequest.ProtoReflect.Descriptor instead.

func (*MoveToBackgroundRequest) GetConversationId added in v0.1.19

func (x *MoveToBackgroundRequest) GetConversationId() string

func (*MoveToBackgroundRequest) ProtoMessage added in v0.1.19

func (*MoveToBackgroundRequest) ProtoMessage()

func (*MoveToBackgroundRequest) ProtoReflect added in v0.1.19

func (x *MoveToBackgroundRequest) ProtoReflect() protoreflect.Message

func (*MoveToBackgroundRequest) Reset added in v0.1.19

func (x *MoveToBackgroundRequest) Reset()

func (*MoveToBackgroundRequest) String added in v0.1.19

func (x *MoveToBackgroundRequest) String() string

type MoveToBackgroundResponse added in v0.1.19

type MoveToBackgroundResponse struct {
	Moved bool `protobuf:"varint,1,opt,name=moved,proto3" json:"moved,omitempty"`
	// contains filtered or unexported fields
}

func (*MoveToBackgroundResponse) Descriptor deprecated added in v0.1.19

func (*MoveToBackgroundResponse) Descriptor() ([]byte, []int)

Deprecated: Use MoveToBackgroundResponse.ProtoReflect.Descriptor instead.

func (*MoveToBackgroundResponse) GetMoved added in v0.1.19

func (x *MoveToBackgroundResponse) GetMoved() bool

func (*MoveToBackgroundResponse) ProtoMessage added in v0.1.19

func (*MoveToBackgroundResponse) ProtoMessage()

func (*MoveToBackgroundResponse) ProtoReflect added in v0.1.19

func (x *MoveToBackgroundResponse) ProtoReflect() protoreflect.Message

func (*MoveToBackgroundResponse) Reset added in v0.1.19

func (x *MoveToBackgroundResponse) Reset()

func (*MoveToBackgroundResponse) String added in v0.1.19

func (x *MoveToBackgroundResponse) String() string

type Page added in v0.1.52

type Page struct {
	Space       string `protobuf:"bytes,1,opt,name=space,proto3" json:"space,omitempty"`
	ContentType string `protobuf:"bytes,2,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"`
	Body        []byte `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"`
	// contains filtered or unexported fields
}

Page is a stored file or Page Data entry with its agent's current space.

func (*Page) Descriptor deprecated added in v0.1.52

func (*Page) Descriptor() ([]byte, []int)

Deprecated: Use Page.ProtoReflect.Descriptor instead.

func (*Page) GetBody added in v0.1.52

func (x *Page) GetBody() []byte

func (*Page) GetContentType added in v0.1.52

func (x *Page) GetContentType() string

func (*Page) GetSpace added in v0.1.52

func (x *Page) GetSpace() string

func (*Page) ProtoMessage added in v0.1.52

func (*Page) ProtoMessage()

func (*Page) ProtoReflect added in v0.1.52

func (x *Page) ProtoReflect() protoreflect.Message

func (*Page) Reset added in v0.1.52

func (x *Page) Reset()

func (*Page) String added in v0.1.52

func (x *Page) String() string

type PageEntry added in v0.1.52

type PageEntry struct {
	Agent string `protobuf:"bytes,1,opt,name=agent,proto3" json:"agent,omitempty"`
	Space string `protobuf:"bytes,2,opt,name=space,proto3" json:"space,omitempty"`
	Path  string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
	// contains filtered or unexported fields
}

func (*PageEntry) Descriptor deprecated added in v0.1.52

func (*PageEntry) Descriptor() ([]byte, []int)

Deprecated: Use PageEntry.ProtoReflect.Descriptor instead.

func (*PageEntry) GetAgent added in v0.1.52

func (x *PageEntry) GetAgent() string

func (*PageEntry) GetPath added in v0.1.52

func (x *PageEntry) GetPath() string

func (*PageEntry) GetSpace added in v0.1.52

func (x *PageEntry) GetSpace() string

func (*PageEntry) ProtoMessage added in v0.1.52

func (*PageEntry) ProtoMessage()

func (*PageEntry) ProtoReflect added in v0.1.52

func (x *PageEntry) ProtoReflect() protoreflect.Message

func (*PageEntry) Reset added in v0.1.52

func (x *PageEntry) Reset()

func (*PageEntry) String added in v0.1.52

func (x *PageEntry) String() string

type PageRequest added in v0.1.52

type PageRequest struct {
	Agent string `protobuf:"bytes,1,opt,name=agent,proto3" json:"agent,omitempty"`
	Path  string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
	Data  bool   `protobuf:"varint,3,opt,name=data,proto3" json:"data,omitempty"`
	// contains filtered or unexported fields
}

PageRequest names an agent's Hosted Page file, or its Page Data entry when data is set. An empty path or one ending in / names index.html.

func (*PageRequest) Descriptor deprecated added in v0.1.52

func (*PageRequest) Descriptor() ([]byte, []int)

Deprecated: Use PageRequest.ProtoReflect.Descriptor instead.

func (*PageRequest) GetAgent added in v0.1.52

func (x *PageRequest) GetAgent() string

func (*PageRequest) GetData added in v0.1.52

func (x *PageRequest) GetData() bool

func (*PageRequest) GetPath added in v0.1.52

func (x *PageRequest) GetPath() string

func (*PageRequest) ProtoMessage added in v0.1.52

func (*PageRequest) ProtoMessage()

func (*PageRequest) ProtoReflect added in v0.1.52

func (x *PageRequest) ProtoReflect() protoreflect.Message

func (*PageRequest) Reset added in v0.1.52

func (x *PageRequest) Reset()

func (*PageRequest) String added in v0.1.52

func (x *PageRequest) String() string

type PendingQuestion added in v0.1.27

type PendingQuestion struct {
	Id       string            `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Question string            `protobuf:"bytes,2,opt,name=question,proto3" json:"question,omitempty"`
	Details  string            `protobuf:"bytes,3,opt,name=details,proto3" json:"details,omitempty"`
	Options  []*QuestionOption `protobuf:"bytes,4,rep,name=options,proto3" json:"options,omitempty"`
	// Several options may be selected.
	Multiple bool `protobuf:"varint,5,opt,name=multiple,proto3" json:"multiple,omitempty"`
	// contains filtered or unexported fields
}

An ask_user_question call a Web turn waits on; AnswerQuestion answers it by ID.

func (*PendingQuestion) Descriptor deprecated added in v0.1.27

func (*PendingQuestion) Descriptor() ([]byte, []int)

Deprecated: Use PendingQuestion.ProtoReflect.Descriptor instead.

func (*PendingQuestion) GetDetails added in v0.1.27

func (x *PendingQuestion) GetDetails() string

func (*PendingQuestion) GetId added in v0.1.27

func (x *PendingQuestion) GetId() string

func (*PendingQuestion) GetMultiple added in v0.1.27

func (x *PendingQuestion) GetMultiple() bool

func (*PendingQuestion) GetOptions added in v0.1.27

func (x *PendingQuestion) GetOptions() []*QuestionOption

func (*PendingQuestion) GetQuestion added in v0.1.27

func (x *PendingQuestion) GetQuestion() string

func (*PendingQuestion) ProtoMessage added in v0.1.27

func (*PendingQuestion) ProtoMessage()

func (*PendingQuestion) ProtoReflect added in v0.1.27

func (x *PendingQuestion) ProtoReflect() protoreflect.Message

func (*PendingQuestion) Reset added in v0.1.27

func (x *PendingQuestion) Reset()

func (*PendingQuestion) String added in v0.1.27

func (x *PendingQuestion) String() string

type PromptDelivery

type PromptDelivery int32
const (
	PromptDelivery_STEER PromptDelivery = 0
	PromptDelivery_QUEUE PromptDelivery = 1
	PromptDelivery_STASH PromptDelivery = 2
)

func (PromptDelivery) Descriptor

func (PromptDelivery) Enum

func (x PromptDelivery) Enum() *PromptDelivery

func (PromptDelivery) EnumDescriptor deprecated

func (PromptDelivery) EnumDescriptor() ([]byte, []int)

Deprecated: Use PromptDelivery.Descriptor instead.

func (PromptDelivery) Number

func (PromptDelivery) String

func (x PromptDelivery) String() string

func (PromptDelivery) Type

type PromptRequest

type PromptRequest struct {
	Id            string         `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Text          string         `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
	Delivery      PromptDelivery `protobuf:"varint,3,opt,name=delivery,proto3,enum=rpc.PromptDelivery" json:"delivery,omitempty"`
	AttachmentIds []string       `protobuf:"bytes,4,rep,name=attachment_ids,json=attachmentIds,proto3" json:"attachment_ids,omitempty"`
	MessageId     string         `protobuf:"bytes,5,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
	// contains filtered or unexported fields
}

func (*PromptRequest) Descriptor deprecated

func (*PromptRequest) Descriptor() ([]byte, []int)

Deprecated: Use PromptRequest.ProtoReflect.Descriptor instead.

func (*PromptRequest) GetAttachmentIds

func (x *PromptRequest) GetAttachmentIds() []string

func (*PromptRequest) GetDelivery

func (x *PromptRequest) GetDelivery() PromptDelivery

func (*PromptRequest) GetId

func (x *PromptRequest) GetId() string

func (*PromptRequest) GetMessageId

func (x *PromptRequest) GetMessageId() string

func (*PromptRequest) GetText

func (x *PromptRequest) GetText() string

func (*PromptRequest) ProtoMessage

func (*PromptRequest) ProtoMessage()

func (*PromptRequest) ProtoReflect

func (x *PromptRequest) ProtoReflect() protoreflect.Message

func (*PromptRequest) Reset

func (x *PromptRequest) Reset()

func (*PromptRequest) String

func (x *PromptRequest) String() string

type PromptResponse

type PromptResponse struct {
	PrivateText string `protobuf:"bytes,1,opt,name=private_text,json=privateText,proto3" json:"private_text,omitempty"`
	// contains filtered or unexported fields
}

func (*PromptResponse) Descriptor deprecated

func (*PromptResponse) Descriptor() ([]byte, []int)

Deprecated: Use PromptResponse.ProtoReflect.Descriptor instead.

func (*PromptResponse) GetPrivateText

func (x *PromptResponse) GetPrivateText() string

func (*PromptResponse) ProtoMessage

func (*PromptResponse) ProtoMessage()

func (*PromptResponse) ProtoReflect

func (x *PromptResponse) ProtoReflect() protoreflect.Message

func (*PromptResponse) Reset

func (x *PromptResponse) Reset()

func (*PromptResponse) String

func (x *PromptResponse) String() string

type ProtocolRequest

type ProtocolRequest struct {
	// contains filtered or unexported fields
}

func (*ProtocolRequest) Descriptor deprecated

func (*ProtocolRequest) Descriptor() ([]byte, []int)

Deprecated: Use ProtocolRequest.ProtoReflect.Descriptor instead.

func (*ProtocolRequest) ProtoMessage

func (*ProtocolRequest) ProtoMessage()

func (*ProtocolRequest) ProtoReflect

func (x *ProtocolRequest) ProtoReflect() protoreflect.Message

func (*ProtocolRequest) Reset

func (x *ProtocolRequest) Reset()

func (*ProtocolRequest) String

func (x *ProtocolRequest) String() string

type ProtocolResponse

type ProtocolResponse struct {
	ProtoSha256 string `protobuf:"bytes,1,opt,name=proto_sha256,json=protoSha256,proto3" json:"proto_sha256,omitempty"`
	// contains filtered or unexported fields
}

func (*ProtocolResponse) Descriptor deprecated

func (*ProtocolResponse) Descriptor() ([]byte, []int)

Deprecated: Use ProtocolResponse.ProtoReflect.Descriptor instead.

func (*ProtocolResponse) GetProtoSha256

func (x *ProtocolResponse) GetProtoSha256() string

func (*ProtocolResponse) ProtoMessage

func (*ProtocolResponse) ProtoMessage()

func (*ProtocolResponse) ProtoReflect

func (x *ProtocolResponse) ProtoReflect() protoreflect.Message

func (*ProtocolResponse) Reset

func (x *ProtocolResponse) Reset()

func (*ProtocolResponse) String

func (x *ProtocolResponse) String() string

type QuestionOption added in v0.1.27

type QuestionOption struct {
	Label       string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"`
	Value       string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// contains filtered or unexported fields
}

func (*QuestionOption) Descriptor deprecated added in v0.1.27

func (*QuestionOption) Descriptor() ([]byte, []int)

Deprecated: Use QuestionOption.ProtoReflect.Descriptor instead.

func (*QuestionOption) GetDescription added in v0.1.27

func (x *QuestionOption) GetDescription() string

func (*QuestionOption) GetLabel added in v0.1.27

func (x *QuestionOption) GetLabel() string

func (*QuestionOption) GetValue added in v0.1.27

func (x *QuestionOption) GetValue() string

func (*QuestionOption) ProtoMessage added in v0.1.27

func (*QuestionOption) ProtoMessage()

func (*QuestionOption) ProtoReflect added in v0.1.27

func (x *QuestionOption) ProtoReflect() protoreflect.Message

func (*QuestionOption) Reset added in v0.1.27

func (x *QuestionOption) Reset()

func (*QuestionOption) String added in v0.1.27

func (x *QuestionOption) String() string

type QueueItem

type QueueItem struct {
	Id          string         `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Text        string         `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
	Attachments []*Attachment  `protobuf:"bytes,3,rep,name=attachments,proto3" json:"attachments,omitempty"`
	Delivery    PromptDelivery `protobuf:"varint,4,opt,name=delivery,proto3,enum=rpc.PromptDelivery" json:"delivery,omitempty"`
	Principal   string         `protobuf:"bytes,5,opt,name=principal,proto3" json:"principal,omitempty"`
	// contains filtered or unexported fields
}

func (*QueueItem) Descriptor deprecated

func (*QueueItem) Descriptor() ([]byte, []int)

Deprecated: Use QueueItem.ProtoReflect.Descriptor instead.

func (*QueueItem) GetAttachments

func (x *QueueItem) GetAttachments() []*Attachment

func (*QueueItem) GetDelivery

func (x *QueueItem) GetDelivery() PromptDelivery

func (*QueueItem) GetId

func (x *QueueItem) GetId() string

func (*QueueItem) GetPrincipal added in v0.1.12

func (x *QueueItem) GetPrincipal() string

func (*QueueItem) GetText

func (x *QueueItem) GetText() string

func (*QueueItem) ProtoMessage

func (*QueueItem) ProtoMessage()

func (*QueueItem) ProtoReflect

func (x *QueueItem) ProtoReflect() protoreflect.Message

func (*QueueItem) Reset

func (x *QueueItem) Reset()

func (*QueueItem) String

func (x *QueueItem) String() string

type QueueItemRequest

type QueueItemRequest struct {
	Id     string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	ItemId string `protobuf:"bytes,2,opt,name=item_id,json=itemId,proto3" json:"item_id,omitempty"`
	// contains filtered or unexported fields
}

func (*QueueItemRequest) Descriptor deprecated

func (*QueueItemRequest) Descriptor() ([]byte, []int)

Deprecated: Use QueueItemRequest.ProtoReflect.Descriptor instead.

func (*QueueItemRequest) GetId

func (x *QueueItemRequest) GetId() string

func (*QueueItemRequest) GetItemId

func (x *QueueItemRequest) GetItemId() string

func (*QueueItemRequest) ProtoMessage

func (*QueueItemRequest) ProtoMessage()

func (*QueueItemRequest) ProtoReflect

func (x *QueueItemRequest) ProtoReflect() protoreflect.Message

func (*QueueItemRequest) Reset

func (x *QueueItemRequest) Reset()

func (*QueueItemRequest) String

func (x *QueueItemRequest) String() string

type QueueItemResponse

type QueueItemResponse struct {
	// contains filtered or unexported fields
}

func (*QueueItemResponse) Descriptor deprecated

func (*QueueItemResponse) Descriptor() ([]byte, []int)

Deprecated: Use QueueItemResponse.ProtoReflect.Descriptor instead.

func (*QueueItemResponse) ProtoMessage

func (*QueueItemResponse) ProtoMessage()

func (*QueueItemResponse) ProtoReflect

func (x *QueueItemResponse) ProtoReflect() protoreflect.Message

func (*QueueItemResponse) Reset

func (x *QueueItemResponse) Reset()

func (*QueueItemResponse) String

func (x *QueueItemResponse) String() string

type ReloadRequest added in v0.1.37

type ReloadRequest struct {
	Reason string `protobuf:"bytes,1,opt,name=reason,proto3" json:"reason,omitempty"`
	// contains filtered or unexported fields
}

func (*ReloadRequest) Descriptor deprecated added in v0.1.37

func (*ReloadRequest) Descriptor() ([]byte, []int)

Deprecated: Use ReloadRequest.ProtoReflect.Descriptor instead.

func (*ReloadRequest) GetReason added in v0.1.37

func (x *ReloadRequest) GetReason() string

func (*ReloadRequest) ProtoMessage added in v0.1.37

func (*ReloadRequest) ProtoMessage()

func (*ReloadRequest) ProtoReflect added in v0.1.37

func (x *ReloadRequest) ProtoReflect() protoreflect.Message

func (*ReloadRequest) Reset added in v0.1.37

func (x *ReloadRequest) Reset()

func (*ReloadRequest) String added in v0.1.37

func (x *ReloadRequest) String() string

type ReloadResponse added in v0.1.37

type ReloadResponse struct {
	Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
	// contains filtered or unexported fields
}

func (*ReloadResponse) Descriptor deprecated added in v0.1.37

func (*ReloadResponse) Descriptor() ([]byte, []int)

Deprecated: Use ReloadResponse.ProtoReflect.Descriptor instead.

func (*ReloadResponse) GetMessage added in v0.1.37

func (x *ReloadResponse) GetMessage() string

func (*ReloadResponse) ProtoMessage added in v0.1.37

func (*ReloadResponse) ProtoMessage()

func (*ReloadResponse) ProtoReflect added in v0.1.37

func (x *ReloadResponse) ProtoReflect() protoreflect.Message

func (*ReloadResponse) Reset added in v0.1.37

func (x *ReloadResponse) Reset()

func (*ReloadResponse) String added in v0.1.37

func (x *ReloadResponse) String() string

type ReorderQueueRequest

type ReorderQueueRequest struct {
	Id      string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	ItemIds []string `protobuf:"bytes,2,rep,name=item_ids,json=itemIds,proto3" json:"item_ids,omitempty"`
	// contains filtered or unexported fields
}

func (*ReorderQueueRequest) Descriptor deprecated

func (*ReorderQueueRequest) Descriptor() ([]byte, []int)

Deprecated: Use ReorderQueueRequest.ProtoReflect.Descriptor instead.

func (*ReorderQueueRequest) GetId

func (x *ReorderQueueRequest) GetId() string

func (*ReorderQueueRequest) GetItemIds

func (x *ReorderQueueRequest) GetItemIds() []string

func (*ReorderQueueRequest) ProtoMessage

func (*ReorderQueueRequest) ProtoMessage()

func (*ReorderQueueRequest) ProtoReflect

func (x *ReorderQueueRequest) ProtoReflect() protoreflect.Message

func (*ReorderQueueRequest) Reset

func (x *ReorderQueueRequest) Reset()

func (*ReorderQueueRequest) String

func (x *ReorderQueueRequest) String() string

type RunCronJobRequest

type RunCronJobRequest struct {
	Stem string `protobuf:"bytes,1,opt,name=stem,proto3" json:"stem,omitempty"`
	// contains filtered or unexported fields
}

func (*RunCronJobRequest) Descriptor deprecated

func (*RunCronJobRequest) Descriptor() ([]byte, []int)

Deprecated: Use RunCronJobRequest.ProtoReflect.Descriptor instead.

func (*RunCronJobRequest) GetStem

func (x *RunCronJobRequest) GetStem() string

func (*RunCronJobRequest) ProtoMessage

func (*RunCronJobRequest) ProtoMessage()

func (*RunCronJobRequest) ProtoReflect

func (x *RunCronJobRequest) ProtoReflect() protoreflect.Message

func (*RunCronJobRequest) Reset

func (x *RunCronJobRequest) Reset()

func (*RunCronJobRequest) String

func (x *RunCronJobRequest) String() string

type RunCronJobResponse

type RunCronJobResponse struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*RunCronJobResponse) Descriptor deprecated

func (*RunCronJobResponse) Descriptor() ([]byte, []int)

Deprecated: Use RunCronJobResponse.ProtoReflect.Descriptor instead.

func (*RunCronJobResponse) GetId

func (x *RunCronJobResponse) GetId() string

func (*RunCronJobResponse) ProtoMessage

func (*RunCronJobResponse) ProtoMessage()

func (*RunCronJobResponse) ProtoReflect

func (x *RunCronJobResponse) ProtoReflect() protoreflect.Message

func (*RunCronJobResponse) Reset

func (x *RunCronJobResponse) Reset()

func (*RunCronJobResponse) String

func (x *RunCronJobResponse) String() string

type SearchMessagesRequest added in v0.1.3

type SearchMessagesRequest struct {
	Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
	// contains filtered or unexported fields
}

func (*SearchMessagesRequest) Descriptor deprecated added in v0.1.3

func (*SearchMessagesRequest) Descriptor() ([]byte, []int)

Deprecated: Use SearchMessagesRequest.ProtoReflect.Descriptor instead.

func (*SearchMessagesRequest) GetQuery added in v0.1.3

func (x *SearchMessagesRequest) GetQuery() string

func (*SearchMessagesRequest) ProtoMessage added in v0.1.3

func (*SearchMessagesRequest) ProtoMessage()

func (*SearchMessagesRequest) ProtoReflect added in v0.1.3

func (x *SearchMessagesRequest) ProtoReflect() protoreflect.Message

func (*SearchMessagesRequest) Reset added in v0.1.3

func (x *SearchMessagesRequest) Reset()

func (*SearchMessagesRequest) String added in v0.1.3

func (x *SearchMessagesRequest) String() string

type SearchMessagesResponse added in v0.1.3

type SearchMessagesResponse struct {
	Matches       []*MessageMatch `protobuf:"bytes,1,rep,name=matches,proto3" json:"matches,omitempty"`
	TagIds        []string        `protobuf:"bytes,2,rep,name=tag_ids,json=tagIds,proto3" json:"tag_ids,omitempty"`
	IndexComplete bool            `protobuf:"varint,3,opt,name=index_complete,json=indexComplete,proto3" json:"index_complete,omitempty"`
	// contains filtered or unexported fields
}

func (*SearchMessagesResponse) Descriptor deprecated added in v0.1.3

func (*SearchMessagesResponse) Descriptor() ([]byte, []int)

Deprecated: Use SearchMessagesResponse.ProtoReflect.Descriptor instead.

func (*SearchMessagesResponse) GetIndexComplete added in v0.1.24

func (x *SearchMessagesResponse) GetIndexComplete() bool

func (*SearchMessagesResponse) GetMatches added in v0.1.3

func (x *SearchMessagesResponse) GetMatches() []*MessageMatch

func (*SearchMessagesResponse) GetTagIds added in v0.1.17

func (x *SearchMessagesResponse) GetTagIds() []string

func (*SearchMessagesResponse) ProtoMessage added in v0.1.3

func (*SearchMessagesResponse) ProtoMessage()

func (*SearchMessagesResponse) ProtoReflect added in v0.1.3

func (x *SearchMessagesResponse) ProtoReflect() protoreflect.Message

func (*SearchMessagesResponse) Reset added in v0.1.3

func (x *SearchMessagesResponse) Reset()

func (*SearchMessagesResponse) String added in v0.1.3

func (x *SearchMessagesResponse) String() string

type SearchSessionsRequest added in v0.1.27

type SearchSessionsRequest struct {
	Query    string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
	Messages bool   `protobuf:"varint,2,opt,name=messages,proto3" json:"messages,omitempty"`
	// contains filtered or unexported fields
}

func (*SearchSessionsRequest) Descriptor deprecated added in v0.1.27

func (*SearchSessionsRequest) Descriptor() ([]byte, []int)

Deprecated: Use SearchSessionsRequest.ProtoReflect.Descriptor instead.

func (*SearchSessionsRequest) GetMessages added in v0.1.27

func (x *SearchSessionsRequest) GetMessages() bool

func (*SearchSessionsRequest) GetQuery added in v0.1.27

func (x *SearchSessionsRequest) GetQuery() string

func (*SearchSessionsRequest) ProtoMessage added in v0.1.27

func (*SearchSessionsRequest) ProtoMessage()

func (*SearchSessionsRequest) ProtoReflect added in v0.1.27

func (x *SearchSessionsRequest) ProtoReflect() protoreflect.Message

func (*SearchSessionsRequest) Reset added in v0.1.27

func (x *SearchSessionsRequest) Reset()

func (*SearchSessionsRequest) String added in v0.1.27

func (x *SearchSessionsRequest) String() string

type SearchSessionsResponse added in v0.1.27

type SearchSessionsResponse struct {
	Terms []*SearchTerm `protobuf:"bytes,1,rep,name=terms,proto3" json:"terms,omitempty"`
	// The query without its terms; needle is text lowercased.
	Text              string          `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
	Needle            string          `protobuf:"bytes,3,opt,name=needle,proto3" json:"needle,omitempty"`
	Matches           []*SessionMatch `protobuf:"bytes,4,rep,name=matches,proto3" json:"matches,omitempty"`
	Messages          []*MessageMatch `protobuf:"bytes,5,rep,name=messages,proto3" json:"messages,omitempty"`
	MentionIds        []string        `protobuf:"bytes,6,rep,name=mention_ids,json=mentionIds,proto3" json:"mention_ids,omitempty"`
	IndexComplete     bool            `protobuf:"varint,7,opt,name=index_complete,json=indexComplete,proto3" json:"index_complete,omitempty"`
	SummariesComplete bool            `protobuf:"varint,8,opt,name=summaries_complete,json=summariesComplete,proto3" json:"summaries_complete,omitempty"`
	Principals        []string        `protobuf:"bytes,9,rep,name=principals,proto3" json:"principals,omitempty"`
	// contains filtered or unexported fields
}

func (*SearchSessionsResponse) Descriptor deprecated added in v0.1.27

func (*SearchSessionsResponse) Descriptor() ([]byte, []int)

Deprecated: Use SearchSessionsResponse.ProtoReflect.Descriptor instead.

func (*SearchSessionsResponse) GetIndexComplete added in v0.1.27

func (x *SearchSessionsResponse) GetIndexComplete() bool

func (*SearchSessionsResponse) GetMatches added in v0.1.27

func (x *SearchSessionsResponse) GetMatches() []*SessionMatch

func (*SearchSessionsResponse) GetMentionIds added in v0.1.27

func (x *SearchSessionsResponse) GetMentionIds() []string

func (*SearchSessionsResponse) GetMessages added in v0.1.27

func (x *SearchSessionsResponse) GetMessages() []*MessageMatch

func (*SearchSessionsResponse) GetNeedle added in v0.1.27

func (x *SearchSessionsResponse) GetNeedle() string

func (*SearchSessionsResponse) GetPrincipals added in v0.1.40

func (x *SearchSessionsResponse) GetPrincipals() []string

func (*SearchSessionsResponse) GetSummariesComplete added in v0.1.27

func (x *SearchSessionsResponse) GetSummariesComplete() bool

func (*SearchSessionsResponse) GetTerms added in v0.1.27

func (x *SearchSessionsResponse) GetTerms() []*SearchTerm

func (*SearchSessionsResponse) GetText added in v0.1.27

func (x *SearchSessionsResponse) GetText() string

func (*SearchSessionsResponse) ProtoMessage added in v0.1.27

func (*SearchSessionsResponse) ProtoMessage()

func (*SearchSessionsResponse) ProtoReflect added in v0.1.27

func (x *SearchSessionsResponse) ProtoReflect() protoreflect.Message

func (*SearchSessionsResponse) Reset added in v0.1.27

func (x *SearchSessionsResponse) Reset()

func (*SearchSessionsResponse) String added in v0.1.27

func (x *SearchSessionsResponse) String() string

type SearchTerm added in v0.1.27

type SearchTerm struct {
	Key   string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Text  string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
	Start int32  `protobuf:"varint,3,opt,name=start,proto3" json:"start,omitempty"`
	End   int32  `protobuf:"varint,4,opt,name=end,proto3" json:"end,omitempty"`
	// contains filtered or unexported fields
}

A filter term; start and end are UTF-16 code-unit offsets in the submitted query.

func (*SearchTerm) Descriptor deprecated added in v0.1.27

func (*SearchTerm) Descriptor() ([]byte, []int)

Deprecated: Use SearchTerm.ProtoReflect.Descriptor instead.

func (*SearchTerm) GetEnd added in v0.1.27

func (x *SearchTerm) GetEnd() int32

func (*SearchTerm) GetKey added in v0.1.27

func (x *SearchTerm) GetKey() string

func (*SearchTerm) GetStart added in v0.1.27

func (x *SearchTerm) GetStart() int32

func (*SearchTerm) GetText added in v0.1.27

func (x *SearchTerm) GetText() string

func (*SearchTerm) ProtoMessage added in v0.1.27

func (*SearchTerm) ProtoMessage()

func (*SearchTerm) ProtoReflect added in v0.1.27

func (x *SearchTerm) ProtoReflect() protoreflect.Message

func (*SearchTerm) Reset added in v0.1.27

func (x *SearchTerm) Reset()

func (*SearchTerm) String added in v0.1.27

func (x *SearchTerm) String() string

type Server

type Server struct {
	// contains filtered or unexported fields
}

Server supplies concrete Web handlers. The host owns transport registration.

func New

func New(core frontend.Backend, sessions *backend.SessionService, cfg *config.LockedConfig, channels ChannelAgentChoices, cronjobs CronJobs) *Server

New snapshots WebUsers from the validated startup configuration. The host must restrict RPC access to the trusted Web proxy: the metadata carries the browser IP, not an independently authenticated network peer.

func (*Server) AdmitHTTP added in v0.1.47

func (s *Server) AdmitHTTP(next http.Handler) http.Handler

AdmitHTTP serves next only to browsers the Web admits by their IP: web_users, then Tailscale. The tailnet listener admits with NewTailnetHandler instead.

func (*Server) DeleteSessionEntries

func (s *Server) DeleteSessionEntries(ctx context.Context, request *SessionEntriesRequest) (*DeleteSessionEntriesResponse, error)

DeleteSessionEntries deletes entries only; conversation and goal records remain.

func (*Server) ListSessionEntries

func (s *Server) ListSessionEntries(ctx context.Context, request *SessionEntriesRequest) (*ListSessionEntriesResponse, error)

ListSessionEntries returns ordered entry identifiers and metadata.

func (*Server) LoadSessionEntries

func (s *Server) LoadSessionEntries(ctx context.Context, request *SessionEntriesRequest) (*LoadSessionEntriesResponse, error)

LoadSessionEntries returns stored entry values as JSON, preserving int64 IDs.

func (*Server) Register

func (s *Server) Register(registrar grpc.ServiceRegistrar)

Register publishes the implemented portion of rpc.Web. Other methods retain gRPC's Unimplemented response; they are not successful empty handlers.

type Session

type Session struct {
	Id            string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Title         string   `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
	Preview       string   `protobuf:"bytes,3,opt,name=preview,proto3" json:"preview,omitempty"`
	UpdatedAt     string   `protobuf:"bytes,4,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	Agent         string   `protobuf:"bytes,5,opt,name=agent,proto3" json:"agent,omitempty"`
	AllowedAgents []string `protobuf:"bytes,7,rep,name=allowed_agents,json=allowedAgents,proto3" json:"allowed_agents,omitempty"`
	Running       bool     `protobuf:"varint,8,opt,name=running,proto3" json:"running,omitempty"`
	Pinned        bool     `protobuf:"varint,9,opt,name=pinned,proto3" json:"pinned,omitempty"`
	Name          string   `protobuf:"bytes,10,opt,name=name,proto3" json:"name,omitempty"`
	ForkedFrom    string   `protobuf:"bytes,13,opt,name=forked_from,json=forkedFrom,proto3" json:"forked_from,omitempty"`
	Tags          []string `protobuf:"bytes,14,rep,name=tags,proto3" json:"tags,omitempty"`
	// The chat's recorded origin is a cron run, even after human follow-ups.
	Cron     bool   `protobuf:"varint,15,opt,name=cron,proto3" json:"cron,omitempty"`
	CronName string `protobuf:"bytes,16,opt,name=cron_name,json=cronName,proto3" json:"cron_name,omitempty"`
	// A remote OpenCode session names its configured server and folder; offline while it is unreachable.
	Server    string `protobuf:"bytes,17,opt,name=server,proto3" json:"server,omitempty"`
	Directory string `protobuf:"bytes,18,opt,name=directory,proto3" json:"directory,omitempty"`
	Offline   bool   `protobuf:"varint,19,opt,name=offline,proto3" json:"offline,omitempty"`
	// contains filtered or unexported fields
}

func (*Session) Descriptor deprecated

func (*Session) Descriptor() ([]byte, []int)

Deprecated: Use Session.ProtoReflect.Descriptor instead.

func (*Session) GetAgent

func (x *Session) GetAgent() string

func (*Session) GetAllowedAgents

func (x *Session) GetAllowedAgents() []string

func (*Session) GetCron added in v0.1.15

func (x *Session) GetCron() bool

func (*Session) GetCronName added in v0.1.15

func (x *Session) GetCronName() string

func (*Session) GetDirectory added in v0.1.47

func (x *Session) GetDirectory() string

func (*Session) GetForkedFrom added in v0.1.3

func (x *Session) GetForkedFrom() string

func (*Session) GetId

func (x *Session) GetId() string

func (*Session) GetName

func (x *Session) GetName() string

func (*Session) GetOffline added in v0.1.47

func (x *Session) GetOffline() bool

func (*Session) GetPinned

func (x *Session) GetPinned() bool

func (*Session) GetPreview

func (x *Session) GetPreview() string

func (*Session) GetRunning

func (x *Session) GetRunning() bool

func (*Session) GetServer added in v0.1.47

func (x *Session) GetServer() string

func (*Session) GetTags added in v0.1.12

func (x *Session) GetTags() []string

func (*Session) GetTitle

func (x *Session) GetTitle() string

func (*Session) GetUpdatedAt

func (x *Session) GetUpdatedAt() string

func (*Session) ProtoMessage

func (*Session) ProtoMessage()

func (*Session) ProtoReflect

func (x *Session) ProtoReflect() protoreflect.Message

func (*Session) Reset

func (x *Session) Reset()

func (*Session) String

func (x *Session) String() string

type SessionEntriesRequest

type SessionEntriesRequest struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*SessionEntriesRequest) Descriptor deprecated

func (*SessionEntriesRequest) Descriptor() ([]byte, []int)

Deprecated: Use SessionEntriesRequest.ProtoReflect.Descriptor instead.

func (*SessionEntriesRequest) GetId

func (x *SessionEntriesRequest) GetId() string

func (*SessionEntriesRequest) ProtoMessage

func (*SessionEntriesRequest) ProtoMessage()

func (*SessionEntriesRequest) ProtoReflect

func (x *SessionEntriesRequest) ProtoReflect() protoreflect.Message

func (*SessionEntriesRequest) Reset

func (x *SessionEntriesRequest) Reset()

func (*SessionEntriesRequest) String

func (x *SessionEntriesRequest) String() string

type SessionEntryData

type SessionEntryData struct {
	Id   int64  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Json string `protobuf:"bytes,2,opt,name=json,proto3" json:"json,omitempty"`
	// contains filtered or unexported fields
}

func (*SessionEntryData) Descriptor deprecated

func (*SessionEntryData) Descriptor() ([]byte, []int)

Deprecated: Use SessionEntryData.ProtoReflect.Descriptor instead.

func (*SessionEntryData) GetId

func (x *SessionEntryData) GetId() int64

func (*SessionEntryData) GetJson

func (x *SessionEntryData) GetJson() string

func (*SessionEntryData) ProtoMessage

func (*SessionEntryData) ProtoMessage()

func (*SessionEntryData) ProtoReflect

func (x *SessionEntryData) ProtoReflect() protoreflect.Message

func (*SessionEntryData) Reset

func (x *SessionEntryData) Reset()

func (*SessionEntryData) String

func (x *SessionEntryData) String() string

type SessionEntryMeta

type SessionEntryMeta struct {
	Id        int64  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Type      string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	Timestamp string `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// contains filtered or unexported fields
}

func (*SessionEntryMeta) Descriptor deprecated

func (*SessionEntryMeta) Descriptor() ([]byte, []int)

Deprecated: Use SessionEntryMeta.ProtoReflect.Descriptor instead.

func (*SessionEntryMeta) GetId

func (x *SessionEntryMeta) GetId() int64

func (*SessionEntryMeta) GetTimestamp

func (x *SessionEntryMeta) GetTimestamp() string

func (*SessionEntryMeta) GetType

func (x *SessionEntryMeta) GetType() string

func (*SessionEntryMeta) ProtoMessage

func (*SessionEntryMeta) ProtoMessage()

func (*SessionEntryMeta) ProtoReflect

func (x *SessionEntryMeta) ProtoReflect() protoreflect.Message

func (*SessionEntryMeta) Reset

func (x *SessionEntryMeta) Reset()

func (*SessionEntryMeta) String

func (x *SessionEntryMeta) String() string

type SessionMatch added in v0.1.27

type SessionMatch struct {
	ConversationId string `protobuf:"bytes,1,opt,name=conversation_id,json=conversationId,proto3" json:"conversation_id,omitempty"`
	Field          string `protobuf:"bytes,2,opt,name=field,proto3" json:"field,omitempty"`
	Text           string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"`
	// contains filtered or unexported fields
}

A found chat and the field (Name, Room, Agent, Session, Origin or Preview) whose text holds the needle; an empty field means only message text did.

func (*SessionMatch) Descriptor deprecated added in v0.1.27

func (*SessionMatch) Descriptor() ([]byte, []int)

Deprecated: Use SessionMatch.ProtoReflect.Descriptor instead.

func (*SessionMatch) GetConversationId added in v0.1.27

func (x *SessionMatch) GetConversationId() string

func (*SessionMatch) GetField added in v0.1.27

func (x *SessionMatch) GetField() string

func (*SessionMatch) GetText added in v0.1.27

func (x *SessionMatch) GetText() string

func (*SessionMatch) ProtoMessage added in v0.1.27

func (*SessionMatch) ProtoMessage()

func (*SessionMatch) ProtoReflect added in v0.1.27

func (x *SessionMatch) ProtoReflect() protoreflect.Message

func (*SessionMatch) Reset added in v0.1.27

func (x *SessionMatch) Reset()

func (*SessionMatch) String added in v0.1.27

func (x *SessionMatch) String() string

type ShadowBinding added in v0.1.33

type ShadowBinding struct {
	ParentConversationId string        `protobuf:"bytes,1,opt,name=parent_conversation_id,json=parentConversationId,proto3" json:"parent_conversation_id,omitempty"`
	ParentAgent          string        `protobuf:"bytes,2,opt,name=parent_agent,json=parentAgent,proto3" json:"parent_agent,omitempty"`
	ShadowAgent          string        `protobuf:"bytes,3,opt,name=shadow_agent,json=shadowAgent,proto3" json:"shadow_agent,omitempty"`
	ChildConversationId  string        `protobuf:"bytes,4,opt,name=child_conversation_id,json=childConversationId,proto3" json:"child_conversation_id,omitempty"`
	Turns                []*ShadowTurn `protobuf:"bytes,5,rep,name=turns,proto3" json:"turns,omitempty"`
	// contains filtered or unexported fields
}

func (*ShadowBinding) Descriptor deprecated added in v0.1.33

func (*ShadowBinding) Descriptor() ([]byte, []int)

Deprecated: Use ShadowBinding.ProtoReflect.Descriptor instead.

func (*ShadowBinding) GetChildConversationId added in v0.1.33

func (x *ShadowBinding) GetChildConversationId() string

func (*ShadowBinding) GetParentAgent added in v0.1.33

func (x *ShadowBinding) GetParentAgent() string

func (*ShadowBinding) GetParentConversationId added in v0.1.33

func (x *ShadowBinding) GetParentConversationId() string

func (*ShadowBinding) GetShadowAgent added in v0.1.33

func (x *ShadowBinding) GetShadowAgent() string

func (*ShadowBinding) GetTurns added in v0.1.33

func (x *ShadowBinding) GetTurns() []*ShadowTurn

func (*ShadowBinding) ProtoMessage added in v0.1.33

func (*ShadowBinding) ProtoMessage()

func (*ShadowBinding) ProtoReflect added in v0.1.33

func (x *ShadowBinding) ProtoReflect() protoreflect.Message

func (*ShadowBinding) Reset added in v0.1.33

func (x *ShadowBinding) Reset()

func (*ShadowBinding) String added in v0.1.33

func (x *ShadowBinding) String() string

type ShadowTurn added in v0.1.33

type ShadowTurn struct {
	ParentSourceConversationId string `` /* 143-byte string literal not displayed */
	ParentTurnId               string `protobuf:"bytes,2,opt,name=parent_turn_id,json=parentTurnId,proto3" json:"parent_turn_id,omitempty"`
	ChildTurnId                string `protobuf:"bytes,3,opt,name=child_turn_id,json=childTurnId,proto3" json:"child_turn_id,omitempty"`
	Order                      int64  `protobuf:"varint,4,opt,name=order,proto3" json:"order,omitempty"`
	Running                    bool   `protobuf:"varint,5,opt,name=running,proto3" json:"running,omitempty"`
	// Same terminal values as HistoryResponse; empty child ID and terminal means waiting.
	Terminal string `protobuf:"bytes,6,opt,name=terminal,proto3" json:"terminal,omitempty"`
	// Changes on child transcript updates, even when the parent transcript does not.
	Revision string `protobuf:"bytes,7,opt,name=revision,proto3" json:"revision,omitempty"`
	// contains filtered or unexported fields
}

func (*ShadowTurn) Descriptor deprecated added in v0.1.33

func (*ShadowTurn) Descriptor() ([]byte, []int)

Deprecated: Use ShadowTurn.ProtoReflect.Descriptor instead.

func (*ShadowTurn) GetChildTurnId added in v0.1.33

func (x *ShadowTurn) GetChildTurnId() string

func (*ShadowTurn) GetOrder added in v0.1.33

func (x *ShadowTurn) GetOrder() int64

func (*ShadowTurn) GetParentSourceConversationId added in v0.1.33

func (x *ShadowTurn) GetParentSourceConversationId() string

func (*ShadowTurn) GetParentTurnId added in v0.1.33

func (x *ShadowTurn) GetParentTurnId() string

func (*ShadowTurn) GetRevision added in v0.1.33

func (x *ShadowTurn) GetRevision() string

func (*ShadowTurn) GetRunning added in v0.1.33

func (x *ShadowTurn) GetRunning() bool

func (*ShadowTurn) GetTerminal added in v0.1.33

func (x *ShadowTurn) GetTerminal() string

func (*ShadowTurn) ProtoMessage added in v0.1.33

func (*ShadowTurn) ProtoMessage()

func (*ShadowTurn) ProtoReflect added in v0.1.33

func (x *ShadowTurn) ProtoReflect() protoreflect.Message

func (*ShadowTurn) Reset added in v0.1.33

func (x *ShadowTurn) Reset()

func (*ShadowTurn) String added in v0.1.33

func (x *ShadowTurn) String() string

type Skill

type Skill struct {
	Name          string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Description   string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	License       string `protobuf:"bytes,3,opt,name=license,proto3" json:"license,omitempty"`
	Compatibility string `protobuf:"bytes,4,opt,name=compatibility,proto3" json:"compatibility,omitempty"`
	Content       string `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"`
	Origin        string `protobuf:"bytes,6,opt,name=origin,proto3" json:"origin,omitempty"`
	// contains filtered or unexported fields
}

func (*Skill) Descriptor deprecated

func (*Skill) Descriptor() ([]byte, []int)

Deprecated: Use Skill.ProtoReflect.Descriptor instead.

func (*Skill) GetCompatibility

func (x *Skill) GetCompatibility() string

func (*Skill) GetContent

func (x *Skill) GetContent() string

func (*Skill) GetDescription

func (x *Skill) GetDescription() string

func (*Skill) GetLicense

func (x *Skill) GetLicense() string

func (*Skill) GetName

func (x *Skill) GetName() string

func (*Skill) GetOrigin

func (x *Skill) GetOrigin() string

func (*Skill) ProtoMessage

func (*Skill) ProtoMessage()

func (*Skill) ProtoReflect

func (x *Skill) ProtoReflect() protoreflect.Message

func (*Skill) Reset

func (x *Skill) Reset()

func (*Skill) String

func (x *Skill) String() string

type SlackNamesRequest added in v0.1.17

type SlackNamesRequest struct {
	Ids []string `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"`
	// contains filtered or unexported fields
}

SlackNamesRequest asks for display names of Slack IDs.

func (*SlackNamesRequest) Descriptor deprecated added in v0.1.17

func (*SlackNamesRequest) Descriptor() ([]byte, []int)

Deprecated: Use SlackNamesRequest.ProtoReflect.Descriptor instead.

func (*SlackNamesRequest) GetIds added in v0.1.17

func (x *SlackNamesRequest) GetIds() []string

func (*SlackNamesRequest) ProtoMessage added in v0.1.17

func (*SlackNamesRequest) ProtoMessage()

func (*SlackNamesRequest) ProtoReflect added in v0.1.17

func (x *SlackNamesRequest) ProtoReflect() protoreflect.Message

func (*SlackNamesRequest) Reset added in v0.1.17

func (x *SlackNamesRequest) Reset()

func (*SlackNamesRequest) String added in v0.1.17

func (x *SlackNamesRequest) String() string

type SlackNamesResponse added in v0.1.17

type SlackNamesResponse struct {
	Names map[string]string `` /* 137-byte string literal not displayed */
	// contains filtered or unexported fields
}

SlackNamesResponse maps IDs to bare display strings without a leading @ or #. The web prepends those sigils. Unresolved IDs are omitted.

func (*SlackNamesResponse) Descriptor deprecated added in v0.1.17

func (*SlackNamesResponse) Descriptor() ([]byte, []int)

Deprecated: Use SlackNamesResponse.ProtoReflect.Descriptor instead.

func (*SlackNamesResponse) GetNames added in v0.1.17

func (x *SlackNamesResponse) GetNames() map[string]string

func (*SlackNamesResponse) ProtoMessage added in v0.1.17

func (*SlackNamesResponse) ProtoMessage()

func (*SlackNamesResponse) ProtoReflect added in v0.1.17

func (x *SlackNamesResponse) ProtoReflect() protoreflect.Message

func (*SlackNamesResponse) Reset added in v0.1.17

func (x *SlackNamesResponse) Reset()

func (*SlackNamesResponse) String added in v0.1.17

func (x *SlackNamesResponse) String() string

type StageRevertRequest added in v0.1.17

type StageRevertRequest struct {
	Id        string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	MessageId string `protobuf:"bytes,2,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
	// contains filtered or unexported fields
}

func (*StageRevertRequest) Descriptor deprecated added in v0.1.17

func (*StageRevertRequest) Descriptor() ([]byte, []int)

Deprecated: Use StageRevertRequest.ProtoReflect.Descriptor instead.

func (*StageRevertRequest) GetId added in v0.1.17

func (x *StageRevertRequest) GetId() string

func (*StageRevertRequest) GetMessageId added in v0.1.17

func (x *StageRevertRequest) GetMessageId() string

func (*StageRevertRequest) ProtoMessage added in v0.1.17

func (*StageRevertRequest) ProtoMessage()

func (*StageRevertRequest) ProtoReflect added in v0.1.17

func (x *StageRevertRequest) ProtoReflect() protoreflect.Message

func (*StageRevertRequest) Reset added in v0.1.17

func (x *StageRevertRequest) Reset()

func (*StageRevertRequest) String added in v0.1.17

func (x *StageRevertRequest) String() string

type StageRevertResponse added in v0.1.17

type StageRevertResponse struct {
	RevertMessageId string           `protobuf:"bytes,1,opt,name=revert_message_id,json=revertMessageId,proto3" json:"revert_message_id,omitempty"`
	Prompt          *TranscriptEvent `protobuf:"bytes,2,opt,name=prompt,proto3" json:"prompt,omitempty"`
	// contains filtered or unexported fields
}

func (*StageRevertResponse) Descriptor deprecated added in v0.1.17

func (*StageRevertResponse) Descriptor() ([]byte, []int)

Deprecated: Use StageRevertResponse.ProtoReflect.Descriptor instead.

func (*StageRevertResponse) GetPrompt added in v0.1.17

func (x *StageRevertResponse) GetPrompt() *TranscriptEvent

func (*StageRevertResponse) GetRevertMessageId added in v0.1.17

func (x *StageRevertResponse) GetRevertMessageId() string

func (*StageRevertResponse) ProtoMessage added in v0.1.17

func (*StageRevertResponse) ProtoMessage()

func (*StageRevertResponse) ProtoReflect added in v0.1.17

func (x *StageRevertResponse) ProtoReflect() protoreflect.Message

func (*StageRevertResponse) Reset added in v0.1.17

func (x *StageRevertResponse) Reset()

func (*StageRevertResponse) String added in v0.1.17

func (x *StageRevertResponse) String() string

type StopBackgroundJobRequest added in v0.1.19

type StopBackgroundJobRequest struct {
	ConversationId string `protobuf:"bytes,1,opt,name=conversation_id,json=conversationId,proto3" json:"conversation_id,omitempty"`
	JobId          string `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	// contains filtered or unexported fields
}

func (*StopBackgroundJobRequest) Descriptor deprecated added in v0.1.19

func (*StopBackgroundJobRequest) Descriptor() ([]byte, []int)

Deprecated: Use StopBackgroundJobRequest.ProtoReflect.Descriptor instead.

func (*StopBackgroundJobRequest) GetConversationId added in v0.1.19

func (x *StopBackgroundJobRequest) GetConversationId() string

func (*StopBackgroundJobRequest) GetJobId added in v0.1.19

func (x *StopBackgroundJobRequest) GetJobId() string

func (*StopBackgroundJobRequest) ProtoMessage added in v0.1.19

func (*StopBackgroundJobRequest) ProtoMessage()

func (*StopBackgroundJobRequest) ProtoReflect added in v0.1.19

func (x *StopBackgroundJobRequest) ProtoReflect() protoreflect.Message

func (*StopBackgroundJobRequest) Reset added in v0.1.19

func (x *StopBackgroundJobRequest) Reset()

func (*StopBackgroundJobRequest) String added in v0.1.19

func (x *StopBackgroundJobRequest) String() string

type StopBackgroundJobResponse added in v0.1.19

type StopBackgroundJobResponse struct {

	// False when the job had already finished.
	Stopped bool `protobuf:"varint,1,opt,name=stopped,proto3" json:"stopped,omitempty"`
	// contains filtered or unexported fields
}

func (*StopBackgroundJobResponse) Descriptor deprecated added in v0.1.19

func (*StopBackgroundJobResponse) Descriptor() ([]byte, []int)

Deprecated: Use StopBackgroundJobResponse.ProtoReflect.Descriptor instead.

func (*StopBackgroundJobResponse) GetStopped added in v0.1.19

func (x *StopBackgroundJobResponse) GetStopped() bool

func (*StopBackgroundJobResponse) ProtoMessage added in v0.1.19

func (*StopBackgroundJobResponse) ProtoMessage()

func (*StopBackgroundJobResponse) ProtoReflect added in v0.1.19

func (*StopBackgroundJobResponse) Reset added in v0.1.19

func (x *StopBackgroundJobResponse) Reset()

func (*StopBackgroundJobResponse) String added in v0.1.19

func (x *StopBackgroundJobResponse) String() string

type TagChoices added in v0.1.47

type TagChoices struct {
	Tags []string `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty"`
	// contains filtered or unexported fields
}

func (*TagChoices) Descriptor deprecated added in v0.1.47

func (*TagChoices) Descriptor() ([]byte, []int)

Deprecated: Use TagChoices.ProtoReflect.Descriptor instead.

func (*TagChoices) GetTags added in v0.1.47

func (x *TagChoices) GetTags() []string

func (*TagChoices) ProtoMessage added in v0.1.47

func (*TagChoices) ProtoMessage()

func (*TagChoices) ProtoReflect added in v0.1.47

func (x *TagChoices) ProtoReflect() protoreflect.Message

func (*TagChoices) Reset added in v0.1.47

func (x *TagChoices) Reset()

func (*TagChoices) String added in v0.1.47

func (x *TagChoices) String() string

type TranscriptEvent

type TranscriptEvent struct {
	Text            string        `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
	Role            string        `protobuf:"bytes,3,opt,name=role,proto3" json:"role,omitempty"`
	Complete        bool          `protobuf:"varint,4,opt,name=complete,proto3" json:"complete,omitempty"`
	TurnId          string        `protobuf:"bytes,5,opt,name=turn_id,json=turnId,proto3" json:"turn_id,omitempty"`
	ToolCallId      string        `protobuf:"bytes,6,opt,name=tool_call_id,json=toolCallId,proto3" json:"tool_call_id,omitempty"`
	ToolName        string        `protobuf:"bytes,7,opt,name=tool_name,json=toolName,proto3" json:"tool_name,omitempty"`
	Attachments     []*Attachment `protobuf:"bytes,8,rep,name=attachments,proto3" json:"attachments,omitempty"`
	MessageId       string        `protobuf:"bytes,9,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
	Agent           string        `protobuf:"bytes,10,opt,name=agent,proto3" json:"agent,omitempty"`
	Model           string        `protobuf:"bytes,11,opt,name=model,proto3" json:"model,omitempty"`
	ReasoningEffort *string       `protobuf:"bytes,12,opt,name=reasoning_effort,json=reasoningEffort,proto3,oneof" json:"reasoning_effort,omitempty"`
	Origin          string        `protobuf:"bytes,13,opt,name=origin,proto3" json:"origin,omitempty"`
	Header          string        `protobuf:"bytes,14,opt,name=header,proto3" json:"header,omitempty"`
	EntryKey        string        `protobuf:"bytes,15,opt,name=entry_key,json=entryKey,proto3" json:"entry_key,omitempty"`
	ItemId          string        `protobuf:"bytes,16,opt,name=item_id,json=itemId,proto3" json:"item_id,omitempty"`
	InputId         string        `protobuf:"bytes,17,opt,name=input_id,json=inputId,proto3" json:"input_id,omitempty"`
	// Fixed public lifecycle label; independent of the parent turn's running state.
	State     string `protobuf:"bytes,18,opt,name=state,proto3" json:"state,omitempty"`
	ParentId  string `protobuf:"bytes,19,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
	Principal string `protobuf:"bytes,20,opt,name=principal,proto3" json:"principal,omitempty"`
	// Completion Notes this system input delivers, in order, from their stored jobs.
	CompletionNotes []*BackgroundJob `protobuf:"bytes,21,rep,name=completion_notes,json=completionNotes,proto3" json:"completion_notes,omitempty"`
	// Delegation History a task call's row opens: the subagent it started or continued.
	Delegation string `protobuf:"bytes,22,opt,name=delegation,proto3" json:"delegation,omitempty"`
	// Delegation History a reviewed call's row opens: its automatic permission review.
	Review string `protobuf:"bytes,23,opt,name=review,proto3" json:"review,omitempty"`
	// On an Execute call's first event: the calls its script made, in start order. Chats saved
	// before calls were recorded list only the calls the automatic approver checked.
	CodeModeCalls []*CodeModeCall `protobuf:"bytes,24,rep,name=code_mode_calls,json=codeModeCalls,proto3" json:"code_mode_calls,omitempty"`
	// On an Execute call's first event: the automatic approver's reason for its whole script.
	ScriptReason string `protobuf:"bytes,25,opt,name=script_reason,json=scriptReason,proto3" json:"script_reason,omitempty"`
	// Turn under which review saves the approver's answer on this call itself, such as on an
	// Execute call's whole script. Reviews saved before turns were named have another turn.
	ReviewTurn string `protobuf:"bytes,26,opt,name=review_turn,json=reviewTurn,proto3" json:"review_turn,omitempty"`
	// The automatic approver's outcome (allow or deny) for script_reason.
	ScriptOutcome string `protobuf:"bytes,27,opt,name=script_outcome,json=scriptOutcome,proto3" json:"script_outcome,omitempty"`
	// contains filtered or unexported fields
}

func (*TranscriptEvent) Descriptor deprecated

func (*TranscriptEvent) Descriptor() ([]byte, []int)

Deprecated: Use TranscriptEvent.ProtoReflect.Descriptor instead.

func (*TranscriptEvent) GetAgent added in v0.1.3

func (x *TranscriptEvent) GetAgent() string

func (*TranscriptEvent) GetAttachments

func (x *TranscriptEvent) GetAttachments() []*Attachment

func (*TranscriptEvent) GetCodeModeCalls added in v0.1.46

func (x *TranscriptEvent) GetCodeModeCalls() []*CodeModeCall

func (*TranscriptEvent) GetComplete

func (x *TranscriptEvent) GetComplete() bool

func (*TranscriptEvent) GetCompletionNotes added in v0.1.19

func (x *TranscriptEvent) GetCompletionNotes() []*BackgroundJob

func (*TranscriptEvent) GetDelegation added in v0.1.19

func (x *TranscriptEvent) GetDelegation() string

func (*TranscriptEvent) GetEntryKey added in v0.1.12

func (x *TranscriptEvent) GetEntryKey() string

func (*TranscriptEvent) GetHeader added in v0.1.10

func (x *TranscriptEvent) GetHeader() string

func (*TranscriptEvent) GetInputId added in v0.1.12

func (x *TranscriptEvent) GetInputId() string

func (*TranscriptEvent) GetItemId added in v0.1.12

func (x *TranscriptEvent) GetItemId() string

func (*TranscriptEvent) GetMessageId

func (x *TranscriptEvent) GetMessageId() string

func (*TranscriptEvent) GetModel added in v0.1.3

func (x *TranscriptEvent) GetModel() string

func (*TranscriptEvent) GetOrigin added in v0.1.3

func (x *TranscriptEvent) GetOrigin() string

func (*TranscriptEvent) GetParentId added in v0.1.12

func (x *TranscriptEvent) GetParentId() string

func (*TranscriptEvent) GetPrincipal added in v0.1.12

func (x *TranscriptEvent) GetPrincipal() string

func (*TranscriptEvent) GetReasoningEffort added in v0.1.3

func (x *TranscriptEvent) GetReasoningEffort() string

func (*TranscriptEvent) GetReview added in v0.1.19

func (x *TranscriptEvent) GetReview() string

func (*TranscriptEvent) GetReviewTurn added in v0.1.47

func (x *TranscriptEvent) GetReviewTurn() string

func (*TranscriptEvent) GetRole

func (x *TranscriptEvent) GetRole() string

func (*TranscriptEvent) GetScriptOutcome added in v0.1.52

func (x *TranscriptEvent) GetScriptOutcome() string

func (*TranscriptEvent) GetScriptReason added in v0.1.46

func (x *TranscriptEvent) GetScriptReason() string

func (*TranscriptEvent) GetState added in v0.1.12

func (x *TranscriptEvent) GetState() string

func (*TranscriptEvent) GetText

func (x *TranscriptEvent) GetText() string

func (*TranscriptEvent) GetToolCallId

func (x *TranscriptEvent) GetToolCallId() string

func (*TranscriptEvent) GetToolName

func (x *TranscriptEvent) GetToolName() string

func (*TranscriptEvent) GetTurnId

func (x *TranscriptEvent) GetTurnId() string

func (*TranscriptEvent) ProtoMessage

func (*TranscriptEvent) ProtoMessage()

func (*TranscriptEvent) ProtoReflect

func (x *TranscriptEvent) ProtoReflect() protoreflect.Message

func (*TranscriptEvent) Reset

func (x *TranscriptEvent) Reset()

func (*TranscriptEvent) String

func (x *TranscriptEvent) String() string

type UpdateSessionRequest

type UpdateSessionRequest struct {
	Id     string  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Pinned *bool   `protobuf:"varint,2,opt,name=pinned,proto3,oneof" json:"pinned,omitempty"`
	Name   *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"`
	// Toggles a tag a person chose: any tag on a remote OpenCode session, or one its agent allows.
	Tag *string `protobuf:"bytes,6,opt,name=tag,proto3,oneof" json:"tag,omitempty"`
	// contains filtered or unexported fields
}

func (*UpdateSessionRequest) Descriptor deprecated

func (*UpdateSessionRequest) Descriptor() ([]byte, []int)

Deprecated: Use UpdateSessionRequest.ProtoReflect.Descriptor instead.

func (*UpdateSessionRequest) GetId

func (x *UpdateSessionRequest) GetId() string

func (*UpdateSessionRequest) GetName

func (x *UpdateSessionRequest) GetName() string

func (*UpdateSessionRequest) GetPinned

func (x *UpdateSessionRequest) GetPinned() bool

func (*UpdateSessionRequest) GetTag added in v0.1.47

func (x *UpdateSessionRequest) GetTag() string

func (*UpdateSessionRequest) ProtoMessage

func (*UpdateSessionRequest) ProtoMessage()

func (*UpdateSessionRequest) ProtoReflect

func (x *UpdateSessionRequest) ProtoReflect() protoreflect.Message

func (*UpdateSessionRequest) Reset

func (x *UpdateSessionRequest) Reset()

func (*UpdateSessionRequest) String

func (x *UpdateSessionRequest) String() string

type UpdateSessionResponse

type UpdateSessionResponse struct {
	// contains filtered or unexported fields
}

func (*UpdateSessionResponse) Descriptor deprecated

func (*UpdateSessionResponse) Descriptor() ([]byte, []int)

Deprecated: Use UpdateSessionResponse.ProtoReflect.Descriptor instead.

func (*UpdateSessionResponse) ProtoMessage

func (*UpdateSessionResponse) ProtoMessage()

func (*UpdateSessionResponse) ProtoReflect

func (x *UpdateSessionResponse) ProtoReflect() protoreflect.Message

func (*UpdateSessionResponse) Reset

func (x *UpdateSessionResponse) Reset()

func (*UpdateSessionResponse) String

func (x *UpdateSessionResponse) String() string

type VoiceAnswer added in v0.1.30

type VoiceAnswer struct {
	Sdp   string `protobuf:"bytes,1,opt,name=sdp,proto3" json:"sdp,omitempty"`
	Route string `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"`
	// contains filtered or unexported fields
}

route names the GPT-Live wire dialect: public or codex.

func (*VoiceAnswer) Descriptor deprecated added in v0.1.30

func (*VoiceAnswer) Descriptor() ([]byte, []int)

Deprecated: Use VoiceAnswer.ProtoReflect.Descriptor instead.

func (*VoiceAnswer) GetRoute added in v0.1.30

func (x *VoiceAnswer) GetRoute() string

func (*VoiceAnswer) GetSdp added in v0.1.30

func (x *VoiceAnswer) GetSdp() string

func (*VoiceAnswer) ProtoMessage added in v0.1.30

func (*VoiceAnswer) ProtoMessage()

func (*VoiceAnswer) ProtoReflect added in v0.1.30

func (x *VoiceAnswer) ProtoReflect() protoreflect.Message

func (*VoiceAnswer) Reset added in v0.1.30

func (x *VoiceAnswer) Reset()

func (*VoiceAnswer) String added in v0.1.30

func (x *VoiceAnswer) String() string

type VoiceEnded added in v0.1.30

type VoiceEnded struct {
	Reason string `protobuf:"bytes,1,opt,name=reason,proto3" json:"reason,omitempty"`
	// contains filtered or unexported fields
}

reason is stopped, replaced, expired, safety, closed, lost or error.

func (*VoiceEnded) Descriptor deprecated added in v0.1.30

func (*VoiceEnded) Descriptor() ([]byte, []int)

Deprecated: Use VoiceEnded.ProtoReflect.Descriptor instead.

func (*VoiceEnded) GetReason added in v0.1.30

func (x *VoiceEnded) GetReason() string

func (*VoiceEnded) ProtoMessage added in v0.1.30

func (*VoiceEnded) ProtoMessage()

func (*VoiceEnded) ProtoReflect added in v0.1.30

func (x *VoiceEnded) ProtoReflect() protoreflect.Message

func (*VoiceEnded) Reset added in v0.1.30

func (x *VoiceEnded) Reset()

func (*VoiceEnded) String added in v0.1.30

func (x *VoiceEnded) String() string

type VoiceEvent added in v0.1.30

type VoiceEvent struct {

	// Types that are valid to be assigned to Event:
	//
	//	*VoiceEvent_Answer
	//	*VoiceEvent_Ended
	//	*VoiceEvent_Notice
	//	*VoiceEvent_Typed
	//	*VoiceEvent_Reply
	//	*VoiceEvent_Reconnecting
	Event isVoiceEvent_Event `protobuf_oneof:"event"`
	// contains filtered or unexported fields
}

The first event answers the browser's SDP offer; the last ends the call. A notice in between reports a hand-off the agent could not accept; typed says a typed message superseded voice, so the browser mutes the voice model until it answers the person's next speech. reply is a final reply too long to speak, for the browser to show as written. reconnecting is true while a Codex sideband reconnects and false once it is back.

func (*VoiceEvent) Descriptor deprecated added in v0.1.30

func (*VoiceEvent) Descriptor() ([]byte, []int)

Deprecated: Use VoiceEvent.ProtoReflect.Descriptor instead.

func (*VoiceEvent) GetAnswer added in v0.1.30

func (x *VoiceEvent) GetAnswer() *VoiceAnswer

func (*VoiceEvent) GetEnded added in v0.1.30

func (x *VoiceEvent) GetEnded() *VoiceEnded

func (*VoiceEvent) GetEvent added in v0.1.30

func (x *VoiceEvent) GetEvent() isVoiceEvent_Event

func (*VoiceEvent) GetNotice added in v0.1.30

func (x *VoiceEvent) GetNotice() string

func (*VoiceEvent) GetReconnecting added in v0.1.30

func (x *VoiceEvent) GetReconnecting() bool

func (*VoiceEvent) GetReply added in v0.1.30

func (x *VoiceEvent) GetReply() string

func (*VoiceEvent) GetTyped added in v0.1.30

func (x *VoiceEvent) GetTyped() bool

func (*VoiceEvent) ProtoMessage added in v0.1.30

func (*VoiceEvent) ProtoMessage()

func (*VoiceEvent) ProtoReflect added in v0.1.30

func (x *VoiceEvent) ProtoReflect() protoreflect.Message

func (*VoiceEvent) Reset added in v0.1.30

func (x *VoiceEvent) Reset()

func (*VoiceEvent) String added in v0.1.30

func (x *VoiceEvent) String() string

type VoiceEvent_Answer added in v0.1.30

type VoiceEvent_Answer struct {
	Answer *VoiceAnswer `protobuf:"bytes,1,opt,name=answer,proto3,oneof"`
}

type VoiceEvent_Ended added in v0.1.30

type VoiceEvent_Ended struct {
	Ended *VoiceEnded `protobuf:"bytes,2,opt,name=ended,proto3,oneof"`
}

type VoiceEvent_Notice added in v0.1.30

type VoiceEvent_Notice struct {
	Notice string `protobuf:"bytes,3,opt,name=notice,proto3,oneof"`
}

type VoiceEvent_Reconnecting added in v0.1.30

type VoiceEvent_Reconnecting struct {
	Reconnecting bool `protobuf:"varint,6,opt,name=reconnecting,proto3,oneof"`
}

type VoiceEvent_Reply added in v0.1.30

type VoiceEvent_Reply struct {
	Reply string `protobuf:"bytes,5,opt,name=reply,proto3,oneof"`
}

type VoiceEvent_Typed added in v0.1.30

type VoiceEvent_Typed struct {
	Typed bool `protobuf:"varint,4,opt,name=typed,proto3,oneof"`
}

type VoiceRequest added in v0.1.30

type VoiceRequest struct {
	ConversationId string `protobuf:"bytes,1,opt,name=conversation_id,json=conversationId,proto3" json:"conversation_id,omitempty"`
	Sdp            string `protobuf:"bytes,2,opt,name=sdp,proto3" json:"sdp,omitempty"`
	// One of the agent's voices; empty uses the provider's default.
	Voice string `protobuf:"bytes,3,opt,name=voice,proto3" json:"voice,omitempty"`
	// contains filtered or unexported fields
}

func (*VoiceRequest) Descriptor deprecated added in v0.1.30

func (*VoiceRequest) Descriptor() ([]byte, []int)

Deprecated: Use VoiceRequest.ProtoReflect.Descriptor instead.

func (*VoiceRequest) GetConversationId added in v0.1.30

func (x *VoiceRequest) GetConversationId() string

func (*VoiceRequest) GetSdp added in v0.1.30

func (x *VoiceRequest) GetSdp() string

func (*VoiceRequest) GetVoice added in v0.1.30

func (x *VoiceRequest) GetVoice() string

func (*VoiceRequest) ProtoMessage added in v0.1.30

func (*VoiceRequest) ProtoMessage()

func (*VoiceRequest) ProtoReflect added in v0.1.30

func (x *VoiceRequest) ProtoReflect() protoreflect.Message

func (*VoiceRequest) Reset added in v0.1.30

func (x *VoiceRequest) Reset()

func (*VoiceRequest) String added in v0.1.30

func (x *VoiceRequest) String() string

type VoiceSettingsAction added in v0.1.36

type VoiceSettingsAction int32
const (
	VoiceSettingsAction_READ VoiceSettingsAction = 0
	// START returns the current voice conversation, creating one with agent when none is current.
	VoiceSettingsAction_START VoiceSettingsAction = 1
	// RESET forgets the current voice conversation while it is still conversation_id.
	VoiceSettingsAction_RESET VoiceSettingsAction = 2
	// UPDATE stores the agent, voice and transcript fields that are set.
	VoiceSettingsAction_UPDATE VoiceSettingsAction = 3
)

func (VoiceSettingsAction) Descriptor added in v0.1.36

func (VoiceSettingsAction) Enum added in v0.1.36

func (VoiceSettingsAction) EnumDescriptor deprecated added in v0.1.36

func (VoiceSettingsAction) EnumDescriptor() ([]byte, []int)

Deprecated: Use VoiceSettingsAction.Descriptor instead.

func (VoiceSettingsAction) Number added in v0.1.36

func (VoiceSettingsAction) String added in v0.1.36

func (x VoiceSettingsAction) String() string

func (VoiceSettingsAction) Type added in v0.1.36

type VoiceSettingsRequest added in v0.1.36

type VoiceSettingsRequest struct {
	Action         VoiceSettingsAction `protobuf:"varint,1,opt,name=action,proto3,enum=rpc.VoiceSettingsAction" json:"action,omitempty"`
	ConversationId string              `protobuf:"bytes,2,opt,name=conversation_id,json=conversationId,proto3" json:"conversation_id,omitempty"`
	Agent          *string             `protobuf:"bytes,3,opt,name=agent,proto3,oneof" json:"agent,omitempty"`
	Voice          *string             `protobuf:"bytes,4,opt,name=voice,proto3,oneof" json:"voice,omitempty"`
	Transcript     *bool               `protobuf:"varint,5,opt,name=transcript,proto3,oneof" json:"transcript,omitempty"`
	// contains filtered or unexported fields
}

func (*VoiceSettingsRequest) Descriptor deprecated added in v0.1.36

func (*VoiceSettingsRequest) Descriptor() ([]byte, []int)

Deprecated: Use VoiceSettingsRequest.ProtoReflect.Descriptor instead.

func (*VoiceSettingsRequest) GetAction added in v0.1.36

func (*VoiceSettingsRequest) GetAgent added in v0.1.36

func (x *VoiceSettingsRequest) GetAgent() string

func (*VoiceSettingsRequest) GetConversationId added in v0.1.36

func (x *VoiceSettingsRequest) GetConversationId() string

func (*VoiceSettingsRequest) GetTranscript added in v0.1.36

func (x *VoiceSettingsRequest) GetTranscript() bool

func (*VoiceSettingsRequest) GetVoice added in v0.1.36

func (x *VoiceSettingsRequest) GetVoice() string

func (*VoiceSettingsRequest) ProtoMessage added in v0.1.36

func (*VoiceSettingsRequest) ProtoMessage()

func (*VoiceSettingsRequest) ProtoReflect added in v0.1.36

func (x *VoiceSettingsRequest) ProtoReflect() protoreflect.Message

func (*VoiceSettingsRequest) Reset added in v0.1.36

func (x *VoiceSettingsRequest) Reset()

func (*VoiceSettingsRequest) String added in v0.1.36

func (x *VoiceSettingsRequest) String() string

type VoiceSettingsResponse added in v0.1.36

type VoiceSettingsResponse struct {
	ConversationId string `protobuf:"bytes,1,opt,name=conversation_id,json=conversationId,proto3" json:"conversation_id,omitempty"`
	Agent          string `protobuf:"bytes,2,opt,name=agent,proto3" json:"agent,omitempty"`
	Voice          string `protobuf:"bytes,3,opt,name=voice,proto3" json:"voice,omitempty"`
	Transcript     bool   `protobuf:"varint,4,opt,name=transcript,proto3" json:"transcript,omitempty"`
	// contains filtered or unexported fields
}

VoiceSettingsResponse is the caller's voice settings; conversation_id is empty when none is current.

func (*VoiceSettingsResponse) Descriptor deprecated added in v0.1.36

func (*VoiceSettingsResponse) Descriptor() ([]byte, []int)

Deprecated: Use VoiceSettingsResponse.ProtoReflect.Descriptor instead.

func (*VoiceSettingsResponse) GetAgent added in v0.1.36

func (x *VoiceSettingsResponse) GetAgent() string

func (*VoiceSettingsResponse) GetConversationId added in v0.1.36

func (x *VoiceSettingsResponse) GetConversationId() string

func (*VoiceSettingsResponse) GetTranscript added in v0.1.36

func (x *VoiceSettingsResponse) GetTranscript() bool

func (*VoiceSettingsResponse) GetVoice added in v0.1.36

func (x *VoiceSettingsResponse) GetVoice() string

func (*VoiceSettingsResponse) ProtoMessage added in v0.1.36

func (*VoiceSettingsResponse) ProtoMessage()

func (*VoiceSettingsResponse) ProtoReflect added in v0.1.36

func (x *VoiceSettingsResponse) ProtoReflect() protoreflect.Message

func (*VoiceSettingsResponse) Reset added in v0.1.36

func (x *VoiceSettingsResponse) Reset()

func (*VoiceSettingsResponse) String added in v0.1.36

func (x *VoiceSettingsResponse) String() string

type Workflow added in v0.1.12

type Workflow struct {
	Name        string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// contains filtered or unexported fields
}

func (*Workflow) Descriptor deprecated added in v0.1.12

func (*Workflow) Descriptor() ([]byte, []int)

Deprecated: Use Workflow.ProtoReflect.Descriptor instead.

func (*Workflow) GetDescription added in v0.1.12

func (x *Workflow) GetDescription() string

func (*Workflow) GetName added in v0.1.12

func (x *Workflow) GetName() string

func (*Workflow) ProtoMessage added in v0.1.12

func (*Workflow) ProtoMessage()

func (*Workflow) ProtoReflect added in v0.1.12

func (x *Workflow) ProtoReflect() protoreflect.Message

func (*Workflow) Reset added in v0.1.12

func (x *Workflow) Reset()

func (*Workflow) String added in v0.1.12

func (x *Workflow) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL