generated: '2026-10-09' method: derived generator: derive-data-model.py source: - openapi/tale-dev-openapi.yml notation: has_one = property $ref; has_many = array of $ref; belongs_to = _id field summary: entities: 68 entities_in_spec: 68 relationships: 34 entities: - name: Actor fields: 2 description: The verified member a machine caller acts FOR when it relays a person’s own gesture — named by e-mail, never by an id the caller made up. The door resolves the address against the organization’s membe - name: AnthropicError fields: 3 description: A refusal on the Anthropic-compatible model endpoint, in Anthropic’s own error shape — the REST door’s refusals included. `error.code` is this API’s stable refusal code, an addition to Anthropic’s sha - name: ApprovalPart fields: 4 - name: AttachmentPart fields: 7 - name: Automation fields: 10 - name: AutomationSummary fields: 8 - name: AutomationVersion fields: 7 - name: BrowserSession fields: 8 - name: BrowserSessionImport fields: 7 - name: BulkCreateResult fields: 4 description: 'A body the schema refuses fails the whole call with 400; a row the directory refuses (a duplicate email or external id) fails that row alone and is listed under `errors` with its code. `created` here ' - name: ChatModel fields: 10 - name: Contact fields: 15 - name: ContactInput fields: 10 description: Unknown keys are refused (`INVALID_BODY`). Strings are trimmed, and a blank optional field — or one sent as `null` — reads as left out (a CSV-shaped row or a JSON export imports cleanly); the same bod - name: ContactPatch fields: 11 description: 'Every field optional. `null` clears any optional field, and a blank string reads as `null`; `metadata` merges per RFC 7396 while `address` is replaced whole. A patch may not clear the last of `name`, ' - name: ConversationDelivery fields: 12 description: One native Inbox reply in a source’s delivery queue, as the listing shows it — never the claim token or the body - name: ConversationMirror fields: 10 - name: Document fields: 16 - name: DocumentInput fields: 10 - name: DocumentPatch fields: 10 description: Every field optional; null clears a nullable field. Applies only to Knowledge Hub documents. A patch that changes nothing writes nothing and leaves `updatedAt` alone. - name: Error fields: 4 - name: ExternalStatusDecision fields: 2 - name: ExternalStatusWorkflow fields: 1 - name: KnowledgeEntry fields: 10 - name: KnowledgeEntryCreated fields: 2 - name: KnowledgeHit fields: 13 - name: KnowledgeSearchResult fields: 2 - name: LegacyRunQuarantine fields: 5 description: A legacy execution whose external effects or termination cannot be proven. Present on held runs. A recorded stop request does not resolve the hold or establish that work stopped. - name: LegacyRunStopRequest fields: 4 - name: Me fields: 5 - name: Message fields: 13 - name: OpenAiError fields: 1 description: A refusal on the OpenAI-compatible model endpoints, in OpenAI’s own error shape — the REST door’s refusals (a missing key, the organization header, the request budget) included. `code` is this API’s s - name: PendingAsk fields: 8 description: 'The question a run is parked on (`waitingFor: "ask"`): what the agent asked, on which node, and until when an answer still resumes the run. Answer at `POST …/runs/{runId}/asks/{askId}`.' - name: Product fields: 16 - name: ProductInput fields: 11 description: '`name` is required on create; every field is optional on update. Strings are trimmed, and a blank optional field — or one sent as `null` — reads as left out. Unknown keys are refused (`INVALID_BODY`).' - name: ProductPatch fields: 12 description: Every field optional. `null` clears any optional field, and a blank string reads as `null` (a blank `name` is refused); `metadata` merges per RFC 7396. Send `expectedUpdatedAt` from the last product r - name: Project fields: 9 - name: ProjectAgent fields: 17 - name: ProjectAgentInput fields: 9 description: Full project-agent configuration. name, harness, model, skills and connectors are required. Harness must support project-agent execution — one the managed lane runs unattended on the platform’s own cr - name: ProjectAgentUpdate fields: 10 description: The full configuration a `PUT` replaces — `ProjectAgentInput` plus the optional `expectedUpdatedAt` precondition. - name: ProjectFile fields: 7 - name: ProjectFolder fields: 3 - name: ProjectFolderResult fields: 2 - name: ProjectUploadHandoff fields: 6 - name: QuestionSet fields: 2 description: 'A structured question set an agent may ask instead of a plain sentence: up to four questions, each a choice among two to four labelled options; the person may also answer a question in their own words' - name: ReasoningPart fields: 2 description: The model’s reasoning ahead of its reply — display-only, never replayed to the model; it may quote the assistant’s own instructions verbatim, so it is not safe to render as the answer. - name: RetryIndexingResult fields: 2 description: What a retry-indexing request did — the one answer the Hub document door and the project-file door share. - name: Run fields: 25 description: 'A run in full — the single read: identity, status, input, output, trace, effects, and per-node checkpoints. Listings answer `RunSummary` rows.' - name: RunProjection fields: 25 description: 'A run read with `?fields=`: exactly the keys of `Run` the query named, no others — none is required, since the caller chose them.' - name: RunSummary fields: 23 description: One run as a listing reports it — identity, scope, status and timing. The input, output, trace, effects and checkpoints of the full `Run` are inlined only when `include` names them; the single read an - name: Skill fields: 17 description: 'The skill bundle: its summary fields plus the markdown body and the bundle’s file list' - name: SkillSummary fields: 15 - name: Task fields: 17 - name: TaskReview fields: 11 description: A task’s ordinary pending review, owned by the captured person or agent. Native agent verdicts use task_review; the public review POST relays a person’s decision. - name: TaskStatusSnapshot fields: 7 - name: TaskUpsertResult fields: 3 - name: Team fields: 3 description: 'One team of the organization: the `id` an audience names, the `name` the app shows for it, and whether the key holder is a member.' - name: TextPart fields: 2 - name: Thread fields: 11 - name: ToolCallPart fields: 4 - name: ToolResultPart fields: 5 - name: Trigger fields: 16 description: 'The binding, and its health: `lastFiredAt` and `lastRunId` name the last run it started, `lastSkippedAt` and `lastSkipReason` the last time it came due and started nothing. A binding is alive when `la' - name: Website fields: 15 - name: WebsiteInput fields: 5 - name: WebsitePage fields: 13 - name: WebsitePageList fields: 6 - name: WebsitePatch fields: 4 description: 'The domain is immutable after create (the crawl registration is keyed by it): a body carrying a `domain` other than the stored one is refused with 400 `WEBSITE_DOMAIN_IMMUTABLE` — delete the website a' - name: WebsiteSearchHit fields: 5 - name: WebsiteSearchResults fields: 2 relationships: - from: Document to: Team type: belongs_to via: teamIds - from: Document to: Team type: belongs_to via: teamId - from: DocumentInput to: Team type: belongs_to via: teamIds - from: DocumentInput to: Team type: belongs_to via: teamId - from: DocumentPatch to: Team type: belongs_to via: teamIds - from: DocumentPatch to: Team type: belongs_to via: teamId - from: WebsitePageList to: WebsitePage type: has_many via: pages - from: WebsiteSearchResults to: WebsiteSearchHit type: has_many via: results - from: ConversationMirror to: Contact type: belongs_to via: contactId - from: ConversationDelivery to: Message type: belongs_to via: messageId - from: Project to: Team type: belongs_to via: teamIds - from: ProjectFolderResult to: ProjectFolder type: has_one via: folder - from: Task to: Project type: belongs_to via: projectId - from: PendingAsk to: Run type: belongs_to via: runId - from: PendingAsk to: QuestionSet type: has_one via: questions - from: PendingAsk to: Task type: belongs_to via: taskId - from: TaskStatusSnapshot to: ExternalStatusWorkflow type: has_one via: workflow - from: TaskReview to: Task type: belongs_to via: taskId - from: TaskReview to: Run type: belongs_to via: runId - from: TaskUpsertResult to: Run type: belongs_to via: runId - from: AutomationSummary to: Project type: belongs_to via: projectIds - from: Automation to: Project type: belongs_to via: projectIds - from: RunSummary to: Run type: belongs_to via: runId - from: RunSummary to: Project type: belongs_to via: projectId - from: RunSummary to: LegacyRunQuarantine type: has_one via: legacyQuarantine - from: Run to: Project type: belongs_to via: projectId - from: Run to: LegacyRunQuarantine type: has_one via: legacyQuarantine - from: RunProjection to: Project type: belongs_to via: projectId - from: RunProjection to: LegacyRunQuarantine type: has_one via: legacyQuarantine - from: KnowledgeSearchResult to: KnowledgeHit type: has_many via: hits - from: Thread to: Project type: belongs_to via: projectId - from: ProjectAgent to: Project type: belongs_to via: projectId - from: KnowledgeEntry to: Document type: belongs_to via: documentId - from: KnowledgeEntryCreated to: Document type: belongs_to via: documentId