@stack-spot/portal-network 0.203.0 → 0.203.1-beta.1

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.
Files changed (125) hide show
  1. package/CHANGELOG.md +247 -0
  2. package/dist/api/account.d.ts +344 -91
  3. package/dist/api/account.d.ts.map +1 -1
  4. package/dist/api/account.js +203 -46
  5. package/dist/api/account.js.map +1 -1
  6. package/dist/api/accountAssetManager.d.ts +309 -0
  7. package/dist/api/accountAssetManager.d.ts.map +1 -0
  8. package/dist/api/accountAssetManager.js +169 -0
  9. package/dist/api/accountAssetManager.js.map +1 -0
  10. package/dist/api/agent-tools.d.ts +623 -141
  11. package/dist/api/agent-tools.d.ts.map +1 -1
  12. package/dist/api/agent-tools.js +168 -45
  13. package/dist/api/agent-tools.js.map +1 -1
  14. package/dist/api/ai.d.ts +135 -24
  15. package/dist/api/ai.d.ts.map +1 -1
  16. package/dist/api/ai.js +79 -26
  17. package/dist/api/ai.js.map +1 -1
  18. package/dist/api/codeShift.d.ts +127 -9
  19. package/dist/api/codeShift.d.ts.map +1 -1
  20. package/dist/api/codeShift.js +73 -6
  21. package/dist/api/codeShift.js.map +1 -1
  22. package/dist/api/discover.d.ts +9 -6
  23. package/dist/api/discover.d.ts.map +1 -1
  24. package/dist/api/discover.js +5 -5
  25. package/dist/api/discover.js.map +1 -1
  26. package/dist/api/edpBfa.d.ts +215 -0
  27. package/dist/api/edpBfa.d.ts.map +1 -0
  28. package/dist/api/edpBfa.js +87 -0
  29. package/dist/api/edpBfa.js.map +1 -0
  30. package/dist/api/workspace-ai.d.ts +41 -0
  31. package/dist/api/workspace-ai.d.ts.map +1 -1
  32. package/dist/api/workspace-ai.js +34 -0
  33. package/dist/api/workspace-ai.js.map +1 -1
  34. package/dist/api-addresses.d.ts +13 -20
  35. package/dist/api-addresses.d.ts.map +1 -1
  36. package/dist/api-addresses.js +60 -17
  37. package/dist/api-addresses.js.map +1 -1
  38. package/dist/apis-itau.json +16 -0
  39. package/dist/apis.json +16 -0
  40. package/dist/client/account-asset-manager.d.ts +112 -0
  41. package/dist/client/account-asset-manager.d.ts.map +1 -0
  42. package/dist/client/account-asset-manager.js +160 -0
  43. package/dist/client/account-asset-manager.js.map +1 -0
  44. package/dist/client/account.d.ts +11 -9
  45. package/dist/client/account.d.ts.map +1 -1
  46. package/dist/client/account.js +11 -8
  47. package/dist/client/account.js.map +1 -1
  48. package/dist/client/agent-tools.d.ts +122 -3
  49. package/dist/client/agent-tools.d.ts.map +1 -1
  50. package/dist/client/agent-tools.js +105 -10
  51. package/dist/client/agent-tools.js.map +1 -1
  52. package/dist/client/ai.d.ts +148 -1
  53. package/dist/client/ai.d.ts.map +1 -1
  54. package/dist/client/ai.js +149 -17
  55. package/dist/client/ai.js.map +1 -1
  56. package/dist/client/code-shift.d.ts +54 -3
  57. package/dist/client/code-shift.d.ts.map +1 -1
  58. package/dist/client/code-shift.js +46 -1
  59. package/dist/client/code-shift.js.map +1 -1
  60. package/dist/client/data-integration.d.ts.map +1 -1
  61. package/dist/client/data-integration.js +8 -1
  62. package/dist/client/data-integration.js.map +1 -1
  63. package/dist/client/discover.d.ts +2 -2
  64. package/dist/client/discover.d.ts.map +1 -1
  65. package/dist/client/discover.js.map +1 -1
  66. package/dist/client/edp-bfa.d.ts +16 -0
  67. package/dist/client/edp-bfa.d.ts.map +1 -0
  68. package/dist/client/edp-bfa.js +24 -0
  69. package/dist/client/edp-bfa.js.map +1 -0
  70. package/dist/client/notification.d.ts +7 -0
  71. package/dist/client/notification.d.ts.map +1 -1
  72. package/dist/client/notification.js +10 -1
  73. package/dist/client/notification.js.map +1 -1
  74. package/dist/client/types.d.ts +11 -3
  75. package/dist/client/types.d.ts.map +1 -1
  76. package/dist/client/workspace-ai.d.ts +13 -3
  77. package/dist/client/workspace-ai.d.ts.map +1 -1
  78. package/dist/client/workspace-ai.js +17 -3
  79. package/dist/client/workspace-ai.js.map +1 -1
  80. package/dist/client/workspace-manager.d.ts +15 -0
  81. package/dist/client/workspace-manager.d.ts.map +1 -1
  82. package/dist/client/workspace-manager.js +19 -1
  83. package/dist/client/workspace-manager.js.map +1 -1
  84. package/dist/error/dictionary/accountAssetManager.d.ts +11 -0
  85. package/dist/error/dictionary/accountAssetManager.d.ts.map +1 -0
  86. package/dist/error/dictionary/accountAssetManager.js +11 -0
  87. package/dist/error/dictionary/accountAssetManager.js.map +1 -0
  88. package/dist/index.d.ts +3 -1
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +3 -1
  91. package/dist/index.js.map +1 -1
  92. package/dist/network/NetworkClient.d.ts.map +1 -1
  93. package/dist/network/NetworkClient.js +12 -2
  94. package/dist/network/NetworkClient.js.map +1 -1
  95. package/dist/network/types.d.ts +1 -0
  96. package/dist/network/types.d.ts.map +1 -1
  97. package/package.json +2 -2
  98. package/readme.md +39 -1
  99. package/src/api/account.ts +592 -165
  100. package/src/api/accountAssetManager.ts +771 -0
  101. package/src/api/agent-tools.ts +824 -188
  102. package/src/api/ai.ts +206 -38
  103. package/src/api/codeShift.ts +233 -12
  104. package/src/api/discover.ts +10 -10
  105. package/src/api/edpBfa.ts +472 -0
  106. package/src/api/workspace-ai.ts +83 -0
  107. package/src/api-addresses.ts +93 -37
  108. package/src/apis-itau.json +16 -0
  109. package/src/apis.json +16 -0
  110. package/src/client/account-asset-manager.ts +100 -0
  111. package/src/client/account.ts +11 -7
  112. package/src/client/agent-tools.ts +69 -16
  113. package/src/client/ai.ts +129 -19
  114. package/src/client/code-shift.ts +29 -0
  115. package/src/client/data-integration.ts +9 -2
  116. package/src/client/discover.ts +2 -2
  117. package/src/client/edp-bfa.ts +24 -0
  118. package/src/client/notification.ts +6 -1
  119. package/src/client/types.ts +12 -3
  120. package/src/client/workspace-ai.ts +21 -6
  121. package/src/client/workspace-manager.ts +13 -0
  122. package/src/error/dictionary/accountAssetManager.ts +12 -0
  123. package/src/index.ts +4 -1
  124. package/src/network/NetworkClient.ts +13 -4
  125. package/src/network/types.ts +1 -0
@@ -1,3 +1,4 @@
1
+ import { APIMap } from '@stack-spot/opa'
1
2
  import apisItauJson from './apis-itau.json' assert { type: 'json' }
2
3
  import apisJson from './apis.json' assert { type: 'json' }
3
4
  import { NetworkClient } from './network/NetworkClient'
@@ -5,26 +6,29 @@ import { Env, Tenant } from './network/types'
5
6
 
6
7
  type ApisKeys = keyof typeof apisJson;
7
8
 
9
+ type APIName = APIMap[string]
10
+ type ExceptionAPIName = Exclude<APIName, keyof Apis>
11
+
12
+ declare global {
13
+ interface ImportMeta {
14
+ readonly env: {
15
+ VITE_NETWORK_OVERRIDES: string,
16
+ DEV: boolean,
17
+ PROD: boolean,
18
+ },
19
+ }
20
+ }
21
+
8
22
  type ApiConfig = {
9
23
  url: Record<Env, string>,
10
24
  docs?: string,
11
25
  }
12
26
 
13
- type PartialApiConfig = {
14
- url: Partial<Record<Env, string>>,
15
- docs?: string
16
- }
17
-
18
27
  type Apis = Record<ApisKeys, ApiConfig>;
19
28
 
20
- type PartialApis = Partial<Record<ApisKeys, PartialApiConfig>>;
21
-
22
- type ApiAddress = {
23
- [api: string]: string,
24
- }
29
+ type ApiAddress = Record<ApisKeys, string>
25
30
 
26
- let defaultApis: Apis = apisJson;
27
- let overrideApis: PartialApis = {};
31
+ const defaultApis: Apis = apisJson
28
32
 
29
33
  const apis: Record<Tenant, Apis> = {
30
34
  'stackspot': apisJson,
@@ -37,12 +41,12 @@ const apis: Record<Tenant, Apis> = {
37
41
  * @param tenant The current tenant (e.g., 'stackspot', 'itau').
38
42
  * @returns API catalog containing the URLs per environment.
39
43
  */
40
- export function getApisByTenant(tenant: Tenant) {
44
+ function getApisByTenant(tenant: Tenant) {
41
45
  return apis[tenant]
42
46
  }
43
47
 
44
48
  function transformApisToApiAddress(apis: Apis, env: Env): ApiAddress {
45
- const apiAddress: ApiAddress = {}
49
+ const apiAddress = {} as ApiAddress
46
50
 
47
51
  for (const api in apis) {
48
52
  const key = api as ApisKeys
@@ -59,14 +63,28 @@ function transformApisToApiAddress(apis: Apis, env: Env): ApiAddress {
59
63
  * @returns {boolean} true if the URL is found, otherwise false.
60
64
  */
61
65
  function matchesBaseUrl(baseUrl: Record<Env, string>, candidate: Record<Env, string>): boolean {
62
- const envs: Env[] = ['dev', 'stg', 'prd'];
66
+ const envs: Env[] = ['dev', 'stg', 'prd']
63
67
 
64
68
  return envs.every(e => {
65
69
  if (candidate[e]) {
66
- return baseUrl[e] === candidate[e];
70
+ return baseUrl[e] === candidate[e]
67
71
  }
68
- return true;
69
- });
72
+ return true
73
+ })
74
+ }
75
+
76
+ const getApiOverride = () => {
77
+ const envs = import.meta.env
78
+
79
+ let overrideAPIsURL = {} as ApiAddress
80
+ if (envs.PROD) return overrideAPIsURL
81
+
82
+ try {
83
+ overrideAPIsURL= JSON.parse(envs.VITE_NETWORK_OVERRIDES)
84
+ return overrideAPIsURL
85
+ } catch {
86
+ return overrideAPIsURL
87
+ }
70
88
  }
71
89
 
72
90
  /**
@@ -77,44 +95,82 @@ function matchesBaseUrl(baseUrl: Record<Env, string>, candidate: Record<Env, str
77
95
  * @param tenant the current tenant.
78
96
  * @returns {string} the base URL for the given environment and tenant, applying any overrides if available.
79
97
  */
80
- export const getBaseUrlByTenantWithOverride = (baseUrl: Record<Env, string>, targetEnv: Env = 'prd', tenant: Tenant = 'stackspot'): string => {
81
- let matchesApiName: ApisKeys | null = null;
98
+ export const getBaseUrlByTenantWithOverride = (baseUrl: Record<Env, string>, targetEnv: Env = 'prd',
99
+ tenant: Tenant = 'stackspot'): string => {
100
+ let matchesApiName: ApisKeys | null = null
82
101
 
83
102
  for (const [apiName, config] of Object.entries(defaultApis) as [ApisKeys, ApiConfig][]) {
84
103
  if (matchesBaseUrl(baseUrl, config.url)) {
85
- matchesApiName = apiName;
86
- break;
104
+ matchesApiName = apiName
105
+ break
87
106
  }
88
107
  }
89
108
 
90
109
  if (!matchesApiName) return ''
91
110
 
92
- const overrideUrl = overrideApis[matchesApiName]?.url?.[targetEnv]
93
- if (overrideUrl) {
94
- return overrideUrl;
95
- }
96
-
111
+ const overrides = getApiOverride()
97
112
  const apis = getApisByTenant(tenant)
98
- return apis[matchesApiName]?.url?.[targetEnv];
113
+ const api = apis[matchesApiName]
114
+ return overrides?.[matchesApiName] ?? api?.url?.[targetEnv]
99
115
  }
100
116
 
101
- /**
102
- * Sets the APIs addresses for override.
103
- * @param customApis a JSON object containing APIs address to override.
104
- */
105
- export const setApisOverride = (customApis: PartialApis) => {
106
- overrideApis = customApis;
117
+ export const getApisBaseUrlConfig = (env: Env = 'prd', tenant: Tenant = 'stackspot'): ApiAddress => {
118
+ const overrides = getApiOverride()
119
+ const apis = getApisByTenant(tenant)
120
+ const apiMap = {} as ApiAddress
121
+
122
+ for (const [key, value] of Object.entries(apis)) {
123
+ if (value?.url && value.url?.[env]) {
124
+ const url = value.url[env]
125
+ const api = key as ApisKeys
126
+ apiMap[api] = url
127
+ }
128
+ }
129
+
130
+ return { ...apiMap, ...overrides }
107
131
  }
108
132
 
133
+
109
134
  /**
110
135
  * Sets the default APIs addresses for each environments.
111
136
  * @returns {Apis} an object containing APIs URLs grouped by api name and enviroments.
112
137
  */
113
- export const getApiAddresses = (): Apis => {
114
- return defaultApis;
115
- }
138
+ export const getApiAddresses = (): Apis => defaultApis
116
139
 
117
140
  export const apiAddresses = () => {
118
141
  const env = NetworkClient.getEnv()
119
142
  return transformApisToApiAddress(defaultApis, env)
120
143
  }
144
+
145
+ const networkApiNameToOpaApiName = {
146
+ ai: 'code-buddy',
147
+ dataIntegration: 'data-integration',
148
+ workspaceManager: 'workspace-manager',
149
+ cloudServices: 'cloud-services',
150
+ cloudAccount: 'cloud-account',
151
+ cloudPlatformHorizon: 'cloud-platform-horizon',
152
+ codeShift: 'code-shift',
153
+ genAiInference: 'ai-inference',
154
+ apiRuntime: 'runtime-manager',
155
+ serviceCatalog: 'catalog',
156
+ accountAssetManager: 'account-asset-manager',
157
+ } as const satisfies Partial<Record<keyof Apis, ExceptionAPIName>>
158
+
159
+ function resolveApiName(name: keyof Apis): APIName {
160
+ return (networkApiNameToOpaApiName as Record<string, ExceptionAPIName>)[name] ?? name
161
+ }
162
+
163
+ function generateApiMap(apis: ApiAddress) {
164
+ const apiMap: APIMap = {}
165
+ for (const [key, url] of Object.entries(apis)) {
166
+ if (url) {
167
+ apiMap[url] = resolveApiName(key as keyof Apis)
168
+ }
169
+ }
170
+ return apiMap
171
+ }
172
+
173
+ export function getPermissionsAPIMap(env: Env, tenant: Tenant = 'stackspot'): APIMap {
174
+ const apis = getApisBaseUrlConfig(env, tenant)
175
+ return generateApiMap(apis)
176
+ }
@@ -221,5 +221,21 @@
221
221
  "prd": "https://discover-core.stackspot.com"
222
222
  },
223
223
  "docs": "/v3/api-docs"
224
+ },
225
+ "accountAssetManager" : {
226
+ "url": {
227
+ "dev": "https://account-asset-manager.dev.stackspot.com",
228
+ "stg": "https://account-asset-manager.stg.stackspot.com",
229
+ "prd": "https://account-asset-manager.stackspot.com"
230
+ },
231
+ "docs": "/v3/api-docs"
232
+ },
233
+ "edpBfa": {
234
+ "url": {
235
+ "dev": "https://adp-development-edp-bfa.dev.stackspot.com",
236
+ "stg": "https://adp-development-edp-bfa.stg.stackspot.com",
237
+ "prd": "https://edp-bfa.stackspot.com"
238
+ },
239
+ "docs": "/openapi.json"
224
240
  }
225
241
  }
package/src/apis.json CHANGED
@@ -221,5 +221,21 @@
221
221
  "prd": "https://discover-core.stackspot.com"
222
222
  },
223
223
  "docs": "/v3/api-docs"
224
+ },
225
+ "accountAssetManager" : {
226
+ "url": {
227
+ "dev": "https://account-asset-manager.dev.stackspot.com",
228
+ "stg": "https://account-asset-manager.stg.stackspot.com",
229
+ "prd": "https://account-asset-manager.stackspot.com"
230
+ },
231
+ "docs": "/v3/api-docs"
232
+ },
233
+ "edpBfa": {
234
+ "url": {
235
+ "dev": "https://adp-development-edp-bfa.dev.stackspot.com",
236
+ "stg": "https://adp-development-edp-bfa.stg.stackspot.com",
237
+ "prd": "https://edp-bfa.stackspot.com"
238
+ },
239
+ "docs": "/openapi.json"
224
240
  }
225
241
  }
@@ -0,0 +1,100 @@
1
+ import { HttpError } from '@oazapfts/runtime'
2
+ import { getApiAddresses } from '../api-addresses'
3
+ import { defaults, deleteAssetType, deleteFolder, deleteProject, disassociateProjectAsset, getFolderDetails, getProjectDetails, listAssetTypes, listFolders, saveAssetType, saveFolder, saveProject, updateAsset, updateAssetType, updateFolders, updateProject } from '../api/accountAssetManager'
4
+ import { DefaultAPIError } from '../error/DefaultAPIError'
5
+ import { accountAssetManagerDictionary } from '../error/dictionary/accountAssetManager'
6
+ import { StackspotAPIError } from '../error/StackspotAPIError'
7
+ import { ReactQueryNetworkClient } from '../network/ReactQueryNetworkClient'
8
+ import { removeAuthorizationParam } from '../utils/remove-authorization-param'
9
+
10
+ class AccountAssetManagerClient extends ReactQueryNetworkClient {
11
+ constructor() {
12
+ super(getApiAddresses().accountAssetManager.url, defaults)
13
+ }
14
+
15
+ protected buildStackSpotError(error: HttpError): StackspotAPIError {
16
+ return new DefaultAPIError(error.data, error.status, accountAssetManagerDictionary, error.headers)
17
+ }
18
+
19
+ /**
20
+ * Save project
21
+ */
22
+ saveProject = this.mutation(removeAuthorizationParam(saveProject))
23
+
24
+ /**
25
+ * Get project details
26
+ */
27
+ getProjectDetails = this.query(removeAuthorizationParam(getProjectDetails))
28
+
29
+ /**
30
+ * Delete project
31
+ */
32
+ deleteProject = this.mutation(removeAuthorizationParam(deleteProject))
33
+
34
+ /**
35
+ * Update project
36
+ */
37
+ updateProject = this.mutation(removeAuthorizationParam(updateProject))
38
+
39
+ /**
40
+ * Disassociate project asset
41
+ */
42
+ disassociateProjectAsset = this.mutation(removeAuthorizationParam(disassociateProjectAsset))
43
+
44
+ /**
45
+ * List account folders
46
+ */
47
+ folders = this.query(removeAuthorizationParam(listFolders))
48
+
49
+ /**
50
+ * Create new folder in account
51
+ */
52
+ createFolder = this.mutation(removeAuthorizationParam(saveFolder))
53
+
54
+ /**
55
+ * Get folder details
56
+ */
57
+ folderDetails = this.query(removeAuthorizationParam(getFolderDetails))
58
+
59
+ /**
60
+ * Delete folder
61
+ */
62
+ deleteFolder = this.mutation(removeAuthorizationParam(deleteFolder))
63
+
64
+ /**
65
+ * Update folder
66
+ */
67
+ updateFolder = this.mutation(removeAuthorizationParam(updateFolders))
68
+
69
+ /**
70
+ * Create asset
71
+ */
72
+ createAsset = this.mutation(removeAuthorizationParam(saveAssetType))
73
+
74
+ /**
75
+ * Update asset
76
+ */
77
+ updateAsset = this.mutation(removeAuthorizationParam(updateAsset))
78
+
79
+ /**
80
+ * List all asset types
81
+ */
82
+ assetTypes = this.query(removeAuthorizationParam(listAssetTypes))
83
+
84
+ /**
85
+ * Save asset type
86
+ */
87
+ saveAssetType = this.mutation(removeAuthorizationParam(saveAssetType))
88
+
89
+ /**
90
+ * Delete asset type
91
+ */
92
+ deleteAssetType = this.mutation(removeAuthorizationParam(deleteAssetType))
93
+
94
+ /**
95
+ * Update asset type
96
+ */
97
+ updateAssetType = this.mutation(removeAuthorizationParam(updateAssetType))
98
+ }
99
+
100
+ export const accountAssetManagerClient = new AccountAssetManagerClient()
@@ -102,8 +102,8 @@ import {
102
102
  isCreatedScmCredentials1,
103
103
  listAccountMemberFavorites,
104
104
  listExtensionLinks,
105
- listExtensions,
106
105
  listExtensionVersions,
106
+ listManageableExtensions,
107
107
  listMemberFavoritesByResource,
108
108
  listScmCredentials1,
109
109
  listScmCredentials2, partialUpdateSso, personalAccessTokenAuthorization,
@@ -145,8 +145,12 @@ import { DefaultAPIError } from '../error/DefaultAPIError'
145
145
  import { accountDictionary } from '../error/dictionary/account'
146
146
  import { StackspotAPIError } from '../error/StackspotAPIError'
147
147
  import { ReactQueryNetworkClient } from '../network/ReactQueryNetworkClient'
148
+ import { removeAuthorizationParam } from '../utils/remove-authorization-param'
148
149
  import { CreateSCMRequest, SCMStatus, UpdateSCMRequest } from './types'
149
150
 
151
+ const listAllResourcesOfGroup = removeAuthorizationParam(getGroupResources)
152
+ const getsListAllResourcesOfGroup = removeAuthorizationParam(getResources)
153
+
150
154
  class AccountClient extends ReactQueryNetworkClient {
151
155
  constructor() {
152
156
  super(getApiAddresses().account.url, defaults)
@@ -324,9 +328,9 @@ class AccountClient extends ReactQueryNetworkClient {
324
328
  */
325
329
  removeRoleFromGroup = this.mutation(deleteRole)
326
330
  /**
327
- * Gets all resources of a group (paginated).
331
+ * Get all resources by groups with pagination.
328
332
  */
329
- groupResources = this.infiniteQuery(getGroupResources)
333
+ allResourcesByGroupWithPagination = this.infiniteQuery(listAllResourcesOfGroup, { accumulator: 'items' })
330
334
  /**
331
335
  * Adds several resources to a group.
332
336
  */
@@ -393,7 +397,7 @@ class AccountClient extends ReactQueryNetworkClient {
393
397
  /**
394
398
  * Gets all resources (paginated)
395
399
  */
396
- allResources = this.infiniteQuery(getResources)
400
+ allResources = this.infiniteQuery(getsListAllResourcesOfGroup, { accumulator: 'items' })
397
401
  /**
398
402
  * Gets all resource types (paginated)
399
403
  */
@@ -649,9 +653,9 @@ class AccountClient extends ReactQueryNetworkClient {
649
653
  */
650
654
  allRolesByGroupWithPagination = this.query(getRoles5)
651
655
  /**
652
- * Get all resources by groups with pagination
656
+ * Gets all resources of a group (paginated)
653
657
  */
654
- allResourcesByGroupWithPagination = this.query(getGroupResources1)
658
+ groupResources = this.query(getGroupResources1)
655
659
  /**
656
660
  * Get all roles account with pagination
657
661
  */
@@ -687,7 +691,7 @@ class AccountClient extends ReactQueryNetworkClient {
687
691
  /**
688
692
  * Lists all extensions.
689
693
  */
690
- extensions = this.query(listExtensions)
694
+ extensions = this.query(listManageableExtensions)
691
695
 
692
696
  /**
693
697
  * Lists all versions of an extension.
@@ -1,6 +1,6 @@
1
1
  import { HttpError } from '@oazapfts/runtime'
2
2
  import { getApiAddresses } from '../api-addresses'
3
- import { addFavoriteV1AgentsAgentIdFavoritePost, AgentVisibilityLevelEnum, createAgentV1AgentsPost, createToolkitToolsV1ToolkitsToolkitIdToolsPost, createToolkitV1ToolkitsPost, defaults, deleteAgentV1AgentsAgentIdDelete, deleteFavoriteV1AgentsAgentIdFavoriteDelete, deleteToolkitToolsV1ToolkitsToolkitIdToolsDelete, deleteToolkitV1ToolkitsToolkitIdDelete, editToolkitToolV1ToolkitsToolkitIdToolsToolIdPut, forkAgentV1AgentsAgentIdForkPost, forkToolkitV1ToolkitsToolkitIdForkPost, getAgentV1AgentsAgentIdGet, getPublicToolKitsV1BuiltinToolkitGet, getToolkitToolV1ToolkitsToolkitIdToolsToolIdGet, getToolkitV1ToolkitsToolkitIdGet, listAgentsUsingToolsV1ToolkitsToolkitIdToolsAgentsPost, listAgentsV1AgentsGet, listAgentsV3AgentsGet, listMcpToolsV1McpToolsToolkitIdGet, listMultiAgentsV1AgentsMultiAgentsGet, listToolkitsV1ToolkitsGet, publishAgentV1AgentsAgentIdPublishPost, searchAgentsV1AgentsSearchPost, shareV1AgentsAgentIdSharePost, updateAgentV1AgentsAgentIdPatch, updateToolkitV1ToolkitsToolkitIdPatch, VisibilityLevelEnum } from '../api/agent-tools'
3
+ import { addFavoriteV1AgentsAgentIdFavoritePost, AgentVisibilityLevelEnum, createAgentV1AgentsPost, createAgentV2AgentsPost, createToolkitToolsV1ToolkitsToolkitIdToolsPost, createToolkitV1ToolkitsPost, createVersionV1AgentsAgentCoreIdVersionsPost, defaults, deleteAgentV1AgentsAgentIdDelete, deleteFavoriteV1AgentsAgentIdFavoriteDelete, deleteToolkitToolsV1ToolkitsToolkitIdToolsDelete, deleteToolkitV1ToolkitsToolkitIdDelete, deleteVersionV1AgentsAgentCoreIdVersionsVersionNumberDelete, editToolkitToolV1ToolkitsToolkitIdToolsToolIdPut, findByAgentCoreIdV2AgentsAgentCoreIdGet, forkAgentV1AgentsAgentIdForkPost, forkAgentVersionV1AgentsAgentCoreIdVersionsVersionNumberForkPost, forkToolkitV1ToolkitsToolkitIdForkPost, getAgentV1AgentsAgentIdGet, getPublicToolKitsV1BuiltinToolkitGet, getToolkitToolV1ToolkitsToolkitIdToolsToolIdGet, getToolkitV1ToolkitsToolkitIdGet, listAgentsUsingToolsV1ToolkitsToolkitIdToolsAgentsPost, listAgentsV1AgentsGet, listAgentsV3AgentsGet, listMcpToolsV1McpToolsToolkitIdGet, listMultiAgentsV1AgentsMultiAgentsGet, listToolkitsV1ToolkitsGet, listToolkitsV2ToolkitsGet, listVersionsOfAgentCoreV1AgentsAgentCoreIdVersionsGet, patchVersionRecommendedV1AgentsAgentCoreIdVersionsVersionNumberPatch, publishAgentV1AgentsAgentIdPublishPost, searchAgentsByIdsV1AgentsSearchPost, shareV1AgentsAgentIdSharePost, updateAgentV1AgentsAgentIdPatch, updateAgentV2AgentsAgentIdPatch, updateToolkitV1ToolkitsToolkitIdPatch, VisibilityLevelEnum } from '../api/agent-tools'
4
4
  import { DefaultAPIError } from '../error/DefaultAPIError'
5
5
  import { agentToolsDictionary } from '../error/dictionary/agent-tools'
6
6
  import { StackspotAPIError } from '../error/StackspotAPIError'
@@ -13,6 +13,7 @@ import { workspaceAiClient } from './workspace-ai'
13
13
 
14
14
  const AGENT_DEFAULT_SLUG = 'stk_flex'
15
15
  const listAgentsV3AgentsWithoutAuthorization = removeAuthorizationParam(listAgentsV3AgentsGet)
16
+ const listToolkitsAuthorization = removeAuthorizationParam(listToolkitsV2ToolkitsGet)
16
17
 
17
18
  class AgentToolsClient extends ReactQueryNetworkClient {
18
19
  constructor() {
@@ -29,6 +30,7 @@ class AgentToolsClient extends ReactQueryNetworkClient {
29
30
  tools = this.query(removeAuthorizationParam(getPublicToolKitsV1BuiltinToolkitGet))
30
31
 
31
32
  /**
33
+ * @deprecated
32
34
  * Create agent
33
35
  */
34
36
  createAgent = this.mutation(removeAuthorizationParam(createAgentV1AgentsPost))
@@ -39,6 +41,7 @@ class AgentToolsClient extends ReactQueryNetworkClient {
39
41
  deleteAgent = this.mutation(removeAuthorizationParam(deleteAgentV1AgentsAgentIdDelete))
40
42
 
41
43
  /**
44
+ * @deprecated
42
45
  * Updates an agent
43
46
  */
44
47
  updateAgent = this.mutation(removeAuthorizationParam(updateAgentV1AgentsAgentIdPatch))
@@ -77,6 +80,7 @@ class AgentToolsClient extends ReactQueryNetworkClient {
77
80
  availableAgentsForMultiAgentAddition = this.query(removeAuthorizationParam(listMultiAgentsV1AgentsMultiAgentsGet))
78
81
 
79
82
  /**
83
+ * @deprecated
80
84
  * Gets agent by id
81
85
  */
82
86
  agent = this.query(removeAuthorizationParam(getAgentV1AgentsAgentIdGet))
@@ -84,7 +88,7 @@ class AgentToolsClient extends ReactQueryNetworkClient {
84
88
  /**
85
89
  * Gets agents by ids
86
90
  */
87
- agentsByIds = this.query(removeAuthorizationParam(searchAgentsV1AgentsSearchPost))
91
+ agentsByIds = this.query(removeAuthorizationParam(searchAgentsByIdsV1AgentsSearchPost))
88
92
 
89
93
  /**
90
94
  * Gets the default agent slug
@@ -97,11 +101,11 @@ class AgentToolsClient extends ReactQueryNetworkClient {
97
101
  agentDefault = this.query({
98
102
  name: 'agentDefault',
99
103
  request: async (signal) => {
100
- const agentDefault = await listAgentsV1AgentsGet(
101
- { visibility: 'built_in', slug: this.agentDefaultSlug, authorization: '' }, { signal },
104
+ const agentDefault = await listAgentsV3AgentsGet(
105
+ { filters: { visibility_list: ['built_in'], slug: this.agentDefaultSlug }, authorization: '' }, { signal },
102
106
  )
103
107
 
104
- const agentId = agentDefault?.find((agent) => agent.slug === this.agentDefaultSlug)?.id
108
+ const agentId = agentDefault?.items?.find((agent) => agent.slug === this.agentDefaultSlug)?.id
105
109
  const agent = agentId ? await this.agent.query({ agentId }) : undefined
106
110
  return agent
107
111
  },
@@ -112,32 +116,44 @@ class AgentToolsClient extends ReactQueryNetworkClient {
112
116
  */
113
117
  allAgents = this.query({
114
118
  name: 'allAgents',
115
- request: async (signal, variables: { visibilities: (AgentVisibilityLevel | 'all')[] }) => {
119
+ request: async (signal, variables: { visibilities: (AgentVisibilityLevel | 'all')[], filter?: string }) => {
116
120
  const allVisibilities = ['account', 'built_in', 'recently_used', 'favorite', 'personal', 'shared', 'workspace'] as const
117
- const visibilities = variables.visibilities.includes('all')
121
+ const visibilities = !variables.visibilities || variables.visibilities?.includes('all')
118
122
  ? allVisibilities
119
123
  : variables.visibilities as Array<AgentVisibilityLevelEnum | VisibilityLevelEnum>
120
-
121
124
  const shouldFetchWorkspaceAgents = visibilities.includes('workspace')
122
-
125
+
123
126
  const workspaceAgentsPromise = shouldFetchWorkspaceAgents
124
127
  ? workspaceAiClient.workspacesContentsByType.query({ contentType: 'agent' })
125
128
  : Promise.resolve([])
126
129
 
127
- const [workspaceAgents, ...agentsByVisibility] = await Promise.all([
130
+ const listAgentsVisibilities = visibilities.filter((visibility) => visibility!=='workspace')
131
+ const listAgentsPromise = listAgentsVisibilities.length
132
+ ? listAgentsV3AgentsGet({ filters: {
133
+ visibility_list: listAgentsVisibilities as (AgentVisibilityLevelEnum | VisibilityLevelEnum)[],
134
+ name: variables.filter,
135
+ },
136
+ authorization: '' }, { signal })
137
+ : Promise.resolve({ items: [] })
138
+
139
+ const [workspaceAgents, agentsByVisibility] = await Promise.all([
128
140
  workspaceAgentsPromise,
129
- ...visibilities.map((visibility) => listAgentsV1AgentsGet({ visibility, authorization: '' }, { signal })),
141
+ listAgentsPromise,
130
142
  ])
131
143
 
132
144
  const workspaceAgentsWithSpaceName = workspaceAgents.flatMap(({ agents, space_name }) =>
133
145
  agents?.map((agent) => ({ ...agent, spaceName: space_name, builtIn: false }))) as AgentResponseWithBuiltIn[]
134
-
135
- const allAgents: AgentResponseWithBuiltIn[] = workspaceAgentsWithSpaceName ?? []
136
-
137
- agentsByVisibility.forEach(agents => allAgents.push(...agents.map(agent => ({
146
+
147
+ const filteredWorkspaceAgents = variables.filter ? workspaceAgentsWithSpaceName.filter((agent) =>
148
+ agent.name.toLowerCase().includes(variables.filter!)) :
149
+ workspaceAgentsWithSpaceName
150
+
151
+ const allAgents: AgentResponseWithBuiltIn[] = filteredWorkspaceAgents ?? []
152
+
153
+ agentsByVisibility.items?.forEach(agent => allAgents.push(({
138
154
  ...agent,
139
155
  builtIn: agent?.visibility_level === 'built_in',
140
- }))))
156
+ })))
141
157
 
142
158
  return allAgents
143
159
  },
@@ -147,6 +163,10 @@ class AgentToolsClient extends ReactQueryNetworkClient {
147
163
  * Lists all custom toolkits.
148
164
  */
149
165
  toolkits = this.query(removeAuthorizationParam(listToolkitsV1ToolkitsGet))
166
+ /**
167
+ * Get list of Toolkits V2
168
+ */
169
+ toolkitsV2 = this.infiniteQuery(listToolkitsAuthorization, { accumulator: 'items' })
150
170
  /**
151
171
  * Lists all tools of an MCP toolkit.
152
172
  */
@@ -183,6 +203,7 @@ class AgentToolsClient extends ReactQueryNetworkClient {
183
203
  * Delete tool from Toolkit
184
204
  */
185
205
  deleteToolFromToolkit = this.mutation(removeAuthorizationParam(deleteToolkitToolsV1ToolkitsToolkitIdToolsDelete))
206
+
186
207
  /**
187
208
  * Previews an uploaded open api file as a stream where each array item is an OpenAPI operation.
188
209
  */
@@ -220,6 +241,38 @@ class AgentToolsClient extends ReactQueryNetworkClient {
220
241
  * remove an agent from favorites
221
242
  */
222
243
  removeFavorite = this.mutation(removeAuthorizationParam(deleteFavoriteV1AgentsAgentIdFavoriteDelete))
244
+ /**
245
+ * Creates an agent version
246
+ */
247
+ createAgentVersion = this.mutation(removeAuthorizationParam(createVersionV1AgentsAgentCoreIdVersionsPost))
248
+ /**
249
+ * V2 of agent creation
250
+ */
251
+ createAgentV2 = this.mutation(removeAuthorizationParam(createAgentV2AgentsPost))
252
+ /**
253
+ * V2 of agent update
254
+ */
255
+ updateAgentV2 = this.mutation(removeAuthorizationParam(updateAgentV2AgentsAgentIdPatch))
256
+ /**
257
+ * Update agent recommended version
258
+ */
259
+ updateRecommendedVersion = this.mutation(removeAuthorizationParam(patchVersionRecommendedV1AgentsAgentCoreIdVersionsVersionNumberPatch))
260
+ /**
261
+ * V2 of get agent by id
262
+ */
263
+ agentV2 = this.query(removeAuthorizationParam(findByAgentCoreIdV2AgentsAgentCoreIdGet))
264
+ /**
265
+ * Gets agent versions
266
+ */
267
+ listAgentVersions = this.query(removeAuthorizationParam(listVersionsOfAgentCoreV1AgentsAgentCoreIdVersionsGet))
268
+ /**
269
+ * Deletes an agent version
270
+ */
271
+ deleteVersion = this.mutation(removeAuthorizationParam(deleteVersionV1AgentsAgentCoreIdVersionsVersionNumberDelete))
272
+ /**
273
+ * Deletes an agent version
274
+ */
275
+ forkAgentVersion = this.mutation(removeAuthorizationParam(forkAgentVersionV1AgentsAgentCoreIdVersionsVersionNumberForkPost))
223
276
  }
224
277
 
225
278
  export const agentToolsClient = new AgentToolsClient()