@truefoundry/trueforge-ui 0.3.0-rc.2 → 0.3.0-rc.4
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 +63 -0
- package/README.md +18 -10
- package/dist/{AgentCodeSnippets-637HQUXD.js → AgentCodeSnippets-U6KQWVBJ.js} +38 -23
- package/dist/AgentCodeSnippets-U6KQWVBJ.js.map +1 -0
- package/dist/AgentMetricChart-3D6FUFO6.js +15 -0
- package/dist/{AgentOverview-3FJ5EE6N.js → AgentOverview-RLJ6HZCN.js} +7 -7
- package/dist/{AgentSessionEventTimeline-VELWUYPR.js → AgentSessionEventTimeline-CDXRRUZQ.js} +8 -8
- package/dist/{AgentSessionEventTimeline-VELWUYPR.js.map → AgentSessionEventTimeline-CDXRRUZQ.js.map} +1 -1
- package/dist/{AgentSessionEventTimelineChart-CUKETHWM.js → AgentSessionEventTimelineChart-S2WX6ZEA.js} +12 -12
- package/dist/AgentSessionEventTimelineChart-S2WX6ZEA.js.map +1 -0
- package/dist/{AgentSessions-T7MOGOTZ.js → AgentSessions-UI3L7XY2.js} +72 -24
- package/dist/AgentSessions-UI3L7XY2.js.map +1 -0
- package/dist/{ConnectorSettings-ESZ2RSRG.js → ConnectorSettings-OIGAC2HU.js} +156 -116
- package/dist/ConnectorSettings-OIGAC2HU.js.map +1 -0
- package/dist/{DockLayout-NLFNU6F2.js → DockLayout-J5BRKMJZ.js} +10 -10
- package/dist/{DrawerLayout-PR3SMKA6.js → DrawerLayout-65YHGHIF.js} +13 -11
- package/dist/DrawerLayout-65YHGHIF.js.map +1 -0
- package/dist/{ModelSettings-LYW64IRR.js → ModelSettings-VP6WCMGT.js} +10 -10
- package/dist/{ModelSettings-LYW64IRR.js.map → ModelSettings-VP6WCMGT.js.map} +1 -1
- package/dist/OpenUiFenceBlock-UTDCTNTM.js +9 -0
- package/dist/{SandboxSettings-DF64LHYI.js → SandboxSettings-GTZT7LD6.js} +9 -9
- package/dist/SchedulesPage-ARWU7BZF.js +15 -0
- package/dist/{SettingsBuilder-LSXK2VN4.js → SettingsBuilder-A4BPYIFZ.js} +8 -8
- package/dist/{ShellRouteSync-B22IAV2W.js → ShellRouteSync-SSLGM35F.js} +157 -22
- package/dist/ShellRouteSync-SSLGM35F.js.map +1 -0
- package/dist/{SidebarLayout-XW6LXB7R.js → SidebarLayout-MFDOGAVJ.js} +74 -53
- package/dist/SidebarLayout-MFDOGAVJ.js.map +1 -0
- package/dist/{SkillSettings-64VXUO6J.js → SkillSettings-WQPUQ5TE.js} +18 -13
- package/dist/SkillSettings-WQPUQ5TE.js.map +1 -0
- package/dist/{TrueForgeUIWithRouter-3TSLV22Q.js → TrueForgeUIWithRouter-5CDICMCE.js} +9 -9
- package/dist/{WidgetLayout-Q5P7PYSJ.js → WidgetLayout-HE7E4UL5.js} +10 -10
- package/dist/{chunk-SQGT43Z3.js → chunk-2BDTG544.js} +21 -4
- package/dist/chunk-2BDTG544.js.map +1 -0
- package/dist/{chunk-YQO2NMJ3.js → chunk-2OKGEU6X.js} +4425 -2982
- package/dist/chunk-2OKGEU6X.js.map +1 -0
- package/dist/{chunk-FQK2XVVE.js → chunk-6CFZHEYH.js} +225 -72
- package/dist/chunk-6CFZHEYH.js.map +1 -0
- package/dist/{chunk-QC42MLAK.js → chunk-7AAO4UDQ.js} +4 -3
- package/dist/chunk-7AAO4UDQ.js.map +1 -0
- package/dist/chunk-E4GVP6PM.js +195 -0
- package/dist/chunk-E4GVP6PM.js.map +1 -0
- package/dist/{chunk-LGRHHFHN.js → chunk-F7ZAQIRE.js} +166 -45
- package/dist/chunk-F7ZAQIRE.js.map +1 -0
- package/dist/{chunk-VJ7BZGAF.js → chunk-GTTMLDCI.js} +2 -2
- package/dist/{chunk-5I2COQNL.js → chunk-IOPHQEUY.js} +13 -11
- package/dist/chunk-IOPHQEUY.js.map +1 -0
- package/dist/{chunk-G2TUAD65.js → chunk-KCYBMKQL.js} +235 -108
- package/dist/chunk-KCYBMKQL.js.map +1 -0
- package/dist/{chunk-H6WTY5PM.js → chunk-MAA7U4RF.js} +17 -227
- package/dist/chunk-MAA7U4RF.js.map +1 -0
- package/dist/{chunk-GXYAOAK5.js → chunk-MJULWIPI.js} +224 -162
- package/dist/chunk-MJULWIPI.js.map +1 -0
- package/dist/chunk-P7J2ABEP.js +587 -0
- package/dist/chunk-P7J2ABEP.js.map +1 -0
- package/dist/{chunk-VUMGMGKZ.js → chunk-TGKQRK3S.js} +52 -8
- package/dist/chunk-TGKQRK3S.js.map +1 -0
- package/dist/{chunk-I3AL54MA.js → chunk-VXKNS7FH.js} +28 -24
- package/dist/chunk-VXKNS7FH.js.map +1 -0
- package/dist/chunk-XO3FYN2W.js +517 -0
- package/dist/chunk-XO3FYN2W.js.map +1 -0
- package/dist/{createTrueFoundryServer-CmZnBh_l.d.ts → createTrueFoundryServer-B_FYhSdn.d.ts} +8 -5
- package/dist/index.d.ts +300 -89
- package/dist/index.js +65 -488
- package/dist/index.js.map +1 -1
- package/dist/plugins/trueforge-agent-server-adapter/index.d.ts +44 -13
- package/dist/plugins/trueforge-agent-server-adapter/index.js +73 -37
- 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/AgentCodeSnippets-637HQUXD.js.map +0 -1
- package/dist/AgentMetricChart-4FYECRIN.js +0 -15
- package/dist/AgentSessionEventTimelineChart-CUKETHWM.js.map +0 -1
- package/dist/AgentSessions-T7MOGOTZ.js.map +0 -1
- package/dist/ConnectorSettings-ESZ2RSRG.js.map +0 -1
- package/dist/DrawerLayout-PR3SMKA6.js.map +0 -1
- package/dist/OpenUiFenceBlock-JEPNPJ7U.js +0 -9
- package/dist/SchedulesPage-WQU4H25F.js +0 -15
- package/dist/ShellRouteSync-B22IAV2W.js.map +0 -1
- package/dist/SidebarLayout-XW6LXB7R.js.map +0 -1
- package/dist/SkillSettings-64VXUO6J.js.map +0 -1
- package/dist/chunk-5I2COQNL.js.map +0 -1
- package/dist/chunk-BWHOZFIV.js +0 -587
- package/dist/chunk-BWHOZFIV.js.map +0 -1
- package/dist/chunk-FQK2XVVE.js.map +0 -1
- package/dist/chunk-G2TUAD65.js.map +0 -1
- package/dist/chunk-GXYAOAK5.js.map +0 -1
- package/dist/chunk-H6WTY5PM.js.map +0 -1
- package/dist/chunk-I3AL54MA.js.map +0 -1
- package/dist/chunk-LGRHHFHN.js.map +0 -1
- package/dist/chunk-NHHSZB5N.js +0 -74
- package/dist/chunk-NHHSZB5N.js.map +0 -1
- package/dist/chunk-QC42MLAK.js.map +0 -1
- package/dist/chunk-SFZNIO6U.js +0 -18
- package/dist/chunk-SFZNIO6U.js.map +0 -1
- package/dist/chunk-SQGT43Z3.js.map +0 -1
- package/dist/chunk-VUMGMGKZ.js.map +0 -1
- package/dist/chunk-YQO2NMJ3.js.map +0 -1
- /package/dist/{AgentMetricChart-4FYECRIN.js.map → AgentMetricChart-3D6FUFO6.js.map} +0 -0
- /package/dist/{AgentOverview-3FJ5EE6N.js.map → AgentOverview-RLJ6HZCN.js.map} +0 -0
- /package/dist/{DockLayout-NLFNU6F2.js.map → DockLayout-J5BRKMJZ.js.map} +0 -0
- /package/dist/{OpenUiFenceBlock-JEPNPJ7U.js.map → OpenUiFenceBlock-UTDCTNTM.js.map} +0 -0
- /package/dist/{SandboxSettings-DF64LHYI.js.map → SandboxSettings-GTZT7LD6.js.map} +0 -0
- /package/dist/{SchedulesPage-WQU4H25F.js.map → SchedulesPage-ARWU7BZF.js.map} +0 -0
- /package/dist/{SettingsBuilder-LSXK2VN4.js.map → SettingsBuilder-A4BPYIFZ.js.map} +0 -0
- /package/dist/{TrueForgeUIWithRouter-3TSLV22Q.js.map → TrueForgeUIWithRouter-5CDICMCE.js.map} +0 -0
- /package/dist/{WidgetLayout-Q5P7PYSJ.js.map → WidgetLayout-HE7E4UL5.js.map} +0 -0
- /package/dist/{chunk-VJ7BZGAF.js.map → chunk-GTTMLDCI.js.map} +0 -0
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createTrueFoundryServer
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import {
|
|
5
|
-
drainListPages
|
|
6
|
-
} from "../../chunk-SFZNIO6U.js";
|
|
3
|
+
} from "../../chunk-7AAO4UDQ.js";
|
|
7
4
|
import {
|
|
8
5
|
readSessionIsCreateAgent
|
|
9
6
|
} from "../../chunk-RDXBMTP5.js";
|
|
@@ -116,7 +113,10 @@ function toUiMcpServer(server) {
|
|
|
116
113
|
return server;
|
|
117
114
|
}
|
|
118
115
|
function toUiSkill(skill) {
|
|
119
|
-
return { name: skill.name };
|
|
116
|
+
return { name: skill.name, preload: skill.preload === true };
|
|
117
|
+
}
|
|
118
|
+
function toHarnessSkill(skill) {
|
|
119
|
+
return { name: skill.id ?? skill.name, preload: skill.preload === true };
|
|
120
120
|
}
|
|
121
121
|
function toHarnessAgentSpec(spec) {
|
|
122
122
|
const { skills, mcpServers, ...rest } = spec;
|
|
@@ -132,7 +132,7 @@ function toHarnessAgentSpec(spec) {
|
|
|
132
132
|
return server;
|
|
133
133
|
})
|
|
134
134
|
},
|
|
135
|
-
...skills === void 0 ? {} : { skills: skills.map(
|
|
135
|
+
...skills === void 0 ? {} : { skills: skills.map(toHarnessSkill) }
|
|
136
136
|
};
|
|
137
137
|
}
|
|
138
138
|
function toUiAgentSpec(spec) {
|
|
@@ -237,7 +237,8 @@ function createHarnessChatServer(options = {}) {
|
|
|
237
237
|
...request.limit === void 0 ? {} : { limit: request.limit },
|
|
238
238
|
...request.order === void 0 ? {} : { order: request.order },
|
|
239
239
|
...request.pageToken === void 0 ? {} : { pageToken: request.pageToken },
|
|
240
|
-
...request.agentId === void 0 || request.agentId.length === 0 ? {} : { agentId: request.agentId }
|
|
240
|
+
...request.agentId === void 0 || request.agentId.length === 0 ? {} : { agentId: request.agentId },
|
|
241
|
+
...request.createdByMe === void 0 ? {} : { createdByMe: request.createdByMe }
|
|
241
242
|
});
|
|
242
243
|
return toListResult(page, toUiSession);
|
|
243
244
|
},
|
|
@@ -326,13 +327,13 @@ function toSessionListEntry(session) {
|
|
|
326
327
|
isMutable: session.agent.type === "inline",
|
|
327
328
|
metrics: {
|
|
328
329
|
totalTurns: session.metrics.totalTurns,
|
|
329
|
-
totalCostInUsd: session.metrics.totalCostInUsd
|
|
330
|
-
// TODO: fix this.
|
|
330
|
+
...session.metrics.totalCostInUsd == null ? {} : { totalCostInUsd: session.metrics.totalCostInUsd },
|
|
331
331
|
totalDurationMs: session.metrics.totalDurationMs
|
|
332
332
|
},
|
|
333
333
|
...session.title === null ? {} : { title: session.title },
|
|
334
334
|
...session.agent.type === "reference" && session.agent.name !== null ? { agentName: session.agent.name } : {},
|
|
335
|
-
...session.agent.type === "inline" ? { agentSpec: toUiAgentSpec(session.agent.spec) } : {}
|
|
335
|
+
...session.agent.type === "inline" ? { agentSpec: toUiAgentSpec(session.agent.spec) } : {},
|
|
336
|
+
...session.source?.type === "schedule" ? { sourceType: session.source.type } : {}
|
|
336
337
|
};
|
|
337
338
|
}
|
|
338
339
|
function createHarnessAgentSessionsServer(options = {}) {
|
|
@@ -347,7 +348,11 @@ function createHarnessAgentSessionsServer(options = {}) {
|
|
|
347
348
|
};
|
|
348
349
|
},
|
|
349
350
|
async getCodeSnippets({ agentId }) {
|
|
350
|
-
const
|
|
351
|
+
const absoluteBaseUrl = resolveTrueForgeBaseUrl(options.baseUrl ?? "/").replace(/\/$/, "");
|
|
352
|
+
const { data } = await client.internal.agents.getCodeSnippets(
|
|
353
|
+
agentId,
|
|
354
|
+
/^https?:\/\//i.test(absoluteBaseUrl) ? { baseUrl: absoluteBaseUrl } : void 0
|
|
355
|
+
);
|
|
351
356
|
return data.snippets;
|
|
352
357
|
},
|
|
353
358
|
async listSessions(requestParams = {}) {
|
|
@@ -357,7 +362,8 @@ function createHarnessAgentSessionsServer(options = {}) {
|
|
|
357
362
|
...requestParams.pageToken === void 0 ? {} : { pageToken: requestParams.pageToken },
|
|
358
363
|
...requestParams.startTimestamp === void 0 ? {} : { startTimestamp: parseIsoDate(requestParams.startTimestamp) },
|
|
359
364
|
...requestParams.endTimestamp === void 0 ? {} : { endTimestamp: parseIsoDate(requestParams.endTimestamp) },
|
|
360
|
-
...requestParams.agentId === void 0 || requestParams.agentId.length === 0 ? {} : { agentId: requestParams.agentId }
|
|
365
|
+
...requestParams.agentId === void 0 || requestParams.agentId.length === 0 ? {} : { agentId: requestParams.agentId },
|
|
366
|
+
...requestParams.createdByMe === void 0 ? {} : { createdByMe: requestParams.createdByMe }
|
|
361
367
|
});
|
|
362
368
|
return toListResult(page, toSessionListEntry);
|
|
363
369
|
},
|
|
@@ -411,10 +417,21 @@ function toUiCatalogEntry(server) {
|
|
|
411
417
|
auth: toUiAuthPublic(server.auth)
|
|
412
418
|
};
|
|
413
419
|
}
|
|
420
|
+
function toUiToolAnnotations(value) {
|
|
421
|
+
if (typeof value !== "object" || value === null) return void 0;
|
|
422
|
+
const readOnlyHint = Reflect.get(value, "readOnlyHint");
|
|
423
|
+
const destructiveHint = Reflect.get(value, "destructiveHint");
|
|
424
|
+
const annotations = {
|
|
425
|
+
...typeof readOnlyHint === "boolean" ? { readOnlyHint } : {},
|
|
426
|
+
...typeof destructiveHint === "boolean" ? { destructiveHint } : {}
|
|
427
|
+
};
|
|
428
|
+
return Object.keys(annotations).length > 0 ? annotations : void 0;
|
|
429
|
+
}
|
|
414
430
|
function toUiTool(tool) {
|
|
415
431
|
const name = typeof tool.name === "string" && tool.name !== "" ? tool.name : "tool";
|
|
416
432
|
const description = typeof tool.description === "string" ? tool.description : "";
|
|
417
|
-
|
|
433
|
+
const annotations = toUiToolAnnotations(Reflect.get(tool, "annotations"));
|
|
434
|
+
return annotations === void 0 ? { id: name, name, description } : { id: name, name, description, annotations };
|
|
418
435
|
}
|
|
419
436
|
function toUiConnector(server) {
|
|
420
437
|
const auth = toUiAuthPublic(server.manifest.auth);
|
|
@@ -555,17 +572,9 @@ async function listModels(client) {
|
|
|
555
572
|
const body = await client.models.list();
|
|
556
573
|
return body.data;
|
|
557
574
|
}
|
|
558
|
-
async function listConfiguredMcpServersPage(client, req = {}) {
|
|
559
|
-
const page = await client.mcpServers.list({
|
|
560
|
-
...req.limit === void 0 ? {} : { limit: req.limit },
|
|
561
|
-
...req.pageToken === void 0 ? {} : { pageToken: req.pageToken }
|
|
562
|
-
});
|
|
563
|
-
return toListResult(page, (server) => server);
|
|
564
|
-
}
|
|
565
575
|
async function listConfiguredMcpServers(client) {
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
});
|
|
576
|
+
const body = await client.mcpServers.list();
|
|
577
|
+
return body.data;
|
|
569
578
|
}
|
|
570
579
|
async function listSkills(client) {
|
|
571
580
|
const body = await client.skills.list();
|
|
@@ -610,7 +619,8 @@ function toLibraryEntry(agent) {
|
|
|
610
619
|
return {
|
|
611
620
|
name: agent.name,
|
|
612
621
|
agentId: agent.id,
|
|
613
|
-
agentSpec: toUiAgentSpec(agent.manifest)
|
|
622
|
+
agentSpec: toUiAgentSpec(agent.manifest),
|
|
623
|
+
createdBySubject: agent.createdBySubject
|
|
614
624
|
};
|
|
615
625
|
}
|
|
616
626
|
function createHarnessBuilderServer(options = {}) {
|
|
@@ -632,17 +642,31 @@ function createHarnessBuilderServer(options = {}) {
|
|
|
632
642
|
});
|
|
633
643
|
},
|
|
634
644
|
// Skills require a configured sandbox provider; keep the picker empty when skill capability is off.
|
|
645
|
+
// Catalog AvailableSkill.name is store identity (FQN in TFY). Picker `id` copies that
|
|
646
|
+
// attach key; `name` is displayName so the draft can show a label without losing the wire key.
|
|
647
|
+
// Draft mounts `{ id, name }`; toHarnessSkill admits AgentSpec.skills[].name = id ?? name.
|
|
635
648
|
getSkills: async () => {
|
|
636
649
|
const skills = await listSkills(client);
|
|
637
|
-
return skills.map((skill) =>
|
|
650
|
+
return skills.map((skill) => {
|
|
651
|
+
const { display_name, repository_name, version: versionRaw } = skill.metadata ?? {};
|
|
652
|
+
const version = Number(versionRaw);
|
|
653
|
+
const hasVersion = Number.isInteger(version) && version > 0;
|
|
654
|
+
return {
|
|
655
|
+
id: skill.name,
|
|
656
|
+
name: display_name ?? skill.name,
|
|
657
|
+
description: skill.description,
|
|
658
|
+
...repository_name === void 0 ? {} : { skillRepoName: repository_name },
|
|
659
|
+
...hasVersion ? {
|
|
660
|
+
version,
|
|
661
|
+
loadVersions: async () => (await client.skills.listVersions({ name: skill.name })).data
|
|
662
|
+
} : {}
|
|
663
|
+
};
|
|
664
|
+
});
|
|
638
665
|
},
|
|
639
666
|
getMcp: async () => (await listConfiguredMcpServers(client)).map(toUiConnectorFromReadEntry),
|
|
640
|
-
|
|
641
|
-
const
|
|
642
|
-
return
|
|
643
|
-
data: page.data.map(toUiConnectorFromReadEntry),
|
|
644
|
-
...page.nextPageToken === void 0 ? {} : { nextPageToken: page.nextPageToken }
|
|
645
|
-
};
|
|
667
|
+
getMcpConnector: async ({ connectorId }) => {
|
|
668
|
+
const body = await client.mcpServers.get(connectorId);
|
|
669
|
+
return toUiConnectorFromReadEntry(body.data);
|
|
646
670
|
},
|
|
647
671
|
getMcpTools: async ({ connectorId }) => {
|
|
648
672
|
const body = await client.mcpServers.listTools(connectorId);
|
|
@@ -958,10 +982,12 @@ function toHarnessManifest3(req) {
|
|
|
958
982
|
};
|
|
959
983
|
}
|
|
960
984
|
function toUiSkill2(skill, catalogNames) {
|
|
985
|
+
const manifest = skill.manifest;
|
|
986
|
+
const displayName = "displayName" in manifest && typeof manifest.displayName === "string" ? manifest.displayName : manifest.name;
|
|
961
987
|
const base = {
|
|
962
988
|
id: skill.name,
|
|
963
|
-
name:
|
|
964
|
-
description:
|
|
989
|
+
name: displayName,
|
|
990
|
+
description: manifest.description
|
|
965
991
|
};
|
|
966
992
|
if (catalogNames.has(skill.name)) {
|
|
967
993
|
return { ...base, catalogId: skill.name };
|
|
@@ -1006,6 +1032,14 @@ function createSkillCatalog(client) {
|
|
|
1006
1032
|
};
|
|
1007
1033
|
}
|
|
1008
1034
|
|
|
1035
|
+
// src/plugins/trueforge-agent-server-adapter/permissionsServer.ts
|
|
1036
|
+
function createHarnessPermissionsServer(options = {}) {
|
|
1037
|
+
const client = options.client ?? createTrueForgeClient(options);
|
|
1038
|
+
return {
|
|
1039
|
+
listPermissions: (request) => client.internal.listPermissions(request)
|
|
1040
|
+
};
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1009
1043
|
// src/plugins/trueforge-agent-server-adapter/schedules/scheduleServer.ts
|
|
1010
1044
|
var SCHEDULES_PAGE_LIMIT = 25;
|
|
1011
1045
|
async function loadAgentIndex(client) {
|
|
@@ -1048,7 +1082,8 @@ function toUiSchedule(wire, index) {
|
|
|
1048
1082
|
cron: wire.manifest.cron,
|
|
1049
1083
|
timezone: wire.manifest.timezone ?? "UTC",
|
|
1050
1084
|
status: wireStatus(wire.manifest),
|
|
1051
|
-
lastRunAt: null
|
|
1085
|
+
lastRunAt: null,
|
|
1086
|
+
createdBySubject: wire.createdBySubject
|
|
1052
1087
|
};
|
|
1053
1088
|
}
|
|
1054
1089
|
function toWireManifest(input) {
|
|
@@ -1128,7 +1163,7 @@ function createScheduleServer(options) {
|
|
|
1128
1163
|
|
|
1129
1164
|
// src/plugins/trueforge-agent-server-adapter/index.ts
|
|
1130
1165
|
function createTrueForgeAgentUIServer(options = {}) {
|
|
1131
|
-
const { catalog: catalogOverride, ...clientOptions } = options;
|
|
1166
|
+
const { catalog: catalogOverride, permissions, ...clientOptions } = options;
|
|
1132
1167
|
const client = createTrueForgeClient(clientOptions);
|
|
1133
1168
|
const catalog = catalogOverride ?? {
|
|
1134
1169
|
modelCatalog: createModelProviderCatalog(client),
|
|
@@ -1142,7 +1177,8 @@ function createTrueForgeAgentUIServer(options = {}) {
|
|
|
1142
1177
|
catalog,
|
|
1143
1178
|
sessions: createHarnessAgentSessionsServer({ ...clientOptions, client }),
|
|
1144
1179
|
metrics: createHarnessAgentMetricsServer({ ...clientOptions, client }),
|
|
1145
|
-
schedules: createScheduleServer({ client })
|
|
1180
|
+
schedules: createScheduleServer({ client }),
|
|
1181
|
+
permissions: permissions ?? createHarnessPermissionsServer({ client })
|
|
1146
1182
|
});
|
|
1147
1183
|
}
|
|
1148
1184
|
export {
|
|
@@ -1152,6 +1188,7 @@ export {
|
|
|
1152
1188
|
createHarnessAgentSessionsServer,
|
|
1153
1189
|
createHarnessBuilderServer,
|
|
1154
1190
|
createHarnessChatServer,
|
|
1191
|
+
createHarnessPermissionsServer,
|
|
1155
1192
|
createModelProviderCatalog,
|
|
1156
1193
|
createSandboxProviderCatalog,
|
|
1157
1194
|
createScheduleServer,
|
|
@@ -1161,7 +1198,6 @@ export {
|
|
|
1161
1198
|
filterUiSandboxProviders,
|
|
1162
1199
|
getCapabilities,
|
|
1163
1200
|
listConfiguredMcpServers,
|
|
1164
|
-
listConfiguredMcpServersPage,
|
|
1165
1201
|
listModels,
|
|
1166
1202
|
listSkills,
|
|
1167
1203
|
modelProviderLogosByName,
|