@codeguide/core 0.0.28 → 0.0.29
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/__tests__/services/usage/usage-service.test.ts +442 -83
- package/codeguide.ts +3 -0
- package/dist/codeguide.d.ts +2 -1
- package/dist/codeguide.js +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/services/base/base-service.d.ts +21 -0
- package/dist/services/base/base-service.js +114 -0
- package/dist/services/codespace/codespace-service.d.ts +55 -1
- package/dist/services/codespace/codespace-service.js +257 -0
- package/dist/services/codespace/codespace-types.d.ts +192 -12
- package/dist/services/codespace/index.d.ts +1 -1
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.js +4 -1
- package/dist/services/projects/project-types.d.ts +66 -32
- package/dist/services/starter-kits/index.d.ts +2 -0
- package/dist/services/starter-kits/index.js +20 -0
- package/dist/services/starter-kits/starter-kits-service.d.ts +13 -0
- package/dist/services/starter-kits/starter-kits-service.js +27 -0
- package/dist/services/starter-kits/starter-kits-types.d.ts +34 -0
- package/dist/services/starter-kits/starter-kits-types.js +2 -0
- package/dist/services/tasks/task-service.d.ts +2 -1
- package/dist/services/tasks/task-service.js +8 -0
- package/dist/services/tasks/task-types.d.ts +26 -7
- package/dist/services/usage/usage-service.d.ts +5 -2
- package/dist/services/usage/usage-service.js +58 -9
- package/dist/services/usage/usage-types.d.ts +150 -26
- package/docs/.vitepress/README.md +51 -0
- package/docs/.vitepress/config.ts +139 -0
- package/docs/.vitepress/theme/custom.css +80 -0
- package/docs/.vitepress/theme/index.ts +13 -0
- package/docs/.vitepress/tsconfig.json +19 -0
- package/docs/QUICKSTART.md +77 -0
- package/docs/README.md +134 -0
- package/docs/README_SETUP.md +46 -0
- package/docs/authentication.md +351 -0
- package/docs/codeguide-client.md +350 -0
- package/docs/codespace-models.md +1004 -0
- package/docs/codespace-service.md +444 -0
- package/docs/index.md +135 -0
- package/docs/package.json +14 -0
- package/docs/projects-service.md +688 -0
- package/docs/security-keys-service.md +773 -0
- package/docs/starter-kits-service.md +249 -0
- package/docs/task-service.md +955 -0
- package/docs/testsprite_tests/TC001_Homepage_Load_and_Hero_Section_Display.py +70 -0
- package/docs/testsprite_tests/TC002_Sidebar_Navigation_ExpandCollapse_Functionality.py +73 -0
- package/docs/testsprite_tests/TC003_Full_Text_Local_Search_with_Keyboard_Shortcut.py +90 -0
- package/docs/testsprite_tests/TC004_Dark_Mode_Toggle_and_Persistence.py +73 -0
- package/docs/testsprite_tests/TC005_Mobile_Responsiveness_and_Touch_Navigation.py +113 -0
- package/docs/testsprite_tests/TC006_GitHub_Integration_Edit_this_page_Links.py +73 -0
- package/docs/testsprite_tests/TC007_Syntax_Highlighting_and_Code_Copy_Functionality.py +73 -0
- package/docs/testsprite_tests/TC008_Auto_Generated_Table_of_Contents_Accuracy.py +73 -0
- package/docs/testsprite_tests/TC009_SEO_and_Content_Discoverability_Verification.py +73 -0
- package/docs/testsprite_tests/TC010_Accessibility_Compliance_WCAG_AA.py +73 -0
- package/docs/testsprite_tests/TC011_Local_Development_Workflow_Build_and_Hot_Reload.py +74 -0
- package/docs/testsprite_tests/TC012_Performance_Metrics_Compliance.py +73 -0
- package/docs/testsprite_tests/standard_prd.json +122 -0
- package/docs/testsprite_tests/testsprite-mcp-test-report.html +2508 -0
- package/docs/testsprite_tests/testsprite-mcp-test-report.md +273 -0
- package/docs/testsprite_tests/testsprite_frontend_test_plan.json +390 -0
- package/docs/usage-service.md +291 -1
- package/index.ts +11 -3
- package/package.json +16 -2
- package/plans/CODESPACE_LOGS_STREAMING_GUIDE.md +320 -0
- package/plans/CODESPACE_TASK_LOGS_API_COMPLETE_GUIDE.md +821 -0
- package/services/base/base-service.ts +130 -0
- package/services/codespace/codespace-service.ts +337 -0
- package/services/codespace/codespace-types.ts +262 -13
- package/services/codespace/index.ts +16 -1
- package/services/index.ts +2 -0
- package/services/projects/README.md +107 -34
- package/services/projects/project-types.ts +69 -32
- package/services/starter-kits/index.ts +2 -0
- package/services/starter-kits/starter-kits-service.ts +33 -0
- package/services/starter-kits/starter-kits-types.ts +38 -0
- package/services/tasks/task-service.ts +10 -0
- package/services/tasks/task-types.ts +29 -7
- package/services/usage/usage-service.ts +59 -10
- package/services/usage/usage-types.ts +178 -27
|
@@ -11,6 +11,7 @@ class UsageService extends base_service_1.BaseService {
|
|
|
11
11
|
}
|
|
12
12
|
async checkCredits(params) {
|
|
13
13
|
const queryParams = new URLSearchParams();
|
|
14
|
+
queryParams.append('model_key', params.model_key);
|
|
14
15
|
if (params.input_tokens !== undefined)
|
|
15
16
|
queryParams.append('input_tokens', params.input_tokens.toString());
|
|
16
17
|
if (params.output_tokens !== undefined)
|
|
@@ -20,15 +21,6 @@ class UsageService extends base_service_1.BaseService {
|
|
|
20
21
|
const url = `/usage/credit-check?${queryParams.toString()}`;
|
|
21
22
|
return this.get(url);
|
|
22
23
|
}
|
|
23
|
-
async getUsageSummary(params) {
|
|
24
|
-
const queryParams = new URLSearchParams();
|
|
25
|
-
if (params?.start_date)
|
|
26
|
-
queryParams.append('start_date', params.start_date);
|
|
27
|
-
if (params?.end_date)
|
|
28
|
-
queryParams.append('end_date', params.end_date);
|
|
29
|
-
const url = `/usage/summary${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
|
30
|
-
return this.get(url);
|
|
31
|
-
}
|
|
32
24
|
async getAuthorization() {
|
|
33
25
|
return this.get('/usage/authorization');
|
|
34
26
|
}
|
|
@@ -64,5 +56,62 @@ class UsageService extends base_service_1.BaseService {
|
|
|
64
56
|
return false;
|
|
65
57
|
}
|
|
66
58
|
}
|
|
59
|
+
// Dashboard Analytics Methods
|
|
60
|
+
async getDashboardAnalytics(params) {
|
|
61
|
+
const queryParams = new URLSearchParams();
|
|
62
|
+
if (params?.period)
|
|
63
|
+
queryParams.append('period', params.period);
|
|
64
|
+
if (params?.start_date)
|
|
65
|
+
queryParams.append('start_date', params.start_date);
|
|
66
|
+
if (params?.end_date)
|
|
67
|
+
queryParams.append('end_date', params.end_date);
|
|
68
|
+
if (params?.service_type)
|
|
69
|
+
queryParams.append('service_type', params.service_type);
|
|
70
|
+
const url = `/usage/dashboard/analytics${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
|
71
|
+
return this.get(url);
|
|
72
|
+
}
|
|
73
|
+
async getUsageDetails(params) {
|
|
74
|
+
const queryParams = new URLSearchParams();
|
|
75
|
+
if (params?.period)
|
|
76
|
+
queryParams.append('period', params.period);
|
|
77
|
+
if (params?.start_date)
|
|
78
|
+
queryParams.append('start_date', params.start_date);
|
|
79
|
+
if (params?.end_date)
|
|
80
|
+
queryParams.append('end_date', params.end_date);
|
|
81
|
+
if (params?.service_type)
|
|
82
|
+
queryParams.append('service_type', params.service_type);
|
|
83
|
+
if (params?.page !== undefined)
|
|
84
|
+
queryParams.append('page', params.page.toString());
|
|
85
|
+
if (params?.page_size !== undefined)
|
|
86
|
+
queryParams.append('page_size', params.page_size.toString());
|
|
87
|
+
if (params?.sort_by)
|
|
88
|
+
queryParams.append('sort_by', params.sort_by);
|
|
89
|
+
if (params?.sort_order)
|
|
90
|
+
queryParams.append('sort_order', params.sort_order);
|
|
91
|
+
const url = `/usage/dashboard/details${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
|
92
|
+
return this.get(url);
|
|
93
|
+
}
|
|
94
|
+
async getUsageSummary(params) {
|
|
95
|
+
const queryParams = new URLSearchParams();
|
|
96
|
+
if (params?.period)
|
|
97
|
+
queryParams.append('period', params.period);
|
|
98
|
+
if (params?.start_date)
|
|
99
|
+
queryParams.append('start_date', params.start_date);
|
|
100
|
+
if (params?.end_date)
|
|
101
|
+
queryParams.append('end_date', params.end_date);
|
|
102
|
+
const url = `/usage/dashboard/summary${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
|
103
|
+
return this.get(url);
|
|
104
|
+
}
|
|
105
|
+
async getServiceBreakdown(params) {
|
|
106
|
+
const queryParams = new URLSearchParams();
|
|
107
|
+
if (params?.period)
|
|
108
|
+
queryParams.append('period', params.period);
|
|
109
|
+
if (params?.start_date)
|
|
110
|
+
queryParams.append('start_date', params.start_date);
|
|
111
|
+
if (params?.end_date)
|
|
112
|
+
queryParams.append('end_date', params.end_date);
|
|
113
|
+
const url = `/usage/dashboard/services${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
|
114
|
+
return this.get(url);
|
|
115
|
+
}
|
|
67
116
|
}
|
|
68
117
|
exports.UsageService = UsageService;
|
|
@@ -11,7 +11,7 @@ export interface TrackUsageResponse {
|
|
|
11
11
|
remaining_credits: number;
|
|
12
12
|
message: string;
|
|
13
13
|
}
|
|
14
|
-
export interface
|
|
14
|
+
export interface CreditBalanceData {
|
|
15
15
|
user_id: string;
|
|
16
16
|
total_consumed: number;
|
|
17
17
|
total_allotted: number;
|
|
@@ -24,6 +24,9 @@ export interface CreditBalanceResponse {
|
|
|
24
24
|
status: string;
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
+
export interface CreditBalanceResponse {
|
|
28
|
+
data: CreditBalanceData;
|
|
29
|
+
}
|
|
27
30
|
export interface CreditCheckRequest {
|
|
28
31
|
model_key: string;
|
|
29
32
|
input_tokens?: number;
|
|
@@ -36,31 +39,6 @@ export interface CreditCheckResponse {
|
|
|
36
39
|
remaining_credits: number;
|
|
37
40
|
model_key: string;
|
|
38
41
|
}
|
|
39
|
-
export interface UsageSummaryRequest {
|
|
40
|
-
start_date?: string;
|
|
41
|
-
end_date?: string;
|
|
42
|
-
}
|
|
43
|
-
export interface UsageSummaryResponse {
|
|
44
|
-
user_id: string;
|
|
45
|
-
period: {
|
|
46
|
-
start_date: string;
|
|
47
|
-
end_date: string;
|
|
48
|
-
};
|
|
49
|
-
usage_summary: {
|
|
50
|
-
total_credits_used: number;
|
|
51
|
-
total_calls: number;
|
|
52
|
-
model_breakdown: Record<string, any>;
|
|
53
|
-
daily_usage: Array<{
|
|
54
|
-
date: string;
|
|
55
|
-
credits_used: number;
|
|
56
|
-
calls: number;
|
|
57
|
-
}>;
|
|
58
|
-
};
|
|
59
|
-
subscription: {
|
|
60
|
-
plan: string;
|
|
61
|
-
status: string;
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
42
|
export interface CreditBalance {
|
|
65
43
|
total_allotted: number;
|
|
66
44
|
total_consumed: number;
|
|
@@ -180,3 +158,149 @@ export interface HealthResponse {
|
|
|
180
158
|
timestamp: string;
|
|
181
159
|
version: string;
|
|
182
160
|
}
|
|
161
|
+
export type PeriodType = "7d" | "1w" | "1m" | "3m";
|
|
162
|
+
export type ServiceType = "docs" | "chat" | "codespace_task" | "api";
|
|
163
|
+
export type SortOrder = "asc" | "desc";
|
|
164
|
+
export type SortByField = "created_at" | "credits_consumed" | "cost_amount";
|
|
165
|
+
export interface DashboardAnalyticsRequest {
|
|
166
|
+
period?: PeriodType;
|
|
167
|
+
start_date?: string;
|
|
168
|
+
end_date?: string;
|
|
169
|
+
service_type?: ServiceType;
|
|
170
|
+
}
|
|
171
|
+
export interface DailyUsage {
|
|
172
|
+
date: string;
|
|
173
|
+
credits_consumed: number;
|
|
174
|
+
cost_usd: number;
|
|
175
|
+
requests_count: number;
|
|
176
|
+
average_credits_per_request: number;
|
|
177
|
+
}
|
|
178
|
+
export interface ServiceUsage {
|
|
179
|
+
service_type: ServiceType;
|
|
180
|
+
credits_consumed: number;
|
|
181
|
+
requests_count: number;
|
|
182
|
+
}
|
|
183
|
+
export interface AnalyticsTotals {
|
|
184
|
+
credits_consumed: number;
|
|
185
|
+
cost_usd: number;
|
|
186
|
+
requests_count: number;
|
|
187
|
+
}
|
|
188
|
+
export interface AnalyticsAverages {
|
|
189
|
+
daily_credits: number;
|
|
190
|
+
daily_requests: number;
|
|
191
|
+
}
|
|
192
|
+
export interface AnalyticsTrends {
|
|
193
|
+
credits_consumed: number;
|
|
194
|
+
requests_count: number;
|
|
195
|
+
}
|
|
196
|
+
export interface PeriodInfo {
|
|
197
|
+
start: string;
|
|
198
|
+
end: string;
|
|
199
|
+
label: string;
|
|
200
|
+
}
|
|
201
|
+
export interface DashboardAnalyticsResponse {
|
|
202
|
+
status: string;
|
|
203
|
+
data: {
|
|
204
|
+
period: PeriodInfo;
|
|
205
|
+
daily_usage: DailyUsage[];
|
|
206
|
+
totals: AnalyticsTotals;
|
|
207
|
+
averages: AnalyticsAverages;
|
|
208
|
+
trends: AnalyticsTrends;
|
|
209
|
+
top_services: ServiceUsage[];
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
export interface UsageDetailsRequest {
|
|
213
|
+
period?: PeriodType;
|
|
214
|
+
start_date?: string;
|
|
215
|
+
end_date?: string;
|
|
216
|
+
service_type?: ServiceType;
|
|
217
|
+
page?: number;
|
|
218
|
+
page_size?: number;
|
|
219
|
+
sort_by?: SortByField;
|
|
220
|
+
sort_order?: SortOrder;
|
|
221
|
+
}
|
|
222
|
+
export interface UsageDetailRecord {
|
|
223
|
+
id: string;
|
|
224
|
+
created_at: string;
|
|
225
|
+
service_type: ServiceType;
|
|
226
|
+
model_name: string;
|
|
227
|
+
usage_type: string;
|
|
228
|
+
units_consumed: number;
|
|
229
|
+
credits_consumed: number;
|
|
230
|
+
cost_amount: number | null;
|
|
231
|
+
}
|
|
232
|
+
export interface UsageDetailsPagination {
|
|
233
|
+
page: number;
|
|
234
|
+
page_size: number;
|
|
235
|
+
total_count: number;
|
|
236
|
+
total_pages: number;
|
|
237
|
+
has_next: boolean;
|
|
238
|
+
has_prev: boolean;
|
|
239
|
+
}
|
|
240
|
+
export interface UsageDetailsFilters {
|
|
241
|
+
period: string | null;
|
|
242
|
+
start_date: string | null;
|
|
243
|
+
end_date: string | null;
|
|
244
|
+
service_type: string | null;
|
|
245
|
+
}
|
|
246
|
+
export interface UsageDetailsResponse {
|
|
247
|
+
status: string;
|
|
248
|
+
data: UsageDetailRecord[];
|
|
249
|
+
pagination: UsageDetailsPagination;
|
|
250
|
+
filters: UsageDetailsFilters;
|
|
251
|
+
}
|
|
252
|
+
export interface UsageSummaryRequest {
|
|
253
|
+
period?: PeriodType;
|
|
254
|
+
start_date?: string;
|
|
255
|
+
end_date?: string;
|
|
256
|
+
}
|
|
257
|
+
export interface CurrentPeriodUsage {
|
|
258
|
+
credits_consumed: number;
|
|
259
|
+
cost_usd: number;
|
|
260
|
+
requests_count: number;
|
|
261
|
+
}
|
|
262
|
+
export interface PreviousPeriodUsage {
|
|
263
|
+
credits_consumed: number;
|
|
264
|
+
cost_usd: number;
|
|
265
|
+
requests_count: number;
|
|
266
|
+
}
|
|
267
|
+
export interface BillingCycleInfo {
|
|
268
|
+
total_allotted: number;
|
|
269
|
+
total_consumed: number;
|
|
270
|
+
remaining_credits: number;
|
|
271
|
+
}
|
|
272
|
+
export interface UsageSummaryResponse {
|
|
273
|
+
status: string;
|
|
274
|
+
data: {
|
|
275
|
+
current_period: CurrentPeriodUsage;
|
|
276
|
+
previous_period: PreviousPeriodUsage;
|
|
277
|
+
billing_cycle: BillingCycleInfo;
|
|
278
|
+
utilization_percentage: number;
|
|
279
|
+
remaining_credits: number;
|
|
280
|
+
daily_average: number;
|
|
281
|
+
projected_monthly: number;
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
export interface ServiceBreakdownRequest {
|
|
285
|
+
period?: PeriodType;
|
|
286
|
+
start_date?: string;
|
|
287
|
+
end_date?: string;
|
|
288
|
+
}
|
|
289
|
+
export interface ServiceBreakdown {
|
|
290
|
+
service_type: ServiceType;
|
|
291
|
+
credits_consumed: number;
|
|
292
|
+
percentage: number;
|
|
293
|
+
cost_usd: number;
|
|
294
|
+
requests_count: number;
|
|
295
|
+
trend: number;
|
|
296
|
+
}
|
|
297
|
+
export interface ServiceBreakdownData {
|
|
298
|
+
period: PeriodInfo;
|
|
299
|
+
services: ServiceBreakdown[];
|
|
300
|
+
total_credits: number;
|
|
301
|
+
total_cost: number;
|
|
302
|
+
}
|
|
303
|
+
export interface ServiceBreakdownResponse {
|
|
304
|
+
status: string;
|
|
305
|
+
data: ServiceBreakdownData;
|
|
306
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# VitePress Documentation Setup
|
|
2
|
+
|
|
3
|
+
This directory contains the VitePress configuration for the @codeguide/core documentation.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
|
|
7
|
+
- `config.ts` - Main VitePress configuration file (TypeScript)
|
|
8
|
+
- `theme/` - Custom theme files
|
|
9
|
+
- `index.ts` - Theme entry point
|
|
10
|
+
- `custom.css` - Custom styles
|
|
11
|
+
|
|
12
|
+
## Development
|
|
13
|
+
|
|
14
|
+
To run the documentation locally:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
cd packages/core
|
|
18
|
+
npm install
|
|
19
|
+
npm run docs:dev
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Then open http://localhost:5173
|
|
23
|
+
|
|
24
|
+
## Building
|
|
25
|
+
|
|
26
|
+
To build the documentation for production:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm run docs:build
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The output will be in `packages/core/docs/.vitepress/dist`
|
|
33
|
+
|
|
34
|
+
## Preview
|
|
35
|
+
|
|
36
|
+
To preview the built documentation:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npm run docs:preview
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Configuration
|
|
43
|
+
|
|
44
|
+
The main configuration is in `config.ts`. Key features:
|
|
45
|
+
|
|
46
|
+
- TypeScript-based configuration
|
|
47
|
+
- Sidebar navigation
|
|
48
|
+
- Search functionality
|
|
49
|
+
- Edit links to GitHub
|
|
50
|
+
- Custom theme styling
|
|
51
|
+
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { defineConfig } from 'vitepress'
|
|
2
|
+
|
|
3
|
+
export default defineConfig({
|
|
4
|
+
title: '@codeguide/core',
|
|
5
|
+
description: 'Documentation for @codeguide/core package - TypeScript SDK for CodeGuide API',
|
|
6
|
+
|
|
7
|
+
// Server configuration
|
|
8
|
+
server: {
|
|
9
|
+
port: 5174,
|
|
10
|
+
host: true,
|
|
11
|
+
},
|
|
12
|
+
|
|
13
|
+
// Base URL if deploying to a subdirectory
|
|
14
|
+
base: '/',
|
|
15
|
+
|
|
16
|
+
// Theme configuration
|
|
17
|
+
themeConfig: {
|
|
18
|
+
// Logo (optional)
|
|
19
|
+
logo: '/logo.png', // You can add a logo later
|
|
20
|
+
|
|
21
|
+
// Site title in nav
|
|
22
|
+
siteTitle: '@codeguide/core',
|
|
23
|
+
|
|
24
|
+
// Navigation bar
|
|
25
|
+
nav: [
|
|
26
|
+
{ text: 'Home', link: '/' },
|
|
27
|
+
{ text: 'Getting Started', link: '/codeguide-client' },
|
|
28
|
+
{ text: 'Services', link: '/projects-service' },
|
|
29
|
+
{ text: 'GitHub', link: 'https://github.com/CodeGuide-dev/codeguide' },
|
|
30
|
+
],
|
|
31
|
+
|
|
32
|
+
// Sidebar navigation
|
|
33
|
+
sidebar: [
|
|
34
|
+
{
|
|
35
|
+
text: 'Getting Started',
|
|
36
|
+
items: [
|
|
37
|
+
{ text: 'Overview', link: '/' },
|
|
38
|
+
{ text: 'CodeGuide Client', link: '/codeguide-client' },
|
|
39
|
+
{ text: 'Authentication', link: '/authentication' },
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
text: 'Services',
|
|
44
|
+
items: [
|
|
45
|
+
{ text: 'Projects Service', link: '/projects-service' },
|
|
46
|
+
{ text: 'Codespace Service', link: '/codespace-service' },
|
|
47
|
+
{ text: 'Codespace Models', link: '/codespace-models' },
|
|
48
|
+
{ text: 'Security Keys Service', link: '/security-keys-service' },
|
|
49
|
+
{ text: 'Usage Service', link: '/usage-service' },
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
|
|
54
|
+
// Social links
|
|
55
|
+
socialLinks: [
|
|
56
|
+
{ icon: 'github', link: 'https://github.com/CodeGuide-dev/codeguide' },
|
|
57
|
+
],
|
|
58
|
+
|
|
59
|
+
// Search configuration
|
|
60
|
+
search: {
|
|
61
|
+
provider: 'local',
|
|
62
|
+
options: {
|
|
63
|
+
locales: {
|
|
64
|
+
root: {
|
|
65
|
+
translations: {
|
|
66
|
+
button: {
|
|
67
|
+
buttonText: 'Search',
|
|
68
|
+
buttonAriaLabel: 'Search documentation',
|
|
69
|
+
},
|
|
70
|
+
modal: {
|
|
71
|
+
noResultsText: 'No results for',
|
|
72
|
+
resetButtonTitle: 'Reset search',
|
|
73
|
+
footer: {
|
|
74
|
+
selectText: 'to select',
|
|
75
|
+
navigateText: 'to navigate',
|
|
76
|
+
closeText: 'to close',
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
|
|
85
|
+
// Footer
|
|
86
|
+
footer: {
|
|
87
|
+
message: 'Released under the MIT License.',
|
|
88
|
+
copyright: 'Copyright © 2024 CodeGuide Team',
|
|
89
|
+
},
|
|
90
|
+
|
|
91
|
+
// Edit link
|
|
92
|
+
editLink: {
|
|
93
|
+
pattern: 'https://github.com/CodeGuide-dev/codeguide/blob/main/packages/core/docs/:path',
|
|
94
|
+
text: 'Edit this page on GitHub',
|
|
95
|
+
},
|
|
96
|
+
|
|
97
|
+
// Carbon ads (optional - remove if not needed)
|
|
98
|
+
// carbonAds: {
|
|
99
|
+
// code: 'your-code',
|
|
100
|
+
// placement: 'your-placement'
|
|
101
|
+
// },
|
|
102
|
+
|
|
103
|
+
// Last updated
|
|
104
|
+
lastUpdated: {
|
|
105
|
+
text: 'Last updated',
|
|
106
|
+
},
|
|
107
|
+
|
|
108
|
+
// Outline configuration
|
|
109
|
+
outline: {
|
|
110
|
+
level: [2, 3],
|
|
111
|
+
label: 'On this page',
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
// Doc footer (prev/next links)
|
|
115
|
+
docFooter: {
|
|
116
|
+
prev: 'Previous page',
|
|
117
|
+
next: 'Next page',
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
|
|
121
|
+
// Markdown configuration
|
|
122
|
+
markdown: {
|
|
123
|
+
lineNumbers: true,
|
|
124
|
+
theme: {
|
|
125
|
+
light: 'github-light',
|
|
126
|
+
dark: 'github-dark',
|
|
127
|
+
},
|
|
128
|
+
// Disable Vue component parsing in markdown to avoid conflicts
|
|
129
|
+
breaks: false,
|
|
130
|
+
},
|
|
131
|
+
|
|
132
|
+
// Head configuration
|
|
133
|
+
head: [
|
|
134
|
+
['meta', { name: 'viewport', content: 'width=device-width, initial-scale=1.0' }],
|
|
135
|
+
['meta', { name: 'description', content: 'Documentation for @codeguide/core package' }],
|
|
136
|
+
['link', { rel: 'icon', href: '/favicon.ico' }],
|
|
137
|
+
],
|
|
138
|
+
})
|
|
139
|
+
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* Custom styles for VitePress theme */
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--vp-c-brand: #42b983;
|
|
5
|
+
--vp-c-brand-light: #42b983;
|
|
6
|
+
--vp-c-brand-lighter: #66d9a3;
|
|
7
|
+
--vp-c-brand-lightest: #8ae5b8;
|
|
8
|
+
--vp-c-brand-dark: #35495e;
|
|
9
|
+
--vp-c-brand-darker: #2c3e50;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* Code block styling */
|
|
13
|
+
.vp-code-group .tabs {
|
|
14
|
+
border-radius: 8px 8px 0 0;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.vp-code-group .blocks {
|
|
18
|
+
border-radius: 0 0 8px 8px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/* Custom code block background */
|
|
22
|
+
div[class*='language-'] {
|
|
23
|
+
background-color: var(--vp-code-block-bg);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* Improve table styling */
|
|
27
|
+
table {
|
|
28
|
+
display: table;
|
|
29
|
+
width: 100%;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/* Better spacing for method documentation */
|
|
33
|
+
.method-doc {
|
|
34
|
+
margin-bottom: 2rem;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.method-doc h3 {
|
|
38
|
+
margin-top: 2rem;
|
|
39
|
+
padding-bottom: 0.5rem;
|
|
40
|
+
border-bottom: 1px solid var(--vp-c-divider);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* Improve code example readability */
|
|
44
|
+
.vp-code-group {
|
|
45
|
+
margin: 1.5rem 0;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/* Better list spacing */
|
|
49
|
+
.vp-doc ul,
|
|
50
|
+
.vp-doc ol {
|
|
51
|
+
padding-left: 1.5rem;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* Improve type definition blocks */
|
|
55
|
+
.type-definition {
|
|
56
|
+
background-color: var(--vp-c-bg-soft);
|
|
57
|
+
padding: 1rem;
|
|
58
|
+
border-radius: 8px;
|
|
59
|
+
margin: 1rem 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* Custom badge styling */
|
|
63
|
+
.badge {
|
|
64
|
+
display: inline-block;
|
|
65
|
+
padding: 0.25rem 0.5rem;
|
|
66
|
+
border-radius: 4px;
|
|
67
|
+
font-size: 0.875rem;
|
|
68
|
+
font-weight: 500;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.badge-required {
|
|
72
|
+
background-color: var(--vp-c-red-soft);
|
|
73
|
+
color: var(--vp-c-red);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.badge-optional {
|
|
77
|
+
background-color: var(--vp-c-yellow-soft);
|
|
78
|
+
color: var(--vp-c-yellow);
|
|
79
|
+
}
|
|
80
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Theme } from 'vitepress'
|
|
2
|
+
import DefaultTheme from 'vitepress/theme'
|
|
3
|
+
import './custom.css'
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
extends: DefaultTheme,
|
|
7
|
+
enhanceApp({ app }) {
|
|
8
|
+
// You can add custom Vue components here if needed
|
|
9
|
+
// Example:
|
|
10
|
+
// app.component('CustomComponent', CustomComponent)
|
|
11
|
+
},
|
|
12
|
+
} satisfies Theme
|
|
13
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
6
|
+
"moduleResolution": "bundler",
|
|
7
|
+
"strict": true,
|
|
8
|
+
"jsx": "preserve",
|
|
9
|
+
"esModuleInterop": true,
|
|
10
|
+
"skipLibCheck": true,
|
|
11
|
+
"forceConsistentCasingInFileNames": true,
|
|
12
|
+
"resolveJsonModule": true,
|
|
13
|
+
"isolatedModules": true,
|
|
14
|
+
"types": ["node"]
|
|
15
|
+
},
|
|
16
|
+
"include": ["config.ts", "theme/**/*.ts"],
|
|
17
|
+
"exclude": ["node_modules"]
|
|
18
|
+
}
|
|
19
|
+
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Quick Start Guide
|
|
2
|
+
|
|
3
|
+
## Running the Documentation Locally
|
|
4
|
+
|
|
5
|
+
1. **Install dependencies** (if not already installed):
|
|
6
|
+
```bash
|
|
7
|
+
cd packages/core
|
|
8
|
+
npm install
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
2. **Start the development server**:
|
|
12
|
+
```bash
|
|
13
|
+
npm run docs:dev
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
3. **Open your browser**:
|
|
17
|
+
Navigate to http://localhost:5173
|
|
18
|
+
|
|
19
|
+
## Building for Production
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm run docs:build
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The built files will be in `packages/core/docs/.vitepress/dist`
|
|
26
|
+
|
|
27
|
+
## Previewing the Build
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm run docs:preview
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Project Structure
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
docs/
|
|
37
|
+
├── .vitepress/
|
|
38
|
+
│ ├── config.ts # VitePress configuration (TypeScript)
|
|
39
|
+
│ ├── theme/
|
|
40
|
+
│ │ ├── index.ts # Theme customization
|
|
41
|
+
│ │ └── custom.css # Custom styles
|
|
42
|
+
│ └── tsconfig.json # TypeScript config for VitePress
|
|
43
|
+
├── README.md # Homepage
|
|
44
|
+
├── codeguide-client.md # Client documentation
|
|
45
|
+
├── authentication.md # Authentication docs
|
|
46
|
+
├── projects-service.md # Projects service docs
|
|
47
|
+
├── codespace-service.md # Codespace service docs
|
|
48
|
+
├── codespace-models.md # Models documentation
|
|
49
|
+
├── security-keys-service.md # Security keys docs
|
|
50
|
+
└── usage-service.md # Usage service docs
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Features
|
|
54
|
+
|
|
55
|
+
- ✅ TypeScript-based configuration
|
|
56
|
+
- ✅ Fast hot module replacement
|
|
57
|
+
- ✅ Built-in search
|
|
58
|
+
- ✅ Dark mode support
|
|
59
|
+
- ✅ Mobile responsive
|
|
60
|
+
- ✅ SEO optimized
|
|
61
|
+
- ✅ Edit links to GitHub
|
|
62
|
+
|
|
63
|
+
## Customization
|
|
64
|
+
|
|
65
|
+
### Changing Colors
|
|
66
|
+
|
|
67
|
+
Edit `docs/.vitepress/theme/custom.css` to customize the color scheme.
|
|
68
|
+
|
|
69
|
+
### Adding Pages
|
|
70
|
+
|
|
71
|
+
1. Create a new `.md` file in the `docs/` directory
|
|
72
|
+
2. Add it to the sidebar in `docs/.vitepress/config.ts`
|
|
73
|
+
|
|
74
|
+
### Custom Components
|
|
75
|
+
|
|
76
|
+
Add Vue components in `docs/.vitepress/theme/index.ts` in the `enhanceApp` function.
|
|
77
|
+
|