Skip to content

Commit 0ed8d66

Browse files
feat: workspace system prompt CRUD (#147)
1 parent 81a1846 commit 0ed8d66

14 files changed

+495
-63
lines changed

src/api/generated/@tanstack/react-query.gen.ts

+71
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ import {
1616
v1DeleteWorkspace,
1717
v1GetWorkspaceAlerts,
1818
v1GetWorkspaceMessages,
19+
v1GetWorkspaceSystemPrompt,
20+
v1SetWorkspaceSystemPrompt,
21+
v1DeleteWorkspaceSystemPrompt,
1922
} from "../sdk.gen";
2023
import type {
2124
V1CreateWorkspaceData,
@@ -29,6 +32,13 @@ import type {
2932
V1DeleteWorkspaceResponse,
3033
V1GetWorkspaceAlertsData,
3134
V1GetWorkspaceMessagesData,
35+
V1GetWorkspaceSystemPromptData,
36+
V1SetWorkspaceSystemPromptData,
37+
V1SetWorkspaceSystemPromptError,
38+
V1SetWorkspaceSystemPromptResponse,
39+
V1DeleteWorkspaceSystemPromptData,
40+
V1DeleteWorkspaceSystemPromptError,
41+
V1DeleteWorkspaceSystemPromptResponse,
3242
} from "../types.gen";
3343

3444
type QueryKey<TOptions extends OptionsLegacyParser> = [
@@ -343,3 +353,64 @@ export const v1GetWorkspaceMessagesOptions = (
343353
queryKey: v1GetWorkspaceMessagesQueryKey(options),
344354
});
345355
};
356+
357+
export const v1GetWorkspaceSystemPromptQueryKey = (
358+
options: OptionsLegacyParser<V1GetWorkspaceSystemPromptData>,
359+
) => [createQueryKey("v1GetWorkspaceSystemPrompt", options)];
360+
361+
export const v1GetWorkspaceSystemPromptOptions = (
362+
options: OptionsLegacyParser<V1GetWorkspaceSystemPromptData>,
363+
) => {
364+
return queryOptions({
365+
queryFn: async ({ queryKey, signal }) => {
366+
const { data } = await v1GetWorkspaceSystemPrompt({
367+
...options,
368+
...queryKey[0],
369+
signal,
370+
throwOnError: true,
371+
});
372+
return data;
373+
},
374+
queryKey: v1GetWorkspaceSystemPromptQueryKey(options),
375+
});
376+
};
377+
378+
export const v1SetWorkspaceSystemPromptMutation = (
379+
options?: Partial<OptionsLegacyParser<V1SetWorkspaceSystemPromptData>>,
380+
) => {
381+
const mutationOptions: UseMutationOptions<
382+
V1SetWorkspaceSystemPromptResponse,
383+
V1SetWorkspaceSystemPromptError,
384+
OptionsLegacyParser<V1SetWorkspaceSystemPromptData>
385+
> = {
386+
mutationFn: async (localOptions) => {
387+
const { data } = await v1SetWorkspaceSystemPrompt({
388+
...options,
389+
...localOptions,
390+
throwOnError: true,
391+
});
392+
return data;
393+
},
394+
};
395+
return mutationOptions;
396+
};
397+
398+
export const v1DeleteWorkspaceSystemPromptMutation = (
399+
options?: Partial<OptionsLegacyParser<V1DeleteWorkspaceSystemPromptData>>,
400+
) => {
401+
const mutationOptions: UseMutationOptions<
402+
V1DeleteWorkspaceSystemPromptResponse,
403+
V1DeleteWorkspaceSystemPromptError,
404+
OptionsLegacyParser<V1DeleteWorkspaceSystemPromptData>
405+
> = {
406+
mutationFn: async (localOptions) => {
407+
const { data } = await v1DeleteWorkspaceSystemPrompt({
408+
...options,
409+
...localOptions,
410+
throwOnError: true,
411+
});
412+
return data;
413+
},
414+
};
415+
return mutationOptions;
416+
};

src/api/generated/sdk.gen.ts

+64
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,15 @@ import type {
3535
V1GetWorkspaceMessagesData,
3636
V1GetWorkspaceMessagesError,
3737
V1GetWorkspaceMessagesResponse,
38+
V1GetWorkspaceSystemPromptData,
39+
V1GetWorkspaceSystemPromptError,
40+
V1GetWorkspaceSystemPromptResponse,
41+
V1SetWorkspaceSystemPromptData,
42+
V1SetWorkspaceSystemPromptError,
43+
V1SetWorkspaceSystemPromptResponse,
44+
V1DeleteWorkspaceSystemPromptData,
45+
V1DeleteWorkspaceSystemPromptError,
46+
V1DeleteWorkspaceSystemPromptResponse,
3847
} from "./types.gen";
3948

4049
export const client = createClient(createConfig());
@@ -243,3 +252,58 @@ export const v1GetWorkspaceMessages = <ThrowOnError extends boolean = false>(
243252
url: "/api/v1/workspaces/{workspace_name}/messages",
244253
});
245254
};
255+
256+
/**
257+
* Get Workspace System Prompt
258+
* Get the system prompt for a workspace.
259+
*/
260+
export const v1GetWorkspaceSystemPrompt = <
261+
ThrowOnError extends boolean = false,
262+
>(
263+
options: OptionsLegacyParser<V1GetWorkspaceSystemPromptData, ThrowOnError>,
264+
) => {
265+
return (options?.client ?? client).get<
266+
V1GetWorkspaceSystemPromptResponse,
267+
V1GetWorkspaceSystemPromptError,
268+
ThrowOnError
269+
>({
270+
...options,
271+
url: "/api/v1/workspaces/{workspace_name}/system-prompt",
272+
});
273+
};
274+
275+
/**
276+
* Set Workspace System Prompt
277+
*/
278+
export const v1SetWorkspaceSystemPrompt = <
279+
ThrowOnError extends boolean = false,
280+
>(
281+
options: OptionsLegacyParser<V1SetWorkspaceSystemPromptData, ThrowOnError>,
282+
) => {
283+
return (options?.client ?? client).put<
284+
V1SetWorkspaceSystemPromptResponse,
285+
V1SetWorkspaceSystemPromptError,
286+
ThrowOnError
287+
>({
288+
...options,
289+
url: "/api/v1/workspaces/{workspace_name}/system-prompt",
290+
});
291+
};
292+
293+
/**
294+
* Delete Workspace System Prompt
295+
*/
296+
export const v1DeleteWorkspaceSystemPrompt = <
297+
ThrowOnError extends boolean = false,
298+
>(
299+
options: OptionsLegacyParser<V1DeleteWorkspaceSystemPromptData, ThrowOnError>,
300+
) => {
301+
return (options?.client ?? client).delete<
302+
V1DeleteWorkspaceSystemPromptResponse,
303+
V1DeleteWorkspaceSystemPromptError,
304+
ThrowOnError
305+
>({
306+
...options,
307+
url: "/api/v1/workspaces/{workspace_name}/system-prompt",
308+
});
309+
};

src/api/generated/types.gen.ts

+35
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ export type QuestionAnswer = {
7979
answer: ChatMessage | null;
8080
};
8181

82+
export type SystemPrompt = {
83+
prompt: string;
84+
};
85+
8286
export type ValidationError = {
8387
loc: Array<string | number>;
8488
msg: string;
@@ -166,3 +170,34 @@ export type V1GetWorkspaceMessagesData = {
166170
export type V1GetWorkspaceMessagesResponse = Array<Conversation>;
167171

168172
export type V1GetWorkspaceMessagesError = HTTPValidationError;
173+
174+
export type V1GetWorkspaceSystemPromptData = {
175+
path: {
176+
workspace_name: string;
177+
};
178+
};
179+
180+
export type V1GetWorkspaceSystemPromptResponse = SystemPrompt;
181+
182+
export type V1GetWorkspaceSystemPromptError = HTTPValidationError;
183+
184+
export type V1SetWorkspaceSystemPromptData = {
185+
body: SystemPrompt;
186+
path: {
187+
workspace_name: string;
188+
};
189+
};
190+
191+
export type V1SetWorkspaceSystemPromptResponse = void;
192+
193+
export type V1SetWorkspaceSystemPromptError = HTTPValidationError;
194+
195+
export type V1DeleteWorkspaceSystemPromptData = {
196+
path: {
197+
workspace_name: string;
198+
};
199+
};
200+
201+
export type V1DeleteWorkspaceSystemPromptResponse = void;
202+
203+
export type V1DeleteWorkspaceSystemPromptError = HTTPValidationError;

src/api/openapi.json

+124
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,119 @@
373373
}
374374
}
375375
}
376+
},
377+
"/api/v1/workspaces/{workspace_name}/system-prompt": {
378+
"get": {
379+
"tags": ["CodeGate API", "Workspaces"],
380+
"summary": "Get Workspace System Prompt",
381+
"description": "Get the system prompt for a workspace.",
382+
"operationId": "v1_get_workspace_system_prompt",
383+
"parameters": [
384+
{
385+
"name": "workspace_name",
386+
"in": "path",
387+
"required": true,
388+
"schema": {
389+
"type": "string",
390+
"title": "Workspace Name"
391+
}
392+
}
393+
],
394+
"responses": {
395+
"200": {
396+
"description": "Successful Response",
397+
"content": {
398+
"application/json": {
399+
"schema": {
400+
"$ref": "#/components/schemas/SystemPrompt"
401+
}
402+
}
403+
}
404+
},
405+
"422": {
406+
"description": "Validation Error",
407+
"content": {
408+
"application/json": {
409+
"schema": {
410+
"$ref": "#/components/schemas/HTTPValidationError"
411+
}
412+
}
413+
}
414+
}
415+
}
416+
},
417+
"put": {
418+
"tags": ["CodeGate API", "Workspaces"],
419+
"summary": "Set Workspace System Prompt",
420+
"operationId": "v1_set_workspace_system_prompt",
421+
"parameters": [
422+
{
423+
"name": "workspace_name",
424+
"in": "path",
425+
"required": true,
426+
"schema": {
427+
"type": "string",
428+
"title": "Workspace Name"
429+
}
430+
}
431+
],
432+
"requestBody": {
433+
"required": true,
434+
"content": {
435+
"application/json": {
436+
"schema": {
437+
"$ref": "#/components/schemas/SystemPrompt"
438+
}
439+
}
440+
}
441+
},
442+
"responses": {
443+
"204": {
444+
"description": "Successful Response"
445+
},
446+
"422": {
447+
"description": "Validation Error",
448+
"content": {
449+
"application/json": {
450+
"schema": {
451+
"$ref": "#/components/schemas/HTTPValidationError"
452+
}
453+
}
454+
}
455+
}
456+
}
457+
},
458+
"delete": {
459+
"tags": ["CodeGate API", "Workspaces"],
460+
"summary": "Delete Workspace System Prompt",
461+
"operationId": "v1_delete_workspace_system_prompt",
462+
"parameters": [
463+
{
464+
"name": "workspace_name",
465+
"in": "path",
466+
"required": true,
467+
"schema": {
468+
"type": "string",
469+
"title": "Workspace Name"
470+
}
471+
}
472+
],
473+
"responses": {
474+
"204": {
475+
"description": "Successful Response"
476+
},
477+
"422": {
478+
"description": "Validation Error",
479+
"content": {
480+
"application/json": {
481+
"schema": {
482+
"$ref": "#/components/schemas/HTTPValidationError"
483+
}
484+
}
485+
}
486+
}
487+
}
488+
}
376489
}
377490
},
378491
"components": {
@@ -652,6 +765,17 @@
652765
"title": "QuestionAnswer",
653766
"description": "Represents a question and answer pair."
654767
},
768+
"SystemPrompt": {
769+
"properties": {
770+
"prompt": {
771+
"type": "string",
772+
"title": "Prompt"
773+
}
774+
},
775+
"type": "object",
776+
"required": ["prompt"],
777+
"title": "SystemPrompt"
778+
},
655779
"ValidationError": {
656780
"properties": {
657781
"loc": {

0 commit comments

Comments
 (0)