From 9483ca0abcc622854eaa8153df3217ce0559c238 Mon Sep 17 00:00:00 2001 From: Keeyan Nejad Date: Wed, 10 Sep 2025 17:21:04 +0100 Subject: [PATCH 1/3] Rename graphql configured items to item consumers --- doc/api/graphql/reference/_index.md | 32 +++++++++---------- ...> ai_catalog_item_consumers.query.graphql} | 4 +-- .../pages/flows/ai_flows.vue | 10 +++--- ee/app/graphql/ee/types/query_type.rb | 4 +-- ...resolver.rb => item_consumers_resolver.rb} | 2 +- ee/spec/frontend/ai/catalog/mock_data.js | 4 +-- .../pages/flows/ai_flows_spec.js | 4 +-- ...pec.rb => item_consumers_resolver_spec.rb} | 2 +- ee/spec/graphql/types/query_type_spec.rb | 2 +- ...pec.rb => item_consumers_resolver_spec.rb} | 22 ++++++------- 10 files changed, 43 insertions(+), 43 deletions(-) rename ee/app/assets/javascripts/ai/catalog/graphql/queries/{ai_catalog_configured_items.query.graphql => ai_catalog_item_consumers.query.graphql} (88%) rename ee/app/graphql/resolvers/ai/catalog/{configured_items_resolver.rb => item_consumers_resolver.rb} (97%) rename ee/spec/graphql/resolvers/ai/catalog/{configured_items_resolver_spec.rb => item_consumers_resolver_spec.rb} (73%) rename ee/spec/requests/api/graphql/ai/catalog/{configured_items_resolver_spec.rb => item_consumers_resolver_spec.rb} (80%) diff --git a/doc/api/graphql/reference/_index.md b/doc/api/graphql/reference/_index.md index 731900fbef311a..1e8e8ec1ff933a 100644 --- a/doc/api/graphql/reference/_index.md +++ b/doc/api/graphql/reference/_index.md @@ -256,47 +256,47 @@ This field returns a [connection](#connections). It accepts the four standard [pagination arguments](#pagination-arguments): `before: String`, `after: String`, `first: Int`, and `last: Int`. -### `Query.aiCatalogConfiguredItems` +### `Query.aiCatalogItem` {{< details >}} **Introduced** in GitLab 18.2. **Status**: Experiment. {{< /details >}} -AI Catalog items configured for use. - -Returns [`AiCatalogItemConsumerConnection!`](#aicatalogitemconsumerconnection). +Find an AI Catalog item. -This field returns a [connection](#connections). It accepts the -four standard [pagination arguments](#pagination-arguments): -`before: String`, `after: String`, `first: Int`, and `last: Int`. +Returns [`AiCatalogItem`](#aicatalogitem). #### Arguments | Name | Type | Description | | ---- | ---- | ----------- | -| `groupId` | [`GroupID`](#groupid) | Group ID to retrieve configured AI Catalog items for. | -| `includeInherited` | [`Boolean`](#boolean) | Include configured AI Catalog items inherited from parent groups. | -| `itemId` | [`AiCatalogItemID`](#aicatalogitemid) | Item ID to retrieve configured AI Catalog items for. | -| `itemType` | [`AiCatalogItemType`](#aicatalogitemtype) | Type of items to retrieve. | -| `projectId` | [`ProjectID`](#projectid) | Project ID to retrieve configured AI Catalog items for. | +| `id` | [`AiCatalogItemID!`](#aicatalogitemid) | Global ID of the catalog item to find. | -### `Query.aiCatalogItem` +### `Query.aiCatalogItemConsumers` {{< details >}} **Introduced** in GitLab 18.2. **Status**: Experiment. {{< /details >}} -Find an AI Catalog item. +AI Catalog items configured for use. -Returns [`AiCatalogItem`](#aicatalogitem). +Returns [`AiCatalogItemConsumerConnection!`](#aicatalogitemconsumerconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#pagination-arguments): +`before: String`, `after: String`, `first: Int`, and `last: Int`. #### Arguments | Name | Type | Description | | ---- | ---- | ----------- | -| `id` | [`AiCatalogItemID!`](#aicatalogitemid) | Global ID of the catalog item to find. | +| `groupId` | [`GroupID`](#groupid) | Group ID to retrieve configured AI Catalog items for. | +| `includeInherited` | [`Boolean`](#boolean) | Include configured AI Catalog items inherited from parent groups. | +| `itemId` | [`AiCatalogItemID`](#aicatalogitemid) | Item ID to retrieve configured AI Catalog items for. | +| `itemType` | [`AiCatalogItemType`](#aicatalogitemtype) | Type of items to retrieve. | +| `projectId` | [`ProjectID`](#projectid) | Project ID to retrieve configured AI Catalog items for. | ### `Query.aiCatalogItems` diff --git a/ee/app/assets/javascripts/ai/catalog/graphql/queries/ai_catalog_configured_items.query.graphql b/ee/app/assets/javascripts/ai/catalog/graphql/queries/ai_catalog_item_consumers.query.graphql similarity index 88% rename from ee/app/assets/javascripts/ai/catalog/graphql/queries/ai_catalog_configured_items.query.graphql rename to ee/app/assets/javascripts/ai/catalog/graphql/queries/ai_catalog_item_consumers.query.graphql index dad71ab432f112..aff1e4c5652593 100644 --- a/ee/app/assets/javascripts/ai/catalog/graphql/queries/ai_catalog_configured_items.query.graphql +++ b/ee/app/assets/javascripts/ai/catalog/graphql/queries/ai_catalog_item_consumers.query.graphql @@ -1,7 +1,7 @@ #import "~/graphql_shared/fragments/page_info.fragment.graphql" #import "../fragments/ai_catalog_item_consumer.fragment.graphql" -query aiCatalogConfiguredItems( +query aiCatalogItemConsumers( $itemType: AiCatalogItemType $projectId: ProjectID! $before: String @@ -9,7 +9,7 @@ query aiCatalogConfiguredItems( $first: Int $last: Int ) { - aiCatalogConfiguredItems( + aiCatalogItemConsumers( itemType: $itemType projectId: $projectId before: $before diff --git a/ee/app/assets/javascripts/ai/duo_agents_platform/pages/flows/ai_flows.vue b/ee/app/assets/javascripts/ai/duo_agents_platform/pages/flows/ai_flows.vue index 26c3f90862c87a..b73db90f942eb1 100644 --- a/ee/app/assets/javascripts/ai/duo_agents_platform/pages/flows/ai_flows.vue +++ b/ee/app/assets/javascripts/ai/duo_agents_platform/pages/flows/ai_flows.vue @@ -11,7 +11,7 @@ import PageHeading from '~/vue_shared/components/page_heading.vue'; import ResourceListsEmptyState from '~/vue_shared/components/resource_lists/empty_state.vue'; import AiCatalogList from 'ee/ai/catalog/components/ai_catalog_list.vue'; import AiCatalogItemDrawer from 'ee/ai/catalog/components/ai_catalog_item_drawer.vue'; -import aiCatalogConfiguredItemsQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_configured_items.query.graphql'; +import aiCatalogItemConsumersQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_item_consumers.query.graphql'; import aiCatalogFlowQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_flow.query.graphql'; import deleteAiCatalogItemConsumer from 'ee/ai/catalog/graphql/mutations/delete_ai_catalog_item_consumer.mutation.graphql'; import { AI_CATALOG_TYPE_FLOW, PAGE_SIZE } from 'ee/ai/catalog/constants'; @@ -43,7 +43,7 @@ export default { }, apollo: { aiFlows: { - query: aiCatalogConfiguredItemsQuery, + query: aiCatalogItemConsumersQuery, variables() { return { itemType: AI_CATALOG_TYPE_FLOW, @@ -55,9 +55,9 @@ export default { }; }, fetchPolicy: fetchPolicies.CACHE_AND_NETWORK, - update: (data) => data.aiCatalogConfiguredItems.nodes, + update: (data) => data.aiCatalogItemConsumers.nodes, result({ data }) { - this.pageInfo = data.aiCatalogConfiguredItems.pageInfo; + this.pageInfo = data.aiCatalogItemConsumers.pageInfo; }, }, aiCatalogFlow: { @@ -168,7 +168,7 @@ export default { variables: { id, }, - refetchQueries: [aiCatalogConfiguredItemsQuery], + refetchQueries: [aiCatalogItemConsumersQuery], }); if (!data.aiCatalogItemConsumerDelete.success) { diff --git a/ee/app/graphql/ee/types/query_type.rb b/ee/app/graphql/ee/types/query_type.rb index e476821f79f4f2..6c047a64b781bc 100644 --- a/ee/app/graphql/ee/types/query_type.rb +++ b/ee/app/graphql/ee/types/query_type.rb @@ -69,8 +69,8 @@ module QueryType required: false, description: 'Runner ID to retrieve data for.' end - field :ai_catalog_configured_items, - resolver: ::Resolvers::Ai::Catalog::ConfiguredItemsResolver, + field :ai_catalog_item_consumers, + resolver: ::Resolvers::Ai::Catalog::ItemConsumersResolver, null: false, description: 'AI Catalog items configured for use.', experiment: { milestone: '18.2' } diff --git a/ee/app/graphql/resolvers/ai/catalog/configured_items_resolver.rb b/ee/app/graphql/resolvers/ai/catalog/item_consumers_resolver.rb similarity index 97% rename from ee/app/graphql/resolvers/ai/catalog/configured_items_resolver.rb rename to ee/app/graphql/resolvers/ai/catalog/item_consumers_resolver.rb index a270d4f9199dc0..65c85f09fa300a 100644 --- a/ee/app/graphql/resolvers/ai/catalog/configured_items_resolver.rb +++ b/ee/app/graphql/resolvers/ai/catalog/item_consumers_resolver.rb @@ -3,7 +3,7 @@ module Resolvers module Ai module Catalog - class ConfiguredItemsResolver < BaseResolver + class ItemConsumersResolver < BaseResolver description 'Find AI Catalog items configured for use.' type ::Types::Ai::Catalog::ItemConsumerType.connection_type, null: false diff --git a/ee/spec/frontend/ai/catalog/mock_data.js b/ee/spec/frontend/ai/catalog/mock_data.js index ac356b6646dc04..73b04d2ea47d7d 100644 --- a/ee/spec/frontend/ai/catalog/mock_data.js +++ b/ee/spec/frontend/ai/catalog/mock_data.js @@ -466,7 +466,7 @@ export const mockConfiguredAgentsResponse = { export const mockConfiguredFlowsResponse = { data: { - aiCatalogConfiguredItems: { + aiCatalogItemConsumers: { nodes: [ { ...mockBaseItemConsumer, @@ -481,7 +481,7 @@ export const mockConfiguredFlowsResponse = { export const mockConfiguredItemsEmptyResponse = { data: { - aiCatalogConfiguredItems: { + aiCatalogItemConsumers: { nodes: [], pageInfo: { hasNextPage: false, diff --git a/ee/spec/frontend/ai/duo_agents_platform/pages/flows/ai_flows_spec.js b/ee/spec/frontend/ai/duo_agents_platform/pages/flows/ai_flows_spec.js index d9a50227eb2def..1ae5abe74bc894 100644 --- a/ee/spec/frontend/ai/duo_agents_platform/pages/flows/ai_flows_spec.js +++ b/ee/spec/frontend/ai/duo_agents_platform/pages/flows/ai_flows_spec.js @@ -10,7 +10,7 @@ import AiCatalogList from 'ee/ai/catalog/components/ai_catalog_list.vue'; import ErrorsAlert from '~/vue_shared/components/errors_alert.vue'; import PageHeading from '~/vue_shared/components/page_heading.vue'; import ResourceListsEmptyState from '~/vue_shared/components/resource_lists/empty_state.vue'; -import aiCatalogConfiguredItemsQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_configured_items.query.graphql'; +import aiCatalogItemConsumersQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_item_consumers.query.graphql'; import aiCatalogFlowQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_flow.query.graphql'; import deleteAiCatalogItemConsumer from 'ee/ai/catalog/graphql/mutations/delete_ai_catalog_item_consumer.mutation.graphql'; import { @@ -47,7 +47,7 @@ describe('AiFlows', () => { const createComponent = ({ $route = { query: {} } } = {}) => { mockApollo = createMockApollo([ - [aiCatalogConfiguredItemsQuery, mockConfiguredFlowsQueryHandler], + [aiCatalogItemConsumersQuery, mockConfiguredFlowsQueryHandler], [aiCatalogFlowQuery, mockFlowQueryHandler], [deleteAiCatalogItemConsumer, deleteItemConsumerMutationHandler], ]); diff --git a/ee/spec/graphql/resolvers/ai/catalog/configured_items_resolver_spec.rb b/ee/spec/graphql/resolvers/ai/catalog/item_consumers_resolver_spec.rb similarity index 73% rename from ee/spec/graphql/resolvers/ai/catalog/configured_items_resolver_spec.rb rename to ee/spec/graphql/resolvers/ai/catalog/item_consumers_resolver_spec.rb index a8040e8dc0f54f..39a80f60b554d3 100644 --- a/ee/spec/graphql/resolvers/ai/catalog/configured_items_resolver_spec.rb +++ b/ee/spec/graphql/resolvers/ai/catalog/item_consumers_resolver_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Resolvers::Ai::Catalog::ConfiguredItemsResolver, feature_category: :workflow_catalog do +RSpec.describe Resolvers::Ai::Catalog::ItemConsumersResolver, feature_category: :workflow_catalog do subject(:resolver) { described_class } it 'has expected arguments' do diff --git a/ee/spec/graphql/types/query_type_spec.rb b/ee/spec/graphql/types/query_type_spec.rb index 912b4e4f826186..4958f1235768dd 100644 --- a/ee/spec/graphql/types/query_type_spec.rb +++ b/ee/spec/graphql/types/query_type_spec.rb @@ -10,7 +10,7 @@ :add_on_purchases, :ai_catalog_agent_flow_config, :ai_catalog_built_in_tools, - :ai_catalog_configured_items, + :ai_catalog_item_consumers, :ai_catalog_item, :ai_catalog_items, :ai_messages, diff --git a/ee/spec/requests/api/graphql/ai/catalog/configured_items_resolver_spec.rb b/ee/spec/requests/api/graphql/ai/catalog/item_consumers_resolver_spec.rb similarity index 80% rename from ee/spec/requests/api/graphql/ai/catalog/configured_items_resolver_spec.rb rename to ee/spec/requests/api/graphql/ai/catalog/item_consumers_resolver_spec.rb index 182ef6377b3530..15cebbf0aa31d9 100644 --- a/ee/spec/requests/api/graphql/ai/catalog/configured_items_resolver_spec.rb +++ b/ee/spec/requests/api/graphql/ai/catalog/item_consumers_resolver_spec.rb @@ -10,47 +10,47 @@ let_it_be(:catalog_agents) { create_list(:ai_catalog_agent, 2) } let_it_be(:catalog_flows) { create_list(:ai_catalog_flow, 2) } let_it_be(:catalog_items) { [*catalog_agents, *catalog_flows] } - let_it_be(:configured_agents) do + let_it_be(:agent_consumers) do catalog_agents.map { |item| create(:ai_catalog_item_consumer, project: project, item: item) } end - let_it_be(:configured_flows) do + let_it_be(:flow_consumers) do catalog_flows.map { |item| create(:ai_catalog_item_consumer, project: project, item: item) } end - let_it_be(:configured_items) do - [*configured_agents, *configured_flows] + let_it_be(:consumers) do + [*agent_consumers, *flow_consumers] end let(:current_user) { developer } let(:project_gid) { project.to_global_id } - let(:nodes) { graphql_data_at(:ai_catalog_configured_items, :nodes) } + let(:nodes) { graphql_data_at(:ai_catalog_item_consumers, :nodes) } let(:args) { { projectId: project_gid } } let(:query) do - "{ #{query_nodes('aiCatalogConfiguredItems', of: 'AiCatalogItemConsumer', max_depth: 3, args: args)} }" + "{ #{query_nodes('aiCatalogItemConsumers', of: 'AiCatalogItemConsumer', max_depth: 3, args: args)} }" end it 'returns configured AI catalog items' do post_graphql(query, current_user: current_user) expect(response).to have_gitlab_http_status(:success) - expect(nodes).to match_array(configured_items.map { |configured_item| a_graphql_entity_for(configured_item) }) + expect(nodes).to match_array(consumers.map { |configured_item| a_graphql_entity_for(configured_item) }) end context 'when filtering by group and item' do let_it_be(:group) { create(:group, developers: developer) } - let_it_be(:configured_items) do + let_it_be(:consumers) do catalog_items.map { |item| create(:ai_catalog_item_consumer, group: group, item: item) } end - let(:args) { { groupId: group.to_global_id, itemId: configured_items[0].item.to_global_id } } + let(:args) { { groupId: group.to_global_id, itemId: consumers[0].item.to_global_id } } it 'returns configured AI catalog items' do post_graphql(query, current_user: current_user) expect(response).to have_gitlab_http_status(:success) - expect(nodes).to contain_exactly(a_graphql_entity_for(configured_items[0])) + expect(nodes).to contain_exactly(a_graphql_entity_for(consumers[0])) end end @@ -95,7 +95,7 @@ post_graphql(query, current_user: current_user) expect(response).to have_gitlab_http_status(:success) - expect(nodes).to match_array(configured_flows.map { |flow| a_graphql_entity_for(flow) }) + expect(nodes).to match_array(flow_consumers.map { |flow| a_graphql_entity_for(flow) }) end end -- GitLab From ac16da566803d26d244736b3fcc84eaae5d967ff Mon Sep 17 00:00:00 2001 From: Keeyan Nejad Date: Fri, 12 Sep 2025 14:51:33 +0100 Subject: [PATCH 2/3] Change graphql query for ai agents page --- .../ai/duo_agents_platform/pages/agents/ai_agents.vue | 10 +++++----- ee/spec/frontend/ai/catalog/mock_data.js | 4 ++-- .../duo_agents_platform/pages/agents/ai_agents_spec.js | 8 ++++---- .../duo_agents_platform/pages/flows/ai_flows_spec.js | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/ee/app/assets/javascripts/ai/duo_agents_platform/pages/agents/ai_agents.vue b/ee/app/assets/javascripts/ai/duo_agents_platform/pages/agents/ai_agents.vue index 593e8a3c18d26f..685c54c5763d57 100644 --- a/ee/app/assets/javascripts/ai/duo_agents_platform/pages/agents/ai_agents.vue +++ b/ee/app/assets/javascripts/ai/duo_agents_platform/pages/agents/ai_agents.vue @@ -10,7 +10,7 @@ import PageHeading from '~/vue_shared/components/page_heading.vue'; import ResourceListsEmptyState from '~/vue_shared/components/resource_lists/empty_state.vue'; import AiCatalogList from 'ee/ai/catalog/components/ai_catalog_list.vue'; import AiCatalogItemDrawer from 'ee/ai/catalog/components/ai_catalog_item_drawer.vue'; -import aiCatalogConfiguredItemsQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_configured_items.query.graphql'; +import aiCatalogItemConsumersQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_item_consumers.query.graphql'; import aiCatalogAgentQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_agent.query.graphql'; import deleteAiCatalogItemConsumer from 'ee/ai/catalog/graphql/mutations/delete_ai_catalog_item_consumer.mutation.graphql'; import { AI_CATALOG_TYPE_AGENT, PAGE_SIZE } from 'ee/ai/catalog/constants'; @@ -41,7 +41,7 @@ export default { }, apollo: { aiAgents: { - query: aiCatalogConfiguredItemsQuery, + query: aiCatalogItemConsumersQuery, variables() { return { itemType: AI_CATALOG_TYPE_AGENT, @@ -53,9 +53,9 @@ export default { }; }, fetchPolicy: fetchPolicies.CACHE_AND_NETWORK, - update: (data) => data.aiCatalogConfiguredItems.nodes, + update: (data) => data.aiCatalogItemConsumers.nodes, result({ data }) { - this.pageInfo = data.aiCatalogConfiguredItems.pageInfo; + this.pageInfo = data.aiCatalogItemConsumers.pageInfo; }, }, aiCatalogAgent: { @@ -151,7 +151,7 @@ export default { variables: { id, }, - refetchQueries: [aiCatalogConfiguredItemsQuery], + refetchQueries: [aiCatalogItemConsumersQuery], }); if (!data.aiCatalogItemConsumerDelete.success) { diff --git a/ee/spec/frontend/ai/catalog/mock_data.js b/ee/spec/frontend/ai/catalog/mock_data.js index 73b04d2ea47d7d..066f7a39ef5df2 100644 --- a/ee/spec/frontend/ai/catalog/mock_data.js +++ b/ee/spec/frontend/ai/catalog/mock_data.js @@ -451,7 +451,7 @@ export const mockBaseItemConsumer = { export const mockConfiguredAgentsResponse = { data: { - aiCatalogConfiguredItems: { + aiCatalogItemConsumers: { nodes: [ { ...mockBaseItemConsumer, @@ -479,7 +479,7 @@ export const mockConfiguredFlowsResponse = { }, }; -export const mockConfiguredItemsEmptyResponse = { +export const mockItemConsumersEmptyResponse = { data: { aiCatalogItemConsumers: { nodes: [], diff --git a/ee/spec/frontend/ai/duo_agents_platform/pages/agents/ai_agents_spec.js b/ee/spec/frontend/ai/duo_agents_platform/pages/agents/ai_agents_spec.js index e6dcd8c6256dd5..1807cc30213147 100644 --- a/ee/spec/frontend/ai/duo_agents_platform/pages/agents/ai_agents_spec.js +++ b/ee/spec/frontend/ai/duo_agents_platform/pages/agents/ai_agents_spec.js @@ -10,7 +10,7 @@ import AiCatalogList from 'ee/ai/catalog/components/ai_catalog_list.vue'; import ErrorsAlert from '~/vue_shared/components/errors_alert.vue'; import PageHeading from '~/vue_shared/components/page_heading.vue'; import ResourceListsEmptyState from '~/vue_shared/components/resource_lists/empty_state.vue'; -import aiCatalogConfiguredItemsQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_configured_items.query.graphql'; +import aiCatalogItemConsumersQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_item_consumers.query.graphql'; import aiCatalogAgentQuery from 'ee/ai/catalog/graphql/queries/ai_catalog_agent.query.graphql'; import deleteAiCatalogItemConsumer from 'ee/ai/catalog/graphql/mutations/delete_ai_catalog_item_consumer.mutation.graphql'; import { @@ -18,7 +18,7 @@ import { mockBaseAgent, mockBaseItemConsumer, mockConfiguredAgentsResponse, - mockConfiguredItemsEmptyResponse, + mockItemConsumersEmptyResponse, mockAiCatalogItemConsumerDeleteResponse, mockAiCatalogItemConsumerDeleteErrorResponse, mockPageInfo, @@ -49,7 +49,7 @@ describe('AiAgents', () => { const createComponent = ({ $route = { query: {} } } = {}) => { mockApollo = createMockApollo([ - [aiCatalogConfiguredItemsQuery, mockConfiguredAgentsQueryHandler], + [aiCatalogItemConsumersQuery, mockConfiguredAgentsQueryHandler], [aiCatalogAgentQuery, mockAgentQueryHandler], [deleteAiCatalogItemConsumer, deleteItemConsumerMutationHandler], ]); @@ -98,7 +98,7 @@ describe('AiAgents', () => { describe('when there are no agents', () => { beforeEach(async () => { - mockConfiguredAgentsQueryHandler.mockResolvedValueOnce(mockConfiguredItemsEmptyResponse); + mockConfiguredAgentsQueryHandler.mockResolvedValueOnce(mockItemConsumersEmptyResponse); await waitForPromises(); }); diff --git a/ee/spec/frontend/ai/duo_agents_platform/pages/flows/ai_flows_spec.js b/ee/spec/frontend/ai/duo_agents_platform/pages/flows/ai_flows_spec.js index 1ae5abe74bc894..66b56cacd35f34 100644 --- a/ee/spec/frontend/ai/duo_agents_platform/pages/flows/ai_flows_spec.js +++ b/ee/spec/frontend/ai/duo_agents_platform/pages/flows/ai_flows_spec.js @@ -18,7 +18,7 @@ import { mockBaseFlow, mockBaseItemConsumer, mockConfiguredFlowsResponse, - mockConfiguredItemsEmptyResponse, + mockItemConsumersEmptyResponse, mockAiCatalogItemConsumerDeleteResponse, mockAiCatalogItemConsumerDeleteErrorResponse, mockPageInfo, @@ -96,7 +96,7 @@ describe('AiFlows', () => { describe('when there are no flows', () => { beforeEach(async () => { - mockConfiguredFlowsQueryHandler.mockResolvedValueOnce(mockConfiguredItemsEmptyResponse); + mockConfiguredFlowsQueryHandler.mockResolvedValueOnce(mockItemConsumersEmptyResponse); await waitForPromises(); }); -- GitLab From 4163efb7b65fe16ed6bed8827d37ebe07d001fdb Mon Sep 17 00:00:00 2001 From: Keeyan Nejad Date: Mon, 15 Sep 2025 12:09:21 +0100 Subject: [PATCH 3/3] Rename configured items in new query --- .../assets/javascripts/ai/duo_agentic_chat/components/app.vue | 2 +- .../ai/graphql/get_configured_agents.query.graphql | 2 +- ee/spec/frontend/ai/duo_agentic_chat/components/app_spec.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ee/app/assets/javascripts/ai/duo_agentic_chat/components/app.vue b/ee/app/assets/javascripts/ai/duo_agentic_chat/components/app.vue index 082c2b360ad3dd..3f6e0da8bebe19 100644 --- a/ee/app/assets/javascripts/ai/duo_agentic_chat/components/app.vue +++ b/ee/app/assets/javascripts/ai/duo_agentic_chat/components/app.vue @@ -165,7 +165,7 @@ export default { }; }, update(data) { - return (data?.aiCatalogConfiguredItems.nodes || []).map((agent) => agent.item); + return (data?.aiCatalogItemConsumers.nodes || []).map((agent) => agent.item); }, error(err) { this.onError(err); diff --git a/ee/app/assets/javascripts/ai/graphql/get_configured_agents.query.graphql b/ee/app/assets/javascripts/ai/graphql/get_configured_agents.query.graphql index 5bcdcd63d0c01a..5e5b80182915cb 100644 --- a/ee/app/assets/javascripts/ai/graphql/get_configured_agents.query.graphql +++ b/ee/app/assets/javascripts/ai/graphql/get_configured_agents.query.graphql @@ -1,5 +1,5 @@ query getConfiguredAgents($projectId: ProjectID, $groupId: GroupID) { - aiCatalogConfiguredItems(projectId: $projectId, groupId: $groupId, itemType: AGENT) { + aiCatalogItemConsumers(projectId: $projectId, groupId: $groupId, itemType: AGENT) { nodes { id item { diff --git a/ee/spec/frontend/ai/duo_agentic_chat/components/app_spec.js b/ee/spec/frontend/ai/duo_agentic_chat/components/app_spec.js index d3262a9a7a5047..8662c826751a54 100644 --- a/ee/spec/frontend/ai/duo_agentic_chat/components/app_spec.js +++ b/ee/spec/frontend/ai/duo_agentic_chat/components/app_spec.js @@ -123,7 +123,7 @@ const MOCK_USER_WORKFLOWS_RESPONSE = { const MOCK_CONFIGURED_AGENTS_RESPONSE = { data: { - aiCatalogConfiguredItems: { + aiCatalogItemConsumers: { nodes: [ { id: 'Configured Item 5', @@ -1509,7 +1509,7 @@ describe('Duo Agentic Chat', () => { duoChatGlobalState.isAgenticChatShown = true; createComponent(); const agentResponse = - MOCK_CONFIGURED_AGENTS_RESPONSE.data.aiCatalogConfiguredItems.nodes[0].item; + MOCK_CONFIGURED_AGENTS_RESPONSE.data.aiCatalogItemConsumers.nodes[0].item; agent = { ...agentResponse, text: agentResponse.name }; flowConfig = 'YAML string'; ApolloUtils.getAgentFlowConfig.mockResolvedValue(flowConfig); -- GitLab