anything-llm/server/endpoints/experimental/imported-agent-plugins.js
Timothy Carambat d1103e2b71
Add support for custom agent skills via plugins (#2202)
* Add support for custom agent skills via plugins
Update Admin.systemPreferences to updated endpoint (legacy has deprecation notice

* lint

* dev build

* patch safeJson
patch label loading

* allow plugins with no config options

* lint

* catch invalid setupArgs in frontend

* update link to docs page for agent skills

* remove unneeded files

---------

Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
2024-09-10 17:06:02 -07:00

51 lines
1.4 KiB
JavaScript

const ImportedPlugin = require("../../utils/agents/imported");
const { reqBody } = require("../../utils/http");
const {
flexUserRoleValid,
ROLES,
} = require("../../utils/middleware/multiUserProtected");
const { validatedRequest } = require("../../utils/middleware/validatedRequest");
function importedAgentPluginEndpoints(app) {
if (!app) return;
app.post(
"/experimental/agent-plugins/:hubId/toggle",
[validatedRequest, flexUserRoleValid([ROLES.admin])],
(request, response) => {
try {
const { hubId } = request.params;
const { active } = reqBody(request);
const updatedConfig = ImportedPlugin.updateImportedPlugin(hubId, {
active: Boolean(active),
});
response.status(200).json(updatedConfig);
} catch (e) {
console.error(e);
response.status(500).end();
}
}
);
app.post(
"/experimental/agent-plugins/:hubId/config",
[validatedRequest, flexUserRoleValid([ROLES.admin])],
(request, response) => {
try {
const { hubId } = request.params;
const { updates } = reqBody(request);
const updatedConfig = ImportedPlugin.updateImportedPlugin(
hubId,
updates
);
response.status(200).json(updatedConfig);
} catch (e) {
console.error(e);
response.status(500).end();
}
}
);
}
module.exports = { importedAgentPluginEndpoints };