@mondaydotcomorg/agent-toolkit 2.24.1 → 2.24.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/core/index.js +3 -3
- package/dist/cjs/core/index.js.map +1 -1
- package/dist/cjs/mcp/index.js +3 -3
- package/dist/cjs/mcp/index.js.map +1 -1
- package/dist/cjs/openai/index.js +3 -3
- package/dist/cjs/openai/index.js.map +1 -1
- package/dist/esm/core/index.js +3 -3
- package/dist/esm/core/index.js.map +1 -1
- package/dist/esm/mcp/index.js +3 -3
- package/dist/esm/mcp/index.js.map +1 -1
- package/dist/esm/openai/index.js +3 -3
- package/dist/esm/openai/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/mcp/index.js
CHANGED
|
@@ -885,7 +885,7 @@
|
|
|
885
885
|
}
|
|
886
886
|
}
|
|
887
887
|
}
|
|
888
|
-
`,mN={boardId:e.z.number().describe("The id of the board to get items from"),itemIds:e.z.array(e.z.number()).optional().describe("The ids of the items to get. The count of items should be less than 100."),searchTerm:e.z.string().optional().describe('\n The search term to use for the search.\n - Use this when: the user provides a vague, incomplete, or approximate search term (e.g., “marketing campaign”, “John’s task”, “budget-related”), and there isn’t a clear exact compare value for a specific field.\n - Do not use this when: the user specifies an exact value that maps directly to a column comparison (e.g., name contains "marketing campaign", status = "Done", priority = "High", owner = "Daniel"). In these cases, prefer structured compare filters.\n '),limit:e.z.number().min(1).max(500).optional().default(25).describe("The number of items to get"),cursor:e.z.string().optional().describe("The cursor to get the next page of items, use the nextCursor from the previous response. If the nextCursor was null, it means there are no more items to get"),includeColumns:e.z.boolean().optional().default(!1).describe("Whether to include column values in the response.\nPERFORMANCE OPTIMIZATION: Only set this to true when you actually need the column data. Excluding columns significantly reduces token usage and improves response latency. If you only need to count items, get item IDs/names, or check if items exist, keep this false."),includeSubItems:e.z.boolean().optional().default(!1).describe("Whether to include sub items in the response. PERFORMANCE OPTIMIZATION: Only set this to true when you actually need the sub items data."),subItemLimit:e.z.number().min(1).max(100).optional().default(25).describe("The number of sub items to get per item. This is only used when includeSubItems is true."),filtersStringified:e.z.string().optional().describe('**ONLY FOR MICROSOFT COPILOT**: The filters to apply on the items. Send this as a stringified JSON array of "filters" field. Read "filters" field description for details how to use it.'),filters:e.z.array(e.z.object({columnId:e.z.string().describe("The id of the column to filter by"),compareAttribute:e.z.string().optional().describe("The attribute to compare the value to"),compareValue:e.z.union([e.z.string(),e.z.number(),e.z.boolean(),e.z.array(e.z.union([e.z.string(),e.z.number()]))]).describe("The value to compare the attribute to. This can be a string or index value depending on the column type."),operator:e.z.nativeEnum(Cx).optional().default(Cx.AnyOf).describe("The operator to use for the filter")})).optional().describe('The configuration of filters to apply on the items. Before sending the filters, use get_board_info tool to check "filteringGuidelines" key for filtering by the column.'),filtersOperator:e.z.nativeEnum(Px).optional().default(Px.And).describe("The operator to use for the filters"),columnIds:e.z.array(e.z.string()).optional().describe("The ids of the item columns and subitem columns to get, can be used to reduce the response size when user asks for specific columns. Works only when includeColumns is true. If not provided, all columns will be returned"),orderByStringified:e.z.string().optional().describe('**ONLY FOR MICROSOFT COPILOT**: The order by to apply on the items. Send this as a stringified JSON array of "orderBy" field. Read "orderBy" field description for details how to use it.'),orderBy:e.z.array(e.z.object({columnId:e.z.string().describe("The id of the column to order by"),direction:e.z.nativeEnum(Rx).optional().default(Rx.Asc).describe("The direction to order by")})).optional().describe("The columns to order by, will control the order of the items in the response")};const uN={boardId:e.z.number().describe("The id of the board to get the schema of")};const hN=MT`
|
|
888
|
+
`,mN={boardId:e.z.number().describe("The id of the board to get items from"),itemIds:e.z.array(e.z.number()).optional().describe("The ids of the items to get. The count of items should be less than 100."),searchTerm:e.z.string().optional().describe('\n The search term to use for the search.\n - Use this when: the user provides a vague, incomplete, or approximate search term (e.g., “marketing campaign”, “John’s task”, “budget-related”), and there isn’t a clear exact compare value for a specific field.\n - Do not use this when: the user specifies an exact value that maps directly to a column comparison (e.g., name contains "marketing campaign", status = "Done", priority = "High", owner = "Daniel"). In these cases, prefer structured compare filters.\n '),limit:e.z.number().min(1).max(500).optional().default(25).describe("The number of items to get"),cursor:e.z.string().optional().describe("The cursor to get the next page of items, use the nextCursor from the previous response. If the nextCursor was null, it means there are no more items to get"),includeColumns:e.z.boolean().optional().default(!1).describe("Whether to include column values in the response.\nPERFORMANCE OPTIMIZATION: Only set this to true when you actually need the column data. Excluding columns significantly reduces token usage and improves response latency. If you only need to count items, get item IDs/names, or check if items exist, keep this false."),includeSubItems:e.z.boolean().optional().default(!1).describe("Whether to include sub items in the response. PERFORMANCE OPTIMIZATION: Only set this to true when you actually need the sub items data."),subItemLimit:e.z.number().min(1).max(100).optional().default(25).describe("The number of sub items to get per item. This is only used when includeSubItems is true."),filtersStringified:e.z.string().optional().describe('**ONLY FOR MICROSOFT COPILOT**: The filters to apply on the items. Send this as a stringified JSON array of "filters" field. Read "filters" field description for details how to use it.'),filters:e.z.array(e.z.object({columnId:e.z.string().describe("The id of the column to filter by"),compareAttribute:e.z.string().optional().describe("The attribute to compare the value to. This is OPTIONAL property."),compareValue:e.z.union([e.z.string(),e.z.number(),e.z.boolean(),e.z.array(e.z.union([e.z.string(),e.z.number()]))]).describe("The value to compare the attribute to. This can be a string or index value depending on the column type."),operator:e.z.nativeEnum(Cx).optional().default(Cx.AnyOf).describe("The operator to use for the filter")})).optional().describe('The configuration of filters to apply on the items. Before sending the filters, use get_board_info tool to check "filteringGuidelines" key for filtering by the column.'),filtersOperator:e.z.nativeEnum(Px).optional().default(Px.And).describe("The operator to use for the filters"),columnIds:e.z.array(e.z.string()).optional().describe("The ids of the item columns and subitem columns to get, can be used to reduce the response size when user asks for specific columns. Works only when includeColumns is true. If not provided, all columns will be returned"),orderByStringified:e.z.string().optional().describe('**ONLY FOR MICROSOFT COPILOT**: The order by to apply on the items. Send this as a stringified JSON array of "orderBy" field. Read "orderBy" field description for details how to use it.'),orderBy:e.z.array(e.z.object({columnId:e.z.string().describe("The id of the column to order by"),direction:e.z.nativeEnum(Rx).optional().default(Rx.Asc).describe("The direction to order by")})).optional().describe("The columns to order by, will control the order of the items in the response")};const uN={boardId:e.z.number().describe("The id of the board to get the schema of")};const hN=MT`
|
|
889
889
|
query GetColumnTypeSchema($type: ColumnType!) {
|
|
890
890
|
get_column_type_schema(type: $type)
|
|
891
891
|
}
|
|
@@ -1281,7 +1281,7 @@
|
|
|
1281
1281
|
}
|
|
1282
1282
|
}
|
|
1283
1283
|
}
|
|
1284
|
-
`,vA=new Set([x_.Case,x_.Between,x_.Left,x_.Raw,x_.None,x_.CountKeys]),gA=Object.values(x_).filter((e=>!vA.has(e))),bA=new Set([x_.Left,x_.Trim,x_.Upper,x_.Lower,x_.DateTruncDay,x_.DateTruncWeek,x_.DateTruncMonth,x_.DateTruncQuarter,x_.DateTruncYear,x_.Color,x_.Label,x_.EndDate,x_.StartDate,x_.Hour,x_.PhoneCountryShortName,x_.Person,x_.Upper,x_.Lower,x_.Order,x_.Length,x_.Flatten,x_.IsDone]);function yA(e){return{column_id:e}}new Set([x_.Count,x_.CountDistinct,x_.CountSubitems,x_.CountItems,x_.First,x_.Sum,x_.Average,x_.Median,x_.Min,x_.Max,x_.MinMax]);const wA={boardId:e.z.number().describe("The id of the board to get insights for"),aggregationsStringified:e.z.string().optional().describe('**ONLY FOR MICROSOFT COPILOT**: The aggregations to get. Send this as a stringified JSON array of "aggregations" field. Read "aggregations" field description for details how to use it.'),aggregations:e.z.array(e.z.object({function:e.z.enum(gA).describe("The function of the aggregation. For simple column value leave undefined").optional(),columnId:e.z.string().describe("The id of the column to aggregate")})).describe("The aggregations to get. Transformative functions and plain columns (no function) must be in group by. [REQUIRED PRECONDITION]: Either send this field or the stringified version of it.").optional(),groupBy:e.z.array(e.z.string()).describe("The columns to group by. All columns in the group by must be in the aggregations as well without a function.").optional(),limit:e.z.number().describe("The limit of the results").max(1e3).optional().default(1e3),filtersStringified:e.z.string().optional().describe('**ONLY FOR MICROSOFT COPILOT**: The filters to apply on the items. Send this as a stringified JSON array of "filters" field. Read "filters" field description for details how to use it.'),filters:e.z.array(e.z.object({columnId:e.z.string().describe("The id of the column to filter by"),compareAttribute:e.z.string().optional().describe("The attribute to compare the value to"),compareValue:e.z.any().describe("The value to compare the attribute to. This can be a string or index value depending on the column type."),operator:e.z.nativeEnum(Cx).optional().default(Cx.AnyOf).describe("The operator to use for the filter")})).optional().describe('The configuration of filters to apply on the items. Before sending the filters, use get_board_info tool to check "filteringGuidelines" key for filtering by the column.'),filtersOperator:e.z.nativeEnum(Px).optional().default(Px.And).describe("The logical operator to use for the filters"),orderByStringified:e.z.string().optional().describe('**ONLY FOR MICROSOFT COPILOT**: The order by to apply on the items. Send this as a stringified JSON array of "orderBy" field. Read "orderBy" field description for details how to use it.'),orderBy:e.z.array(e.z.object({columnId:e.z.string().describe("The id of the column to order by"),direction:e.z.nativeEnum(Rx).optional().default(Rx.Asc).describe("The direction to order by")})).optional().describe("The columns to order by, will control the order of the items in the response")};const _A=MT`
|
|
1284
|
+
`,vA=new Set([x_.Case,x_.Between,x_.Left,x_.Raw,x_.None,x_.CountKeys]),gA=Object.values(x_).filter((e=>!vA.has(e))),bA=new Set([x_.Left,x_.Trim,x_.Upper,x_.Lower,x_.DateTruncDay,x_.DateTruncWeek,x_.DateTruncMonth,x_.DateTruncQuarter,x_.DateTruncYear,x_.Color,x_.Label,x_.EndDate,x_.StartDate,x_.Hour,x_.PhoneCountryShortName,x_.Person,x_.Upper,x_.Lower,x_.Order,x_.Length,x_.Flatten,x_.IsDone]);function yA(e){return{column_id:e}}new Set([x_.Count,x_.CountDistinct,x_.CountSubitems,x_.CountItems,x_.First,x_.Sum,x_.Average,x_.Median,x_.Min,x_.Max,x_.MinMax]);const wA={boardId:e.z.number().describe("The id of the board to get insights for"),aggregationsStringified:e.z.string().optional().describe('**ONLY FOR MICROSOFT COPILOT**: The aggregations to get. Send this as a stringified JSON array of "aggregations" field. Read "aggregations" field description for details how to use it.'),aggregations:e.z.array(e.z.object({function:e.z.enum(gA).describe("The function of the aggregation. For simple column value leave undefined").optional(),columnId:e.z.string().describe("The id of the column to aggregate")})).describe("The aggregations to get. Transformative functions and plain columns (no function) must be in group by. [REQUIRED PRECONDITION]: Either send this field or the stringified version of it.").optional(),groupBy:e.z.array(e.z.string()).describe("The columns to group by. All columns in the group by must be in the aggregations as well without a function.").optional(),limit:e.z.number().describe("The limit of the results").max(1e3).optional().default(1e3),filtersStringified:e.z.string().optional().describe('**ONLY FOR MICROSOFT COPILOT**: The filters to apply on the items. Send this as a stringified JSON array of "filters" field. Read "filters" field description for details how to use it.'),filters:e.z.array(e.z.object({columnId:e.z.string().describe("The id of the column to filter by"),compareAttribute:e.z.string().optional().describe("The attribute to compare the value to. This is OPTIONAL property."),compareValue:e.z.any().describe("The value to compare the attribute to. This can be a string or index value depending on the column type."),operator:e.z.nativeEnum(Cx).optional().default(Cx.AnyOf).describe("The operator to use for the filter")})).optional().describe('The configuration of filters to apply on the items. Before sending the filters, use get_board_info tool to check "filteringGuidelines" key for filtering by the column.'),filtersOperator:e.z.nativeEnum(Px).optional().default(Px.And).describe("The logical operator to use for the filters"),orderByStringified:e.z.string().optional().describe('**ONLY FOR MICROSOFT COPILOT**: The order by to apply on the items. Send this as a stringified JSON array of "orderBy" field. Read "orderBy" field description for details how to use it.'),orderBy:e.z.array(e.z.object({columnId:e.z.string().describe("The id of the column to order by"),direction:e.z.nativeEnum(Rx).optional().default(Rx.Asc).describe("The direction to order by")})).optional().describe("The columns to order by, will control the order of the items in the response")};const _A=MT`
|
|
1285
1285
|
query GetBoards($page: Int!, $limit: Int!, $workspace_ids: [ID]) {
|
|
1286
1286
|
boards(page: $page, limit: $limit, workspace_ids: $workspace_ids) {
|
|
1287
1287
|
id
|
|
@@ -1304,7 +1304,7 @@
|
|
|
1304
1304
|
name
|
|
1305
1305
|
}
|
|
1306
1306
|
}
|
|
1307
|
-
`;var TA,IA;!function(e){e.BOARD="board-",e.DOCUMENT="doc-",e.FOLDER="folder-"}(TA||(TA={})),function(e){e.BOARD="BOARD",e.DOCUMENTS="DOCUMENTS",e.FOLDERS="FOLDERS"}(IA||(IA={}));const SA=100,NA={searchTerm:e.z.string().optional().describe("The search term to use for the search."),searchType:e.z.nativeEnum(IA).describe("The type of search to perform."),limit:e.z.number().max(SA).optional().default(SA).describe("The number of items to get. The max and default value is 100."),page:e.z.number().optional().default(1).describe("The page number to get. The default value is 1."),workspaceIds:e.z.array(e.z.number()).optional().describe("The ids of the workspaces to search in.
|
|
1307
|
+
`;var TA,IA;!function(e){e.BOARD="board-",e.DOCUMENT="doc-",e.FOLDER="folder-"}(TA||(TA={})),function(e){e.BOARD="BOARD",e.DOCUMENTS="DOCUMENTS",e.FOLDERS="FOLDERS"}(IA||(IA={}));const SA=100,NA={searchTerm:e.z.string().optional().describe("The search term to use for the search."),searchType:e.z.nativeEnum(IA).describe("The type of search to perform."),limit:e.z.number().max(SA).optional().default(SA).describe("The number of items to get. The max and default value is 100."),page:e.z.number().optional().default(1).describe("The page number to get. The default value is 1."),workspaceIds:e.z.array(e.z.number()).optional().describe("The ids of the workspaces to search in. [IMPORTANT] Only pass this param if user explicitly asked to search within specific workspaces.")};const AA={action:e.z.enum(["enable","disable","status","list","detailed","reset"]).describe('Action to perform: "list" or "detailed" to discover available tools, "status" to check current states, "enable" to activate needed tools, "disable" to deactivate tools, "reset" to restore defaults'),toolName:e.z.string().optional().describe("Name of the tool to manage (required for enable/disable/status/reset)")};class DA{constructor(){this.name="manage_tools",this.type=Zi.READ,this.enabledByDefault=!0,this.annotations={title:"Discover & Manage monday.com Tools",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1}}setToolkitManager(e){this.toolkitManager=e}getDescription(){return"Discover and manage available monday.com tools. Use this tool first to see what tools are available, check which ones are active/inactive, and enable any tools you need for your tasks. When enabling a tool, you will be asked for confirmation first. Essential for understanding your monday.com toolkit capabilities."}getInputSchema(){return AA}async execute(e){if(!this.toolkitManager)throw new Error("Toolkit manager not initialized");if(!e)throw new Error("Input parameters are required");const{action:a,toolName:t}=e;switch(a){case"enable":if(!t)throw new Error("Tool name is required for enable action");if(this.toolkitManager.isToolEnabled(t))return{content:`Tool '${t}' is already enabled`};return{content:this.toolkitManager.enableTool(t)?`✅ Tool '${t}' has been enabled and is now available for use`:`❌ Failed to enable tool '${t}' (tool not found)`};case"disable":if(!t)throw new Error("Tool name is required for disable action");return{content:this.toolkitManager.disableTool(t)?`Tool '${t}' has been disabled`:`Failed to disable tool '${t}' (tool not found)`};case"status":if(t){return{content:`Tool '${t}' is ${this.toolkitManager.isToolEnabled(t)?"enabled":"disabled"}`}}{const e=this.toolkitManager.getToolsStatus();return{content:`All tools status:\n${Object.entries(e).map((([e,a])=>`${e}: ${a?"enabled":"disabled"}`)).join("\n")}`}}case"detailed":{const e=this.toolkitManager.getDetailedToolsStatus(),a=Object.entries(e).filter((([,e])=>e.enabled)),t=Object.entries(e).filter((([,e])=>!e.enabled));let i="monday.com Tools Discovery:\n\n";return a.length>0&&(i+="✅ ACTIVE TOOLS (ready to use):\n",i+=a.map((([e,a])=>` • ${e} (default: ${a.enabledByDefault?"enabled":"disabled"})`)).join("\n")),t.length>0&&(i+="\n\n⚠️ INACTIVE TOOLS (need activation):\n",i+=t.map((([e,a])=>` • ${e} (default: ${a.enabledByDefault?"enabled":"disabled"}) - use {"action": "enable", "toolName": "${e}"} to activate`)).join("\n")),{content:i}}case"reset":{if(!t)throw new Error("Tool name is required for reset action");const e=this.toolkitManager.resetToolToDefault(t),a=this.toolkitManager.isToolEnabledByDefault(t);return{content:e?`Tool '${t}' has been reset to its default state (${a?"enabled":"disabled"})`:`Failed to reset tool '${t}' (tool not found)`}}case"list":{const e=this.toolkitManager.getToolsStatus();return{content:`Available tools: ${Object.entries(e).map((([e,a])=>`${e} (${a?"enabled":"disabled"})`)).join(", ")}`}}default:throw new Error("Invalid action. Use: enable, disable, status, list, detailed, or reset")}}}const OA=MT`
|
|
1308
1308
|
query getSprintsByIds($ids: [ID!]) {
|
|
1309
1309
|
items(ids: $ids) {
|
|
1310
1310
|
id
|