// @generated by protoc-gen-es v2.12.0 with parameter "target=ts,import_extension=ts"
// @generated from file nomos.proto (package nomos, syntax proto3)
/* eslint-disable */

import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file nomos.proto.
 */
export const file_nomos: GenFile /*@__PURE__*/ = fileDesc(
  " ",
);

/**
 * @generated from message nomos.Empty
 */
export type Empty = Message<"nomos.Empty"> & {};

/**
 * Describes the message nomos.Empty.
 * Use `create(EmptySchema)` to create a new message.
 */
export const EmptySchema: GenMessage<Empty> /*@__PURE__*/ = messageDesc(file_nomos, 0);

/**
 * @generated from message nomos.LoopInfo
 */
export type LoopInfo = Message<"nomos.LoopInfo"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string name = 2;
   */
  name: string;

  /**
   * @generated from field: string schedule = 3;
   */
  schedule: string;

  /**
   * @generated from field: bool enabled = 4;
   */
  enabled: boolean;

  /**
   * system | bundled | user | agent
   *
   * @generated from field: string source = 5;
   */
  source: string;

  /**
   * @generated from field: int32 error_count = 6;
   */
  errorCount: number;

  /**
   * ISO-8601, empty if never run
   *
   * @generated from field: string last_run = 7;
   */
  lastRun: string;

  /**
   * @generated from field: string prompt = 8;
   */
  prompt: string;
};

/**
 * Describes the message nomos.LoopInfo.
 * Use `create(LoopInfoSchema)` to create a new message.
 */
export const LoopInfoSchema: GenMessage<LoopInfo> /*@__PURE__*/ = messageDesc(file_nomos, 1);

/**
 * @generated from message nomos.LoopList
 */
export type LoopList = Message<"nomos.LoopList"> & {
  /**
   * @generated from field: repeated nomos.LoopInfo loops = 1;
   */
  loops: LoopInfo[];
};

/**
 * Describes the message nomos.LoopList.
 * Use `create(LoopListSchema)` to create a new message.
 */
export const LoopListSchema: GenMessage<LoopList> /*@__PURE__*/ = messageDesc(file_nomos, 2);

/**
 * @generated from message nomos.SetLoopEnabledRequest
 */
export type SetLoopEnabledRequest = Message<"nomos.SetLoopEnabledRequest"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * @generated from field: bool enabled = 2;
   */
  enabled: boolean;
};

/**
 * Describes the message nomos.SetLoopEnabledRequest.
 * Use `create(SetLoopEnabledRequestSchema)` to create a new message.
 */
export const SetLoopEnabledRequestSchema: GenMessage<SetLoopEnabledRequest> /*@__PURE__*/ =
  messageDesc(file_nomos, 3);

/**
 * @generated from message nomos.LoopDeleteRequest
 */
export type LoopDeleteRequest = Message<"nomos.LoopDeleteRequest"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;
};

/**
 * Describes the message nomos.LoopDeleteRequest.
 * Use `create(LoopDeleteRequestSchema)` to create a new message.
 */
export const LoopDeleteRequestSchema: GenMessage<LoopDeleteRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  4,
);

/**
 * @generated from message nomos.LoopActionResponse
 */
export type LoopActionResponse = Message<"nomos.LoopActionResponse"> & {
  /**
   * @generated from field: bool success = 1;
   */
  success: boolean;

  /**
   * @generated from field: string message = 2;
   */
  message: string;
};

/**
 * Describes the message nomos.LoopActionResponse.
 * Use `create(LoopActionResponseSchema)` to create a new message.
 */
export const LoopActionResponseSchema: GenMessage<LoopActionResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  5,
);

/**
 * @generated from message nomos.ChatRequest
 */
export type ChatRequest = Message<"nomos.ChatRequest"> & {
  /**
   * @generated from field: string content = 1;
   */
  content: string;

  /**
   * @generated from field: string session_key = 2;
   */
  sessionKey: string;
};

/**
 * Describes the message nomos.ChatRequest.
 * Use `create(ChatRequestSchema)` to create a new message.
 */
export const ChatRequestSchema: GenMessage<ChatRequest> /*@__PURE__*/ = messageDesc(file_nomos, 6);

/**
 * @generated from message nomos.AgentEvent
 */
export type AgentEvent = Message<"nomos.AgentEvent"> & {
  /**
   * Event type: "stream_event", "tool_use_summary", "result", "system", "error", "pong"
   *
   * @generated from field: string type = 1;
   */
  type: string;

  /**
   * JSON-encoded event data (preserves flexibility of current protocol)
   *
   * @generated from field: string json_payload = 2;
   */
  jsonPayload: string;
};

/**
 * Describes the message nomos.AgentEvent.
 * Use `create(AgentEventSchema)` to create a new message.
 */
export const AgentEventSchema: GenMessage<AgentEvent> /*@__PURE__*/ = messageDesc(file_nomos, 7);

/**
 * @generated from message nomos.CommandRequest
 */
export type CommandRequest = Message<"nomos.CommandRequest"> & {
  /**
   * @generated from field: string command = 1;
   */
  command: string;

  /**
   * @generated from field: string session_key = 2;
   */
  sessionKey: string;
};

/**
 * Describes the message nomos.CommandRequest.
 * Use `create(CommandRequestSchema)` to create a new message.
 */
export const CommandRequestSchema: GenMessage<CommandRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  8,
);

/**
 * @generated from message nomos.CommandResponse
 */
export type CommandResponse = Message<"nomos.CommandResponse"> & {
  /**
   * @generated from field: bool success = 1;
   */
  success: boolean;

  /**
   * @generated from field: string message = 2;
   */
  message: string;
};

/**
 * Describes the message nomos.CommandResponse.
 * Use `create(CommandResponseSchema)` to create a new message.
 */
export const CommandResponseSchema: GenMessage<CommandResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  9,
);

/**
 * @generated from message nomos.StatusResponse
 */
export type StatusResponse = Message<"nomos.StatusResponse"> & {
  /**
   * @generated from field: bool running = 1;
   */
  running: boolean;

  /**
   * @generated from field: int32 connected_clients = 2;
   */
  connectedClients: number;

  /**
   * @generated from field: repeated string platforms = 3;
   */
  platforms: string[];
};

/**
 * Describes the message nomos.StatusResponse.
 * Use `create(StatusResponseSchema)` to create a new message.
 */
export const StatusResponseSchema: GenMessage<StatusResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  10,
);

/**
 * @generated from message nomos.SessionRequest
 */
export type SessionRequest = Message<"nomos.SessionRequest"> & {
  /**
   * @generated from field: string session_key = 1;
   */
  sessionKey: string;
};

/**
 * Describes the message nomos.SessionRequest.
 * Use `create(SessionRequestSchema)` to create a new message.
 */
export const SessionRequestSchema: GenMessage<SessionRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  11,
);

/**
 * @generated from message nomos.SessionResponse
 */
export type SessionResponse = Message<"nomos.SessionResponse"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string session_key = 2;
   */
  sessionKey: string;

  /**
   * @generated from field: string model = 3;
   */
  model: string;

  /**
   * @generated from field: string created_at = 4;
   */
  createdAt: string;
};

/**
 * Describes the message nomos.SessionResponse.
 * Use `create(SessionResponseSchema)` to create a new message.
 */
export const SessionResponseSchema: GenMessage<SessionResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  12,
);

/**
 * @generated from message nomos.SessionList
 */
export type SessionList = Message<"nomos.SessionList"> & {
  /**
   * @generated from field: repeated nomos.SessionResponse sessions = 1;
   */
  sessions: SessionResponse[];
};

/**
 * Describes the message nomos.SessionList.
 * Use `create(SessionListSchema)` to create a new message.
 */
export const SessionListSchema: GenMessage<SessionList> /*@__PURE__*/ = messageDesc(file_nomos, 13);

/**
 * @generated from message nomos.DraftAction
 */
export type DraftAction = Message<"nomos.DraftAction"> & {
  /**
   * @generated from field: string draft_id = 1;
   */
  draftId: string;
};

/**
 * Describes the message nomos.DraftAction.
 * Use `create(DraftActionSchema)` to create a new message.
 */
export const DraftActionSchema: GenMessage<DraftAction> /*@__PURE__*/ = messageDesc(file_nomos, 14);

/**
 * @generated from message nomos.DraftResponse
 */
export type DraftResponse = Message<"nomos.DraftResponse"> & {
  /**
   * @generated from field: bool success = 1;
   */
  success: boolean;

  /**
   * @generated from field: string message = 2;
   */
  message: string;
};

/**
 * Describes the message nomos.DraftResponse.
 * Use `create(DraftResponseSchema)` to create a new message.
 */
export const DraftResponseSchema: GenMessage<DraftResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  15,
);

/**
 * @generated from message nomos.DraftList
 */
export type DraftList = Message<"nomos.DraftList"> & {
  /**
   * @generated from field: repeated nomos.DraftItem drafts = 1;
   */
  drafts: DraftItem[];
};

/**
 * Describes the message nomos.DraftList.
 * Use `create(DraftListSchema)` to create a new message.
 */
export const DraftListSchema: GenMessage<DraftList> /*@__PURE__*/ = messageDesc(file_nomos, 16);

/**
 * @generated from message nomos.DraftItem
 */
export type DraftItem = Message<"nomos.DraftItem"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string content = 2;
   */
  content: string;

  /**
   * @generated from field: string platform = 3;
   */
  platform: string;

  /**
   * @generated from field: string channel_id = 4;
   */
  channelId: string;

  /**
   * @generated from field: string status = 5;
   */
  status: string;

  /**
   * @generated from field: string created_at = 6;
   */
  createdAt: string;
};

/**
 * Describes the message nomos.DraftItem.
 * Use `create(DraftItemSchema)` to create a new message.
 */
export const DraftItemSchema: GenMessage<DraftItem> /*@__PURE__*/ = messageDesc(file_nomos, 17);

/**
 * @generated from message nomos.PongResponse
 */
export type PongResponse = Message<"nomos.PongResponse"> & {
  /**
   * @generated from field: int64 timestamp = 1;
   */
  timestamp: bigint;
};

/**
 * Describes the message nomos.PongResponse.
 * Use `create(PongResponseSchema)` to create a new message.
 */
export const PongResponseSchema: GenMessage<PongResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  18,
);

/**
 * Loops (autonomous recurring jobs)
 *
 * @generated from message nomos.MLoop
 */
export type MLoop = Message<"nomos.MLoop"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string name = 2;
   */
  name: string;

  /**
   * @generated from field: string schedule = 3;
   */
  schedule: string;

  /**
   * @generated from field: bool enabled = 4;
   */
  enabled: boolean;

  /**
   * system | bundled | user | agent
   *
   * @generated from field: string source = 5;
   */
  source: string;

  /**
   * @generated from field: int32 error_count = 6;
   */
  errorCount: number;

  /**
   * ISO-8601, empty if never run
   *
   * @generated from field: string last_run = 7;
   */
  lastRun: string;

  /**
   * @generated from field: string prompt = 8;
   */
  prompt: string;
};

/**
 * Describes the message nomos.MLoop.
 * Use `create(MLoopSchema)` to create a new message.
 */
export const MLoopSchema: GenMessage<MLoop> /*@__PURE__*/ = messageDesc(file_nomos, 19);

/**
 * @generated from message nomos.MLoopsResponse
 */
export type MLoopsResponse = Message<"nomos.MLoopsResponse"> & {
  /**
   * @generated from field: repeated nomos.MLoop loops = 1;
   */
  loops: MLoop[];
};

/**
 * Describes the message nomos.MLoopsResponse.
 * Use `create(MLoopsResponseSchema)` to create a new message.
 */
export const MLoopsResponseSchema: GenMessage<MLoopsResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  20,
);

/**
 * @generated from message nomos.MSetLoopEnabledRequest
 */
export type MSetLoopEnabledRequest = Message<"nomos.MSetLoopEnabledRequest"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * @generated from field: bool enabled = 2;
   */
  enabled: boolean;
};

/**
 * Describes the message nomos.MSetLoopEnabledRequest.
 * Use `create(MSetLoopEnabledRequestSchema)` to create a new message.
 */
export const MSetLoopEnabledRequestSchema: GenMessage<MSetLoopEnabledRequest> /*@__PURE__*/ =
  messageDesc(file_nomos, 21);

/**
 * @generated from message nomos.MLoopDeleteRequest
 */
export type MLoopDeleteRequest = Message<"nomos.MLoopDeleteRequest"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;
};

/**
 * Describes the message nomos.MLoopDeleteRequest.
 * Use `create(MLoopDeleteRequestSchema)` to create a new message.
 */
export const MLoopDeleteRequestSchema: GenMessage<MLoopDeleteRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  22,
);

/**
 * Tasks (the user's scheduled tasks)
 *
 * @generated from message nomos.MTask
 */
export type MTask = Message<"nomos.MTask"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string name = 2;
   */
  name: string;

  /**
   * the instruction the task runs
   *
   * @generated from field: string prompt = 3;
   */
  prompt: string;

  /**
   * raw: "15m" | cron expr | ISO timestamp
   *
   * @generated from field: string schedule = 4;
   */
  schedule: string;

  /**
   * every | cron | at
   *
   * @generated from field: string schedule_type = 5;
   */
  scheduleType: string;

  /**
   * friendly, display-only
   *
   * @generated from field: string display_schedule = 6;
   */
  displaySchedule: string;

  /**
   * @generated from field: bool enabled = 7;
   */
  enabled: boolean;

  /**
   * @generated from field: string source = 8;
   */
  source: string;

  /**
   * ISO-8601, empty if never run
   *
   * @generated from field: string last_run = 9;
   */
  lastRun: string;
};

/**
 * Describes the message nomos.MTask.
 * Use `create(MTaskSchema)` to create a new message.
 */
export const MTaskSchema: GenMessage<MTask> /*@__PURE__*/ = messageDesc(file_nomos, 23);

/**
 * @generated from message nomos.MTasksResponse
 */
export type MTasksResponse = Message<"nomos.MTasksResponse"> & {
  /**
   * @generated from field: repeated nomos.MTask tasks = 1;
   */
  tasks: MTask[];
};

/**
 * Describes the message nomos.MTasksResponse.
 * Use `create(MTasksResponseSchema)` to create a new message.
 */
export const MTasksResponseSchema: GenMessage<MTasksResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  24,
);

/**
 * Full-state update (the client sends the edited task); empty name/schedule are
 * ignored so a toggle-only call never blanks fields.
 *
 * @generated from message nomos.MTaskUpdateRequest
 */
export type MTaskUpdateRequest = Message<"nomos.MTaskUpdateRequest"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string name = 2;
   */
  name: string;

  /**
   * @generated from field: string prompt = 3;
   */
  prompt: string;

  /**
   * @generated from field: string schedule = 4;
   */
  schedule: string;

  /**
   * @generated from field: string schedule_type = 5;
   */
  scheduleType: string;

  /**
   * @generated from field: bool enabled = 6;
   */
  enabled: boolean;
};

/**
 * Describes the message nomos.MTaskUpdateRequest.
 * Use `create(MTaskUpdateRequestSchema)` to create a new message.
 */
export const MTaskUpdateRequestSchema: GenMessage<MTaskUpdateRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  25,
);

/**
 * @generated from message nomos.MTaskDeleteRequest
 */
export type MTaskDeleteRequest = Message<"nomos.MTaskDeleteRequest"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;
};

/**
 * Describes the message nomos.MTaskDeleteRequest.
 * Use `create(MTaskDeleteRequestSchema)` to create a new message.
 */
export const MTaskDeleteRequestSchema: GenMessage<MTaskDeleteRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  26,
);

/**
 * Brain (knowledge graph + learned facts)
 *
 * @generated from message nomos.MBrainNode
 */
export type MBrainNode = Message<"nomos.MBrainNode"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string label = 2;
   */
  label: string;

  /**
   * person | org | topic | decision | project | value | event | wiki | vault
   *
   * @generated from field: string kind = 3;
   */
  kind: string;

  /**
   * @generated from field: string summary = 4;
   */
  summary: string;

  /**
   * connection count within the returned subgraph
   *
   * @generated from field: int32 degree = 5;
   */
  degree: number;

  /**
   * @generated from field: double confidence = 6;
   */
  confidence: number;
};

/**
 * Describes the message nomos.MBrainNode.
 * Use `create(MBrainNodeSchema)` to create a new message.
 */
export const MBrainNodeSchema: GenMessage<MBrainNode> /*@__PURE__*/ = messageDesc(file_nomos, 27);

/**
 * @generated from message nomos.MBrainEdge
 */
export type MBrainEdge = Message<"nomos.MBrainEdge"> & {
  /**
   * @generated from field: string src = 1;
   */
  src: string;

  /**
   * @generated from field: string dst = 2;
   */
  dst: string;

  /**
   * @generated from field: string relation = 3;
   */
  relation: string;
};

/**
 * Describes the message nomos.MBrainEdge.
 * Use `create(MBrainEdgeSchema)` to create a new message.
 */
export const MBrainEdgeSchema: GenMessage<MBrainEdge> /*@__PURE__*/ = messageDesc(file_nomos, 28);

/**
 * @generated from message nomos.MBrainFact
 */
export type MBrainFact = Message<"nomos.MBrainFact"> & {
  /**
   * @generated from field: string text = 1;
   */
  text: string;

  /**
   * @generated from field: string source = 2;
   */
  source: string;

  /**
   * 0..3
   *
   * @generated from field: int32 confidence = 3;
   */
  confidence: number;

  /**
   * ISO-8601
   *
   * @generated from field: string learned_at = 4;
   */
  learnedAt: string;
};

/**
 * Describes the message nomos.MBrainFact.
 * Use `create(MBrainFactSchema)` to create a new message.
 */
export const MBrainFactSchema: GenMessage<MBrainFact> /*@__PURE__*/ = messageDesc(file_nomos, 29);

/**
 * @generated from message nomos.MBrainResponse
 */
export type MBrainResponse = Message<"nomos.MBrainResponse"> & {
  /**
   * @generated from field: repeated nomos.MBrainNode nodes = 1;
   */
  nodes: MBrainNode[];

  /**
   * @generated from field: repeated nomos.MBrainEdge edges = 2;
   */
  edges: MBrainEdge[];

  /**
   * @generated from field: repeated nomos.MBrainFact facts = 3;
   */
  facts: MBrainFact[];

  /**
   * @generated from field: int32 entity_count = 4;
   */
  entityCount: number;

  /**
   * @generated from field: int32 fact_count = 5;
   */
  factCount: number;
};

/**
 * Describes the message nomos.MBrainResponse.
 * Use `create(MBrainResponseSchema)` to create a new message.
 */
export const MBrainResponseSchema: GenMessage<MBrainResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  30,
);

/**
 * Inbox (drafts + CATE agent requests)
 *
 * @generated from message nomos.MInboxDraft
 */
export type MInboxDraft = Message<"nomos.MInboxDraft"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string recipient = 2;
   */
  recipient: string;

  /**
   * @generated from field: string preview = 3;
   */
  preview: string;

  /**
   * pending | approved | sent
   *
   * @generated from field: string status = 4;
   */
  status: string;

  /**
   * @generated from field: string platform = 5;
   */
  platform: string;

  /**
   * @generated from field: string created_at = 6;
   */
  createdAt: string;
};

/**
 * Describes the message nomos.MInboxDraft.
 * Use `create(MInboxDraftSchema)` to create a new message.
 */
export const MInboxDraftSchema: GenMessage<MInboxDraft> /*@__PURE__*/ = messageDesc(file_nomos, 31);

/**
 * @generated from message nomos.MInboxCate
 */
export type MInboxCate = Message<"nomos.MInboxCate"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string from_label = 2;
   */
  fromLabel: string;

  /**
   * @generated from field: string trust_tier = 3;
   */
  trustTier: string;

  /**
   * @generated from field: string subject = 4;
   */
  subject: string;

  /**
   * @generated from field: string bond_amount = 5;
   */
  bondAmount: string;

  /**
   * @generated from field: string created_at = 6;
   */
  createdAt: string;
};

/**
 * Describes the message nomos.MInboxCate.
 * Use `create(MInboxCateSchema)` to create a new message.
 */
export const MInboxCateSchema: GenMessage<MInboxCate> /*@__PURE__*/ = messageDesc(file_nomos, 32);

/**
 * @generated from message nomos.MGetInboxResponse
 */
export type MGetInboxResponse = Message<"nomos.MGetInboxResponse"> & {
  /**
   * @generated from field: repeated nomos.MInboxDraft drafts = 1;
   */
  drafts: MInboxDraft[];

  /**
   * @generated from field: repeated nomos.MInboxCate cate = 2;
   */
  cate: MInboxCate[];

  /**
   * @generated from field: int32 blocked_count = 3;
   */
  blockedCount: number;
};

/**
 * Describes the message nomos.MGetInboxResponse.
 * Use `create(MGetInboxResponseSchema)` to create a new message.
 */
export const MGetInboxResponseSchema: GenMessage<MGetInboxResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  33,
);

/**
 * Today (the daily brief)
 *
 * @generated from message nomos.MTodayEvent
 */
export type MTodayEvent = Message<"nomos.MTodayEvent"> & {
  /**
   * @generated from field: string time = 1;
   */
  time: string;

  /**
   * @generated from field: string title = 2;
   */
  title: string;

  /**
   * @generated from field: string meta = 3;
   */
  meta: string;
};

/**
 * Describes the message nomos.MTodayEvent.
 * Use `create(MTodayEventSchema)` to create a new message.
 */
export const MTodayEventSchema: GenMessage<MTodayEvent> /*@__PURE__*/ = messageDesc(file_nomos, 34);

/**
 * @generated from message nomos.MTodayCommitment
 */
export type MTodayCommitment = Message<"nomos.MTodayCommitment"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string description = 2;
   */
  description: string;

  /**
   * @generated from field: string due = 3;
   */
  due: string;

  /**
   * p0..p3, empty if unranked
   *
   * @generated from field: string priority = 4;
   */
  priority: string;

  /**
   * why it's ranked here (one line)
   *
   * @generated from field: string rank_reason = 5;
   */
  rankReason: string;

  /**
   * mine | theirs
   *
   * @generated from field: string direction = 6;
   */
  direction: string;

  /**
   * the other party, if known
   *
   * @generated from field: string contact = 7;
   */
  contact: string;
};

/**
 * Describes the message nomos.MTodayCommitment.
 * Use `create(MTodayCommitmentSchema)` to create a new message.
 */
export const MTodayCommitmentSchema: GenMessage<MTodayCommitment> /*@__PURE__*/ = messageDesc(
  file_nomos,
  35,
);

/**
 * @generated from message nomos.MTodayTask
 */
export type MTodayTask = Message<"nomos.MTodayTask"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string name = 2;
   */
  name: string;

  /**
   * @generated from field: string schedule = 3;
   */
  schedule: string;
};

/**
 * Describes the message nomos.MTodayTask.
 * Use `create(MTodayTaskSchema)` to create a new message.
 */
export const MTodayTaskSchema: GenMessage<MTodayTask> /*@__PURE__*/ = messageDesc(file_nomos, 36);

/**
 * @generated from message nomos.MTodayResponse
 */
export type MTodayResponse = Message<"nomos.MTodayResponse"> & {
  /**
   * @generated from field: bool briefing_enabled = 1;
   */
  briefingEnabled: boolean;

  /**
   * @generated from field: repeated nomos.MTodayEvent events = 2;
   */
  events: MTodayEvent[];

  /**
   * "needs you" — items I owe, ranked
   *
   * @generated from field: repeated nomos.MTodayCommitment commitments = 3;
   */
  commitments: MTodayCommitment[];

  /**
   * @generated from field: repeated nomos.MTodayTask tasks = 4;
   */
  tasks: MTodayTask[];

  /**
   * "waiting on others" — items owed to me
   *
   * @generated from field: repeated nomos.MTodayCommitment waiting = 5;
   */
  waiting: MTodayCommitment[];
};

/**
 * Describes the message nomos.MTodayResponse.
 * Use `create(MTodayResponseSchema)` to create a new message.
 */
export const MTodayResponseSchema: GenMessage<MTodayResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  37,
);

/**
 * Action-item mutations (the ranked commitments list).
 *
 * @generated from message nomos.MCommitmentAction
 */
export type MCommitmentAction = Message<"nomos.MCommitmentAction"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;
};

/**
 * Describes the message nomos.MCommitmentAction.
 * Use `create(MCommitmentActionSchema)` to create a new message.
 */
export const MCommitmentActionSchema: GenMessage<MCommitmentAction> /*@__PURE__*/ = messageDesc(
  file_nomos,
  38,
);

/**
 * @generated from message nomos.MCommitmentSnooze
 */
export type MCommitmentSnooze = Message<"nomos.MCommitmentSnooze"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * ISO date/time to push the item's deadline to
   *
   * @generated from field: string until = 2;
   */
  until: string;
};

/**
 * Describes the message nomos.MCommitmentSnooze.
 * Use `create(MCommitmentSnoozeSchema)` to create a new message.
 */
export const MCommitmentSnoozeSchema: GenMessage<MCommitmentSnooze> /*@__PURE__*/ = messageDesc(
  file_nomos,
  39,
);

/**
 * @generated from message nomos.MCommitmentDelegate
 */
export type MCommitmentDelegate = Message<"nomos.MCommitmentDelegate"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * who it's delegated to (a name, or 'nomos')
   *
   * @generated from field: string to = 2;
   */
  to: string;
};

/**
 * Describes the message nomos.MCommitmentDelegate.
 * Use `create(MCommitmentDelegateSchema)` to create a new message.
 */
export const MCommitmentDelegateSchema: GenMessage<MCommitmentDelegate> /*@__PURE__*/ = messageDesc(
  file_nomos,
  40,
);

/**
 * @generated from message nomos.MAck
 */
export type MAck = Message<"nomos.MAck"> & {
  /**
   * @generated from field: bool success = 1;
   */
  success: boolean;

  /**
   * @generated from field: string message = 2;
   */
  message: string;
};

/**
 * Describes the message nomos.MAck.
 * Use `create(MAckSchema)` to create a new message.
 */
export const MAckSchema: GenMessage<MAck> /*@__PURE__*/ = messageDesc(file_nomos, 41);

/**
 * Answer to a pending ask_user elicitation, delivered out-of-band so it does not
 * queue behind the suspended turn that is awaiting it.
 *
 * @generated from message nomos.MAnswerRequest
 */
export type MAnswerRequest = Message<"nomos.MAnswerRequest"> & {
  /**
   * @generated from field: string session_key = 1;
   */
  sessionKey: string;

  /**
   * @generated from field: string question_id = 2;
   */
  questionId: string;

  /**
   * @generated from field: string answer = 3;
   */
  answer: string;
};

/**
 * Describes the message nomos.MAnswerRequest.
 * Use `create(MAnswerRequestSchema)` to create a new message.
 */
export const MAnswerRequestSchema: GenMessage<MAnswerRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  42,
);

/**
 * Vault (long-term memory / knowledge base)
 *
 * @generated from message nomos.MVaultListRequest
 */
export type MVaultListRequest = Message<"nomos.MVaultListRequest"> & {
  /**
   * @generated from field: string prefix = 1;
   */
  prefix: string;
};

/**
 * Describes the message nomos.MVaultListRequest.
 * Use `create(MVaultListRequestSchema)` to create a new message.
 */
export const MVaultListRequestSchema: GenMessage<MVaultListRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  43,
);

/**
 * @generated from message nomos.MVaultNoteSummary
 */
export type MVaultNoteSummary = Message<"nomos.MVaultNoteSummary"> & {
  /**
   * @generated from field: string path = 1;
   */
  path: string;

  /**
   * @generated from field: string title = 2;
   */
  title: string;

  /**
   * @generated from field: string updated_at = 3;
   */
  updatedAt: string;
};

/**
 * Describes the message nomos.MVaultNoteSummary.
 * Use `create(MVaultNoteSummarySchema)` to create a new message.
 */
export const MVaultNoteSummarySchema: GenMessage<MVaultNoteSummary> /*@__PURE__*/ = messageDesc(
  file_nomos,
  44,
);

/**
 * @generated from message nomos.MVaultListResponse
 */
export type MVaultListResponse = Message<"nomos.MVaultListResponse"> & {
  /**
   * @generated from field: repeated nomos.MVaultNoteSummary notes = 1;
   */
  notes: MVaultNoteSummary[];
};

/**
 * Describes the message nomos.MVaultListResponse.
 * Use `create(MVaultListResponseSchema)` to create a new message.
 */
export const MVaultListResponseSchema: GenMessage<MVaultListResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  45,
);

/**
 * @generated from message nomos.MVaultGetRequest
 */
export type MVaultGetRequest = Message<"nomos.MVaultGetRequest"> & {
  /**
   * @generated from field: string path = 1;
   */
  path: string;
};

/**
 * Describes the message nomos.MVaultGetRequest.
 * Use `create(MVaultGetRequestSchema)` to create a new message.
 */
export const MVaultGetRequestSchema: GenMessage<MVaultGetRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  46,
);

/**
 * @generated from message nomos.MVaultNote
 */
export type MVaultNote = Message<"nomos.MVaultNote"> & {
  /**
   * @generated from field: string path = 1;
   */
  path: string;

  /**
   * @generated from field: string title = 2;
   */
  title: string;

  /**
   * @generated from field: string content = 3;
   */
  content: string;

  /**
   * @generated from field: string updated_at = 4;
   */
  updatedAt: string;

  /**
   * @generated from field: bool exists = 5;
   */
  exists: boolean;
};

/**
 * Describes the message nomos.MVaultNote.
 * Use `create(MVaultNoteSchema)` to create a new message.
 */
export const MVaultNoteSchema: GenMessage<MVaultNote> /*@__PURE__*/ = messageDesc(file_nomos, 47);

/**
 * @generated from message nomos.MVaultWriteRequest
 */
export type MVaultWriteRequest = Message<"nomos.MVaultWriteRequest"> & {
  /**
   * @generated from field: string path = 1;
   */
  path: string;

  /**
   * @generated from field: string content = 2;
   */
  content: string;

  /**
   * @generated from field: string title = 3;
   */
  title: string;
};

/**
 * Describes the message nomos.MVaultWriteRequest.
 * Use `create(MVaultWriteRequestSchema)` to create a new message.
 */
export const MVaultWriteRequestSchema: GenMessage<MVaultWriteRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  48,
);

/**
 * @generated from message nomos.MVaultDeleteRequest
 */
export type MVaultDeleteRequest = Message<"nomos.MVaultDeleteRequest"> & {
  /**
   * @generated from field: string path = 1;
   */
  path: string;
};

/**
 * Describes the message nomos.MVaultDeleteRequest.
 * Use `create(MVaultDeleteRequestSchema)` to create a new message.
 */
export const MVaultDeleteRequestSchema: GenMessage<MVaultDeleteRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  49,
);

/**
 * Chat
 *
 * @generated from message nomos.MChatRequest
 */
export type MChatRequest = Message<"nomos.MChatRequest"> & {
  /**
   * @generated from field: string content = 1;
   */
  content: string;

  /**
   * @generated from field: string session_key = 2;
   */
  sessionKey: string;
};

/**
 * Describes the message nomos.MChatRequest.
 * Use `create(MChatRequestSchema)` to create a new message.
 */
export const MChatRequestSchema: GenMessage<MChatRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  50,
);

/**
 * @generated from message nomos.MChatEvent
 */
export type MChatEvent = Message<"nomos.MChatEvent"> & {
  /**
   * @generated from field: string type = 1;
   */
  type: string;

  /**
   * @generated from field: string json_payload = 2;
   */
  jsonPayload: string;
};

/**
 * Describes the message nomos.MChatEvent.
 * Use `create(MChatEventSchema)` to create a new message.
 */
export const MChatEventSchema: GenMessage<MChatEvent> /*@__PURE__*/ = messageDesc(file_nomos, 51);

/**
 * @generated from message nomos.MGetMessagesRequest
 */
export type MGetMessagesRequest = Message<"nomos.MGetMessagesRequest"> & {
  /**
   * @generated from field: string session_key = 1;
   */
  sessionKey: string;

  /**
   * @generated from field: int32 limit = 2;
   */
  limit: number;

  /**
   * @generated from field: string before_id = 3;
   */
  beforeId: string;
};

/**
 * Describes the message nomos.MGetMessagesRequest.
 * Use `create(MGetMessagesRequestSchema)` to create a new message.
 */
export const MGetMessagesRequestSchema: GenMessage<MGetMessagesRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  52,
);

/**
 * @generated from message nomos.MMessage
 */
export type MMessage = Message<"nomos.MMessage"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * user | agent
   *
   * @generated from field: string role = 2;
   */
  role: string;

  /**
   * @generated from field: string content = 3;
   */
  content: string;

  /**
   * @generated from field: string created_at = 4;
   */
  createdAt: string;
};

/**
 * Describes the message nomos.MMessage.
 * Use `create(MMessageSchema)` to create a new message.
 */
export const MMessageSchema: GenMessage<MMessage> /*@__PURE__*/ = messageDesc(file_nomos, 53);

/**
 * @generated from message nomos.MGetMessagesResponse
 */
export type MGetMessagesResponse = Message<"nomos.MGetMessagesResponse"> & {
  /**
   * @generated from field: repeated nomos.MMessage messages = 1;
   */
  messages: MMessage[];
};

/**
 * Describes the message nomos.MGetMessagesResponse.
 * Use `create(MGetMessagesResponseSchema)` to create a new message.
 */
export const MGetMessagesResponseSchema: GenMessage<MGetMessagesResponse> /*@__PURE__*/ =
  messageDesc(file_nomos, 54);

/**
 * @generated from message nomos.MDraftAction
 */
export type MDraftAction = Message<"nomos.MDraftAction"> & {
  /**
   * @generated from field: string draft_id = 1;
   */
  draftId: string;
};

/**
 * Describes the message nomos.MDraftAction.
 * Use `create(MDraftActionSchema)` to create a new message.
 */
export const MDraftActionSchema: GenMessage<MDraftAction> /*@__PURE__*/ = messageDesc(
  file_nomos,
  55,
);

/**
 * @generated from message nomos.MDraftActionWithEdit
 */
export type MDraftActionWithEdit = Message<"nomos.MDraftActionWithEdit"> & {
  /**
   * @generated from field: string draft_id = 1;
   */
  draftId: string;

  /**
   * @generated from field: string edited_text = 2;
   */
  editedText: string;
};

/**
 * Describes the message nomos.MDraftActionWithEdit.
 * Use `create(MDraftActionWithEditSchema)` to create a new message.
 */
export const MDraftActionWithEditSchema: GenMessage<MDraftActionWithEdit> /*@__PURE__*/ =
  messageDesc(file_nomos, 56);

/**
 * @generated from message nomos.MDraftActionResponse
 */
export type MDraftActionResponse = Message<"nomos.MDraftActionResponse"> & {
  /**
   * @generated from field: bool success = 1;
   */
  success: boolean;

  /**
   * @generated from field: string message = 2;
   */
  message: string;
};

/**
 * Describes the message nomos.MDraftActionResponse.
 * Use `create(MDraftActionResponseSchema)` to create a new message.
 */
export const MDraftActionResponseSchema: GenMessage<MDraftActionResponse> /*@__PURE__*/ =
  messageDesc(file_nomos, 57);

/**
 * Inbox
 *
 * @generated from message nomos.MInboxRequest
 */
export type MInboxRequest = Message<"nomos.MInboxRequest"> & {
  /**
   * pending | approved | denied | all
   *
   * @generated from field: string status = 1;
   */
  status: string;

  /**
   * @generated from field: int32 limit = 2;
   */
  limit: number;
};

/**
 * Describes the message nomos.MInboxRequest.
 * Use `create(MInboxRequestSchema)` to create a new message.
 */
export const MInboxRequestSchema: GenMessage<MInboxRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  58,
);

/**
 * @generated from message nomos.MInboxItem
 */
export type MInboxItem = Message<"nomos.MInboxItem"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string from_label = 2;
   */
  fromLabel: string;

  /**
   * verified | bonded | friend | blocked | unknown
   *
   * @generated from field: string trust_tier = 3;
   */
  trustTier: string;

  /**
   * @generated from field: string subject = 4;
   */
  subject: string;

  /**
   * human-formatted by client
   *
   * @generated from field: string time = 5;
   */
  time: string;

  /**
   * empty if free
   *
   * @generated from field: string bond_amount = 6;
   */
  bondAmount: string;

  /**
   * @generated from field: bool unread = 7;
   */
  unread: boolean;

  /**
   * @generated from field: string created_at = 8;
   */
  createdAt: string;
};

/**
 * Describes the message nomos.MInboxItem.
 * Use `create(MInboxItemSchema)` to create a new message.
 */
export const MInboxItemSchema: GenMessage<MInboxItem> /*@__PURE__*/ = messageDesc(file_nomos, 59);

/**
 * @generated from message nomos.MInboxResponse
 */
export type MInboxResponse = Message<"nomos.MInboxResponse"> & {
  /**
   * @generated from field: repeated nomos.MInboxItem items = 1;
   */
  items: MInboxItem[];

  /**
   * @generated from field: int32 blocked_count = 2;
   */
  blockedCount: number;
};

/**
 * Describes the message nomos.MInboxResponse.
 * Use `create(MInboxResponseSchema)` to create a new message.
 */
export const MInboxResponseSchema: GenMessage<MInboxResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  60,
);

/**
 * @generated from message nomos.MEnvelopeRequest
 */
export type MEnvelopeRequest = Message<"nomos.MEnvelopeRequest"> & {
  /**
   * @generated from field: string inbox_id = 1;
   */
  inboxId: string;
};

/**
 * Describes the message nomos.MEnvelopeRequest.
 * Use `create(MEnvelopeRequestSchema)` to create a new message.
 */
export const MEnvelopeRequestSchema: GenMessage<MEnvelopeRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  61,
);

/**
 * @generated from message nomos.MCateEnvelope
 */
export type MCateEnvelope = Message<"nomos.MCateEnvelope"> & {
  /**
   * @generated from field: string did = 1;
   */
  did: string;

  /**
   * @generated from field: string trust_tier = 2;
   */
  trustTier: string;

  /**
   * @generated from field: string intent = 3;
   */
  intent: string;

  /**
   * @generated from field: string consent_grant = 4;
   */
  consentGrant: string;

  /**
   * @generated from field: string stamp = 5;
   */
  stamp: string;

  /**
   * @generated from field: string bond_amount = 6;
   */
  bondAmount: string;

  /**
   * @generated from field: string raw_json = 7;
   */
  rawJson: string;
};

/**
 * Describes the message nomos.MCateEnvelope.
 * Use `create(MCateEnvelopeSchema)` to create a new message.
 */
export const MCateEnvelopeSchema: GenMessage<MCateEnvelope> /*@__PURE__*/ = messageDesc(
  file_nomos,
  62,
);

/**
 * @generated from message nomos.MInboxActionRequest
 */
export type MInboxActionRequest = Message<"nomos.MInboxActionRequest"> & {
  /**
   * @generated from field: string inbox_id = 1;
   */
  inboxId: string;

  /**
   * approve | deny | block
   *
   * @generated from field: string action = 2;
   */
  action: string;
};

/**
 * Describes the message nomos.MInboxActionRequest.
 * Use `create(MInboxActionRequestSchema)` to create a new message.
 */
export const MInboxActionRequestSchema: GenMessage<MInboxActionRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  63,
);

/**
 * @generated from message nomos.MInboxActionResponse
 */
export type MInboxActionResponse = Message<"nomos.MInboxActionResponse"> & {
  /**
   * @generated from field: bool success = 1;
   */
  success: boolean;

  /**
   * @generated from field: string message = 2;
   */
  message: string;
};

/**
 * Describes the message nomos.MInboxActionResponse.
 * Use `create(MInboxActionResponseSchema)` to create a new message.
 */
export const MInboxActionResponseSchema: GenMessage<MInboxActionResponse> /*@__PURE__*/ =
  messageDesc(file_nomos, 64);

/**
 * Skills
 *
 * @generated from message nomos.MSkill
 */
export type MSkill = Message<"nomos.MSkill"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * @generated from field: string description = 2;
   */
  description: string;

  /**
   * bundled | personal | project
   *
   * @generated from field: string source = 3;
   */
  source: string;

  /**
   * @generated from field: bool enabled = 4;
   */
  enabled: boolean;

  /**
   * @generated from field: repeated string certs = 5;
   */
  certs: string[];

  /**
   * @generated from field: string price = 6;
   */
  price: string;
};

/**
 * Describes the message nomos.MSkill.
 * Use `create(MSkillSchema)` to create a new message.
 */
export const MSkillSchema: GenMessage<MSkill> /*@__PURE__*/ = messageDesc(file_nomos, 65);

/**
 * @generated from message nomos.MSkillsResponse
 */
export type MSkillsResponse = Message<"nomos.MSkillsResponse"> & {
  /**
   * @generated from field: repeated nomos.MSkill skills = 1;
   */
  skills: MSkill[];
};

/**
 * Describes the message nomos.MSkillsResponse.
 * Use `create(MSkillsResponseSchema)` to create a new message.
 */
export const MSkillsResponseSchema: GenMessage<MSkillsResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  66,
);

/**
 * @generated from message nomos.MPlugin
 */
export type MPlugin = Message<"nomos.MPlugin"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * @generated from field: string description = 2;
   */
  description: string;

  /**
   * @generated from field: string marketplace = 3;
   */
  marketplace: string;
};

/**
 * Describes the message nomos.MPlugin.
 * Use `create(MPluginSchema)` to create a new message.
 */
export const MPluginSchema: GenMessage<MPlugin> /*@__PURE__*/ = messageDesc(file_nomos, 67);

/**
 * @generated from message nomos.MPluginsResponse
 */
export type MPluginsResponse = Message<"nomos.MPluginsResponse"> & {
  /**
   * @generated from field: repeated nomos.MPlugin plugins = 1;
   */
  plugins: MPlugin[];
};

/**
 * Describes the message nomos.MPluginsResponse.
 * Use `create(MPluginsResponseSchema)` to create a new message.
 */
export const MPluginsResponseSchema: GenMessage<MPluginsResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  68,
);

/**
 * @generated from message nomos.MSkillToggleRequest
 */
export type MSkillToggleRequest = Message<"nomos.MSkillToggleRequest"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * @generated from field: bool enabled = 2;
   */
  enabled: boolean;
};

/**
 * Describes the message nomos.MSkillToggleRequest.
 * Use `create(MSkillToggleRequestSchema)` to create a new message.
 */
export const MSkillToggleRequestSchema: GenMessage<MSkillToggleRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  69,
);

/**
 * @generated from message nomos.MSkillToggleResponse
 */
export type MSkillToggleResponse = Message<"nomos.MSkillToggleResponse"> & {
  /**
   * @generated from field: bool success = 1;
   */
  success: boolean;

  /**
   * @generated from field: string message = 2;
   */
  message: string;
};

/**
 * Describes the message nomos.MSkillToggleResponse.
 * Use `create(MSkillToggleResponseSchema)` to create a new message.
 */
export const MSkillToggleResponseSchema: GenMessage<MSkillToggleResponse> /*@__PURE__*/ =
  messageDesc(file_nomos, 70);

/**
 * Earnings
 *
 * @generated from message nomos.MEarningsRequest
 */
export type MEarningsRequest = Message<"nomos.MEarningsRequest"> & {
  /**
   * month | week | all
   *
   * @generated from field: string period = 1;
   */
  period: string;
};

/**
 * Describes the message nomos.MEarningsRequest.
 * Use `create(MEarningsRequestSchema)` to create a new message.
 */
export const MEarningsRequestSchema: GenMessage<MEarningsRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  71,
);

/**
 * @generated from message nomos.MEarningsResponse
 */
export type MEarningsResponse = Message<"nomos.MEarningsResponse"> & {
  /**
   * All amounts in USD cents.
   *
   * @generated from field: int64 this_period_cents = 1;
   */
  thisPeriodCents: bigint;

  /**
   * @generated from field: int64 bonds_count = 2;
   */
  bondsCount: bigint;

  /**
   * @generated from field: int64 avg_bond_cents = 3;
   */
  avgBondCents: bigint;

  /**
   * @generated from field: int32 accept_rate_pct = 4;
   */
  acceptRatePct: number;

  /**
   * Daily series for sparkline (cents per day, oldest → newest).
   *
   * @generated from field: repeated int64 series_cents = 5;
   */
  seriesCents: bigint[];
};

/**
 * Describes the message nomos.MEarningsResponse.
 * Use `create(MEarningsResponseSchema)` to create a new message.
 */
export const MEarningsResponseSchema: GenMessage<MEarningsResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  72,
);

/**
 * Brain (knowledge graph)
 *
 * @generated from message nomos.MGraphRequest
 */
export type MGraphRequest = Message<"nomos.MGraphRequest"> & {
  /**
   * optional node-kind filter (person|project|topic|...)
   *
   * @generated from field: repeated string kinds = 1;
   */
  kinds: string[];

  /**
   * max nodes (default 500)
   *
   * @generated from field: int32 limit = 2;
   */
  limit: number;
};

/**
 * Describes the message nomos.MGraphRequest.
 * Use `create(MGraphRequestSchema)` to create a new message.
 */
export const MGraphRequestSchema: GenMessage<MGraphRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  73,
);

/**
 * @generated from message nomos.MGraphNeighborsRequest
 */
export type MGraphNeighborsRequest = Message<"nomos.MGraphNeighborsRequest"> & {
  /**
   * @generated from field: string node_id = 1;
   */
  nodeId: string;

  /**
   * hops, 1-3 (default 2)
   *
   * @generated from field: int32 depth = 2;
   */
  depth: number;

  /**
   * optional relationship-type filter
   *
   * @generated from field: repeated string rel_types = 3;
   */
  relTypes: string[];

  /**
   * in | out | both (default both)
   *
   * @generated from field: string direction = 4;
   */
  direction: string;
};

/**
 * Describes the message nomos.MGraphNeighborsRequest.
 * Use `create(MGraphNeighborsRequestSchema)` to create a new message.
 */
export const MGraphNeighborsRequestSchema: GenMessage<MGraphNeighborsRequest> /*@__PURE__*/ =
  messageDesc(file_nomos, 74);

/**
 * @generated from message nomos.MGraphSearchRequest
 */
export type MGraphSearchRequest = Message<"nomos.MGraphSearchRequest"> & {
  /**
   * @generated from field: string query = 1;
   */
  query: string;

  /**
   * @generated from field: int32 limit = 2;
   */
  limit: number;
};

/**
 * Describes the message nomos.MGraphSearchRequest.
 * Use `create(MGraphSearchRequestSchema)` to create a new message.
 */
export const MGraphSearchRequestSchema: GenMessage<MGraphSearchRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  75,
);

/**
 * @generated from message nomos.MGraphNode
 */
export type MGraphNode = Message<"nomos.MGraphNode"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string kind = 2;
   */
  kind: string;

  /**
   * @generated from field: string name = 3;
   */
  name: string;

  /**
   * @generated from field: repeated string aliases = 4;
   */
  aliases: string[];

  /**
   * @generated from field: string summary = 5;
   */
  summary: string;

  /**
   * @generated from field: double confidence = 6;
   */
  confidence: number;

  /**
   * contact | wiki | memory_chunk | ...
   *
   * @generated from field: string external_kind = 7;
   */
  externalKind: string;

  /**
   * @generated from field: string external_ref = 8;
   */
  externalRef: string;
};

/**
 * Describes the message nomos.MGraphNode.
 * Use `create(MGraphNodeSchema)` to create a new message.
 */
export const MGraphNodeSchema: GenMessage<MGraphNode> /*@__PURE__*/ = messageDesc(file_nomos, 76);

/**
 * @generated from message nomos.MGraphEdge
 */
export type MGraphEdge = Message<"nomos.MGraphEdge"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string src_id = 2;
   */
  srcId: string;

  /**
   * @generated from field: string dst_id = 3;
   */
  dstId: string;

  /**
   * @generated from field: string rel_type = 4;
   */
  relType: string;

  /**
   * @generated from field: string fact = 5;
   */
  fact: string;

  /**
   * @generated from field: double weight = 6;
   */
  weight: number;
};

/**
 * Describes the message nomos.MGraphEdge.
 * Use `create(MGraphEdgeSchema)` to create a new message.
 */
export const MGraphEdgeSchema: GenMessage<MGraphEdge> /*@__PURE__*/ = messageDesc(file_nomos, 77);

/**
 * @generated from message nomos.MGraphResponse
 */
export type MGraphResponse = Message<"nomos.MGraphResponse"> & {
  /**
   * @generated from field: repeated nomos.MGraphNode nodes = 1;
   */
  nodes: MGraphNode[];

  /**
   * @generated from field: repeated nomos.MGraphEdge edges = 2;
   */
  edges: MGraphEdge[];
};

/**
 * Describes the message nomos.MGraphResponse.
 * Use `create(MGraphResponseSchema)` to create a new message.
 */
export const MGraphResponseSchema: GenMessage<MGraphResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  78,
);

/**
 * Settings
 *
 * @generated from message nomos.MTrustTier
 */
export type MTrustTier = Message<"nomos.MTrustTier"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string name = 2;
   */
  name: string;

  /**
   * @generated from field: string description = 3;
   */
  description: string;

  /**
   * free | blocked | bond
   *
   * @generated from field: string mode = 4;
   */
  mode: string;

  /**
   * @generated from field: string bond_amount = 5;
   */
  bondAmount: string;
};

/**
 * Describes the message nomos.MTrustTier.
 * Use `create(MTrustTierSchema)` to create a new message.
 */
export const MTrustTierSchema: GenMessage<MTrustTier> /*@__PURE__*/ = messageDesc(file_nomos, 79);

/**
 * @generated from message nomos.MPermission
 */
export type MPermission = Message<"nomos.MPermission"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string label = 2;
   */
  label: string;

  /**
   * @generated from field: bool enabled = 3;
   */
  enabled: boolean;
};

/**
 * Describes the message nomos.MPermission.
 * Use `create(MPermissionSchema)` to create a new message.
 */
export const MPermissionSchema: GenMessage<MPermission> /*@__PURE__*/ = messageDesc(file_nomos, 80);

/**
 * @generated from message nomos.MIntegration
 */
export type MIntegration = Message<"nomos.MIntegration"> & {
  /**
   * for google: the account email (disconnect/toggle key)
   *
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string label = 2;
   */
  label: string;

  /**
   * @generated from field: string icon = 3;
   */
  icon: string;

  /**
   * @generated from field: bool connected = 4;
   */
  connected: boolean;

  /**
   * @generated from field: string account_email = 5;
   */
  accountEmail: string;

  /**
   * google: whether the agent may send email
   *
   * @generated from field: bool send_enabled = 6;
   */
  sendEnabled: boolean;

  /**
   * google | slack | ...
   *
   * @generated from field: string provider = 7;
   */
  provider: string;

  /**
   * google: the services this account actually granted, derived from its scopes —
   * gmail | calendar | drive | classroom. Lets the client label a classroom-only
   * school account correctly (not "Gmail · Calendar · Drive") and hide the send toggle.
   *
   * @generated from field: repeated string services = 8;
   */
  services: string[];
};

/**
 * Describes the message nomos.MIntegration.
 * Use `create(MIntegrationSchema)` to create a new message.
 */
export const MIntegrationSchema: GenMessage<MIntegration> /*@__PURE__*/ = messageDesc(
  file_nomos,
  81,
);

/**
 * @generated from message nomos.MProfile
 */
export type MProfile = Message<"nomos.MProfile"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * @generated from field: string plan = 2;
   */
  plan: string;

  /**
   * @generated from field: int64 message_count = 3;
   */
  messageCount: bigint;

  /**
   * @generated from field: int64 earned_cents = 4;
   */
  earnedCents: bigint;

  /**
   * @generated from field: int64 saved_cents = 5;
   */
  savedCents: bigint;
};

/**
 * Describes the message nomos.MProfile.
 * Use `create(MProfileSchema)` to create a new message.
 */
export const MProfileSchema: GenMessage<MProfile> /*@__PURE__*/ = messageDesc(file_nomos, 82);

/**
 * @generated from message nomos.MSettingsResponse
 */
export type MSettingsResponse = Message<"nomos.MSettingsResponse"> & {
  /**
   * @generated from field: nomos.MProfile profile = 1;
   */
  profile?: MProfile | undefined;

  /**
   * @generated from field: repeated nomos.MTrustTier trust_tiers = 2;
   */
  trustTiers: MTrustTier[];

  /**
   * @generated from field: repeated nomos.MPermission permissions = 3;
   */
  permissions: MPermission[];

  /**
   * @generated from field: repeated nomos.MIntegration integrations = 4;
   */
  integrations: MIntegration[];

  /**
   * @generated from field: repeated nomos.MConsentEntry consent = 5;
   */
  consent: MConsentEntry[];

  /**
   * @generated from field: nomos.MAgentIdentity identity = 6;
   */
  identity?: MAgentIdentity | undefined;

  /**
   * @generated from field: repeated nomos.MAppToggle app_toggles = 7;
   */
  appToggles: MAppToggle[];

  /**
   * @generated from field: nomos.MProactive proactive = 8;
   */
  proactive?: MProactive | undefined;
};

/**
 * Describes the message nomos.MSettingsResponse.
 * Use `create(MSettingsResponseSchema)` to create a new message.
 */
export const MSettingsResponseSchema: GenMessage<MSettingsResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  83,
);

/**
 * @generated from message nomos.MProactive
 */
export type MProactive = Message<"nomos.MProactive"> & {
  /**
   * off | passive | active (app.inboxAutonomy)
   *
   * @generated from field: string mode = 1;
   */
  mode: string;

  /**
   * cron for the daily briefing (app.briefingCron)
   *
   * @generated from field: string briefing = 2;
   */
  briefing: string;
};

/**
 * Describes the message nomos.MProactive.
 * Use `create(MProactiveSchema)` to create a new message.
 */
export const MProactiveSchema: GenMessage<MProactive> /*@__PURE__*/ = messageDesc(file_nomos, 84);

/**
 * @generated from message nomos.MConsentEntry
 */
export type MConsentEntry = Message<"nomos.MConsentEntry"> & {
  /**
   * @generated from field: string platform = 1;
   */
  platform: string;

  /**
   * always_ask | auto_approve | notify_only
   *
   * @generated from field: string mode = 2;
   */
  mode: string;
};

/**
 * Describes the message nomos.MConsentEntry.
 * Use `create(MConsentEntrySchema)` to create a new message.
 */
export const MConsentEntrySchema: GenMessage<MConsentEntry> /*@__PURE__*/ = messageDesc(
  file_nomos,
  85,
);

/**
 * @generated from message nomos.MAgentIdentity
 */
export type MAgentIdentity = Message<"nomos.MAgentIdentity"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * personality / voice & tone (the SOUL)
   *
   * @generated from field: string voice = 2;
   */
  voice: string;

  /**
   * chosen avatar (an emoji), empty = monogram fallback
   *
   * @generated from field: string avatar = 3;
   */
  avatar: string;
};

/**
 * Describes the message nomos.MAgentIdentity.
 * Use `create(MAgentIdentitySchema)` to create a new message.
 */
export const MAgentIdentitySchema: GenMessage<MAgentIdentity> /*@__PURE__*/ = messageDesc(
  file_nomos,
  86,
);

/**
 * @generated from message nomos.MAppToggle
 */
export type MAppToggle = Message<"nomos.MAppToggle"> & {
  /**
   * app.<field> config key
   *
   * @generated from field: string key = 1;
   */
  key: string;

  /**
   * @generated from field: bool enabled = 2;
   */
  enabled: boolean;
};

/**
 * Describes the message nomos.MAppToggle.
 * Use `create(MAppToggleSchema)` to create a new message.
 */
export const MAppToggleSchema: GenMessage<MAppToggle> /*@__PURE__*/ = messageDesc(file_nomos, 87);

/**
 * @generated from message nomos.MAppSettingRequest
 */
export type MAppSettingRequest = Message<"nomos.MAppSettingRequest"> & {
  /**
   * app.<field> config key (consumer-safe subset only)
   *
   * @generated from field: string key = 1;
   */
  key: string;

  /**
   * "true"/"false" for bools, raw string otherwise
   *
   * @generated from field: string value = 2;
   */
  value: string;
};

/**
 * Describes the message nomos.MAppSettingRequest.
 * Use `create(MAppSettingRequestSchema)` to create a new message.
 */
export const MAppSettingRequestSchema: GenMessage<MAppSettingRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  88,
);

/**
 * @generated from message nomos.MAgentIdentityRequest
 */
export type MAgentIdentityRequest = Message<"nomos.MAgentIdentityRequest"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * @generated from field: string voice = 2;
   */
  voice: string;

  /**
   * @generated from field: string avatar = 3;
   */
  avatar: string;
};

/**
 * Describes the message nomos.MAgentIdentityRequest.
 * Use `create(MAgentIdentityRequestSchema)` to create a new message.
 */
export const MAgentIdentityRequestSchema: GenMessage<MAgentIdentityRequest> /*@__PURE__*/ =
  messageDesc(file_nomos, 89);

/**
 * @generated from message nomos.MConsentRequest
 */
export type MConsentRequest = Message<"nomos.MConsentRequest"> & {
  /**
   * @generated from field: string platform = 1;
   */
  platform: string;

  /**
   * always_ask | auto_approve | notify_only
   *
   * @generated from field: string mode = 2;
   */
  mode: string;
};

/**
 * Describes the message nomos.MConsentRequest.
 * Use `create(MConsentRequestSchema)` to create a new message.
 */
export const MConsentRequestSchema: GenMessage<MConsentRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  90,
);

/**
 * @generated from message nomos.MTrustTierRequest
 */
export type MTrustTierRequest = Message<"nomos.MTrustTierRequest"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string mode = 2;
   */
  mode: string;

  /**
   * @generated from field: string bond_amount = 3;
   */
  bondAmount: string;
};

/**
 * Describes the message nomos.MTrustTierRequest.
 * Use `create(MTrustTierRequestSchema)` to create a new message.
 */
export const MTrustTierRequestSchema: GenMessage<MTrustTierRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  91,
);

/**
 * @generated from message nomos.MPermissionRequest
 */
export type MPermissionRequest = Message<"nomos.MPermissionRequest"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: bool enabled = 2;
   */
  enabled: boolean;
};

/**
 * Describes the message nomos.MPermissionRequest.
 * Use `create(MPermissionRequestSchema)` to create a new message.
 */
export const MPermissionRequestSchema: GenMessage<MPermissionRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  92,
);

/**
 * @generated from message nomos.MIntegrationsResponse
 */
export type MIntegrationsResponse = Message<"nomos.MIntegrationsResponse"> & {
  /**
   * @generated from field: repeated nomos.MIntegration integrations = 1;
   */
  integrations: MIntegration[];

  /**
   * Whether the Google Classroom capability is enabled on this deployment
   * (FEATURES.classroom / NOMOS_CLASSROOM, off by default). Clients hide the
   * Classroom connector entirely when false.
   *
   * @generated from field: bool classroom_enabled = 2;
   */
  classroomEnabled: boolean;
};

/**
 * Describes the message nomos.MIntegrationsResponse.
 * Use `create(MIntegrationsResponseSchema)` to create a new message.
 */
export const MIntegrationsResponseSchema: GenMessage<MIntegrationsResponse> /*@__PURE__*/ =
  messageDesc(file_nomos, 93);

/**
 * @generated from message nomos.MStartConnectRequest
 */
export type MStartConnectRequest = Message<"nomos.MStartConnectRequest"> & {
  /**
   * gmail | calendar | slack | notion | linkedin | classroom | classroom_write
   *
   * @generated from field: string provider = 1;
   */
  provider: string;
};

/**
 * Describes the message nomos.MStartConnectRequest.
 * Use `create(MStartConnectRequestSchema)` to create a new message.
 */
export const MStartConnectRequestSchema: GenMessage<MStartConnectRequest> /*@__PURE__*/ =
  messageDesc(file_nomos, 94);

/**
 * @generated from message nomos.MStartConnectResponse
 */
export type MStartConnectResponse = Message<"nomos.MStartConnectResponse"> & {
  /**
   * URL the client opens in a browser to begin OAuth. For google this is the
   * daemon-built Google consent URL (state-signed); the callback then relays the
   * code back via ConnectGoogleAccount.
   *
   * @generated from field: string oauth_url = 1;
   */
  oauthUrl: string;
};

/**
 * Describes the message nomos.MStartConnectResponse.
 * Use `create(MStartConnectResponseSchema)` to create a new message.
 */
export const MStartConnectResponseSchema: GenMessage<MStartConnectResponse> /*@__PURE__*/ =
  messageDesc(file_nomos, 95);

/**
 * @generated from message nomos.MDisconnectRequest
 */
export type MDisconnectRequest = Message<"nomos.MDisconnectRequest"> & {
  /**
   * @generated from field: string integration_id = 1;
   */
  integrationId: string;

  /**
   * google: disconnect by account email (preferred)
   *
   * @generated from field: string account_email = 2;
   */
  accountEmail: string;
};

/**
 * Describes the message nomos.MDisconnectRequest.
 * Use `create(MDisconnectRequestSchema)` to create a new message.
 */
export const MDisconnectRequestSchema: GenMessage<MDisconnectRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  96,
);

/**
 * Relay an OAuth authorization code from the (web/mobile) callback to the daemon,
 * which exchanges it for tokens and stores the connected Google account. The
 * connecting user is the JWT subject; `state` is the signed CSRF token.
 *
 * @generated from message nomos.MConnectGoogleRequest
 */
export type MConnectGoogleRequest = Message<"nomos.MConnectGoogleRequest"> & {
  /**
   * @generated from field: string code = 1;
   */
  code: string;

  /**
   * @generated from field: string state = 2;
   */
  state: string;
};

/**
 * Describes the message nomos.MConnectGoogleRequest.
 * Use `create(MConnectGoogleRequestSchema)` to create a new message.
 */
export const MConnectGoogleRequestSchema: GenMessage<MConnectGoogleRequest> /*@__PURE__*/ =
  messageDesc(file_nomos, 97);

/**
 * @generated from message nomos.MSetGoogleSendRequest
 */
export type MSetGoogleSendRequest = Message<"nomos.MSetGoogleSendRequest"> & {
  /**
   * @generated from field: string account_email = 1;
   */
  accountEmail: string;

  /**
   * @generated from field: bool enabled = 2;
   */
  enabled: boolean;
};

/**
 * Describes the message nomos.MSetGoogleSendRequest.
 * Use `create(MSetGoogleSendRequestSchema)` to create a new message.
 */
export const MSetGoogleSendRequestSchema: GenMessage<MSetGoogleSendRequest> /*@__PURE__*/ =
  messageDesc(file_nomos, 98);

/**
 * @generated from message nomos.MDeviceRegister
 */
export type MDeviceRegister = Message<"nomos.MDeviceRegister"> & {
  /**
   * @generated from field: string expo_push_token = 1;
   */
  expoPushToken: string;

  /**
   * ios | android
   *
   * @generated from field: string platform = 2;
   */
  platform: string;

  /**
   * @generated from field: string app_version = 3;
   */
  appVersion: string;
};

/**
 * Describes the message nomos.MDeviceRegister.
 * Use `create(MDeviceRegisterSchema)` to create a new message.
 */
export const MDeviceRegisterSchema: GenMessage<MDeviceRegister> /*@__PURE__*/ = messageDesc(
  file_nomos,
  99,
);

/**
 * @generated from message nomos.MDeviceUnregister
 */
export type MDeviceUnregister = Message<"nomos.MDeviceUnregister"> & {
  /**
   * @generated from field: string expo_push_token = 1;
   */
  expoPushToken: string;
};

/**
 * Describes the message nomos.MDeviceUnregister.
 * Use `create(MDeviceUnregisterSchema)` to create a new message.
 */
export const MDeviceUnregisterSchema: GenMessage<MDeviceUnregister> /*@__PURE__*/ = messageDesc(
  file_nomos,
  100,
);

/**
 * ── Device bridge (native EventKit tools) ──
 * The phone opens DeviceBridge with the capabilities it is offering this session.
 *
 * @generated from message nomos.MDeviceHello
 */
export type MDeviceHello = Message<"nomos.MDeviceHello"> & {
  /**
   * e.g. "calendar", "reminders"
   *
   * @generated from field: repeated string capabilities = 1;
   */
  capabilities: string[];
};

/**
 * Describes the message nomos.MDeviceHello.
 * Use `create(MDeviceHelloSchema)` to create a new message.
 */
export const MDeviceHelloSchema: GenMessage<MDeviceHello> /*@__PURE__*/ = messageDesc(
  file_nomos,
  101,
);

/**
 * A tool invocation the daemon pushes down to the phone.
 *
 * @generated from message nomos.MDeviceInvocation
 */
export type MDeviceInvocation = Message<"nomos.MDeviceInvocation"> & {
  /**
   * correlates with MDeviceResult.id
   *
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * e.g. "calendar_create_event", "reminders_list"
   *
   * @generated from field: string tool = 2;
   */
  tool: string;

  /**
   * JSON-encoded tool arguments
   *
   * @generated from field: string args_json = 3;
   */
  argsJson: string;
};

/**
 * Describes the message nomos.MDeviceInvocation.
 * Use `create(MDeviceInvocationSchema)` to create a new message.
 */
export const MDeviceInvocationSchema: GenMessage<MDeviceInvocation> /*@__PURE__*/ = messageDesc(
  file_nomos,
  102,
);

/**
 * The phone's result for one invocation, returned via SubmitDeviceResult.
 *
 * @generated from message nomos.MDeviceResult
 */
export type MDeviceResult = Message<"nomos.MDeviceResult"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: bool ok = 2;
   */
  ok: boolean;

  /**
   * JSON-encoded result payload (when ok)
   *
   * @generated from field: string result_json = 3;
   */
  resultJson: string;

  /**
   * human-readable error (when !ok)
   *
   * @generated from field: string error = 4;
   */
  error: string;
};

/**
 * Describes the message nomos.MDeviceResult.
 * Use `create(MDeviceResultSchema)` to create a new message.
 */
export const MDeviceResultSchema: GenMessage<MDeviceResult> /*@__PURE__*/ = messageDesc(
  file_nomos,
  103,
);

/**
 * ── Compose (iMessage extension) ──
 *
 * @generated from message nomos.MComposeRequest
 */
export type MComposeRequest = Message<"nomos.MComposeRequest"> & {
  /**
   * what the user wants to say, in their words
   *
   * @generated from field: string instruction = 1;
   */
  instruction: string;

  /**
   * optional: the message being replied to (if the user pasted it)
   *
   * @generated from field: string context_hint = 2;
   */
  contextHint: string;
};

/**
 * Describes the message nomos.MComposeRequest.
 * Use `create(MComposeRequestSchema)` to create a new message.
 */
export const MComposeRequestSchema: GenMessage<MComposeRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  104,
);

/**
 * @generated from message nomos.MComposeResponse
 */
export type MComposeResponse = Message<"nomos.MComposeResponse"> & {
  /**
   * a few ready-to-send drafts; the user picks one
   *
   * @generated from field: repeated string drafts = 1;
   */
  drafts: string[];
};

/**
 * Describes the message nomos.MComposeResponse.
 * Use `create(MComposeResponseSchema)` to create a new message.
 */
export const MComposeResponseSchema: GenMessage<MComposeResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  105,
);

/**
 * @generated from message nomos.DepositRequest
 */
export type DepositRequest = Message<"nomos.DepositRequest"> & {
  /**
   * gmail | calendar | drive | slack | notion | ...
   *
   * @generated from field: string provider = 1;
   */
  provider: string;

  /**
   * Authenticated user inside the customer's instance (BA user.id).
   * The instance enforces that this user_id is a member of NOMOS_ORG_ID.
   *
   * @generated from field: string user_id = 2;
   */
  userId: string;

  /**
   * @generated from field: string access_token = 3;
   */
  accessToken: string;

  /**
   * @generated from field: string refresh_token = 4;
   */
  refreshToken: string;

  /**
   * Unix seconds.
   *
   * @generated from field: int64 expires_at = 5;
   */
  expiresAt: bigint;

  /**
   * Comma-separated OAuth scopes granted.
   *
   * @generated from field: string scopes = 6;
   */
  scopes: string;

  /**
   * Provider-specific extras (e.g., {"workspace_id": "T0123", "account_email": "x@y"}).
   *
   * @generated from field: map<string, string> metadata = 7;
   */
  metadata: { [key: string]: string };
};

/**
 * Describes the message nomos.DepositRequest.
 * Use `create(DepositRequestSchema)` to create a new message.
 */
export const DepositRequestSchema: GenMessage<DepositRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  106,
);

/**
 * @generated from message nomos.DepositResponse
 */
export type DepositResponse = Message<"nomos.DepositResponse"> & {
  /**
   * @generated from field: bool success = 1;
   */
  success: boolean;

  /**
   * @generated from field: string message = 2;
   */
  message: string;

  /**
   * Opaque integration id assigned by the customer instance (for revocation).
   *
   * @generated from field: string integration_id = 3;
   */
  integrationId: string;
};

/**
 * Describes the message nomos.DepositResponse.
 * Use `create(DepositResponseSchema)` to create a new message.
 */
export const DepositResponseSchema: GenMessage<DepositResponse> /*@__PURE__*/ = messageDesc(
  file_nomos,
  107,
);

/**
 * ── Studio (hosted-only feature) ──────────────────────────────────────
 * Register an uploaded original. The client uploads the (downscaled, transcoded)
 * image to upload_url (presigned PUT), then confirms by calling StudioEdit or
 * StudioHistory; unconfirmed rows are reaped by __studio_gc__.
 *
 * @generated from message nomos.MStudioCreateAssetRequest
 */
export type MStudioCreateAssetRequest = Message<"nomos.MStudioCreateAssetRequest"> & {
  /**
   * e.g. image/jpeg (HEIC transcoded client-side)
   *
   * @generated from field: string mime = 1;
   */
  mime: string;

  /**
   * sha256 of the bytes
   *
   * @generated from field: string content_hash = 2;
   */
  contentHash: string;

  /**
   * @generated from field: int32 width = 3;
   */
  width: number;

  /**
   * @generated from field: int32 height = 4;
   */
  height: number;

  /**
   * @generated from field: int32 bytes = 5;
   */
  bytes: number;
};

/**
 * Describes the message nomos.MStudioCreateAssetRequest.
 * Use `create(MStudioCreateAssetRequestSchema)` to create a new message.
 */
export const MStudioCreateAssetRequestSchema: GenMessage<MStudioCreateAssetRequest> /*@__PURE__*/ =
  messageDesc(file_nomos, 108);

/**
 * @generated from message nomos.MStudioCreateAssetResponse
 */
export type MStudioCreateAssetResponse = Message<"nomos.MStudioCreateAssetResponse"> & {
  /**
   * @generated from field: string asset_id = 1;
   */
  assetId: string;

  /**
   * presigned PUT
   *
   * @generated from field: string upload_url = 2;
   */
  uploadUrl: string;

  /**
   * @generated from field: string object_key = 3;
   */
  objectKey: string;

  /**
   * ms epoch
   *
   * @generated from field: int64 expires_at = 4;
   */
  expiresAt: bigint;
};

/**
 * Describes the message nomos.MStudioCreateAssetResponse.
 * Use `create(MStudioCreateAssetResponseSchema)` to create a new message.
 */
export const MStudioCreateAssetResponseSchema: GenMessage<MStudioCreateAssetResponse> /*@__PURE__*/ =
  messageDesc(file_nomos, 109);

/**
 * @generated from message nomos.MStudioAssetRef
 */
export type MStudioAssetRef = Message<"nomos.MStudioAssetRef"> & {
  /**
   * @generated from field: string asset_id = 1;
   */
  assetId: string;

  /**
   * GetAssetUrl: presign the ORIGINAL (for before/after compare)
   *
   * @generated from field: bool original = 2;
   */
  original: boolean;
};

/**
 * Describes the message nomos.MStudioAssetRef.
 * Use `create(MStudioAssetRefSchema)` to create a new message.
 */
export const MStudioAssetRefSchema: GenMessage<MStudioAssetRef> /*@__PURE__*/ = messageDesc(
  file_nomos,
  110,
);

/**
 * @generated from message nomos.MStudioAssetUrlResponse
 */
export type MStudioAssetUrlResponse = Message<"nomos.MStudioAssetUrlResponse"> & {
  /**
   * presigned GET for the current head (or original)
   *
   * @generated from field: string url = 1;
   */
  url: string;

  /**
   * @generated from field: int64 expires_at = 2;
   */
  expiresAt: bigint;
};

/**
 * Describes the message nomos.MStudioAssetUrlResponse.
 * Use `create(MStudioAssetUrlResponseSchema)` to create a new message.
 */
export const MStudioAssetUrlResponseSchema: GenMessage<MStudioAssetUrlResponse> /*@__PURE__*/ =
  messageDesc(file_nomos, 111);

/**
 * Apply one op. params_json is the JSON-encoded op params (validated server-side
 * against the op registry). parent_edit_id "" means "on the current head".
 *
 * @generated from message nomos.MStudioEditRequest
 */
export type MStudioEditRequest = Message<"nomos.MStudioEditRequest"> & {
  /**
   * @generated from field: string asset_id = 1;
   */
  assetId: string;

  /**
   * adjust | editSemantic | cutout | upscale | restore | ...
   *
   * @generated from field: string op = 2;
   */
  op: string;

  /**
   * @generated from field: string params_json = 3;
   */
  paramsJson: string;

  /**
   * @generated from field: string parent_edit_id = 4;
   */
  parentEditId: string;

  /**
   * @generated from field: string idempotency_key = 5;
   */
  idempotencyKey: string;

  /**
   * optional device/tap mask object key
   *
   * @generated from field: string mask_key = 6;
   */
  maskKey: string;

  /**
   * deviceRender only: the on-device-rendered output bytes
   *
   * @generated from field: bytes input_image = 7;
   */
  inputImage: Uint8Array;
};

/**
 * Describes the message nomos.MStudioEditRequest.
 * Use `create(MStudioEditRequestSchema)` to create a new message.
 */
export const MStudioEditRequestSchema: GenMessage<MStudioEditRequest> /*@__PURE__*/ = messageDesc(
  file_nomos,
  112,
);

/**
 * @generated from message nomos.MStudioEvent
 */
export type MStudioEvent = Message<"nomos.MStudioEvent"> & {
  /**
   * progress | done | error
   *
   * @generated from field: string kind = 1;
   */
  kind: string;

  /**
   * @generated from field: string edit_id = 2;
   */
  editId: string;

  /**
   * pending | running | done | failed
   *
   * @generated from field: string status = 3;
   */
  status: string;

  /**
   * @generated from field: string preview_key = 4;
   */
  previewKey: string;

  /**
   * @generated from field: string output_key = 5;
   */
  outputKey: string;

  /**
   * @generated from field: double cost_usd = 6;
   */
  costUsd: number;

  /**
   * @generated from field: string message = 7;
   */
  message: string;
};

/**
 * Describes the message nomos.MStudioEvent.
 * Use `create(MStudioEventSchema)` to create a new message.
 */
export const MStudioEventSchema: GenMessage<MStudioEvent> /*@__PURE__*/ = messageDesc(
  file_nomos,
  113,
);

/**
 * @generated from message nomos.MStudioEdit
 */
export type MStudioEdit = Message<"nomos.MStudioEdit"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string op = 2;
   */
  op: string;

  /**
   * @generated from field: string status = 3;
   */
  status: string;

  /**
   * @generated from field: string preview_key = 4;
   */
  previewKey: string;

  /**
   * @generated from field: string output_key = 5;
   */
  outputKey: string;

  /**
   * @generated from field: double cost_usd = 6;
   */
  costUsd: number;

  /**
   * @generated from field: string parent_edit_id = 7;
   */
  parentEditId: string;

  /**
   * @generated from field: string created_at = 8;
   */
  createdAt: string;
};

/**
 * Describes the message nomos.MStudioEdit.
 * Use `create(MStudioEditSchema)` to create a new message.
 */
export const MStudioEditSchema: GenMessage<MStudioEdit> /*@__PURE__*/ = messageDesc(
  file_nomos,
  114,
);

/**
 * @generated from message nomos.MStudioHistoryResponse
 */
export type MStudioHistoryResponse = Message<"nomos.MStudioHistoryResponse"> & {
  /**
   * @generated from field: repeated nomos.MStudioEdit edits = 1;
   */
  edits: MStudioEdit[];

  /**
   * @generated from field: string head_edit_id = 2;
   */
  headEditId: string;
};

/**
 * Describes the message nomos.MStudioHistoryResponse.
 * Use `create(MStudioHistoryResponseSchema)` to create a new message.
 */
export const MStudioHistoryResponseSchema: GenMessage<MStudioHistoryResponse> /*@__PURE__*/ =
  messageDesc(file_nomos, 115);

/**
 * @generated from message nomos.MStudioIdentityReport
 */
export type MStudioIdentityReport = Message<"nomos.MStudioIdentityReport"> & {
  /**
   * @generated from field: string edit_id = 1;
   */
  editId: string;

  /**
   * face-embedding similarity in 0..1
   *
   * @generated from field: double score = 2;
   */
  score: number;
};

/**
 * Describes the message nomos.MStudioIdentityReport.
 * Use `create(MStudioIdentityReportSchema)` to create a new message.
 */
export const MStudioIdentityReportSchema: GenMessage<MStudioIdentityReport> /*@__PURE__*/ =
  messageDesc(file_nomos, 116);

/**
 * A recent editing session for the Home launchpad. An asset + the gist of its chain.
 *
 * @generated from message nomos.MStudioListAssetsRequest
 */
export type MStudioListAssetsRequest = Message<"nomos.MStudioListAssetsRequest"> & {
  /**
   * max sessions (server caps; default ~30)
   *
   * @generated from field: int32 limit = 1;
   */
  limit: number;
};

/**
 * Describes the message nomos.MStudioListAssetsRequest.
 * Use `create(MStudioListAssetsRequestSchema)` to create a new message.
 */
export const MStudioListAssetsRequestSchema: GenMessage<MStudioListAssetsRequest> /*@__PURE__*/ =
  messageDesc(file_nomos, 117);

/**
 * @generated from message nomos.MStudioAssetSummary
 */
export type MStudioAssetSummary = Message<"nomos.MStudioAssetSummary"> & {
  /**
   * @generated from field: string asset_id = 1;
   */
  assetId: string;

  /**
   * presigned GET (~thumbnail): head preview, else original
   *
   * @generated from field: string preview_url = 2;
   */
  previewUrl: string;

  /**
   * ms epoch
   *
   * @generated from field: int64 updated_at = 3;
   */
  updatedAt: bigint;

  /**
   * a stored final artifact (vs in-progress)
   *
   * @generated from field: bool finalized = 4;
   */
  finalized: boolean;

  /**
   * @generated from field: int32 edit_count = 5;
   */
  editCount: number;

  /**
   * op of the head edit ("" if none) — client humanizes
   *
   * @generated from field: string head_op = 6;
   */
  headOp: string;

  /**
   * ms epoch for preview_url
   *
   * @generated from field: int64 expires_at = 7;
   */
  expiresAt: bigint;
};

/**
 * Describes the message nomos.MStudioAssetSummary.
 * Use `create(MStudioAssetSummarySchema)` to create a new message.
 */
export const MStudioAssetSummarySchema: GenMessage<MStudioAssetSummary> /*@__PURE__*/ = messageDesc(
  file_nomos,
  118,
);

/**
 * @generated from message nomos.MStudioListAssetsResponse
 */
export type MStudioListAssetsResponse = Message<"nomos.MStudioListAssetsResponse"> & {
  /**
   * @generated from field: repeated nomos.MStudioAssetSummary assets = 1;
   */
  assets: MStudioAssetSummary[];
};

/**
 * Describes the message nomos.MStudioListAssetsResponse.
 * Use `create(MStudioListAssetsResponseSchema)` to create a new message.
 */
export const MStudioListAssetsResponseSchema: GenMessage<MStudioListAssetsResponse> /*@__PURE__*/ =
  messageDesc(file_nomos, 119);

/**
 * A per-photo edit suggestion: a short chip label + the instruction it applies.
 *
 * @generated from message nomos.MStudioSuggestion
 */
export type MStudioSuggestion = Message<"nomos.MStudioSuggestion"> & {
  /**
   * @generated from field: string label = 1;
   */
  label: string;

  /**
   * @generated from field: string prompt = 2;
   */
  prompt: string;
};

/**
 * Describes the message nomos.MStudioSuggestion.
 * Use `create(MStudioSuggestionSchema)` to create a new message.
 */
export const MStudioSuggestionSchema: GenMessage<MStudioSuggestion> /*@__PURE__*/ = messageDesc(
  file_nomos,
  120,
);

/**
 * @generated from message nomos.MStudioSuggestionsResponse
 */
export type MStudioSuggestionsResponse = Message<"nomos.MStudioSuggestionsResponse"> & {
  /**
   * @generated from field: repeated nomos.MStudioSuggestion suggestions = 1;
   */
  suggestions: MStudioSuggestion[];
};

/**
 * Describes the message nomos.MStudioSuggestionsResponse.
 * Use `create(MStudioSuggestionsResponseSchema)` to create a new message.
 */
export const MStudioSuggestionsResponseSchema: GenMessage<MStudioSuggestionsResponse> /*@__PURE__*/ =
  messageDesc(file_nomos, 121);

/**
 * @generated from service nomos.NomosAgent
 */
export const NomosAgent: GenService<{
  /**
   * Send a chat message and receive a stream of agent events
   *
   * @generated from rpc nomos.NomosAgent.Chat
   */
  chat: {
    methodKind: "server_streaming";
    input: typeof ChatRequestSchema;
    output: typeof AgentEventSchema;
  };
  /**
   * Send a command (e.g., /compact)
   *
   * @generated from rpc nomos.NomosAgent.Command
   */
  command: {
    methodKind: "unary";
    input: typeof CommandRequestSchema;
    output: typeof CommandResponseSchema;
  };
  /**
   * Get daemon status
   *
   * @generated from rpc nomos.NomosAgent.GetStatus
   */
  getStatus: {
    methodKind: "unary";
    input: typeof EmptySchema;
    output: typeof StatusResponseSchema;
  };
  /**
   * Session management
   *
   * @generated from rpc nomos.NomosAgent.ListSessions
   */
  listSessions: {
    methodKind: "unary";
    input: typeof EmptySchema;
    output: typeof SessionListSchema;
  };
  /**
   * @generated from rpc nomos.NomosAgent.GetSession
   */
  getSession: {
    methodKind: "unary";
    input: typeof SessionRequestSchema;
    output: typeof SessionResponseSchema;
  };
  /**
   * Draft management (Slack User Mode approve-before-send)
   *
   * @generated from rpc nomos.NomosAgent.ListDrafts
   */
  listDrafts: {
    methodKind: "unary";
    input: typeof EmptySchema;
    output: typeof DraftListSchema;
  };
  /**
   * @generated from rpc nomos.NomosAgent.ApproveDraft
   */
  approveDraft: {
    methodKind: "unary";
    input: typeof DraftActionSchema;
    output: typeof DraftResponseSchema;
  };
  /**
   * @generated from rpc nomos.NomosAgent.RejectDraft
   */
  rejectDraft: {
    methodKind: "unary";
    input: typeof DraftActionSchema;
    output: typeof DraftResponseSchema;
  };
  /**
   * Autonomous loops (recurring background jobs — audit + disable)
   *
   * @generated from rpc nomos.NomosAgent.ListLoops
   */
  listLoops: {
    methodKind: "unary";
    input: typeof EmptySchema;
    output: typeof LoopListSchema;
  };
  /**
   * @generated from rpc nomos.NomosAgent.SetLoopEnabled
   */
  setLoopEnabled: {
    methodKind: "unary";
    input: typeof SetLoopEnabledRequestSchema;
    output: typeof LoopActionResponseSchema;
  };
  /**
   * @generated from rpc nomos.NomosAgent.DeleteLoop
   */
  deleteLoop: {
    methodKind: "unary";
    input: typeof LoopDeleteRequestSchema;
    output: typeof LoopActionResponseSchema;
  };
  /**
   * Scheduled tasks (the local owner's cron_jobs) — mirrors MobileApi for local mode.
   *
   * @generated from rpc nomos.NomosAgent.ListTasks
   */
  listTasks: {
    methodKind: "unary";
    input: typeof EmptySchema;
    output: typeof MTasksResponseSchema;
  };
  /**
   * @generated from rpc nomos.NomosAgent.UpdateTask
   */
  updateTask: {
    methodKind: "unary";
    input: typeof MTaskUpdateRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * @generated from rpc nomos.NomosAgent.DeleteTask
   */
  deleteTask: {
    methodKind: "unary";
    input: typeof MTaskDeleteRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * Action items (the ranked commitments list) — check off / snooze / delegate.
   *
   * @generated from rpc nomos.NomosAgent.CompleteCommitment
   */
  completeCommitment: {
    methodKind: "unary";
    input: typeof MCommitmentActionSchema;
    output: typeof MAckSchema;
  };
  /**
   * @generated from rpc nomos.NomosAgent.SnoozeCommitment
   */
  snoozeCommitment: {
    methodKind: "unary";
    input: typeof MCommitmentSnoozeSchema;
    output: typeof MAckSchema;
  };
  /**
   * @generated from rpc nomos.NomosAgent.DelegateCommitment
   */
  delegateCommitment: {
    methodKind: "unary";
    input: typeof MCommitmentDelegateSchema;
    output: typeof MAckSchema;
  };
  /**
   * Answer a pending ask_user elicitation out-of-band (does not enqueue a turn).
   *
   * @generated from rpc nomos.NomosAgent.AnswerQuestion
   */
  answerQuestion: {
    methodKind: "unary";
    input: typeof MAnswerRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * Health check
   *
   * @generated from rpc nomos.NomosAgent.Ping
   */
  ping: {
    methodKind: "unary";
    input: typeof EmptySchema;
    output: typeof PongResponseSchema;
  };
}> /*@__PURE__*/ = serviceDesc(file_nomos, 0);

/**
 * @generated from service nomos.MobileApi
 */
export const MobileApi: GenService<{
  /**
   * Chat tab
   *
   * @generated from rpc nomos.MobileApi.Chat
   */
  chat: {
    methodKind: "server_streaming";
    input: typeof MChatRequestSchema;
    output: typeof MChatEventSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.GetMessages
   */
  getMessages: {
    methodKind: "unary";
    input: typeof MGetMessagesRequestSchema;
    output: typeof MGetMessagesResponseSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.ApproveDraft
   */
  approveDraft: {
    methodKind: "unary";
    input: typeof MDraftActionSchema;
    output: typeof MDraftActionResponseSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.RejectDraft
   */
  rejectDraft: {
    methodKind: "unary";
    input: typeof MDraftActionSchema;
    output: typeof MDraftActionResponseSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.ApproveDraftWithEdit
   */
  approveDraftWithEdit: {
    methodKind: "unary";
    input: typeof MDraftActionWithEditSchema;
    output: typeof MDraftActionResponseSchema;
  };
  /**
   * Inbox tab (CATE inbound queue — Phase 5b)
   *
   * @generated from rpc nomos.MobileApi.ListInbox
   */
  listInbox: {
    methodKind: "unary";
    input: typeof MInboxRequestSchema;
    output: typeof MInboxResponseSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.GetCateEnvelope
   */
  getCateEnvelope: {
    methodKind: "unary";
    input: typeof MEnvelopeRequestSchema;
    output: typeof MCateEnvelopeSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.ActOnInboxItem
   */
  actOnInboxItem: {
    methodKind: "unary";
    input: typeof MInboxActionRequestSchema;
    output: typeof MInboxActionResponseSchema;
  };
  /**
   * Skills tab
   *
   * @generated from rpc nomos.MobileApi.ListSkills
   */
  listSkills: {
    methodKind: "unary";
    input: typeof EmptySchema;
    output: typeof MSkillsResponseSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.ToggleSkill
   */
  toggleSkill: {
    methodKind: "unary";
    input: typeof MSkillToggleRequestSchema;
    output: typeof MSkillToggleResponseSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.ListPlugins
   */
  listPlugins: {
    methodKind: "unary";
    input: typeof EmptySchema;
    output: typeof MPluginsResponseSchema;
  };
  /**
   * Earnings tab
   *
   * @generated from rpc nomos.MobileApi.GetEarnings
   */
  getEarnings: {
    methodKind: "unary";
    input: typeof MEarningsRequestSchema;
    output: typeof MEarningsResponseSchema;
  };
  /**
   * Brain tab (knowledge graph)
   *
   * @generated from rpc nomos.MobileApi.GetGraph
   */
  getGraph: {
    methodKind: "unary";
    input: typeof MGraphRequestSchema;
    output: typeof MGraphResponseSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.GetGraphNeighbors
   */
  getGraphNeighbors: {
    methodKind: "unary";
    input: typeof MGraphNeighborsRequestSchema;
    output: typeof MGraphResponseSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.SearchGraph
   */
  searchGraph: {
    methodKind: "unary";
    input: typeof MGraphSearchRequestSchema;
    output: typeof MGraphResponseSchema;
  };
  /**
   * Settings tab
   *
   * @generated from rpc nomos.MobileApi.GetSettings
   */
  getSettings: {
    methodKind: "unary";
    input: typeof EmptySchema;
    output: typeof MSettingsResponseSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.UpdateConsent
   */
  updateConsent: {
    methodKind: "unary";
    input: typeof MConsentRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.UpdateTrustTier
   */
  updateTrustTier: {
    methodKind: "unary";
    input: typeof MTrustTierRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.UpdatePermission
   */
  updatePermission: {
    methodKind: "unary";
    input: typeof MPermissionRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.UpdateAppSetting
   */
  updateAppSetting: {
    methodKind: "unary";
    input: typeof MAppSettingRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.UpdateAgentIdentity
   */
  updateAgentIdentity: {
    methodKind: "unary";
    input: typeof MAgentIdentityRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.ListIntegrations
   */
  listIntegrations: {
    methodKind: "unary";
    input: typeof EmptySchema;
    output: typeof MIntegrationsResponseSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.StartConnectIntegration
   */
  startConnectIntegration: {
    methodKind: "unary";
    input: typeof MStartConnectRequestSchema;
    output: typeof MStartConnectResponseSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.ConnectGoogleAccount
   */
  connectGoogleAccount: {
    methodKind: "unary";
    input: typeof MConnectGoogleRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.SetGoogleSend
   */
  setGoogleSend: {
    methodKind: "unary";
    input: typeof MSetGoogleSendRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.DisconnectIntegration
   */
  disconnectIntegration: {
    methodKind: "unary";
    input: typeof MDisconnectRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * Push notifications
   *
   * @generated from rpc nomos.MobileApi.RegisterDevice
   */
  registerDevice: {
    methodKind: "unary";
    input: typeof MDeviceRegisterSchema;
    output: typeof MAckSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.UnregisterDevice
   */
  unregisterDevice: {
    methodKind: "unary";
    input: typeof MDeviceUnregisterSchema;
    output: typeof MAckSchema;
  };
  /**
   * Vault tab (long-term memory / knowledge base)
   *
   * @generated from rpc nomos.MobileApi.ListVaultNotes
   */
  listVaultNotes: {
    methodKind: "unary";
    input: typeof MVaultListRequestSchema;
    output: typeof MVaultListResponseSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.GetVaultNote
   */
  getVaultNote: {
    methodKind: "unary";
    input: typeof MVaultGetRequestSchema;
    output: typeof MVaultNoteSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.WriteVaultNote
   */
  writeVaultNote: {
    methodKind: "unary";
    input: typeof MVaultWriteRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.DeleteVaultNote
   */
  deleteVaultNote: {
    methodKind: "unary";
    input: typeof MVaultDeleteRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * Loops tab (autonomous recurring jobs — audit + disable agent-created loops)
   *
   * @generated from rpc nomos.MobileApi.ListLoops
   */
  listLoops: {
    methodKind: "unary";
    input: typeof EmptySchema;
    output: typeof MLoopsResponseSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.SetLoopEnabled
   */
  setLoopEnabled: {
    methodKind: "unary";
    input: typeof MSetLoopEnabledRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.DeleteLoop
   */
  deleteLoop: {
    methodKind: "unary";
    input: typeof MLoopDeleteRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * Tasks tab (the user's scheduled tasks: one-off reminders + recurring jobs,
   * editable: reschedule, rename, edit instruction, enable/disable, delete)
   *
   * @generated from rpc nomos.MobileApi.ListTasks
   */
  listTasks: {
    methodKind: "unary";
    input: typeof EmptySchema;
    output: typeof MTasksResponseSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.UpdateTask
   */
  updateTask: {
    methodKind: "unary";
    input: typeof MTaskUpdateRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.DeleteTask
   */
  deleteTask: {
    methodKind: "unary";
    input: typeof MTaskDeleteRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * Action items (the ranked commitments list) — check off / snooze / delegate.
   *
   * @generated from rpc nomos.MobileApi.CompleteCommitment
   */
  completeCommitment: {
    methodKind: "unary";
    input: typeof MCommitmentActionSchema;
    output: typeof MAckSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.SnoozeCommitment
   */
  snoozeCommitment: {
    methodKind: "unary";
    input: typeof MCommitmentSnoozeSchema;
    output: typeof MAckSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.DelegateCommitment
   */
  delegateCommitment: {
    methodKind: "unary";
    input: typeof MCommitmentDelegateSchema;
    output: typeof MAckSchema;
  };
  /**
   * Answer a pending ask_user elicitation out-of-band (does not enqueue a turn).
   *
   * @generated from rpc nomos.MobileApi.AnswerQuestion
   */
  answerQuestion: {
    methodKind: "unary";
    input: typeof MAnswerRequestSchema;
    output: typeof MAckSchema;
  };
  /**
   * Brain tab (the user's knowledge graph + learned facts, for the feed + map)
   *
   * @generated from rpc nomos.MobileApi.GetBrain
   */
  getBrain: {
    methodKind: "unary";
    input: typeof EmptySchema;
    output: typeof MBrainResponseSchema;
  };
  /**
   * Inbox tab (drafts to approve + CATE agent requests). Actions reuse
   * ApproveDraft/RejectDraft (drafts) + ActOnInboxItem (CATE).
   *
   * @generated from rpc nomos.MobileApi.GetInbox
   */
  getInbox: {
    methodKind: "unary";
    input: typeof EmptySchema;
    output: typeof MGetInboxResponseSchema;
  };
  /**
   * Today tab (the daily brief: calendar + commitments + tasks, gated on the
   * daily briefing being enabled).
   *
   * @generated from rpc nomos.MobileApi.GetToday
   */
  getToday: {
    methodKind: "unary";
    input: typeof EmptySchema;
    output: typeof MTodayResponseSchema;
  };
  /**
   * Studio (hosted-only feature). Blobs move via presigned PUT/GET, never gRPC.
   *
   * @generated from rpc nomos.MobileApi.StudioCreateAsset
   */
  studioCreateAsset: {
    methodKind: "unary";
    input: typeof MStudioCreateAssetRequestSchema;
    output: typeof MStudioCreateAssetResponseSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.StudioGetAssetUrl
   */
  studioGetAssetUrl: {
    methodKind: "unary";
    input: typeof MStudioAssetRefSchema;
    output: typeof MStudioAssetUrlResponseSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.StudioEdit
   */
  studioEdit: {
    methodKind: "server_streaming";
    input: typeof MStudioEditRequestSchema;
    output: typeof MStudioEventSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.StudioHistory
   */
  studioHistory: {
    methodKind: "unary";
    input: typeof MStudioAssetRefSchema;
    output: typeof MStudioHistoryResponseSchema;
  };
  /**
   * Recent editing sessions for the Home launchpad ("Pick up where you left off").
   *
   * @generated from rpc nomos.MobileApi.StudioListAssets
   */
  studioListAssets: {
    methodKind: "unary";
    input: typeof MStudioListAssetsRequestSchema;
    output: typeof MStudioListAssetsResponseSchema;
  };
  /**
   * AI-native: a vision model looks at the photo and proposes tap-to-apply edits.
   *
   * @generated from rpc nomos.MobileApi.StudioSuggestEdits
   */
  studioSuggestEdits: {
    methodKind: "unary";
    input: typeof MStudioAssetRefSchema;
    output: typeof MStudioSuggestionsResponseSchema;
  };
  /**
   * The on-device identity check reports its score for an edit (0..1).
   *
   * @generated from rpc nomos.MobileApi.StudioReportIdentity
   */
  studioReportIdentity: {
    methodKind: "unary";
    input: typeof MStudioIdentityReportSchema;
    output: typeof MAckSchema;
  };
  /**
   * Device bridge — the phone exposes its native EventKit (Calendar + Reminders)
   * as agent tools. The app opens DeviceBridge on launch and the daemon streams
   * tool invocations down it; the app runs each via EventKit and returns the
   * result through SubmitDeviceResult (correlated by id). The agent never touches
   * the device directly — it calls the native-device MCP tools, which route here.
   *
   * @generated from rpc nomos.MobileApi.DeviceBridge
   */
  deviceBridge: {
    methodKind: "server_streaming";
    input: typeof MDeviceHelloSchema;
    output: typeof MDeviceInvocationSchema;
  };
  /**
   * @generated from rpc nomos.MobileApi.SubmitDeviceResult
   */
  submitDeviceResult: {
    methodKind: "unary";
    input: typeof MDeviceResultSchema;
    output: typeof MAckSchema;
  };
  /**
   * Compose tab — used by the iMessage app extension. A one-shot, non-streaming draft:
   * the user gives an instruction ("tell my mom I'll be late"), the agent returns a few
   * ready-to-send message drafts; the user picks one and Messages sends it.
   *
   * @generated from rpc nomos.MobileApi.ComposeReply
   */
  composeReply: {
    methodKind: "unary";
    input: typeof MComposeRequestSchema;
    output: typeof MComposeResponseSchema;
  };
}> /*@__PURE__*/ = serviceDesc(file_nomos, 1);

/**
 * @generated from service nomos.OAuthDeposit
 */
export const OAuthDeposit: GenService<{
  /**
   * @generated from rpc nomos.OAuthDeposit.Deposit
   */
  deposit: {
    methodKind: "unary";
    input: typeof DepositRequestSchema;
    output: typeof DepositResponseSchema;
  };
}> /*@__PURE__*/ = serviceDesc(file_nomos, 2);
