@stack-spot/portal-network 0.202.1 → 0.203.0-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 (126) 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 +79 -4
  23. package/dist/api/discover.d.ts.map +1 -1
  24. package/dist/api/discover.js +73 -7
  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 +108 -3
  49. package/dist/client/agent-tools.d.ts.map +1 -1
  50. package/dist/client/agent-tools.js +95 -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 +16 -2
  64. package/dist/client/discover.d.ts.map +1 -1
  65. package/dist/client/discover.js +28 -1
  66. package/dist/client/discover.js.map +1 -1
  67. package/dist/client/edp-bfa.d.ts +16 -0
  68. package/dist/client/edp-bfa.d.ts.map +1 -0
  69. package/dist/client/edp-bfa.js +24 -0
  70. package/dist/client/edp-bfa.js.map +1 -0
  71. package/dist/client/notification.d.ts +7 -0
  72. package/dist/client/notification.d.ts.map +1 -1
  73. package/dist/client/notification.js +10 -1
  74. package/dist/client/notification.js.map +1 -1
  75. package/dist/client/types.d.ts +11 -3
  76. package/dist/client/types.d.ts.map +1 -1
  77. package/dist/client/workspace-ai.d.ts +13 -3
  78. package/dist/client/workspace-ai.d.ts.map +1 -1
  79. package/dist/client/workspace-ai.js +17 -3
  80. package/dist/client/workspace-ai.js.map +1 -1
  81. package/dist/client/workspace-manager.d.ts +15 -0
  82. package/dist/client/workspace-manager.d.ts.map +1 -1
  83. package/dist/client/workspace-manager.js +19 -1
  84. package/dist/client/workspace-manager.js.map +1 -1
  85. package/dist/error/dictionary/accountAssetManager.d.ts +11 -0
  86. package/dist/error/dictionary/accountAssetManager.d.ts.map +1 -0
  87. package/dist/error/dictionary/accountAssetManager.js +11 -0
  88. package/dist/error/dictionary/accountAssetManager.js.map +1 -0
  89. package/dist/index.d.ts +3 -1
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +3 -1
  92. package/dist/index.js.map +1 -1
  93. package/dist/network/NetworkClient.d.ts.map +1 -1
  94. package/dist/network/NetworkClient.js +12 -2
  95. package/dist/network/NetworkClient.js.map +1 -1
  96. package/dist/network/types.d.ts +1 -0
  97. package/dist/network/types.d.ts.map +1 -1
  98. package/package.json +2 -2
  99. package/readme.md +39 -1
  100. package/src/api/account.ts +592 -165
  101. package/src/api/accountAssetManager.ts +771 -0
  102. package/src/api/agent-tools.ts +824 -188
  103. package/src/api/ai.ts +206 -38
  104. package/src/api/codeShift.ts +233 -12
  105. package/src/api/discover.ts +153 -10
  106. package/src/api/edpBfa.ts +472 -0
  107. package/src/api/workspace-ai.ts +83 -0
  108. package/src/api-addresses.ts +93 -37
  109. package/src/apis-itau.json +16 -0
  110. package/src/apis.json +16 -0
  111. package/src/client/account-asset-manager.ts +100 -0
  112. package/src/client/account.ts +11 -7
  113. package/src/client/agent-tools.ts +64 -16
  114. package/src/client/ai.ts +129 -19
  115. package/src/client/code-shift.ts +29 -0
  116. package/src/client/data-integration.ts +9 -2
  117. package/src/client/discover.ts +15 -2
  118. package/src/client/edp-bfa.ts +24 -0
  119. package/src/client/notification.ts +6 -1
  120. package/src/client/types.ts +12 -3
  121. package/src/client/workspace-ai.ts +21 -6
  122. package/src/client/workspace-manager.ts +13 -0
  123. package/src/error/dictionary/accountAssetManager.ts +12 -0
  124. package/src/index.ts +4 -1
  125. package/src/network/NetworkClient.ts +13 -4
  126. 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, 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))
@@ -84,7 +87,7 @@ class AgentToolsClient extends ReactQueryNetworkClient {
84
87
  /**
85
88
  * Gets agents by ids
86
89
  */
87
- agentsByIds = this.query(removeAuthorizationParam(searchAgentsV1AgentsSearchPost))
90
+ agentsByIds = this.query(removeAuthorizationParam(searchAgentsByIdsV1AgentsSearchPost))
88
91
 
89
92
  /**
90
93
  * Gets the default agent slug
@@ -97,11 +100,11 @@ class AgentToolsClient extends ReactQueryNetworkClient {
97
100
  agentDefault = this.query({
98
101
  name: 'agentDefault',
99
102
  request: async (signal) => {
100
- const agentDefault = await listAgentsV1AgentsGet(
101
- { visibility: 'built_in', slug: this.agentDefaultSlug, authorization: '' }, { signal },
103
+ const agentDefault = await listAgentsV3AgentsGet(
104
+ { filters: { visibility_list: ['built_in'], slug: this.agentDefaultSlug }, authorization: '' }, { signal },
102
105
  )
103
106
 
104
- const agentId = agentDefault?.find((agent) => agent.slug === this.agentDefaultSlug)?.id
107
+ const agentId = agentDefault?.items?.find((agent) => agent.slug === this.agentDefaultSlug)?.id
105
108
  const agent = agentId ? await this.agent.query({ agentId }) : undefined
106
109
  return agent
107
110
  },
@@ -112,32 +115,44 @@ class AgentToolsClient extends ReactQueryNetworkClient {
112
115
  */
113
116
  allAgents = this.query({
114
117
  name: 'allAgents',
115
- request: async (signal, variables: { visibilities: (AgentVisibilityLevel | 'all')[] }) => {
118
+ request: async (signal, variables: { visibilities: (AgentVisibilityLevel | 'all')[], filter?: string }) => {
116
119
  const allVisibilities = ['account', 'built_in', 'recently_used', 'favorite', 'personal', 'shared', 'workspace'] as const
117
- const visibilities = variables.visibilities.includes('all')
120
+ const visibilities = !variables.visibilities || variables.visibilities?.includes('all')
118
121
  ? allVisibilities
119
122
  : variables.visibilities as Array<AgentVisibilityLevelEnum | VisibilityLevelEnum>
120
-
121
123
  const shouldFetchWorkspaceAgents = visibilities.includes('workspace')
122
-
124
+
123
125
  const workspaceAgentsPromise = shouldFetchWorkspaceAgents
124
126
  ? workspaceAiClient.workspacesContentsByType.query({ contentType: 'agent' })
125
127
  : Promise.resolve([])
126
128
 
127
- const [workspaceAgents, ...agentsByVisibility] = await Promise.all([
129
+ const listAgentsVisibilities = visibilities.filter((visibility) => visibility!=='workspace')
130
+ const listAgentsPromise = listAgentsVisibilities.length
131
+ ? listAgentsV3AgentsGet({ filters: {
132
+ visibility_list: listAgentsVisibilities as (AgentVisibilityLevelEnum | VisibilityLevelEnum)[],
133
+ name: variables.filter,
134
+ },
135
+ authorization: '' }, { signal })
136
+ : Promise.resolve({ items: [] })
137
+
138
+ const [workspaceAgents, agentsByVisibility] = await Promise.all([
128
139
  workspaceAgentsPromise,
129
- ...visibilities.map((visibility) => listAgentsV1AgentsGet({ visibility, authorization: '' }, { signal })),
140
+ listAgentsPromise,
130
141
  ])
131
142
 
132
143
  const workspaceAgentsWithSpaceName = workspaceAgents.flatMap(({ agents, space_name }) =>
133
144
  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 => ({
145
+
146
+ const filteredWorkspaceAgents = variables.filter ? workspaceAgentsWithSpaceName.filter((agent) =>
147
+ agent.name.toLowerCase().includes(variables.filter!)) :
148
+ workspaceAgentsWithSpaceName
149
+
150
+ const allAgents: AgentResponseWithBuiltIn[] = filteredWorkspaceAgents ?? []
151
+
152
+ agentsByVisibility.items?.forEach(agent => allAgents.push(({
138
153
  ...agent,
139
154
  builtIn: agent?.visibility_level === 'built_in',
140
- }))))
155
+ })))
141
156
 
142
157
  return allAgents
143
158
  },
@@ -147,6 +162,10 @@ class AgentToolsClient extends ReactQueryNetworkClient {
147
162
  * Lists all custom toolkits.
148
163
  */
149
164
  toolkits = this.query(removeAuthorizationParam(listToolkitsV1ToolkitsGet))
165
+ /**
166
+ * Get list of Toolkits V2
167
+ */
168
+ toolkitsV2 = this.infiniteQuery(listToolkitsAuthorization, { accumulator: 'items' })
150
169
  /**
151
170
  * Lists all tools of an MCP toolkit.
152
171
  */
@@ -183,6 +202,7 @@ class AgentToolsClient extends ReactQueryNetworkClient {
183
202
  * Delete tool from Toolkit
184
203
  */
185
204
  deleteToolFromToolkit = this.mutation(removeAuthorizationParam(deleteToolkitToolsV1ToolkitsToolkitIdToolsDelete))
205
+
186
206
  /**
187
207
  * Previews an uploaded open api file as a stream where each array item is an OpenAPI operation.
188
208
  */
@@ -220,6 +240,34 @@ class AgentToolsClient extends ReactQueryNetworkClient {
220
240
  * remove an agent from favorites
221
241
  */
222
242
  removeFavorite = this.mutation(removeAuthorizationParam(deleteFavoriteV1AgentsAgentIdFavoriteDelete))
243
+ /**
244
+ * Creates an agent version
245
+ */
246
+ createAgentVersion = this.mutation(removeAuthorizationParam(createVersionV1AgentsAgentCoreIdVersionsPost))
247
+ /**
248
+ * V2 of agent creation
249
+ */
250
+ createAgentV2 = this.mutation(removeAuthorizationParam(createAgentV2AgentsPost))
251
+ /**
252
+ * V2 of agent update
253
+ */
254
+ updateAgentV2 = this.mutation(removeAuthorizationParam(updateAgentV2AgentsAgentIdPatch))
255
+ /**
256
+ * Update agent recommended version
257
+ */
258
+ updateRecommendedVersion = this.mutation(removeAuthorizationParam(patchVersionRecommendedV1AgentsAgentCoreIdVersionsVersionNumberPatch))
259
+ /**
260
+ * V2 of get agent by id
261
+ */
262
+ agentV2 = this.query(removeAuthorizationParam(findByAgentCoreIdV2AgentsAgentCoreIdGet))
263
+ /**
264
+ * Gets agent versions
265
+ */
266
+ listAgentVersions = this.query(removeAuthorizationParam(listVersionsOfAgentCoreV1AgentsAgentCoreIdVersionsGet))
267
+ /**
268
+ * Deletes an agent version
269
+ */
270
+ deleteVersion = this.mutation(removeAuthorizationParam(deleteVersionV1AgentsAgentCoreIdVersionsVersionNumberDelete))
223
271
  }
224
272
 
225
273
  export const agentToolsClient = new AgentToolsClient()