You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(salesforce): correct the depth off-by-one and the LIMIT ceiling
Salesforce counts relationship levels, not dotted segments -- its own
example is 'Contact.Account.Owner.FirstName (three levels)', four segments.
The check compared segment count, so a legal five-level path was rejected,
and the test asserted that rejection as correct.
2000 is the synchronous batch size, not a LIMIT maximum. Capping there
removed the paging workflow these tools ship query_more for: a larger LIMIT
returns the first batch with done:false and a locator.
Also allows the documented FIELDS()/toLabel()/FORMAT()/convertCurrency()
wrappers, recursing into the same field-path check so only a validated API
name reaches the statement; seven new vectors attack the wrapper syntax.
description: 'Insert or update vector points with payload metadata into a Qdrant collection.',
305
305
content:
306
-
'# Upsert Points\n\nLoad vectors into a Qdrant collection.\n\n## Steps\n1. Use the Upsert operation with the Qdrant URL, Collection name, and API Key.\n2. Provide Points as a JSON array, each with an id, a vector matching the collection dimension, and an optional payload of metadata for later filtering.\n3. Confirm the upserted count from the response.\n\n## Output\nReport how many points were upserted into which collection and surface any payload validation issues.',
306
+
'# Upsert Points\n\nLoad vectors into a Qdrant collection.\n\n## Steps\n1. Use the Upsert operation with the Qdrant URL, Collection name, and API Key.\n2. Provide Points as a JSON array, each with an id, a vector matching the collection dimension, and an optional payload of metadata for later filtering.\n3. Confirm the response status (`acknowledged` or `completed`) and keep the `operation_id` if you need to track an async write.\n\n## Output\nReport the upsert status and operation_id, which collection was targeted, and surface any payload validation issues. Qdrant does not return a count of points written \u2014 if you cite a number, cite the number of points you sent.',
description: 'Maximum number of results (default: 100, max: 2000)',
58
+
description: 'Maximum number of results (default: 100)',
59
59
},
60
60
fields: {
61
61
type: 'string',
62
62
required: false,
63
63
visibility: 'user-or-llm',
64
-
description: 'Comma-separated field API names (e.g., "Id,Name,Industry,Phone")',
64
+
description: 'Comma-separated field API names (e.g., "Id,Name,Industry,Phone") Also accepts FIELDS(STANDARD|CUSTOM|ALL) and toLabel()/FORMAT()/convertCurrency() around a single field.',
65
65
},
66
66
orderBy: {
67
67
type: 'string',
68
68
required: false,
69
69
visibility: 'user-or-llm',
70
-
description: 'Field and direction for sorting (e.g., "Name ASC" or "CreatedDate DESC")',
70
+
description: 'Field and direction for sorting (e.g., "Name ASC" or "CreatedDate DESC") Bare field API names only, optionally with ASC/DESC and NULLS FIRST/LAST; SOQL functions such as DISTANCE() are not accepted here — use the Salesforce Query tool for those.',
description: 'Maximum number of results to return (default: 100, max: 2000)',
49
+
description: 'Maximum number of results to return (default: 100)',
50
50
},
51
51
fields: {
52
52
type: 'string',
53
53
required: false,
54
54
visibility: 'user-or-llm',
55
-
description: 'Comma-separated list of field API names to return',
55
+
description: 'Comma-separated list of field API names to return Also accepts FIELDS(STANDARD|CUSTOM|ALL) and toLabel()/FORMAT()/convertCurrency() around a single field.',
56
56
},
57
57
orderBy: {
58
58
type: 'string',
59
59
required: false,
60
60
visibility: 'user-or-llm',
61
-
description: 'Field and direction for sorting (e.g., CreatedDate DESC)',
61
+
description: 'Field and direction for sorting (e.g., CreatedDate DESC) Bare field API names only, optionally with ASC/DESC and NULLS FIRST/LAST; SOQL functions such as DISTANCE() are not accepted here — use the Salesforce Query tool for those.',
description: 'Maximum number of results (default: 100, max: 2000). Only for list query.',
55
+
description: 'Maximum number of results (default: 100). Only for list query.',
56
56
},
57
57
fields: {
58
58
type: 'string',
59
59
required: false,
60
60
visibility: 'user-or-llm',
61
-
description: 'Comma-separated field API names (e.g., "Id,FirstName,LastName,Email,Phone")',
61
+
description: 'Comma-separated field API names (e.g., "Id,FirstName,LastName,Email,Phone") Also accepts FIELDS(STANDARD|CUSTOM|ALL) and toLabel()/FORMAT()/convertCurrency() around a single field.',
62
62
},
63
63
orderBy: {
64
64
type: 'string',
65
65
required: false,
66
66
visibility: 'user-or-llm',
67
-
description: 'Field and direction for sorting (e.g., "LastName ASC"). Only for list query.',
67
+
description: 'Field and direction for sorting (e.g., "LastName ASC"). Only for list query. Bare field API names only, optionally with ASC/DESC and NULLS FIRST/LAST; SOQL functions such as DISTANCE() are not accepted here — use the Salesforce Query tool for those.',
description: 'Maximum number of results to return (default: 100, max: 2000)',
49
+
description: 'Maximum number of results to return (default: 100)',
50
50
},
51
51
fields: {
52
52
type: 'string',
53
53
required: false,
54
54
visibility: 'user-or-llm',
55
-
description: 'Comma-separated list of field API names to return',
55
+
description: 'Comma-separated list of field API names to return Also accepts FIELDS(STANDARD|CUSTOM|ALL) and toLabel()/FORMAT()/convertCurrency() around a single field.',
56
56
},
57
57
orderBy: {
58
58
type: 'string',
59
59
required: false,
60
60
visibility: 'user-or-llm',
61
-
description: 'Field and direction for sorting (e.g., LastName ASC)',
61
+
description: 'Field and direction for sorting (e.g., LastName ASC) Bare field API names only, optionally with ASC/DESC and NULLS FIRST/LAST; SOQL functions such as DISTANCE() are not accepted here — use the Salesforce Query tool for those.',
description: 'Maximum number of results to return (default: 100, max: 2000)',
55
+
description: 'Maximum number of results to return (default: 100)',
56
56
},
57
57
fields: {
58
58
type: 'string',
59
59
required: false,
60
60
visibility: 'user-or-llm',
61
-
description: 'Comma-separated list of field API names to return',
61
+
description: 'Comma-separated list of field API names to return Also accepts FIELDS(STANDARD|CUSTOM|ALL) and toLabel()/FORMAT()/convertCurrency() around a single field.',
62
62
},
63
63
orderBy: {
64
64
type: 'string',
65
65
required: false,
66
66
visibility: 'user-or-llm',
67
-
description: 'Field and direction for sorting (e.g., CloseDate DESC)',
67
+
description: 'Field and direction for sorting (e.g., CloseDate DESC) Bare field API names only, optionally with ASC/DESC and NULLS FIRST/LAST; SOQL functions such as DISTANCE() are not accepted here — use the Salesforce Query tool for those.',
description: 'Maximum number of results to return (default: 100, max: 2000)',
61
+
description: 'Maximum number of results to return (default: 100)',
62
62
},
63
63
fields: {
64
64
type: 'string',
65
65
required: false,
66
66
visibility: 'user-or-llm',
67
-
description: 'Comma-separated list of field API names to return',
67
+
description: 'Comma-separated list of field API names to return Also accepts FIELDS(STANDARD|CUSTOM|ALL) and toLabel()/FORMAT()/convertCurrency() around a single field.',
68
68
},
69
69
orderBy: {
70
70
type: 'string',
71
71
required: false,
72
72
visibility: 'user-or-llm',
73
-
description: 'Field and direction for sorting (e.g., ActivityDate DESC)',
73
+
description: 'Field and direction for sorting (e.g., ActivityDate DESC) Bare field API names only, optionally with ASC/DESC and NULLS FIRST/LAST; SOQL functions such as DISTANCE() are not accepted here — use the Salesforce Query tool for those.',
0 commit comments