@truefoundry/trueforge-ui 0.3.0-rc.5 → 0.3.0-rc.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/dist/{AgentCodeSnippets-V5A56M7R.js → AgentCodeSnippets-T7PR6PDP.js} +7 -7
- package/dist/AgentMetricChart-J3RCSCAG.js +15 -0
- package/dist/{AgentOverview-NPC4P2EY.js → AgentOverview-WC7WMNMS.js} +11 -9
- package/dist/AgentOverview-WC7WMNMS.js.map +1 -0
- package/dist/{AgentSessionEventTimeline-UUXOJXTC.js → AgentSessionEventTimeline-SETKGGCI.js} +7 -7
- package/dist/{AgentSessionEventTimelineChart-FIAQCYJC.js → AgentSessionEventTimelineChart-4Y7PY5SJ.js} +7 -7
- package/dist/{AgentSessions-WHODEG2M.js → AgentSessions-YCAPM5GK.js} +8 -8
- package/dist/{ConnectorSettings-QTAI4TQX.js → ConnectorSettings-PXWRCFAL.js} +7 -7
- package/dist/{DockLayout-TATYU5SV.js → DockLayout-JRKCKAG2.js} +10 -10
- package/dist/{DrawerLayout-DXHNV33K.js → DrawerLayout-U7YPUZBR.js} +11 -11
- package/dist/{ModelSettings-UWTBHQRG.js → ModelSettings-VXYMJEMO.js} +7 -7
- package/dist/OpenUiFenceBlock-KPZFLUSC.js +9 -0
- package/dist/{SandboxSettings-BITQONS3.js → SandboxSettings-6DRUH72J.js} +7 -7
- package/dist/SchedulesPage-2G6F4XO6.js +15 -0
- package/dist/{SettingsBuilder-3OA4UCIM.js → SettingsBuilder-6FJVZLJT.js} +9 -9
- package/dist/{SettingsBuilder-3OA4UCIM.js.map → SettingsBuilder-6FJVZLJT.js.map} +1 -1
- package/dist/{ShellRouteSync-J74MV23Q.js → ShellRouteSync-SJXFKUAJ.js} +4 -4
- package/dist/{SidebarLayout-EQXQPYIU.js → SidebarLayout-EQ7EYCWR.js} +12 -12
- package/dist/{SkillSettings-KQ6GQ7JW.js → SkillSettings-IHVI7FDM.js} +7 -7
- package/dist/{TrueForgeUIWithRouter-R3UXQZRY.js → TrueForgeUIWithRouter-5OJFI3PF.js} +9 -9
- package/dist/{WidgetLayout-YWZTYFZL.js → WidgetLayout-PN5ZDOLM.js} +10 -10
- package/dist/{chunk-TAABBM7F.js → chunk-2GIZY3JJ.js} +3 -1
- package/dist/chunk-2GIZY3JJ.js.map +1 -0
- package/dist/{chunk-4MCIDE2C.js → chunk-2QTH6JHX.js} +3 -3
- package/dist/{chunk-ZZB3JIBQ.js → chunk-2UBSLCKB.js} +9 -9
- package/dist/{chunk-IIHJ32YH.js → chunk-3ZW74FHC.js} +3 -3
- package/dist/{chunk-CFGLAGWH.js → chunk-CG75X77Q.js} +2 -2
- package/dist/{chunk-TFFTZB26.js → chunk-E33DFTVN.js} +8 -8
- package/dist/chunk-E33DFTVN.js.map +1 -0
- package/dist/{chunk-ERIIJKJY.js → chunk-F7YRYFAF.js} +4 -4
- package/dist/chunk-JCL3Q7RW.js +587 -0
- package/dist/{chunk-OWDH67NY.js.map → chunk-JCL3Q7RW.js.map} +1 -1
- package/dist/{chunk-IVDIBAVH.js → chunk-L7HNKKS2.js} +2 -2
- package/dist/{chunk-INY3J2BV.js → chunk-OWXPMQ7N.js} +10 -10
- package/dist/{chunk-7NYDADYN.js → chunk-PX6MNNN3.js} +5 -5
- package/dist/{chunk-3QWUHGNL.js → chunk-T6QQV5LK.js} +55 -12
- package/dist/chunk-T6QQV5LK.js.map +1 -0
- package/dist/{chunk-DCVKW445.js → chunk-TMIILLHB.js} +478 -268
- package/dist/chunk-TMIILLHB.js.map +1 -0
- package/dist/{chunk-MMU55KCW.js → chunk-XANC4F2H.js} +318 -166
- package/dist/chunk-XANC4F2H.js.map +1 -0
- package/dist/index.d.ts +15 -11
- package/dist/index.js +12 -12
- package/dist/plugins/trueforge-agent-server-adapter/index.d.ts +2 -1
- package/dist/plugins/trueforge-agent-server-adapter/index.js +65 -14
- package/dist/plugins/trueforge-agent-server-adapter/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +3 -3
- package/dist/AgentMetricChart-GEADURES.js +0 -15
- package/dist/AgentOverview-NPC4P2EY.js.map +0 -1
- package/dist/OpenUiFenceBlock-FHEYXZEQ.js +0 -9
- package/dist/SchedulesPage-JIUWNYUH.js +0 -15
- package/dist/chunk-3QWUHGNL.js.map +0 -1
- package/dist/chunk-DCVKW445.js.map +0 -1
- package/dist/chunk-MMU55KCW.js.map +0 -1
- package/dist/chunk-OWDH67NY.js +0 -587
- package/dist/chunk-TAABBM7F.js.map +0 -1
- package/dist/chunk-TFFTZB26.js.map +0 -1
- /package/dist/{AgentCodeSnippets-V5A56M7R.js.map → AgentCodeSnippets-T7PR6PDP.js.map} +0 -0
- /package/dist/{AgentMetricChart-GEADURES.js.map → AgentMetricChart-J3RCSCAG.js.map} +0 -0
- /package/dist/{AgentSessionEventTimeline-UUXOJXTC.js.map → AgentSessionEventTimeline-SETKGGCI.js.map} +0 -0
- /package/dist/{AgentSessionEventTimelineChart-FIAQCYJC.js.map → AgentSessionEventTimelineChart-4Y7PY5SJ.js.map} +0 -0
- /package/dist/{AgentSessions-WHODEG2M.js.map → AgentSessions-YCAPM5GK.js.map} +0 -0
- /package/dist/{ConnectorSettings-QTAI4TQX.js.map → ConnectorSettings-PXWRCFAL.js.map} +0 -0
- /package/dist/{DockLayout-TATYU5SV.js.map → DockLayout-JRKCKAG2.js.map} +0 -0
- /package/dist/{DrawerLayout-DXHNV33K.js.map → DrawerLayout-U7YPUZBR.js.map} +0 -0
- /package/dist/{ModelSettings-UWTBHQRG.js.map → ModelSettings-VXYMJEMO.js.map} +0 -0
- /package/dist/{OpenUiFenceBlock-FHEYXZEQ.js.map → OpenUiFenceBlock-KPZFLUSC.js.map} +0 -0
- /package/dist/{SandboxSettings-BITQONS3.js.map → SandboxSettings-6DRUH72J.js.map} +0 -0
- /package/dist/{SchedulesPage-JIUWNYUH.js.map → SchedulesPage-2G6F4XO6.js.map} +0 -0
- /package/dist/{ShellRouteSync-J74MV23Q.js.map → ShellRouteSync-SJXFKUAJ.js.map} +0 -0
- /package/dist/{SidebarLayout-EQXQPYIU.js.map → SidebarLayout-EQ7EYCWR.js.map} +0 -0
- /package/dist/{SkillSettings-KQ6GQ7JW.js.map → SkillSettings-IHVI7FDM.js.map} +0 -0
- /package/dist/{TrueForgeUIWithRouter-R3UXQZRY.js.map → TrueForgeUIWithRouter-5OJFI3PF.js.map} +0 -0
- /package/dist/{WidgetLayout-YWZTYFZL.js.map → WidgetLayout-PN5ZDOLM.js.map} +0 -0
- /package/dist/{chunk-4MCIDE2C.js.map → chunk-2QTH6JHX.js.map} +0 -0
- /package/dist/{chunk-ZZB3JIBQ.js.map → chunk-2UBSLCKB.js.map} +0 -0
- /package/dist/{chunk-IIHJ32YH.js.map → chunk-3ZW74FHC.js.map} +0 -0
- /package/dist/{chunk-CFGLAGWH.js.map → chunk-CG75X77Q.js.map} +0 -0
- /package/dist/{chunk-ERIIJKJY.js.map → chunk-F7YRYFAF.js.map} +0 -0
- /package/dist/{chunk-IVDIBAVH.js.map → chunk-L7HNKKS2.js.map} +0 -0
- /package/dist/{chunk-INY3J2BV.js.map → chunk-OWXPMQ7N.js.map} +0 -0
- /package/dist/{chunk-7NYDADYN.js.map → chunk-PX6MNNN3.js.map} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -592,7 +592,7 @@ type AgentOverviewProps = {
|
|
|
592
592
|
};
|
|
593
593
|
type AgentOverviewCardProps = {
|
|
594
594
|
title: string;
|
|
595
|
-
icon
|
|
595
|
+
icon?: string;
|
|
596
596
|
count?: number;
|
|
597
597
|
children: ReactNode;
|
|
598
598
|
};
|
|
@@ -1504,15 +1504,16 @@ declare module '../theme/SlotsProvider.js' {
|
|
|
1504
1504
|
type SaveAgentFormProps = {
|
|
1505
1505
|
intent: 'create' | 'update';
|
|
1506
1506
|
name: string;
|
|
1507
|
+
description: string;
|
|
1507
1508
|
spec: AgentSpec;
|
|
1508
1509
|
saving: boolean;
|
|
1509
1510
|
error: string | null;
|
|
1510
1511
|
onNameChange: (name: string) => void;
|
|
1511
|
-
|
|
1512
|
+
onDescriptionChange: (description: string) => void;
|
|
1512
1513
|
onCancel: () => void;
|
|
1513
1514
|
onSave: () => void;
|
|
1514
1515
|
};
|
|
1515
|
-
declare function SaveAgentForm({ intent, name, spec, saving, error, onNameChange, onCancel, onSave, }: SaveAgentFormProps): react.JSX.Element;
|
|
1516
|
+
declare function SaveAgentForm({ intent, name, description, spec, saving, error, onNameChange, onDescriptionChange, onCancel, onSave, }: SaveAgentFormProps): react.JSX.Element;
|
|
1516
1517
|
declare module '../theme/SlotsProvider.js' {
|
|
1517
1518
|
interface AtomSlots {
|
|
1518
1519
|
SaveAgentForm: typeof SaveAgentForm;
|
|
@@ -2044,6 +2045,7 @@ type IconButtonProps = Omit<ButtonProps, 'size' | 'children'> & {
|
|
|
2044
2045
|
children: react__default.ReactNode;
|
|
2045
2046
|
};
|
|
2046
2047
|
|
|
2048
|
+
type MenuPlacement = 'top' | 'bottom';
|
|
2047
2049
|
type PopoverSelectOption<T extends string> = {
|
|
2048
2050
|
value: T;
|
|
2049
2051
|
label: string;
|
|
@@ -2055,8 +2057,8 @@ type CommonPopoverSelectProps<T extends string> = {
|
|
|
2055
2057
|
disabled?: boolean;
|
|
2056
2058
|
className?: string;
|
|
2057
2059
|
menuClassName?: string;
|
|
2058
|
-
/**
|
|
2059
|
-
menuPlacement?:
|
|
2060
|
+
/** Preferred open edge; flips when that side lacks room. Default `bottom`. */
|
|
2061
|
+
menuPlacement?: MenuPlacement;
|
|
2060
2062
|
/** When set, renders a labeled chip trigger (label | value chip + chevron). */
|
|
2061
2063
|
prefix?: string;
|
|
2062
2064
|
emptyContent?: ReactNode;
|
|
@@ -2084,6 +2086,7 @@ type DropdownMenuProps = {
|
|
|
2084
2086
|
open?: boolean;
|
|
2085
2087
|
onOpenChange?: (open: boolean) => void;
|
|
2086
2088
|
closeOnClick?: boolean;
|
|
2089
|
+
lockScroll?: boolean;
|
|
2087
2090
|
};
|
|
2088
2091
|
|
|
2089
2092
|
type ResponsiveDropdownTriggerProps = {
|
|
@@ -2204,16 +2207,13 @@ type ScheduleFormFieldsProps = {
|
|
|
2204
2207
|
values: ScheduleFormValues;
|
|
2205
2208
|
onChange: (next: ScheduleFormValues) => void;
|
|
2206
2209
|
agentId: string;
|
|
2210
|
+
agentLabel: string;
|
|
2207
2211
|
onAgentIdChange?: (agentId: string) => void;
|
|
2208
|
-
|
|
2209
|
-
agentId: string;
|
|
2210
|
-
name: string;
|
|
2211
|
-
}>;
|
|
2212
|
-
agentOptionsLoaded?: boolean;
|
|
2212
|
+
onAgentPicked?: (agent: AgentLibraryEntry) => void;
|
|
2213
2213
|
agentPickerDisabled?: boolean;
|
|
2214
2214
|
onBuildAgent?: () => void;
|
|
2215
2215
|
};
|
|
2216
|
-
declare function ScheduleFormFields({ values, onChange, agentId,
|
|
2216
|
+
declare function ScheduleFormFields({ values, onChange, agentId, agentLabel, onAgentIdChange, onAgentPicked, agentPickerDisabled, onBuildAgent, }: ScheduleFormFieldsProps): react.JSX.Element;
|
|
2217
2217
|
|
|
2218
2218
|
declare function ScheduleLastRunsCell({ runs }: {
|
|
2219
2219
|
runs: readonly ScheduleRun[];
|
|
@@ -2417,6 +2417,8 @@ type ShellMode = {
|
|
|
2417
2417
|
agentId?: string;
|
|
2418
2418
|
/** Display / welcome label (often same as agentId). */
|
|
2419
2419
|
agentName?: string;
|
|
2420
|
+
/** Published-agent description, kept outside the executable agent spec. */
|
|
2421
|
+
description?: string;
|
|
2420
2422
|
/** Seed for mutable (draft) runtime. */
|
|
2421
2423
|
agentSpec?: AgentSpec;
|
|
2422
2424
|
locked: boolean;
|
|
@@ -2430,6 +2432,7 @@ type SelectLibraryAgentRequest = {
|
|
|
2430
2432
|
isCreateAgent?: boolean;
|
|
2431
2433
|
agentId?: string;
|
|
2432
2434
|
agentName?: string;
|
|
2435
|
+
description?: string;
|
|
2433
2436
|
agentSpec?: AgentSpec;
|
|
2434
2437
|
};
|
|
2435
2438
|
type SettingsSection = 'models' | 'connectors' | 'skills' | 'sandbox';
|
|
@@ -2477,6 +2480,7 @@ type ShellModeContextValue = {
|
|
|
2477
2480
|
bindMutableAgent: (req: {
|
|
2478
2481
|
agentId: string;
|
|
2479
2482
|
agentName: string;
|
|
2483
|
+
description?: string;
|
|
2480
2484
|
agentSpec: AgentSpec;
|
|
2481
2485
|
}) => void;
|
|
2482
2486
|
/** @deprecated Prefer `selectLibraryAgent({ isMutable: false, agentName })`. */
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
ThreadListContainer
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-E33DFTVN.js";
|
|
5
5
|
import {
|
|
6
6
|
ApprovalNavContainer,
|
|
7
7
|
AskUserContainer,
|
|
@@ -16,12 +16,12 @@ import {
|
|
|
16
16
|
threadHasPendingMcpAuth,
|
|
17
17
|
useApprovalNav,
|
|
18
18
|
useComposerPauseView
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-F7YRYFAF.js";
|
|
20
20
|
import {
|
|
21
21
|
ServerInitLoader,
|
|
22
22
|
TrueForgeUIShell,
|
|
23
23
|
TrueFoundryChatProvider
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-OWXPMQ7N.js";
|
|
25
25
|
import "./chunk-DJUFS2BW.js";
|
|
26
26
|
import {
|
|
27
27
|
ComposerBusyProvider,
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
} from "./chunk-BSIPI3KV.js";
|
|
32
32
|
import {
|
|
33
33
|
AgentMetricChart
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-L7HNKKS2.js";
|
|
35
35
|
import {
|
|
36
36
|
createTrueFoundryServer
|
|
37
37
|
} from "./chunk-7AAO4UDQ.js";
|
|
@@ -50,7 +50,7 @@ import {
|
|
|
50
50
|
ScheduleStatusBadge,
|
|
51
51
|
SchedulesPage,
|
|
52
52
|
TestScheduleScreen
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-TMIILLHB.js";
|
|
54
54
|
import {
|
|
55
55
|
AgentCodeBlock,
|
|
56
56
|
AgentConfigEditors,
|
|
@@ -192,14 +192,14 @@ import {
|
|
|
192
192
|
useThemeMode,
|
|
193
193
|
useToaster,
|
|
194
194
|
useToasterOptional
|
|
195
|
-
} from "./chunk-
|
|
196
|
-
import "./chunk-
|
|
195
|
+
} from "./chunk-XANC4F2H.js";
|
|
196
|
+
import "./chunk-T6QQV5LK.js";
|
|
197
197
|
import {
|
|
198
198
|
DraftCatalogProvider,
|
|
199
199
|
Icon,
|
|
200
200
|
registerIcons,
|
|
201
201
|
useDraftCatalog
|
|
202
|
-
} from "./chunk-
|
|
202
|
+
} from "./chunk-3ZW74FHC.js";
|
|
203
203
|
import {
|
|
204
204
|
DEFAULT_AGENT_CONFIG,
|
|
205
205
|
ServerProvider,
|
|
@@ -222,14 +222,14 @@ import {
|
|
|
222
222
|
useServer,
|
|
223
223
|
useServerCapabilities,
|
|
224
224
|
useShellMode
|
|
225
|
-
} from "./chunk-
|
|
225
|
+
} from "./chunk-2GIZY3JJ.js";
|
|
226
226
|
import {
|
|
227
227
|
useAui,
|
|
228
228
|
useAuiState
|
|
229
229
|
} from "./chunk-M6MHLVSO.js";
|
|
230
230
|
import {
|
|
231
231
|
OpenUiFenceBlock
|
|
232
|
-
} from "./chunk-
|
|
232
|
+
} from "./chunk-CG75X77Q.js";
|
|
233
233
|
import {
|
|
234
234
|
PRESETS,
|
|
235
235
|
ThemeProvider,
|
|
@@ -239,7 +239,7 @@ import {
|
|
|
239
239
|
useOptionalContentClassNames,
|
|
240
240
|
useTheme,
|
|
241
241
|
useThemeIcons
|
|
242
|
-
} from "./chunk-
|
|
242
|
+
} from "./chunk-JCL3Q7RW.js";
|
|
243
243
|
|
|
244
244
|
// src/icons/agent-2.svg
|
|
245
245
|
import * as React from "react";
|
|
@@ -440,7 +440,7 @@ function ToolGroupContainer({ children, group }) {
|
|
|
440
440
|
import { lazy, Suspense } from "react";
|
|
441
441
|
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
442
442
|
var TrueForgeUIWithRouter = lazy(
|
|
443
|
-
() => import("./TrueForgeUIWithRouter-
|
|
443
|
+
() => import("./TrueForgeUIWithRouter-5OJFI3PF.js").then((m) => ({ default: m.TrueForgeUIWithRouter }))
|
|
444
444
|
);
|
|
445
445
|
function TrueForgeUI(props) {
|
|
446
446
|
const isMcpAuthScreen = typeof window !== "undefined" && new URLSearchParams(window.location.search).get("screenType") === "mcp-auth";
|
|
@@ -264,7 +264,6 @@ interface AgentSpec<TModel extends Model = Model, TSkill extends SkillMount = Sk
|
|
|
264
264
|
config?: TConfig;
|
|
265
265
|
instructions?: string;
|
|
266
266
|
variables?: Record<string, string>;
|
|
267
|
-
description?: string;
|
|
268
267
|
}
|
|
269
268
|
interface ListResult<T> {
|
|
270
269
|
data: T[];
|
|
@@ -655,6 +654,8 @@ interface AgentDetail<TSpec extends AgentSpec = AgentSpec> {
|
|
|
655
654
|
agentId: string;
|
|
656
655
|
/** Display name (e.g. "release-notes-writer"). */
|
|
657
656
|
name: string;
|
|
657
|
+
/** Published-agent description; not part of the executable agent spec. */
|
|
658
|
+
description?: string;
|
|
658
659
|
agentSpec: TSpec;
|
|
659
660
|
}
|
|
660
661
|
/** Stream vs non-stream bodies for one language on the Use In Code tab. */
|
|
@@ -344,6 +344,7 @@ function createHarnessAgentSessionsServer(options = {}) {
|
|
|
344
344
|
return {
|
|
345
345
|
agentId: data.id,
|
|
346
346
|
name: data.name,
|
|
347
|
+
description: data.description,
|
|
347
348
|
agentSpec: toUiAgentSpec(data.manifest)
|
|
348
349
|
};
|
|
349
350
|
},
|
|
@@ -377,6 +378,43 @@ function createHarnessAgentSessionsServer(options = {}) {
|
|
|
377
378
|
};
|
|
378
379
|
}
|
|
379
380
|
|
|
381
|
+
// src/plugins/trueforge-agent-server-adapter/agentsList.ts
|
|
382
|
+
var AGENTS_PAGE_DEFAULT = 50;
|
|
383
|
+
var AGENTS_PAGE_LIMIT = 100;
|
|
384
|
+
function clampAgentsPageSize(size) {
|
|
385
|
+
return Math.min(Math.max(size, 1), AGENTS_PAGE_LIMIT);
|
|
386
|
+
}
|
|
387
|
+
async function listAgentsPage({
|
|
388
|
+
client,
|
|
389
|
+
limit,
|
|
390
|
+
offset = 0,
|
|
391
|
+
agentName
|
|
392
|
+
}) {
|
|
393
|
+
const pageSize = clampAgentsPageSize(limit);
|
|
394
|
+
const start = Math.max(0, offset);
|
|
395
|
+
const page = await client.agents.list({
|
|
396
|
+
limit: pageSize,
|
|
397
|
+
...agentName === void 0 ? {} : { agentName }
|
|
398
|
+
});
|
|
399
|
+
let at = 0;
|
|
400
|
+
while (at < start) {
|
|
401
|
+
if (!page.hasNextPage()) return [];
|
|
402
|
+
await page.getNextPage();
|
|
403
|
+
at += pageSize;
|
|
404
|
+
}
|
|
405
|
+
return [...page.data];
|
|
406
|
+
}
|
|
407
|
+
async function drainAgentsList(client) {
|
|
408
|
+
const items = [];
|
|
409
|
+
const page = await client.agents.list({ limit: AGENTS_PAGE_DEFAULT });
|
|
410
|
+
for (; ; ) {
|
|
411
|
+
items.push(...page.data);
|
|
412
|
+
if (!page.hasNextPage()) break;
|
|
413
|
+
await page.getNextPage();
|
|
414
|
+
}
|
|
415
|
+
return items;
|
|
416
|
+
}
|
|
417
|
+
|
|
380
418
|
// src/plugins/trueforge-agent-server-adapter/catalogs/connectorCatalog.ts
|
|
381
419
|
var DEFAULT_API_KEY_HEADER = "Authorization";
|
|
382
420
|
function toUiAuthPublic(auth) {
|
|
@@ -619,6 +657,7 @@ function toLibraryEntry(agent) {
|
|
|
619
657
|
return {
|
|
620
658
|
name: agent.name,
|
|
621
659
|
agentId: agent.id,
|
|
660
|
+
description: agent.description,
|
|
622
661
|
agentSpec: toUiAgentSpec(agent.manifest),
|
|
623
662
|
createdBySubject: agent.createdBySubject
|
|
624
663
|
};
|
|
@@ -675,30 +714,42 @@ function createHarnessBuilderServer(options = {}) {
|
|
|
675
714
|
);
|
|
676
715
|
},
|
|
677
716
|
async searchAgents(req) {
|
|
678
|
-
const
|
|
679
|
-
const query = req?.query?.trim().toLowerCase();
|
|
680
|
-
const filtered = query === void 0 || query === "" ? data : data.filter((agent) => agent.name.toLowerCase().includes(query));
|
|
717
|
+
const limit = clampAgentsPageSize(req?.limit ?? AGENTS_PAGE_DEFAULT);
|
|
681
718
|
const offset = req?.offset ?? 0;
|
|
682
|
-
const
|
|
683
|
-
|
|
719
|
+
const query = req?.query?.trim();
|
|
720
|
+
const rows = await listAgentsPage({
|
|
721
|
+
client,
|
|
722
|
+
limit,
|
|
723
|
+
offset,
|
|
724
|
+
...query === void 0 || query === "" ? {} : { agentName: query }
|
|
725
|
+
});
|
|
726
|
+
return rows.map(toLibraryEntry);
|
|
684
727
|
},
|
|
685
|
-
async saveAgent({ agentName, agentSpec, intent }) {
|
|
728
|
+
async saveAgent({ agentName, description: descriptionRaw, agentSpec, intent }) {
|
|
686
729
|
const manifest = toHarnessAgentSpec(agentSpec);
|
|
730
|
+
const description = descriptionRaw?.trim();
|
|
687
731
|
if (intent === "update") {
|
|
688
|
-
const
|
|
689
|
-
const existing =
|
|
732
|
+
const agents = await drainAgentsList(client);
|
|
733
|
+
const existing = agents.find((agent) => agent.name === agentName);
|
|
690
734
|
if (!existing) {
|
|
691
735
|
return {};
|
|
692
736
|
}
|
|
693
|
-
await client.agents.update(existing.id, {
|
|
737
|
+
await client.agents.update(existing.id, {
|
|
738
|
+
...description ? { description } : {},
|
|
739
|
+
manifest
|
|
740
|
+
});
|
|
694
741
|
return { agentId: existing.id };
|
|
695
742
|
}
|
|
696
|
-
const created = await client.agents.create({
|
|
743
|
+
const created = await client.agents.create({
|
|
744
|
+
name: agentName,
|
|
745
|
+
description: description || agentName,
|
|
746
|
+
manifest
|
|
747
|
+
});
|
|
697
748
|
return { agentId: created.data.id };
|
|
698
749
|
},
|
|
699
750
|
async deleteAgent({ agentName }) {
|
|
700
|
-
const
|
|
701
|
-
const existing =
|
|
751
|
+
const agents = await drainAgentsList(client);
|
|
752
|
+
const existing = agents.find((agent) => agent.name === agentName);
|
|
702
753
|
if (!existing) return;
|
|
703
754
|
await client.agents.delete(existing.id);
|
|
704
755
|
}
|
|
@@ -1043,10 +1094,10 @@ function createHarnessPermissionsServer(options = {}) {
|
|
|
1043
1094
|
// src/plugins/trueforge-agent-server-adapter/schedules/scheduleServer.ts
|
|
1044
1095
|
var SCHEDULES_PAGE_LIMIT = 25;
|
|
1045
1096
|
async function loadAgentIndex(client) {
|
|
1046
|
-
const
|
|
1097
|
+
const agents = await drainAgentsList(client);
|
|
1047
1098
|
const idToName = /* @__PURE__ */ new Map();
|
|
1048
1099
|
const nameToId = /* @__PURE__ */ new Map();
|
|
1049
|
-
for (const agent of
|
|
1100
|
+
for (const agent of agents) {
|
|
1050
1101
|
idToName.set(agent.id, agent.name);
|
|
1051
1102
|
nameToId.set(agent.name, agent.id);
|
|
1052
1103
|
}
|