@codeguide/core 0.0.33 → 0.0.36

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.
Files changed (72) hide show
  1. package/__tests__/services/usage/usage-service.test.ts +53 -29
  2. package/codeguide.ts +9 -0
  3. package/dist/codeguide.d.ts +4 -1
  4. package/dist/codeguide.js +3 -0
  5. package/dist/index.d.ts +2 -1
  6. package/dist/services/chat/chat-service.d.ts +44 -0
  7. package/dist/services/chat/chat-service.js +85 -0
  8. package/dist/services/chat/chat-types.d.ts +88 -0
  9. package/dist/services/chat/chat-types.js +5 -0
  10. package/dist/services/chat/index.d.ts +2 -0
  11. package/dist/services/chat/index.js +20 -0
  12. package/dist/services/data-management/data-management-service.d.ts +53 -0
  13. package/dist/services/data-management/data-management-service.js +66 -0
  14. package/dist/services/data-management/data-management-types.d.ts +149 -0
  15. package/dist/services/data-management/data-management-types.js +7 -0
  16. package/dist/services/data-management/index.d.ts +2 -0
  17. package/dist/services/data-management/index.js +20 -0
  18. package/dist/services/generation/generation-service.d.ts +7 -1
  19. package/dist/services/generation/generation-service.js +18 -0
  20. package/dist/services/generation/generation-types.d.ts +123 -0
  21. package/dist/services/index.d.ts +8 -0
  22. package/dist/services/index.js +13 -1
  23. package/dist/services/projects/project-service.d.ts +3 -1
  24. package/dist/services/projects/project-service.js +13 -1
  25. package/dist/services/projects/project-types.d.ts +85 -8
  26. package/dist/services/prompt-generations/index.d.ts +2 -0
  27. package/dist/services/prompt-generations/index.js +20 -0
  28. package/dist/services/prompt-generations/prompt-generations-service.d.ts +47 -0
  29. package/dist/services/prompt-generations/prompt-generations-service.js +58 -0
  30. package/dist/services/prompt-generations/prompt-generations-types.d.ts +94 -0
  31. package/dist/services/prompt-generations/prompt-generations-types.js +2 -0
  32. package/dist/services/streaming/index.d.ts +2 -0
  33. package/dist/services/streaming/index.js +20 -0
  34. package/dist/services/streaming/streaming-service.d.ts +30 -0
  35. package/dist/services/streaming/streaming-service.js +107 -0
  36. package/dist/services/streaming/streaming-types.d.ts +14 -0
  37. package/dist/services/streaming/streaming-types.js +2 -0
  38. package/dist/services/tasks/task-service.d.ts +3 -1
  39. package/dist/services/tasks/task-service.js +8 -0
  40. package/dist/services/tasks/task-types.d.ts +15 -0
  41. package/dist/services/usage/usage-service.d.ts +35 -1
  42. package/dist/services/usage/usage-service.js +68 -0
  43. package/dist/services/usage/usage-types.d.ts +109 -33
  44. package/dist/services/users/user-service.d.ts +9 -1
  45. package/dist/services/users/user-service.js +10 -0
  46. package/dist/services/users/user-types.d.ts +14 -0
  47. package/index.ts +10 -0
  48. package/package.json +1 -1
  49. package/services/chat/chat-service.ts +110 -0
  50. package/services/chat/chat-types.ts +145 -0
  51. package/services/chat/index.ts +2 -0
  52. package/services/data-management/data-management-service.ts +74 -0
  53. package/services/data-management/data-management-types.ts +163 -0
  54. package/services/data-management/index.ts +2 -0
  55. package/services/generation/generation-service.ts +40 -0
  56. package/services/generation/generation-types.ts +140 -0
  57. package/services/index.ts +8 -0
  58. package/services/projects/README.md +54 -0
  59. package/services/projects/project-service.ts +20 -1
  60. package/services/projects/project-types.ts +88 -8
  61. package/services/prompt-generations/index.ts +2 -0
  62. package/services/prompt-generations/prompt-generations-service.ts +75 -0
  63. package/services/prompt-generations/prompt-generations-types.ts +101 -0
  64. package/services/streaming/index.ts +2 -0
  65. package/services/streaming/streaming-service.ts +123 -0
  66. package/services/streaming/streaming-types.ts +15 -0
  67. package/services/tasks/task-service.ts +30 -2
  68. package/services/tasks/task-types.ts +19 -1
  69. package/services/usage/usage-service.ts +81 -0
  70. package/services/usage/usage-types.ts +117 -36
  71. package/services/users/user-service.ts +15 -1
  72. package/services/users/user-types.ts +16 -0
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Data Management Service Types
3
+ *
4
+ * Provides interfaces for viewing data statistics and bulk deleting user data
5
+ */
6
+ /**
7
+ * Response structure for GET /data/stats endpoint
8
+ * Contains aggregate counts of all user data across the platform
9
+ */
10
+ export interface DataStatsResponse {
11
+ status: string;
12
+ data: DataStats;
13
+ }
14
+ /**
15
+ * Aggregate statistics for all user data entities
16
+ */
17
+ export interface DataStats {
18
+ projects: number;
19
+ project_documents: number;
20
+ project_repositories: number;
21
+ project_tasks: number;
22
+ task_groups: number;
23
+ chat_conversations: number;
24
+ chat_messages: number;
25
+ codespace_tasks: number;
26
+ }
27
+ /**
28
+ * Request structure for DELETE /data/all endpoint
29
+ * Requires explicit confirmation to prevent accidental data loss
30
+ */
31
+ export interface DeleteAllDataRequest {
32
+ confirm: boolean;
33
+ }
34
+ /**
35
+ * Response structure for DELETE /data/all endpoint
36
+ * Provides summary of deleted data counts
37
+ */
38
+ export interface DeleteAllDataResponse {
39
+ status: string;
40
+ message: string;
41
+ deleted: DataStats;
42
+ }
43
+ /**
44
+ * Response structure for GET /data/export endpoint
45
+ * Contains complete export of all user data
46
+ */
47
+ export interface DataExportResponse {
48
+ status: string;
49
+ exported_at: string;
50
+ user_id: string;
51
+ data: ExportedData;
52
+ }
53
+ /**
54
+ * Complete exported data containing all user entities
55
+ */
56
+ export interface ExportedData {
57
+ projects: ExportedProject[];
58
+ project_documents: ExportedProjectDocument[];
59
+ project_repositories: ExportedProjectRepository[];
60
+ project_tasks: ExportedProjectTask[];
61
+ task_groups: ExportedTaskGroup[];
62
+ chat_conversations: ExportedChatConversation[];
63
+ chat_messages: ExportedChatMessage[];
64
+ codespace_tasks: ExportedCodespaceTask[];
65
+ }
66
+ /**
67
+ * Exported project entity
68
+ */
69
+ export interface ExportedProject {
70
+ id: string;
71
+ title: string;
72
+ description: string;
73
+ status: string;
74
+ user_id: string;
75
+ created_at: string;
76
+ updated_at: string;
77
+ project_outline?: Record<string, any>;
78
+ ai_questionaire?: Record<string, any>;
79
+ }
80
+ /**
81
+ * Exported project document entity
82
+ */
83
+ export interface ExportedProjectDocument {
84
+ id: string;
85
+ project_id: string;
86
+ content: string;
87
+ custom_document_type: string;
88
+ is_current_version: boolean;
89
+ created_at: string;
90
+ }
91
+ /**
92
+ * Exported project repository entity
93
+ */
94
+ export interface ExportedProjectRepository {
95
+ id: string;
96
+ project_id: string;
97
+ repo_url: string;
98
+ created_at: string;
99
+ }
100
+ /**
101
+ * Exported project task entity
102
+ */
103
+ export interface ExportedProjectTask {
104
+ id: string;
105
+ project_id: string;
106
+ title: string;
107
+ status: string;
108
+ priority: string;
109
+ created_at: string;
110
+ }
111
+ /**
112
+ * Exported task group entity
113
+ */
114
+ export interface ExportedTaskGroup {
115
+ id: string;
116
+ project_id: string;
117
+ name: string;
118
+ created_at: string;
119
+ }
120
+ /**
121
+ * Exported chat conversation entity
122
+ */
123
+ export interface ExportedChatConversation {
124
+ id: string;
125
+ title: string;
126
+ model: string;
127
+ created_at: string;
128
+ last_message_at: string;
129
+ }
130
+ /**
131
+ * Exported chat message entity
132
+ */
133
+ export interface ExportedChatMessage {
134
+ id: string;
135
+ conversation_id: string;
136
+ role: 'user' | 'assistant';
137
+ content: string;
138
+ token_count: number;
139
+ created_at: string;
140
+ }
141
+ /**
142
+ * Exported codespace task entity
143
+ */
144
+ export interface ExportedCodespaceTask {
145
+ id: string;
146
+ project_id: string;
147
+ status: string;
148
+ created_at: string;
149
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Data Management Service Types
4
+ *
5
+ * Provides interfaces for viewing data statistics and bulk deleting user data
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ export { DataManagementService } from './data-management-service';
2
+ export * from './data-management-types';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.DataManagementService = void 0;
18
+ var data_management_service_1 = require("./data-management-service");
19
+ Object.defineProperty(exports, "DataManagementService", { enumerable: true, get: function () { return data_management_service_1.DataManagementService; } });
20
+ __exportStar(require("./data-management-types"), exports);
@@ -1,5 +1,5 @@
1
1
  import { BaseService } from '../base/base-service';
2
- import { RefinePromptRequest, RefinePromptResponse, GenerateTitleRequest, GenerateTitleResponse, GenerateQuestionnaireRequest, GenerateQuestionnaireResponse, GeneratePRDRequest, GeneratePRDResponse, GenerateCategoryRequest, GenerateCategoryResponse, GenerateOutlineRequest, GenerateOutlineResponse, GenerateDocumentRequest, GenerateDocumentResponse, GenerateMultipleDocumentsRequest, GenerateMultipleDocumentsResponse, GenerateMissingDocumentsRequest, GenerateMissingDocumentsResponse, BackgroundGenerationRequest, BackgroundGenerationResponse, BackgroundGenerationStatusResponse } from './generation-types';
2
+ import { RefinePromptRequest, RefinePromptResponse, GenerateTitleRequest, GenerateTitleResponse, GenerateQuestionnaireRequest, GenerateQuestionnaireResponse, GeneratePRDRequest, GeneratePRDResponse, GenerateCategoryRequest, GenerateCategoryResponse, GenerateOutlineRequest, GenerateOutlineResponse, GenerateDocumentRequest, GenerateDocumentResponse, GenerateMultipleDocumentsRequest, GenerateMultipleDocumentsResponse, GenerateMissingDocumentsRequest, GenerateMissingDocumentsResponse, GenerateTechSpecRequest, CustomDocumentResponse, BackgroundGenerationRequest, BackgroundGenerationResponse, BackgroundGenerationStatusResponse, GenerateAnswersRequest, GenerateAnswersResponse, GenerateProjectOutlineRequest, GenerateProjectOutlineResponse, GenerateCoreFeaturesRequest, GenerateCoreFeaturesResponse, GenerateTechStackRequest, GenerateTechStackResponse, GenerateAppFlowRequest, GenerateAppFlowResponse } from './generation-types';
3
3
  export declare class GenerationService extends BaseService {
4
4
  refinePrompt(request: RefinePromptRequest): Promise<RefinePromptResponse>;
5
5
  generateTitle(request: GenerateTitleRequest): Promise<GenerateTitleResponse>;
@@ -12,4 +12,10 @@ export declare class GenerationService extends BaseService {
12
12
  generateMissingDocuments(request: GenerateMissingDocumentsRequest): Promise<GenerateMissingDocumentsResponse>;
13
13
  startBackgroundGeneration(request: BackgroundGenerationRequest): Promise<BackgroundGenerationResponse>;
14
14
  getBackgroundGenerationStatus(jobId: string): Promise<BackgroundGenerationStatusResponse>;
15
+ generateTechSpec(request: GenerateTechSpecRequest): Promise<CustomDocumentResponse>;
16
+ generateAnswers(request: GenerateAnswersRequest): Promise<GenerateAnswersResponse>;
17
+ generateProjectOutline(request: GenerateProjectOutlineRequest): Promise<GenerateProjectOutlineResponse>;
18
+ generateCoreFeatures(request: GenerateCoreFeaturesRequest): Promise<GenerateCoreFeaturesResponse>;
19
+ generateTechStack(request: GenerateTechStackRequest): Promise<GenerateTechStackResponse>;
20
+ generateAppFlow(request: GenerateAppFlowRequest): Promise<GenerateAppFlowResponse>;
15
21
  }
@@ -36,5 +36,23 @@ class GenerationService extends base_service_1.BaseService {
36
36
  async getBackgroundGenerationStatus(jobId) {
37
37
  return this.get(`/generate/background/${jobId}/status`);
38
38
  }
39
+ async generateTechSpec(request) {
40
+ return this.post('/generate/tech-spec', request);
41
+ }
42
+ async generateAnswers(request) {
43
+ return this.post('/generate/answers', request);
44
+ }
45
+ async generateProjectOutline(request) {
46
+ return this.post('/generate/project-outline', request);
47
+ }
48
+ async generateCoreFeatures(request) {
49
+ return this.post('/generate/core-features', request);
50
+ }
51
+ async generateTechStack(request) {
52
+ return this.post('/generate/tech-stack', request);
53
+ }
54
+ async generateAppFlow(request) {
55
+ return this.post('/generate/app-flow', request);
56
+ }
39
57
  }
40
58
  exports.GenerationService = GenerationService;
@@ -53,6 +53,7 @@ export interface GenerateOutlineResponse {
53
53
  outline: string;
54
54
  }
55
55
  export interface GenerateDocumentRequest {
56
+ project_id?: string;
56
57
  project_type?: string;
57
58
  description: string;
58
59
  selected_tools: string[];
@@ -109,3 +110,125 @@ export interface GenerateMissingDocumentsResponse {
109
110
  error?: string;
110
111
  generated_documents?: string[];
111
112
  }
113
+ export interface GenerateTechSpecRequest {
114
+ project_id: string;
115
+ }
116
+ export interface CustomDocumentResponse {
117
+ content: string;
118
+ }
119
+ export interface GenerateAnswersRequest {
120
+ title: string;
121
+ description: string;
122
+ questions: Array<{
123
+ question: string;
124
+ answer: string;
125
+ }>;
126
+ }
127
+ export interface GenerateAnswersResponse {
128
+ answers: Array<{
129
+ question: string;
130
+ answer: string;
131
+ }>;
132
+ }
133
+ export type ProjectMode = 'prd_only' | 'full_application' | 'prototype' | 'mvp';
134
+ export interface ProjectOutline {
135
+ core_features: Array<{
136
+ id: number;
137
+ title: string;
138
+ description: string;
139
+ icon_key: string;
140
+ }>;
141
+ app_flow: Array<{
142
+ id: number;
143
+ title: string;
144
+ description: string;
145
+ }>;
146
+ tech_stack: Array<{
147
+ id: number;
148
+ type: string;
149
+ name: string;
150
+ icon_key: string;
151
+ }>;
152
+ document_types: Array<{
153
+ id: number;
154
+ name: string;
155
+ description: string;
156
+ }>;
157
+ is_generated: boolean;
158
+ project_mode: ProjectMode;
159
+ }
160
+ export interface GenerateProjectOutlineRequest {
161
+ description: string;
162
+ project_type: string;
163
+ project_mode?: ProjectMode;
164
+ title?: string;
165
+ selected_tools?: string[];
166
+ answers?: Record<string, any>;
167
+ project_id?: string;
168
+ category_id?: string;
169
+ }
170
+ export interface GenerateProjectOutlineResponse {
171
+ project_outline: ProjectOutline;
172
+ project_id: string;
173
+ project_created: boolean;
174
+ }
175
+ export interface CoreFeature {
176
+ id: number;
177
+ title: string;
178
+ description: string;
179
+ icon_key: string;
180
+ }
181
+ export interface GenerateCoreFeaturesRequest {
182
+ context: string;
183
+ project_id?: string;
184
+ existing_features?: Array<{
185
+ id: number;
186
+ title: string;
187
+ description: string;
188
+ }>;
189
+ }
190
+ export interface GenerateCoreFeaturesResponse {
191
+ core_features: CoreFeature[];
192
+ project_id: string | null;
193
+ }
194
+ export interface TechStackItem {
195
+ id: number;
196
+ type: string;
197
+ name: string;
198
+ icon_key: string;
199
+ }
200
+ export interface GenerateTechStackRequest {
201
+ context: string;
202
+ project_id?: string;
203
+ existing_items?: Array<{
204
+ id: number;
205
+ type: string;
206
+ name: string;
207
+ }>;
208
+ }
209
+ export interface GenerateTechStackResponse {
210
+ tech_stack: TechStackItem[];
211
+ project_id: string | null;
212
+ }
213
+ export interface AppFlowItem {
214
+ id: number;
215
+ title: string;
216
+ page: string;
217
+ description: string;
218
+ index: number;
219
+ icon_key: string;
220
+ }
221
+ export interface GenerateAppFlowRequest {
222
+ context: string;
223
+ project_id?: string;
224
+ existing_items?: Array<{
225
+ id: number;
226
+ title: string;
227
+ page: string;
228
+ description: string;
229
+ }>;
230
+ }
231
+ export interface GenerateAppFlowResponse {
232
+ app_flow: AppFlowItem[];
233
+ project_id: string | null;
234
+ }
@@ -12,6 +12,10 @@ export { ExternalTokenService } from './external-tokens';
12
12
  export { SecurityKeysService } from './security-keys';
13
13
  export { UserService } from './users';
14
14
  export { StarterKitsService } from './starter-kits';
15
+ export { StreamingService } from './streaming';
16
+ export { ChatService } from './chat';
17
+ export { DataManagementService } from './data-management';
18
+ export { PromptGenerationsService } from './prompt-generations';
15
19
  export * from './generation';
16
20
  export * from './projects';
17
21
  export * from './usage';
@@ -25,3 +29,7 @@ export * from './external-tokens';
25
29
  export * from './security-keys';
26
30
  export * from './users';
27
31
  export * from './starter-kits';
32
+ export * from './streaming';
33
+ export * from './chat';
34
+ export * from './data-management';
35
+ export * from './prompt-generations';
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.StarterKitsService = exports.UserService = exports.SecurityKeysService = exports.ExternalTokenService = exports.CodespaceService = exports.CancellationFunnelService = exports.SubscriptionService = exports.ApiKeyEnhancedService = exports.TaskService = exports.RepositoryAnalysisService = exports.UsageService = exports.ProjectService = exports.GenerationService = exports.BaseService = void 0;
20
+ exports.PromptGenerationsService = exports.DataManagementService = exports.ChatService = exports.StreamingService = exports.StarterKitsService = exports.UserService = exports.SecurityKeysService = exports.ExternalTokenService = exports.CodespaceService = exports.CancellationFunnelService = exports.SubscriptionService = exports.ApiKeyEnhancedService = exports.TaskService = exports.RepositoryAnalysisService = exports.UsageService = exports.ProjectService = exports.GenerationService = exports.BaseService = void 0;
21
21
  const dotenv_1 = __importDefault(require("dotenv"));
22
22
  const path_1 = __importDefault(require("path"));
23
23
  // Load environment variables from project root
@@ -53,6 +53,14 @@ var users_1 = require("./users");
53
53
  Object.defineProperty(exports, "UserService", { enumerable: true, get: function () { return users_1.UserService; } });
54
54
  var starter_kits_1 = require("./starter-kits");
55
55
  Object.defineProperty(exports, "StarterKitsService", { enumerable: true, get: function () { return starter_kits_1.StarterKitsService; } });
56
+ var streaming_1 = require("./streaming");
57
+ Object.defineProperty(exports, "StreamingService", { enumerable: true, get: function () { return streaming_1.StreamingService; } });
58
+ var chat_1 = require("./chat");
59
+ Object.defineProperty(exports, "ChatService", { enumerable: true, get: function () { return chat_1.ChatService; } });
60
+ var data_management_1 = require("./data-management");
61
+ Object.defineProperty(exports, "DataManagementService", { enumerable: true, get: function () { return data_management_1.DataManagementService; } });
62
+ var prompt_generations_1 = require("./prompt-generations");
63
+ Object.defineProperty(exports, "PromptGenerationsService", { enumerable: true, get: function () { return prompt_generations_1.PromptGenerationsService; } });
56
64
  // Re-export all types for convenience
57
65
  __exportStar(require("./generation"), exports);
58
66
  __exportStar(require("./projects"), exports);
@@ -67,3 +75,7 @@ __exportStar(require("./external-tokens"), exports);
67
75
  __exportStar(require("./security-keys"), exports);
68
76
  __exportStar(require("./users"), exports);
69
77
  __exportStar(require("./starter-kits"), exports);
78
+ __exportStar(require("./streaming"), exports);
79
+ __exportStar(require("./chat"), exports);
80
+ __exportStar(require("./data-management"), exports);
81
+ __exportStar(require("./prompt-generations"), exports);
@@ -1,5 +1,5 @@
1
1
  import { BaseService } from '../base/base-service';
2
- import { Project, CreateProjectRequest, UpdateProjectRequest, PaginatedProjectsRequest, PaginatedProjectsResponse, GetProjectsRequest, GetProjectDocumentsRequest, GetProjectDocumentsResponse, ConnectRepositoryRequest, ConnectRepositoryResponse } from './project-types';
2
+ import { Project, CreateProjectRequest, UpdateProjectRequest, PaginatedProjectsRequest, PaginatedProjectsResponse, GetProjectsRequest, GetProjectDocumentsRequest, GetProjectDocumentsResponse, ConnectRepositoryRequest, ConnectRepositoryResponse, GetAiToolsRequest, GetAiToolsResponse } from './project-types';
3
3
  export declare class ProjectService extends BaseService {
4
4
  getAllProjects(params?: GetProjectsRequest): Promise<Project[]>;
5
5
  getPaginatedProjects(params: PaginatedProjectsRequest): Promise<PaginatedProjectsResponse>;
@@ -11,6 +11,8 @@ export declare class ProjectService extends BaseService {
11
11
  message: string;
12
12
  }>;
13
13
  getProjectDocuments(projectId: string, params?: GetProjectDocumentsRequest): Promise<GetProjectDocumentsResponse>;
14
+ getDocumentsByType(projectId: string, documentType: string): Promise<GetProjectDocumentsResponse>;
14
15
  connectRepository(projectId: string, request: ConnectRepositoryRequest): Promise<ConnectRepositoryResponse>;
15
16
  private validateConnectRepositoryRequest;
17
+ getAiTools(params?: GetAiToolsRequest): Promise<GetAiToolsResponse>;
16
18
  }
@@ -38,7 +38,7 @@ class ProjectService extends base_service_1.BaseService {
38
38
  return response.data;
39
39
  }
40
40
  async createProject(request) {
41
- const response = await this.post('/projects', request);
41
+ const response = await this.post('/projects/', request);
42
42
  return response.data;
43
43
  }
44
44
  async updateProject(projectId, request) {
@@ -56,6 +56,9 @@ class ProjectService extends base_service_1.BaseService {
56
56
  const url = `/projects/${projectId}/documents${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
57
57
  return this.get(url);
58
58
  }
59
+ async getDocumentsByType(projectId, documentType) {
60
+ return this.get(`/projects/${projectId}/documents/type/${documentType}`);
61
+ }
59
62
  async connectRepository(projectId, request) {
60
63
  this.validateConnectRepositoryRequest(request);
61
64
  const response = await this.post(`/projects/${projectId}/repository`, request);
@@ -82,5 +85,14 @@ class ProjectService extends base_service_1.BaseService {
82
85
  throw new Error('GitHub token must be a valid personal access token');
83
86
  }
84
87
  }
88
+ async getAiTools(params) {
89
+ const queryParams = new URLSearchParams();
90
+ if (params?.key)
91
+ queryParams.append('key', params.key);
92
+ if (params?.category)
93
+ queryParams.append('category', params.category);
94
+ const url = `/ai-tools${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
95
+ return this.get(url);
96
+ }
85
97
  }
86
98
  exports.ProjectService = ProjectService;
@@ -30,8 +30,26 @@ export interface Project {
30
30
  };
31
31
  tools_selected?: string[];
32
32
  project_outline?: {
33
- features?: string[];
34
- architecture?: string;
33
+ core_features?: Array<{
34
+ id?: number;
35
+ title?: string;
36
+ description?: string;
37
+ icon_key?: string;
38
+ }>;
39
+ app_flow?: Array<{
40
+ id?: number;
41
+ title?: string;
42
+ description?: string;
43
+ }>;
44
+ tech_stack?: Array<{
45
+ id?: number;
46
+ type?: string;
47
+ name?: string;
48
+ icon_key?: string;
49
+ }>;
50
+ document_types?: string[];
51
+ is_generated?: boolean;
52
+ project_mode?: 'prd_only' | 'full_application' | 'prototype' | 'mvp';
35
53
  };
36
54
  codie_tool_id?: string;
37
55
  existing_project_repo_url?: string | null;
@@ -86,8 +104,9 @@ export interface StarterKitReference {
86
104
  description: string;
87
105
  }
88
106
  export interface CreateProjectRequest {
89
- title: string;
90
- description: string;
107
+ title?: string;
108
+ description?: string;
109
+ status?: 'prompt' | 'draft' | 'in_progress' | 'completed';
91
110
  category_id?: string;
92
111
  starter_kit_id?: string;
93
112
  ai_questionaire?: {
@@ -97,8 +116,26 @@ export interface CreateProjectRequest {
97
116
  };
98
117
  tools_selected?: string[];
99
118
  project_outline?: {
100
- features?: string[];
101
- architecture?: string;
119
+ core_features?: Array<{
120
+ id?: number;
121
+ title?: string;
122
+ description?: string;
123
+ icon_key?: string;
124
+ }>;
125
+ app_flow?: Array<{
126
+ id?: number;
127
+ title?: string;
128
+ description?: string;
129
+ }>;
130
+ tech_stack?: Array<{
131
+ id?: number;
132
+ type?: string;
133
+ name?: string;
134
+ icon_key?: string;
135
+ }>;
136
+ document_types?: string[];
137
+ is_generated?: boolean;
138
+ project_mode?: 'prd_only' | 'full_application' | 'prototype' | 'mvp';
102
139
  };
103
140
  codie_tool_id?: string;
104
141
  existing_project_repo_url?: string;
@@ -116,8 +153,26 @@ export interface UpdateProjectRequest {
116
153
  };
117
154
  tools_selected?: string[];
118
155
  project_outline?: {
119
- features?: string[];
120
- architecture?: string;
156
+ core_features?: Array<{
157
+ id?: number;
158
+ title?: string;
159
+ description?: string;
160
+ icon_key?: string;
161
+ }>;
162
+ app_flow?: Array<{
163
+ id?: number;
164
+ title?: string;
165
+ description?: string;
166
+ }>;
167
+ tech_stack?: Array<{
168
+ id?: number;
169
+ type?: string;
170
+ name?: string;
171
+ icon_key?: string;
172
+ }>;
173
+ document_types?: string[];
174
+ is_generated?: boolean;
175
+ project_mode?: 'prd_only' | 'full_application' | 'prototype' | 'mvp';
121
176
  };
122
177
  codie_tool_id?: string;
123
178
  existing_project_repo_url?: string;
@@ -160,3 +215,25 @@ export interface ConnectRepositoryResponse {
160
215
  status: string;
161
216
  data: ProjectRepository;
162
217
  }
218
+ export interface AITool {
219
+ id: string;
220
+ created_at: string;
221
+ name: string;
222
+ description: string;
223
+ logo_src: string | null;
224
+ is_active: boolean;
225
+ key: string;
226
+ ordinal: number | null;
227
+ metadata: Record<string, any> | null;
228
+ detailed_description: string | null;
229
+ category: string | null;
230
+ doc_type: string;
231
+ }
232
+ export interface GetAiToolsRequest {
233
+ key?: string;
234
+ category?: string;
235
+ }
236
+ export interface GetAiToolsResponse {
237
+ status: string;
238
+ data: AITool[];
239
+ }
@@ -0,0 +1,2 @@
1
+ export { PromptGenerationsService } from './prompt-generations-service';
2
+ export * from './prompt-generations-types';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.PromptGenerationsService = void 0;
18
+ var prompt_generations_service_1 = require("./prompt-generations-service");
19
+ Object.defineProperty(exports, "PromptGenerationsService", { enumerable: true, get: function () { return prompt_generations_service_1.PromptGenerationsService; } });
20
+ __exportStar(require("./prompt-generations-types"), exports);
@@ -0,0 +1,47 @@
1
+ import { BaseService } from '../base/base-service';
2
+ import { CreatePromptGenerationRequest, CreatePromptGenerationResponse, ListPromptGenerationsResponse, GetPromptGenerationResponse, DeletePromptGenerationResponse } from './prompt-generations-types';
3
+ export declare class PromptGenerationsService extends BaseService {
4
+ /**
5
+ * Create a new AI system prompt generation
6
+ *
7
+ * Generates a new AI system prompt based on user input using GPT-5.1.
8
+ *
9
+ * POST /prompt-generations/
10
+ *
11
+ * @param request - The prompt generation request parameters
12
+ * @returns Promise resolving to the created prompt generation data
13
+ */
14
+ createPromptGeneration(request: CreatePromptGenerationRequest): Promise<CreatePromptGenerationResponse>;
15
+ /**
16
+ * List all prompt generations for the authenticated user
17
+ *
18
+ * Retrieves all prompt generations that belong to the current user.
19
+ *
20
+ * GET /prompt-generations/
21
+ *
22
+ * @returns Promise resolving to an array of prompt generations
23
+ */
24
+ listPromptGenerations(): Promise<ListPromptGenerationsResponse>;
25
+ /**
26
+ * Get a specific prompt generation by ID
27
+ *
28
+ * Retrieves detailed information about a single prompt generation.
29
+ *
30
+ * GET /prompt-generations/{generation_id}
31
+ *
32
+ * @param generationId - The UUID of the prompt generation to retrieve
33
+ * @returns Promise resolving to the prompt generation data
34
+ */
35
+ getPromptGeneration(generationId: string): Promise<GetPromptGenerationResponse>;
36
+ /**
37
+ * Delete a specific prompt generation by ID
38
+ *
39
+ * Permanently removes a prompt generation from the database.
40
+ *
41
+ * DELETE /prompt-generations/{generation_id}
42
+ *
43
+ * @param generationId - The UUID of the prompt generation to delete
44
+ * @returns Promise resolving to the deleted prompt generation data
45
+ */
46
+ deletePromptGeneration(generationId: string): Promise<DeletePromptGenerationResponse>;
47
+ }