@codeguide/core 0.0.27 → 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.
Files changed (92) hide show
  1. package/README.md +50 -41
  2. package/__tests__/services/codespace/codespace-v2.test.ts +29 -18
  3. package/__tests__/services/usage/usage-service.test.ts +597 -85
  4. package/codeguide.ts +6 -0
  5. package/dist/codeguide.d.ts +3 -1
  6. package/dist/codeguide.js +2 -0
  7. package/dist/index.d.ts +4 -3
  8. package/dist/services/base/base-service.d.ts +21 -0
  9. package/dist/services/base/base-service.js +114 -0
  10. package/dist/services/codespace/codespace-service.d.ts +55 -1
  11. package/dist/services/codespace/codespace-service.js +260 -5
  12. package/dist/services/codespace/codespace-types.d.ts +193 -13
  13. package/dist/services/codespace/index.d.ts +1 -1
  14. package/dist/services/index.d.ts +4 -0
  15. package/dist/services/index.js +7 -1
  16. package/dist/services/projects/project-types.d.ts +66 -32
  17. package/dist/services/repository-analysis/repository-types.d.ts +1 -0
  18. package/dist/services/starter-kits/index.d.ts +2 -0
  19. package/dist/services/starter-kits/index.js +20 -0
  20. package/dist/services/starter-kits/starter-kits-service.d.ts +13 -0
  21. package/dist/services/starter-kits/starter-kits-service.js +27 -0
  22. package/dist/services/starter-kits/starter-kits-types.d.ts +34 -0
  23. package/dist/services/starter-kits/starter-kits-types.js +2 -0
  24. package/dist/services/tasks/task-service.d.ts +2 -1
  25. package/dist/services/tasks/task-service.js +8 -0
  26. package/dist/services/tasks/task-types.d.ts +26 -7
  27. package/dist/services/usage/usage-service.d.ts +5 -2
  28. package/dist/services/usage/usage-service.js +58 -9
  29. package/dist/services/usage/usage-types.d.ts +207 -34
  30. package/dist/services/users/index.d.ts +2 -0
  31. package/dist/services/users/index.js +20 -0
  32. package/dist/services/users/user-service.d.ts +12 -0
  33. package/dist/services/users/user-service.js +17 -0
  34. package/dist/services/users/user-types.d.ts +55 -0
  35. package/dist/services/users/user-types.js +2 -0
  36. package/docs/.vitepress/README.md +51 -0
  37. package/docs/.vitepress/config.ts +139 -0
  38. package/docs/.vitepress/theme/custom.css +80 -0
  39. package/docs/.vitepress/theme/index.ts +13 -0
  40. package/docs/.vitepress/tsconfig.json +19 -0
  41. package/docs/QUICKSTART.md +77 -0
  42. package/docs/README.md +134 -0
  43. package/docs/README_SETUP.md +46 -0
  44. package/docs/authentication.md +351 -0
  45. package/docs/codeguide-client.md +350 -0
  46. package/docs/codespace-models.md +1004 -0
  47. package/docs/codespace-service.md +558 -81
  48. package/docs/index.md +135 -0
  49. package/docs/package.json +14 -0
  50. package/docs/projects-service.md +688 -0
  51. package/docs/security-keys-service.md +773 -0
  52. package/docs/starter-kits-service.md +249 -0
  53. package/docs/task-service.md +955 -0
  54. package/docs/testsprite_tests/TC001_Homepage_Load_and_Hero_Section_Display.py +70 -0
  55. package/docs/testsprite_tests/TC002_Sidebar_Navigation_ExpandCollapse_Functionality.py +73 -0
  56. package/docs/testsprite_tests/TC003_Full_Text_Local_Search_with_Keyboard_Shortcut.py +90 -0
  57. package/docs/testsprite_tests/TC004_Dark_Mode_Toggle_and_Persistence.py +73 -0
  58. package/docs/testsprite_tests/TC005_Mobile_Responsiveness_and_Touch_Navigation.py +113 -0
  59. package/docs/testsprite_tests/TC006_GitHub_Integration_Edit_this_page_Links.py +73 -0
  60. package/docs/testsprite_tests/TC007_Syntax_Highlighting_and_Code_Copy_Functionality.py +73 -0
  61. package/docs/testsprite_tests/TC008_Auto_Generated_Table_of_Contents_Accuracy.py +73 -0
  62. package/docs/testsprite_tests/TC009_SEO_and_Content_Discoverability_Verification.py +73 -0
  63. package/docs/testsprite_tests/TC010_Accessibility_Compliance_WCAG_AA.py +73 -0
  64. package/docs/testsprite_tests/TC011_Local_Development_Workflow_Build_and_Hot_Reload.py +74 -0
  65. package/docs/testsprite_tests/TC012_Performance_Metrics_Compliance.py +73 -0
  66. package/docs/testsprite_tests/standard_prd.json +122 -0
  67. package/docs/testsprite_tests/testsprite-mcp-test-report.html +2508 -0
  68. package/docs/testsprite_tests/testsprite-mcp-test-report.md +273 -0
  69. package/docs/testsprite_tests/testsprite_frontend_test_plan.json +390 -0
  70. package/docs/usage-service.md +616 -0
  71. package/index.ts +11 -3
  72. package/package.json +16 -2
  73. package/plans/CODESPACE_LOGS_STREAMING_GUIDE.md +320 -0
  74. package/plans/CODESPACE_TASK_LOGS_API_COMPLETE_GUIDE.md +821 -0
  75. package/services/base/base-service.ts +130 -0
  76. package/services/codespace/codespace-service.ts +347 -8
  77. package/services/codespace/codespace-types.ts +263 -14
  78. package/services/codespace/index.ts +16 -1
  79. package/services/index.ts +4 -0
  80. package/services/projects/README.md +107 -34
  81. package/services/projects/project-types.ts +69 -32
  82. package/services/repository-analysis/repository-types.ts +1 -0
  83. package/services/starter-kits/index.ts +2 -0
  84. package/services/starter-kits/starter-kits-service.ts +33 -0
  85. package/services/starter-kits/starter-kits-types.ts +38 -0
  86. package/services/tasks/task-service.ts +10 -0
  87. package/services/tasks/task-types.ts +29 -7
  88. package/services/usage/usage-service.ts +59 -10
  89. package/services/usage/usage-types.ts +239 -34
  90. package/services/users/index.ts +2 -0
  91. package/services/users/user-service.ts +15 -0
  92. package/services/users/user-types.ts +59 -0
@@ -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 CreditBalanceResponse {
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,43 +39,67 @@ 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
+ export interface CreditBalance {
43
+ total_allotted: number;
44
+ total_consumed: number;
45
+ remaining_credits: number;
46
+ is_over_limit: boolean;
47
+ utilization_percentage: number;
48
+ billing_cycle_start: string;
49
+ billing_cycle_end: string;
42
50
  }
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;
51
+ export interface LimitInfo {
52
+ allowed?: boolean;
53
+ current_usage?: number;
54
+ limit: number;
55
+ remaining?: number;
56
+ period_type?: string;
57
+ period_start?: string | null;
58
+ period_end?: string | null;
59
+ message?: string;
60
+ is_unlimited: boolean;
61
+ period?: string;
62
+ description?: string;
63
+ }
64
+ export interface PlanLimits {
65
+ plan_type: string;
66
+ limits: {
67
+ codespace_tasks: LimitInfo;
68
+ api_calls: LimitInfo;
69
+ storage_gb: LimitInfo;
70
+ projects: LimitInfo;
71
+ collaborators: LimitInfo;
62
72
  };
63
73
  }
64
- export interface AuthorizationResponse {
74
+ export interface AuthorizationSubscription {
75
+ id: string;
76
+ status: string;
77
+ interval: string;
78
+ current_period_start: string;
79
+ current_period_end: string;
80
+ price_id: string;
81
+ product_name: string | null;
82
+ plan_name: string;
83
+ }
84
+ export interface AuthorizationData {
65
85
  user_id: string;
66
- subscription: {
67
- plan: string;
68
- status: string;
69
- features: string[];
70
- };
71
- usage_limits: {
72
- monthly_credits: number;
73
- max_calls_per_day: number;
74
- };
75
- permissions: string[];
86
+ subscription: AuthorizationSubscription | null;
87
+ credit_balance: CreditBalance;
88
+ has_active_subscription: boolean;
89
+ has_previous_subscriptions: boolean;
90
+ is_within_credit_limit: boolean;
91
+ authorization_level: string;
92
+ restrictions: string[];
93
+ can_create_tasks: boolean;
94
+ can_analyze_repos: boolean;
95
+ can_access_previous_projects: boolean;
96
+ plan_limits: PlanLimits;
97
+ codespace_task_limit: LimitInfo | null;
98
+ }
99
+ export interface AuthorizationResponse {
100
+ success: boolean;
101
+ data: AuthorizationData;
102
+ message: string;
76
103
  }
77
104
  export interface FreeUserStatusResponse {
78
105
  is_free_user: boolean;
@@ -131,3 +158,149 @@ export interface HealthResponse {
131
158
  timestamp: string;
132
159
  version: string;
133
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,2 @@
1
+ export { UserService } from './user-service';
2
+ export * from './user-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.UserService = void 0;
18
+ var user_service_1 = require("./user-service");
19
+ Object.defineProperty(exports, "UserService", { enumerable: true, get: function () { return user_service_1.UserService; } });
20
+ __exportStar(require("./user-types"), exports);
@@ -0,0 +1,12 @@
1
+ import { BaseService } from '../base/base-service';
2
+ import { GetCurrentClerkUserResponse } from './user-types';
3
+ export declare class UserService extends BaseService {
4
+ /**
5
+ * Get the current Clerk user information
6
+ *
7
+ * GET /users/me/clerk
8
+ *
9
+ * @returns Promise resolving to the current Clerk user data
10
+ */
11
+ getCurrentClerkUser(): Promise<GetCurrentClerkUserResponse>;
12
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserService = void 0;
4
+ const base_service_1 = require("../base/base-service");
5
+ class UserService extends base_service_1.BaseService {
6
+ /**
7
+ * Get the current Clerk user information
8
+ *
9
+ * GET /users/me/clerk
10
+ *
11
+ * @returns Promise resolving to the current Clerk user data
12
+ */
13
+ async getCurrentClerkUser() {
14
+ return this.get('/users/me/clerk');
15
+ }
16
+ }
17
+ exports.UserService = UserService;
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Email address verification information
3
+ */
4
+ export interface EmailVerification {
5
+ status: 'verified' | 'unverified';
6
+ strategy: string;
7
+ }
8
+ /**
9
+ * Email address information
10
+ */
11
+ export interface EmailAddress {
12
+ id: string;
13
+ email_address: string;
14
+ verification: EmailVerification;
15
+ }
16
+ /**
17
+ * Clerk user metadata
18
+ */
19
+ export interface ClerkUserMetadata {
20
+ [key: string]: any;
21
+ }
22
+ /**
23
+ * Clerk user data structure
24
+ */
25
+ export interface ClerkUserData {
26
+ user_id: string;
27
+ first_name: string | null;
28
+ last_name: string | null;
29
+ username: string | null;
30
+ email_addresses: EmailAddress[];
31
+ phone_numbers: Array<{
32
+ id: string;
33
+ phone_number: string;
34
+ verification: {
35
+ status: 'verified' | 'unverified';
36
+ strategy: string;
37
+ };
38
+ }>;
39
+ primary_email_address: string | null;
40
+ primary_phone_number: string | null;
41
+ image_url: string | null;
42
+ created_at: number;
43
+ updated_at: number;
44
+ last_sign_in_at: number | null;
45
+ public_metadata: ClerkUserMetadata;
46
+ private_metadata: ClerkUserMetadata;
47
+ unsafe_metadata: ClerkUserMetadata;
48
+ }
49
+ /**
50
+ * Response for getting current Clerk user
51
+ */
52
+ export interface GetCurrentClerkUserResponse {
53
+ status: 'success' | 'error';
54
+ data: ClerkUserData;
55
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -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
+