@codeguide/core 0.0.36 → 0.0.40
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 +9 -0
- package/dist/codeguide.d.ts +4 -1
- package/dist/codeguide.js +3 -0
- package/dist/services/generation/generation-types.d.ts +1 -1
- package/dist/services/index.d.ts +6 -0
- package/dist/services/index.js +10 -1
- package/dist/services/mcp-servers/index.d.ts +2 -0
- package/dist/services/mcp-servers/index.js +20 -0
- package/dist/services/mcp-servers/mcp-servers-service.d.ts +12 -0
- package/dist/services/mcp-servers/mcp-servers-service.js +32 -0
- package/dist/services/mcp-servers/mcp-servers-types.d.ts +50 -0
- package/dist/services/mcp-servers/mcp-servers-types.js +2 -0
- package/dist/services/platforms/index.d.ts +2 -0
- package/dist/services/platforms/index.js +20 -0
- package/dist/services/platforms/platforms-service.d.ts +12 -0
- package/dist/services/platforms/platforms-service.js +32 -0
- package/dist/services/platforms/platforms-types.d.ts +50 -0
- package/dist/services/platforms/platforms-types.js +2 -0
- package/dist/services/projects/project-types.d.ts +3 -3
- package/dist/services/skills/index.d.ts +2 -0
- package/dist/services/skills/index.js +20 -0
- package/dist/services/skills/skills-service.d.ts +12 -0
- package/dist/services/skills/skills-service.js +32 -0
- package/dist/services/skills/skills-types.d.ts +50 -0
- package/dist/services/skills/skills-types.js +2 -0
- package/dist/services/tasks/task-service.d.ts +3 -1
- package/dist/services/tasks/task-service.js +10 -0
- package/dist/services/tasks/task-types.d.ts +21 -0
- package/package.json +1 -1
- package/services/generation/generation-types.ts +1 -1
- package/services/index.ts +6 -0
- package/services/mcp-servers/index.ts +2 -0
- package/services/mcp-servers/mcp-servers-service.ts +39 -0
- package/services/mcp-servers/mcp-servers-types.ts +55 -0
- package/services/platforms/index.ts +2 -0
- package/services/platforms/platforms-service.ts +39 -0
- package/services/platforms/platforms-types.ts +55 -0
- package/services/projects/project-types.ts +9 -5
- package/services/skills/index.ts +2 -0
- package/services/skills/skills-service.ts +39 -0
- package/services/skills/skills-types.ts +55 -0
- package/services/tasks/task-service.ts +16 -0
- package/services/tasks/task-types.ts +24 -0
package/codeguide.ts
CHANGED
|
@@ -23,6 +23,9 @@ import {
|
|
|
23
23
|
ChatService,
|
|
24
24
|
DataManagementService,
|
|
25
25
|
PromptGenerationsService,
|
|
26
|
+
PlatformsService,
|
|
27
|
+
MCPServersService,
|
|
28
|
+
SkillsService,
|
|
26
29
|
} from './services'
|
|
27
30
|
import { APIServiceConfig, CodeGuideOptions } from './types'
|
|
28
31
|
|
|
@@ -43,6 +46,9 @@ export class CodeGuide {
|
|
|
43
46
|
public chat: ChatService
|
|
44
47
|
public dataManagement: DataManagementService
|
|
45
48
|
public promptGenerations: PromptGenerationsService
|
|
49
|
+
public platforms: PlatformsService
|
|
50
|
+
public mcpServers: MCPServersService
|
|
51
|
+
public skills: SkillsService
|
|
46
52
|
private options: CodeGuideOptions
|
|
47
53
|
|
|
48
54
|
constructor(config: APIServiceConfig, options: CodeGuideOptions = {}) {
|
|
@@ -65,6 +71,9 @@ export class CodeGuide {
|
|
|
65
71
|
this.chat = new ChatService(config)
|
|
66
72
|
this.dataManagement = new DataManagementService(config)
|
|
67
73
|
this.promptGenerations = new PromptGenerationsService(config)
|
|
74
|
+
this.platforms = new PlatformsService(config)
|
|
75
|
+
this.mcpServers = new MCPServersService(config)
|
|
76
|
+
this.skills = new SkillsService(config)
|
|
68
77
|
}
|
|
69
78
|
|
|
70
79
|
// Convenience method for backward compatibility
|
package/dist/codeguide.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GenerationService, ProjectService, UsageService, RepositoryAnalysisService, TaskService, ApiKeyEnhancedService, SubscriptionService, CancellationFunnelService, CodespaceService, ExternalTokenService, SecurityKeysService, UserService, StarterKitsService, ChatService, DataManagementService, PromptGenerationsService } from './services';
|
|
1
|
+
import { GenerationService, ProjectService, UsageService, RepositoryAnalysisService, TaskService, ApiKeyEnhancedService, SubscriptionService, CancellationFunnelService, CodespaceService, ExternalTokenService, SecurityKeysService, UserService, StarterKitsService, ChatService, DataManagementService, PromptGenerationsService, PlatformsService, MCPServersService, SkillsService } from './services';
|
|
2
2
|
import { APIServiceConfig, CodeGuideOptions } from './types';
|
|
3
3
|
export declare class CodeGuide {
|
|
4
4
|
generation: GenerationService;
|
|
@@ -17,6 +17,9 @@ export declare class CodeGuide {
|
|
|
17
17
|
chat: ChatService;
|
|
18
18
|
dataManagement: DataManagementService;
|
|
19
19
|
promptGenerations: PromptGenerationsService;
|
|
20
|
+
platforms: PlatformsService;
|
|
21
|
+
mcpServers: MCPServersService;
|
|
22
|
+
skills: SkillsService;
|
|
20
23
|
private options;
|
|
21
24
|
constructor(config: APIServiceConfig, options?: CodeGuideOptions);
|
|
22
25
|
getGuidance(prompt: string): Promise<any>;
|
package/dist/codeguide.js
CHANGED
|
@@ -32,6 +32,9 @@ class CodeGuide {
|
|
|
32
32
|
this.chat = new services_1.ChatService(config);
|
|
33
33
|
this.dataManagement = new services_1.DataManagementService(config);
|
|
34
34
|
this.promptGenerations = new services_1.PromptGenerationsService(config);
|
|
35
|
+
this.platforms = new services_1.PlatformsService(config);
|
|
36
|
+
this.mcpServers = new services_1.MCPServersService(config);
|
|
37
|
+
this.skills = new services_1.SkillsService(config);
|
|
35
38
|
}
|
|
36
39
|
// Convenience method for backward compatibility
|
|
37
40
|
async getGuidance(prompt) {
|
|
@@ -130,7 +130,7 @@ export interface GenerateAnswersResponse {
|
|
|
130
130
|
answer: string;
|
|
131
131
|
}>;
|
|
132
132
|
}
|
|
133
|
-
export type ProjectMode = 'prd_only' | 'full_application' | 'prototype' | 'mvp';
|
|
133
|
+
export type ProjectMode = 'prd_only' | 'full_application' | 'prototype' | 'mvp' | 'wireframe_only';
|
|
134
134
|
export interface ProjectOutline {
|
|
135
135
|
core_features: Array<{
|
|
136
136
|
id: number;
|
package/dist/services/index.d.ts
CHANGED
|
@@ -16,6 +16,9 @@ export { StreamingService } from './streaming';
|
|
|
16
16
|
export { ChatService } from './chat';
|
|
17
17
|
export { DataManagementService } from './data-management';
|
|
18
18
|
export { PromptGenerationsService } from './prompt-generations';
|
|
19
|
+
export { PlatformsService } from './platforms';
|
|
20
|
+
export { MCPServersService } from './mcp-servers';
|
|
21
|
+
export { SkillsService } from './skills';
|
|
19
22
|
export * from './generation';
|
|
20
23
|
export * from './projects';
|
|
21
24
|
export * from './usage';
|
|
@@ -33,3 +36,6 @@ export * from './streaming';
|
|
|
33
36
|
export * from './chat';
|
|
34
37
|
export * from './data-management';
|
|
35
38
|
export * from './prompt-generations';
|
|
39
|
+
export * from './platforms';
|
|
40
|
+
export * from './mcp-servers';
|
|
41
|
+
export * from './skills';
|
package/dist/services/index.js
CHANGED
|
@@ -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.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;
|
|
20
|
+
exports.SkillsService = exports.MCPServersService = exports.PlatformsService = 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
|
|
@@ -61,6 +61,12 @@ var data_management_1 = require("./data-management");
|
|
|
61
61
|
Object.defineProperty(exports, "DataManagementService", { enumerable: true, get: function () { return data_management_1.DataManagementService; } });
|
|
62
62
|
var prompt_generations_1 = require("./prompt-generations");
|
|
63
63
|
Object.defineProperty(exports, "PromptGenerationsService", { enumerable: true, get: function () { return prompt_generations_1.PromptGenerationsService; } });
|
|
64
|
+
var platforms_1 = require("./platforms");
|
|
65
|
+
Object.defineProperty(exports, "PlatformsService", { enumerable: true, get: function () { return platforms_1.PlatformsService; } });
|
|
66
|
+
var mcp_servers_1 = require("./mcp-servers");
|
|
67
|
+
Object.defineProperty(exports, "MCPServersService", { enumerable: true, get: function () { return mcp_servers_1.MCPServersService; } });
|
|
68
|
+
var skills_1 = require("./skills");
|
|
69
|
+
Object.defineProperty(exports, "SkillsService", { enumerable: true, get: function () { return skills_1.SkillsService; } });
|
|
64
70
|
// Re-export all types for convenience
|
|
65
71
|
__exportStar(require("./generation"), exports);
|
|
66
72
|
__exportStar(require("./projects"), exports);
|
|
@@ -79,3 +85,6 @@ __exportStar(require("./streaming"), exports);
|
|
|
79
85
|
__exportStar(require("./chat"), exports);
|
|
80
86
|
__exportStar(require("./data-management"), exports);
|
|
81
87
|
__exportStar(require("./prompt-generations"), exports);
|
|
88
|
+
__exportStar(require("./platforms"), exports);
|
|
89
|
+
__exportStar(require("./mcp-servers"), exports);
|
|
90
|
+
__exportStar(require("./skills"), exports);
|
|
@@ -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.MCPServersService = void 0;
|
|
18
|
+
var mcp_servers_service_1 = require("./mcp-servers-service");
|
|
19
|
+
Object.defineProperty(exports, "MCPServersService", { enumerable: true, get: function () { return mcp_servers_service_1.MCPServersService; } });
|
|
20
|
+
__exportStar(require("./mcp-servers-types"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseService } from '../base/base-service';
|
|
2
|
+
import { CreateMCPServerRequest, UpdateMCPServerRequest, ListMCPServersRequest, MCPServerResponse, MCPServerListResponse } from './mcp-servers-types';
|
|
3
|
+
export declare class MCPServersService extends BaseService {
|
|
4
|
+
listMCPServers(params?: ListMCPServersRequest): Promise<MCPServerListResponse>;
|
|
5
|
+
getMCPServer(id: string): Promise<MCPServerResponse>;
|
|
6
|
+
createMCPServer(request: CreateMCPServerRequest): Promise<MCPServerResponse>;
|
|
7
|
+
updateMCPServer(id: string, request: UpdateMCPServerRequest): Promise<MCPServerResponse>;
|
|
8
|
+
deleteMCPServer(id: string): Promise<{
|
|
9
|
+
status: string;
|
|
10
|
+
message: string;
|
|
11
|
+
}>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MCPServersService = void 0;
|
|
4
|
+
const base_service_1 = require("../base/base-service");
|
|
5
|
+
class MCPServersService extends base_service_1.BaseService {
|
|
6
|
+
async listMCPServers(params) {
|
|
7
|
+
const queryParams = new URLSearchParams();
|
|
8
|
+
if (params?.category)
|
|
9
|
+
queryParams.append('category', params.category);
|
|
10
|
+
if (params?.search)
|
|
11
|
+
queryParams.append('search', params.search);
|
|
12
|
+
if (params?.limit !== undefined)
|
|
13
|
+
queryParams.append('limit', params.limit.toString());
|
|
14
|
+
if (params?.offset !== undefined)
|
|
15
|
+
queryParams.append('offset', params.offset.toString());
|
|
16
|
+
const url = `/mcp-servers/${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
|
17
|
+
return this.get(url);
|
|
18
|
+
}
|
|
19
|
+
async getMCPServer(id) {
|
|
20
|
+
return this.get(`/mcp-servers/${id}`);
|
|
21
|
+
}
|
|
22
|
+
async createMCPServer(request) {
|
|
23
|
+
return this.post('/mcp-servers/', request);
|
|
24
|
+
}
|
|
25
|
+
async updateMCPServer(id, request) {
|
|
26
|
+
return this.put(`/mcp-servers/${id}`, request);
|
|
27
|
+
}
|
|
28
|
+
async deleteMCPServer(id) {
|
|
29
|
+
return this.delete(`/mcp-servers/${id}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.MCPServersService = MCPServersService;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export interface MCPServer {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
logo_src?: string;
|
|
6
|
+
category?: string;
|
|
7
|
+
url?: string;
|
|
8
|
+
publisher?: string;
|
|
9
|
+
ordinal?: number;
|
|
10
|
+
metadata?: Record<string, any>;
|
|
11
|
+
is_active: boolean;
|
|
12
|
+
created_at: string;
|
|
13
|
+
}
|
|
14
|
+
export interface CreateMCPServerRequest {
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
logo_src?: string;
|
|
18
|
+
category?: string;
|
|
19
|
+
url?: string;
|
|
20
|
+
publisher?: string;
|
|
21
|
+
ordinal?: number;
|
|
22
|
+
metadata?: Record<string, any>;
|
|
23
|
+
}
|
|
24
|
+
export interface UpdateMCPServerRequest {
|
|
25
|
+
name?: string;
|
|
26
|
+
description?: string;
|
|
27
|
+
logo_src?: string;
|
|
28
|
+
category?: string;
|
|
29
|
+
url?: string;
|
|
30
|
+
publisher?: string;
|
|
31
|
+
ordinal?: number;
|
|
32
|
+
metadata?: Record<string, any>;
|
|
33
|
+
}
|
|
34
|
+
export interface ListMCPServersRequest {
|
|
35
|
+
category?: string;
|
|
36
|
+
search?: string;
|
|
37
|
+
limit?: number;
|
|
38
|
+
offset?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface MCPServerResponse {
|
|
41
|
+
status: string;
|
|
42
|
+
data: MCPServer;
|
|
43
|
+
}
|
|
44
|
+
export interface MCPServerListResponse {
|
|
45
|
+
status: string;
|
|
46
|
+
data: MCPServer[];
|
|
47
|
+
total: number;
|
|
48
|
+
limit: number;
|
|
49
|
+
offset: number;
|
|
50
|
+
}
|
|
@@ -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.PlatformsService = void 0;
|
|
18
|
+
var platforms_service_1 = require("./platforms-service");
|
|
19
|
+
Object.defineProperty(exports, "PlatformsService", { enumerable: true, get: function () { return platforms_service_1.PlatformsService; } });
|
|
20
|
+
__exportStar(require("./platforms-types"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseService } from '../base/base-service';
|
|
2
|
+
import { CreatePlatformRequest, UpdatePlatformRequest, ListPlatformsRequest, PlatformResponse, PlatformListResponse } from './platforms-types';
|
|
3
|
+
export declare class PlatformsService extends BaseService {
|
|
4
|
+
listPlatforms(params?: ListPlatformsRequest): Promise<PlatformListResponse>;
|
|
5
|
+
getPlatform(id: string): Promise<PlatformResponse>;
|
|
6
|
+
createPlatform(request: CreatePlatformRequest): Promise<PlatformResponse>;
|
|
7
|
+
updatePlatform(id: string, request: UpdatePlatformRequest): Promise<PlatformResponse>;
|
|
8
|
+
deletePlatform(id: string): Promise<{
|
|
9
|
+
status: string;
|
|
10
|
+
message: string;
|
|
11
|
+
}>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PlatformsService = void 0;
|
|
4
|
+
const base_service_1 = require("../base/base-service");
|
|
5
|
+
class PlatformsService extends base_service_1.BaseService {
|
|
6
|
+
async listPlatforms(params) {
|
|
7
|
+
const queryParams = new URLSearchParams();
|
|
8
|
+
if (params?.category)
|
|
9
|
+
queryParams.append('category', params.category);
|
|
10
|
+
if (params?.search)
|
|
11
|
+
queryParams.append('search', params.search);
|
|
12
|
+
if (params?.limit !== undefined)
|
|
13
|
+
queryParams.append('limit', params.limit.toString());
|
|
14
|
+
if (params?.offset !== undefined)
|
|
15
|
+
queryParams.append('offset', params.offset.toString());
|
|
16
|
+
const url = `/platforms/${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
|
17
|
+
return this.get(url);
|
|
18
|
+
}
|
|
19
|
+
async getPlatform(id) {
|
|
20
|
+
return this.get(`/platforms/${id}`);
|
|
21
|
+
}
|
|
22
|
+
async createPlatform(request) {
|
|
23
|
+
return this.post('/platforms/', request);
|
|
24
|
+
}
|
|
25
|
+
async updatePlatform(id, request) {
|
|
26
|
+
return this.put(`/platforms/${id}`, request);
|
|
27
|
+
}
|
|
28
|
+
async deletePlatform(id) {
|
|
29
|
+
return this.delete(`/platforms/${id}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.PlatformsService = PlatformsService;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export interface PlatformResource {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
logo_src?: string;
|
|
6
|
+
category?: string;
|
|
7
|
+
url?: string;
|
|
8
|
+
publisher?: string;
|
|
9
|
+
ordinal?: number;
|
|
10
|
+
metadata?: Record<string, any>;
|
|
11
|
+
is_active: boolean;
|
|
12
|
+
created_at: string;
|
|
13
|
+
}
|
|
14
|
+
export interface CreatePlatformRequest {
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
logo_src?: string;
|
|
18
|
+
category?: string;
|
|
19
|
+
url?: string;
|
|
20
|
+
publisher?: string;
|
|
21
|
+
ordinal?: number;
|
|
22
|
+
metadata?: Record<string, any>;
|
|
23
|
+
}
|
|
24
|
+
export interface UpdatePlatformRequest {
|
|
25
|
+
name?: string;
|
|
26
|
+
description?: string;
|
|
27
|
+
logo_src?: string;
|
|
28
|
+
category?: string;
|
|
29
|
+
url?: string;
|
|
30
|
+
publisher?: string;
|
|
31
|
+
ordinal?: number;
|
|
32
|
+
metadata?: Record<string, any>;
|
|
33
|
+
}
|
|
34
|
+
export interface ListPlatformsRequest {
|
|
35
|
+
category?: string;
|
|
36
|
+
search?: string;
|
|
37
|
+
limit?: number;
|
|
38
|
+
offset?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface PlatformResponse {
|
|
41
|
+
status: string;
|
|
42
|
+
data: PlatformResource;
|
|
43
|
+
}
|
|
44
|
+
export interface PlatformListResponse {
|
|
45
|
+
status: string;
|
|
46
|
+
data: PlatformResource[];
|
|
47
|
+
total: number;
|
|
48
|
+
limit: number;
|
|
49
|
+
offset: number;
|
|
50
|
+
}
|
|
@@ -49,7 +49,7 @@ export interface Project {
|
|
|
49
49
|
}>;
|
|
50
50
|
document_types?: string[];
|
|
51
51
|
is_generated?: boolean;
|
|
52
|
-
project_mode?: 'prd_only' | 'full_application' | 'prototype' | 'mvp';
|
|
52
|
+
project_mode?: 'prd_only' | 'full_application' | 'prototype' | 'mvp' | 'task_only' | 'wireframe_only';
|
|
53
53
|
};
|
|
54
54
|
codie_tool_id?: string;
|
|
55
55
|
existing_project_repo_url?: string | null;
|
|
@@ -135,7 +135,7 @@ export interface CreateProjectRequest {
|
|
|
135
135
|
}>;
|
|
136
136
|
document_types?: string[];
|
|
137
137
|
is_generated?: boolean;
|
|
138
|
-
project_mode?: 'prd_only' | 'full_application' | 'prototype' | 'mvp';
|
|
138
|
+
project_mode?: 'prd_only' | 'full_application' | 'prototype' | 'mvp' | 'task_only';
|
|
139
139
|
};
|
|
140
140
|
codie_tool_id?: string;
|
|
141
141
|
existing_project_repo_url?: string;
|
|
@@ -172,7 +172,7 @@ export interface UpdateProjectRequest {
|
|
|
172
172
|
}>;
|
|
173
173
|
document_types?: string[];
|
|
174
174
|
is_generated?: boolean;
|
|
175
|
-
project_mode?: 'prd_only' | 'full_application' | 'prototype' | 'mvp';
|
|
175
|
+
project_mode?: 'prd_only' | 'full_application' | 'prototype' | 'mvp' | 'task_only';
|
|
176
176
|
};
|
|
177
177
|
codie_tool_id?: string;
|
|
178
178
|
existing_project_repo_url?: string;
|
|
@@ -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.SkillsService = void 0;
|
|
18
|
+
var skills_service_1 = require("./skills-service");
|
|
19
|
+
Object.defineProperty(exports, "SkillsService", { enumerable: true, get: function () { return skills_service_1.SkillsService; } });
|
|
20
|
+
__exportStar(require("./skills-types"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseService } from '../base/base-service';
|
|
2
|
+
import { CreateSkillRequest, UpdateSkillRequest, ListSkillsRequest, SkillResponse, SkillListResponse } from './skills-types';
|
|
3
|
+
export declare class SkillsService extends BaseService {
|
|
4
|
+
listSkills(params?: ListSkillsRequest): Promise<SkillListResponse>;
|
|
5
|
+
getSkill(id: string): Promise<SkillResponse>;
|
|
6
|
+
createSkill(request: CreateSkillRequest): Promise<SkillResponse>;
|
|
7
|
+
updateSkill(id: string, request: UpdateSkillRequest): Promise<SkillResponse>;
|
|
8
|
+
deleteSkill(id: string): Promise<{
|
|
9
|
+
status: string;
|
|
10
|
+
message: string;
|
|
11
|
+
}>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SkillsService = void 0;
|
|
4
|
+
const base_service_1 = require("../base/base-service");
|
|
5
|
+
class SkillsService extends base_service_1.BaseService {
|
|
6
|
+
async listSkills(params) {
|
|
7
|
+
const queryParams = new URLSearchParams();
|
|
8
|
+
if (params?.category)
|
|
9
|
+
queryParams.append('category', params.category);
|
|
10
|
+
if (params?.search)
|
|
11
|
+
queryParams.append('search', params.search);
|
|
12
|
+
if (params?.limit !== undefined)
|
|
13
|
+
queryParams.append('limit', params.limit.toString());
|
|
14
|
+
if (params?.offset !== undefined)
|
|
15
|
+
queryParams.append('offset', params.offset.toString());
|
|
16
|
+
const url = `/skills/${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
|
17
|
+
return this.get(url);
|
|
18
|
+
}
|
|
19
|
+
async getSkill(id) {
|
|
20
|
+
return this.get(`/skills/${id}`);
|
|
21
|
+
}
|
|
22
|
+
async createSkill(request) {
|
|
23
|
+
return this.post('/skills/', request);
|
|
24
|
+
}
|
|
25
|
+
async updateSkill(id, request) {
|
|
26
|
+
return this.put(`/skills/${id}`, request);
|
|
27
|
+
}
|
|
28
|
+
async deleteSkill(id) {
|
|
29
|
+
return this.delete(`/skills/${id}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.SkillsService = SkillsService;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export interface Skill {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
logo_src?: string;
|
|
6
|
+
category?: string;
|
|
7
|
+
url?: string;
|
|
8
|
+
publisher?: string;
|
|
9
|
+
ordinal?: number;
|
|
10
|
+
metadata?: Record<string, any>;
|
|
11
|
+
is_active: boolean;
|
|
12
|
+
created_at: string;
|
|
13
|
+
}
|
|
14
|
+
export interface CreateSkillRequest {
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
logo_src?: string;
|
|
18
|
+
category?: string;
|
|
19
|
+
url?: string;
|
|
20
|
+
publisher?: string;
|
|
21
|
+
ordinal?: number;
|
|
22
|
+
metadata?: Record<string, any>;
|
|
23
|
+
}
|
|
24
|
+
export interface UpdateSkillRequest {
|
|
25
|
+
name?: string;
|
|
26
|
+
description?: string;
|
|
27
|
+
logo_src?: string;
|
|
28
|
+
category?: string;
|
|
29
|
+
url?: string;
|
|
30
|
+
publisher?: string;
|
|
31
|
+
ordinal?: number;
|
|
32
|
+
metadata?: Record<string, any>;
|
|
33
|
+
}
|
|
34
|
+
export interface ListSkillsRequest {
|
|
35
|
+
category?: string;
|
|
36
|
+
search?: string;
|
|
37
|
+
limit?: number;
|
|
38
|
+
offset?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface SkillResponse {
|
|
41
|
+
status: string;
|
|
42
|
+
data: Skill;
|
|
43
|
+
}
|
|
44
|
+
export interface SkillListResponse {
|
|
45
|
+
status: string;
|
|
46
|
+
data: Skill[];
|
|
47
|
+
total: number;
|
|
48
|
+
limit: number;
|
|
49
|
+
offset: number;
|
|
50
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseService } from '../base/base-service';
|
|
2
|
-
import { TaskGroup, ProjectTask, CreateTaskGroupRequest, UpdateTaskGroupRequest, CreateProjectTaskRequest, UpdateProjectTaskRequest, ProjectTaskListResponse, PaginatedTaskGroupsRequest, PaginatedTaskGroupsResponse, PaginatedProjectTasksRequest, PaginatedProjectTasksResponse, GenerateTasksRequest, GenerateTasksResponse, GetTasksByProjectRequest, GetTasksByProjectResponse, UpdateTaskRequest, UpdateTaskResponse, GenerateTasksCustomBackgroundRequest, GenerateTasksCustomBackgroundResponse, GeneratePromptRequest, GeneratePromptResponse } from './task-types';
|
|
2
|
+
import { TaskGroup, ProjectTask, CreateTaskGroupRequest, UpdateTaskGroupRequest, CreateProjectTaskRequest, UpdateProjectTaskRequest, ProjectTaskListResponse, PaginatedTaskGroupsRequest, PaginatedTaskGroupsResponse, PaginatedProjectTasksRequest, PaginatedProjectTasksResponse, GenerateTasksRequest, GenerateTasksResponse, GetTasksByProjectRequest, GetTasksByProjectResponse, UpdateTaskRequest, UpdateTaskResponse, GenerateTasksCustomBackgroundRequest, GenerateTasksCustomBackgroundResponse, GeneratePromptRequest, GeneratePromptResponse, GetGroupedTasksByProjectRequest, GetGroupedTasksByProjectResponse } from './task-types';
|
|
3
3
|
export declare class TaskService extends BaseService {
|
|
4
4
|
getAllTaskGroups(): Promise<TaskGroup[]>;
|
|
5
5
|
getPaginatedTaskGroups(params: PaginatedTaskGroupsRequest): Promise<PaginatedTaskGroupsResponse>;
|
|
@@ -27,6 +27,8 @@ 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>;
|
|
31
|
+
getGroupedTasksByProject(request: GetGroupedTasksByProjectRequest): Promise<GetGroupedTasksByProjectResponse>;
|
|
30
32
|
updateTask(taskId: string, request: UpdateTaskRequest): Promise<UpdateTaskResponse>;
|
|
31
33
|
getProjectTasksbyCodespace(codespaceTaskId: string): Promise<ProjectTaskListResponse>;
|
|
32
34
|
generatePrompt(taskId: string, request?: GeneratePromptRequest): Promise<GeneratePromptResponse>;
|
|
@@ -130,6 +130,16 @@ 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
|
+
}
|
|
138
|
+
// Get Grouped Tasks by Project
|
|
139
|
+
async getGroupedTasksByProject(request) {
|
|
140
|
+
const url = `/project-tasks/by-project/${request.project_id}/grouped`;
|
|
141
|
+
return this.get(url);
|
|
142
|
+
}
|
|
133
143
|
// Update Task
|
|
134
144
|
async updateTask(taskId, request) {
|
|
135
145
|
return this.put(`/project-tasks/${taskId}`, request);
|
|
@@ -185,3 +185,24 @@ export interface GeneratePromptResponse {
|
|
|
185
185
|
status: string;
|
|
186
186
|
prompt: string;
|
|
187
187
|
}
|
|
188
|
+
export interface GetGroupedTasksByProjectRequest {
|
|
189
|
+
project_id: string;
|
|
190
|
+
}
|
|
191
|
+
export interface TaskGroupWithTasks {
|
|
192
|
+
task_group_id: string;
|
|
193
|
+
created_at: string;
|
|
194
|
+
codespace_task_id: string | null;
|
|
195
|
+
raw_tasks: {
|
|
196
|
+
tasks: RawTask[];
|
|
197
|
+
expanded_tasks: RawTask[];
|
|
198
|
+
};
|
|
199
|
+
task_count: number;
|
|
200
|
+
tasks: ProjectTask[];
|
|
201
|
+
}
|
|
202
|
+
export interface GetGroupedTasksByProjectResponse {
|
|
203
|
+
status: string;
|
|
204
|
+
project_id: string;
|
|
205
|
+
total_groups: number;
|
|
206
|
+
total_tasks: number;
|
|
207
|
+
data: TaskGroupWithTasks[];
|
|
208
|
+
}
|
package/package.json
CHANGED
|
@@ -155,7 +155,7 @@ export interface GenerateAnswersResponse {
|
|
|
155
155
|
}>
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
-
export type ProjectMode = 'prd_only' | 'full_application' | 'prototype' | 'mvp'
|
|
158
|
+
export type ProjectMode = 'prd_only' | 'full_application' | 'prototype' | 'mvp' | 'wireframe_only'
|
|
159
159
|
|
|
160
160
|
export interface ProjectOutline {
|
|
161
161
|
core_features: Array<{
|
package/services/index.ts
CHANGED
|
@@ -25,6 +25,9 @@ export { StreamingService } from './streaming'
|
|
|
25
25
|
export { ChatService } from './chat'
|
|
26
26
|
export { DataManagementService } from './data-management'
|
|
27
27
|
export { PromptGenerationsService } from './prompt-generations'
|
|
28
|
+
export { PlatformsService } from './platforms'
|
|
29
|
+
export { MCPServersService } from './mcp-servers'
|
|
30
|
+
export { SkillsService } from './skills'
|
|
28
31
|
|
|
29
32
|
// Re-export all types for convenience
|
|
30
33
|
export * from './generation'
|
|
@@ -44,3 +47,6 @@ export * from './streaming'
|
|
|
44
47
|
export * from './chat'
|
|
45
48
|
export * from './data-management'
|
|
46
49
|
export * from './prompt-generations'
|
|
50
|
+
export * from './platforms'
|
|
51
|
+
export * from './mcp-servers'
|
|
52
|
+
export * from './skills'
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BaseService } from '../base/base-service'
|
|
2
|
+
import {
|
|
3
|
+
MCPServer,
|
|
4
|
+
CreateMCPServerRequest,
|
|
5
|
+
UpdateMCPServerRequest,
|
|
6
|
+
ListMCPServersRequest,
|
|
7
|
+
MCPServerResponse,
|
|
8
|
+
MCPServerListResponse,
|
|
9
|
+
} from './mcp-servers-types'
|
|
10
|
+
|
|
11
|
+
export class MCPServersService extends BaseService {
|
|
12
|
+
async listMCPServers(params?: ListMCPServersRequest): Promise<MCPServerListResponse> {
|
|
13
|
+
const queryParams = new URLSearchParams()
|
|
14
|
+
|
|
15
|
+
if (params?.category) queryParams.append('category', params.category)
|
|
16
|
+
if (params?.search) queryParams.append('search', params.search)
|
|
17
|
+
if (params?.limit !== undefined) queryParams.append('limit', params.limit.toString())
|
|
18
|
+
if (params?.offset !== undefined) queryParams.append('offset', params.offset.toString())
|
|
19
|
+
|
|
20
|
+
const url = `/mcp-servers/${queryParams.toString() ? `?${queryParams.toString()}` : ''}`
|
|
21
|
+
return this.get<MCPServerListResponse>(url)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async getMCPServer(id: string): Promise<MCPServerResponse> {
|
|
25
|
+
return this.get<MCPServerResponse>(`/mcp-servers/${id}`)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
async createMCPServer(request: CreateMCPServerRequest): Promise<MCPServerResponse> {
|
|
29
|
+
return this.post<MCPServerResponse>('/mcp-servers/', request)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
async updateMCPServer(id: string, request: UpdateMCPServerRequest): Promise<MCPServerResponse> {
|
|
33
|
+
return this.put<MCPServerResponse>(`/mcp-servers/${id}`, request)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async deleteMCPServer(id: string): Promise<{ status: string; message: string }> {
|
|
37
|
+
return this.delete<{ status: string; message: string }>(`/mcp-servers/${id}`)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export interface MCPServer {
|
|
2
|
+
id: string
|
|
3
|
+
name: string
|
|
4
|
+
description: string
|
|
5
|
+
logo_src?: string
|
|
6
|
+
category?: string
|
|
7
|
+
url?: string
|
|
8
|
+
publisher?: string
|
|
9
|
+
ordinal?: number
|
|
10
|
+
metadata?: Record<string, any>
|
|
11
|
+
is_active: boolean
|
|
12
|
+
created_at: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface CreateMCPServerRequest {
|
|
16
|
+
name: string
|
|
17
|
+
description: string
|
|
18
|
+
logo_src?: string
|
|
19
|
+
category?: string
|
|
20
|
+
url?: string
|
|
21
|
+
publisher?: string
|
|
22
|
+
ordinal?: number
|
|
23
|
+
metadata?: Record<string, any>
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface UpdateMCPServerRequest {
|
|
27
|
+
name?: string
|
|
28
|
+
description?: string
|
|
29
|
+
logo_src?: string
|
|
30
|
+
category?: string
|
|
31
|
+
url?: string
|
|
32
|
+
publisher?: string
|
|
33
|
+
ordinal?: number
|
|
34
|
+
metadata?: Record<string, any>
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface ListMCPServersRequest {
|
|
38
|
+
category?: string
|
|
39
|
+
search?: string
|
|
40
|
+
limit?: number
|
|
41
|
+
offset?: number
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface MCPServerResponse {
|
|
45
|
+
status: string
|
|
46
|
+
data: MCPServer
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface MCPServerListResponse {
|
|
50
|
+
status: string
|
|
51
|
+
data: MCPServer[]
|
|
52
|
+
total: number
|
|
53
|
+
limit: number
|
|
54
|
+
offset: number
|
|
55
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BaseService } from '../base/base-service'
|
|
2
|
+
import {
|
|
3
|
+
PlatformResource,
|
|
4
|
+
CreatePlatformRequest,
|
|
5
|
+
UpdatePlatformRequest,
|
|
6
|
+
ListPlatformsRequest,
|
|
7
|
+
PlatformResponse,
|
|
8
|
+
PlatformListResponse,
|
|
9
|
+
} from './platforms-types'
|
|
10
|
+
|
|
11
|
+
export class PlatformsService extends BaseService {
|
|
12
|
+
async listPlatforms(params?: ListPlatformsRequest): Promise<PlatformListResponse> {
|
|
13
|
+
const queryParams = new URLSearchParams()
|
|
14
|
+
|
|
15
|
+
if (params?.category) queryParams.append('category', params.category)
|
|
16
|
+
if (params?.search) queryParams.append('search', params.search)
|
|
17
|
+
if (params?.limit !== undefined) queryParams.append('limit', params.limit.toString())
|
|
18
|
+
if (params?.offset !== undefined) queryParams.append('offset', params.offset.toString())
|
|
19
|
+
|
|
20
|
+
const url = `/platforms/${queryParams.toString() ? `?${queryParams.toString()}` : ''}`
|
|
21
|
+
return this.get<PlatformListResponse>(url)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async getPlatform(id: string): Promise<PlatformResponse> {
|
|
25
|
+
return this.get<PlatformResponse>(`/platforms/${id}`)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
async createPlatform(request: CreatePlatformRequest): Promise<PlatformResponse> {
|
|
29
|
+
return this.post<PlatformResponse>('/platforms/', request)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
async updatePlatform(id: string, request: UpdatePlatformRequest): Promise<PlatformResponse> {
|
|
33
|
+
return this.put<PlatformResponse>(`/platforms/${id}`, request)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async deletePlatform(id: string): Promise<{ status: string; message: string }> {
|
|
37
|
+
return this.delete<{ status: string; message: string }>(`/platforms/${id}`)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export interface PlatformResource {
|
|
2
|
+
id: string
|
|
3
|
+
name: string
|
|
4
|
+
description: string
|
|
5
|
+
logo_src?: string
|
|
6
|
+
category?: string
|
|
7
|
+
url?: string
|
|
8
|
+
publisher?: string
|
|
9
|
+
ordinal?: number
|
|
10
|
+
metadata?: Record<string, any>
|
|
11
|
+
is_active: boolean
|
|
12
|
+
created_at: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface CreatePlatformRequest {
|
|
16
|
+
name: string
|
|
17
|
+
description: string
|
|
18
|
+
logo_src?: string
|
|
19
|
+
category?: string
|
|
20
|
+
url?: string
|
|
21
|
+
publisher?: string
|
|
22
|
+
ordinal?: number
|
|
23
|
+
metadata?: Record<string, any>
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface UpdatePlatformRequest {
|
|
27
|
+
name?: string
|
|
28
|
+
description?: string
|
|
29
|
+
logo_src?: string
|
|
30
|
+
category?: string
|
|
31
|
+
url?: string
|
|
32
|
+
publisher?: string
|
|
33
|
+
ordinal?: number
|
|
34
|
+
metadata?: Record<string, any>
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface ListPlatformsRequest {
|
|
38
|
+
category?: string
|
|
39
|
+
search?: string
|
|
40
|
+
limit?: number
|
|
41
|
+
offset?: number
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface PlatformResponse {
|
|
45
|
+
status: string
|
|
46
|
+
data: PlatformResource
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface PlatformListResponse {
|
|
50
|
+
status: string
|
|
51
|
+
data: PlatformResource[]
|
|
52
|
+
total: number
|
|
53
|
+
limit: number
|
|
54
|
+
offset: number
|
|
55
|
+
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
export interface ProjectRepository {
|
|
3
2
|
id: string
|
|
4
3
|
name: string
|
|
@@ -51,7 +50,13 @@ export interface Project {
|
|
|
51
50
|
}>
|
|
52
51
|
document_types?: string[]
|
|
53
52
|
is_generated?: boolean
|
|
54
|
-
project_mode?:
|
|
53
|
+
project_mode?:
|
|
54
|
+
| 'prd_only'
|
|
55
|
+
| 'full_application'
|
|
56
|
+
| 'prototype'
|
|
57
|
+
| 'mvp'
|
|
58
|
+
| 'task_only'
|
|
59
|
+
| 'wireframe_only'
|
|
55
60
|
}
|
|
56
61
|
codie_tool_id?: string
|
|
57
62
|
existing_project_repo_url?: string | null
|
|
@@ -144,7 +149,7 @@ export interface CreateProjectRequest {
|
|
|
144
149
|
}>
|
|
145
150
|
document_types?: string[]
|
|
146
151
|
is_generated?: boolean
|
|
147
|
-
project_mode?: 'prd_only' | 'full_application' | 'prototype' | 'mvp'
|
|
152
|
+
project_mode?: 'prd_only' | 'full_application' | 'prototype' | 'mvp' | 'task_only'
|
|
148
153
|
}
|
|
149
154
|
codie_tool_id?: string
|
|
150
155
|
existing_project_repo_url?: string
|
|
@@ -182,7 +187,7 @@ export interface UpdateProjectRequest {
|
|
|
182
187
|
}>
|
|
183
188
|
document_types?: string[]
|
|
184
189
|
is_generated?: boolean
|
|
185
|
-
project_mode?: 'prd_only' | 'full_application' | 'prototype' | 'mvp'
|
|
190
|
+
project_mode?: 'prd_only' | 'full_application' | 'prototype' | 'mvp' | 'task_only'
|
|
186
191
|
}
|
|
187
192
|
codie_tool_id?: string
|
|
188
193
|
existing_project_repo_url?: string
|
|
@@ -257,4 +262,3 @@ export interface GetAiToolsResponse {
|
|
|
257
262
|
status: string
|
|
258
263
|
data: AITool[]
|
|
259
264
|
}
|
|
260
|
-
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BaseService } from '../base/base-service'
|
|
2
|
+
import {
|
|
3
|
+
Skill,
|
|
4
|
+
CreateSkillRequest,
|
|
5
|
+
UpdateSkillRequest,
|
|
6
|
+
ListSkillsRequest,
|
|
7
|
+
SkillResponse,
|
|
8
|
+
SkillListResponse,
|
|
9
|
+
} from './skills-types'
|
|
10
|
+
|
|
11
|
+
export class SkillsService extends BaseService {
|
|
12
|
+
async listSkills(params?: ListSkillsRequest): Promise<SkillListResponse> {
|
|
13
|
+
const queryParams = new URLSearchParams()
|
|
14
|
+
|
|
15
|
+
if (params?.category) queryParams.append('category', params.category)
|
|
16
|
+
if (params?.search) queryParams.append('search', params.search)
|
|
17
|
+
if (params?.limit !== undefined) queryParams.append('limit', params.limit.toString())
|
|
18
|
+
if (params?.offset !== undefined) queryParams.append('offset', params.offset.toString())
|
|
19
|
+
|
|
20
|
+
const url = `/skills/${queryParams.toString() ? `?${queryParams.toString()}` : ''}`
|
|
21
|
+
return this.get<SkillListResponse>(url)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async getSkill(id: string): Promise<SkillResponse> {
|
|
25
|
+
return this.get<SkillResponse>(`/skills/${id}`)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
async createSkill(request: CreateSkillRequest): Promise<SkillResponse> {
|
|
29
|
+
return this.post<SkillResponse>('/skills/', request)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
async updateSkill(id: string, request: UpdateSkillRequest): Promise<SkillResponse> {
|
|
33
|
+
return this.put<SkillResponse>(`/skills/${id}`, request)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async deleteSkill(id: string): Promise<{ status: string; message: string }> {
|
|
37
|
+
return this.delete<{ status: string; message: string }>(`/skills/${id}`)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export interface Skill {
|
|
2
|
+
id: string
|
|
3
|
+
name: string
|
|
4
|
+
description: string
|
|
5
|
+
logo_src?: string
|
|
6
|
+
category?: string
|
|
7
|
+
url?: string
|
|
8
|
+
publisher?: string
|
|
9
|
+
ordinal?: number
|
|
10
|
+
metadata?: Record<string, any>
|
|
11
|
+
is_active: boolean
|
|
12
|
+
created_at: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface CreateSkillRequest {
|
|
16
|
+
name: string
|
|
17
|
+
description: string
|
|
18
|
+
logo_src?: string
|
|
19
|
+
category?: string
|
|
20
|
+
url?: string
|
|
21
|
+
publisher?: string
|
|
22
|
+
ordinal?: number
|
|
23
|
+
metadata?: Record<string, any>
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface UpdateSkillRequest {
|
|
27
|
+
name?: string
|
|
28
|
+
description?: string
|
|
29
|
+
logo_src?: string
|
|
30
|
+
category?: string
|
|
31
|
+
url?: string
|
|
32
|
+
publisher?: string
|
|
33
|
+
ordinal?: number
|
|
34
|
+
metadata?: Record<string, any>
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface ListSkillsRequest {
|
|
38
|
+
category?: string
|
|
39
|
+
search?: string
|
|
40
|
+
limit?: number
|
|
41
|
+
offset?: number
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface SkillResponse {
|
|
45
|
+
status: string
|
|
46
|
+
data: Skill
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface SkillListResponse {
|
|
50
|
+
status: string
|
|
51
|
+
data: Skill[]
|
|
52
|
+
total: number
|
|
53
|
+
limit: number
|
|
54
|
+
offset: number
|
|
55
|
+
}
|
|
@@ -24,6 +24,8 @@ import {
|
|
|
24
24
|
GenerateTasksCustomBackgroundResponse,
|
|
25
25
|
GeneratePromptRequest,
|
|
26
26
|
GeneratePromptResponse,
|
|
27
|
+
GetGroupedTasksByProjectRequest,
|
|
28
|
+
GetGroupedTasksByProjectResponse,
|
|
27
29
|
} from './task-types'
|
|
28
30
|
|
|
29
31
|
export class TaskService extends BaseService {
|
|
@@ -189,6 +191,20 @@ export class TaskService extends BaseService {
|
|
|
189
191
|
return this.get<GetTasksByProjectResponse>(url)
|
|
190
192
|
}
|
|
191
193
|
|
|
194
|
+
// Get Latest Tasks by Project (from most recent task group)
|
|
195
|
+
async getLatestTasksByProject(projectId: string): Promise<GetTasksByProjectResponse> {
|
|
196
|
+
const url = `/project-tasks/by-project/${projectId}/latest`
|
|
197
|
+
return this.get<GetTasksByProjectResponse>(url)
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// Get Grouped Tasks by Project
|
|
201
|
+
async getGroupedTasksByProject(
|
|
202
|
+
request: GetGroupedTasksByProjectRequest
|
|
203
|
+
): Promise<GetGroupedTasksByProjectResponse> {
|
|
204
|
+
const url = `/project-tasks/by-project/${request.project_id}/grouped`
|
|
205
|
+
return this.get<GetGroupedTasksByProjectResponse>(url)
|
|
206
|
+
}
|
|
207
|
+
|
|
192
208
|
// Update Task
|
|
193
209
|
async updateTask(taskId: string, request: UpdateTaskRequest): Promise<UpdateTaskResponse> {
|
|
194
210
|
return this.put<UpdateTaskResponse>(`/project-tasks/${taskId}`, request)
|
|
@@ -212,3 +212,27 @@ export interface GeneratePromptResponse {
|
|
|
212
212
|
status: string
|
|
213
213
|
prompt: string
|
|
214
214
|
}
|
|
215
|
+
|
|
216
|
+
export interface GetGroupedTasksByProjectRequest {
|
|
217
|
+
project_id: string
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export interface TaskGroupWithTasks {
|
|
221
|
+
task_group_id: string
|
|
222
|
+
created_at: string
|
|
223
|
+
codespace_task_id: string | null
|
|
224
|
+
raw_tasks: {
|
|
225
|
+
tasks: RawTask[]
|
|
226
|
+
expanded_tasks: RawTask[]
|
|
227
|
+
}
|
|
228
|
+
task_count: number
|
|
229
|
+
tasks: ProjectTask[]
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
export interface GetGroupedTasksByProjectResponse {
|
|
233
|
+
status: string
|
|
234
|
+
project_id: string
|
|
235
|
+
total_groups: number
|
|
236
|
+
total_tasks: number
|
|
237
|
+
data: TaskGroupWithTasks[]
|
|
238
|
+
}
|