@datalayer/core
Version:
**Datalayer Core**
73 lines (72 loc) • 2.55 kB
JavaScript
/*
* Copyright (c) 2023-2025 Datalayer, Inc.
* Distributed under the terms of the Modified BSD License.
*/
import { URLExt } from '@jupyterlab/coreutils';
import { useCoreStore } from '../state';
import { useDatalayer } from './useDatalayer';
export const useAIAgents = (baseUrlOverride = 'api/ai-agents/v1') => {
const { configuration } = useCoreStore();
const { requestDatalayer } = useDatalayer({ notifyOnError: false });
const createAIAgent = (documentId, documentType, ingress, token, kernelId, { signal, baseUrl = baseUrlOverride } = {}) => {
return requestDatalayer({
url: URLExt.join(configuration.aiagentsRunUrl, baseUrl, 'agents'),
method: 'POST',
body: {
document_id: documentId,
document_type: documentType,
runtime: {
ingress,
token,
kernel_id: kernelId,
}
},
signal
});
};
const getAIAgents = ({ signal, baseUrl = baseUrlOverride } = {}) => {
return requestDatalayer({
url: URLExt.join(configuration.aiagentsRunUrl, baseUrl, 'agents'),
method: 'GET',
signal,
});
};
const deleteAIAgent = (documentId, { signal, baseUrl = baseUrlOverride } = {}) => {
return requestDatalayer({
url: URLExt.join(configuration.aiagentsRunUrl, baseUrl, 'agents', documentId),
method: 'DELETE',
signal,
});
};
const getAIAgent = (documentId, { signal, baseUrl = baseUrlOverride } = {}) => {
return requestDatalayer({
url: URLExt.join(configuration.aiagentsRunUrl, baseUrl, 'agents', documentId),
method: 'GET',
signal,
});
};
const patchAIAgent = (documentId, ingress, token, kernelId, { signal, baseUrl = baseUrlOverride } = {}) => {
return requestDatalayer({
url: URLExt.join(configuration.aiagentsRunUrl, baseUrl, 'agents', documentId),
method: 'PATCH',
body: {
runtime: ingress && token && kernelId
? {
ingress,
token,
kernel_id: kernelId
}
: null
},
signal,
});
};
return {
createAIAgent,
getAIAgents,
deleteAIAgent,
getAIAgent,
patchAIAgent
};
};
export default useAIAgents;