@burdenoff/microfe-botmanor 2026.1109.2 → 2026.1110.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 (52) hide show
  1. package/dist/botlit/components/Badge.js +2 -2
  2. package/dist/botlit/components/Badge.js.map +1 -1
  3. package/dist/botlit/components/ChannelSelectorSheet.js +4 -4
  4. package/dist/botlit/components/ChannelSelectorSheet.js.map +1 -1
  5. package/dist/botlit/components/LoadMore.d.ts +9 -0
  6. package/dist/botlit/components/LoadMore.js +22 -0
  7. package/dist/botlit/components/LoadMore.js.map +1 -0
  8. package/dist/botlit/components/index.d.ts +1 -0
  9. package/dist/botlit/hooks/internal/workspaceGateway.d.ts +47 -0
  10. package/dist/botlit/hooks/internal/workspaceGateway.js +59 -1
  11. package/dist/botlit/hooks/internal/workspaceGateway.js.map +1 -1
  12. package/dist/botlit/hooks/useAgents.d.ts +2 -6
  13. package/dist/botlit/hooks/useAgents.js +71 -95
  14. package/dist/botlit/hooks/useAgents.js.map +1 -1
  15. package/dist/botlit/hooks/useBots.d.ts +2 -6
  16. package/dist/botlit/hooks/useBots.js +51 -75
  17. package/dist/botlit/hooks/useBots.js.map +1 -1
  18. package/dist/botlit/hooks/useExecutions.d.ts +2 -2
  19. package/dist/botlit/hooks/useExecutions.js +30 -34
  20. package/dist/botlit/hooks/useExecutions.js.map +1 -1
  21. package/dist/botlit/hooks/useStore.d.ts +3 -3
  22. package/dist/botlit/hooks/useStore.js +41 -50
  23. package/dist/botlit/hooks/useStore.js.map +1 -1
  24. package/dist/botlit/pages/A2AAgentDetailPage.js +1 -1
  25. package/dist/botlit/pages/A2AAgentDetailPage.js.map +1 -1
  26. package/dist/botlit/pages/AgentDetailPage.js +1 -1
  27. package/dist/botlit/pages/AgentDetailPage.js.map +1 -1
  28. package/dist/botlit/pages/AgentsListPage.js +157 -156
  29. package/dist/botlit/pages/AgentsListPage.js.map +1 -1
  30. package/dist/botlit/pages/BotChannelsTab.js +24 -24
  31. package/dist/botlit/pages/BotChannelsTab.js.map +1 -1
  32. package/dist/botlit/pages/BotsListPage.js +147 -146
  33. package/dist/botlit/pages/BotsListPage.js.map +1 -1
  34. package/dist/botlit/pages/BucketsPage.js +3 -3
  35. package/dist/botlit/pages/BucketsPage.js.map +1 -1
  36. package/dist/botlit/pages/ChannelDetailPage.js +2 -2
  37. package/dist/botlit/pages/ChannelDetailPage.js.map +1 -1
  38. package/dist/botlit/pages/ExecutionsPage.js +141 -134
  39. package/dist/botlit/pages/ExecutionsPage.js.map +1 -1
  40. package/dist/botlit/pages/InstalledPackagesPage.js +43 -36
  41. package/dist/botlit/pages/InstalledPackagesPage.js.map +1 -1
  42. package/dist/botlit/pages/MCPServersPage.js +1 -1
  43. package/dist/botlit/pages/MCPServersPage.js.map +1 -1
  44. package/dist/botlit/pages/SettingsPage.js +2 -2
  45. package/dist/botlit/pages/SettingsPage.js.map +1 -1
  46. package/dist/botlit/pages/SkillDetailPage.js +1 -1
  47. package/dist/botlit/pages/SkillDetailPage.js.map +1 -1
  48. package/dist/botlit/pages/StorePackageDetailPage.js +1 -1
  49. package/dist/botlit/pages/StorePackageDetailPage.js.map +1 -1
  50. package/dist/botlit/pages/StorePage.js +150 -143
  51. package/dist/botlit/pages/StorePage.js.map +1 -1
  52. package/package.json +1 -1
@@ -1,10 +1,11 @@
1
1
  import { useBotlit as e } from "../providers/BotlitProvider.js";
2
2
  import { buildMutationInput as t, fieldsOf as n } from "./internal/mutationInput.js";
3
- import { useCallback as r, useEffect as i, useMemo as a, useState as o } from "react";
4
- import { gql as s } from "@apollo/client";
5
- import { useGatewayClient as c } from "@burdenoff/fe-libs/shared/graphql";
3
+ import { useWorkspacePaginatedQuery as r } from "./internal/workspaceGateway.js";
4
+ import { useCallback as i, useEffect as a, useMemo as o, useState as s } from "react";
5
+ import { gql as c } from "@apollo/client";
6
+ import { useGatewayClient as l } from "@burdenoff/fe-libs/shared/graphql";
6
7
  // src/botlit/hooks/useAgents.ts
7
- var l = s`
8
+ var u = c`
8
9
  query ListBotmanorAgents($filters: BotmanorAgentFilterInput, $pagination: PaginationInput) {
9
10
  listBotmanorAgents(filters: $filters, pagination: $pagination) {
10
11
  id
@@ -28,7 +29,7 @@ var l = s`
28
29
  workspaceId
29
30
  }
30
31
  }
31
- `, u = s`
32
+ `, d = c`
32
33
  query GetBotmanorAgent($id: ID!) {
33
34
  getBotmanorAgent(id: $id) {
34
35
  id
@@ -62,7 +63,7 @@ var l = s`
62
63
  workspaceId
63
64
  }
64
65
  }
65
- `, d = s`
66
+ `, f = c`
66
67
  mutation CreateBotmanorAgent($input: CreateBotmanorAgentInput!) {
67
68
  createBotmanorAgent(input: $input) {
68
69
  id
@@ -84,7 +85,7 @@ var l = s`
84
85
  workspaceId
85
86
  }
86
87
  }
87
- `, f = s`
88
+ `, p = c`
88
89
  mutation UpdateBotmanorAgent($id: ID!, $input: UpdateBotmanorAgentInput!) {
89
90
  updateBotmanorAgent(id: $id, input: $input) {
90
91
  id
@@ -111,11 +112,11 @@ var l = s`
111
112
  workspaceId
112
113
  }
113
114
  }
114
- `, p = s`
115
+ `, m = c`
115
116
  mutation DeleteBotmanorAgent($id: ID!) {
116
117
  deleteBotmanorAgent(id: $id)
117
118
  }
118
- `, m = s`
119
+ `, h = c`
119
120
  query ListAgentVersions($agentId: ID!, $pagination: PaginationInput) {
120
121
  listAgentVersions(agentId: $agentId, pagination: $pagination) {
121
122
  id
@@ -130,7 +131,7 @@ var l = s`
130
131
  publishedAt
131
132
  }
132
133
  }
133
- `, h = s`
134
+ `, g = c`
134
135
  mutation PublishAgentVersion($agentId: ID!, $versionId: ID!, $changelog: String) {
135
136
  publishAgentVersion(agentId: $agentId, versionId: $versionId, changelog: $changelog) {
136
137
  id
@@ -142,7 +143,7 @@ var l = s`
142
143
  publishedAt
143
144
  }
144
145
  }
145
- `, g = s`
146
+ `, _ = c`
146
147
  mutation RollbackAgentVersion($agentId: ID!, $targetVersionId: ID!) {
147
148
  rollbackAgentVersion(agentId: $agentId, targetVersionId: $targetVersionId) {
148
149
  id
@@ -154,7 +155,7 @@ var l = s`
154
155
  publishedAt
155
156
  }
156
157
  }
157
- `, _ = n({
158
+ `, v = 100, y = [], b = n({
158
159
  bucketId: !0,
159
160
  capabilities: !0,
160
161
  context: !0,
@@ -177,10 +178,10 @@ var l = s`
177
178
  visibility: !0,
178
179
  workflowIds: !0
179
180
  });
180
- function v(e) {
181
+ function x(e) {
181
182
  return e;
182
183
  }
183
- function y(e, t) {
184
+ function S(e, t) {
184
185
  if (e || t) return {
185
186
  workspaceId: e,
186
187
  search: t?.search,
@@ -189,79 +190,54 @@ function y(e, t) {
189
190
  bucketId: t?.bucketId
190
191
  };
191
192
  }
192
- function b(t) {
193
- let n = v(c("workspace")), { workspaceId: s } = e(), [u, d] = o([]), [f, p] = o(!1), [m, h] = o(), g = a(() => ({
194
- filters: y(s, t),
195
- pagination: {
196
- limit: 100,
197
- offset: 0
198
- }
199
- }), [t, s]), _ = r(async () => {
200
- if (!s) d([]);
201
- else {
202
- p(!0), h(void 0);
203
- try {
204
- let e = await n.query({
205
- query: l,
206
- variables: g,
207
- fetchPolicy: "network-only"
208
- });
209
- d(e.data?.listBotmanorAgents ?? []);
210
- } catch (e) {
211
- h(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load agents"));
212
- } finally {
213
- p(!1);
214
- }
215
- }
216
- }, [
217
- n,
218
- g,
219
- s
220
- ]);
221
- return i(() => {
222
- _();
223
- }, [_]), {
224
- data: u,
225
- loading: f,
226
- error: m,
227
- refetch: _
228
- };
193
+ function C(t) {
194
+ let { workspaceId: n } = e(), i = o(() => ({ filters: S(n, t) }), [t, n]);
195
+ return r({
196
+ document: u,
197
+ variables: i,
198
+ pageSize: v,
199
+ extractRows: (e) => e?.listBotmanorAgents ?? [],
200
+ select: (e) => e,
201
+ fallback: y,
202
+ enabled: !!n,
203
+ errorMessage: "Failed to load agents"
204
+ });
229
205
  }
230
- function x(e) {
231
- let t = v(c("workspace")), [n, a] = o(null), [s, l] = o(!1), [d, f] = o(), p = r(async () => {
232
- if (!e) a(null);
206
+ function w(e) {
207
+ let t = x(l("workspace")), [n, r] = s(null), [o, c] = s(!1), [u, f] = s(), p = i(async () => {
208
+ if (!e) r(null);
233
209
  else {
234
- l(!0), f(void 0);
210
+ c(!0), f(void 0);
235
211
  try {
236
212
  let n = await t.query({
237
- query: u,
213
+ query: d,
238
214
  variables: { id: e },
239
215
  fetchPolicy: "network-only"
240
216
  });
241
- a(n.data?.getBotmanorAgent ?? null);
217
+ r(n.data?.getBotmanorAgent ?? null);
242
218
  } catch (e) {
243
219
  f(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load agent"));
244
220
  } finally {
245
- l(!1);
221
+ c(!1);
246
222
  }
247
223
  }
248
224
  }, [e, t]);
249
- return i(() => {
225
+ return a(() => {
250
226
  p();
251
227
  }, [p]), {
252
228
  data: n,
253
- loading: s,
254
- error: d,
229
+ loading: o,
230
+ error: u,
255
231
  refetch: p
256
232
  };
257
233
  }
258
- function S() {
259
- let e = v(c("workspace")), [t, n] = o({
234
+ function T() {
235
+ let e = x(l("workspace")), [t, n] = s({
260
236
  data: void 0,
261
237
  loading: !1,
262
238
  error: void 0
263
239
  });
264
- return [r(async (t) => {
240
+ return [i(async (t) => {
265
241
  n({
266
242
  data: void 0,
267
243
  loading: !0,
@@ -269,7 +245,7 @@ function S() {
269
245
  });
270
246
  try {
271
247
  let r = (await e.mutate({
272
- mutation: d,
248
+ mutation: f,
273
249
  variables: { input: t }
274
250
  })).data?.createBotmanorAgent;
275
251
  if (!r) throw Error("Failed to create agent");
@@ -288,35 +264,35 @@ function S() {
288
264
  }
289
265
  }, [e]), t];
290
266
  }
291
- function C() {
292
- let e = v(c("workspace")), [n, i] = o({
267
+ function E() {
268
+ let e = x(l("workspace")), [n, r] = s({
293
269
  data: void 0,
294
270
  loading: !1,
295
271
  error: void 0
296
272
  });
297
- return [r(async ({ agentId: n, input: r }) => {
298
- i({
273
+ return [i(async ({ agentId: n, input: i }) => {
274
+ r({
299
275
  data: void 0,
300
276
  loading: !0,
301
277
  error: void 0
302
278
  });
303
279
  try {
304
280
  let a = (await e.mutate({
305
- mutation: f,
281
+ mutation: p,
306
282
  variables: {
307
283
  id: n,
308
- input: t(r, _)
284
+ input: t(i, b)
309
285
  }
310
286
  })).data?.updateBotmanorAgent;
311
287
  if (!a) throw Error("Failed to update agent");
312
- return i({
288
+ return r({
313
289
  data: a,
314
290
  loading: !1,
315
291
  error: void 0
316
292
  }), a;
317
293
  } catch (e) {
318
294
  let t = e instanceof Error ? e : /* @__PURE__ */ Error("Failed to update agent");
319
- throw i({
295
+ throw r({
320
296
  data: void 0,
321
297
  loading: !1,
322
298
  error: t
@@ -324,13 +300,13 @@ function C() {
324
300
  }
325
301
  }, [e]), n];
326
302
  }
327
- function w() {
328
- let e = v(c("workspace")), [t, n] = o({
303
+ function D() {
304
+ let e = x(l("workspace")), [t, n] = s({
329
305
  data: void 0,
330
306
  loading: !1,
331
307
  error: void 0
332
308
  });
333
- return [r(async (t) => {
309
+ return [i(async (t) => {
334
310
  n({
335
311
  data: void 0,
336
312
  loading: !0,
@@ -338,7 +314,7 @@ function w() {
338
314
  });
339
315
  try {
340
316
  let r = (await e.mutate({
341
- mutation: p,
317
+ mutation: m,
342
318
  variables: { id: t }
343
319
  })).data?.deleteBotmanorAgent ?? !1;
344
320
  return n({
@@ -356,14 +332,14 @@ function w() {
356
332
  }
357
333
  }, [e]), t];
358
334
  }
359
- function T(e) {
360
- let t = v(c("workspace")), [n, a] = o([]), [s, l] = o(!1), [u, d] = o(), f = r(async () => {
361
- if (!e) a([]);
335
+ function O(e) {
336
+ let t = x(l("workspace")), [n, r] = s([]), [o, c] = s(!1), [u, d] = s(), f = i(async () => {
337
+ if (!e) r([]);
362
338
  else {
363
- l(!0), d(void 0);
339
+ c(!0), d(void 0);
364
340
  try {
365
341
  let n = (await t.query({
366
- query: m,
342
+ query: h,
367
343
  variables: {
368
344
  agentId: e,
369
345
  pagination: {
@@ -373,30 +349,30 @@ function T(e) {
373
349
  },
374
350
  fetchPolicy: "network-only"
375
351
  })).data?.listAgentVersions ?? [];
376
- a([...n].sort((e, t) => e.createdAt && t.createdAt ? t.createdAt.localeCompare(e.createdAt) : 0));
352
+ r([...n].sort((e, t) => e.createdAt && t.createdAt ? t.createdAt.localeCompare(e.createdAt) : 0));
377
353
  } catch (e) {
378
354
  d(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load agent versions"));
379
355
  } finally {
380
- l(!1);
356
+ c(!1);
381
357
  }
382
358
  }
383
359
  }, [e, t]);
384
- return i(() => {
360
+ return a(() => {
385
361
  f();
386
362
  }, [f]), {
387
363
  data: n,
388
- loading: s,
364
+ loading: o,
389
365
  error: u,
390
366
  refetch: f
391
367
  };
392
368
  }
393
- function E() {
394
- let e = v(c("workspace")), [t, n] = o({
369
+ function k() {
370
+ let e = x(l("workspace")), [t, n] = s({
395
371
  data: void 0,
396
372
  loading: !1,
397
373
  error: void 0
398
374
  });
399
- return [r(async ({ agentId: t, versionId: r, changelog: i }) => {
375
+ return [i(async ({ agentId: t, versionId: r, changelog: i }) => {
400
376
  n({
401
377
  data: void 0,
402
378
  loading: !0,
@@ -404,7 +380,7 @@ function E() {
404
380
  });
405
381
  try {
406
382
  let a = (await e.mutate({
407
- mutation: h,
383
+ mutation: g,
408
384
  variables: {
409
385
  agentId: t,
410
386
  versionId: r,
@@ -427,13 +403,13 @@ function E() {
427
403
  }
428
404
  }, [e]), t];
429
405
  }
430
- function D() {
431
- let e = v(c("workspace")), [t, n] = o({
406
+ function A() {
407
+ let e = x(l("workspace")), [t, n] = s({
432
408
  data: void 0,
433
409
  loading: !1,
434
410
  error: void 0
435
411
  });
436
- return [r(async ({ agentId: t, targetVersionId: r }) => {
412
+ return [i(async ({ agentId: t, targetVersionId: r }) => {
437
413
  n({
438
414
  data: void 0,
439
415
  loading: !0,
@@ -441,7 +417,7 @@ function D() {
441
417
  });
442
418
  try {
443
419
  let i = (await e.mutate({
444
- mutation: g,
420
+ mutation: _,
445
421
  variables: {
446
422
  agentId: t,
447
423
  targetVersionId: r
@@ -463,6 +439,6 @@ function D() {
463
439
  }
464
440
  }, [e]), t];
465
441
  }
466
- export { x as useAgent, T as useAgentVersions, b as useAgents, S as useCreateAgent, w as useDeleteAgent, E as usePublishAgentVersion, D as useRollbackAgentVersion, C as useUpdateAgent };
442
+ export { w as useAgent, O as useAgentVersions, C as useAgents, T as useCreateAgent, D as useDeleteAgent, k as usePublishAgentVersion, A as useRollbackAgentVersion, E as useUpdateAgent };
467
443
 
468
444
  //# sourceMappingURL=useAgents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAgents.js","names":["LIST_AGENTS_DOCUMENT","GET_AGENT_DOCUMENT","CREATE_AGENT_DOCUMENT","UPDATE_AGENT_DOCUMENT","DELETE_AGENT_DOCUMENT","LIST_AGENT_VERSIONS_DOCUMENT","PUBLISH_AGENT_VERSION_DOCUMENT","ROLLBACK_AGENT_VERSION_DOCUMENT","UPDATE_AGENT_FIELDS","fieldsOf","getWorkspaceClient","client","buildAgentFilter","workspaceId","filter","useAgents","useGatewayClient","useBotlit","data","setData","useState","loading","setLoading","error","setError","variables","useMemo","refetch","useCallback","result","queryError","useEffect","useAgent","agentId","useCreateAgent","state","setState","createdAgent","mutationError","useUpdateAgent","updatedAgent","buildMutationInput","input","useDeleteAgent","deleted","useAgentVersions","versions","a","b","usePublishAgentVersion","published","changelog","useRollbackAgentVersion","rolledBack"],"sources":["../../../src/botlit/hooks/useAgents.ts"],"sourcesContent":["import { gql, type ApolloClient } from '@apollo/client';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useGatewayClient } from '@burdenoff/fe-libs/shared/graphql';\n\nimport type { UpdateBotmanorAgentInput } from '../../generated/wspace-types';\nimport { useBotlit } from '../providers/BotlitProvider';\nimport type { BaseFilter } from '../types';\nimport { buildMutationInput, fieldsOf, type GraphQLInput } from './internal/mutationInput';\n\nconst LIST_AGENTS_DOCUMENT = gql`\n query ListBotmanorAgents($filters: BotmanorAgentFilterInput, $pagination: PaginationInput) {\n listBotmanorAgents(filters: $filters, pagination: $pagination) {\n id\n name\n slug\n description\n type\n status\n visibility\n capabilities\n llmModelId\n bucketId\n executionCount\n lastExecutedAt\n specialization\n tagIds\n createdAt\n updatedAt\n createdById\n updatedById\n workspaceId\n }\n }\n`;\n\nconst GET_AGENT_DOCUMENT = gql`\n query GetBotmanorAgent($id: ID!) {\n getBotmanorAgent(id: $id) {\n id\n name\n slug\n description\n type\n status\n visibility\n capabilities\n llmModelId\n bucketId\n currentVersionId\n draftVersionId\n executionCount\n lastExecutedAt\n specialization\n systemPrompt\n temperature\n maxTokens\n maxConcurrentExecutions\n knowledgeBaseIds\n mcpConnectionIds\n workflowIds\n tagIds\n metadata\n createdAt\n updatedAt\n createdById\n updatedById\n workspaceId\n }\n }\n`;\n\nconst CREATE_AGENT_DOCUMENT = gql`\n mutation CreateBotmanorAgent($input: CreateBotmanorAgentInput!) {\n createBotmanorAgent(input: $input) {\n id\n name\n slug\n description\n type\n status\n visibility\n capabilities\n llmModelId\n systemPrompt\n temperature\n maxTokens\n maxConcurrentExecutions\n tagIds\n createdAt\n updatedAt\n workspaceId\n }\n }\n`;\n\nconst UPDATE_AGENT_DOCUMENT = gql`\n mutation UpdateBotmanorAgent($id: ID!, $input: UpdateBotmanorAgentInput!) {\n updateBotmanorAgent(id: $id, input: $input) {\n id\n name\n slug\n description\n type\n status\n visibility\n capabilities\n llmModelId\n systemPrompt\n temperature\n maxTokens\n maxConcurrentExecutions\n knowledgeBaseIds\n mcpConnectionIds\n workflowIds\n tagIds\n metadata\n createdAt\n updatedAt\n updatedById\n workspaceId\n }\n }\n`;\n\nconst DELETE_AGENT_DOCUMENT = gql`\n mutation DeleteBotmanorAgent($id: ID!) {\n deleteBotmanorAgent(id: $id)\n }\n`;\n\n// BOFF-4381: agent version history, publish, and rollback.\nconst LIST_AGENT_VERSIONS_DOCUMENT = gql`\n query ListAgentVersions($agentId: ID!, $pagination: PaginationInput) {\n listAgentVersions(agentId: $agentId, pagination: $pagination) {\n id\n agentId\n version\n status\n changelog\n config\n createdById\n createdAt\n publishedById\n publishedAt\n }\n }\n`;\n\nconst PUBLISH_AGENT_VERSION_DOCUMENT = gql`\n mutation PublishAgentVersion($agentId: ID!, $versionId: ID!, $changelog: String) {\n publishAgentVersion(agentId: $agentId, versionId: $versionId, changelog: $changelog) {\n id\n agentId\n version\n status\n changelog\n publishedById\n publishedAt\n }\n }\n`;\n\nconst ROLLBACK_AGENT_VERSION_DOCUMENT = gql`\n mutation RollbackAgentVersion($agentId: ID!, $targetVersionId: ID!) {\n rollbackAgentVersion(agentId: $agentId, targetVersionId: $targetVersionId) {\n id\n agentId\n version\n status\n changelog\n publishedById\n publishedAt\n }\n }\n`;\n\ntype WorkspaceClient = ApolloClient;\n\nexport interface AgentRecord {\n id: string;\n name: string;\n slug: string;\n description?: string | null;\n type: string;\n status: string;\n visibility?: string | null;\n capabilities?: string[] | null;\n llmModelId?: string | null;\n bucketId?: string | null;\n currentVersionId?: string | null;\n draftVersionId?: string | null;\n executionCount?: number | null;\n lastExecutedAt?: string | null;\n specialization?: string | null;\n systemPrompt?: string | null;\n temperature?: number | null;\n maxTokens?: number | null;\n maxConcurrentExecutions?: number | null;\n knowledgeBaseIds?: string[] | null;\n mcpConnectionIds?: string[] | null;\n workflowIds?: string[] | null;\n tagIds?: string[] | null;\n metadata?: Record<string, unknown> | null;\n createdAt?: string | null;\n updatedAt?: string | null;\n createdById?: string | null;\n updatedById?: string | null;\n workspaceId?: string | null;\n}\n\ninterface ListBotmanorAgentsData {\n listBotmanorAgents: AgentRecord[];\n}\n\ninterface GetAgentData {\n getBotmanorAgent: AgentRecord | null;\n}\n\ninterface CreateAgentData {\n createBotmanorAgent: AgentRecord;\n}\n\ninterface UpdateAgentData {\n updateBotmanorAgent: AgentRecord;\n}\n\ninterface DeleteAgentData {\n deleteBotmanorAgent: boolean;\n}\n\nexport interface AgentVersionRecord {\n id: string;\n agentId: string;\n version: string;\n status: 'DRAFT' | 'PUBLISHED' | 'HISTORICAL';\n changelog?: string | null;\n config?: Record<string, unknown> | null;\n createdById?: string | null;\n createdAt?: string | null;\n publishedById?: string | null;\n publishedAt?: string | null;\n}\n\ninterface ListAgentVersionsData {\n listAgentVersions: AgentVersionRecord[];\n}\n\ninterface PublishAgentVersionData {\n publishAgentVersion: AgentVersionRecord;\n}\n\ninterface RollbackAgentVersionData {\n rollbackAgentVersion: AgentVersionRecord;\n}\n\ninterface AgentMutationState<T> {\n data: T | undefined;\n loading: boolean;\n error: Error | undefined;\n}\n\ninterface CreateAgentInput {\n workspaceId: string;\n name: string;\n slug?: string;\n description?: string;\n type: string;\n systemPrompt: string;\n temperature?: number;\n maxTokens?: number;\n capabilities?: string[];\n llmModelId?: string;\n}\n\ninterface UpdateAgentInput {\n agentId: string;\n input: GraphQLInput<UpdateBotmanorAgentInput>;\n}\n\nconst UPDATE_AGENT_FIELDS = fieldsOf<UpdateBotmanorAgentInput>({\n bucketId: true,\n capabilities: true,\n context: true,\n description: true,\n knowledgeBaseIds: true,\n llmModelId: true,\n maxConcurrentExecutions: true,\n maxTokens: true,\n mcpConnectionIds: true,\n metadata: true,\n name: true,\n slug: true,\n specialization: true,\n status: true,\n systemPrompt: true,\n tagIds: true,\n tags: true,\n temperature: true,\n type: true,\n visibility: true,\n workflowIds: true,\n});\n\nfunction getWorkspaceClient(client: unknown): WorkspaceClient {\n return client as WorkspaceClient;\n}\n\nfunction buildAgentFilter(\n workspaceId: string | undefined,\n filter?: BaseFilter\n): Record<string, unknown> | undefined {\n if (!workspaceId && !filter) return undefined;\n\n return {\n workspaceId,\n search: filter?.search,\n status: filter?.status?.[0],\n visibility: filter?.visibility?.[0],\n bucketId: filter?.bucketId,\n };\n}\n\nexport const agentKeys = {\n all: ['agents'] as const,\n lists: () => [...agentKeys.all, 'list'] as const,\n list: (filter?: BaseFilter) => [...agentKeys.lists(), filter] as const,\n details: () => [...agentKeys.all, 'detail'] as const,\n detail: (id: string) => [...agentKeys.details(), id] as const,\n};\n\nexport function useAgents(filter?: BaseFilter) {\n const client = getWorkspaceClient(useGatewayClient('workspace'));\n const { workspaceId } = useBotlit();\n const [data, setData] = useState<AgentRecord[]>([]);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<Error | undefined>();\n\n const variables = useMemo(\n () => ({\n filters: buildAgentFilter(workspaceId, filter),\n pagination: { limit: 100, offset: 0 },\n }),\n [filter, workspaceId]\n );\n\n const refetch = useCallback(async () => {\n if (!workspaceId) {\n setData([]);\n return;\n }\n\n setLoading(true);\n setError(undefined);\n try {\n const result = await client.query<ListBotmanorAgentsData>({\n query: LIST_AGENTS_DOCUMENT,\n variables,\n fetchPolicy: 'network-only',\n });\n setData(result.data?.listBotmanorAgents ?? []);\n } catch (queryError) {\n setError(queryError instanceof Error ? queryError : new Error('Failed to load agents'));\n } finally {\n setLoading(false);\n }\n }, [client, variables, workspaceId]);\n\n useEffect(() => {\n void refetch();\n }, [refetch]);\n\n return { data, loading, error, refetch };\n}\n\nexport function useAgent(agentId: string | undefined) {\n const client = getWorkspaceClient(useGatewayClient('workspace'));\n const [data, setData] = useState<AgentRecord | null>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<Error | undefined>();\n\n const refetch = useCallback(async () => {\n if (!agentId) {\n setData(null);\n return;\n }\n\n setLoading(true);\n setError(undefined);\n try {\n const result = await client.query<GetAgentData>({\n query: GET_AGENT_DOCUMENT,\n variables: { id: agentId },\n fetchPolicy: 'network-only',\n });\n setData(result.data?.getBotmanorAgent ?? null);\n } catch (queryError) {\n setError(queryError instanceof Error ? queryError : new Error('Failed to load agent'));\n } finally {\n setLoading(false);\n }\n }, [agentId, client]);\n\n useEffect(() => {\n void refetch();\n }, [refetch]);\n\n return { data, loading, error, refetch };\n}\n\nexport function useCreateAgent() {\n const client = getWorkspaceClient(useGatewayClient('workspace'));\n const [state, setState] = useState<AgentMutationState<AgentRecord>>({\n data: undefined,\n loading: false,\n error: undefined,\n });\n\n const createAgent = useCallback(\n async (input: CreateAgentInput) => {\n setState({ data: undefined, loading: true, error: undefined });\n try {\n const result = await client.mutate<CreateAgentData>({\n mutation: CREATE_AGENT_DOCUMENT,\n variables: { input },\n });\n\n const createdAgent = result.data?.createBotmanorAgent;\n if (!createdAgent) {\n throw new Error('Failed to create agent');\n }\n\n setState({ data: createdAgent, loading: false, error: undefined });\n return createdAgent;\n } catch (mutationError) {\n const error =\n mutationError instanceof Error ? mutationError : new Error('Failed to create agent');\n setState({ data: undefined, loading: false, error });\n throw error;\n }\n },\n [client]\n );\n\n return [createAgent, state] as const;\n}\n\nexport function useUpdateAgent() {\n const client = getWorkspaceClient(useGatewayClient('workspace'));\n const [state, setState] = useState<AgentMutationState<AgentRecord>>({\n data: undefined,\n loading: false,\n error: undefined,\n });\n\n const updateAgent = useCallback(\n async ({ agentId, input }: UpdateAgentInput) => {\n setState({ data: undefined, loading: true, error: undefined });\n try {\n const result = await client.mutate<UpdateAgentData>({\n mutation: UPDATE_AGENT_DOCUMENT,\n variables: { id: agentId, input: buildMutationInput(input, UPDATE_AGENT_FIELDS) },\n });\n\n const updatedAgent = result.data?.updateBotmanorAgent;\n if (!updatedAgent) {\n throw new Error('Failed to update agent');\n }\n\n setState({ data: updatedAgent, loading: false, error: undefined });\n return updatedAgent;\n } catch (mutationError) {\n const error =\n mutationError instanceof Error ? mutationError : new Error('Failed to update agent');\n setState({ data: undefined, loading: false, error });\n throw error;\n }\n },\n [client]\n );\n\n return [updateAgent, state] as const;\n}\n\nexport function useDeleteAgent() {\n const client = getWorkspaceClient(useGatewayClient('workspace'));\n const [state, setState] = useState<AgentMutationState<boolean>>({\n data: undefined,\n loading: false,\n error: undefined,\n });\n\n const deleteAgent = useCallback(\n async (agentId: string) => {\n setState({ data: undefined, loading: true, error: undefined });\n try {\n const result = await client.mutate<DeleteAgentData>({\n mutation: DELETE_AGENT_DOCUMENT,\n variables: { id: agentId },\n });\n\n const deleted = result.data?.deleteBotmanorAgent ?? false;\n setState({ data: deleted, loading: false, error: undefined });\n return deleted;\n } catch (mutationError) {\n const error =\n mutationError instanceof Error ? mutationError : new Error('Failed to delete agent');\n setState({ data: undefined, loading: false, error });\n throw error;\n }\n },\n [client]\n );\n\n return [deleteAgent, state] as const;\n}\n\n// ============================================================================\n// VERSIONING (BOFF-4381) — version history, publish, rollback\n// ============================================================================\n\nexport function useAgentVersions(agentId: string | undefined) {\n const client = getWorkspaceClient(useGatewayClient('workspace'));\n const [data, setData] = useState<AgentVersionRecord[]>([]);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<Error | undefined>();\n\n const refetch = useCallback(async () => {\n if (!agentId) {\n setData([]);\n return;\n }\n\n setLoading(true);\n setError(undefined);\n try {\n const result = await client.query<ListAgentVersionsData>({\n query: LIST_AGENT_VERSIONS_DOCUMENT,\n variables: { agentId, pagination: { limit: 50, offset: 0 } },\n fetchPolicy: 'network-only',\n });\n const versions = result.data?.listAgentVersions ?? [];\n // Newest first, regardless of what the server returned.\n setData(\n [...versions].sort((a, b) =>\n a.createdAt && b.createdAt ? b.createdAt.localeCompare(a.createdAt) : 0\n )\n );\n } catch (queryError) {\n setError(\n queryError instanceof Error ? queryError : new Error('Failed to load agent versions')\n );\n } finally {\n setLoading(false);\n }\n }, [agentId, client]);\n\n useEffect(() => {\n void refetch();\n }, [refetch]);\n\n return { data, loading, error, refetch };\n}\n\nexport function usePublishAgentVersion() {\n const client = getWorkspaceClient(useGatewayClient('workspace'));\n const [state, setState] = useState<AgentMutationState<AgentVersionRecord>>({\n data: undefined,\n loading: false,\n error: undefined,\n });\n\n const publishAgentVersion = useCallback(\n async ({\n agentId,\n versionId,\n changelog,\n }: {\n agentId: string;\n versionId: string;\n changelog?: string;\n }) => {\n setState({ data: undefined, loading: true, error: undefined });\n try {\n const result = await client.mutate<PublishAgentVersionData>({\n mutation: PUBLISH_AGENT_VERSION_DOCUMENT,\n variables: { agentId, versionId, changelog: changelog?.trim() || undefined },\n });\n\n const published = result.data?.publishAgentVersion;\n if (!published) {\n throw new Error('Failed to publish agent version');\n }\n\n setState({ data: published, loading: false, error: undefined });\n return published;\n } catch (mutationError) {\n const error =\n mutationError instanceof Error\n ? mutationError\n : new Error('Failed to publish agent version');\n setState({ data: undefined, loading: false, error });\n throw error;\n }\n },\n [client]\n );\n\n return [publishAgentVersion, state] as const;\n}\n\nexport function useRollbackAgentVersion() {\n const client = getWorkspaceClient(useGatewayClient('workspace'));\n const [state, setState] = useState<AgentMutationState<AgentVersionRecord>>({\n data: undefined,\n loading: false,\n error: undefined,\n });\n\n const rollbackAgentVersion = useCallback(\n async ({ agentId, targetVersionId }: { agentId: string; targetVersionId: string }) => {\n setState({ data: undefined, loading: true, error: undefined });\n try {\n const result = await client.mutate<RollbackAgentVersionData>({\n mutation: ROLLBACK_AGENT_VERSION_DOCUMENT,\n variables: { agentId, targetVersionId },\n });\n\n const rolledBack = result.data?.rollbackAgentVersion;\n if (!rolledBack) {\n throw new Error('Failed to roll back agent version');\n }\n\n setState({ data: rolledBack, loading: false, error: undefined });\n return rolledBack;\n } catch (mutationError) {\n const error =\n mutationError instanceof Error\n ? mutationError\n : new Error('Failed to roll back agent version');\n setState({ data: undefined, loading: false, error });\n throw error;\n }\n },\n [client]\n );\n\n return [rollbackAgentVersion, state] as const;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useAgents.js","names":["LIST_AGENTS_DOCUMENT","GET_AGENT_DOCUMENT","CREATE_AGENT_DOCUMENT","UPDATE_AGENT_DOCUMENT","DELETE_AGENT_DOCUMENT","LIST_AGENT_VERSIONS_DOCUMENT","PUBLISH_AGENT_VERSION_DOCUMENT","ROLLBACK_AGENT_VERSION_DOCUMENT","LIST_PAGE_SIZE","NO_AGENTS","UPDATE_AGENT_FIELDS","fieldsOf","getWorkspaceClient","client","buildAgentFilter","workspaceId","filter","useAgents","useBotlit","variables","useMemo","useWorkspacePaginatedQuery","data","rows","useAgent","useGatewayClient","setData","useState","loading","setLoading","error","setError","refetch","useCallback","agentId","result","queryError","useEffect","useCreateAgent","state","setState","createdAgent","mutationError","useUpdateAgent","updatedAgent","buildMutationInput","input","useDeleteAgent","deleted","useAgentVersions","versions","a","b","usePublishAgentVersion","published","changelog","useRollbackAgentVersion","rolledBack"],"sources":["../../../src/botlit/hooks/useAgents.ts"],"sourcesContent":["import { gql, type ApolloClient } from '@apollo/client';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useGatewayClient } from '@burdenoff/fe-libs/shared/graphql';\n\nimport type { UpdateBotmanorAgentInput } from '../../generated/wspace-types';\nimport { useBotlit } from '../providers/BotlitProvider';\nimport type { BaseFilter } from '../types';\nimport { buildMutationInput, fieldsOf, type GraphQLInput } from './internal/mutationInput';\nimport { useWorkspacePaginatedQuery, type PaginatedQueryResult } from './internal/workspaceGateway';\n\nconst LIST_AGENTS_DOCUMENT = gql`\n query ListBotmanorAgents($filters: BotmanorAgentFilterInput, $pagination: PaginationInput) {\n listBotmanorAgents(filters: $filters, pagination: $pagination) {\n id\n name\n slug\n description\n type\n status\n visibility\n capabilities\n llmModelId\n bucketId\n executionCount\n lastExecutedAt\n specialization\n tagIds\n createdAt\n updatedAt\n createdById\n updatedById\n workspaceId\n }\n }\n`;\n\nconst GET_AGENT_DOCUMENT = gql`\n query GetBotmanorAgent($id: ID!) {\n getBotmanorAgent(id: $id) {\n id\n name\n slug\n description\n type\n status\n visibility\n capabilities\n llmModelId\n bucketId\n currentVersionId\n draftVersionId\n executionCount\n lastExecutedAt\n specialization\n systemPrompt\n temperature\n maxTokens\n maxConcurrentExecutions\n knowledgeBaseIds\n mcpConnectionIds\n workflowIds\n tagIds\n metadata\n createdAt\n updatedAt\n createdById\n updatedById\n workspaceId\n }\n }\n`;\n\nconst CREATE_AGENT_DOCUMENT = gql`\n mutation CreateBotmanorAgent($input: CreateBotmanorAgentInput!) {\n createBotmanorAgent(input: $input) {\n id\n name\n slug\n description\n type\n status\n visibility\n capabilities\n llmModelId\n systemPrompt\n temperature\n maxTokens\n maxConcurrentExecutions\n tagIds\n createdAt\n updatedAt\n workspaceId\n }\n }\n`;\n\nconst UPDATE_AGENT_DOCUMENT = gql`\n mutation UpdateBotmanorAgent($id: ID!, $input: UpdateBotmanorAgentInput!) {\n updateBotmanorAgent(id: $id, input: $input) {\n id\n name\n slug\n description\n type\n status\n visibility\n capabilities\n llmModelId\n systemPrompt\n temperature\n maxTokens\n maxConcurrentExecutions\n knowledgeBaseIds\n mcpConnectionIds\n workflowIds\n tagIds\n metadata\n createdAt\n updatedAt\n updatedById\n workspaceId\n }\n }\n`;\n\nconst DELETE_AGENT_DOCUMENT = gql`\n mutation DeleteBotmanorAgent($id: ID!) {\n deleteBotmanorAgent(id: $id)\n }\n`;\n\n// BOFF-4381: agent version history, publish, and rollback.\nconst LIST_AGENT_VERSIONS_DOCUMENT = gql`\n query ListAgentVersions($agentId: ID!, $pagination: PaginationInput) {\n listAgentVersions(agentId: $agentId, pagination: $pagination) {\n id\n agentId\n version\n status\n changelog\n config\n createdById\n createdAt\n publishedById\n publishedAt\n }\n }\n`;\n\nconst PUBLISH_AGENT_VERSION_DOCUMENT = gql`\n mutation PublishAgentVersion($agentId: ID!, $versionId: ID!, $changelog: String) {\n publishAgentVersion(agentId: $agentId, versionId: $versionId, changelog: $changelog) {\n id\n agentId\n version\n status\n changelog\n publishedById\n publishedAt\n }\n }\n`;\n\nconst ROLLBACK_AGENT_VERSION_DOCUMENT = gql`\n mutation RollbackAgentVersion($agentId: ID!, $targetVersionId: ID!) {\n rollbackAgentVersion(agentId: $agentId, targetVersionId: $targetVersionId) {\n id\n agentId\n version\n status\n changelog\n publishedById\n publishedAt\n }\n }\n`;\n\ntype WorkspaceClient = ApolloClient;\n\nexport interface AgentRecord {\n id: string;\n name: string;\n slug: string;\n description?: string | null;\n type: string;\n status: string;\n visibility?: string | null;\n capabilities?: string[] | null;\n llmModelId?: string | null;\n bucketId?: string | null;\n currentVersionId?: string | null;\n draftVersionId?: string | null;\n executionCount?: number | null;\n lastExecutedAt?: string | null;\n specialization?: string | null;\n systemPrompt?: string | null;\n temperature?: number | null;\n maxTokens?: number | null;\n maxConcurrentExecutions?: number | null;\n knowledgeBaseIds?: string[] | null;\n mcpConnectionIds?: string[] | null;\n workflowIds?: string[] | null;\n tagIds?: string[] | null;\n metadata?: Record<string, unknown> | null;\n createdAt?: string | null;\n updatedAt?: string | null;\n createdById?: string | null;\n updatedById?: string | null;\n workspaceId?: string | null;\n}\n\ninterface ListBotmanorAgentsData {\n listBotmanorAgents: AgentRecord[];\n}\n\nconst LIST_PAGE_SIZE = 100;\nconst NO_AGENTS: AgentRecord[] = [];\n\ninterface GetAgentData {\n getBotmanorAgent: AgentRecord | null;\n}\n\ninterface CreateAgentData {\n createBotmanorAgent: AgentRecord;\n}\n\ninterface UpdateAgentData {\n updateBotmanorAgent: AgentRecord;\n}\n\ninterface DeleteAgentData {\n deleteBotmanorAgent: boolean;\n}\n\nexport interface AgentVersionRecord {\n id: string;\n agentId: string;\n version: string;\n status: 'DRAFT' | 'PUBLISHED' | 'HISTORICAL';\n changelog?: string | null;\n config?: Record<string, unknown> | null;\n createdById?: string | null;\n createdAt?: string | null;\n publishedById?: string | null;\n publishedAt?: string | null;\n}\n\ninterface ListAgentVersionsData {\n listAgentVersions: AgentVersionRecord[];\n}\n\ninterface PublishAgentVersionData {\n publishAgentVersion: AgentVersionRecord;\n}\n\ninterface RollbackAgentVersionData {\n rollbackAgentVersion: AgentVersionRecord;\n}\n\ninterface AgentMutationState<T> {\n data: T | undefined;\n loading: boolean;\n error: Error | undefined;\n}\n\ninterface CreateAgentInput {\n workspaceId: string;\n name: string;\n slug?: string;\n description?: string;\n type: string;\n systemPrompt: string;\n temperature?: number;\n maxTokens?: number;\n capabilities?: string[];\n llmModelId?: string;\n}\n\ninterface UpdateAgentInput {\n agentId: string;\n input: GraphQLInput<UpdateBotmanorAgentInput>;\n}\n\nconst UPDATE_AGENT_FIELDS = fieldsOf<UpdateBotmanorAgentInput>({\n bucketId: true,\n capabilities: true,\n context: true,\n description: true,\n knowledgeBaseIds: true,\n llmModelId: true,\n maxConcurrentExecutions: true,\n maxTokens: true,\n mcpConnectionIds: true,\n metadata: true,\n name: true,\n slug: true,\n specialization: true,\n status: true,\n systemPrompt: true,\n tagIds: true,\n tags: true,\n temperature: true,\n type: true,\n visibility: true,\n workflowIds: true,\n});\n\nfunction getWorkspaceClient(client: unknown): WorkspaceClient {\n return client as WorkspaceClient;\n}\n\nfunction buildAgentFilter(\n workspaceId: string | undefined,\n filter?: BaseFilter\n): Record<string, unknown> | undefined {\n if (!workspaceId && !filter) return undefined;\n\n return {\n workspaceId,\n search: filter?.search,\n status: filter?.status?.[0],\n visibility: filter?.visibility?.[0],\n bucketId: filter?.bucketId,\n };\n}\n\nexport const agentKeys = {\n all: ['agents'] as const,\n lists: () => [...agentKeys.all, 'list'] as const,\n list: (filter?: BaseFilter) => [...agentKeys.lists(), filter] as const,\n details: () => [...agentKeys.all, 'detail'] as const,\n detail: (id: string) => [...agentKeys.details(), id] as const,\n};\n\nexport function useAgents(filter?: BaseFilter): PaginatedQueryResult<AgentRecord[]> {\n const { workspaceId } = useBotlit();\n\n const variables = useMemo(\n () => ({ filters: buildAgentFilter(workspaceId, filter) }),\n [filter, workspaceId]\n );\n\n return useWorkspacePaginatedQuery<ListBotmanorAgentsData, AgentRecord, AgentRecord[]>({\n document: LIST_AGENTS_DOCUMENT,\n variables,\n pageSize: LIST_PAGE_SIZE,\n extractRows: (data) => data?.listBotmanorAgents ?? [],\n select: (rows) => rows,\n fallback: NO_AGENTS,\n enabled: Boolean(workspaceId),\n errorMessage: 'Failed to load agents',\n });\n}\n\nexport function useAgent(agentId: string | undefined) {\n const client = getWorkspaceClient(useGatewayClient('workspace'));\n const [data, setData] = useState<AgentRecord | null>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<Error | undefined>();\n\n const refetch = useCallback(async () => {\n if (!agentId) {\n setData(null);\n return;\n }\n\n setLoading(true);\n setError(undefined);\n try {\n const result = await client.query<GetAgentData>({\n query: GET_AGENT_DOCUMENT,\n variables: { id: agentId },\n fetchPolicy: 'network-only',\n });\n setData(result.data?.getBotmanorAgent ?? null);\n } catch (queryError) {\n setError(queryError instanceof Error ? queryError : new Error('Failed to load agent'));\n } finally {\n setLoading(false);\n }\n }, [agentId, client]);\n\n useEffect(() => {\n void refetch();\n }, [refetch]);\n\n return { data, loading, error, refetch };\n}\n\nexport function useCreateAgent() {\n const client = getWorkspaceClient(useGatewayClient('workspace'));\n const [state, setState] = useState<AgentMutationState<AgentRecord>>({\n data: undefined,\n loading: false,\n error: undefined,\n });\n\n const createAgent = useCallback(\n async (input: CreateAgentInput) => {\n setState({ data: undefined, loading: true, error: undefined });\n try {\n const result = await client.mutate<CreateAgentData>({\n mutation: CREATE_AGENT_DOCUMENT,\n variables: { input },\n });\n\n const createdAgent = result.data?.createBotmanorAgent;\n if (!createdAgent) {\n throw new Error('Failed to create agent');\n }\n\n setState({ data: createdAgent, loading: false, error: undefined });\n return createdAgent;\n } catch (mutationError) {\n const error =\n mutationError instanceof Error ? mutationError : new Error('Failed to create agent');\n setState({ data: undefined, loading: false, error });\n throw error;\n }\n },\n [client]\n );\n\n return [createAgent, state] as const;\n}\n\nexport function useUpdateAgent() {\n const client = getWorkspaceClient(useGatewayClient('workspace'));\n const [state, setState] = useState<AgentMutationState<AgentRecord>>({\n data: undefined,\n loading: false,\n error: undefined,\n });\n\n const updateAgent = useCallback(\n async ({ agentId, input }: UpdateAgentInput) => {\n setState({ data: undefined, loading: true, error: undefined });\n try {\n const result = await client.mutate<UpdateAgentData>({\n mutation: UPDATE_AGENT_DOCUMENT,\n variables: { id: agentId, input: buildMutationInput(input, UPDATE_AGENT_FIELDS) },\n });\n\n const updatedAgent = result.data?.updateBotmanorAgent;\n if (!updatedAgent) {\n throw new Error('Failed to update agent');\n }\n\n setState({ data: updatedAgent, loading: false, error: undefined });\n return updatedAgent;\n } catch (mutationError) {\n const error =\n mutationError instanceof Error ? mutationError : new Error('Failed to update agent');\n setState({ data: undefined, loading: false, error });\n throw error;\n }\n },\n [client]\n );\n\n return [updateAgent, state] as const;\n}\n\nexport function useDeleteAgent() {\n const client = getWorkspaceClient(useGatewayClient('workspace'));\n const [state, setState] = useState<AgentMutationState<boolean>>({\n data: undefined,\n loading: false,\n error: undefined,\n });\n\n const deleteAgent = useCallback(\n async (agentId: string) => {\n setState({ data: undefined, loading: true, error: undefined });\n try {\n const result = await client.mutate<DeleteAgentData>({\n mutation: DELETE_AGENT_DOCUMENT,\n variables: { id: agentId },\n });\n\n const deleted = result.data?.deleteBotmanorAgent ?? false;\n setState({ data: deleted, loading: false, error: undefined });\n return deleted;\n } catch (mutationError) {\n const error =\n mutationError instanceof Error ? mutationError : new Error('Failed to delete agent');\n setState({ data: undefined, loading: false, error });\n throw error;\n }\n },\n [client]\n );\n\n return [deleteAgent, state] as const;\n}\n\n// ============================================================================\n// VERSIONING (BOFF-4381) — version history, publish, rollback\n// ============================================================================\n\nexport function useAgentVersions(agentId: string | undefined) {\n const client = getWorkspaceClient(useGatewayClient('workspace'));\n const [data, setData] = useState<AgentVersionRecord[]>([]);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<Error | undefined>();\n\n const refetch = useCallback(async () => {\n if (!agentId) {\n setData([]);\n return;\n }\n\n setLoading(true);\n setError(undefined);\n try {\n const result = await client.query<ListAgentVersionsData>({\n query: LIST_AGENT_VERSIONS_DOCUMENT,\n variables: { agentId, pagination: { limit: 50, offset: 0 } },\n fetchPolicy: 'network-only',\n });\n const versions = result.data?.listAgentVersions ?? [];\n // Newest first, regardless of what the server returned.\n setData(\n [...versions].sort((a, b) =>\n a.createdAt && b.createdAt ? b.createdAt.localeCompare(a.createdAt) : 0\n )\n );\n } catch (queryError) {\n setError(\n queryError instanceof Error ? queryError : new Error('Failed to load agent versions')\n );\n } finally {\n setLoading(false);\n }\n }, [agentId, client]);\n\n useEffect(() => {\n void refetch();\n }, [refetch]);\n\n return { data, loading, error, refetch };\n}\n\nexport function usePublishAgentVersion() {\n const client = getWorkspaceClient(useGatewayClient('workspace'));\n const [state, setState] = useState<AgentMutationState<AgentVersionRecord>>({\n data: undefined,\n loading: false,\n error: undefined,\n });\n\n const publishAgentVersion = useCallback(\n async ({\n agentId,\n versionId,\n changelog,\n }: {\n agentId: string;\n versionId: string;\n changelog?: string;\n }) => {\n setState({ data: undefined, loading: true, error: undefined });\n try {\n const result = await client.mutate<PublishAgentVersionData>({\n mutation: PUBLISH_AGENT_VERSION_DOCUMENT,\n variables: { agentId, versionId, changelog: changelog?.trim() || undefined },\n });\n\n const published = result.data?.publishAgentVersion;\n if (!published) {\n throw new Error('Failed to publish agent version');\n }\n\n setState({ data: published, loading: false, error: undefined });\n return published;\n } catch (mutationError) {\n const error =\n mutationError instanceof Error\n ? mutationError\n : new Error('Failed to publish agent version');\n setState({ data: undefined, loading: false, error });\n throw error;\n }\n },\n [client]\n );\n\n return [publishAgentVersion, state] as const;\n}\n\nexport function useRollbackAgentVersion() {\n const client = getWorkspaceClient(useGatewayClient('workspace'));\n const [state, setState] = useState<AgentMutationState<AgentVersionRecord>>({\n data: undefined,\n loading: false,\n error: undefined,\n });\n\n const rollbackAgentVersion = useCallback(\n async ({ agentId, targetVersionId }: { agentId: string; targetVersionId: string }) => {\n setState({ data: undefined, loading: true, error: undefined });\n try {\n const result = await client.mutate<RollbackAgentVersionData>({\n mutation: ROLLBACK_AGENT_VERSION_DOCUMENT,\n variables: { agentId, targetVersionId },\n });\n\n const rolledBack = result.data?.rollbackAgentVersion;\n if (!rolledBack) {\n throw new Error('Failed to roll back agent version');\n }\n\n setState({ data: rolledBack, loading: false, error: undefined });\n return rolledBack;\n } catch (mutationError) {\n const error =\n mutationError instanceof Error\n ? mutationError\n : new Error('Failed to roll back agent version');\n setState({ data: undefined, loading: false, error });\n throw error;\n }\n },\n [client]\n );\n\n return [rollbackAgentVersion, state] as const;\n}\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { UpdateBotAppInput } from '../../generated/wspace-types';
2
2
  import { BaseFilter } from '../types';
3
3
  import { GraphQLInput } from './internal/mutationInput';
4
+ import { PaginatedQueryResult } from './internal/workspaceGateway';
4
5
  export interface BotAppRecord {
5
6
  id: string;
6
7
  name: string;
@@ -50,12 +51,7 @@ export declare const botKeys: {
50
51
  details: () => readonly ["bots", "detail"];
51
52
  detail: (id: string) => readonly ["bots", "detail", string];
52
53
  };
53
- export declare function useBots(filter?: BaseFilter): {
54
- data: BotAppRecord[];
55
- loading: boolean;
56
- error: Error | undefined;
57
- refetch: () => Promise<void>;
58
- };
54
+ export declare function useBots(filter?: BaseFilter): PaginatedQueryResult<BotAppRecord[]>;
59
55
  export declare function useBot(botId: string | undefined): {
60
56
  data: BotAppRecord | null;
61
57
  loading: boolean;