@arbidocs/client 0.4.75 → 0.4.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -14,7 +14,7 @@ interface paths {
14
14
  };
15
15
  /**
16
16
  * List Projects
17
- * @description List all projects visible to the caller.
17
+ * @description List all projects visible to the caller, optionally only those at ``stage`` and/or led by ``lead_user``.
18
18
  *
19
19
  * Agents are allowed (read-only): ``projects_select_policy`` grants owner-group
20
20
  * visibility, so an agent sees its parent's projects and uses one as its own —
@@ -63,11 +63,34 @@ interface paths {
63
63
  head?: never;
64
64
  /**
65
65
  * Update Project
66
- * @description Update project name.
66
+ * @description Update a project (owner only): name, daily cap and host-defined fields, with PATCH semantics.
67
+ *
68
+ * A field left out is unchanged and an explicit null clears it; ``fields`` merges key by key (null removes a
69
+ * key). Stage and budget changes are recorded as project events.
67
70
  */
68
71
  patch: operations['update_project'];
69
72
  trace?: never;
70
73
  };
74
+ '/v1/user/projects/{project_ext_id}/events': {
75
+ parameters: {
76
+ query?: never;
77
+ header?: never;
78
+ path?: never;
79
+ cookie?: never;
80
+ };
81
+ /**
82
+ * Get Project Events
83
+ * @description A project's stage and budget changes, newest first (anyone who can see the project).
84
+ */
85
+ get: operations['list_project_events'];
86
+ put?: never;
87
+ post?: never;
88
+ delete?: never;
89
+ options?: never;
90
+ head?: never;
91
+ patch?: never;
92
+ trace?: never;
93
+ };
71
94
  '/v1/user/projects/quote': {
72
95
  parameters: {
73
96
  query?: never;
@@ -201,6 +224,29 @@ interface paths {
201
224
  patch?: never;
202
225
  trace?: never;
203
226
  };
227
+ '/v1/user/projects/{project_ext_id}/usage/conversations': {
228
+ parameters: {
229
+ query?: never;
230
+ header?: never;
231
+ path?: never;
232
+ cookie?: never;
233
+ };
234
+ /**
235
+ * Get Project Conversation Usage Endpoint
236
+ * @description AI usage of a project's billing period by conversation (thread / work item), in credits.
237
+ *
238
+ * Each model call is tagged with the conversation it serves; spend that served none is ``unattributed``.
239
+ * Per-step detail of one conversation: ``GET /v1/conversation/{conversation_ext_id}/usage``.
240
+ */
241
+ get: operations['get_project_conversation_usage'];
242
+ put?: never;
243
+ post?: never;
244
+ delete?: never;
245
+ options?: never;
246
+ head?: never;
247
+ patch?: never;
248
+ trace?: never;
249
+ };
204
250
  '/v1/user/projects/{project_ext_id}/invoices': {
205
251
  parameters: {
206
252
  query?: never;
@@ -2377,6 +2423,30 @@ interface paths {
2377
2423
  patch?: never;
2378
2424
  trace?: never;
2379
2425
  };
2426
+ '/v1/conversation/{conversation_ext_id}/usage': {
2427
+ parameters: {
2428
+ query?: never;
2429
+ header?: never;
2430
+ path?: never;
2431
+ cookie?: never;
2432
+ };
2433
+ /**
2434
+ * Get Conversation Usage Endpoint
2435
+ * @description AI usage of a conversation since it was created: total, by workflow step, run, model and agent.
2436
+ *
2437
+ * In credits, like project usage. Every model call is tagged with the conversation it serves and, for a
2438
+ * work run, the run and workflow step (a stage is a set of steps: sum ``by_step``). Read from the spend
2439
+ * logs of the project the conversation's workspace bills to; anyone who can read the conversation may.
2440
+ */
2441
+ get: operations['get_conversation_usage'];
2442
+ put?: never;
2443
+ post?: never;
2444
+ delete?: never;
2445
+ options?: never;
2446
+ head?: never;
2447
+ patch?: never;
2448
+ trace?: never;
2449
+ };
2380
2450
  '/v1/conversation/search': {
2381
2451
  parameters: {
2382
2452
  query?: never;
@@ -2578,12 +2648,20 @@ interface paths {
2578
2648
  /**
2579
2649
  * Act On Step
2580
2650
  * @description A person finishes a step of a workflow run: fills in a form (its ``inputs`` join the run's inputs), adds
2581
- * the files, approves a review, or skips a step. The run then goes on to its next agent step, under the
2582
- * caller's session (they are present: no access question).
2651
+ * the files, approves a review, skips a step, or sends the work back to an earlier step. The run then goes on to
2652
+ * its next agent step, under the caller's session (they are present: no access question), and the person steps
2653
+ * that are now ready tell their assignees.
2654
+ *
2655
+ * Any unfinished step can be skipped at any time (ahead of the plan too), by any editor: the plan guides the
2656
+ * thread, it does not hold it. Completing needs the step to be ready; a step that declares ``fields`` checks its
2657
+ * ``inputs`` against them (422 with ``{field: problem}``); a review records what it approved (the answers and
2658
+ * document versions of the steps it waits for). ``send_back`` reopens ``to`` (default: the step this one waits
2659
+ * for) and every step after it; an agent step runs again with the ``note``. A step assigned to a user is
2660
+ * completed or sent back only by them, the run's owner or a workspace owner (403).
2583
2661
  *
2584
- * Any unfinished step can be skipped at any time (ahead of the plan too): the plan guides the thread, it
2585
- * does not hold it. Completing needs the step to be ready. 400 when the step is not this run's, or a step
2586
- * completed out of order or an agent step completed by hand; 409 while the step's own turn is running.
2662
+ * 400 when the step is not this run's, a step completed out of order, an agent step completed by hand, or a
2663
+ * send-back to a step this one does not wait for; 409 while the step's own turn (or, for a send-back, any turn)
2664
+ * is running (a step whose run died is failed first, so it can be skipped or retried).
2587
2665
  */
2588
2666
  post: operations['act_on_step'];
2589
2667
  delete?: never;
@@ -3043,6 +3121,30 @@ interface paths {
3043
3121
  patch?: never;
3044
3122
  trace?: never;
3045
3123
  };
3124
+ '/v1/tag/matrix': {
3125
+ parameters: {
3126
+ query?: never;
3127
+ header?: never;
3128
+ path?: never;
3129
+ cookie?: never;
3130
+ };
3131
+ /**
3132
+ * Get Tag Matrix
3133
+ * @description A set of tags with their fields and values, plus the documents and facts linked to each.
3134
+ *
3135
+ * Select the rows with ``parent_ext_id`` (its children; the parent comes back too, its fields being the
3136
+ * shared columns) or with ``tag_ext_id``. Each row lists up to ``links_limit`` documents (with the doctag's
3137
+ * note and how many passages it cites) and facts, newest first; ``doc_count``/``fact_count`` are the totals.
3138
+ */
3139
+ get: operations['get_tag_matrix'];
3140
+ put?: never;
3141
+ post?: never;
3142
+ delete?: never;
3143
+ options?: never;
3144
+ head?: never;
3145
+ patch?: never;
3146
+ trace?: never;
3147
+ };
3046
3148
  '/v1/tag/': {
3047
3149
  parameters: {
3048
3150
  query?: never;
@@ -6234,7 +6336,7 @@ interface components {
6234
6336
  * @description What happened to a task, in the order a person reads its history.
6235
6337
  * @enum {string}
6236
6338
  */
6237
- ActivityKind: 'created' | 'run_started' | 'awaiting_access' | 'access_granted' | 'done' | 'reopened' | 'failed' | 'participant_joined' | 'assistant_responded' | 'assistant_stopped' | 'artifact_created' | 'artifact_edited' | 'document_added' | 'document_removed' | 'notified' | 'step_started' | 'step_done' | 'step_skipped' | 'step_failed';
6339
+ ActivityKind: 'created' | 'run_started' | 'awaiting_access' | 'access_granted' | 'done' | 'reopened' | 'failed' | 'participant_joined' | 'assistant_responded' | 'assistant_stopped' | 'artifact_created' | 'artifact_edited' | 'document_added' | 'document_removed' | 'notified' | 'step_started' | 'step_done' | 'step_skipped' | 'step_failed' | 'step_signal' | 'step_ready' | 'step_reminded' | 'step_sent_back' | 'step_waiting' | 'step_progress' | 'linked_run';
6238
6340
  /**
6239
6341
  * ActivityResponse
6240
6342
  * @description One entry of ``GET /v1/conversation/{id}/activity``.
@@ -9996,6 +10098,74 @@ interface components {
9996
10098
  /** Parent Ext Id */
9997
10099
  parent_ext_id?: string | null;
9998
10100
  };
10101
+ /**
10102
+ * ConversationUsageResponse
10103
+ * @description AI usage of one conversation (a thread, or a work item / matter), in credits like project usage.
10104
+ *
10105
+ * Read from the project's LiteLLM spend logs: every model call is tagged with the conversation it
10106
+ * serves and, for a work run, the run and the workflow step. A breakdown holds only the calls that
10107
+ * carry its key (a chat turn has no step), so each one sums to at most the total.
10108
+ */
10109
+ ConversationUsageResponse: {
10110
+ /** Conversation Ext Id */
10111
+ conversation_ext_id: string;
10112
+ /** Project Ext Id */
10113
+ project_ext_id: string;
10114
+ /** Period Start */
10115
+ period_start: string;
10116
+ /** Period End */
10117
+ period_end: string;
10118
+ /**
10119
+ * Total Spend
10120
+ * @default 0
10121
+ */
10122
+ total_spend: number;
10123
+ /**
10124
+ * Total Tokens
10125
+ * @default 0
10126
+ */
10127
+ total_tokens: number;
10128
+ /**
10129
+ * Total Requests
10130
+ * @default 0
10131
+ */
10132
+ total_requests: number;
10133
+ /**
10134
+ * By Step
10135
+ * @default {}
10136
+ */
10137
+ by_step: {
10138
+ [key: string]: components['schemas']['TagBreakdown'];
10139
+ };
10140
+ /**
10141
+ * By Run
10142
+ * @default {}
10143
+ */
10144
+ by_run: {
10145
+ [key: string]: components['schemas']['TagBreakdown'];
10146
+ };
10147
+ /**
10148
+ * By Model
10149
+ * @default {}
10150
+ */
10151
+ by_model: {
10152
+ [key: string]: components['schemas']['TagBreakdown'];
10153
+ };
10154
+ /**
10155
+ * By Agent
10156
+ * @default {}
10157
+ */
10158
+ by_agent: {
10159
+ [key: string]: components['schemas']['TagBreakdown'];
10160
+ };
10161
+ /**
10162
+ * By Feature
10163
+ * @default {}
10164
+ */
10165
+ by_feature: {
10166
+ [key: string]: components['schemas']['TagBreakdown'];
10167
+ };
10168
+ };
9999
10169
  /**
10000
10170
  * CopyDocumentResult
10001
10171
  * @description Outcome of copying ONE selected item.
@@ -10268,6 +10438,12 @@ interface components {
10268
10438
  shared?: boolean | null;
10269
10439
  /** Parent Ext Id */
10270
10440
  parent_ext_id?: string | null;
10441
+ /** Fields */
10442
+ fields?: components['schemas']['FieldDefinitionWrite'][] | null;
10443
+ /** Field Values */
10444
+ field_values?: {
10445
+ [key: string]: unknown;
10446
+ } | null;
10271
10447
  };
10272
10448
  /**
10273
10449
  * CreateWorkRequest
@@ -11193,6 +11369,36 @@ interface components {
11193
11369
  */
11194
11370
  skipped: components['schemas']['DriveSyncSkippedFile'][];
11195
11371
  };
11372
+ /**
11373
+ * EmailDraftAction
11374
+ * @description Prepare a draft in native mail, in the mailbox of the step's assignee (else the run's owner). It is never
11375
+ * sent automatically: the person sends it, and the step is done when they say so or when the draft is sent.
11376
+ * ``to``, ``cc``, ``subject`` and ``body_template`` are templates over the run's inputs and earlier steps'
11377
+ * outputs (``{{field}}``, ``{{step_id.key}}``, ``{{step_id.answer}}``).
11378
+ */
11379
+ EmailDraftAction: {
11380
+ /**
11381
+ * @description discriminator enum property added by openapi-typescript
11382
+ * @enum {string}
11383
+ */
11384
+ type: 'email_draft';
11385
+ /** To */
11386
+ to?: string[];
11387
+ /** Cc */
11388
+ cc?: string[];
11389
+ /**
11390
+ * Subject
11391
+ * @default
11392
+ */
11393
+ subject: string;
11394
+ /**
11395
+ * Body Template
11396
+ * @default
11397
+ */
11398
+ body_template: string;
11399
+ /** Attachments */
11400
+ attachments?: (string | components['schemas']['StepDocumentRef'])[];
11401
+ };
11196
11402
  /**
11197
11403
  * EmailNotificationSettings
11198
11404
  * @description Per-category email notification preferences. All default on; a master
@@ -11740,6 +11946,42 @@ interface components {
11740
11946
  */
11741
11947
  label: string;
11742
11948
  };
11949
+ /**
11950
+ * FieldDefinitionWrite
11951
+ * @description A field in a write. Give ``id`` to keep an existing field (its type cannot change); omit it to add one.
11952
+ */
11953
+ FieldDefinitionWrite: {
11954
+ /** Id */
11955
+ id?: string | null;
11956
+ /** Name */
11957
+ name: string;
11958
+ /**
11959
+ * Type
11960
+ * @default text
11961
+ * @enum {string}
11962
+ */
11963
+ type: 'text' | 'number' | 'date' | 'checkbox' | 'select' | 'person';
11964
+ /** Options */
11965
+ options?: string[] | null;
11966
+ };
11967
+ /**
11968
+ * FieldSchemaEntry
11969
+ * @description One field of a host-defined schema (a project's ``field_schema``), keyed by a host-chosen ``key``.
11970
+ */
11971
+ FieldSchemaEntry: {
11972
+ /** Key */
11973
+ key: string;
11974
+ /** Label */
11975
+ label?: string | null;
11976
+ /**
11977
+ * Type
11978
+ * @default text
11979
+ * @enum {string}
11980
+ */
11981
+ type: 'text' | 'number' | 'date' | 'checkbox' | 'select' | 'person';
11982
+ /** Options */
11983
+ options?: string[] | null;
11984
+ };
11743
11985
  /**
11744
11986
  * FileDeleteResponse
11745
11987
  * @description OpenAI-compatible file deletion response.
@@ -13102,7 +13344,7 @@ interface components {
13102
13344
  input: string;
13103
13345
  /** Tools */
13104
13346
  tools?: {
13105
- [key: string]: components['schemas']['ModelCitationTool'] | components['schemas']['RetrievalChunkTool'] | components['schemas']['RetrievalFullContextTool'] | components['schemas']['RetrievalTOCTool'] | components['schemas']['TraceTool'] | components['schemas']['CompactionTool'] | components['schemas']['PersonalAgentTool'] | components['schemas']['StreamEventsTool'] | components['schemas']['MemoryTool'] | components['schemas']['GoalTool'] | components['schemas']['FactsContextTool'] | components['schemas']['ImageGenerationTool'] | components['schemas']['SubagentTool'];
13347
+ [key: string]: components['schemas']['ModelCitationTool'] | components['schemas']['RetrievalChunkTool'] | components['schemas']['RetrievalFullContextTool'] | components['schemas']['RetrievalTOCTool'] | components['schemas']['TraceTool'] | components['schemas']['CompactionTool'] | components['schemas']['PersonalAgentTool'] | components['schemas']['StreamEventsTool'] | components['schemas']['MemoryTool'] | components['schemas']['GoalTool'] | components['schemas']['FactsContextTool'] | components['schemas']['ImageGenerationTool'] | components['schemas']['SubagentTool'] | components['schemas']['WorkflowStepTool'];
13106
13348
  };
13107
13349
  /**
13108
13350
  * Workspace Ext Id
@@ -13191,7 +13433,7 @@ interface components {
13191
13433
  content: string;
13192
13434
  /** Tools */
13193
13435
  tools?: {
13194
- [key: string]: components['schemas']['ModelCitationTool'] | components['schemas']['RetrievalChunkTool'] | components['schemas']['RetrievalFullContextTool'] | components['schemas']['RetrievalTOCTool'] | components['schemas']['TraceTool'] | components['schemas']['CompactionTool'] | components['schemas']['PersonalAgentTool'] | components['schemas']['StreamEventsTool'] | components['schemas']['MemoryTool'] | components['schemas']['GoalTool'] | components['schemas']['FactsContextTool'] | components['schemas']['ImageGenerationTool'] | components['schemas']['SubagentTool'];
13436
+ [key: string]: components['schemas']['ModelCitationTool'] | components['schemas']['RetrievalChunkTool'] | components['schemas']['RetrievalFullContextTool'] | components['schemas']['RetrievalTOCTool'] | components['schemas']['TraceTool'] | components['schemas']['CompactionTool'] | components['schemas']['PersonalAgentTool'] | components['schemas']['StreamEventsTool'] | components['schemas']['MemoryTool'] | components['schemas']['GoalTool'] | components['schemas']['FactsContextTool'] | components['schemas']['ImageGenerationTool'] | components['schemas']['SubagentTool'] | components['schemas']['WorkflowStepTool'];
13195
13437
  };
13196
13438
  /** Config Ext Id */
13197
13439
  config_ext_id?: string | null;
@@ -13301,7 +13543,7 @@ interface components {
13301
13543
  content: string;
13302
13544
  /** Tools */
13303
13545
  tools?: {
13304
- [key: string]: components['schemas']['ModelCitationTool'] | components['schemas']['RetrievalChunkTool'] | components['schemas']['RetrievalFullContextTool'] | components['schemas']['RetrievalTOCTool'] | components['schemas']['TraceTool'] | components['schemas']['CompactionTool'] | components['schemas']['PersonalAgentTool'] | components['schemas']['StreamEventsTool'] | components['schemas']['MemoryTool'] | components['schemas']['GoalTool'] | components['schemas']['FactsContextTool'] | components['schemas']['ImageGenerationTool'] | components['schemas']['SubagentTool'];
13546
+ [key: string]: components['schemas']['ModelCitationTool'] | components['schemas']['RetrievalChunkTool'] | components['schemas']['RetrievalFullContextTool'] | components['schemas']['RetrievalTOCTool'] | components['schemas']['TraceTool'] | components['schemas']['CompactionTool'] | components['schemas']['PersonalAgentTool'] | components['schemas']['StreamEventsTool'] | components['schemas']['MemoryTool'] | components['schemas']['GoalTool'] | components['schemas']['FactsContextTool'] | components['schemas']['ImageGenerationTool'] | components['schemas']['SubagentTool'] | components['schemas']['WorkflowStepTool'];
13305
13547
  };
13306
13548
  /** Config Ext Id */
13307
13549
  config_ext_id?: string | null;
@@ -13621,7 +13863,7 @@ interface components {
13621
13863
  * Type is self-descriptive, no need to parse content field.
13622
13864
  * @enum {string}
13623
13865
  */
13624
- NotificationType: 'user_message' | 'workspaceuser_added_owner' | 'workspaceuser_added_collaborator' | 'workspaceuser_added_guest' | 'workspaceuser_removed' | 'workspaceuser_updated_owner' | 'workspaceuser_updated_collaborator' | 'workspaceuser_updated_guest' | 'contact_accepted' | 'signup_reward' | 'referral_reward' | 'native_mail_received' | 'mail_draft_ready' | 'email_reply' | 'quota_threshold_50' | 'quota_threshold_90' | 'quota_threshold_100' | 'doc_shared' | 'docx_mention' | 'workspace_access_request' | 'conversation_ready' | 'conversation_done' | 'conversation_notified' | 'workflow_failed' | 'agent_input_requested' | 'workflow_completed' | 'task_started' | 'task_completed' | 'mailbox_sync_complete' | 'drive_sync_complete' | 'activity' | 'mention' | 'call_missed' | 'calendar_invite' | 'calendar_update' | 'calendar_cancel' | 'calendar_reply' | 'calendar_counter' | 'calendar_reminder' | 'calendar_share';
13866
+ NotificationType: 'user_message' | 'workspaceuser_added_owner' | 'workspaceuser_added_collaborator' | 'workspaceuser_added_guest' | 'workspaceuser_removed' | 'workspaceuser_updated_owner' | 'workspaceuser_updated_collaborator' | 'workspaceuser_updated_guest' | 'contact_accepted' | 'signup_reward' | 'referral_reward' | 'native_mail_received' | 'mail_draft_ready' | 'email_reply' | 'quota_threshold_50' | 'quota_threshold_90' | 'quota_threshold_100' | 'doc_shared' | 'docx_mention' | 'workspace_access_request' | 'conversation_ready' | 'conversation_done' | 'conversation_notified' | 'workflow_failed' | 'agent_input_requested' | 'workflow_completed' | 'workflow_signal' | 'step_ready' | 'task_started' | 'task_completed' | 'mailbox_sync_complete' | 'drive_sync_complete' | 'activity' | 'mention' | 'call_missed' | 'calendar_invite' | 'calendar_update' | 'calendar_cancel' | 'calendar_reply' | 'calendar_counter' | 'calendar_reminder' | 'calendar_share';
13625
13867
  /**
13626
13868
  * NotificationUpdate
13627
13869
  * @description Single notification update for bulk PATCH.
@@ -14487,6 +14729,19 @@ interface components {
14487
14729
  upsell?: components['schemas']['ProPlusUpsell'] | null;
14488
14730
  payment?: components['schemas']['AddonPaymentState'] | null;
14489
14731
  };
14732
+ /**
14733
+ * ProjectBudget
14734
+ * @description An amount in minor units (pence, cents) of an ISO 4217 currency.
14735
+ */
14736
+ ProjectBudget: {
14737
+ /** Amount */
14738
+ amount: number;
14739
+ /**
14740
+ * Currency
14741
+ * @description ISO 4217 code, e.g. GBP
14742
+ */
14743
+ currency: string;
14744
+ };
14490
14745
  /**
14491
14746
  * ProjectCheckoutRequest
14492
14747
  * @description Create a Stripe checkout session for this project's Pro plan (Pro = 1 pack, Pro Plus = 10).
@@ -14523,11 +14778,68 @@ interface components {
14523
14778
  /** Client Secret */
14524
14779
  client_secret: string;
14525
14780
  };
14781
+ /**
14782
+ * ProjectConversationUsageResponse
14783
+ * @description A project's AI usage by conversation for a billing period, in credits like project usage.
14784
+ */
14785
+ ProjectConversationUsageResponse: {
14786
+ /** Project Ext Id */
14787
+ project_ext_id: string;
14788
+ /** Period Start */
14789
+ period_start: string;
14790
+ /** Period End */
14791
+ period_end: string;
14792
+ /**
14793
+ * Total Spend
14794
+ * @default 0
14795
+ */
14796
+ total_spend: number;
14797
+ /**
14798
+ * Total Tokens
14799
+ * @default 0
14800
+ */
14801
+ total_tokens: number;
14802
+ /**
14803
+ * Total Requests
14804
+ * @default 0
14805
+ */
14806
+ total_requests: number;
14807
+ /**
14808
+ * By Conversation
14809
+ * @default {}
14810
+ */
14811
+ by_conversation: {
14812
+ [key: string]: components['schemas']['TagBreakdown'];
14813
+ };
14814
+ /**
14815
+ * @default {
14816
+ * "spend": 0,
14817
+ * "total_tokens": 0,
14818
+ * "requests": 0
14819
+ * }
14820
+ */
14821
+ unattributed: components['schemas']['TagBreakdown'];
14822
+ };
14526
14823
  /**
14527
14824
  * ProjectCreateRequest
14528
- * @description Create a new project.
14825
+ * @description Create a new project, optionally with its host-defined fields.
14529
14826
  */
14530
14827
  ProjectCreateRequest: {
14828
+ budget?: components['schemas']['ProjectBudget'] | null;
14829
+ /** Client */
14830
+ client?: string | null;
14831
+ /** Client Ref */
14832
+ client_ref?: string | null;
14833
+ /** Stage */
14834
+ stage?: string | null;
14835
+ /** Lead User */
14836
+ lead_user?: string | null;
14837
+ /** Fields */
14838
+ fields?: {
14839
+ [key: string]: unknown;
14840
+ } | null;
14841
+ /** Field Schema */
14842
+ field_schema?: components['schemas']['FieldSchemaEntry'][] | null;
14531
14843
  /** Name */
14532
14844
  name: string;
14533
14845
  /**
@@ -14539,6 +14851,30 @@ interface components {
14539
14851
  /** Daily Cap Per User */
14540
14852
  daily_cap_per_user?: number | null;
14541
14853
  };
14854
+ /**
14855
+ * ProjectEventResponse
14856
+ * @description One entry of ``GET /v1/project/{id}/events``: ``detail`` is ``{"from": …, "to": …}`` (null = unset).
14857
+ */
14858
+ ProjectEventResponse: {
14859
+ /** External Id */
14860
+ external_id: string;
14861
+ /**
14862
+ * Kind
14863
+ * @enum {string}
14864
+ */
14865
+ kind: 'stage_changed' | 'budget_changed';
14866
+ /** Actor */
14867
+ actor?: string | null;
14868
+ /** Detail */
14869
+ detail: {
14870
+ [key: string]: unknown;
14871
+ };
14872
+ /**
14873
+ * Created At
14874
+ * Format: date-time
14875
+ */
14876
+ created_at: string;
14877
+ };
14542
14878
  /**
14543
14879
  * ProjectInvoice
14544
14880
  * @description Single Stripe invoice/receipt for a project: the plan, prorations and add-on charges.
@@ -14667,9 +15003,10 @@ interface components {
14667
15003
  * Listed for both project owners and workspace members of the project. For
14668
15004
  * non-owner viewers, ``subscription``, ``plan_interval``, ``addons``, ``quotas`` and the
14669
15005
  * Stripe billing fields are blanked out (zeros / "none" / null) — only
14670
- * ``name``, ``external_id``, ``created_by``, and ``daily_cap_per_user`` are
14671
- * meaningful. Frontend distinguishes the two modes by comparing
14672
- * ``created_by`` against the current user's external_id.
15006
+ * ``name``, ``external_id``, ``created_by``, ``daily_cap_per_user`` and the
15007
+ * host-defined fields (``budget`` … ``field_schema``) are meaningful. Frontend
15008
+ * distinguishes the two modes by comparing ``created_by`` against the current
15009
+ * user's external_id.
14673
15010
  */
14674
15011
  ProjectResponse: {
14675
15012
  /** External Id */
@@ -14688,6 +15025,23 @@ interface components {
14688
15025
  quotas: components['schemas']['ProjectQuotas'];
14689
15026
  /** Daily Cap Per User */
14690
15027
  daily_cap_per_user?: number | null;
15028
+ budget?: components['schemas']['ProjectBudget'] | null;
15029
+ /** Client */
15030
+ client?: string | null;
15031
+ /** Client Ref */
15032
+ client_ref?: string | null;
15033
+ /** Stage */
15034
+ stage?: string | null;
15035
+ /** Stage Changed At */
15036
+ stage_changed_at?: string | null;
15037
+ /** Lead User */
15038
+ lead_user?: string | null;
15039
+ /** Fields */
15040
+ fields?: {
15041
+ [key: string]: unknown;
15042
+ };
15043
+ /** Field Schema */
15044
+ field_schema?: components['schemas']['FieldSchemaEntry'][] | null;
14691
15045
  /** Plan Interval */
14692
15046
  plan_interval?: ('month' | 'year') | null;
14693
15047
  /**
@@ -14716,9 +15070,24 @@ interface components {
14716
15070
  };
14717
15071
  /**
14718
15072
  * ProjectUpdateRequest
14719
- * @description Update project name and/or daily per-user cap.
15073
+ * @description Update a project (PATCH): omitted fields are unchanged, null clears; ``fields`` merges key by key.
14720
15074
  */
14721
15075
  ProjectUpdateRequest: {
15076
+ budget?: components['schemas']['ProjectBudget'] | null;
15077
+ /** Client */
15078
+ client?: string | null;
15079
+ /** Client Ref */
15080
+ client_ref?: string | null;
15081
+ /** Stage */
15082
+ stage?: string | null;
15083
+ /** Lead User */
15084
+ lead_user?: string | null;
15085
+ /** Fields */
15086
+ fields?: {
15087
+ [key: string]: unknown;
15088
+ } | null;
15089
+ /** Field Schema */
15090
+ field_schema?: components['schemas']['FieldSchemaEntry'][] | null;
14722
15091
  /** Name */
14723
15092
  name?: string | null;
14724
15093
  /** Daily Cap Per User */
@@ -16609,6 +16978,27 @@ interface components {
16609
16978
  */
16610
16979
  role: 'delegate' | 'write' | 'read' | 'read_basic' | 'freebusy';
16611
16980
  };
16981
+ /**
16982
+ * SignAction
16983
+ * @description Ask people to e-sign a document (``src/core/esign.py``). The step waits until every signer has signed (each
16984
+ * signs the document's latest version, so later signers counter-sign), then it is done with the signed version.
16985
+ * A signer who declines, or ``expires_after_hours`` passing, fails the step.
16986
+ */
16987
+ SignAction: {
16988
+ /**
16989
+ * @description discriminator enum property added by openapi-typescript
16990
+ * @enum {string}
16991
+ */
16992
+ type: 'sign';
16993
+ /** Document */
16994
+ document: string | components['schemas']['StepDocumentRef'];
16995
+ /** Signers */
16996
+ signers: components['schemas']['StepAssignee'][];
16997
+ /** Message */
16998
+ message?: string | null;
16999
+ /** Expires After Hours */
17000
+ expires_after_hours?: number | null;
17001
+ };
16612
17002
  /** SignDocumentRequest */
16613
17003
  SignDocumentRequest: {
16614
17004
  signer: components['schemas']['SignerDetails'];
@@ -16922,8 +17312,13 @@ interface components {
16922
17312
  * StepActionRequest
16923
17313
  * @description A person finishes a step of a workflow run (``POST /v1/conversation/{id}/step``).
16924
17314
  *
16925
- * ``complete`` finishes a form (``inputs`` merge into the run's inputs), an upload, or a review (the
16926
- * approval: whoever completes it is recorded). ``skip`` passes over a step so what waits for it can go on.
17315
+ * ``complete`` finishes a form (``inputs`` merge into the run's inputs), an upload (``documents``: the files
17316
+ * added; without them, the files the person added while the step waited), a review (the approval: whoever
17317
+ * completes it is recorded, with what it approved), or an email draft step (the email was sent). A step that
17318
+ * declares ``fields`` checks ``inputs`` against them. ``skip`` passes over a step so what waits for it can go on.
17319
+ * ``send_back`` returns the work to an earlier step (``to``, default the one this step waits for) with an
17320
+ * optional ``note``: that step and everything after it are open again, and an agent step runs again with the
17321
+ * note. ``decline`` is a signer refusing a signature step (with an optional ``note``): the step fails.
16927
17322
  */
16928
17323
  StepActionRequest: {
16929
17324
  /** Step */
@@ -16932,22 +17327,147 @@ interface components {
16932
17327
  * Action
16933
17328
  * @enum {string}
16934
17329
  */
16935
- action: 'complete' | 'skip';
17330
+ action: 'complete' | 'skip' | 'send_back' | 'decline';
16936
17331
  /** Inputs */
16937
17332
  inputs?: {
16938
17333
  [key: string]: unknown;
16939
17334
  } | null;
17335
+ /** To */
17336
+ to?: string | null;
17337
+ /** Note */
17338
+ note?: string | null;
17339
+ /** Documents */
17340
+ documents?: string[] | null;
16940
17341
  };
16941
17342
  /**
16942
- * StepUsage
16943
- * @description Per-step token usage from a single LLM call.
17343
+ * StepAssignee
17344
+ * @description Who a step is for: told when it is ready (and when it is sent back), and the only person besides the run's
17345
+ * owner and a workspace owner who may complete it or send it back. Exactly one shape is set:
17346
+ *
17347
+ * - ``user``: a person (``usr-``) or an agent (``agt-``), by external id;
17348
+ * - ``run_owner``: the run's owner (the conversation's creator);
17349
+ * - ``input``: the person named by one of the run's inputs (a form's person field), read when the step is ready;
17350
+ * - ``project_lead``: the lead (``lead_user``) of the project the run's workspace belongs to, read when the step
17351
+ * is ready. A project without a lead names no one.
17352
+ *
17353
+ * No assignee means the run's owner hears of it, and any editor may act on it (as before).
16944
17354
  */
16945
- StepUsage: {
16946
- /**
16947
- * Input Tokens
16948
- * @description Prompt tokens for this step
16949
- */
16950
- input_tokens: number;
17355
+ StepAssignee: {
17356
+ /** User */
17357
+ user?: string | null;
17358
+ /** Run Owner */
17359
+ run_owner?: true | null;
17360
+ /** Input */
17361
+ input?: string | null;
17362
+ /** Project Lead */
17363
+ project_lead?: true | null;
17364
+ };
17365
+ /**
17366
+ * StepDocumentRef
17367
+ * @description A document a step works on, named by where it comes from. Exactly one shape is set:
17368
+ *
17369
+ * - ``step``: the document(s) an earlier step produced or was given (an upload step's files, an agent step's
17370
+ * drafts, a signature step's signed copy, a document edit step's new version);
17371
+ * - ``input``: the document(s) one of the run's inputs names (a document pick, or a ``doc-`` id).
17372
+ *
17373
+ * A plain ``doc-`` id (optionally ``@v{n}``) names one document directly.
17374
+ */
17375
+ StepDocumentRef: {
17376
+ /** Step */
17377
+ step?: string | null;
17378
+ /** Input */
17379
+ input?: string | null;
17380
+ };
17381
+ /**
17382
+ * StepField
17383
+ * @description One field a step asks for (the shape of a form step's fields): what ``complete`` checks its ``inputs``
17384
+ * against. Keys a client only shows (``description``, ``placeholder``, ``trueText``, ...) pass through.
17385
+ * A ``person`` field holds a person's external id (``usr-``/``agt-``), which an ``{input: name}`` assignee reads.
17386
+ */
17387
+ StepField: {
17388
+ /** Name */
17389
+ name: string;
17390
+ /**
17391
+ * Type
17392
+ * @default text
17393
+ * @enum {string}
17394
+ */
17395
+ type: 'text' | 'longtext' | 'boolean' | 'select' | 'number' | 'date' | 'scope' | 'documents' | 'person';
17396
+ /** Label */
17397
+ label?: string | null;
17398
+ /**
17399
+ * Required
17400
+ * @default false
17401
+ */
17402
+ required: boolean;
17403
+ /** Options */
17404
+ options?: components['schemas']['StepFieldOption'][] | null;
17405
+ /** Min */
17406
+ min?: number | null;
17407
+ /** Max */
17408
+ max?: number | null;
17409
+ } & {
17410
+ [key: string]: unknown;
17411
+ };
17412
+ /**
17413
+ * StepFieldOption
17414
+ * @description One choice of a ``select`` field. Other keys a client shows (``description``, ``icon``, ...) pass through.
17415
+ */
17416
+ StepFieldOption: {
17417
+ /** Value */
17418
+ value: string;
17419
+ /** Label */
17420
+ label?: string | null;
17421
+ } & {
17422
+ [key: string]: unknown;
17423
+ };
17424
+ /**
17425
+ * StepSignal
17426
+ * @description A named signal a step raises when it is done and its condition holds (``src/core/workflow_signals.py``).
17427
+ *
17428
+ * Raising it records a ``step_signal`` event on the thread and sends the run's owner a ``workflow_signal``
17429
+ * notification, which an event workflow (``event_kind="workflow_signal"``, ``event_filter={"signal": name}``)
17430
+ * starts on: the "then" of an if/then lives in that link, not in the workflow.
17431
+ */
17432
+ StepSignal: {
17433
+ /** Name */
17434
+ name: string;
17435
+ when?: components['schemas']['StepSignalWhen'] | null;
17436
+ };
17437
+ /**
17438
+ * StepSignalWhen
17439
+ * @description The condition a step's outcome must meet for its signal to be raised. Exactly one shape is set:
17440
+ *
17441
+ * - a **form** (or upload) step: ``field`` equals ``equals`` (case-insensitive text; a list field
17442
+ * contains it);
17443
+ * - an **agent** step: its answer ``contains`` a phrase (case-insensitive), or ``matches`` a regex;
17444
+ * - a **review** step: ``approved`` (completed, not skipped).
17445
+ *
17446
+ * No condition at all (``when`` omitted) raises the signal whenever the step is done. This is plaintext
17447
+ * configuration like the step's ``prompt``; the answer it is tested against is never stored.
17448
+ */
17449
+ StepSignalWhen: {
17450
+ /** Field */
17451
+ field?: string | null;
17452
+ /** Equals */
17453
+ equals?: string | number | boolean | null;
17454
+ /** Contains */
17455
+ contains?: string | null;
17456
+ /** Matches */
17457
+ matches?: string | null;
17458
+ /** Approved */
17459
+ approved?: boolean | null;
17460
+ };
17461
+ /**
17462
+ * StepUsage
17463
+ * @description Per-step token usage from a single LLM call.
17464
+ */
17465
+ StepUsage: {
17466
+ /**
17467
+ * Input Tokens
17468
+ * @description Prompt tokens for this step
17469
+ */
17470
+ input_tokens: number;
16951
17471
  /**
16952
17472
  * Output Tokens
16953
17473
  * @description Completion tokens for this step
@@ -17180,6 +17700,32 @@ interface components {
17180
17700
  /** Row Height */
17181
17701
  row_height?: number | null;
17182
17702
  };
17703
+ /**
17704
+ * TabularReviewAction
17705
+ * @description Run AI review columns (tags with instructions) over documents: the annotation job of a Tabular Review. The
17706
+ * step is done when the job has finished; its output names the tags and documents, so a client opens the grid.
17707
+ * ``documents`` is a list of references, ``run_uploads`` (every file the run's upload steps took) or
17708
+ * ``workspace`` (every processed document in the workspace).
17709
+ */
17710
+ TabularReviewAction: {
17711
+ /**
17712
+ * @description discriminator enum property added by openapi-typescript
17713
+ * @enum {string}
17714
+ */
17715
+ type: 'tabular_review';
17716
+ /** Tags */
17717
+ tags: string[];
17718
+ /**
17719
+ * Documents
17720
+ * @default run_uploads
17721
+ */
17722
+ documents: (string | components['schemas']['StepDocumentRef'])[] | ('run_uploads' | 'workspace');
17723
+ /**
17724
+ * Overwrite
17725
+ * @default false
17726
+ */
17727
+ overwrite: boolean;
17728
+ };
17183
17729
  /**
17184
17730
  * TagBreakdown
17185
17731
  * @description Spend/token breakdown keyed by tag value (e.g. wrk-xxx, usr-xxx).
@@ -17201,6 +17747,25 @@ interface components {
17201
17747
  */
17202
17748
  requests: number;
17203
17749
  };
17750
+ /**
17751
+ * TagField
17752
+ * @description A field a tag has — its own, or inherited from an ancestor (``tag_ext_id`` says which tag defines it).
17753
+ */
17754
+ TagField: {
17755
+ /** Id */
17756
+ id: string;
17757
+ /** Name */
17758
+ name: string;
17759
+ /**
17760
+ * Type
17761
+ * @enum {string}
17762
+ */
17763
+ type: 'text' | 'number' | 'date' | 'checkbox' | 'select' | 'person';
17764
+ /** Options */
17765
+ options?: string[] | null;
17766
+ /** Tag Ext Id */
17767
+ tag_ext_id: string;
17768
+ };
17204
17769
  /**
17205
17770
  * TagFormat
17206
17771
  * @description Tag format configuration stored as JSONB.
@@ -17223,6 +17788,74 @@ interface components {
17223
17788
  */
17224
17789
  options: string[];
17225
17790
  };
17791
+ /**
17792
+ * TagMatrixDocLink
17793
+ * @description A document a matrix tag is applied to: the doctag's note is the link's value.
17794
+ */
17795
+ TagMatrixDocLink: {
17796
+ /** Doc Ext Id */
17797
+ doc_ext_id: string;
17798
+ /** File Name */
17799
+ file_name: string;
17800
+ /** Note */
17801
+ note?: string | null;
17802
+ /**
17803
+ * Citations Count
17804
+ * @default 0
17805
+ */
17806
+ citations_count: number;
17807
+ /**
17808
+ * Updated At
17809
+ * Format: date-time
17810
+ */
17811
+ updated_at: string;
17812
+ };
17813
+ /**
17814
+ * TagMatrixFactLink
17815
+ * @description A fact carrying a matrix tag. A plain link: the fact is relevant to the tag's category.
17816
+ */
17817
+ TagMatrixFactLink: {
17818
+ /** Fact Ext Id */
17819
+ fact_ext_id: string;
17820
+ /** Text */
17821
+ text: string;
17822
+ /** Confirmed */
17823
+ confirmed: boolean;
17824
+ /**
17825
+ * Updated At
17826
+ * Format: date-time
17827
+ */
17828
+ updated_at: string;
17829
+ };
17830
+ /** TagMatrixResponse */
17831
+ TagMatrixResponse: {
17832
+ /** Rows */
17833
+ rows?: components['schemas']['TagMatrixRow'][];
17834
+ parent?: components['schemas']['TagResponse'] | null;
17835
+ /** Links Limit */
17836
+ links_limit: number;
17837
+ };
17838
+ /**
17839
+ * TagMatrixRow
17840
+ * @description One tag of the matrix with its evidence. ``docs``/``facts`` are capped; the counts are the totals.
17841
+ */
17842
+ TagMatrixRow: {
17843
+ tag: components['schemas']['TagResponse'];
17844
+ /** Docs */
17845
+ docs?: components['schemas']['TagMatrixDocLink'][];
17846
+ /** Facts */
17847
+ facts?: components['schemas']['TagMatrixFactLink'][];
17848
+ /**
17849
+ * Doc Count
17850
+ * @default 0
17851
+ */
17852
+ doc_count: number;
17853
+ /**
17854
+ * Fact Count
17855
+ * @default 0
17856
+ */
17857
+ fact_count: number;
17858
+ };
17226
17859
  /** TagResponse */
17227
17860
  TagResponse: {
17228
17861
  /** External Id */
@@ -17245,6 +17878,12 @@ interface components {
17245
17878
  * @default 0
17246
17879
  */
17247
17880
  facttag_count: number;
17881
+ /** Fields */
17882
+ fields?: components['schemas']['TagField'][];
17883
+ /** Field Values */
17884
+ field_values?: {
17885
+ [key: string]: unknown;
17886
+ };
17248
17887
  /** Created By Ext Id */
17249
17888
  created_by_ext_id: string;
17250
17889
  /** Updated By Ext Id */
@@ -17351,6 +17990,9 @@ interface components {
17351
17990
  * ``form`` / ``upload`` / ``review`` steps wait for a person; an ``agent`` step is a turn the assistant
17352
17991
  * takes in the thread, running a ``skill`` (with ``inputs`` templated from the run's inputs) or a
17353
17992
  * ``prompt`` template. A ``branch`` agent step runs off the main line and delivers only its result to it.
17993
+ * An agent step with ``edit_document`` edits that DOCX with tracked changes and saves it as a new version.
17994
+ * An ``action`` step uses a platform feature (``action``: e-signing, a mail draft, a tabular review): see
17995
+ * ``src/core/workflow_actions.py``.
17354
17996
  * The structure is plaintext (the scheduler reads it to start each step, like ``Convos.prompt``); the
17355
17997
  * ``title`` is encrypted on the conversation. ``ui`` carries what a client shows (form fields, icon).
17356
17998
  */
@@ -17363,7 +18005,7 @@ interface components {
17363
18005
  * Kind
17364
18006
  * @enum {string}
17365
18007
  */
17366
- kind: 'form' | 'upload' | 'agent' | 'review';
18008
+ kind: 'form' | 'upload' | 'agent' | 'review' | 'action';
17367
18009
  /** After */
17368
18010
  after?: string[] | null;
17369
18011
  /** Skill */
@@ -17388,6 +18030,17 @@ interface components {
17388
18030
  ui?: {
17389
18031
  [key: string]: unknown;
17390
18032
  } | null;
18033
+ /** Signals */
18034
+ signals?: components['schemas']['StepSignal'][];
18035
+ assignee?: components['schemas']['StepAssignee'] | null;
18036
+ /** Remind After Hours */
18037
+ remind_after_hours?: number | null;
18038
+ /** Fields */
18039
+ fields?: components['schemas']['StepField'][] | null;
18040
+ /** Action */
18041
+ action?: (components['schemas']['SignAction'] | components['schemas']['EmailDraftAction'] | components['schemas']['TabularReviewAction']) | null;
18042
+ /** Edit Document */
18043
+ edit_document?: string | components['schemas']['StepDocumentRef'] | null;
17391
18044
  };
17392
18045
  /**
17393
18046
  * TaskUpdateMessage
@@ -18032,6 +18685,18 @@ interface components {
18032
18685
  * @description Parent tag external ID. Send null to un-nest the tag; omit to leave the parent unchanged.
18033
18686
  */
18034
18687
  parent_ext_id?: string | null;
18688
+ /**
18689
+ * Fields
18690
+ * @description The tag's own fields, in full: give a field's id to keep it (its type cannot change), omit the id to add one; fields left out are dropped. Inherited fields are changed on the tag that defines them.
18691
+ */
18692
+ fields?: components['schemas']['FieldDefinitionWrite'][] | null;
18693
+ /**
18694
+ * Field Values
18695
+ * @description Merged into the current values, keyed by field id or name; null clears a field.
18696
+ */
18697
+ field_values?: {
18698
+ [key: string]: unknown;
18699
+ } | null;
18035
18700
  };
18036
18701
  /**
18037
18702
  * UpdateWorkflowRequest
@@ -18313,7 +18978,7 @@ interface components {
18313
18978
  content: string;
18314
18979
  /** Tools */
18315
18980
  tools?: {
18316
- [key: string]: components['schemas']['ModelCitationTool'] | components['schemas']['RetrievalChunkTool'] | components['schemas']['RetrievalFullContextTool'] | components['schemas']['RetrievalTOCTool'] | components['schemas']['TraceTool'] | components['schemas']['CompactionTool'] | components['schemas']['PersonalAgentTool'] | components['schemas']['StreamEventsTool'] | components['schemas']['MemoryTool'] | components['schemas']['GoalTool'] | components['schemas']['FactsContextTool'] | components['schemas']['ImageGenerationTool'] | components['schemas']['SubagentTool'];
18981
+ [key: string]: components['schemas']['ModelCitationTool'] | components['schemas']['RetrievalChunkTool'] | components['schemas']['RetrievalFullContextTool'] | components['schemas']['RetrievalTOCTool'] | components['schemas']['TraceTool'] | components['schemas']['CompactionTool'] | components['schemas']['PersonalAgentTool'] | components['schemas']['StreamEventsTool'] | components['schemas']['MemoryTool'] | components['schemas']['GoalTool'] | components['schemas']['FactsContextTool'] | components['schemas']['ImageGenerationTool'] | components['schemas']['SubagentTool'] | components['schemas']['WorkflowStepTool'];
18317
18982
  };
18318
18983
  /** Config Ext Id */
18319
18984
  config_ext_id?: string | null;
@@ -18979,6 +19644,26 @@ interface components {
18979
19644
  /** Error */
18980
19645
  error?: string | null;
18981
19646
  };
19647
+ /**
19648
+ * WorkflowStepTool
19649
+ * @description Marks the user message the server sends to start a workflow's agent step (its wake instruction) with the
19650
+ * step it belongs to, so a client can show it as that step rather than as the raw instruction. Plaintext: the step
19651
+ * id only (the step's title stays encrypted in the conversation's plan).
19652
+ */
19653
+ WorkflowStepTool: {
19654
+ /**
19655
+ * @description discriminator enum property added by openapi-typescript
19656
+ * @enum {string}
19657
+ */
19658
+ name: 'workflow_step';
19659
+ /**
19660
+ * Description
19661
+ * @default workflow step
19662
+ */
19663
+ description: string;
19664
+ /** Workflow Step */
19665
+ workflow_step: string;
19666
+ };
18982
19667
  /**
18983
19668
  * WorkingHours
18984
19669
  * @description Working hours for one weekday (0 = Monday). Times are local ``HH:MM`` in the settings time zone.
@@ -19281,7 +19966,12 @@ type $defs = Record<string, never>;
19281
19966
  interface operations {
19282
19967
  list_projects: {
19283
19968
  parameters: {
19284
- query?: never;
19969
+ query?: {
19970
+ /** @description Only projects at this stage */
19971
+ stage?: string | null;
19972
+ /** @description Only projects led by this member */
19973
+ lead_user?: string | null;
19974
+ };
19285
19975
  header?: never;
19286
19976
  path?: never;
19287
19977
  cookie?: never;
@@ -19297,6 +19987,15 @@ interface operations {
19297
19987
  'application/json': components['schemas']['ProjectResponse'][];
19298
19988
  };
19299
19989
  };
19990
+ /** @description Validation Error */
19991
+ 422: {
19992
+ headers: {
19993
+ [name: string]: unknown;
19994
+ };
19995
+ content: {
19996
+ 'application/json': components['schemas']['HTTPValidationError'];
19997
+ };
19998
+ };
19300
19999
  };
19301
20000
  };
19302
20001
  create_project: {
@@ -19427,6 +20126,40 @@ interface operations {
19427
20126
  };
19428
20127
  };
19429
20128
  };
20129
+ list_project_events: {
20130
+ parameters: {
20131
+ query?: {
20132
+ kind?: ('stage_changed' | 'budget_changed') | null;
20133
+ limit?: number;
20134
+ };
20135
+ header?: never;
20136
+ path: {
20137
+ project_ext_id: string;
20138
+ };
20139
+ cookie?: never;
20140
+ };
20141
+ requestBody?: never;
20142
+ responses: {
20143
+ /** @description Successful Response */
20144
+ 200: {
20145
+ headers: {
20146
+ [name: string]: unknown;
20147
+ };
20148
+ content: {
20149
+ 'application/json': components['schemas']['ProjectEventResponse'][];
20150
+ };
20151
+ };
20152
+ /** @description Validation Error */
20153
+ 422: {
20154
+ headers: {
20155
+ [name: string]: unknown;
20156
+ };
20157
+ content: {
20158
+ 'application/json': components['schemas']['HTTPValidationError'];
20159
+ };
20160
+ };
20161
+ };
20162
+ };
19430
20163
  quote_project_plan: {
19431
20164
  parameters: {
19432
20165
  query?: never;
@@ -19634,6 +20367,40 @@ interface operations {
19634
20367
  };
19635
20368
  };
19636
20369
  };
20370
+ get_project_conversation_usage: {
20371
+ parameters: {
20372
+ query?: {
20373
+ /** @description 0 = current billing period, 1 = previous month, etc. */
20374
+ months_back?: number;
20375
+ };
20376
+ header?: never;
20377
+ path: {
20378
+ project_ext_id: string;
20379
+ };
20380
+ cookie?: never;
20381
+ };
20382
+ requestBody?: never;
20383
+ responses: {
20384
+ /** @description Successful Response */
20385
+ 200: {
20386
+ headers: {
20387
+ [name: string]: unknown;
20388
+ };
20389
+ content: {
20390
+ 'application/json': components['schemas']['ProjectConversationUsageResponse'];
20391
+ };
20392
+ };
20393
+ /** @description Validation Error */
20394
+ 422: {
20395
+ headers: {
20396
+ [name: string]: unknown;
20397
+ };
20398
+ content: {
20399
+ 'application/json': components['schemas']['HTTPValidationError'];
20400
+ };
20401
+ };
20402
+ };
20403
+ };
19637
20404
  get_project_invoices: {
19638
20405
  parameters: {
19639
20406
  query?: never;
@@ -22871,6 +23638,37 @@ interface operations {
22871
23638
  };
22872
23639
  };
22873
23640
  };
23641
+ get_conversation_usage: {
23642
+ parameters: {
23643
+ query?: never;
23644
+ header?: never;
23645
+ path: {
23646
+ conversation_ext_id: string;
23647
+ };
23648
+ cookie?: never;
23649
+ };
23650
+ requestBody?: never;
23651
+ responses: {
23652
+ /** @description Successful Response */
23653
+ 200: {
23654
+ headers: {
23655
+ [name: string]: unknown;
23656
+ };
23657
+ content: {
23658
+ 'application/json': components['schemas']['ConversationUsageResponse'];
23659
+ };
23660
+ };
23661
+ /** @description Validation Error */
23662
+ 422: {
23663
+ headers: {
23664
+ [name: string]: unknown;
23665
+ };
23666
+ content: {
23667
+ 'application/json': components['schemas']['HTTPValidationError'];
23668
+ };
23669
+ };
23670
+ };
23671
+ };
22874
23672
  search_conversations: {
22875
23673
  parameters: {
22876
23674
  query?: never;
@@ -23677,6 +24475,42 @@ interface operations {
23677
24475
  };
23678
24476
  };
23679
24477
  };
24478
+ get_tag_matrix: {
24479
+ parameters: {
24480
+ query?: {
24481
+ /** @description Rows are this tag's children, oldest first */
24482
+ parent_ext_id?: string | null;
24483
+ /** @description Rows are these tags, in this order (repeatable) */
24484
+ tag_ext_id?: string[] | null;
24485
+ /** @description Most documents and facts per row */
24486
+ links_limit?: number;
24487
+ };
24488
+ header?: never;
24489
+ path?: never;
24490
+ cookie?: never;
24491
+ };
24492
+ requestBody?: never;
24493
+ responses: {
24494
+ /** @description Successful Response */
24495
+ 200: {
24496
+ headers: {
24497
+ [name: string]: unknown;
24498
+ };
24499
+ content: {
24500
+ 'application/json': components['schemas']['TagMatrixResponse'];
24501
+ };
24502
+ };
24503
+ /** @description Validation Error */
24504
+ 422: {
24505
+ headers: {
24506
+ [name: string]: unknown;
24507
+ };
24508
+ content: {
24509
+ 'application/json': components['schemas']['HTTPValidationError'];
24510
+ };
24511
+ };
24512
+ };
24513
+ };
23680
24514
  create_tag: {
23681
24515
  parameters: {
23682
24516
  query?: never;