@codeguide/core 0.0.35 → 0.0.37
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/codeguide.ts +6 -0
- package/dist/codeguide.d.ts +3 -1
- package/dist/codeguide.js +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/services/data-management/data-management-service.d.ts +53 -0
- package/dist/services/data-management/data-management-service.js +66 -0
- package/dist/services/data-management/data-management-types.d.ts +149 -0
- package/dist/services/data-management/data-management-types.js +7 -0
- package/dist/services/data-management/index.d.ts +2 -0
- package/dist/services/data-management/index.js +20 -0
- package/dist/services/generation/generation-types.d.ts +29 -1
- package/dist/services/index.d.ts +4 -0
- package/dist/services/index.js +7 -1
- package/dist/services/projects/project-types.d.ts +61 -7
- package/dist/services/prompt-generations/index.d.ts +2 -0
- package/dist/services/prompt-generations/index.js +20 -0
- package/dist/services/prompt-generations/prompt-generations-service.d.ts +47 -0
- package/dist/services/prompt-generations/prompt-generations-service.js +58 -0
- package/dist/services/prompt-generations/prompt-generations-types.d.ts +94 -0
- package/dist/services/prompt-generations/prompt-generations-types.js +2 -0
- package/dist/services/tasks/task-service.d.ts +1 -0
- package/dist/services/tasks/task-service.js +5 -0
- package/dist/services/usage/usage-types.d.ts +1 -0
- package/dist/services/users/user-service.d.ts +9 -1
- package/dist/services/users/user-service.js +10 -0
- package/dist/services/users/user-types.d.ts +14 -0
- package/index.ts +7 -0
- package/package.json +1 -1
- package/services/data-management/data-management-service.ts +74 -0
- package/services/data-management/data-management-types.ts +163 -0
- package/services/data-management/index.ts +2 -0
- package/services/generation/generation-types.ts +31 -1
- package/services/index.ts +4 -0
- package/services/projects/project-types.ts +61 -7
- package/services/prompt-generations/index.ts +2 -0
- package/services/prompt-generations/prompt-generations-service.ts +75 -0
- package/services/prompt-generations/prompt-generations-types.ts +101 -0
- package/services/tasks/task-service.ts +6 -0
- package/services/usage/usage-types.ts +1 -0
- package/services/users/user-service.ts +15 -1
- package/services/users/user-types.ts +16 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persona types for prompt generation
|
|
3
|
+
*/
|
|
4
|
+
export type PersonaType = 'expert' | 'assistant' | 'teacher' | 'analyst' | 'creative';
|
|
5
|
+
/**
|
|
6
|
+
* Output format types for generated prompts
|
|
7
|
+
*/
|
|
8
|
+
export type OutputFormatType = 'markdown' | 'json' | 'xml' | 'plain' | 'code';
|
|
9
|
+
/**
|
|
10
|
+
* Request body for creating a new prompt generation
|
|
11
|
+
*/
|
|
12
|
+
export interface CreatePromptGenerationRequest {
|
|
13
|
+
/** User's description of their AI assistant */
|
|
14
|
+
input: string;
|
|
15
|
+
/** Persona type: expert, assistant, teacher, analyst, creative */
|
|
16
|
+
persona?: PersonaType;
|
|
17
|
+
/** Format: markdown, json, xml, plain, code */
|
|
18
|
+
output_format?: OutputFormatType;
|
|
19
|
+
/** Creativity level (0-2) */
|
|
20
|
+
temperature?: number;
|
|
21
|
+
/** Response length (256-8192) */
|
|
22
|
+
max_tokens?: number;
|
|
23
|
+
/** Include examples in prompt */
|
|
24
|
+
include_examples?: boolean;
|
|
25
|
+
/** Add constraints to prompt */
|
|
26
|
+
include_constraints?: boolean;
|
|
27
|
+
/** Include error handling guidance */
|
|
28
|
+
include_error_handling?: boolean;
|
|
29
|
+
/** Enable chain of thought */
|
|
30
|
+
chain_of_thought?: boolean;
|
|
31
|
+
/** Use JSON output schema */
|
|
32
|
+
structured_output?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Prompt generation data model
|
|
36
|
+
*/
|
|
37
|
+
export interface PromptGeneration {
|
|
38
|
+
/** Unique identifier (UUID v4) */
|
|
39
|
+
id: string;
|
|
40
|
+
/** User ID who owns this generation */
|
|
41
|
+
user_id: string;
|
|
42
|
+
/** User's original input */
|
|
43
|
+
input: string;
|
|
44
|
+
/** Persona type used */
|
|
45
|
+
persona: PersonaType;
|
|
46
|
+
/** Output format */
|
|
47
|
+
output_format: OutputFormatType;
|
|
48
|
+
/** Temperature value */
|
|
49
|
+
temperature: number;
|
|
50
|
+
/** Max tokens setting */
|
|
51
|
+
max_tokens: number;
|
|
52
|
+
/** Include examples flag */
|
|
53
|
+
include_examples: boolean;
|
|
54
|
+
/** Include constraints flag */
|
|
55
|
+
include_constraints: boolean;
|
|
56
|
+
/** Include error handling flag */
|
|
57
|
+
include_error_handling: boolean;
|
|
58
|
+
/** Chain of thought flag */
|
|
59
|
+
chain_of_thought: boolean;
|
|
60
|
+
/** Structured output flag */
|
|
61
|
+
structured_output: boolean;
|
|
62
|
+
/** The generated AI system prompt */
|
|
63
|
+
generated_prompt: string;
|
|
64
|
+
/** Creation timestamp (ISO 8601 UTC) */
|
|
65
|
+
created_at: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Response for creating a prompt generation
|
|
69
|
+
*/
|
|
70
|
+
export interface CreatePromptGenerationResponse {
|
|
71
|
+
/** The created prompt generation */
|
|
72
|
+
data: PromptGeneration;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Response for listing prompt generations
|
|
76
|
+
*/
|
|
77
|
+
export interface ListPromptGenerationsResponse {
|
|
78
|
+
/** Array of prompt generations */
|
|
79
|
+
data: PromptGeneration[];
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Response for getting a single prompt generation
|
|
83
|
+
*/
|
|
84
|
+
export interface GetPromptGenerationResponse {
|
|
85
|
+
/** The requested prompt generation */
|
|
86
|
+
data: PromptGeneration;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Response for deleting a prompt generation
|
|
90
|
+
*/
|
|
91
|
+
export interface DeletePromptGenerationResponse {
|
|
92
|
+
/** The deleted prompt generation */
|
|
93
|
+
data: PromptGeneration;
|
|
94
|
+
}
|
|
@@ -27,6 +27,7 @@ export declare class TaskService extends BaseService {
|
|
|
27
27
|
generateTasks(request: GenerateTasksRequest): Promise<GenerateTasksResponse>;
|
|
28
28
|
generateTasksCustomBackground(request: GenerateTasksCustomBackgroundRequest): Promise<GenerateTasksCustomBackgroundResponse>;
|
|
29
29
|
getTasksByProject(request: GetTasksByProjectRequest): Promise<GetTasksByProjectResponse>;
|
|
30
|
+
getLatestTasksByProject(projectId: string): Promise<GetTasksByProjectResponse>;
|
|
30
31
|
updateTask(taskId: string, request: UpdateTaskRequest): Promise<UpdateTaskResponse>;
|
|
31
32
|
getProjectTasksbyCodespace(codespaceTaskId: string): Promise<ProjectTaskListResponse>;
|
|
32
33
|
generatePrompt(taskId: string, request?: GeneratePromptRequest): Promise<GeneratePromptResponse>;
|
|
@@ -130,6 +130,11 @@ class TaskService extends base_service_1.BaseService {
|
|
|
130
130
|
const url = `/project-tasks/by-project/${request.project_id}${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
|
131
131
|
return this.get(url);
|
|
132
132
|
}
|
|
133
|
+
// Get Latest Tasks by Project (from most recent task group)
|
|
134
|
+
async getLatestTasksByProject(projectId) {
|
|
135
|
+
const url = `/project-tasks/by-project/${projectId}/latest`;
|
|
136
|
+
return this.get(url);
|
|
137
|
+
}
|
|
133
138
|
// Update Task
|
|
134
139
|
async updateTask(taskId, request) {
|
|
135
140
|
return this.put(`/project-tasks/${taskId}`, request);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseService } from '../base/base-service';
|
|
2
|
-
import { GetCurrentClerkUserResponse } from './user-types';
|
|
2
|
+
import { GetCurrentClerkUserResponse, CheckAdminStatusResponse } from './user-types';
|
|
3
3
|
export declare class UserService extends BaseService {
|
|
4
4
|
/**
|
|
5
5
|
* Get the current Clerk user information
|
|
@@ -9,4 +9,12 @@ export declare class UserService extends BaseService {
|
|
|
9
9
|
* @returns Promise resolving to the current Clerk user data
|
|
10
10
|
*/
|
|
11
11
|
getCurrentClerkUser(): Promise<GetCurrentClerkUserResponse>;
|
|
12
|
+
/**
|
|
13
|
+
* Check if the current authenticated user has admin role
|
|
14
|
+
*
|
|
15
|
+
* GET /users/me/admin
|
|
16
|
+
*
|
|
17
|
+
* @returns Promise resolving to admin status data
|
|
18
|
+
*/
|
|
19
|
+
checkAdminStatus(): Promise<CheckAdminStatusResponse>;
|
|
12
20
|
}
|
|
@@ -13,5 +13,15 @@ class UserService extends base_service_1.BaseService {
|
|
|
13
13
|
async getCurrentClerkUser() {
|
|
14
14
|
return this.get('/users/me/clerk');
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Check if the current authenticated user has admin role
|
|
18
|
+
*
|
|
19
|
+
* GET /users/me/admin
|
|
20
|
+
*
|
|
21
|
+
* @returns Promise resolving to admin status data
|
|
22
|
+
*/
|
|
23
|
+
async checkAdminStatus() {
|
|
24
|
+
return this.get('/users/me/admin');
|
|
25
|
+
}
|
|
16
26
|
}
|
|
17
27
|
exports.UserService = UserService;
|
|
@@ -53,3 +53,17 @@ export interface GetCurrentClerkUserResponse {
|
|
|
53
53
|
status: 'success' | 'error';
|
|
54
54
|
data: ClerkUserData;
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Admin status check data
|
|
58
|
+
*/
|
|
59
|
+
export interface AdminStatusData {
|
|
60
|
+
is_admin: boolean;
|
|
61
|
+
user_id: string;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Response for checking if current user is admin
|
|
65
|
+
*/
|
|
66
|
+
export interface CheckAdminStatusResponse {
|
|
67
|
+
status: 'success' | 'error';
|
|
68
|
+
data: AdminStatusData;
|
|
69
|
+
}
|
package/index.ts
CHANGED
|
@@ -57,3 +57,10 @@ export type {
|
|
|
57
57
|
GetStarterKitsRequest,
|
|
58
58
|
GetStarterKitsResponse,
|
|
59
59
|
} from './services/starter-kits/starter-kits-types'
|
|
60
|
+
|
|
61
|
+
// Export data management types for convenience
|
|
62
|
+
export type {
|
|
63
|
+
DataStatsResponse,
|
|
64
|
+
DeleteAllDataRequest,
|
|
65
|
+
DeleteAllDataResponse,
|
|
66
|
+
} from './services/data-management/data-management-types'
|
package/package.json
CHANGED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { BaseService } from '../base/base-service'
|
|
2
|
+
import {
|
|
3
|
+
DataStatsResponse,
|
|
4
|
+
DeleteAllDataRequest,
|
|
5
|
+
DeleteAllDataResponse,
|
|
6
|
+
DataExportResponse,
|
|
7
|
+
} from './data-management-types'
|
|
8
|
+
|
|
9
|
+
export class DataManagementService extends BaseService {
|
|
10
|
+
/**
|
|
11
|
+
* Get comprehensive statistics of all user data
|
|
12
|
+
*
|
|
13
|
+
* Calls GET /data/stats to retrieve aggregate counts of:
|
|
14
|
+
* - Projects
|
|
15
|
+
* - Project documents
|
|
16
|
+
* - Project repositories
|
|
17
|
+
* - Project tasks
|
|
18
|
+
* - Task groups
|
|
19
|
+
* - Chat conversations
|
|
20
|
+
* - Chat messages
|
|
21
|
+
* - Codespace tasks
|
|
22
|
+
*
|
|
23
|
+
* @returns Promise resolving to DataStatsResponse with counts for each entity type
|
|
24
|
+
*/
|
|
25
|
+
async getDataStats(): Promise<DataStatsResponse> {
|
|
26
|
+
return this.get<DataStatsResponse>('/data/stats')
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Export all user data
|
|
31
|
+
*
|
|
32
|
+
* Calls GET /data/export to retrieve complete export of all user data.
|
|
33
|
+
* This includes all projects, documents, repositories, tasks, conversations,
|
|
34
|
+
* messages, and codespace tasks with their full details.
|
|
35
|
+
*
|
|
36
|
+
* Use this for:
|
|
37
|
+
* - Creating backups
|
|
38
|
+
* - Migrating data to another system
|
|
39
|
+
* - Data analysis
|
|
40
|
+
* - Compliance and auditing
|
|
41
|
+
*
|
|
42
|
+
* @returns Promise resolving to DataExportResponse with complete user data
|
|
43
|
+
*/
|
|
44
|
+
async exportData(): Promise<DataExportResponse> {
|
|
45
|
+
return this.get<DataExportResponse>('/data/export')
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Delete all user data with explicit confirmation
|
|
50
|
+
*
|
|
51
|
+
* Calls DELETE /data/all to perform bulk deletion of all user data.
|
|
52
|
+
* This operation requires confirmation to prevent accidental data loss.
|
|
53
|
+
*
|
|
54
|
+
* The deletion will affect:
|
|
55
|
+
* - All projects (including documents and repositories)
|
|
56
|
+
* - All task groups and project tasks
|
|
57
|
+
* - All chat conversations and messages
|
|
58
|
+
* - All codespace tasks
|
|
59
|
+
*
|
|
60
|
+
* @param request - DeleteAllDataRequest with confirm flag set to true
|
|
61
|
+
* @returns Promise resolving to DeleteAllDataResponse with deletion summary
|
|
62
|
+
* @throws Error if confirmation is not true
|
|
63
|
+
*/
|
|
64
|
+
async deleteAllData(request: DeleteAllDataRequest): Promise<DeleteAllDataResponse> {
|
|
65
|
+
// Validate confirmation flag to prevent accidental deletion
|
|
66
|
+
if (!request.confirm) {
|
|
67
|
+
throw new Error(
|
|
68
|
+
'Confirmation required. Set confirm: true to delete all data. This action cannot be undone.'
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return this.delete<DeleteAllDataResponse>('/data/all')
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data Management Service Types
|
|
3
|
+
*
|
|
4
|
+
* Provides interfaces for viewing data statistics and bulk deleting user data
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Response structure for GET /data/stats endpoint
|
|
9
|
+
* Contains aggregate counts of all user data across the platform
|
|
10
|
+
*/
|
|
11
|
+
export interface DataStatsResponse {
|
|
12
|
+
status: string
|
|
13
|
+
data: DataStats
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Aggregate statistics for all user data entities
|
|
18
|
+
*/
|
|
19
|
+
export interface DataStats {
|
|
20
|
+
projects: number
|
|
21
|
+
project_documents: number
|
|
22
|
+
project_repositories: number
|
|
23
|
+
project_tasks: number
|
|
24
|
+
task_groups: number
|
|
25
|
+
chat_conversations: number
|
|
26
|
+
chat_messages: number
|
|
27
|
+
codespace_tasks: number
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Request structure for DELETE /data/all endpoint
|
|
32
|
+
* Requires explicit confirmation to prevent accidental data loss
|
|
33
|
+
*/
|
|
34
|
+
export interface DeleteAllDataRequest {
|
|
35
|
+
confirm: boolean
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Response structure for DELETE /data/all endpoint
|
|
40
|
+
* Provides summary of deleted data counts
|
|
41
|
+
*/
|
|
42
|
+
export interface DeleteAllDataResponse {
|
|
43
|
+
status: string
|
|
44
|
+
message: string
|
|
45
|
+
deleted: DataStats
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Response structure for GET /data/export endpoint
|
|
50
|
+
* Contains complete export of all user data
|
|
51
|
+
*/
|
|
52
|
+
export interface DataExportResponse {
|
|
53
|
+
status: string
|
|
54
|
+
exported_at: string
|
|
55
|
+
user_id: string
|
|
56
|
+
data: ExportedData
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Complete exported data containing all user entities
|
|
61
|
+
*/
|
|
62
|
+
export interface ExportedData {
|
|
63
|
+
projects: ExportedProject[]
|
|
64
|
+
project_documents: ExportedProjectDocument[]
|
|
65
|
+
project_repositories: ExportedProjectRepository[]
|
|
66
|
+
project_tasks: ExportedProjectTask[]
|
|
67
|
+
task_groups: ExportedTaskGroup[]
|
|
68
|
+
chat_conversations: ExportedChatConversation[]
|
|
69
|
+
chat_messages: ExportedChatMessage[]
|
|
70
|
+
codespace_tasks: ExportedCodespaceTask[]
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Exported project entity
|
|
75
|
+
*/
|
|
76
|
+
export interface ExportedProject {
|
|
77
|
+
id: string
|
|
78
|
+
title: string
|
|
79
|
+
description: string
|
|
80
|
+
status: string
|
|
81
|
+
user_id: string
|
|
82
|
+
created_at: string
|
|
83
|
+
updated_at: string
|
|
84
|
+
project_outline?: Record<string, any>
|
|
85
|
+
ai_questionaire?: Record<string, any>
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Exported project document entity
|
|
90
|
+
*/
|
|
91
|
+
export interface ExportedProjectDocument {
|
|
92
|
+
id: string
|
|
93
|
+
project_id: string
|
|
94
|
+
content: string
|
|
95
|
+
custom_document_type: string
|
|
96
|
+
is_current_version: boolean
|
|
97
|
+
created_at: string
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Exported project repository entity
|
|
102
|
+
*/
|
|
103
|
+
export interface ExportedProjectRepository {
|
|
104
|
+
id: string
|
|
105
|
+
project_id: string
|
|
106
|
+
repo_url: string
|
|
107
|
+
created_at: string
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Exported project task entity
|
|
112
|
+
*/
|
|
113
|
+
export interface ExportedProjectTask {
|
|
114
|
+
id: string
|
|
115
|
+
project_id: string
|
|
116
|
+
title: string
|
|
117
|
+
status: string
|
|
118
|
+
priority: string
|
|
119
|
+
created_at: string
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Exported task group entity
|
|
124
|
+
*/
|
|
125
|
+
export interface ExportedTaskGroup {
|
|
126
|
+
id: string
|
|
127
|
+
project_id: string
|
|
128
|
+
name: string
|
|
129
|
+
created_at: string
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Exported chat conversation entity
|
|
134
|
+
*/
|
|
135
|
+
export interface ExportedChatConversation {
|
|
136
|
+
id: string
|
|
137
|
+
title: string
|
|
138
|
+
model: string
|
|
139
|
+
created_at: string
|
|
140
|
+
last_message_at: string
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Exported chat message entity
|
|
145
|
+
*/
|
|
146
|
+
export interface ExportedChatMessage {
|
|
147
|
+
id: string
|
|
148
|
+
conversation_id: string
|
|
149
|
+
role: 'user' | 'assistant'
|
|
150
|
+
content: string
|
|
151
|
+
token_count: number
|
|
152
|
+
created_at: string
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Exported codespace task entity
|
|
157
|
+
*/
|
|
158
|
+
export interface ExportedCodespaceTask {
|
|
159
|
+
id: string
|
|
160
|
+
project_id: string
|
|
161
|
+
status: string
|
|
162
|
+
created_at: string
|
|
163
|
+
}
|
|
@@ -155,9 +155,39 @@ export interface GenerateAnswersResponse {
|
|
|
155
155
|
}>
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
+
export type ProjectMode = 'prd_only' | 'full_application' | 'prototype' | 'mvp'
|
|
159
|
+
|
|
160
|
+
export interface ProjectOutline {
|
|
161
|
+
core_features: Array<{
|
|
162
|
+
id: number
|
|
163
|
+
title: string
|
|
164
|
+
description: string
|
|
165
|
+
icon_key: string
|
|
166
|
+
}>
|
|
167
|
+
app_flow: Array<{
|
|
168
|
+
id: number
|
|
169
|
+
title: string
|
|
170
|
+
description: string
|
|
171
|
+
}>
|
|
172
|
+
tech_stack: Array<{
|
|
173
|
+
id: number
|
|
174
|
+
type: string
|
|
175
|
+
name: string
|
|
176
|
+
icon_key: string
|
|
177
|
+
}>
|
|
178
|
+
document_types: Array<{
|
|
179
|
+
id: number
|
|
180
|
+
name: string
|
|
181
|
+
description: string
|
|
182
|
+
}>
|
|
183
|
+
is_generated: boolean
|
|
184
|
+
project_mode: ProjectMode
|
|
185
|
+
}
|
|
186
|
+
|
|
158
187
|
export interface GenerateProjectOutlineRequest {
|
|
159
188
|
description: string
|
|
160
189
|
project_type: string
|
|
190
|
+
project_mode?: ProjectMode
|
|
161
191
|
title?: string
|
|
162
192
|
selected_tools?: string[]
|
|
163
193
|
answers?: Record<string, any>
|
|
@@ -166,7 +196,7 @@ export interface GenerateProjectOutlineRequest {
|
|
|
166
196
|
}
|
|
167
197
|
|
|
168
198
|
export interface GenerateProjectOutlineResponse {
|
|
169
|
-
|
|
199
|
+
project_outline: ProjectOutline
|
|
170
200
|
project_id: string
|
|
171
201
|
project_created: boolean
|
|
172
202
|
}
|
package/services/index.ts
CHANGED
|
@@ -23,6 +23,8 @@ export { UserService } from './users'
|
|
|
23
23
|
export { StarterKitsService } from './starter-kits'
|
|
24
24
|
export { StreamingService } from './streaming'
|
|
25
25
|
export { ChatService } from './chat'
|
|
26
|
+
export { DataManagementService } from './data-management'
|
|
27
|
+
export { PromptGenerationsService } from './prompt-generations'
|
|
26
28
|
|
|
27
29
|
// Re-export all types for convenience
|
|
28
30
|
export * from './generation'
|
|
@@ -40,3 +42,5 @@ export * from './users'
|
|
|
40
42
|
export * from './starter-kits'
|
|
41
43
|
export * from './streaming'
|
|
42
44
|
export * from './chat'
|
|
45
|
+
export * from './data-management'
|
|
46
|
+
export * from './prompt-generations'
|
|
@@ -32,8 +32,26 @@ export interface Project {
|
|
|
32
32
|
}
|
|
33
33
|
tools_selected?: string[]
|
|
34
34
|
project_outline?: {
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
core_features?: Array<{
|
|
36
|
+
id?: number
|
|
37
|
+
title?: string
|
|
38
|
+
description?: string
|
|
39
|
+
icon_key?: string
|
|
40
|
+
}>
|
|
41
|
+
app_flow?: Array<{
|
|
42
|
+
id?: number
|
|
43
|
+
title?: string
|
|
44
|
+
description?: string
|
|
45
|
+
}>
|
|
46
|
+
tech_stack?: Array<{
|
|
47
|
+
id?: number
|
|
48
|
+
type?: string
|
|
49
|
+
name?: string
|
|
50
|
+
icon_key?: string
|
|
51
|
+
}>
|
|
52
|
+
document_types?: string[]
|
|
53
|
+
is_generated?: boolean
|
|
54
|
+
project_mode?: 'prd_only' | 'full_application' | 'prototype' | 'mvp' | 'task_only'
|
|
37
55
|
}
|
|
38
56
|
codie_tool_id?: string
|
|
39
57
|
existing_project_repo_url?: string | null
|
|
@@ -96,7 +114,7 @@ export interface StarterKitReference {
|
|
|
96
114
|
|
|
97
115
|
export interface CreateProjectRequest {
|
|
98
116
|
title?: string // Optional - will be auto-generated if not provided
|
|
99
|
-
description
|
|
117
|
+
description?: string
|
|
100
118
|
status?: 'prompt' | 'draft' | 'in_progress' | 'completed'
|
|
101
119
|
category_id?: string
|
|
102
120
|
starter_kit_id?: string
|
|
@@ -107,8 +125,26 @@ export interface CreateProjectRequest {
|
|
|
107
125
|
}
|
|
108
126
|
tools_selected?: string[]
|
|
109
127
|
project_outline?: {
|
|
110
|
-
|
|
111
|
-
|
|
128
|
+
core_features?: Array<{
|
|
129
|
+
id?: number
|
|
130
|
+
title?: string
|
|
131
|
+
description?: string
|
|
132
|
+
icon_key?: string
|
|
133
|
+
}>
|
|
134
|
+
app_flow?: Array<{
|
|
135
|
+
id?: number
|
|
136
|
+
title?: string
|
|
137
|
+
description?: string
|
|
138
|
+
}>
|
|
139
|
+
tech_stack?: Array<{
|
|
140
|
+
id?: number
|
|
141
|
+
type?: string
|
|
142
|
+
name?: string
|
|
143
|
+
icon_key?: string
|
|
144
|
+
}>
|
|
145
|
+
document_types?: string[]
|
|
146
|
+
is_generated?: boolean
|
|
147
|
+
project_mode?: 'prd_only' | 'full_application' | 'prototype' | 'mvp' | 'task_only'
|
|
112
148
|
}
|
|
113
149
|
codie_tool_id?: string
|
|
114
150
|
existing_project_repo_url?: string
|
|
@@ -127,8 +163,26 @@ export interface UpdateProjectRequest {
|
|
|
127
163
|
}
|
|
128
164
|
tools_selected?: string[]
|
|
129
165
|
project_outline?: {
|
|
130
|
-
|
|
131
|
-
|
|
166
|
+
core_features?: Array<{
|
|
167
|
+
id?: number
|
|
168
|
+
title?: string
|
|
169
|
+
description?: string
|
|
170
|
+
icon_key?: string
|
|
171
|
+
}>
|
|
172
|
+
app_flow?: Array<{
|
|
173
|
+
id?: number
|
|
174
|
+
title?: string
|
|
175
|
+
description?: string
|
|
176
|
+
}>
|
|
177
|
+
tech_stack?: Array<{
|
|
178
|
+
id?: number
|
|
179
|
+
type?: string
|
|
180
|
+
name?: string
|
|
181
|
+
icon_key?: string
|
|
182
|
+
}>
|
|
183
|
+
document_types?: string[]
|
|
184
|
+
is_generated?: boolean
|
|
185
|
+
project_mode?: 'prd_only' | 'full_application' | 'prototype' | 'mvp' | 'task_only'
|
|
132
186
|
}
|
|
133
187
|
codie_tool_id?: string
|
|
134
188
|
existing_project_repo_url?: string
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { BaseService } from '../base/base-service'
|
|
2
|
+
import {
|
|
3
|
+
CreatePromptGenerationRequest,
|
|
4
|
+
CreatePromptGenerationResponse,
|
|
5
|
+
ListPromptGenerationsResponse,
|
|
6
|
+
GetPromptGenerationResponse,
|
|
7
|
+
DeletePromptGenerationResponse,
|
|
8
|
+
} from './prompt-generations-types'
|
|
9
|
+
|
|
10
|
+
export class PromptGenerationsService extends BaseService {
|
|
11
|
+
/**
|
|
12
|
+
* Create a new AI system prompt generation
|
|
13
|
+
*
|
|
14
|
+
* Generates a new AI system prompt based on user input using GPT-5.1.
|
|
15
|
+
*
|
|
16
|
+
* POST /prompt-generations/
|
|
17
|
+
*
|
|
18
|
+
* @param request - The prompt generation request parameters
|
|
19
|
+
* @returns Promise resolving to the created prompt generation data
|
|
20
|
+
*/
|
|
21
|
+
async createPromptGeneration(
|
|
22
|
+
request: CreatePromptGenerationRequest
|
|
23
|
+
): Promise<CreatePromptGenerationResponse> {
|
|
24
|
+
return this.post<CreatePromptGenerationResponse>('/prompt-generations/', request)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* List all prompt generations for the authenticated user
|
|
29
|
+
*
|
|
30
|
+
* Retrieves all prompt generations that belong to the current user.
|
|
31
|
+
*
|
|
32
|
+
* GET /prompt-generations/
|
|
33
|
+
*
|
|
34
|
+
* @returns Promise resolving to an array of prompt generations
|
|
35
|
+
*/
|
|
36
|
+
async listPromptGenerations(): Promise<ListPromptGenerationsResponse> {
|
|
37
|
+
return this.get<ListPromptGenerationsResponse>('/prompt-generations/')
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Get a specific prompt generation by ID
|
|
42
|
+
*
|
|
43
|
+
* Retrieves detailed information about a single prompt generation.
|
|
44
|
+
*
|
|
45
|
+
* GET /prompt-generations/{generation_id}
|
|
46
|
+
*
|
|
47
|
+
* @param generationId - The UUID of the prompt generation to retrieve
|
|
48
|
+
* @returns Promise resolving to the prompt generation data
|
|
49
|
+
*/
|
|
50
|
+
async getPromptGeneration(
|
|
51
|
+
generationId: string
|
|
52
|
+
): Promise<GetPromptGenerationResponse> {
|
|
53
|
+
return this.get<GetPromptGenerationResponse>(
|
|
54
|
+
`/prompt-generations/${generationId}`
|
|
55
|
+
)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Delete a specific prompt generation by ID
|
|
60
|
+
*
|
|
61
|
+
* Permanently removes a prompt generation from the database.
|
|
62
|
+
*
|
|
63
|
+
* DELETE /prompt-generations/{generation_id}
|
|
64
|
+
*
|
|
65
|
+
* @param generationId - The UUID of the prompt generation to delete
|
|
66
|
+
* @returns Promise resolving to the deleted prompt generation data
|
|
67
|
+
*/
|
|
68
|
+
async deletePromptGeneration(
|
|
69
|
+
generationId: string
|
|
70
|
+
): Promise<DeletePromptGenerationResponse> {
|
|
71
|
+
return this.delete<DeletePromptGenerationResponse>(
|
|
72
|
+
`/prompt-generations/${generationId}`
|
|
73
|
+
)
|
|
74
|
+
}
|
|
75
|
+
}
|