@exayard/sdk 0.3.0 → 0.3.2

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.
@@ -13,8 +13,8 @@ exports.OPERATIONS = {
13
13
  body: true,
14
14
  response: 'json',
15
15
  params: [
16
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex takeoff symbol ID' },
17
- { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Convex project ID' },
16
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Takeoff symbol id: the id the API returns for a takeoff symbol (a string of 32 lowercase letters and digits).' },
17
+ { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
18
18
  { name: 'lineItem', in: 'body', required: true, kind: 'object' }
19
19
  ]
20
20
  },
@@ -26,8 +26,8 @@ exports.OPERATIONS = {
26
26
  body: false,
27
27
  response: 'empty',
28
28
  params: [
29
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex conversation ID' },
30
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
29
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Conversation id: the id the API returns for a conversation (a string of 32 lowercase letters and digits).' },
30
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
31
31
  ]
32
32
  },
33
33
  archive_labor_crew: {
@@ -39,7 +39,7 @@ exports.OPERATIONS = {
39
39
  response: 'empty',
40
40
  params: [
41
41
  { name: 'id', in: 'path', required: true, kind: 'string' },
42
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
42
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
43
43
  ]
44
44
  },
45
45
  archive_labor_equipment: {
@@ -51,7 +51,7 @@ exports.OPERATIONS = {
51
51
  response: 'empty',
52
52
  params: [
53
53
  { name: 'id', in: 'path', required: true, kind: 'string' },
54
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
54
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
55
55
  ]
56
56
  },
57
57
  archive_labor_rate: {
@@ -63,7 +63,7 @@ exports.OPERATIONS = {
63
63
  response: 'empty',
64
64
  params: [
65
65
  { name: 'id', in: 'path', required: true, kind: 'string' },
66
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
66
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
67
67
  ]
68
68
  },
69
69
  archive_list: {
@@ -74,8 +74,8 @@ exports.OPERATIONS = {
74
74
  body: false,
75
75
  response: 'empty',
76
76
  params: [
77
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex product list ID' },
78
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
77
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Product list id: the id the API returns for a product list (a string of 32 lowercase letters and digits).' },
78
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
79
79
  ]
80
80
  },
81
81
  archive_page: {
@@ -86,7 +86,7 @@ exports.OPERATIONS = {
86
86
  body: false,
87
87
  response: 'empty',
88
88
  params: [
89
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex page ID' }
89
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Page id: the id the API returns for a page (a string of 32 lowercase letters and digits).' }
90
90
  ]
91
91
  },
92
92
  archive_product: {
@@ -97,8 +97,8 @@ exports.OPERATIONS = {
97
97
  body: false,
98
98
  response: 'empty',
99
99
  params: [
100
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex product ID' },
101
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
100
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Product id: the id the API returns for a product (a string of 32 lowercase letters and digits).' },
101
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
102
102
  ]
103
103
  },
104
104
  archive_project: {
@@ -109,8 +109,8 @@ exports.OPERATIONS = {
109
109
  body: false,
110
110
  response: 'empty',
111
111
  params: [
112
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
113
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
112
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
113
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
114
114
  ]
115
115
  },
116
116
  archive_vendor: {
@@ -121,8 +121,8 @@ exports.OPERATIONS = {
121
121
  body: false,
122
122
  response: 'empty',
123
123
  params: [
124
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex vendor ID' },
125
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
124
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Vendor id: the id the API returns for a vendor (a string of 32 lowercase letters and digits).' },
125
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
126
126
  ]
127
127
  },
128
128
  attach_file_to_project: {
@@ -133,9 +133,9 @@ exports.OPERATIONS = {
133
133
  body: true,
134
134
  response: 'empty',
135
135
  params: [
136
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
137
- { name: 'fileId', in: 'path', required: true, kind: 'string', description: 'Convex file ID' },
138
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
136
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
137
+ { name: 'fileId', in: 'path', required: true, kind: 'string', description: 'File id: the id the API returns for a file (a string of 32 lowercase letters and digits).' },
138
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
139
139
  ]
140
140
  },
141
141
  batch_create_products: {
@@ -146,8 +146,8 @@ exports.OPERATIONS = {
146
146
  body: true,
147
147
  response: 'json',
148
148
  params: [
149
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
150
- { name: 'listId', in: 'body', required: true, kind: 'string', description: 'Convex product list ID' },
149
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
150
+ { name: 'listId', in: 'body', required: true, kind: 'string', description: 'Product list id: the id the API returns for a product list (a string of 32 lowercase letters and digits).' },
151
151
  { name: 'products', in: 'body', required: true, kind: 'array' }
152
152
  ]
153
153
  },
@@ -159,8 +159,8 @@ exports.OPERATIONS = {
159
159
  body: true,
160
160
  response: 'empty',
161
161
  params: [
162
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex takeoff assessment ID' },
163
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
162
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Takeoff assessment id: the id the API returns for a takeoff assessment (a string of 32 lowercase letters and digits).' },
163
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
164
164
  ]
165
165
  },
166
166
  confirm_file_upload: {
@@ -172,7 +172,7 @@ exports.OPERATIONS = {
172
172
  body: true,
173
173
  response: 'json',
174
174
  params: [
175
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex file ID' },
175
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'File id: the id the API returns for a file (a string of 32 lowercase letters and digits).' },
176
176
  { name: 'r2Key', in: 'body', required: true, kind: 'string' }
177
177
  ]
178
178
  },
@@ -185,8 +185,8 @@ exports.OPERATIONS = {
185
185
  body: true,
186
186
  response: 'json',
187
187
  params: [
188
- { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Convex project ID' },
189
- { name: 'pageId', in: 'body', required: true, kind: 'string', description: 'Convex page ID the agent will operate on.' },
188
+ { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
189
+ { name: 'pageId', in: 'body', required: true, kind: 'string', description: 'Id of the page the agent will operate on.' },
190
190
  { name: 'vendor', in: 'body', required: true, kind: 'string', enum: ['claude', 'openai', 'gemini'] }
191
191
  ]
192
192
  },
@@ -199,8 +199,8 @@ exports.OPERATIONS = {
199
199
  body: true,
200
200
  response: 'json',
201
201
  params: [
202
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
203
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
202
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
203
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
204
204
  { name: 'conversationId', in: 'body', required: false, kind: 'string' },
205
205
  { name: 'fileIds', in: 'body', required: false, kind: 'array' },
206
206
  { name: 'pageIds', in: 'body', required: false, kind: 'array' },
@@ -217,10 +217,10 @@ exports.OPERATIONS = {
217
217
  body: true,
218
218
  response: 'json',
219
219
  params: [
220
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
221
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
220
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
221
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
222
222
  { name: 'notes', in: 'body', required: false, kind: 'string', description: 'Additional context appended to the prompt' },
223
- { name: 'measurementContext', in: 'body', required: false, kind: 'string', description: 'Pre-serialized takeoff measurements + line items (markdown). If omitted, the endpoint auto-loads the project takeoff from Convex and serializes it server-side.' },
223
+ { name: 'measurementContext', in: 'body', required: false, kind: 'string', description: 'Pre-serialized takeoff measurements + line items (markdown). If omitted, the endpoint loads the project takeoff itself and serializes it on the server.' },
224
224
  { name: 'ignoreMissingVariables', in: 'body', required: false, kind: 'boolean', description: 'When auto-loading takeoff data, skip line items with missing formula variables instead of failing with 422. Ignored if measurementContext is provided.' },
225
225
  { name: 'share', in: 'body', required: false, kind: 'boolean', description: 'Publish the saved bid on a public link that anyone holding the URL can read. Defaults to false — the document stays private to your organization and documentUrl points at the signed-in path. Set true only when the customer asked for a shareable link; you can also share or unshare later via PATCH /v1/documents/{id}/share.' }
226
226
  ]
@@ -233,8 +233,8 @@ exports.OPERATIONS = {
233
233
  body: true,
234
234
  response: 'json',
235
235
  params: [
236
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
237
- { name: 'projectId', in: 'body', required: false, kind: 'string', description: 'Convex project ID' },
236
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
237
+ { name: 'projectId', in: 'body', required: false, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
238
238
  { name: 'title', in: 'body', required: false, kind: 'string' },
239
239
  { name: 'type', in: 'body', required: false, kind: 'string', enum: ['ai_chat', 'project_activity'] },
240
240
  { name: 'model', in: 'body', required: false, kind: 'string' },
@@ -249,7 +249,7 @@ exports.OPERATIONS = {
249
249
  body: true,
250
250
  response: 'json',
251
251
  params: [
252
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
252
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
253
253
  { name: 'name', in: 'body', required: true, kind: 'string' },
254
254
  { name: 'type', in: 'body', required: true, kind: 'string', enum: ['text', 'textarea', 'number', 'date', 'checkbox', 'multiCheckbox', 'select', 'url', 'email', 'phone', 'currency', 'percentage'] },
255
255
  { name: 'recordTypes', in: 'body', required: true, kind: 'array' },
@@ -266,8 +266,8 @@ exports.OPERATIONS = {
266
266
  body: true,
267
267
  response: 'json',
268
268
  params: [
269
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
270
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
269
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
270
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
271
271
  { name: 'query', in: 'body', required: true, kind: 'string', description: 'Natural-language prompt describing the scope of the estimate' },
272
272
  { name: 'notes', in: 'body', required: false, kind: 'string', description: 'Additional notes appended to the prompt' },
273
273
  { name: 'measurementContext', in: 'body', required: false, kind: 'string', description: 'Pre-serialized takeoff data to ground the estimator (see GET /v1/projects/{id}/takeoff-summary)' },
@@ -282,9 +282,9 @@ exports.OPERATIONS = {
282
282
  body: true,
283
283
  response: 'json',
284
284
  params: [
285
- { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Convex project ID' },
285
+ { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
286
286
  { name: 'name', in: 'body', required: true, kind: 'string' },
287
- { name: 'parentId', in: 'body', required: true, kind: 'string', description: 'Convex folder ID' }
287
+ { name: 'parentId', in: 'body', required: true, kind: 'string', description: 'Folder id: the id the API returns for a folder (a string of 32 lowercase letters and digits).' }
288
288
  ]
289
289
  },
290
290
  create_group: {
@@ -295,9 +295,9 @@ exports.OPERATIONS = {
295
295
  body: true,
296
296
  response: 'json',
297
297
  params: [
298
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
298
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
299
299
  { name: 'name', in: 'body', required: true, kind: 'string' },
300
- { name: 'parentId', in: 'body', required: false, kind: 'string', description: 'Convex takeoff group ID' }
300
+ { name: 'parentId', in: 'body', required: false, kind: 'string', description: 'Takeoff group id: the id the API returns for a takeoff group (a string of 32 lowercase letters and digits).' }
301
301
  ]
302
302
  },
303
303
  create_labor_crew: {
@@ -308,7 +308,7 @@ exports.OPERATIONS = {
308
308
  body: true,
309
309
  response: 'json',
310
310
  params: [
311
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
311
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
312
312
  { name: 'name', in: 'body', required: true, kind: 'string' },
313
313
  { name: 'description', in: 'body', required: false, kind: 'string' },
314
314
  { name: 'members', in: 'body', required: true, kind: 'array' },
@@ -324,7 +324,7 @@ exports.OPERATIONS = {
324
324
  body: true,
325
325
  response: 'json',
326
326
  params: [
327
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
327
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
328
328
  { name: 'name', in: 'body', required: true, kind: 'string' },
329
329
  { name: 'description', in: 'body', required: false, kind: 'string' },
330
330
  { name: 'category', in: 'body', required: true, kind: 'string' },
@@ -342,7 +342,7 @@ exports.OPERATIONS = {
342
342
  body: true,
343
343
  response: 'json',
344
344
  params: [
345
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
345
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
346
346
  { name: 'name', in: 'body', required: true, kind: 'string' },
347
347
  { name: 'description', in: 'body', required: false, kind: 'string' },
348
348
  { name: 'hourlyRate', in: 'body', required: true, kind: 'number' },
@@ -360,7 +360,7 @@ exports.OPERATIONS = {
360
360
  body: true,
361
361
  response: 'json',
362
362
  params: [
363
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
363
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
364
364
  { name: 'name', in: 'body', required: true, kind: 'string' }
365
365
  ]
366
366
  },
@@ -372,7 +372,7 @@ exports.OPERATIONS = {
372
372
  body: true,
373
373
  response: 'json',
374
374
  params: [
375
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
375
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
376
376
  { name: 'name', in: 'body', required: true, kind: 'string' },
377
377
  { name: 'description', in: 'body', required: false, kind: 'string' },
378
378
  { name: 'type', in: 'body', required: true, kind: 'string', enum: ['product', 'takeoffTemplate'] },
@@ -389,13 +389,13 @@ exports.OPERATIONS = {
389
389
  body: true,
390
390
  response: 'json',
391
391
  params: [
392
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex page ID' },
393
- { name: 'symbolId', in: 'body', required: true, kind: 'string', description: 'Convex takeoff symbol ID' },
392
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Page id: the id the API returns for a page (a string of 32 lowercase letters and digits).' },
393
+ { name: 'symbolId', in: 'body', required: true, kind: 'string', description: 'Takeoff symbol id: the id the API returns for a takeoff symbol (a string of 32 lowercase letters and digits).' },
394
394
  { name: 'shapeId', in: 'body', required: true, kind: 'string', description: 'Canvas shape ID' },
395
395
  { name: 'value', in: 'body', required: true, kind: 'number', description: 'The measured quantity in RAW PAGE PIXELS — the same coordinate space as the geometry points, NEVER feet, metres, or any other real-world unit. Linear measurements are a length in px, areas are px², counts are a tally. Exayard converts to real units at display time using the page scale, so a real-world number sent here is converted a second time and reads wrong. When geometry is supplied the server measures it and rejects a value that disagrees by 10× or more, naming both numbers. To send a real-world quantity, convert it to page pixels first (multiply by the page\'s pixels-per-unit; square that factor for an area).' },
396
396
  { name: 'geometry', in: 'body', required: false, kind: 'object', description: 'Measurement geometry: { "points": [{ "x": number, "y": number, "bulge"?: number }, ...], "isClosed": boolean, "holes"?: Point[][], "pathD"?: string }. When geometry is provided, "points" and "isClosed" are required; other keys (e.g. { "length": 280.9 }) are rejected.' },
397
397
  { name: 'notes', in: 'body', required: false, kind: 'string' },
398
- { name: 'layerId', in: 'body', required: false, kind: 'string', description: 'Convex takeoff layer ID' }
398
+ { name: 'layerId', in: 'body', required: false, kind: 'string', description: 'Takeoff layer id: the id the API returns for a takeoff layer (a string of 32 lowercase letters and digits).' }
399
399
  ]
400
400
  },
401
401
  create_message: {
@@ -406,10 +406,10 @@ exports.OPERATIONS = {
406
406
  body: true,
407
407
  response: 'json',
408
408
  params: [
409
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
409
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
410
410
  { name: 'content', in: 'body', required: true, kind: 'string' },
411
- { name: 'parentMessageId', in: 'body', required: false, kind: 'string', description: 'Convex chat message ID' },
412
- { name: 'pageId', in: 'body', required: false, kind: 'string', description: 'Convex page ID' },
411
+ { name: 'parentMessageId', in: 'body', required: false, kind: 'string', description: 'Chat message id: the id the API returns for a chat message (a string of 32 lowercase letters and digits).' },
412
+ { name: 'pageId', in: 'body', required: false, kind: 'string', description: 'Page id: the id the API returns for a page (a string of 32 lowercase letters and digits).' },
413
413
  { name: 'location', in: 'body', required: false, kind: 'object' },
414
414
  { name: 'mentions', in: 'body', required: false, kind: 'array' }
415
415
  ]
@@ -436,8 +436,8 @@ exports.OPERATIONS = {
436
436
  body: true,
437
437
  response: 'json',
438
438
  params: [
439
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
440
- { name: 'listId', in: 'body', required: true, kind: 'string', description: 'Convex product list ID' },
439
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
440
+ { name: 'listId', in: 'body', required: true, kind: 'string', description: 'Product list id: the id the API returns for a product list (a string of 32 lowercase letters and digits).' },
441
441
  { name: 'name', in: 'body', required: false, kind: 'string' },
442
442
  { name: 'sku', in: 'body', required: false, kind: 'string' },
443
443
  { name: 'unitOfMeasure', in: 'body', required: false, kind: 'string' },
@@ -456,7 +456,7 @@ exports.OPERATIONS = {
456
456
  body: true,
457
457
  response: 'json',
458
458
  params: [
459
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
459
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
460
460
  { name: 'name', in: 'body', required: true, kind: 'string' },
461
461
  { name: 'customProperties', in: 'body', required: false, kind: 'object' }
462
462
  ]
@@ -469,15 +469,15 @@ exports.OPERATIONS = {
469
469
  body: true,
470
470
  response: 'json',
471
471
  params: [
472
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
472
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
473
473
  { name: 'isTemplate', in: 'body', required: false, kind: 'boolean' },
474
- { name: 'listId', in: 'body', required: false, kind: 'string', description: 'Convex product list ID' },
474
+ { name: 'listId', in: 'body', required: false, kind: 'string', description: 'Product list id: the id the API returns for a product list (a string of 32 lowercase letters and digits).' },
475
475
  { name: 'name', in: 'body', required: true, kind: 'string' },
476
476
  { name: 'type', in: 'body', required: true, kind: 'string', enum: ['count', 'linear', 'area'] },
477
477
  { name: 'color', in: 'body', required: true, kind: 'string' },
478
478
  { name: 'category', in: 'body', required: false, kind: 'string' },
479
479
  { name: 'subcategory', in: 'body', required: false, kind: 'string' },
480
- { name: 'groupId', in: 'body', required: false, kind: 'string', description: 'Convex takeoff group ID' },
480
+ { name: 'groupId', in: 'body', required: false, kind: 'string', description: 'Takeoff group id: the id the API returns for a takeoff group (a string of 32 lowercase letters and digits).' },
481
481
  { name: 'customProperties', in: 'body', required: false, kind: 'object' }
482
482
  ]
483
483
  },
@@ -489,7 +489,7 @@ exports.OPERATIONS = {
489
489
  body: true,
490
490
  response: 'json',
491
491
  params: [
492
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
492
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
493
493
  { name: 'name', in: 'body', required: true, kind: 'string' },
494
494
  { name: 'type', in: 'body', required: true, kind: 'string', enum: ['supplier', 'subcontractor', 'rental'] },
495
495
  { name: 'kind', in: 'body', required: false, kind: 'string', enum: ['sub', 'supplier', 'surety', 'insurer', 'agency', 'owner', 'architect', 'engineer', 'other', null] },
@@ -513,8 +513,8 @@ exports.OPERATIONS = {
513
513
  body: true,
514
514
  response: 'json',
515
515
  params: [
516
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
517
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
516
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
517
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
518
518
  { name: 'vendorId', in: 'body', required: true, kind: 'string' },
519
519
  { name: 'quoteNumber', in: 'body', required: true, kind: 'string' },
520
520
  { name: 'lineItems', in: 'body', required: false, kind: 'array' },
@@ -534,7 +534,7 @@ exports.OPERATIONS = {
534
534
  body: true,
535
535
  response: 'json',
536
536
  params: [
537
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
537
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
538
538
  { name: 'url', in: 'body', required: true, kind: 'string' },
539
539
  { name: 'events', in: 'body', required: true, kind: 'array' },
540
540
  { name: 'description', in: 'body', required: false, kind: 'string' }
@@ -548,7 +548,7 @@ exports.OPERATIONS = {
548
548
  body: true,
549
549
  response: 'json',
550
550
  params: [
551
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
551
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
552
552
  { name: 'name', in: 'body', required: true, kind: 'string' },
553
553
  { name: 'config', in: 'body', required: false, kind: 'object' }
554
554
  ]
@@ -573,7 +573,7 @@ exports.OPERATIONS = {
573
573
  response: 'empty',
574
574
  params: [
575
575
  { name: 'id', in: 'path', required: true, kind: 'string' },
576
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
576
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
577
577
  ]
578
578
  },
579
579
  disconnect_integration: {
@@ -585,7 +585,7 @@ exports.OPERATIONS = {
585
585
  response: 'empty',
586
586
  params: [
587
587
  { name: 'id', in: 'path', required: true, kind: 'string' },
588
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
588
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
589
589
  ]
590
590
  },
591
591
  export_project: {
@@ -596,8 +596,8 @@ exports.OPERATIONS = {
596
596
  body: false,
597
597
  response: 'json',
598
598
  params: [
599
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
600
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
599
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
600
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
601
601
  ]
602
602
  },
603
603
  find_symbol_elements: {
@@ -608,9 +608,9 @@ exports.OPERATIONS = {
608
608
  body: true,
609
609
  response: 'json',
610
610
  params: [
611
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex page ID' },
612
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
613
- { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Convex project ID' },
611
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Page id: the id the API returns for a page (a string of 32 lowercase letters and digits).' },
612
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
613
+ { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
614
614
  { name: 'elementDescription', in: 'body', required: true, kind: 'string', description: 'Natural-language description of what to find (e.g. "electrical outlets", "doors")' },
615
615
  { name: 'measurementType', in: 'body', required: true, kind: 'string', enum: ['count', 'linear', 'area'], description: 'How detections should be shaped (count marker / linear line / area rectangle)' },
616
616
  { name: 'persist', in: 'body', required: false, kind: 'boolean', description: 'When true, writes the detected shapes to the realtime canvas via the sync-worker. Returns persistedShapeIds on success.' }
@@ -624,8 +624,8 @@ exports.OPERATIONS = {
624
624
  body: true,
625
625
  response: 'stream',
626
626
  params: [
627
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
628
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
627
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
628
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
629
629
  { name: 'query', in: 'body', required: true, kind: 'string', description: 'Natural-language prompt describing the scope of the estimate' },
630
630
  { name: 'notes', in: 'body', required: false, kind: 'string', description: 'Additional notes appended to the prompt' },
631
631
  { name: 'measurementContext', in: 'body', required: false, kind: 'string', description: 'Pre-serialized takeoff data to ground the estimator (see GET /v1/projects/{id}/takeoff-summary)' }
@@ -639,7 +639,7 @@ exports.OPERATIONS = {
639
639
  body: false,
640
640
  response: 'json',
641
641
  params: [
642
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex takeoff assessment ID' }
642
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Takeoff assessment id: the id the API returns for a takeoff assessment (a string of 32 lowercase letters and digits).' }
643
643
  ]
644
644
  },
645
645
  get_best_price_for_product: {
@@ -650,8 +650,8 @@ exports.OPERATIONS = {
650
650
  body: false,
651
651
  response: 'json',
652
652
  params: [
653
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex product ID' },
654
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
653
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Product id: the id the API returns for a product (a string of 32 lowercase letters and digits).' },
654
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
655
655
  { name: 'quantity', in: 'query', required: false, kind: 'number' }
656
656
  ]
657
657
  },
@@ -663,8 +663,8 @@ exports.OPERATIONS = {
663
663
  body: false,
664
664
  response: 'json',
665
665
  params: [
666
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex contact ID' },
667
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
666
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Contact id: the id the API returns for a contact (a string of 32 lowercase letters and digits).' },
667
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
668
668
  ]
669
669
  },
670
670
  get_conversation: {
@@ -675,8 +675,8 @@ exports.OPERATIONS = {
675
675
  body: false,
676
676
  response: 'json',
677
677
  params: [
678
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex conversation ID' },
679
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
678
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Conversation id: the id the API returns for a conversation (a string of 32 lowercase letters and digits).' },
679
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
680
680
  ]
681
681
  },
682
682
  get_credit_balance: {
@@ -687,7 +687,7 @@ exports.OPERATIONS = {
687
687
  body: false,
688
688
  response: 'json',
689
689
  params: [
690
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
690
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
691
691
  ]
692
692
  },
693
693
  get_credit_usage_history: {
@@ -698,7 +698,7 @@ exports.OPERATIONS = {
698
698
  body: false,
699
699
  response: 'json',
700
700
  params: [
701
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
701
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
702
702
  { name: 'limit', in: 'query', required: false, kind: 'integer' },
703
703
  { name: 'cursor', in: 'query', required: false, kind: 'number' },
704
704
  { name: 'dateFrom', in: 'query', required: false, kind: 'number' },
@@ -715,7 +715,7 @@ exports.OPERATIONS = {
715
715
  body: false,
716
716
  response: 'json',
717
717
  params: [
718
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
718
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
719
719
  { name: 'dateFrom', in: 'query', required: false, kind: 'number' },
720
720
  { name: 'dateTo', in: 'query', required: false, kind: 'number' }
721
721
  ]
@@ -728,8 +728,8 @@ exports.OPERATIONS = {
728
728
  body: false,
729
729
  response: 'json',
730
730
  params: [
731
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex custom property ID' },
732
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
731
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Custom property id: the id the API returns for a custom property (a string of 32 lowercase letters and digits).' },
732
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
733
733
  ]
734
734
  },
735
735
  get_document: {
@@ -740,8 +740,8 @@ exports.OPERATIONS = {
740
740
  body: false,
741
741
  response: 'json',
742
742
  params: [
743
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex document ID' },
744
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
743
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Document id: the id the API returns for a document (a string of 32 lowercase letters and digits).' },
744
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
745
745
  ]
746
746
  },
747
747
  get_file: {
@@ -752,8 +752,8 @@ exports.OPERATIONS = {
752
752
  body: false,
753
753
  response: 'json',
754
754
  params: [
755
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex file ID' },
756
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
755
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'File id: the id the API returns for a file (a string of 32 lowercase letters and digits).' },
756
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
757
757
  ]
758
758
  },
759
759
  get_file_url: {
@@ -764,8 +764,8 @@ exports.OPERATIONS = {
764
764
  body: false,
765
765
  response: 'json',
766
766
  params: [
767
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex file ID' },
768
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
767
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'File id: the id the API returns for a file (a string of 32 lowercase letters and digits).' },
768
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
769
769
  ]
770
770
  },
771
771
  get_folder: {
@@ -776,7 +776,7 @@ exports.OPERATIONS = {
776
776
  body: false,
777
777
  response: 'json',
778
778
  params: [
779
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex folder ID' }
779
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Folder id: the id the API returns for a folder (a string of 32 lowercase letters and digits).' }
780
780
  ]
781
781
  },
782
782
  get_labor_crew: {
@@ -788,7 +788,7 @@ exports.OPERATIONS = {
788
788
  response: 'json',
789
789
  params: [
790
790
  { name: 'id', in: 'path', required: true, kind: 'string' },
791
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
791
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
792
792
  ]
793
793
  },
794
794
  get_labor_equipment: {
@@ -800,7 +800,7 @@ exports.OPERATIONS = {
800
800
  response: 'json',
801
801
  params: [
802
802
  { name: 'id', in: 'path', required: true, kind: 'string' },
803
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
803
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
804
804
  ]
805
805
  },
806
806
  get_labor_rate: {
@@ -812,7 +812,7 @@ exports.OPERATIONS = {
812
812
  response: 'json',
813
813
  params: [
814
814
  { name: 'id', in: 'path', required: true, kind: 'string' },
815
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
815
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
816
816
  ]
817
817
  },
818
818
  get_latest_assessment: {
@@ -823,7 +823,7 @@ exports.OPERATIONS = {
823
823
  body: false,
824
824
  response: 'json',
825
825
  params: [
826
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' }
826
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' }
827
827
  ]
828
828
  },
829
829
  get_list: {
@@ -834,8 +834,8 @@ exports.OPERATIONS = {
834
834
  body: false,
835
835
  response: 'json',
836
836
  params: [
837
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex product list ID' },
838
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
837
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Product list id: the id the API returns for a product list (a string of 32 lowercase letters and digits).' },
838
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
839
839
  ]
840
840
  },
841
841
  get_me: {
@@ -855,7 +855,7 @@ exports.OPERATIONS = {
855
855
  body: false,
856
856
  response: 'json',
857
857
  params: [
858
- { name: 'pageId', in: 'path', required: true, kind: 'string', description: 'Convex page ID' },
858
+ { name: 'pageId', in: 'path', required: true, kind: 'string', description: 'Page id: the id the API returns for a page (a string of 32 lowercase letters and digits).' },
859
859
  { name: 'shapeId', in: 'path', required: true, kind: 'string' }
860
860
  ]
861
861
  },
@@ -867,7 +867,7 @@ exports.OPERATIONS = {
867
867
  body: false,
868
868
  response: 'json',
869
869
  params: [
870
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex page ID' }
870
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Page id: the id the API returns for a page (a string of 32 lowercase letters and digits).' }
871
871
  ]
872
872
  },
873
873
  get_page_content: {
@@ -878,7 +878,7 @@ exports.OPERATIONS = {
878
878
  body: false,
879
879
  response: 'json',
880
880
  params: [
881
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex page ID' }
881
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Page id: the id the API returns for a page (a string of 32 lowercase letters and digits).' }
882
882
  ]
883
883
  },
884
884
  get_prices_for_product: {
@@ -889,8 +889,8 @@ exports.OPERATIONS = {
889
889
  body: false,
890
890
  response: 'json',
891
891
  params: [
892
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex product ID' },
893
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
892
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Product id: the id the API returns for a product (a string of 32 lowercase letters and digits).' },
893
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
894
894
  ]
895
895
  },
896
896
  get_product: {
@@ -901,8 +901,8 @@ exports.OPERATIONS = {
901
901
  body: false,
902
902
  response: 'json',
903
903
  params: [
904
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex product ID' },
905
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
904
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Product id: the id the API returns for a product (a string of 32 lowercase letters and digits).' },
905
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
906
906
  ]
907
907
  },
908
908
  get_project: {
@@ -913,8 +913,8 @@ exports.OPERATIONS = {
913
913
  body: false,
914
914
  response: 'json',
915
915
  params: [
916
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
917
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
916
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
917
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
918
918
  ]
919
919
  },
920
920
  get_project_relations: {
@@ -925,8 +925,8 @@ exports.OPERATIONS = {
925
925
  body: false,
926
926
  response: 'json',
927
927
  params: [
928
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
929
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
928
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
929
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
930
930
  ]
931
931
  },
932
932
  get_spreadsheet: {
@@ -937,8 +937,8 @@ exports.OPERATIONS = {
937
937
  body: false,
938
938
  response: 'json',
939
939
  params: [
940
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex spreadsheet ID' },
941
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
940
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Spreadsheet id: the id the API returns for a spreadsheet (a string of 32 lowercase letters and digits).' },
941
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
942
942
  ]
943
943
  },
944
944
  get_symbol: {
@@ -949,7 +949,7 @@ exports.OPERATIONS = {
949
949
  body: false,
950
950
  response: 'json',
951
951
  params: [
952
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex takeoff symbol ID' },
952
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Takeoff symbol id: the id the API returns for a takeoff symbol (a string of 32 lowercase letters and digits).' },
953
953
  { name: 'projectId', in: 'query', required: true, kind: 'string' }
954
954
  ]
955
955
  },
@@ -961,7 +961,7 @@ exports.OPERATIONS = {
961
961
  body: false,
962
962
  response: 'json',
963
963
  params: [
964
- { name: 'symbolId', in: 'path', required: true, kind: 'string', description: 'Convex takeoff symbol ID' },
964
+ { name: 'symbolId', in: 'path', required: true, kind: 'string', description: 'Takeoff symbol id: the id the API returns for a takeoff symbol (a string of 32 lowercase letters and digits).' },
965
965
  { name: 'id', in: 'path', required: true, kind: 'string' },
966
966
  { name: 'projectId', in: 'query', required: true, kind: 'string' }
967
967
  ]
@@ -974,7 +974,7 @@ exports.OPERATIONS = {
974
974
  body: false,
975
975
  response: 'json',
976
976
  params: [
977
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' }
977
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' }
978
978
  ]
979
979
  },
980
980
  get_unread_notification_count: {
@@ -994,7 +994,7 @@ exports.OPERATIONS = {
994
994
  body: false,
995
995
  response: 'json',
996
996
  params: [
997
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
997
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
998
998
  { name: 'groupBy', in: 'query', required: true, kind: 'string', enum: ['app', 'key', 'end_user', 'operation'], description: 'What to group by: app, key, end user (the Exayard-End-User header) or operation.' },
999
999
  { name: 'dateFrom', in: 'query', required: false, kind: 'number', description: 'Start of the window, epoch ms, inclusive. Default: this billing month.' },
1000
1000
  { name: 'dateTo', in: 'query', required: false, kind: 'number', description: 'End of the window, epoch ms, exclusive. Default: now when dateFrom is given, else the end of this billing month.' },
@@ -1011,8 +1011,8 @@ exports.OPERATIONS = {
1011
1011
  body: false,
1012
1012
  response: 'json',
1013
1013
  params: [
1014
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex vendor ID' },
1015
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1014
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Vendor id: the id the API returns for a vendor (a string of 32 lowercase letters and digits).' },
1015
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1016
1016
  ]
1017
1017
  },
1018
1018
  get_vendor_quote: {
@@ -1024,7 +1024,7 @@ exports.OPERATIONS = {
1024
1024
  response: 'json',
1025
1025
  params: [
1026
1026
  { name: 'id', in: 'path', required: true, kind: 'string' },
1027
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1027
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1028
1028
  ]
1029
1029
  },
1030
1030
  get_widget: {
@@ -1035,8 +1035,8 @@ exports.OPERATIONS = {
1035
1035
  body: false,
1036
1036
  response: 'json',
1037
1037
  params: [
1038
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex widget ID' },
1039
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1038
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Widget id: the id the API returns for a widget (a string of 32 lowercase letters and digits).' },
1039
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1040
1040
  ]
1041
1041
  },
1042
1042
  list_assessments: {
@@ -1047,7 +1047,7 @@ exports.OPERATIONS = {
1047
1047
  body: false,
1048
1048
  response: 'json',
1049
1049
  params: [
1050
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' }
1050
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' }
1051
1051
  ]
1052
1052
  },
1053
1053
  list_contacts: {
@@ -1058,7 +1058,7 @@ exports.OPERATIONS = {
1058
1058
  body: false,
1059
1059
  response: 'json',
1060
1060
  params: [
1061
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1061
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1062
1062
  { name: 'widgetId', in: 'query', required: false, kind: 'string' },
1063
1063
  { name: 'search', in: 'query', required: false, kind: 'string' },
1064
1064
  { name: 'limit', in: 'query', required: false, kind: 'integer' }
@@ -1072,8 +1072,8 @@ exports.OPERATIONS = {
1072
1072
  body: false,
1073
1073
  response: 'json',
1074
1074
  params: [
1075
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex conversation ID' },
1076
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1075
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Conversation id: the id the API returns for a conversation (a string of 32 lowercase letters and digits).' },
1076
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1077
1077
  { name: 'imagesOnly', in: 'query', required: false, kind: 'boolean' }
1078
1078
  ]
1079
1079
  },
@@ -1085,7 +1085,7 @@ exports.OPERATIONS = {
1085
1085
  body: false,
1086
1086
  response: 'json',
1087
1087
  params: [
1088
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1088
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1089
1089
  { name: 'type', in: 'query', required: false, kind: 'string', enum: ['ai_chat', 'project_activity', 'whatsapp_chat'] },
1090
1090
  { name: 'channel', in: 'query', required: false, kind: 'string', enum: ['app', 'email', 'whatsapp'] },
1091
1091
  { name: 'limit', in: 'query', required: false, kind: 'integer' },
@@ -1100,7 +1100,7 @@ exports.OPERATIONS = {
1100
1100
  body: false,
1101
1101
  response: 'json',
1102
1102
  params: [
1103
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1103
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1104
1104
  { name: 'recordType', in: 'query', required: false, kind: 'string', enum: ['project', 'countTakeoff', 'linearTakeoff', 'areaTakeoff', 'product'] }
1105
1105
  ]
1106
1106
  },
@@ -1112,8 +1112,8 @@ exports.OPERATIONS = {
1112
1112
  body: false,
1113
1113
  response: 'json',
1114
1114
  params: [
1115
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
1116
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1115
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
1116
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1117
1117
  ]
1118
1118
  },
1119
1119
  list_files: {
@@ -1125,7 +1125,7 @@ exports.OPERATIONS = {
1125
1125
  response: 'json',
1126
1126
  params: [
1127
1127
  { name: 'projectId', in: 'query', required: true, kind: 'string' },
1128
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1128
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1129
1129
  ]
1130
1130
  },
1131
1131
  list_folder_contents: {
@@ -1136,7 +1136,7 @@ exports.OPERATIONS = {
1136
1136
  body: false,
1137
1137
  response: 'json',
1138
1138
  params: [
1139
- { name: 'projectId', in: 'query', required: true, kind: 'string', description: 'Convex project ID' },
1139
+ { name: 'projectId', in: 'query', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
1140
1140
  { name: 'parentId', in: 'query', required: false, kind: 'string' }
1141
1141
  ]
1142
1142
  },
@@ -1148,7 +1148,7 @@ exports.OPERATIONS = {
1148
1148
  body: false,
1149
1149
  response: 'json',
1150
1150
  params: [
1151
- { name: 'projectId', in: 'query', required: true, kind: 'string', description: 'Convex project ID' }
1151
+ { name: 'projectId', in: 'query', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' }
1152
1152
  ]
1153
1153
  },
1154
1154
  list_groups: {
@@ -1159,7 +1159,7 @@ exports.OPERATIONS = {
1159
1159
  body: false,
1160
1160
  response: 'json',
1161
1161
  params: [
1162
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' }
1162
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' }
1163
1163
  ]
1164
1164
  },
1165
1165
  list_installations: {
@@ -1182,7 +1182,7 @@ exports.OPERATIONS = {
1182
1182
  body: false,
1183
1183
  response: 'json',
1184
1184
  params: [
1185
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1185
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1186
1186
  ]
1187
1187
  },
1188
1188
  list_labor_crews: {
@@ -1193,7 +1193,7 @@ exports.OPERATIONS = {
1193
1193
  body: false,
1194
1194
  response: 'json',
1195
1195
  params: [
1196
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1196
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1197
1197
  { name: 'includeInactive', in: 'query', required: false, kind: 'boolean' }
1198
1198
  ]
1199
1199
  },
@@ -1205,7 +1205,7 @@ exports.OPERATIONS = {
1205
1205
  body: false,
1206
1206
  response: 'json',
1207
1207
  params: [
1208
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1208
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1209
1209
  { name: 'category', in: 'query', required: false, kind: 'string' },
1210
1210
  { name: 'includeInactive', in: 'query', required: false, kind: 'boolean' }
1211
1211
  ]
@@ -1218,7 +1218,7 @@ exports.OPERATIONS = {
1218
1218
  body: false,
1219
1219
  response: 'json',
1220
1220
  params: [
1221
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1221
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1222
1222
  { name: 'includeInactive', in: 'query', required: false, kind: 'boolean' }
1223
1223
  ]
1224
1224
  },
@@ -1230,8 +1230,8 @@ exports.OPERATIONS = {
1230
1230
  body: false,
1231
1231
  response: 'json',
1232
1232
  params: [
1233
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
1234
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1233
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
1234
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1235
1235
  ]
1236
1236
  },
1237
1237
  list_lists: {
@@ -1242,7 +1242,7 @@ exports.OPERATIONS = {
1242
1242
  body: false,
1243
1243
  response: 'json',
1244
1244
  params: [
1245
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1245
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1246
1246
  { name: 'type', in: 'query', required: false, kind: 'string', enum: ['product', 'takeoffTemplate'] },
1247
1247
  { name: 'category', in: 'query', required: false, kind: 'string' },
1248
1248
  { name: 'includeInactive', in: 'query', required: false, kind: 'boolean' }
@@ -1256,7 +1256,7 @@ exports.OPERATIONS = {
1256
1256
  body: false,
1257
1257
  response: 'json',
1258
1258
  params: [
1259
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex page ID' }
1259
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Page id: the id the API returns for a page (a string of 32 lowercase letters and digits).' }
1260
1260
  ]
1261
1261
  },
1262
1262
  list_measurements_by_symbol: {
@@ -1267,7 +1267,7 @@ exports.OPERATIONS = {
1267
1267
  body: false,
1268
1268
  response: 'json',
1269
1269
  params: [
1270
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex takeoff symbol ID' },
1270
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Takeoff symbol id: the id the API returns for a takeoff symbol (a string of 32 lowercase letters and digits).' },
1271
1271
  { name: 'projectId', in: 'query', required: true, kind: 'string' }
1272
1272
  ]
1273
1273
  },
@@ -1279,7 +1279,7 @@ exports.OPERATIONS = {
1279
1279
  body: false,
1280
1280
  response: 'json',
1281
1281
  params: [
1282
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
1282
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
1283
1283
  { name: 'pageId', in: 'query', required: false, kind: 'string' }
1284
1284
  ]
1285
1285
  },
@@ -1303,7 +1303,7 @@ exports.OPERATIONS = {
1303
1303
  body: false,
1304
1304
  response: 'json',
1305
1305
  params: [
1306
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1306
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1307
1307
  { name: 'type', in: 'query', required: false, kind: 'string' },
1308
1308
  { name: 'limit', in: 'query', required: false, kind: 'integer' }
1309
1309
  ]
@@ -1328,8 +1328,8 @@ exports.OPERATIONS = {
1328
1328
  body: false,
1329
1329
  response: 'json',
1330
1330
  params: [
1331
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
1332
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1331
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
1332
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1333
1333
  ]
1334
1334
  },
1335
1335
  list_products: {
@@ -1340,7 +1340,7 @@ exports.OPERATIONS = {
1340
1340
  body: false,
1341
1341
  response: 'json',
1342
1342
  params: [
1343
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1343
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1344
1344
  { name: 'search', in: 'query', required: false, kind: 'string' },
1345
1345
  { name: 'limit', in: 'query', required: false, kind: 'integer' }
1346
1346
  ]
@@ -1353,8 +1353,8 @@ exports.OPERATIONS = {
1353
1353
  body: false,
1354
1354
  response: 'json',
1355
1355
  params: [
1356
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex product list ID' },
1357
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1356
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Product list id: the id the API returns for a product list (a string of 32 lowercase letters and digits).' },
1357
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1358
1358
  ]
1359
1359
  },
1360
1360
  list_project_conversations: {
@@ -1365,8 +1365,8 @@ exports.OPERATIONS = {
1365
1365
  body: false,
1366
1366
  response: 'json',
1367
1367
  params: [
1368
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
1369
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1368
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
1369
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1370
1370
  { name: 'type', in: 'query', required: false, kind: 'string', enum: ['ai_chat', 'project_activity', 'widget_chat'] }
1371
1371
  ]
1372
1372
  },
@@ -1378,7 +1378,7 @@ exports.OPERATIONS = {
1378
1378
  body: false,
1379
1379
  response: 'json',
1380
1380
  params: [
1381
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1381
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1382
1382
  { name: 'status', in: 'query', required: false, kind: 'string', enum: ['lead', 'contacted', 'qualified', 'active', 'archived'] },
1383
1383
  { name: 'search', in: 'query', required: false, kind: 'string' }
1384
1384
  ]
@@ -1391,8 +1391,8 @@ exports.OPERATIONS = {
1391
1391
  body: false,
1392
1392
  response: 'json',
1393
1393
  params: [
1394
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
1395
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1394
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
1395
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1396
1396
  ]
1397
1397
  },
1398
1398
  list_symbol_line_items: {
@@ -1403,7 +1403,7 @@ exports.OPERATIONS = {
1403
1403
  body: false,
1404
1404
  response: 'json',
1405
1405
  params: [
1406
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex takeoff symbol ID' },
1406
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Takeoff symbol id: the id the API returns for a takeoff symbol (a string of 32 lowercase letters and digits).' },
1407
1407
  { name: 'projectId', in: 'query', required: true, kind: 'string' }
1408
1408
  ]
1409
1409
  },
@@ -1415,7 +1415,7 @@ exports.OPERATIONS = {
1415
1415
  body: false,
1416
1416
  response: 'json',
1417
1417
  params: [
1418
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
1418
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
1419
1419
  { name: 'type', in: 'query', required: false, kind: 'string', enum: ['count', 'linear', 'area'] },
1420
1420
  { name: 'source', in: 'query', required: false, kind: 'string', enum: ['ai', 'manual'] },
1421
1421
  { name: 'category', in: 'query', required: false, kind: 'string' }
@@ -1429,8 +1429,8 @@ exports.OPERATIONS = {
1429
1429
  body: false,
1430
1430
  response: 'json',
1431
1431
  params: [
1432
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
1433
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1432
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
1433
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1434
1434
  { name: 'status', in: 'query', required: false, kind: 'string', enum: ['requested', 'received', 'accepted', 'rejected', 'expired'] }
1435
1435
  ]
1436
1436
  },
@@ -1442,7 +1442,7 @@ exports.OPERATIONS = {
1442
1442
  body: false,
1443
1443
  response: 'json',
1444
1444
  params: [
1445
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1445
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1446
1446
  { name: 'type', in: 'query', required: false, kind: 'string', enum: ['supplier', 'subcontractor', 'rental'] },
1447
1447
  { name: 'kind', in: 'query', required: false, kind: 'string', enum: ['sub', 'supplier', 'surety', 'insurer', 'agency', 'owner', 'architect', 'engineer', 'other'] },
1448
1448
  { name: 'preferredOnly', in: 'query', required: false, kind: 'boolean' },
@@ -1459,7 +1459,7 @@ exports.OPERATIONS = {
1459
1459
  response: 'json',
1460
1460
  params: [
1461
1461
  { name: 'id', in: 'path', required: true, kind: 'string' },
1462
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1462
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1463
1463
  { name: 'limit', in: 'query', required: false, kind: 'integer' }
1464
1464
  ]
1465
1465
  },
@@ -1471,7 +1471,7 @@ exports.OPERATIONS = {
1471
1471
  body: false,
1472
1472
  response: 'json',
1473
1473
  params: [
1474
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1474
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1475
1475
  ]
1476
1476
  },
1477
1477
  list_widget_conversations: {
@@ -1482,8 +1482,8 @@ exports.OPERATIONS = {
1482
1482
  body: false,
1483
1483
  response: 'json',
1484
1484
  params: [
1485
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex widget ID' },
1486
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1485
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Widget id: the id the API returns for a widget (a string of 32 lowercase letters and digits).' },
1486
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1487
1487
  { name: 'status', in: 'query', required: false, kind: 'string', enum: ['bot', 'open', 'snoozed', 'closed'] },
1488
1488
  { name: 'search', in: 'query', required: false, kind: 'string' },
1489
1489
  { name: 'limit', in: 'query', required: false, kind: 'integer' }
@@ -1497,7 +1497,7 @@ exports.OPERATIONS = {
1497
1497
  body: false,
1498
1498
  response: 'json',
1499
1499
  params: [
1500
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1500
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1501
1501
  ]
1502
1502
  },
1503
1503
  mark_all_notifications_read: {
@@ -1528,9 +1528,9 @@ exports.OPERATIONS = {
1528
1528
  body: true,
1529
1529
  response: 'empty',
1530
1530
  params: [
1531
- { name: 'symbolId', in: 'path', required: true, kind: 'string', description: 'Convex takeoff symbol ID' },
1531
+ { name: 'symbolId', in: 'path', required: true, kind: 'string', description: 'Takeoff symbol id: the id the API returns for a takeoff symbol (a string of 32 lowercase letters and digits).' },
1532
1532
  { name: 'id', in: 'path', required: true, kind: 'string' },
1533
- { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Convex project ID' },
1533
+ { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
1534
1534
  { name: 'patch', in: 'body', required: true, kind: 'object', description: 'Only the fields to change' }
1535
1535
  ]
1536
1536
  },
@@ -1542,11 +1542,11 @@ exports.OPERATIONS = {
1542
1542
  body: true,
1543
1543
  response: 'json',
1544
1544
  params: [
1545
- { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Convex project ID' },
1545
+ { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
1546
1546
  { name: 'filename', in: 'body', required: true, kind: 'string' },
1547
1547
  { name: 'mimeType', in: 'body', required: true, kind: 'string' },
1548
1548
  { name: 'fileSize', in: 'body', required: true, kind: 'integer', description: 'File size in bytes (max 500 MB)' },
1549
- { name: 'folderId', in: 'body', required: false, kind: 'string', description: 'Convex folder ID' },
1549
+ { name: 'folderId', in: 'body', required: false, kind: 'string', description: 'Folder id: the id the API returns for a folder (a string of 32 lowercase letters and digits).' },
1550
1550
  { name: 'dimensions', in: 'body', required: false, kind: 'object' }
1551
1551
  ]
1552
1552
  },
@@ -1558,8 +1558,8 @@ exports.OPERATIONS = {
1558
1558
  body: true,
1559
1559
  response: 'json',
1560
1560
  params: [
1561
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
1562
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1561
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
1562
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1563
1563
  { name: 'prompt', in: 'body', required: true, kind: 'string', description: 'Natural-language description of what to measure' },
1564
1564
  { name: 'pageIds', in: 'body', required: false, kind: 'array', description: 'Page IDs to propose against. Defaults to the project\'s first page.' },
1565
1565
  { name: 'fileIds', in: 'body', required: false, kind: 'array', description: 'File IDs to scope the proposal to. When set, only pages belonging to these files are considered — pass the IDs from the [Attached files: ...] note in the user\'s message so a fresh upload doesn\'t pull in older project files. Wins over pageIds.' }
@@ -1583,7 +1583,7 @@ exports.OPERATIONS = {
1583
1583
  response: 'json',
1584
1584
  params: [
1585
1585
  { name: 'id', in: 'path', required: true, kind: 'string' },
1586
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1586
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1587
1587
  { name: 'lineItems', in: 'body', required: true, kind: 'array' },
1588
1588
  { name: 'subtotal', in: 'body', required: true, kind: 'number', description: 'Sum of the line items\' totalPrice when lineItems are sent' },
1589
1589
  { name: 'tax', in: 'body', required: false, kind: 'number' },
@@ -1600,8 +1600,8 @@ exports.OPERATIONS = {
1600
1600
  body: false,
1601
1601
  response: 'empty',
1602
1602
  params: [
1603
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex custom property ID' },
1604
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1603
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Custom property id: the id the API returns for a custom property (a string of 32 lowercase letters and digits).' },
1604
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1605
1605
  ]
1606
1606
  },
1607
1607
  remove_file: {
@@ -1612,7 +1612,7 @@ exports.OPERATIONS = {
1612
1612
  body: false,
1613
1613
  response: 'empty',
1614
1614
  params: [
1615
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex file ID' }
1615
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'File id: the id the API returns for a file (a string of 32 lowercase letters and digits).' }
1616
1616
  ]
1617
1617
  },
1618
1618
  remove_folder: {
@@ -1623,7 +1623,7 @@ exports.OPERATIONS = {
1623
1623
  body: false,
1624
1624
  response: 'empty',
1625
1625
  params: [
1626
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex folder ID' }
1626
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Folder id: the id the API returns for a folder (a string of 32 lowercase letters and digits).' }
1627
1627
  ]
1628
1628
  },
1629
1629
  remove_group: {
@@ -1634,7 +1634,7 @@ exports.OPERATIONS = {
1634
1634
  body: false,
1635
1635
  response: 'empty',
1636
1636
  params: [
1637
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex takeoff group ID' },
1637
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Takeoff group id: the id the API returns for a takeoff group (a string of 32 lowercase letters and digits).' },
1638
1638
  { name: 'projectId', in: 'query', required: true, kind: 'string' }
1639
1639
  ]
1640
1640
  },
@@ -1646,7 +1646,7 @@ exports.OPERATIONS = {
1646
1646
  body: false,
1647
1647
  response: 'empty',
1648
1648
  params: [
1649
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex takeoff layer ID' },
1649
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Takeoff layer id: the id the API returns for a takeoff layer (a string of 32 lowercase letters and digits).' },
1650
1650
  { name: 'projectId', in: 'query', required: true, kind: 'string' }
1651
1651
  ]
1652
1652
  },
@@ -1658,7 +1658,7 @@ exports.OPERATIONS = {
1658
1658
  body: false,
1659
1659
  response: 'empty',
1660
1660
  params: [
1661
- { name: 'pageId', in: 'path', required: true, kind: 'string', description: 'Convex page ID' },
1661
+ { name: 'pageId', in: 'path', required: true, kind: 'string', description: 'Page id: the id the API returns for a page (a string of 32 lowercase letters and digits).' },
1662
1662
  { name: 'shapeId', in: 'path', required: true, kind: 'string' }
1663
1663
  ]
1664
1664
  },
@@ -1670,7 +1670,7 @@ exports.OPERATIONS = {
1670
1670
  body: false,
1671
1671
  response: 'empty',
1672
1672
  params: [
1673
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex chat message ID' }
1673
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Chat message id: the id the API returns for a chat message (a string of 32 lowercase letters and digits).' }
1674
1674
  ]
1675
1675
  },
1676
1676
  remove_symbol: {
@@ -1681,7 +1681,7 @@ exports.OPERATIONS = {
1681
1681
  body: false,
1682
1682
  response: 'empty',
1683
1683
  params: [
1684
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex takeoff symbol ID' },
1684
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Takeoff symbol id: the id the API returns for a takeoff symbol (a string of 32 lowercase letters and digits).' },
1685
1685
  { name: 'projectId', in: 'query', required: true, kind: 'string' }
1686
1686
  ]
1687
1687
  },
@@ -1693,7 +1693,7 @@ exports.OPERATIONS = {
1693
1693
  body: false,
1694
1694
  response: 'empty',
1695
1695
  params: [
1696
- { name: 'symbolId', in: 'path', required: true, kind: 'string', description: 'Convex takeoff symbol ID' },
1696
+ { name: 'symbolId', in: 'path', required: true, kind: 'string', description: 'Takeoff symbol id: the id the API returns for a takeoff symbol (a string of 32 lowercase letters and digits).' },
1697
1697
  { name: 'id', in: 'path', required: true, kind: 'string' },
1698
1698
  { name: 'projectId', in: 'query', required: true, kind: 'string' }
1699
1699
  ]
@@ -1706,9 +1706,9 @@ exports.OPERATIONS = {
1706
1706
  body: false,
1707
1707
  response: 'empty',
1708
1708
  params: [
1709
- { name: 'productId', in: 'path', required: true, kind: 'string', description: 'Convex product ID' },
1710
- { name: 'vendorId', in: 'path', required: true, kind: 'string', description: 'Convex vendor ID' },
1711
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1709
+ { name: 'productId', in: 'path', required: true, kind: 'string', description: 'Product id: the id the API returns for a product (a string of 32 lowercase letters and digits).' },
1710
+ { name: 'vendorId', in: 'path', required: true, kind: 'string', description: 'Vendor id: the id the API returns for a vendor (a string of 32 lowercase letters and digits).' },
1711
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1712
1712
  ]
1713
1713
  },
1714
1714
  remove_widget: {
@@ -1719,8 +1719,8 @@ exports.OPERATIONS = {
1719
1719
  body: false,
1720
1720
  response: 'empty',
1721
1721
  params: [
1722
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex widget ID' },
1723
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1722
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Widget id: the id the API returns for a widget (a string of 32 lowercase letters and digits).' },
1723
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1724
1724
  ]
1725
1725
  },
1726
1726
  rename_file: {
@@ -1731,9 +1731,9 @@ exports.OPERATIONS = {
1731
1731
  body: true,
1732
1732
  response: 'empty',
1733
1733
  params: [
1734
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex file ID' },
1734
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'File id: the id the API returns for a file (a string of 32 lowercase letters and digits).' },
1735
1735
  { name: 'filename', in: 'body', required: false, kind: 'string' },
1736
- { name: 'folderId', in: 'body', required: false, kind: 'string', description: 'Convex folder ID' }
1736
+ { name: 'folderId', in: 'body', required: false, kind: 'string', description: 'Folder id: the id the API returns for a folder (a string of 32 lowercase letters and digits).' }
1737
1737
  ]
1738
1738
  },
1739
1739
  rename_folder: {
@@ -1744,9 +1744,9 @@ exports.OPERATIONS = {
1744
1744
  body: true,
1745
1745
  response: 'empty',
1746
1746
  params: [
1747
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex folder ID' },
1747
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Folder id: the id the API returns for a folder (a string of 32 lowercase letters and digits).' },
1748
1748
  { name: 'name', in: 'body', required: false, kind: 'string' },
1749
- { name: 'parentId', in: 'body', required: false, kind: 'string', description: 'Convex folder ID' }
1749
+ { name: 'parentId', in: 'body', required: false, kind: 'string', description: 'Folder id: the id the API returns for a folder (a string of 32 lowercase letters and digits).' }
1750
1750
  ]
1751
1751
  },
1752
1752
  resend_webhook_delivery: {
@@ -1758,7 +1758,7 @@ exports.OPERATIONS = {
1758
1758
  response: 'json',
1759
1759
  params: [
1760
1760
  { name: 'id', in: 'path', required: true, kind: 'string' },
1761
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1761
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1762
1762
  ]
1763
1763
  },
1764
1764
  restore_list: {
@@ -1769,8 +1769,8 @@ exports.OPERATIONS = {
1769
1769
  body: true,
1770
1770
  response: 'empty',
1771
1771
  params: [
1772
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex product list ID' },
1773
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1772
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Product list id: the id the API returns for a product list (a string of 32 lowercase letters and digits).' },
1773
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1774
1774
  ]
1775
1775
  },
1776
1776
  restore_page: {
@@ -1781,7 +1781,7 @@ exports.OPERATIONS = {
1781
1781
  body: false,
1782
1782
  response: 'empty',
1783
1783
  params: [
1784
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex page ID' }
1784
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Page id: the id the API returns for a page (a string of 32 lowercase letters and digits).' }
1785
1785
  ]
1786
1786
  },
1787
1787
  restore_project: {
@@ -1792,8 +1792,8 @@ exports.OPERATIONS = {
1792
1792
  body: true,
1793
1793
  response: 'empty',
1794
1794
  params: [
1795
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
1796
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1795
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
1796
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1797
1797
  ]
1798
1798
  },
1799
1799
  run_approved_analysis: {
@@ -1805,8 +1805,8 @@ exports.OPERATIONS = {
1805
1805
  body: true,
1806
1806
  response: 'json',
1807
1807
  params: [
1808
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
1809
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1808
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
1809
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1810
1810
  { name: 'pageIds', in: 'body', required: true, kind: 'array' },
1811
1811
  { name: 'elements', in: 'body', required: true, kind: 'array' },
1812
1812
  { name: 'layerName', in: 'body', required: false, kind: 'string' }
@@ -1833,7 +1833,7 @@ exports.OPERATIONS = {
1833
1833
  body: false,
1834
1834
  response: 'json',
1835
1835
  params: [
1836
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1836
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1837
1837
  { name: 'query', in: 'query', required: true, kind: 'string' },
1838
1838
  { name: 'limit', in: 'query', required: false, kind: 'integer' }
1839
1839
  ]
@@ -1846,8 +1846,8 @@ exports.OPERATIONS = {
1846
1846
  body: false,
1847
1847
  response: 'json',
1848
1848
  params: [
1849
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
1850
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1849
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
1850
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1851
1851
  { name: 'query', in: 'query', required: false, kind: 'string' }
1852
1852
  ]
1853
1853
  },
@@ -1859,7 +1859,7 @@ exports.OPERATIONS = {
1859
1859
  body: false,
1860
1860
  response: 'json',
1861
1861
  params: [
1862
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
1862
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
1863
1863
  { name: 'query', in: 'query', required: false, kind: 'string' },
1864
1864
  { name: 'takeoffType', in: 'query', required: false, kind: 'string', enum: ['count', 'linear', 'area'] },
1865
1865
  { name: 'limit', in: 'query', required: false, kind: 'integer' }
@@ -1873,7 +1873,7 @@ exports.OPERATIONS = {
1873
1873
  body: false,
1874
1874
  response: 'json',
1875
1875
  params: [
1876
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1876
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1877
1877
  { name: 'query', in: 'query', required: true, kind: 'string' },
1878
1878
  { name: 'limit', in: 'query', required: false, kind: 'integer' }
1879
1879
  ]
@@ -1900,7 +1900,7 @@ exports.OPERATIONS = {
1900
1900
  response: 'json',
1901
1901
  params: [
1902
1902
  { name: 'id', in: 'path', required: true, kind: 'string' },
1903
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1903
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1904
1904
  { name: 'type', in: 'body', required: true, kind: 'string', enum: ['project.created', 'project.updated', 'project.archived', 'assessment.started', 'assessment.completed', 'assessment.cancelled', 'assessment.failed', 'estimate.generated', 'bid.generated', 'bid.submitted', 'bid.won', 'bid.lost', 'bid.accepted', 'bid.declined', 'bid.sent', 'bid.viewed', 'bid.commented', 'file.processed', 'addendum.uploaded', 'quote.requested', 'quote.received', 'quote.accepted', 'quote.rejected', 'quote.expired', 'conversation.started', 'conversation.handoff_requested', 'conversation.closed', 'lead.captured', 'contact.created', 'appointment.booked', 'appointment.rescheduled', 'appointment.cancelled', 'call.completed', 'call.missed', 'review.requested', 'job.written_back', 'payment.captured', 'payment.failed'] }
1905
1905
  ]
1906
1906
  },
@@ -1913,7 +1913,7 @@ exports.OPERATIONS = {
1913
1913
  response: 'json',
1914
1914
  params: [
1915
1915
  { name: 'id', in: 'path', required: true, kind: 'string' },
1916
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1916
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1917
1917
  { name: 'type', in: 'body', required: true, kind: 'string', enum: ['project.created', 'project.updated', 'project.archived', 'assessment.started', 'assessment.completed', 'assessment.cancelled', 'assessment.failed', 'estimate.generated', 'bid.generated', 'bid.submitted', 'bid.won', 'bid.lost', 'bid.accepted', 'bid.declined', 'bid.sent', 'bid.viewed', 'bid.commented', 'file.processed', 'addendum.uploaded', 'quote.requested', 'quote.received', 'quote.accepted', 'quote.rejected', 'quote.expired', 'conversation.started', 'conversation.handoff_requested', 'conversation.closed', 'lead.captured', 'contact.created', 'appointment.booked', 'appointment.rescheduled', 'appointment.cancelled', 'call.completed', 'call.missed', 'review.requested', 'job.written_back', 'payment.captured', 'payment.failed'] }
1918
1918
  ]
1919
1919
  },
@@ -1925,8 +1925,8 @@ exports.OPERATIONS = {
1925
1925
  body: true,
1926
1926
  response: 'json',
1927
1927
  params: [
1928
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex document ID' },
1929
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1928
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Document id: the id the API returns for a document (a string of 32 lowercase letters and digits).' },
1929
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1930
1930
  { name: 'enabled', in: 'body', required: true, kind: 'boolean', description: 'true mints (or reuses) the public share link and turns sharing on; false revokes access while keeping the secret for later re-enabling.' }
1931
1931
  ]
1932
1932
  },
@@ -1938,9 +1938,9 @@ exports.OPERATIONS = {
1938
1938
  body: true,
1939
1939
  response: 'json',
1940
1940
  params: [
1941
- { name: 'productId', in: 'path', required: true, kind: 'string', description: 'Convex product ID' },
1942
- { name: 'vendorId', in: 'path', required: true, kind: 'string', description: 'Convex vendor ID' },
1943
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1941
+ { name: 'productId', in: 'path', required: true, kind: 'string', description: 'Product id: the id the API returns for a product (a string of 32 lowercase letters and digits).' },
1942
+ { name: 'vendorId', in: 'path', required: true, kind: 'string', description: 'Vendor id: the id the API returns for a vendor (a string of 32 lowercase letters and digits).' },
1943
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1944
1944
  { name: 'pricePerUnit', in: 'body', required: true, kind: 'number' },
1945
1945
  { name: 'minOrderQuantity', in: 'body', required: false, kind: 'number' },
1946
1946
  { name: 'volumeDiscounts', in: 'body', required: false, kind: 'array' },
@@ -1957,7 +1957,7 @@ exports.OPERATIONS = {
1957
1957
  body: true,
1958
1958
  response: 'json',
1959
1959
  params: [
1960
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1960
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1961
1961
  { name: 'events', in: 'body', required: false, kind: 'array' },
1962
1962
  { name: 'name', in: 'body', required: false, kind: 'string' }
1963
1963
  ]
@@ -1971,7 +1971,7 @@ exports.OPERATIONS = {
1971
1971
  response: 'empty',
1972
1972
  params: [
1973
1973
  { name: 'id', in: 'path', required: true, kind: 'string' },
1974
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' }
1974
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' }
1975
1975
  ]
1976
1976
  },
1977
1977
  stream_webhook_listener_events: {
@@ -1983,7 +1983,7 @@ exports.OPERATIONS = {
1983
1983
  response: 'stream',
1984
1984
  params: [
1985
1985
  { name: 'id', in: 'path', required: true, kind: 'string' },
1986
- { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1986
+ { name: 'organizationId', in: 'query', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
1987
1987
  { name: 'after', in: 'query', required: false, kind: 'integer' }
1988
1988
  ]
1989
1989
  },
@@ -1995,8 +1995,8 @@ exports.OPERATIONS = {
1995
1995
  body: true,
1996
1996
  response: 'empty',
1997
1997
  params: [
1998
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex contact ID' },
1999
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
1998
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Contact id: the id the API returns for a contact (a string of 32 lowercase letters and digits).' },
1999
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
2000
2000
  { name: 'name', in: 'body', required: false, kind: 'string' },
2001
2001
  { name: 'email', in: 'body', required: false, kind: 'string' },
2002
2002
  { name: 'phone', in: 'body', required: false, kind: 'string' },
@@ -2011,10 +2011,10 @@ exports.OPERATIONS = {
2011
2011
  body: true,
2012
2012
  response: 'empty',
2013
2013
  params: [
2014
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex conversation ID' },
2015
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
2014
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Conversation id: the id the API returns for a conversation (a string of 32 lowercase letters and digits).' },
2015
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
2016
2016
  { name: 'title', in: 'body', required: false, kind: 'string' },
2017
- { name: 'projectId', in: 'body', required: false, kind: 'string', description: 'Convex project ID' }
2017
+ { name: 'projectId', in: 'body', required: false, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' }
2018
2018
  ]
2019
2019
  },
2020
2020
  update_custom_property: {
@@ -2025,8 +2025,8 @@ exports.OPERATIONS = {
2025
2025
  body: true,
2026
2026
  response: 'empty',
2027
2027
  params: [
2028
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex custom property ID' },
2029
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
2028
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Custom property id: the id the API returns for a custom property (a string of 32 lowercase letters and digits).' },
2029
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
2030
2030
  { name: 'name', in: 'body', required: false, kind: 'string' },
2031
2031
  { name: 'type', in: 'body', required: false, kind: 'string', enum: ['text', 'textarea', 'number', 'date', 'checkbox', 'multiCheckbox', 'select', 'url', 'email', 'phone', 'currency', 'percentage'] },
2032
2032
  { name: 'recordTypes', in: 'body', required: false, kind: 'array' },
@@ -2041,11 +2041,11 @@ exports.OPERATIONS = {
2041
2041
  body: true,
2042
2042
  response: 'empty',
2043
2043
  params: [
2044
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex takeoff group ID' },
2045
- { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Convex project ID' },
2044
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Takeoff group id: the id the API returns for a takeoff group (a string of 32 lowercase letters and digits).' },
2045
+ { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
2046
2046
  { name: 'name', in: 'body', required: false, kind: 'string' },
2047
2047
  { name: 'position', in: 'body', required: false, kind: 'number' },
2048
- { name: 'parentId', in: 'body', required: false, kind: 'string', description: 'Convex takeoff group ID' }
2048
+ { name: 'parentId', in: 'body', required: false, kind: 'string', description: 'Takeoff group id: the id the API returns for a takeoff group (a string of 32 lowercase letters and digits).' }
2049
2049
  ]
2050
2050
  },
2051
2051
  update_labor_crew: {
@@ -2057,7 +2057,7 @@ exports.OPERATIONS = {
2057
2057
  response: 'empty',
2058
2058
  params: [
2059
2059
  { name: 'id', in: 'path', required: true, kind: 'string' },
2060
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
2060
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
2061
2061
  { name: 'name', in: 'body', required: false, kind: 'string' },
2062
2062
  { name: 'description', in: 'body', required: false, kind: 'string' },
2063
2063
  { name: 'members', in: 'body', required: false, kind: 'array' },
@@ -2074,7 +2074,7 @@ exports.OPERATIONS = {
2074
2074
  response: 'empty',
2075
2075
  params: [
2076
2076
  { name: 'id', in: 'path', required: true, kind: 'string' },
2077
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
2077
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
2078
2078
  { name: 'name', in: 'body', required: false, kind: 'string' },
2079
2079
  { name: 'description', in: 'body', required: false, kind: 'string' },
2080
2080
  { name: 'category', in: 'body', required: false, kind: 'string' },
@@ -2093,7 +2093,7 @@ exports.OPERATIONS = {
2093
2093
  response: 'empty',
2094
2094
  params: [
2095
2095
  { name: 'id', in: 'path', required: true, kind: 'string' },
2096
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
2096
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
2097
2097
  { name: 'name', in: 'body', required: false, kind: 'string' },
2098
2098
  { name: 'description', in: 'body', required: false, kind: 'string' },
2099
2099
  { name: 'hourlyRate', in: 'body', required: false, kind: 'number' },
@@ -2111,8 +2111,8 @@ exports.OPERATIONS = {
2111
2111
  body: true,
2112
2112
  response: 'empty',
2113
2113
  params: [
2114
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex takeoff layer ID' },
2115
- { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Convex project ID' },
2114
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Takeoff layer id: the id the API returns for a takeoff layer (a string of 32 lowercase letters and digits).' },
2115
+ { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
2116
2116
  { name: 'name', in: 'body', required: true, kind: 'string' }
2117
2117
  ]
2118
2118
  },
@@ -2124,8 +2124,8 @@ exports.OPERATIONS = {
2124
2124
  body: true,
2125
2125
  response: 'json',
2126
2126
  params: [
2127
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex product list ID' },
2128
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
2127
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Product list id: the id the API returns for a product list (a string of 32 lowercase letters and digits).' },
2128
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
2129
2129
  { name: 'name', in: 'body', required: false, kind: 'string' },
2130
2130
  { name: 'description', in: 'body', required: false, kind: 'string' },
2131
2131
  { name: 'privacy', in: 'body', required: false, kind: 'string', enum: ['private', 'organization', 'public', 'system'] },
@@ -2140,14 +2140,14 @@ exports.OPERATIONS = {
2140
2140
  body: true,
2141
2141
  response: 'empty',
2142
2142
  params: [
2143
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex takeoff measurement ID' },
2144
- { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Convex project ID' },
2143
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Takeoff measurement id: the id the API returns for a takeoff measurement (a string of 32 lowercase letters and digits).' },
2144
+ { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
2145
2145
  { name: 'value', in: 'body', required: false, kind: 'number', description: 'The measured quantity in RAW PAGE PIXELS — the same coordinate space as the geometry points, NEVER feet, metres, or any other real-world unit. Linear measurements are a length in px, areas are px², counts are a tally. Exayard converts to real units at display time using the page scale, so a real-world number sent here is converted a second time and reads wrong. When geometry is supplied the server measures it and rejects a value that disagrees by 10× or more, naming both numbers. To send a real-world quantity, convert it to page pixels first (multiply by the page\'s pixels-per-unit; square that factor for an area).' },
2146
2146
  { name: 'manualValue', in: 'body', required: false, kind: 'number', description: 'A user\'s override of the measured quantity, in RAW PAGE PIXELS — the same coordinate space as the geometry points, NEVER feet, metres, or any other real-world unit. Linear measurements are a length in px, areas are px², counts are a tally. Exayard converts to real units at display time using the page scale, so a real-world number sent here is converted a second time and reads wrong. When geometry is supplied the server measures it and rejects a value that disagrees by 10× or more, naming both numbers. To send a real-world quantity, convert it to page pixels first (multiply by the page\'s pixels-per-unit; square that factor for an area). Send null to clear the override and fall back to the measured value.' },
2147
2147
  { name: 'geometry', in: 'body', required: false, kind: 'object', description: 'Measurement geometry: { "points": [{ "x": number, "y": number, "bulge"?: number }, ...], "isClosed": boolean, "holes"?: Point[][], "pathD"?: string }. When geometry is provided, "points" and "isClosed" are required; other keys (e.g. { "length": 280.9 }) are rejected.' },
2148
2148
  { name: 'notes', in: 'body', required: false, kind: 'string' },
2149
2149
  { name: 'name', in: 'body', required: false, kind: 'string' },
2150
- { name: 'layerId', in: 'body', required: false, kind: 'string', description: 'Convex takeoff layer ID' }
2150
+ { name: 'layerId', in: 'body', required: false, kind: 'string', description: 'Takeoff layer id: the id the API returns for a takeoff layer (a string of 32 lowercase letters and digits).' }
2151
2151
  ]
2152
2152
  },
2153
2153
  update_message: {
@@ -2158,7 +2158,7 @@ exports.OPERATIONS = {
2158
2158
  body: true,
2159
2159
  response: 'empty',
2160
2160
  params: [
2161
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex chat message ID' },
2161
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Chat message id: the id the API returns for a chat message (a string of 32 lowercase letters and digits).' },
2162
2162
  { name: 'content', in: 'body', required: true, kind: 'string' }
2163
2163
  ]
2164
2164
  },
@@ -2170,7 +2170,7 @@ exports.OPERATIONS = {
2170
2170
  body: true,
2171
2171
  response: 'json',
2172
2172
  params: [
2173
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex page ID' },
2173
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Page id: the id the API returns for a page (a string of 32 lowercase letters and digits).' },
2174
2174
  { name: 'name', in: 'body', required: false, kind: 'string' },
2175
2175
  { name: 'rotation', in: 'body', required: false, kind: 'number' }
2176
2176
  ]
@@ -2183,8 +2183,8 @@ exports.OPERATIONS = {
2183
2183
  body: true,
2184
2184
  response: 'json',
2185
2185
  params: [
2186
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex product ID' },
2187
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
2186
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Product id: the id the API returns for a product (a string of 32 lowercase letters and digits).' },
2187
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
2188
2188
  { name: 'name', in: 'body', required: false, kind: 'string' },
2189
2189
  { name: 'sku', in: 'body', required: false, kind: 'string' },
2190
2190
  { name: 'unitOfMeasure', in: 'body', required: false, kind: 'string' },
@@ -2202,8 +2202,8 @@ exports.OPERATIONS = {
2202
2202
  body: true,
2203
2203
  response: 'json',
2204
2204
  params: [
2205
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
2206
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
2205
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
2206
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
2207
2207
  { name: 'name', in: 'body', required: false, kind: 'string' },
2208
2208
  { name: 'status', in: 'body', required: false, kind: 'string', enum: ['lead', 'contacted', 'qualified', 'active', 'archived'] },
2209
2209
  { name: 'settings', in: 'body', required: false, kind: 'object' },
@@ -2219,8 +2219,8 @@ exports.OPERATIONS = {
2219
2219
  body: true,
2220
2220
  response: 'empty',
2221
2221
  params: [
2222
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex project ID' },
2223
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
2222
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
2223
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
2224
2224
  { name: 'privacy', in: 'body', required: true, kind: 'string', enum: ['private', 'unlisted', 'public'] }
2225
2225
  ]
2226
2226
  },
@@ -2232,8 +2232,8 @@ exports.OPERATIONS = {
2232
2232
  body: true,
2233
2233
  response: 'empty',
2234
2234
  params: [
2235
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex takeoff symbol ID' },
2236
- { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Convex project ID' },
2235
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Takeoff symbol id: the id the API returns for a takeoff symbol (a string of 32 lowercase letters and digits).' },
2236
+ { name: 'projectId', in: 'body', required: true, kind: 'string', description: 'Project id: the id the API returns for a project (a string of 32 lowercase letters and digits).' },
2237
2237
  { name: 'name', in: 'body', required: false, kind: 'string' },
2238
2238
  { name: 'color', in: 'body', required: false, kind: 'string' },
2239
2239
  { name: 'type', in: 'body', required: false, kind: 'string', enum: ['count', 'linear', 'area'] },
@@ -2250,8 +2250,8 @@ exports.OPERATIONS = {
2250
2250
  body: true,
2251
2251
  response: 'json',
2252
2252
  params: [
2253
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex vendor ID' },
2254
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
2253
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Vendor id: the id the API returns for a vendor (a string of 32 lowercase letters and digits).' },
2254
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
2255
2255
  { name: 'name', in: 'body', required: false, kind: 'string' },
2256
2256
  { name: 'type', in: 'body', required: false, kind: 'string', enum: ['supplier', 'subcontractor', 'rental'] },
2257
2257
  { name: 'kind', in: 'body', required: false, kind: 'string', enum: ['sub', 'supplier', 'surety', 'insurer', 'agency', 'owner', 'architect', 'engineer', 'other', null] },
@@ -2277,7 +2277,7 @@ exports.OPERATIONS = {
2277
2277
  response: 'json',
2278
2278
  params: [
2279
2279
  { name: 'id', in: 'path', required: true, kind: 'string' },
2280
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
2280
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
2281
2281
  { name: 'status', in: 'body', required: true, kind: 'string', enum: ['accepted', 'rejected', 'expired'] }
2282
2282
  ]
2283
2283
  },
@@ -2290,7 +2290,7 @@ exports.OPERATIONS = {
2290
2290
  response: 'empty',
2291
2291
  params: [
2292
2292
  { name: 'id', in: 'path', required: true, kind: 'string' },
2293
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
2293
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
2294
2294
  { name: 'url', in: 'body', required: false, kind: 'string' },
2295
2295
  { name: 'events', in: 'body', required: false, kind: 'array' },
2296
2296
  { name: 'description', in: 'body', required: false, kind: 'string' },
@@ -2305,8 +2305,8 @@ exports.OPERATIONS = {
2305
2305
  body: true,
2306
2306
  response: 'empty',
2307
2307
  params: [
2308
- { name: 'id', in: 'path', required: true, kind: 'string', description: 'Convex widget ID' },
2309
- { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Convex organization ID — get it from GET /v1/me or the get_me tool (memberships[].orgId), not the organization name. Optional with a company key or an app\'s key: the key\'s company is used.' },
2308
+ { name: 'id', in: 'path', required: true, kind: 'string', description: 'Widget id: the id the API returns for a widget (a string of 32 lowercase letters and digits).' },
2309
+ { name: 'organizationId', in: 'body', required: false, kind: 'string', description: 'Organization id (a string of 32 lowercase letters and digits), not the organization name. Call GET /v1/me (or the get_me tool) and use memberships[].orgId. Optional with a company key or an app\'s key: the key\'s company is used.' },
2310
2310
  { name: 'name', in: 'body', required: false, kind: 'string' },
2311
2311
  { name: 'isActive', in: 'body', required: false, kind: 'boolean' },
2312
2312
  { name: 'config', in: 'body', required: false, kind: 'object' }