propstack-mcp-server 1.0.2 → 1.1.0

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.
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { textResult, errorResult, fmt, stripUndefined } from "./helpers.js";
2
+ import { textResult, errorResult, fmt, stripUndefined, validateFields, renderProjectedRecord, applyCustomFilters, CONTACT_FIELDS } from "./helpers.js";
3
3
  /**
4
4
  * Generate search variants for a phone number. Propstack normalizes spaces/dashes
5
5
  * but not +49 vs 0 (German formats). Try both to maximize match rate.
@@ -53,23 +53,33 @@ function formatContact(c) {
53
53
  // ── Tool registration ────────────────────────────────────────────────
54
54
  export function registerContactTools(server, client) {
55
55
  // ── search_contacts ──────────────────────────────────────────────
56
- server.tool("search_contacts", `Search and filter contacts in Propstack CRM.
57
-
58
- Use this tool to:
59
- - Find contacts by name, email, or phone number
60
- - List recent leads (sort by created_at desc)
61
- - Find uncontacted leads (last_contact_at is null)
62
- - Filter by broker assignment, status, tags, or GDPR status
63
- - Search across all contact fields with 'q' parameter
64
-
65
- The 'q' parameter searches across: first name, last name, all emails,
66
- all addresses, and all phone numbers.
67
-
68
- Phone search ('phone_number') ignores formatting — both 015712345678
69
- and 0157-123-456-78 will match.
70
-
71
- Returns paginated results. Use expand=true for full details including
72
- custom fields.`, {
56
+ server.tool("search_contacts", `Search and filter contacts in Propstack CRM.
57
+
58
+ Use this tool to:
59
+ - Find contacts by name, email, or phone number
60
+ - List recent leads (sort by created_at desc)
61
+ - Find uncontacted leads (last_contact_at is null)
62
+ - Filter by broker assignment, status, tags, or GDPR status
63
+ - Search across all contact fields with 'q' parameter
64
+
65
+ The 'q' parameter searches across: first name, last name, all emails,
66
+ all addresses, and all phone numbers.
67
+
68
+ Phone search ('phone_number') ignores formatting — both 015712345678
69
+ and 0157-123-456-78 will match.
70
+
71
+ Returns paginated results. Use expand=true for full details including
72
+ custom fields.
73
+
74
+ Custom fields: pass 'custom_filters' as an object of custom-field-name →
75
+ value to filter by agency-specific fields (use list_custom_fields to
76
+ discover field names). Each entry becomes a cf_<name> query parameter,
77
+ e.g. { marketing_channel: "Website" }.
78
+
79
+ Data minimization (Art. 25 DSGVO): pass 'fields' with an array of contact
80
+ field names to return only those fields per contact (e.g. ["first_name",
81
+ "last_name", "email"]). Omit 'fields' to return the default set unchanged.
82
+ Unknown field names produce an error listing the valid options.`, {
73
83
  q: z.string().optional()
74
84
  .describe("Fulltext search across name, email, address, phone"),
75
85
  phone_number: z.string().optional()
@@ -122,9 +132,20 @@ custom fields.`, {
122
132
  .describe("Page number (default: 1)"),
123
133
  per_page: z.number().optional()
124
134
  .describe("Results per page (default: 25)"),
135
+ custom_filters: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).optional()
136
+ .describe("Filter by custom field values. Keys are custom field names WITHOUT the cf_ prefix (use list_custom_fields to discover them); each becomes a cf_<name>=<value> query parameter. Example: { marketing_channel: \"Website\" }"),
137
+ fields: z.array(z.string()).optional()
138
+ .describe("Data minimization: return only these contact fields per result (e.g. [\"first_name\", \"last_name\", \"email\"]). Omit to return the default field set. Unknown field names produce an error."),
125
139
  }, async (args) => {
126
140
  try {
127
- const raw = await client.get("/contacts", { params: args });
141
+ if (args.fields && args.fields.length > 0) {
142
+ const fieldError = validateFields(args.fields, CONTACT_FIELDS, "contact");
143
+ if (fieldError)
144
+ return textResult(fieldError);
145
+ }
146
+ const { fields, custom_filters, ...apiArgs } = args;
147
+ const params = applyCustomFilters(apiArgs, custom_filters);
148
+ const raw = await client.get("/contacts", { params });
128
149
  const res = normalizeContactsResponse(raw);
129
150
  if (!res.data || res.data.length === 0) {
130
151
  return textResult("No contacts found matching your criteria.");
@@ -132,6 +153,12 @@ custom fields.`, {
132
153
  const header = res.meta?.total_count !== undefined
133
154
  ? `Found ${res.meta.total_count} contacts (showing ${res.data.length}):\n\n`
134
155
  : `Found ${res.data.length} contacts:\n\n`;
156
+ if (fields && fields.length > 0) {
157
+ const projected = res.data
158
+ .map((c) => renderProjectedRecord(c, fields, `**ID: ${c.id}**`))
159
+ .join("\n\n---\n\n");
160
+ return textResult(header + projected);
161
+ }
135
162
  const formatted = res.data.map(formatContact).join("\n\n---\n\n");
136
163
  return textResult(header + formatted);
137
164
  }
@@ -140,13 +167,13 @@ custom fields.`, {
140
167
  }
141
168
  });
142
169
  // ── get_contact ──────────────────────────────────────────────────
143
- server.tool("get_contact", `Get full details of a single contact by ID.
144
-
145
- Use this tool to:
146
- - View complete contact information before a call
147
- - Check relationships, documents, and owned properties
148
- - See sub-contacts (e.g. family members at same address)
149
-
170
+ server.tool("get_contact", `Get full details of a single contact by ID.
171
+
172
+ Use this tool to:
173
+ - View complete contact information before a call
174
+ - Check relationships, documents, and owned properties
175
+ - See sub-contacts (e.g. family members at same address)
176
+
150
177
  Use 'include' to load related data in one request.`, {
151
178
  id: z.number()
152
179
  .describe("Contact ID"),
@@ -166,16 +193,16 @@ Use 'include' to load related data in one request.`, {
166
193
  }
167
194
  });
168
195
  // ── create_contact ───────────────────────────────────────────────
169
- server.tool("create_contact", `Create a new contact in Propstack CRM.
170
-
171
- Use this tool to:
172
- - Register a new lead after a phone call
173
- - Create a contact from a web form submission
174
- - Add a new property owner
175
-
176
- Auto-upserts: if a contact with the same email or old_crm_id already
177
- exists, it will be updated instead of creating a duplicate.
178
-
196
+ server.tool("create_contact", `Create a new contact in Propstack CRM.
197
+
198
+ Use this tool to:
199
+ - Register a new lead after a phone call
200
+ - Create a contact from a web form submission
201
+ - Add a new property owner
202
+
203
+ Auto-upserts: if a contact with the same email or old_crm_id already
204
+ exists, it will be updated instead of creating a duplicate.
205
+
179
206
  Use get_contact_sources first to find valid source IDs.`, {
180
207
  first_name: z.string().optional()
181
208
  .describe("First name"),
@@ -233,20 +260,20 @@ Use get_contact_sources first to find valid source IDs.`, {
233
260
  }
234
261
  });
235
262
  // ── update_contact ───────────────────────────────────────────────
236
- server.tool("update_contact", `Update an existing contact in Propstack CRM.
237
-
238
- Use this tool to:
239
- - Update contact details after a call
240
- - Change broker assignment
241
- - Add or remove tags (Merkmale)
242
- - Update GDPR status
243
- - Change contact rating or status
244
-
245
- Tag management options:
246
- - group_ids: replaces ALL tags with this list
247
- - add_group_ids: adds tags without removing existing ones
248
- - sub_group_ids: removes specific tags
249
-
263
+ server.tool("update_contact", `Update an existing contact in Propstack CRM.
264
+
265
+ Use this tool to:
266
+ - Update contact details after a call
267
+ - Change broker assignment
268
+ - Add or remove tags (Merkmale)
269
+ - Update GDPR status
270
+ - Change contact rating or status
271
+
272
+ Tag management options:
273
+ - group_ids: replaces ALL tags with this list
274
+ - add_group_ids: adds tags without removing existing ones
275
+ - sub_group_ids: removes specific tags
276
+
250
277
  Only provide the fields you want to change.`, {
251
278
  id: z.number()
252
279
  .describe("Contact ID to update"),
@@ -297,13 +324,13 @@ Only provide the fields you want to change.`, {
297
324
  }
298
325
  });
299
326
  // ── delete_contact ───────────────────────────────────────────────
300
- server.tool("delete_contact", `Delete a contact from Propstack CRM (soft delete).
301
-
302
- The contact is moved to a 30-day recycle bin and can be restored.
303
-
304
- Use this tool for:
305
- - GDPR deletion requests (Art. 17 DSGVO)
306
- - Removing duplicate contacts
327
+ server.tool("delete_contact", `Delete a contact from Propstack CRM (soft delete).
328
+
329
+ The contact is moved to a 30-day recycle bin and can be restored.
330
+
331
+ Use this tool for:
332
+ - GDPR deletion requests (Art. 17 DSGVO)
333
+ - Removing duplicate contacts
307
334
  - Cleaning up test data`, {
308
335
  id: z.number()
309
336
  .describe("Contact ID to delete"),
@@ -317,12 +344,12 @@ Use this tool for:
317
344
  }
318
345
  });
319
346
  // ── get_contact_sources ──────────────────────────────────────────
320
- server.tool("get_contact_sources", `List all available contact/lead sources in Propstack.
321
-
322
- Returns the list of sources like "Immobilienscout 24", "Website",
323
- "Empfehlung", etc. with their IDs.
324
-
325
- Use this tool to look up valid source IDs before creating or updating
347
+ server.tool("get_contact_sources", `List all available contact/lead sources in Propstack.
348
+
349
+ Returns the list of sources like "Immobilienscout 24", "Website",
350
+ "Empfehlung", etc. with their IDs.
351
+
352
+ Use this tool to look up valid source IDs before creating or updating
326
353
  contacts with client_source_id.`, {}, async () => {
327
354
  try {
328
355
  const sources = await client.get("/contact_sources");
@@ -337,16 +364,16 @@ contacts with client_source_id.`, {}, async () => {
337
364
  }
338
365
  });
339
366
  // ── search_contacts_by_phone ─────────────────────────────────────
340
- server.tool("search_contacts_by_phone", `Look up a contact by phone number.
341
-
342
- This is the go-to tool for voice agent caller identification. When a call
343
- comes in, use this tool with the caller's phone number to instantly find
344
- the matching contact.
345
-
346
- Phone matching ignores formatting — all of these find the same contact:
347
- 015712345678, 0157-123-456-78, +49 157 12345678
348
-
349
- Returns the matching contact(s) with key details. If no match is found,
367
+ server.tool("search_contacts_by_phone", `Look up a contact by phone number.
368
+
369
+ This is the go-to tool for voice agent caller identification. When a call
370
+ comes in, use this tool with the caller's phone number to instantly find
371
+ the matching contact.
372
+
373
+ Phone matching ignores formatting — all of these find the same contact:
374
+ 015712345678, 0157-123-456-78, +49 157 12345678
375
+
376
+ Returns the matching contact(s) with key details. If no match is found,
350
377
  the caller is unknown and you should create a new contact.`, {
351
378
  phone_number: z.string()
352
379
  .describe("Phone number to search for (any format — formatting is ignored)"),
@@ -1 +1 @@
1
- {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/tools/contacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/tools/contacts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deals.d.ts","sourceRoot":"","sources":["../../src/tools/deals.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAA8B,MAAM,uBAAuB,CAAC;AAO9G,0EAA0E;AAC1E,wBAAsB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAG9F;AAED,4FAA4F;AAC5F,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAwB1G;AAyED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CAkOlF"}
1
+ {"version":3,"file":"deals.d.ts","sourceRoot":"","sources":["../../src/tools/deals.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAA8B,MAAM,uBAAuB,CAAC;AAO9G,0EAA0E;AAC1E,wBAAsB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAG9F;AAED,4FAA4F;AAC5F,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAwB1G;AAyED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CAsPlF"}
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { textResult, errorResult, fmt, fmtPrice, stripUndefined } from "./helpers.js";
2
+ import { textResult, errorResult, fmt, fmtPrice, stripUndefined, validateFields, renderProjectedRecord, DEAL_FIELDS } from "./helpers.js";
3
3
  // ── Response formatting ──────────────────────────────────────────────
4
4
  const FEELING_LABELS = ["none", "cold", "warm", "hot"];
5
5
  /** Fetch pipelines with safe unwrapping — API returns { data: [...] }. */
@@ -92,27 +92,32 @@ function formatDealRow(d) {
92
92
  // ── Tool registration ────────────────────────────────────────────────
93
93
  export function registerDealTools(server, client) {
94
94
  // ── search_deals ────────────────────────────────────────────────
95
- server.tool("search_deals", `Search and filter deals (contact↔property relationships) in Propstack.
96
-
97
- Use this tool to:
98
- - Show all deals in a specific pipeline stage
99
- - Find deals for a contact or property
100
- - Track deal pipeline progress for a project
101
- - Find lost deals and cancellation reasons
102
- - Filter by broker, team, feeling (cold/warm/hot)
103
-
104
- A "deal" represents an interested contact linked to a property at a
105
- specific stage in a sales/rental pipeline (e.g. Anfrage → Besichtigung
106
- → Reserviert → Notartermin → Verkauft).
107
-
108
- Use include="client,property" to get expanded contact and property
109
- details in one request.
110
-
111
- Common queries:
112
- - All active deals: category="qualified"
113
- - Lost deals this month: category="lost" + created_at_from
114
- - Deals for a property: property_id=123
115
- - Pipeline view: deal_pipeline_id + sort_by=deal_stage_id`, {
95
+ server.tool("search_deals", `Search and filter deals (contact↔property relationships) in Propstack.
96
+
97
+ Use this tool to:
98
+ - Show all deals in a specific pipeline stage
99
+ - Find deals for a contact or property
100
+ - Track deal pipeline progress for a project
101
+ - Find lost deals and cancellation reasons
102
+ - Filter by broker, team, feeling (cold/warm/hot)
103
+
104
+ A "deal" represents an interested contact linked to a property at a
105
+ specific stage in a sales/rental pipeline (e.g. Anfrage → Besichtigung
106
+ → Reserviert → Notartermin → Verkauft).
107
+
108
+ Use include="client,property" to get expanded contact and property
109
+ details in one request.
110
+
111
+ Common queries:
112
+ - All active deals: category="qualified"
113
+ - Lost deals this month: category="lost" + created_at_from
114
+ - Deals for a property: property_id=123
115
+ - Pipeline view: deal_pipeline_id + sort_by=deal_stage_id
116
+
117
+ Data minimization (Art. 25 DSGVO): pass 'fields' with an array of deal field
118
+ names to return only those fields per deal (e.g. ["id", "deal_stage_id",
119
+ "sold_price"]). Omit 'fields' to return the default set unchanged. Unknown
120
+ field names produce an error listing the valid options.`, {
116
121
  client_id: z.number().optional()
117
122
  .describe("Filter by contact ID"),
118
123
  property_id: z.number().optional()
@@ -163,10 +168,18 @@ Common queries:
163
168
  .describe("Page number (default: 1)"),
164
169
  per_page: z.number().optional()
165
170
  .describe("Results per page (default: 25)"),
171
+ fields: z.array(z.string()).optional()
172
+ .describe("Data minimization: return only these deal fields per result (e.g. [\"id\", \"deal_stage_id\", \"sold_price\"]). Omit to return the default field set. Unknown field names produce an error."),
166
173
  }, async (args) => {
167
174
  try {
175
+ if (args.fields && args.fields.length > 0) {
176
+ const fieldError = validateFields(args.fields, DEAL_FIELDS, "deal");
177
+ if (fieldError)
178
+ return textResult(fieldError);
179
+ }
180
+ const { fields, ...apiArgs } = args;
168
181
  const [res, pipelines] = await Promise.all([
169
- client.get("/client_properties", { params: args }),
182
+ client.get("/client_properties", { params: apiArgs }),
170
183
  fetchPipelines(client).catch(() => []),
171
184
  ]);
172
185
  if (!res.data || res.data.length === 0) {
@@ -177,6 +190,12 @@ Common queries:
177
190
  const header = res.meta?.total_count !== undefined
178
191
  ? `Found ${res.meta.total_count} deals (showing ${res.data.length}):\n\n`
179
192
  : `Found ${res.data.length} deals:\n\n`;
193
+ if (fields && fields.length > 0) {
194
+ const projected = res.data
195
+ .map((d) => renderProjectedRecord(d, fields, `**ID: ${d.id}**`))
196
+ .join("\n\n---\n\n");
197
+ return textResult(header + projected);
198
+ }
180
199
  const table = [
181
200
  "| ID | Contact | Property | Stage | Feeling | Created |",
182
201
  "|---|---|---|---|---|---|",
@@ -189,18 +208,18 @@ Common queries:
189
208
  }
190
209
  });
191
210
  // ── create_deal ─────────────────────────────────────────────────
192
- server.tool("create_deal", `Create a deal linking an interested contact to a property in Propstack.
193
-
194
- A deal represents a contact's interest in a property and tracks it
195
- through pipeline stages (e.g. Anfrage → Besichtigung → Reserviert →
196
- Notartermin → Verkauft).
197
-
198
- Use this tool after:
199
- - A viewing to formalize interest
200
- - A contact inquiry about a property
201
- - Moving a lead into the sales pipeline
202
-
203
- Requires client_id, property_id, and deal_stage_id. Use list_pipelines or
211
+ server.tool("create_deal", `Create a deal linking an interested contact to a property in Propstack.
212
+
213
+ A deal represents a contact's interest in a property and tracks it
214
+ through pipeline stages (e.g. Anfrage → Besichtigung → Reserviert →
215
+ Notartermin → Verkauft).
216
+
217
+ Use this tool after:
218
+ - A viewing to formalize interest
219
+ - A contact inquiry about a property
220
+ - Moving a lead into the sales pipeline
221
+
222
+ Requires client_id, property_id, and deal_stage_id. Use list_pipelines or
204
223
  get_pipeline to find valid pipeline and stage IDs.`, {
205
224
  client_id: z.number()
206
225
  .describe("Contact ID (required)"),
@@ -234,16 +253,16 @@ get_pipeline to find valid pipeline and stage IDs.`, {
234
253
  }
235
254
  });
236
255
  // ── update_deal ─────────────────────────────────────────────────
237
- server.tool("update_deal", `Update an existing deal in Propstack.
238
-
239
- Use this tool to:
240
- - Move a deal to the next pipeline stage (change deal_stage_id)
241
- - Update expected/agreed price
242
- - Add or update notes
243
- - Change broker assignment
244
- - Update feeling score after contact
245
- - Record cancellation reason
246
-
256
+ server.tool("update_deal", `Update an existing deal in Propstack.
257
+
258
+ Use this tool to:
259
+ - Move a deal to the next pipeline stage (change deal_stage_id)
260
+ - Update expected/agreed price
261
+ - Add or update notes
262
+ - Change broker assignment
263
+ - Update feeling score after contact
264
+ - Record cancellation reason
265
+
247
266
  Only provide the fields you want to change.`, {
248
267
  id: z.number()
249
268
  .describe("Deal ID to update"),
@@ -1 +1 @@
1
- {"version":3,"file":"deals.js","sourceRoot":"","sources":["../../src/tools/deals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deals.js","sourceRoot":"","sources":["../../src/tools/deals.ts"],"names":[],"mappings":"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"}
@@ -36,4 +36,36 @@ export declare function fmtNested(obj: unknown, key: string, fallback?: string):
36
36
  * nulls to the API when optional fields are omitted.
37
37
  */
38
38
  export declare function stripUndefined<T extends Record<string, unknown>>(obj: T): Partial<T>;
39
+ export declare const CONTACT_FIELDS: readonly ["id", "name", "first_name", "last_name", "salutation", "email", "phone", "home_cell", "home_phone", "office_phone", "fax", "company", "position", "description", "home_street", "home_house_number", "home_zip_code", "home_city", "home_country", "office_street", "office_house_number", "office_zip_code", "office_city", "office_country", "broker_id", "broker", "client_source_id", "client_source", "client_status_id", "client_status", "status", "language", "rating", "newsletter", "accept_contact", "gdpr_status", "warning_notice", "groups", "custom_fields", "last_contact_at", "last_contact_at_formatted", "created_at", "updated_at", "archived", "children", "documents", "relationships", "owned_properties", "old_crm_id"];
40
+ export declare const PROPERTY_FIELDS: readonly ["id", "title", "unit_id", "exposee_id", "marketing_type", "object_type", "rs_type", "rs_category", "street", "house_number", "zip_code", "city", "country", "lat", "lng", "price", "base_rent", "total_rent", "living_space", "plot_area", "property_space_value", "number_of_rooms", "number_of_bed_rooms", "number_of_bath_rooms", "floor", "construction_year", "description_note", "location_note", "furnishing_note", "other_note", "courtage", "courtage_note", "broker_id", "broker", "project_id", "project", "status", "property_status", "property_groups", "custom_fields", "images", "floorplans", "documents", "links", "created_at", "updated_at", "archived"];
41
+ export declare const DEAL_FIELDS: readonly ["id", "broker_id", "client_id", "property_id", "project_id", "deal_stage_id", "deal_pipeline_id", "sold_price", "note", "date", "start_date", "reservation_reason_id", "feeling", "category", "client", "property", "deal_stage", "deal_pipeline", "created_at", "updated_at"];
42
+ /**
43
+ * Validate a requested `fields` list against a known field set. Returns a
44
+ * clear, user-facing error message if any field is unknown, or null if all
45
+ * requested fields are valid. Unknown fields are reported by name alongside
46
+ * the full list of valid options — never silently ignored.
47
+ */
48
+ export declare function validateFields(requested: readonly string[], known: readonly string[], entityLabel: string): string | null;
49
+ /**
50
+ * Render a single (possibly nested) field value for projected output.
51
+ * Unwraps Propstack scalar wrappers and name/label objects where possible
52
+ * for readability; renders genuine nested objects/arrays as JSON so no data
53
+ * is lost.
54
+ */
55
+ export declare function renderFieldValue(value: unknown): string;
56
+ /**
57
+ * Project a record to only the requested fields and render it as a markdown
58
+ * block. `header` identifies the record (e.g. its ID). Used by bulk tools
59
+ * when a `fields` whitelist is supplied.
60
+ */
61
+ export declare function renderProjectedRecord(record: Record<string, unknown>, fields: readonly string[], header: string): string;
62
+ type QueryParams = Record<string, string | number | boolean | string[] | number[] | undefined>;
63
+ /**
64
+ * Expand a custom-field filter map into `cf_<name>` query parameters and
65
+ * merge it into the given params. Field names are taken as-is (the cf_
66
+ * prefix is added if missing), so the caller passes plain custom field
67
+ * names from list_custom_fields. Returns a new object; params is not mutated.
68
+ */
69
+ export declare function applyCustomFilters(params: QueryParams, customFilters: Record<string, string | number | boolean> | undefined): QueryParams;
70
+ export {};
39
71
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/tools/helpers.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM;;;;;EAEtC;AAiCD;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAyBhD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;;;;;;;;;;;EAwBvD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAoB1D;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,SAAS,GAAG,MAAM,CAK7D;AAED,6DAA6D;AAC7D,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAQxD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAI/C;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,SAAO,GAAG,MAAM,CAI3D;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAS,GAAG,MAAM,CAI9E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAQpF"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/tools/helpers.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM;;;;;EAEtC;AAiCD;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CA4BhD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;;;;;;;;;;;EAwBvD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAoB1D;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,SAAS,GAAG,MAAM,CAK7D;AAED,6DAA6D;AAC7D,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAQxD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAI/C;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,SAAO,GAAG,MAAM,CAI3D;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAS,GAAG,MAAM,CAI9E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAQpF;AAUD,eAAO,MAAM,cAAc,2tBAYjB,CAAC;AAEX,eAAO,MAAM,eAAe,wpBAUlB,CAAC;AAEX,eAAO,MAAM,WAAW,0RAKd,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,IAAI,CASf;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAWvD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,MAAM,EAAE,MAAM,GACb,MAAM,CAGR;AAED,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;AAE/F;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,SAAS,GACnE,WAAW,CAQb"}