@diskd-ai/sdk 5.1.2
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/LICENSE +190 -0
- package/README.md +1036 -0
- package/dist/agentHub/StreamProtocolFetcher.d.ts +55 -0
- package/dist/agentHub/StreamProtocolFetcher.d.ts.map +1 -0
- package/dist/agentHub/StreamProtocolFetcher.js +176 -0
- package/dist/agentHub/StreamProtocolFetcher.js.map +1 -0
- package/dist/agentHub/StreamProtocolHandler.d.ts +18 -0
- package/dist/agentHub/StreamProtocolHandler.d.ts.map +1 -0
- package/dist/agentHub/StreamProtocolHandler.js +63 -0
- package/dist/agentHub/StreamProtocolHandler.js.map +1 -0
- package/dist/agentHub/agentHub.d.ts +30 -0
- package/dist/agentHub/agentHub.d.ts.map +1 -0
- package/dist/agentHub/agentHub.js +200 -0
- package/dist/agentHub/agentHub.js.map +1 -0
- package/dist/agentHub/agentHubTypes.d.ts +110 -0
- package/dist/agentHub/agentHubTypes.d.ts.map +1 -0
- package/dist/agentHub/agentHubTypes.js +8 -0
- package/dist/agentHub/agentHubTypes.js.map +1 -0
- package/dist/agentHub/streamProtocolMap.d.ts +328 -0
- package/dist/agentHub/streamProtocolMap.d.ts.map +1 -0
- package/dist/agentHub/streamProtocolMap.js +8 -0
- package/dist/agentHub/streamProtocolMap.js.map +1 -0
- package/dist/auth/createApiKeyAuth.d.ts +11 -0
- package/dist/auth/createApiKeyAuth.d.ts.map +1 -0
- package/dist/auth/createApiKeyAuth.js +31 -0
- package/dist/auth/createApiKeyAuth.js.map +1 -0
- package/dist/auth/createAuth.d.ts +3 -0
- package/dist/auth/createAuth.d.ts.map +1 -0
- package/dist/auth/createAuth.js +128 -0
- package/dist/auth/createAuth.js.map +1 -0
- package/dist/auth/createAuthBrowser.d.ts +3 -0
- package/dist/auth/createAuthBrowser.d.ts.map +1 -0
- package/dist/auth/createAuthBrowser.js +104 -0
- package/dist/auth/createAuthBrowser.js.map +1 -0
- package/dist/auth/jwtClaims.d.ts +3 -0
- package/dist/auth/jwtClaims.d.ts.map +1 -0
- package/dist/auth/jwtClaims.js +23 -0
- package/dist/auth/jwtClaims.js.map +1 -0
- package/dist/auth/keyfile.d.ts +10 -0
- package/dist/auth/keyfile.d.ts.map +1 -0
- package/dist/auth/keyfile.js +28 -0
- package/dist/auth/keyfile.js.map +1 -0
- package/dist/auth/oidcDiscovery.d.ts +9 -0
- package/dist/auth/oidcDiscovery.d.ts.map +1 -0
- package/dist/auth/oidcDiscovery.js +27 -0
- package/dist/auth/oidcDiscovery.js.map +1 -0
- package/dist/auth/pkce.d.ts +4 -0
- package/dist/auth/pkce.d.ts.map +1 -0
- package/dist/auth/pkce.js +43 -0
- package/dist/auth/pkce.js.map +1 -0
- package/dist/auth/sessionStorage.d.ts +8 -0
- package/dist/auth/sessionStorage.d.ts.map +1 -0
- package/dist/auth/sessionStorage.js +8 -0
- package/dist/auth/sessionStorage.js.map +1 -0
- package/dist/auth/tokenRequests.d.ts +15 -0
- package/dist/auth/tokenRequests.d.ts.map +1 -0
- package/dist/auth/tokenRequests.js +89 -0
- package/dist/auth/tokenRequests.js.map +1 -0
- package/dist/auth/types.d.ts +35 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +2 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/auth/urlRuntime.d.ts +7 -0
- package/dist/auth/urlRuntime.d.ts.map +1 -0
- package/dist/auth/urlRuntime.js +17 -0
- package/dist/auth/urlRuntime.js.map +1 -0
- package/dist/browser/index.d.ts +8 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +3 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/calendar/calendar.d.ts +21 -0
- package/dist/calendar/calendar.d.ts.map +1 -0
- package/dist/calendar/calendar.js +105 -0
- package/dist/calendar/calendar.js.map +1 -0
- package/dist/calendar/calendarTypes.d.ts +191 -0
- package/dist/calendar/calendarTypes.d.ts.map +1 -0
- package/dist/calendar/calendarTypes.js +4 -0
- package/dist/calendar/calendarTypes.js.map +1 -0
- package/dist/contacts/contacts.d.ts +10 -0
- package/dist/contacts/contacts.d.ts.map +1 -0
- package/dist/contacts/contacts.js +86 -0
- package/dist/contacts/contacts.js.map +1 -0
- package/dist/contacts/contactsTypes.d.ts +81 -0
- package/dist/contacts/contactsTypes.d.ts.map +1 -0
- package/dist/contacts/contactsTypes.js +4 -0
- package/dist/contacts/contactsTypes.js.map +1 -0
- package/dist/drive/DriveRepository.d.ts +88 -0
- package/dist/drive/DriveRepository.d.ts.map +1 -0
- package/dist/drive/DriveRepository.js +156 -0
- package/dist/drive/DriveRepository.js.map +1 -0
- package/dist/drive/crontab.d.ts +7 -0
- package/dist/drive/crontab.d.ts.map +1 -0
- package/dist/drive/crontab.js +374 -0
- package/dist/drive/crontab.js.map +1 -0
- package/dist/drive/crontabTypes.d.ts +136 -0
- package/dist/drive/crontabTypes.d.ts.map +1 -0
- package/dist/drive/crontabTypes.js +2 -0
- package/dist/drive/crontabTypes.js.map +1 -0
- package/dist/drive/drive.d.ts +8 -0
- package/dist/drive/drive.d.ts.map +1 -0
- package/dist/drive/drive.js +711 -0
- package/dist/drive/drive.js.map +1 -0
- package/dist/drive/driveDb.d.ts +6 -0
- package/dist/drive/driveDb.d.ts.map +1 -0
- package/dist/drive/driveDb.js +220 -0
- package/dist/drive/driveDb.js.map +1 -0
- package/dist/drive/driveDbTypes.d.ts +138 -0
- package/dist/drive/driveDbTypes.d.ts.map +1 -0
- package/dist/drive/driveDbTypes.js +5 -0
- package/dist/drive/driveDbTypes.js.map +1 -0
- package/dist/drive/driveTypes.d.ts +322 -0
- package/dist/drive/driveTypes.d.ts.map +1 -0
- package/dist/drive/driveTypes.js +5 -0
- package/dist/drive/driveTypes.js.map +1 -0
- package/dist/drive/rpc.d.ts +14 -0
- package/dist/drive/rpc.d.ts.map +1 -0
- package/dist/drive/rpc.js +48 -0
- package/dist/drive/rpc.js.map +1 -0
- package/dist/drive/session.d.ts +7 -0
- package/dist/drive/session.d.ts.map +1 -0
- package/dist/drive/session.js +450 -0
- package/dist/drive/session.js.map +1 -0
- package/dist/drive/sessionBuilder.d.ts +33 -0
- package/dist/drive/sessionBuilder.d.ts.map +1 -0
- package/dist/drive/sessionBuilder.js +77 -0
- package/dist/drive/sessionBuilder.js.map +1 -0
- package/dist/drive/sessionObject.d.ts +57 -0
- package/dist/drive/sessionObject.d.ts.map +1 -0
- package/dist/drive/sessionObject.js +191 -0
- package/dist/drive/sessionObject.js.map +1 -0
- package/dist/drive/sessionTypes.d.ts +182 -0
- package/dist/drive/sessionTypes.d.ts.map +1 -0
- package/dist/drive/sessionTypes.js +2 -0
- package/dist/drive/sessionTypes.js.map +1 -0
- package/dist/drive/typeorm/DriveDriver.d.ts +27 -0
- package/dist/drive/typeorm/DriveDriver.d.ts.map +1 -0
- package/dist/drive/typeorm/DriveDriver.js +86 -0
- package/dist/drive/typeorm/DriveDriver.js.map +1 -0
- package/dist/drive/typeorm/DriveQueryRunner.d.ts +15 -0
- package/dist/drive/typeorm/DriveQueryRunner.d.ts.map +1 -0
- package/dist/drive/typeorm/DriveQueryRunner.js +76 -0
- package/dist/drive/typeorm/DriveQueryRunner.js.map +1 -0
- package/dist/drive/typeorm/createDriveDataSource.d.ts +3 -0
- package/dist/drive/typeorm/createDriveDataSource.d.ts.map +1 -0
- package/dist/drive/typeorm/createDriveDataSource.js +36 -0
- package/dist/drive/typeorm/createDriveDataSource.js.map +1 -0
- package/dist/drive/typeorm/datasourceTypes.d.ts +56 -0
- package/dist/drive/typeorm/datasourceTypes.d.ts.map +1 -0
- package/dist/drive/typeorm/datasourceTypes.js +5 -0
- package/dist/drive/typeorm/datasourceTypes.js.map +1 -0
- package/dist/drive/types.d.ts +48 -0
- package/dist/drive/types.d.ts.map +1 -0
- package/dist/drive/types.js +2 -0
- package/dist/drive/types.js.map +1 -0
- package/dist/env/apiKey.d.ts +2 -0
- package/dist/env/apiKey.d.ts.map +1 -0
- package/dist/env/apiKey.js +11 -0
- package/dist/env/apiKey.js.map +1 -0
- package/dist/env/baseUrl.d.ts +3 -0
- package/dist/env/baseUrl.d.ts.map +1 -0
- package/dist/env/baseUrl.js +31 -0
- package/dist/env/baseUrl.js.map +1 -0
- package/dist/inbox/inboxTypes.d.ts +34 -0
- package/dist/inbox/inboxTypes.d.ts.map +1 -0
- package/dist/inbox/inboxTypes.js +5 -0
- package/dist/inbox/inboxTypes.js.map +1 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/llmRouter/llmRouter.d.ts +23 -0
- package/dist/llmRouter/llmRouter.d.ts.map +1 -0
- package/dist/llmRouter/llmRouter.js +566 -0
- package/dist/llmRouter/llmRouter.js.map +1 -0
- package/dist/llmRouter/llmRouterTypes.d.ts +350 -0
- package/dist/llmRouter/llmRouterTypes.d.ts.map +1 -0
- package/dist/llmRouter/llmRouterTypes.js +5 -0
- package/dist/llmRouter/llmRouterTypes.js.map +1 -0
- package/dist/mcpHub/mcpHub.d.ts +23 -0
- package/dist/mcpHub/mcpHub.d.ts.map +1 -0
- package/dist/mcpHub/mcpHub.js +223 -0
- package/dist/mcpHub/mcpHub.js.map +1 -0
- package/dist/mcpHub/mcpHubTypes.d.ts +228 -0
- package/dist/mcpHub/mcpHubTypes.d.ts.map +1 -0
- package/dist/mcpHub/mcpHubTypes.js +5 -0
- package/dist/mcpHub/mcpHubTypes.js.map +1 -0
- package/dist/mcpTools/mcpTools.d.ts +31 -0
- package/dist/mcpTools/mcpTools.d.ts.map +1 -0
- package/dist/mcpTools/mcpTools.js +144 -0
- package/dist/mcpTools/mcpTools.js.map +1 -0
- package/dist/mcpTools/mcpToolsTypes.d.ts +45 -0
- package/dist/mcpTools/mcpToolsTypes.d.ts.map +1 -0
- package/dist/mcpTools/mcpToolsTypes.js +5 -0
- package/dist/mcpTools/mcpToolsTypes.js.map +1 -0
- package/dist/messagesStore/messagesStore.d.ts +22 -0
- package/dist/messagesStore/messagesStore.d.ts.map +1 -0
- package/dist/messagesStore/messagesStore.js +402 -0
- package/dist/messagesStore/messagesStore.js.map +1 -0
- package/dist/messagesStore/messagesStoreTypes.d.ts +327 -0
- package/dist/messagesStore/messagesStoreTypes.d.ts.map +1 -0
- package/dist/messagesStore/messagesStoreTypes.js +11 -0
- package/dist/messagesStore/messagesStoreTypes.js.map +1 -0
- package/dist/node/fastDns.d.ts +2 -0
- package/dist/node/fastDns.d.ts.map +1 -0
- package/dist/node/fastDns.js +119 -0
- package/dist/node/fastDns.js.map +1 -0
- package/dist/operatives/operatives.d.ts +22 -0
- package/dist/operatives/operatives.d.ts.map +1 -0
- package/dist/operatives/operatives.js +199 -0
- package/dist/operatives/operatives.js.map +1 -0
- package/dist/operatives/operativesTypes.d.ts +141 -0
- package/dist/operatives/operativesTypes.d.ts.map +1 -0
- package/dist/operatives/operativesTypes.js +6 -0
- package/dist/operatives/operativesTypes.js.map +1 -0
- package/dist/platformEvents/platformEvents.d.ts +14 -0
- package/dist/platformEvents/platformEvents.d.ts.map +1 -0
- package/dist/platformEvents/platformEvents.js +70 -0
- package/dist/platformEvents/platformEvents.js.map +1 -0
- package/dist/platformEvents/platformEventsTypes.d.ts +31 -0
- package/dist/platformEvents/platformEventsTypes.d.ts.map +1 -0
- package/dist/platformEvents/platformEventsTypes.js +8 -0
- package/dist/platformEvents/platformEventsTypes.js.map +1 -0
- package/dist/projects/projects.d.ts +19 -0
- package/dist/projects/projects.d.ts.map +1 -0
- package/dist/projects/projects.js +52 -0
- package/dist/projects/projects.js.map +1 -0
- package/dist/projects/projectsTypes.d.ts +47 -0
- package/dist/projects/projectsTypes.d.ts.map +1 -0
- package/dist/projects/projectsTypes.js +4 -0
- package/dist/projects/projectsTypes.js.map +1 -0
- package/dist/routineRuns/routineRuns.d.ts +19 -0
- package/dist/routineRuns/routineRuns.d.ts.map +1 -0
- package/dist/routineRuns/routineRuns.js +47 -0
- package/dist/routineRuns/routineRuns.js.map +1 -0
- package/dist/routineRuns/routineRunsTypes.d.ts +39 -0
- package/dist/routineRuns/routineRunsTypes.d.ts.map +1 -0
- package/dist/routineRuns/routineRunsTypes.js +4 -0
- package/dist/routineRuns/routineRunsTypes.js.map +1 -0
- package/dist/routines/routines.d.ts +19 -0
- package/dist/routines/routines.d.ts.map +1 -0
- package/dist/routines/routines.js +77 -0
- package/dist/routines/routines.js.map +1 -0
- package/dist/routines/routinesTypes.d.ts +106 -0
- package/dist/routines/routinesTypes.d.ts.map +1 -0
- package/dist/routines/routinesTypes.js +4 -0
- package/dist/routines/routinesTypes.js.map +1 -0
- package/dist/sdk/diskd.d.ts +3 -0
- package/dist/sdk/diskd.d.ts.map +1 -0
- package/dist/sdk/diskd.js +126 -0
- package/dist/sdk/diskd.js.map +1 -0
- package/dist/sdk/http.d.ts +13 -0
- package/dist/sdk/http.d.ts.map +1 -0
- package/dist/sdk/http.js +80 -0
- package/dist/sdk/http.js.map +1 -0
- package/dist/sdk/types.d.ts +115 -0
- package/dist/sdk/types.d.ts.map +1 -0
- package/dist/sdk/types.js +2 -0
- package/dist/sdk/types.js.map +1 -0
- package/dist/testing/auth.d.ts +8 -0
- package/dist/testing/auth.d.ts.map +1 -0
- package/dist/testing/auth.js +14 -0
- package/dist/testing/auth.js.map +1 -0
- package/dist/testing/fetchMock.d.ts +17 -0
- package/dist/testing/fetchMock.d.ts.map +1 -0
- package/dist/testing/fetchMock.js +46 -0
- package/dist/testing/fetchMock.js.map +1 -0
- package/dist/testing/index.d.ts +11 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +11 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/integration.d.ts +33 -0
- package/dist/testing/integration.d.ts.map +1 -0
- package/dist/testing/integration.js +32 -0
- package/dist/testing/integration.js.map +1 -0
- package/dist/testing/jsonRpc.d.ts +9 -0
- package/dist/testing/jsonRpc.d.ts.map +1 -0
- package/dist/testing/jsonRpc.js +24 -0
- package/dist/testing/jsonRpc.js.map +1 -0
- package/dist/testing/rpcMock.d.ts +16 -0
- package/dist/testing/rpcMock.d.ts.map +1 -0
- package/dist/testing/rpcMock.js +28 -0
- package/dist/testing/rpcMock.js.map +1 -0
- package/dist/tgUserbot/tgUserbot.d.ts +23 -0
- package/dist/tgUserbot/tgUserbot.d.ts.map +1 -0
- package/dist/tgUserbot/tgUserbot.js +314 -0
- package/dist/tgUserbot/tgUserbot.js.map +1 -0
- package/dist/tgUserbot/tgUserbotTypes.d.ts +124 -0
- package/dist/tgUserbot/tgUserbotTypes.d.ts.map +1 -0
- package/dist/tgUserbot/tgUserbotTypes.js +5 -0
- package/dist/tgUserbot/tgUserbotTypes.js.map +1 -0
- package/dist/webNavigator/webNavigator.d.ts +22 -0
- package/dist/webNavigator/webNavigator.d.ts.map +1 -0
- package/dist/webNavigator/webNavigator.js +46 -0
- package/dist/webNavigator/webNavigator.js.map +1 -0
- package/dist/webNavigator/webNavigatorTypes.d.ts +133 -0
- package/dist/webNavigator/webNavigatorTypes.d.ts.map +1 -0
- package/dist/webNavigator/webNavigatorTypes.js +5 -0
- package/dist/webNavigator/webNavigatorTypes.js.map +1 -0
- package/package.json +90 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { resolveDiskdGatewayUrl } from '../env/baseUrl.js';
|
|
2
|
+
import { httpRequest, resolveAuthHeaders } from '../sdk/http.js';
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Decode / encode
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
const decodeOperative = (wire) => {
|
|
7
|
+
const base = {
|
|
8
|
+
id: wire.id,
|
|
9
|
+
workspaceId: wire.workspaceId,
|
|
10
|
+
name: wire.name,
|
|
11
|
+
slug: wire.slug,
|
|
12
|
+
avatarUrl: wire.avatarUrl,
|
|
13
|
+
fileAccess: wire.intelAccess,
|
|
14
|
+
engineProvider: wire.engineProvider,
|
|
15
|
+
engineModel: wire.engineModel,
|
|
16
|
+
engine: wire.engine,
|
|
17
|
+
orders: wire.orders,
|
|
18
|
+
ordersUpdatedAt: wire.ordersUpdatedAt,
|
|
19
|
+
trustLevel: wire.trustLevel,
|
|
20
|
+
isPrimary: wire.isPrimary,
|
|
21
|
+
status: wire.status,
|
|
22
|
+
sealGradient: wire.sealGradient,
|
|
23
|
+
createdBy: wire.createdBy,
|
|
24
|
+
createdAt: wire.createdAt,
|
|
25
|
+
updatedAt: wire.updatedAt,
|
|
26
|
+
};
|
|
27
|
+
if (wire.scope === 'workspace' || wire.projectId === null) {
|
|
28
|
+
return { ...base, scope: 'workspace' };
|
|
29
|
+
}
|
|
30
|
+
return { ...base, scope: 'project', projectId: wire.projectId };
|
|
31
|
+
};
|
|
32
|
+
const decodeFile = (wire) => ({
|
|
33
|
+
id: wire.id,
|
|
34
|
+
operativeId: wire.operativeId,
|
|
35
|
+
path: wire.sourceId,
|
|
36
|
+
createdAt: wire.createdAt,
|
|
37
|
+
});
|
|
38
|
+
const decodeSkill = (wire) => ({
|
|
39
|
+
id: wire.id,
|
|
40
|
+
operativeId: wire.operativeId,
|
|
41
|
+
refId: wire.refId ?? '',
|
|
42
|
+
createdAt: wire.createdAt,
|
|
43
|
+
});
|
|
44
|
+
const decodeTool = (wire) => ({
|
|
45
|
+
id: wire.id,
|
|
46
|
+
operativeId: wire.operativeId,
|
|
47
|
+
selector: wire.selector ?? '',
|
|
48
|
+
display: wire.display,
|
|
49
|
+
resolutionStatus: wire.resolutionStatus,
|
|
50
|
+
createdAt: wire.createdAt,
|
|
51
|
+
});
|
|
52
|
+
/** Encode SDK field names to app-service wire format. */
|
|
53
|
+
const encodeParams = (params) => {
|
|
54
|
+
const wire = { ...params };
|
|
55
|
+
if ('fileAccess' in wire) {
|
|
56
|
+
wire.intelAccess = wire.fileAccess;
|
|
57
|
+
delete wire.fileAccess;
|
|
58
|
+
}
|
|
59
|
+
return wire;
|
|
60
|
+
};
|
|
61
|
+
// ---------------------------------------------------------------------------
|
|
62
|
+
// Query params
|
|
63
|
+
// ---------------------------------------------------------------------------
|
|
64
|
+
const buildQuery = (entries) => {
|
|
65
|
+
const parts = [];
|
|
66
|
+
for (const [key, value] of entries) {
|
|
67
|
+
if (value !== undefined) {
|
|
68
|
+
parts.push(`${key}=${encodeURIComponent(value)}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return parts.length > 0 ? `?${parts.join('&')}` : '';
|
|
72
|
+
};
|
|
73
|
+
// ---------------------------------------------------------------------------
|
|
74
|
+
// Client factory
|
|
75
|
+
// ---------------------------------------------------------------------------
|
|
76
|
+
/**
|
|
77
|
+
* Creates an Operatives REST client bound to a given auth module.
|
|
78
|
+
*
|
|
79
|
+
* The URL defaults to the centralized `APIS_BASE_URL` gateway with the
|
|
80
|
+
* `/v1/platform/operatives` path prefix.
|
|
81
|
+
*
|
|
82
|
+
* Example:
|
|
83
|
+
* ```ts
|
|
84
|
+
* const ops = createOperativesClient({ auth });
|
|
85
|
+
* const list = await ops.list({ projectId: 'proj-1' });
|
|
86
|
+
* await ops.files.add('op-01', { paths: ['/docs/notes'] });
|
|
87
|
+
* await ops.skills.add('op-01', { refIds: ['web-search'] });
|
|
88
|
+
* await ops.tools.add('op-01', { selectors: ['github/search_repos'] });
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
export const createOperativesClient = (params) => {
|
|
92
|
+
const baseUrl = (params.url ?? resolveDiskdGatewayUrl('platform/operatives')).replace(/\/+$/, '');
|
|
93
|
+
const request = async (method, path, opts = {}) => {
|
|
94
|
+
const authHeaders = await resolveAuthHeaders(params.auth);
|
|
95
|
+
return httpRequest({
|
|
96
|
+
method,
|
|
97
|
+
url: `${baseUrl}${path}`,
|
|
98
|
+
authHeaders,
|
|
99
|
+
body: opts.body,
|
|
100
|
+
}, 'Operatives');
|
|
101
|
+
};
|
|
102
|
+
const encId = (id) => encodeURIComponent(id);
|
|
103
|
+
return {
|
|
104
|
+
list: async (listParams) => {
|
|
105
|
+
const query = buildQuery([['projectId', listParams.projectId]]);
|
|
106
|
+
const items = await request('GET', `/api/operatives${query}`);
|
|
107
|
+
return items.map(decodeOperative);
|
|
108
|
+
},
|
|
109
|
+
listWorkspace: async () => {
|
|
110
|
+
const response = await request('GET', '/api/workspace-operatives');
|
|
111
|
+
return response.items.map(decodeOperative);
|
|
112
|
+
},
|
|
113
|
+
get: async (operativeId) => {
|
|
114
|
+
const wire = await request('GET', `/api/operatives/${encId(operativeId)}`);
|
|
115
|
+
return decodeOperative(wire);
|
|
116
|
+
},
|
|
117
|
+
getBySlug: async (slugParams) => {
|
|
118
|
+
const query = buildQuery([
|
|
119
|
+
['projectId', slugParams.projectId],
|
|
120
|
+
['slug', slugParams.slug],
|
|
121
|
+
]);
|
|
122
|
+
const wire = await request('GET', `/api/operatives/by-slug${query}`);
|
|
123
|
+
return decodeOperative(wire);
|
|
124
|
+
},
|
|
125
|
+
create: async (createParams) => {
|
|
126
|
+
const wire = await request('POST', '/api/operatives', {
|
|
127
|
+
body: encodeParams({ ...createParams }),
|
|
128
|
+
});
|
|
129
|
+
return decodeOperative(wire);
|
|
130
|
+
},
|
|
131
|
+
update: async (operativeId, updateParams) => {
|
|
132
|
+
const wire = await request('PATCH', `/api/operatives/${encId(operativeId)}`, {
|
|
133
|
+
body: encodeParams({ ...updateParams }),
|
|
134
|
+
});
|
|
135
|
+
return decodeOperative(wire);
|
|
136
|
+
},
|
|
137
|
+
delete: async (operativeId) => {
|
|
138
|
+
await request('DELETE', `/api/operatives/${encId(operativeId)}`);
|
|
139
|
+
},
|
|
140
|
+
files: {
|
|
141
|
+
list: async (operativeId) => {
|
|
142
|
+
const items = await request('GET', `/api/operatives/${encId(operativeId)}/intel`);
|
|
143
|
+
return items.map(decodeFile);
|
|
144
|
+
},
|
|
145
|
+
add: async (operativeId, addParams) => {
|
|
146
|
+
const results = [];
|
|
147
|
+
for (const path of addParams.paths) {
|
|
148
|
+
const wire = await request('POST', `/api/operatives/${encId(operativeId)}/intel`, {
|
|
149
|
+
body: { sourceId: path },
|
|
150
|
+
});
|
|
151
|
+
results.push(decodeFile(wire));
|
|
152
|
+
}
|
|
153
|
+
return results;
|
|
154
|
+
},
|
|
155
|
+
remove: async (operativeId, linkId) => {
|
|
156
|
+
await request('DELETE', `/api/operatives/${encId(operativeId)}/intel/${encId(linkId)}`);
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
skills: {
|
|
160
|
+
list: async (operativeId) => {
|
|
161
|
+
const result = await request('GET', `/api/operatives/${encId(operativeId)}/equipment`);
|
|
162
|
+
return result.items.filter((e) => e.equipmentType === 'skill').map(decodeSkill);
|
|
163
|
+
},
|
|
164
|
+
add: async (operativeId, addParams) => {
|
|
165
|
+
const results = [];
|
|
166
|
+
for (const refId of addParams.refIds) {
|
|
167
|
+
const wire = await request('POST', `/api/operatives/${encId(operativeId)}/equipment`, {
|
|
168
|
+
body: { equipmentType: 'skill', refId },
|
|
169
|
+
});
|
|
170
|
+
results.push(decodeSkill(wire));
|
|
171
|
+
}
|
|
172
|
+
return results;
|
|
173
|
+
},
|
|
174
|
+
remove: async (operativeId, linkId) => {
|
|
175
|
+
await request('DELETE', `/api/operatives/${encId(operativeId)}/equipment/${encId(linkId)}`);
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
tools: {
|
|
179
|
+
list: async (operativeId) => {
|
|
180
|
+
const result = await request('GET', `/api/operatives/${encId(operativeId)}/equipment`);
|
|
181
|
+
return result.items.filter((e) => e.equipmentType === 'mcp_tool').map(decodeTool);
|
|
182
|
+
},
|
|
183
|
+
add: async (operativeId, addParams) => {
|
|
184
|
+
const results = [];
|
|
185
|
+
for (const selector of addParams.selectors) {
|
|
186
|
+
const wire = await request('POST', `/api/operatives/${encId(operativeId)}/equipment`, {
|
|
187
|
+
body: { equipmentType: 'mcp_tool', selector },
|
|
188
|
+
});
|
|
189
|
+
results.push(decodeTool(wire));
|
|
190
|
+
}
|
|
191
|
+
return results;
|
|
192
|
+
},
|
|
193
|
+
remove: async (operativeId, linkId) => {
|
|
194
|
+
await request('DELETE', `/api/operatives/${encId(operativeId)}/equipment/${encId(linkId)}`);
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
};
|
|
199
|
+
//# sourceMappingURL=operatives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operatives.js","sourceRoot":"","sources":["../../src/operatives/operatives.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
export type OperativeEngine = 'quick' | 'deep';
|
|
2
|
+
export type OperativeFileAccess = 'all' | 'selected';
|
|
3
|
+
export type OperativeStatus = 'active' | 'standby';
|
|
4
|
+
export type OperativeTrustLevel = 0 | 1 | 2 | 3;
|
|
5
|
+
export type OperativeScope = 'project' | 'workspace';
|
|
6
|
+
type OperativeBase = {
|
|
7
|
+
readonly id: string;
|
|
8
|
+
readonly workspaceId: string;
|
|
9
|
+
readonly name: string;
|
|
10
|
+
readonly slug: string;
|
|
11
|
+
readonly avatarUrl?: string;
|
|
12
|
+
readonly engineProvider?: string;
|
|
13
|
+
readonly engineModel?: string;
|
|
14
|
+
readonly engine: OperativeEngine;
|
|
15
|
+
readonly orders: string;
|
|
16
|
+
readonly ordersUpdatedAt?: string;
|
|
17
|
+
readonly fileAccess: OperativeFileAccess;
|
|
18
|
+
readonly trustLevel: OperativeTrustLevel;
|
|
19
|
+
readonly isPrimary: boolean;
|
|
20
|
+
readonly status: OperativeStatus;
|
|
21
|
+
readonly sealGradient?: readonly [string, string];
|
|
22
|
+
readonly createdBy?: string;
|
|
23
|
+
readonly createdAt: string;
|
|
24
|
+
readonly updatedAt: string;
|
|
25
|
+
};
|
|
26
|
+
export type ProjectScopedOperative = OperativeBase & {
|
|
27
|
+
readonly scope: 'project';
|
|
28
|
+
readonly projectId: string;
|
|
29
|
+
};
|
|
30
|
+
export type WorkspaceScopedOperative = OperativeBase & {
|
|
31
|
+
readonly scope: 'workspace';
|
|
32
|
+
};
|
|
33
|
+
export type Operative = ProjectScopedOperative | WorkspaceScopedOperative;
|
|
34
|
+
export declare const isProjectScoped: (op: Operative) => op is ProjectScopedOperative;
|
|
35
|
+
export declare const isWorkspaceScoped: (op: Operative) => op is WorkspaceScopedOperative;
|
|
36
|
+
export type OperativeFile = {
|
|
37
|
+
readonly id: string;
|
|
38
|
+
readonly operativeId: string;
|
|
39
|
+
/** Drive path relative to the operative's project chroot. */
|
|
40
|
+
readonly path: string;
|
|
41
|
+
readonly createdAt: string;
|
|
42
|
+
};
|
|
43
|
+
export type OperativeSkill = {
|
|
44
|
+
readonly id: string;
|
|
45
|
+
readonly operativeId: string;
|
|
46
|
+
readonly refId: string;
|
|
47
|
+
readonly createdAt: string;
|
|
48
|
+
};
|
|
49
|
+
export type OperativeTool = {
|
|
50
|
+
readonly id: string;
|
|
51
|
+
readonly operativeId: string;
|
|
52
|
+
readonly selector: string;
|
|
53
|
+
readonly display?: {
|
|
54
|
+
readonly serverName: string;
|
|
55
|
+
readonly toolName: string;
|
|
56
|
+
};
|
|
57
|
+
readonly resolutionStatus?: 'valid' | 'disabled_globally' | 'unknown';
|
|
58
|
+
readonly createdAt: string;
|
|
59
|
+
};
|
|
60
|
+
export type OperativeListParams = {
|
|
61
|
+
readonly projectId: string;
|
|
62
|
+
};
|
|
63
|
+
export type OperativeGetBySlugParams = {
|
|
64
|
+
readonly projectId: string;
|
|
65
|
+
readonly slug: string;
|
|
66
|
+
};
|
|
67
|
+
export type OperativeCreateParams = {
|
|
68
|
+
readonly projectId: string;
|
|
69
|
+
readonly name: string;
|
|
70
|
+
readonly slug?: string;
|
|
71
|
+
readonly orders?: string;
|
|
72
|
+
readonly engineProvider?: string;
|
|
73
|
+
readonly engineModel?: string;
|
|
74
|
+
readonly engine?: OperativeEngine;
|
|
75
|
+
};
|
|
76
|
+
export type OperativeUpdateParams = {
|
|
77
|
+
readonly name?: string;
|
|
78
|
+
readonly slug?: string;
|
|
79
|
+
readonly avatarUrl?: string;
|
|
80
|
+
readonly engineProvider?: string;
|
|
81
|
+
readonly engineModel?: string;
|
|
82
|
+
readonly engine?: OperativeEngine;
|
|
83
|
+
readonly orders?: string;
|
|
84
|
+
readonly ordersUpdatedAt?: string;
|
|
85
|
+
readonly fileAccess?: OperativeFileAccess;
|
|
86
|
+
readonly trustLevel?: OperativeTrustLevel;
|
|
87
|
+
readonly status?: OperativeStatus;
|
|
88
|
+
readonly sealGradient?: readonly [string, string];
|
|
89
|
+
};
|
|
90
|
+
export type OperativeAddFilesParams = {
|
|
91
|
+
/** Drive paths relative to the operative's project chroot. */
|
|
92
|
+
readonly paths: readonly string[];
|
|
93
|
+
};
|
|
94
|
+
export type OperativeAddSkillsParams = {
|
|
95
|
+
readonly refIds: readonly string[];
|
|
96
|
+
};
|
|
97
|
+
export type OperativeAddToolsParams = {
|
|
98
|
+
readonly selectors: readonly string[];
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Operatives REST client with files, skills, and tools sub-namespaces.
|
|
102
|
+
*
|
|
103
|
+
* Obtain via `diskd.platform.operatives({ auth })`.
|
|
104
|
+
* Maps to the app-service `/api/operatives` endpoints.
|
|
105
|
+
*/
|
|
106
|
+
export type OperativesClient = {
|
|
107
|
+
/** GET /api/operatives?projectId=... -- list operatives in a project. */
|
|
108
|
+
readonly list: (params: OperativeListParams) => Promise<readonly Operative[]>;
|
|
109
|
+
/** GET /api/workspace-operatives -- list workspace-scoped operatives. */
|
|
110
|
+
readonly listWorkspace: () => Promise<readonly Operative[]>;
|
|
111
|
+
/** GET /api/operatives/:operativeId -- get a single operative by id. */
|
|
112
|
+
readonly get: (operativeId: string) => Promise<Operative>;
|
|
113
|
+
/** GET /api/operatives/by-slug?projectId=...&slug=... -- get by slug within a project. */
|
|
114
|
+
readonly getBySlug: (params: OperativeGetBySlugParams) => Promise<Operative>;
|
|
115
|
+
/** POST /api/operatives -- create a new operative. */
|
|
116
|
+
readonly create: (params: OperativeCreateParams) => Promise<Operative>;
|
|
117
|
+
/** PATCH /api/operatives/:operativeId -- update an existing operative. */
|
|
118
|
+
readonly update: (operativeId: string, params: OperativeUpdateParams) => Promise<Operative>;
|
|
119
|
+
/** DELETE /api/operatives/:operativeId -- delete an operative. */
|
|
120
|
+
readonly delete: (operativeId: string) => Promise<void>;
|
|
121
|
+
/** Drive files attached to the operative (knowledge sources). */
|
|
122
|
+
readonly files: {
|
|
123
|
+
readonly list: (operativeId: string) => Promise<readonly OperativeFile[]>;
|
|
124
|
+
readonly add: (operativeId: string, params: OperativeAddFilesParams) => Promise<readonly OperativeFile[]>;
|
|
125
|
+
readonly remove: (operativeId: string, linkId: string) => Promise<void>;
|
|
126
|
+
};
|
|
127
|
+
/** Skills attached to the operative. */
|
|
128
|
+
readonly skills: {
|
|
129
|
+
readonly list: (operativeId: string) => Promise<readonly OperativeSkill[]>;
|
|
130
|
+
readonly add: (operativeId: string, params: OperativeAddSkillsParams) => Promise<readonly OperativeSkill[]>;
|
|
131
|
+
readonly remove: (operativeId: string, linkId: string) => Promise<void>;
|
|
132
|
+
};
|
|
133
|
+
/** MCP tools attached to the operative. */
|
|
134
|
+
readonly tools: {
|
|
135
|
+
readonly list: (operativeId: string) => Promise<readonly OperativeTool[]>;
|
|
136
|
+
readonly add: (operativeId: string, params: OperativeAddToolsParams) => Promise<readonly OperativeTool[]>;
|
|
137
|
+
readonly remove: (operativeId: string, linkId: string) => Promise<void>;
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
export {};
|
|
141
|
+
//# sourceMappingURL=operativesTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operativesTypes.d.ts","sourceRoot":"","sources":["../../src/operatives/operativesTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Operative domain types.
|
|
2
|
+
// Wire mapping (intelAccess -> fileAccess, sourceId -> path, equipmentType hidden)
|
|
3
|
+
// is handled in the client factory.
|
|
4
|
+
export const isProjectScoped = (op) => op.scope === 'project';
|
|
5
|
+
export const isWorkspaceScoped = (op) => op.scope === 'workspace';
|
|
6
|
+
//# sourceMappingURL=operativesTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operativesTypes.js","sourceRoot":"","sources":["../../src/operatives/operativesTypes.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,mFAAmF;AACnF,oCAAoC;AA+CpC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAa,EAAgC,EAAE,CAC7E,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;AAEzB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAa,EAAkC,EAAE,CACjF,EAAE,CAAC,KAAK,KAAK,WAAW,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP client for Platform Events.
|
|
3
|
+
*
|
|
4
|
+
* Publishes domain events via POST /publish to the app-service events endpoint,
|
|
5
|
+
* which constructs an envelope and publishes to NATS JetStream directly.
|
|
6
|
+
*/
|
|
7
|
+
import type { AuthModule } from '../auth/types.js';
|
|
8
|
+
import type { PlatformEventsClient } from './platformEventsTypes.js';
|
|
9
|
+
export type CreatePlatformEventsClientParams = {
|
|
10
|
+
readonly auth: AuthModule;
|
|
11
|
+
readonly url?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const createPlatformEventsClient: (params: CreatePlatformEventsClientParams) => PlatformEventsClient;
|
|
14
|
+
//# sourceMappingURL=platformEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformEvents.d.ts","sourceRoot":"","sources":["../../src/platformEvents/platformEvents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EACV,oBAAoB,EAIrB,MAAM,0BAA0B,CAAC;AAmDlC,MAAM,MAAM,gCAAgC,GAAG;IAC7C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,QAAQ,gCAAgC,KACvC,oBAuCF,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { resolveDiskdGatewayUrl } from '../env/baseUrl.js';
|
|
2
|
+
const isObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Response decoding (pure)
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
const decodePublishResult = (raw) => {
|
|
7
|
+
if (!isObject(raw)) {
|
|
8
|
+
throw new Error('Invalid Platform Events response: expected object');
|
|
9
|
+
}
|
|
10
|
+
const id = raw.id;
|
|
11
|
+
const subject = raw.subject;
|
|
12
|
+
if (typeof id !== 'string' || typeof subject !== 'string') {
|
|
13
|
+
throw new Error('Invalid Platform Events response: missing id or subject');
|
|
14
|
+
}
|
|
15
|
+
return { id, subject };
|
|
16
|
+
};
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Auth header resolution
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
const resolveAuthHeaders = async (auth) => {
|
|
21
|
+
if (auth.getRequestHeaders) {
|
|
22
|
+
return auth.getRequestHeaders();
|
|
23
|
+
}
|
|
24
|
+
const token = await auth.getAccessToken();
|
|
25
|
+
return { Authorization: `Bearer ${token}` };
|
|
26
|
+
};
|
|
27
|
+
const resolveWorkspaceId = async (auth) => {
|
|
28
|
+
const workspaceId = await auth.getWorkspaceId();
|
|
29
|
+
if (workspaceId.length > 0) {
|
|
30
|
+
return workspaceId;
|
|
31
|
+
}
|
|
32
|
+
throw new Error('Platform Events: AuthModule must include a workspaceId');
|
|
33
|
+
};
|
|
34
|
+
export const createPlatformEventsClient = (params) => {
|
|
35
|
+
const baseUrl = params.url ?? resolveDiskdGatewayUrl('platform/events');
|
|
36
|
+
const publish = async (eventParams) => {
|
|
37
|
+
const authHeaders = await resolveAuthHeaders(params.auth);
|
|
38
|
+
const workspaceId = await resolveWorkspaceId(params.auth);
|
|
39
|
+
const response = await fetch(`${baseUrl}/publish`, {
|
|
40
|
+
method: 'POST',
|
|
41
|
+
headers: {
|
|
42
|
+
...authHeaders,
|
|
43
|
+
'Content-Type': 'application/json',
|
|
44
|
+
'X-Workspace-Id': workspaceId,
|
|
45
|
+
},
|
|
46
|
+
body: JSON.stringify({
|
|
47
|
+
subject: eventParams.subject,
|
|
48
|
+
data: eventParams.data,
|
|
49
|
+
}),
|
|
50
|
+
});
|
|
51
|
+
if (!response.ok) {
|
|
52
|
+
let errorMessage = `Platform Events: HTTP ${response.status}`;
|
|
53
|
+
try {
|
|
54
|
+
const errorBody = (await response.json());
|
|
55
|
+
if (isObject(errorBody)) {
|
|
56
|
+
const err = errorBody;
|
|
57
|
+
errorMessage = `Platform Events: ${err.error}`;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// Response body not JSON -- use status-only message.
|
|
62
|
+
}
|
|
63
|
+
throw new Error(errorMessage);
|
|
64
|
+
}
|
|
65
|
+
const body = await response.json();
|
|
66
|
+
return decodePublishResult(body);
|
|
67
|
+
};
|
|
68
|
+
return { publish };
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=platformEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformEvents.js","sourceRoot":"","sources":["../../src/platformEvents/platformEvents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the Platform Events client.
|
|
3
|
+
*
|
|
4
|
+
* Events are published to the app-service events endpoint at POST /publish
|
|
5
|
+
* and forwarded to the NATS JetStream stream PLATFORM_EVENTS.
|
|
6
|
+
*/
|
|
7
|
+
/** Parameters for publishing a domain event via the app-service events endpoint. */
|
|
8
|
+
export type PublishEventParams = {
|
|
9
|
+
/** Event type (e.g., "email.received"). Must be in the bridge allowlist. */
|
|
10
|
+
readonly subject: string;
|
|
11
|
+
/** Arbitrary event payload (JSON-serializable). */
|
|
12
|
+
readonly data: Readonly<Record<string, unknown>>;
|
|
13
|
+
};
|
|
14
|
+
/** Result returned after a successful publish (HTTP 202). */
|
|
15
|
+
export type PublishEventResult = {
|
|
16
|
+
/** ULID assigned to the event by the bridge. */
|
|
17
|
+
readonly id: string;
|
|
18
|
+
/** Full NATS subject (e.g., "platform.ws_01ABC.email.received"). */
|
|
19
|
+
readonly subject: string;
|
|
20
|
+
};
|
|
21
|
+
/** Error shape returned by the NATS Bridge on failure (4xx/5xx). */
|
|
22
|
+
export type PublishEventError = {
|
|
23
|
+
readonly error: string;
|
|
24
|
+
readonly allowed?: readonly string[];
|
|
25
|
+
};
|
|
26
|
+
/** Platform Events client interface. */
|
|
27
|
+
export type PlatformEventsClient = {
|
|
28
|
+
/** Publish a domain event to the NATS event bus. */
|
|
29
|
+
readonly publish: (params: PublishEventParams) => Promise<PublishEventResult>;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=platformEventsTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformEventsTypes.d.ts","sourceRoot":"","sources":["../../src/platformEvents/platformEventsTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oFAAoF;AACpF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAClD,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gDAAgD;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,oEAAoE;AACpE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,CAAC;AAEF,wCAAwC;AACxC,MAAM,MAAM,oBAAoB,GAAG;IACjC,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC/E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformEventsTypes.js","sourceRoot":"","sources":["../../src/platformEvents/platformEventsTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AuthModule } from '../auth/types.js';
|
|
2
|
+
import type { ProjectsClient } from './projectsTypes.js';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a Projects REST client bound to a given auth module.
|
|
5
|
+
*
|
|
6
|
+
* The URL defaults to the centralized `APIS_BASE_URL` gateway with the
|
|
7
|
+
* `/v1/platform/projects` path prefix.
|
|
8
|
+
*
|
|
9
|
+
* Example:
|
|
10
|
+
* ```ts
|
|
11
|
+
* const projects = createProjectsClient({ auth });
|
|
12
|
+
* const all = await projects.list();
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare const createProjectsClient: (params: {
|
|
16
|
+
readonly auth: AuthModule;
|
|
17
|
+
readonly url?: string;
|
|
18
|
+
}) => ProjectsClient;
|
|
19
|
+
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/projects/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,KAAK,EAIV,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAM5B;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,GAAI,QAAQ;IAC3C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB,KAAG,cA+CH,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { resolveDiskdGatewayUrl } from '../env/baseUrl.js';
|
|
2
|
+
import { httpRequest, resolveAuthHeaders } from '../sdk/http.js';
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Client factory
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
/**
|
|
7
|
+
* Creates a Projects REST client bound to a given auth module.
|
|
8
|
+
*
|
|
9
|
+
* The URL defaults to the centralized `APIS_BASE_URL` gateway with the
|
|
10
|
+
* `/v1/platform/projects` path prefix.
|
|
11
|
+
*
|
|
12
|
+
* Example:
|
|
13
|
+
* ```ts
|
|
14
|
+
* const projects = createProjectsClient({ auth });
|
|
15
|
+
* const all = await projects.list();
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export const createProjectsClient = (params) => {
|
|
19
|
+
const baseUrl = (params.url ?? resolveDiskdGatewayUrl('platform/projects')).replace(/\/+$/, '');
|
|
20
|
+
const request = async (method, path, opts = {}) => {
|
|
21
|
+
const authHeaders = await resolveAuthHeaders(params.auth);
|
|
22
|
+
return httpRequest({
|
|
23
|
+
method,
|
|
24
|
+
url: `${baseUrl}${path}`,
|
|
25
|
+
authHeaders,
|
|
26
|
+
body: opts.body,
|
|
27
|
+
}, 'Projects');
|
|
28
|
+
};
|
|
29
|
+
const encId = (id) => encodeURIComponent(id);
|
|
30
|
+
return {
|
|
31
|
+
list: async () => {
|
|
32
|
+
return request('GET', '/api/projects');
|
|
33
|
+
},
|
|
34
|
+
get: async (projectId) => {
|
|
35
|
+
return request('GET', `/api/projects/${encId(projectId)}`);
|
|
36
|
+
},
|
|
37
|
+
create: async (createParams) => {
|
|
38
|
+
return request('POST', '/api/projects', {
|
|
39
|
+
body: createParams,
|
|
40
|
+
});
|
|
41
|
+
},
|
|
42
|
+
update: async (projectId, updateParams) => {
|
|
43
|
+
return request('PUT', `/api/projects/${encId(projectId)}`, {
|
|
44
|
+
body: updateParams,
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
delete: async (projectId) => {
|
|
48
|
+
await request('DELETE', `/api/projects/${encId(projectId)}`);
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/projects/projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAmB,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AASlF,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAGpC,EAAkB,EAAE;IACnB,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,sBAAsB,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEhG,MAAM,OAAO,GAAG,KAAK,EACnB,MAAkB,EAClB,IAAY,EACZ,OAAoC,EAAE,EAC1B,EAAE;QACd,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1D,OAAO,WAAW,CAChB;YACE,MAAM;YACN,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,EAAE;YACxB,WAAW;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,EACD,UAAU,CACX,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAE7D,OAAO;QACL,IAAI,EAAE,KAAK,IAAiC,EAAE;YAC5C,OAAO,OAAO,CAAqB,KAAK,EAAE,eAAe,CAAC,CAAC;QAC7D,CAAC;QAED,GAAG,EAAE,KAAK,EAAE,SAAiB,EAA4B,EAAE;YACzD,OAAO,OAAO,CAAkB,KAAK,EAAE,iBAAiB,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,YAAiC,EAAoB,EAAE;YACpE,OAAO,OAAO,CAAU,MAAM,EAAE,eAAe,EAAE;gBAC/C,IAAI,EAAE,YAAY;aACnB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,SAAiB,EAAE,YAAiC,EAAoB,EAAE;YACvF,OAAO,OAAO,CAAU,KAAK,EAAE,iBAAiB,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE;gBAClE,IAAI,EAAE,YAAY;aACnB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,SAAiB,EAAiB,EAAE;YACjD,MAAM,OAAO,CAAU,QAAQ,EAAE,iBAAiB,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export type Project = {
|
|
2
|
+
readonly id: string;
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly description?: string;
|
|
5
|
+
readonly icon?: string;
|
|
6
|
+
readonly iconColor?: string;
|
|
7
|
+
readonly updatedAt: string;
|
|
8
|
+
};
|
|
9
|
+
export type ProjectDetailed = {
|
|
10
|
+
readonly id: string;
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly description?: string;
|
|
13
|
+
readonly icon?: string;
|
|
14
|
+
readonly iconColor?: string;
|
|
15
|
+
readonly updatedAt: string;
|
|
16
|
+
};
|
|
17
|
+
export type ProjectCreateParams = {
|
|
18
|
+
readonly name: string;
|
|
19
|
+
readonly description?: string;
|
|
20
|
+
readonly icon?: string;
|
|
21
|
+
readonly iconColor?: string;
|
|
22
|
+
};
|
|
23
|
+
export type ProjectUpdateParams = {
|
|
24
|
+
readonly name?: string;
|
|
25
|
+
readonly description?: string;
|
|
26
|
+
readonly icon?: string;
|
|
27
|
+
readonly iconColor?: string;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Projects REST client.
|
|
31
|
+
*
|
|
32
|
+
* Obtain via `diskd.platform.projects({ auth })`.
|
|
33
|
+
* Maps to the app-service `/api/projects` endpoints.
|
|
34
|
+
*/
|
|
35
|
+
export type ProjectsClient = {
|
|
36
|
+
/** GET /api/projects -- list all projects. */
|
|
37
|
+
readonly list: () => Promise<readonly Project[]>;
|
|
38
|
+
/** GET /api/projects/:projectId -- get a single project by id. */
|
|
39
|
+
readonly get: (projectId: string) => Promise<ProjectDetailed>;
|
|
40
|
+
/** POST /api/projects -- create a new project. */
|
|
41
|
+
readonly create: (params: ProjectCreateParams) => Promise<Project>;
|
|
42
|
+
/** PUT /api/projects/:projectId -- update an existing project. */
|
|
43
|
+
readonly update: (projectId: string, params: ProjectUpdateParams) => Promise<Project>;
|
|
44
|
+
/** DELETE /api/projects/:projectId -- delete a project. */
|
|
45
|
+
readonly delete: (projectId: string) => Promise<void>;
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=projectsTypes.d.ts.map
|