@usesidekick/react 0.1.0

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 (48) hide show
  1. package/README.md +246 -0
  2. package/dist/index.d.mts +358 -0
  3. package/dist/index.d.ts +358 -0
  4. package/dist/index.js +2470 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +2403 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/dist/jsx-dev-runtime.d.mts +21 -0
  9. package/dist/jsx-dev-runtime.d.ts +21 -0
  10. package/dist/jsx-dev-runtime.js +160 -0
  11. package/dist/jsx-dev-runtime.js.map +1 -0
  12. package/dist/jsx-dev-runtime.mjs +122 -0
  13. package/dist/jsx-dev-runtime.mjs.map +1 -0
  14. package/dist/jsx-runtime.d.mts +26 -0
  15. package/dist/jsx-runtime.d.ts +26 -0
  16. package/dist/jsx-runtime.js +150 -0
  17. package/dist/jsx-runtime.js.map +1 -0
  18. package/dist/jsx-runtime.mjs +109 -0
  19. package/dist/jsx-runtime.mjs.map +1 -0
  20. package/dist/server/index.d.mts +235 -0
  21. package/dist/server/index.d.ts +235 -0
  22. package/dist/server/index.js +642 -0
  23. package/dist/server/index.js.map +1 -0
  24. package/dist/server/index.mjs +597 -0
  25. package/dist/server/index.mjs.map +1 -0
  26. package/package.json +64 -0
  27. package/src/components/SidekickPanel.tsx +868 -0
  28. package/src/components/index.ts +1 -0
  29. package/src/context.tsx +157 -0
  30. package/src/flags.ts +47 -0
  31. package/src/index.ts +71 -0
  32. package/src/jsx-dev-runtime.ts +138 -0
  33. package/src/jsx-runtime.ts +159 -0
  34. package/src/loader.ts +35 -0
  35. package/src/primitives/behavior.ts +70 -0
  36. package/src/primitives/data.ts +91 -0
  37. package/src/primitives/index.ts +3 -0
  38. package/src/primitives/ui.ts +268 -0
  39. package/src/provider.tsx +1264 -0
  40. package/src/runtime-loader.ts +106 -0
  41. package/src/server/drizzle-adapter.ts +53 -0
  42. package/src/server/drizzle-schema.ts +16 -0
  43. package/src/server/generate.ts +578 -0
  44. package/src/server/handler.ts +343 -0
  45. package/src/server/index.ts +20 -0
  46. package/src/server/storage.ts +1 -0
  47. package/src/server/types.ts +49 -0
  48. package/src/types.ts +295 -0
@@ -0,0 +1,235 @@
1
+ import { NextRequest, NextResponse } from 'next/server';
2
+ import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
3
+
4
+ interface OverrideRecord {
5
+ id: string;
6
+ name: string;
7
+ description: string;
8
+ version: string;
9
+ primitives: string;
10
+ code: string;
11
+ enabled: boolean;
12
+ createdAt: Date;
13
+ updatedAt: Date;
14
+ }
15
+ interface NewOverrideRecord {
16
+ id: string;
17
+ name: string;
18
+ description: string;
19
+ version: string;
20
+ primitives: string;
21
+ code: string;
22
+ enabled?: boolean;
23
+ createdAt?: Date;
24
+ updatedAt?: Date;
25
+ }
26
+ interface OverrideManifest {
27
+ id: string;
28
+ name: string;
29
+ description: string;
30
+ version: string;
31
+ primitives: string[];
32
+ }
33
+ interface GeneratedOverride {
34
+ manifest: OverrideManifest;
35
+ code: string;
36
+ }
37
+ interface SidekickHandlerOptions {
38
+ storage: SidekickStorage;
39
+ schemaPath?: string;
40
+ }
41
+ interface SidekickStorage {
42
+ listOverrides(): Promise<OverrideRecord[]>;
43
+ getOverride(id: string): Promise<OverrideRecord | null>;
44
+ createOverride(data: NewOverrideRecord): Promise<void>;
45
+ updateOverride(id: string, data: Partial<OverrideRecord>): Promise<void>;
46
+ deleteOverride(id: string): Promise<void>;
47
+ }
48
+
49
+ declare function createSidekickHandler(options: SidekickHandlerOptions): {
50
+ GET(req: NextRequest): Promise<NextResponse>;
51
+ POST(req: NextRequest): Promise<NextResponse>;
52
+ };
53
+
54
+ declare const sidekickOverrides: drizzle_orm_pg_core.PgTableWithColumns<{
55
+ name: "overrides";
56
+ schema: undefined;
57
+ columns: {
58
+ id: drizzle_orm_pg_core.PgColumn<{
59
+ name: "id";
60
+ tableName: "overrides";
61
+ dataType: "string";
62
+ columnType: "PgText";
63
+ data: string;
64
+ driverParam: string;
65
+ notNull: true;
66
+ hasDefault: false;
67
+ isPrimaryKey: true;
68
+ isAutoincrement: false;
69
+ hasRuntimeDefault: false;
70
+ enumValues: [string, ...string[]];
71
+ baseColumn: never;
72
+ identity: undefined;
73
+ generated: undefined;
74
+ }, {}, {}>;
75
+ name: drizzle_orm_pg_core.PgColumn<{
76
+ name: "name";
77
+ tableName: "overrides";
78
+ dataType: "string";
79
+ columnType: "PgText";
80
+ data: string;
81
+ driverParam: string;
82
+ notNull: true;
83
+ hasDefault: false;
84
+ isPrimaryKey: false;
85
+ isAutoincrement: false;
86
+ hasRuntimeDefault: false;
87
+ enumValues: [string, ...string[]];
88
+ baseColumn: never;
89
+ identity: undefined;
90
+ generated: undefined;
91
+ }, {}, {}>;
92
+ description: drizzle_orm_pg_core.PgColumn<{
93
+ name: "description";
94
+ tableName: "overrides";
95
+ dataType: "string";
96
+ columnType: "PgText";
97
+ data: string;
98
+ driverParam: string;
99
+ notNull: true;
100
+ hasDefault: false;
101
+ isPrimaryKey: false;
102
+ isAutoincrement: false;
103
+ hasRuntimeDefault: false;
104
+ enumValues: [string, ...string[]];
105
+ baseColumn: never;
106
+ identity: undefined;
107
+ generated: undefined;
108
+ }, {}, {}>;
109
+ version: drizzle_orm_pg_core.PgColumn<{
110
+ name: "version";
111
+ tableName: "overrides";
112
+ dataType: "string";
113
+ columnType: "PgText";
114
+ data: string;
115
+ driverParam: string;
116
+ notNull: true;
117
+ hasDefault: true;
118
+ isPrimaryKey: false;
119
+ isAutoincrement: false;
120
+ hasRuntimeDefault: false;
121
+ enumValues: [string, ...string[]];
122
+ baseColumn: never;
123
+ identity: undefined;
124
+ generated: undefined;
125
+ }, {}, {}>;
126
+ primitives: drizzle_orm_pg_core.PgColumn<{
127
+ name: "primitives";
128
+ tableName: "overrides";
129
+ dataType: "string";
130
+ columnType: "PgText";
131
+ data: string;
132
+ driverParam: string;
133
+ notNull: true;
134
+ hasDefault: false;
135
+ isPrimaryKey: false;
136
+ isAutoincrement: false;
137
+ hasRuntimeDefault: false;
138
+ enumValues: [string, ...string[]];
139
+ baseColumn: never;
140
+ identity: undefined;
141
+ generated: undefined;
142
+ }, {}, {}>;
143
+ code: drizzle_orm_pg_core.PgColumn<{
144
+ name: "code";
145
+ tableName: "overrides";
146
+ dataType: "string";
147
+ columnType: "PgText";
148
+ data: string;
149
+ driverParam: string;
150
+ notNull: true;
151
+ hasDefault: false;
152
+ isPrimaryKey: false;
153
+ isAutoincrement: false;
154
+ hasRuntimeDefault: false;
155
+ enumValues: [string, ...string[]];
156
+ baseColumn: never;
157
+ identity: undefined;
158
+ generated: undefined;
159
+ }, {}, {}>;
160
+ enabled: drizzle_orm_pg_core.PgColumn<{
161
+ name: "enabled";
162
+ tableName: "overrides";
163
+ dataType: "boolean";
164
+ columnType: "PgBoolean";
165
+ data: boolean;
166
+ driverParam: boolean;
167
+ notNull: true;
168
+ hasDefault: true;
169
+ isPrimaryKey: false;
170
+ isAutoincrement: false;
171
+ hasRuntimeDefault: false;
172
+ enumValues: undefined;
173
+ baseColumn: never;
174
+ identity: undefined;
175
+ generated: undefined;
176
+ }, {}, {}>;
177
+ createdAt: drizzle_orm_pg_core.PgColumn<{
178
+ name: "created_at";
179
+ tableName: "overrides";
180
+ dataType: "date";
181
+ columnType: "PgTimestamp";
182
+ data: Date;
183
+ driverParam: string;
184
+ notNull: true;
185
+ hasDefault: true;
186
+ isPrimaryKey: false;
187
+ isAutoincrement: false;
188
+ hasRuntimeDefault: false;
189
+ enumValues: undefined;
190
+ baseColumn: never;
191
+ identity: undefined;
192
+ generated: undefined;
193
+ }, {}, {}>;
194
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
195
+ name: "updated_at";
196
+ tableName: "overrides";
197
+ dataType: "date";
198
+ columnType: "PgTimestamp";
199
+ data: Date;
200
+ driverParam: string;
201
+ notNull: true;
202
+ hasDefault: true;
203
+ isPrimaryKey: false;
204
+ isAutoincrement: false;
205
+ hasRuntimeDefault: false;
206
+ enumValues: undefined;
207
+ baseColumn: never;
208
+ identity: undefined;
209
+ generated: undefined;
210
+ }, {}, {}>;
211
+ };
212
+ dialect: "pg";
213
+ }>;
214
+ type SidekickOverride = typeof sidekickOverrides.$inferSelect;
215
+ type NewSidekickOverride = typeof sidekickOverrides.$inferInsert;
216
+
217
+ type DrizzleDb = {
218
+ select(): any;
219
+ insert(table: any): any;
220
+ update(table: any): any;
221
+ delete(table: any): any;
222
+ };
223
+ declare function createDrizzleStorage(db: DrizzleDb, overridesTable: typeof sidekickOverrides): SidekickStorage;
224
+
225
+ declare function formatDesignSystem(schema: Record<string, unknown>): string;
226
+ declare function buildSystemPrompt(schema: Record<string, unknown>): string;
227
+ declare function buildUserPrompt(request: string, previousErrors?: string[], existingCode?: string): string;
228
+ declare function callAI(request: string, schema: Record<string, unknown>, apiKey: string, previousErrors?: string[], existingCode?: string): Promise<GeneratedOverride>;
229
+ declare function parseAIResponse(text: string): GeneratedOverride;
230
+ declare function validateCode(code: string): {
231
+ valid: boolean;
232
+ errors: string[];
233
+ };
234
+
235
+ export { type GeneratedOverride, type NewOverrideRecord, type NewSidekickOverride, type OverrideManifest, type OverrideRecord, type SidekickHandlerOptions, type SidekickOverride, type SidekickStorage, buildSystemPrompt, buildUserPrompt, callAI, createDrizzleStorage, createSidekickHandler, formatDesignSystem, parseAIResponse, sidekickOverrides, validateCode };
@@ -0,0 +1,235 @@
1
+ import { NextRequest, NextResponse } from 'next/server';
2
+ import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
3
+
4
+ interface OverrideRecord {
5
+ id: string;
6
+ name: string;
7
+ description: string;
8
+ version: string;
9
+ primitives: string;
10
+ code: string;
11
+ enabled: boolean;
12
+ createdAt: Date;
13
+ updatedAt: Date;
14
+ }
15
+ interface NewOverrideRecord {
16
+ id: string;
17
+ name: string;
18
+ description: string;
19
+ version: string;
20
+ primitives: string;
21
+ code: string;
22
+ enabled?: boolean;
23
+ createdAt?: Date;
24
+ updatedAt?: Date;
25
+ }
26
+ interface OverrideManifest {
27
+ id: string;
28
+ name: string;
29
+ description: string;
30
+ version: string;
31
+ primitives: string[];
32
+ }
33
+ interface GeneratedOverride {
34
+ manifest: OverrideManifest;
35
+ code: string;
36
+ }
37
+ interface SidekickHandlerOptions {
38
+ storage: SidekickStorage;
39
+ schemaPath?: string;
40
+ }
41
+ interface SidekickStorage {
42
+ listOverrides(): Promise<OverrideRecord[]>;
43
+ getOverride(id: string): Promise<OverrideRecord | null>;
44
+ createOverride(data: NewOverrideRecord): Promise<void>;
45
+ updateOverride(id: string, data: Partial<OverrideRecord>): Promise<void>;
46
+ deleteOverride(id: string): Promise<void>;
47
+ }
48
+
49
+ declare function createSidekickHandler(options: SidekickHandlerOptions): {
50
+ GET(req: NextRequest): Promise<NextResponse>;
51
+ POST(req: NextRequest): Promise<NextResponse>;
52
+ };
53
+
54
+ declare const sidekickOverrides: drizzle_orm_pg_core.PgTableWithColumns<{
55
+ name: "overrides";
56
+ schema: undefined;
57
+ columns: {
58
+ id: drizzle_orm_pg_core.PgColumn<{
59
+ name: "id";
60
+ tableName: "overrides";
61
+ dataType: "string";
62
+ columnType: "PgText";
63
+ data: string;
64
+ driverParam: string;
65
+ notNull: true;
66
+ hasDefault: false;
67
+ isPrimaryKey: true;
68
+ isAutoincrement: false;
69
+ hasRuntimeDefault: false;
70
+ enumValues: [string, ...string[]];
71
+ baseColumn: never;
72
+ identity: undefined;
73
+ generated: undefined;
74
+ }, {}, {}>;
75
+ name: drizzle_orm_pg_core.PgColumn<{
76
+ name: "name";
77
+ tableName: "overrides";
78
+ dataType: "string";
79
+ columnType: "PgText";
80
+ data: string;
81
+ driverParam: string;
82
+ notNull: true;
83
+ hasDefault: false;
84
+ isPrimaryKey: false;
85
+ isAutoincrement: false;
86
+ hasRuntimeDefault: false;
87
+ enumValues: [string, ...string[]];
88
+ baseColumn: never;
89
+ identity: undefined;
90
+ generated: undefined;
91
+ }, {}, {}>;
92
+ description: drizzle_orm_pg_core.PgColumn<{
93
+ name: "description";
94
+ tableName: "overrides";
95
+ dataType: "string";
96
+ columnType: "PgText";
97
+ data: string;
98
+ driverParam: string;
99
+ notNull: true;
100
+ hasDefault: false;
101
+ isPrimaryKey: false;
102
+ isAutoincrement: false;
103
+ hasRuntimeDefault: false;
104
+ enumValues: [string, ...string[]];
105
+ baseColumn: never;
106
+ identity: undefined;
107
+ generated: undefined;
108
+ }, {}, {}>;
109
+ version: drizzle_orm_pg_core.PgColumn<{
110
+ name: "version";
111
+ tableName: "overrides";
112
+ dataType: "string";
113
+ columnType: "PgText";
114
+ data: string;
115
+ driverParam: string;
116
+ notNull: true;
117
+ hasDefault: true;
118
+ isPrimaryKey: false;
119
+ isAutoincrement: false;
120
+ hasRuntimeDefault: false;
121
+ enumValues: [string, ...string[]];
122
+ baseColumn: never;
123
+ identity: undefined;
124
+ generated: undefined;
125
+ }, {}, {}>;
126
+ primitives: drizzle_orm_pg_core.PgColumn<{
127
+ name: "primitives";
128
+ tableName: "overrides";
129
+ dataType: "string";
130
+ columnType: "PgText";
131
+ data: string;
132
+ driverParam: string;
133
+ notNull: true;
134
+ hasDefault: false;
135
+ isPrimaryKey: false;
136
+ isAutoincrement: false;
137
+ hasRuntimeDefault: false;
138
+ enumValues: [string, ...string[]];
139
+ baseColumn: never;
140
+ identity: undefined;
141
+ generated: undefined;
142
+ }, {}, {}>;
143
+ code: drizzle_orm_pg_core.PgColumn<{
144
+ name: "code";
145
+ tableName: "overrides";
146
+ dataType: "string";
147
+ columnType: "PgText";
148
+ data: string;
149
+ driverParam: string;
150
+ notNull: true;
151
+ hasDefault: false;
152
+ isPrimaryKey: false;
153
+ isAutoincrement: false;
154
+ hasRuntimeDefault: false;
155
+ enumValues: [string, ...string[]];
156
+ baseColumn: never;
157
+ identity: undefined;
158
+ generated: undefined;
159
+ }, {}, {}>;
160
+ enabled: drizzle_orm_pg_core.PgColumn<{
161
+ name: "enabled";
162
+ tableName: "overrides";
163
+ dataType: "boolean";
164
+ columnType: "PgBoolean";
165
+ data: boolean;
166
+ driverParam: boolean;
167
+ notNull: true;
168
+ hasDefault: true;
169
+ isPrimaryKey: false;
170
+ isAutoincrement: false;
171
+ hasRuntimeDefault: false;
172
+ enumValues: undefined;
173
+ baseColumn: never;
174
+ identity: undefined;
175
+ generated: undefined;
176
+ }, {}, {}>;
177
+ createdAt: drizzle_orm_pg_core.PgColumn<{
178
+ name: "created_at";
179
+ tableName: "overrides";
180
+ dataType: "date";
181
+ columnType: "PgTimestamp";
182
+ data: Date;
183
+ driverParam: string;
184
+ notNull: true;
185
+ hasDefault: true;
186
+ isPrimaryKey: false;
187
+ isAutoincrement: false;
188
+ hasRuntimeDefault: false;
189
+ enumValues: undefined;
190
+ baseColumn: never;
191
+ identity: undefined;
192
+ generated: undefined;
193
+ }, {}, {}>;
194
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
195
+ name: "updated_at";
196
+ tableName: "overrides";
197
+ dataType: "date";
198
+ columnType: "PgTimestamp";
199
+ data: Date;
200
+ driverParam: string;
201
+ notNull: true;
202
+ hasDefault: true;
203
+ isPrimaryKey: false;
204
+ isAutoincrement: false;
205
+ hasRuntimeDefault: false;
206
+ enumValues: undefined;
207
+ baseColumn: never;
208
+ identity: undefined;
209
+ generated: undefined;
210
+ }, {}, {}>;
211
+ };
212
+ dialect: "pg";
213
+ }>;
214
+ type SidekickOverride = typeof sidekickOverrides.$inferSelect;
215
+ type NewSidekickOverride = typeof sidekickOverrides.$inferInsert;
216
+
217
+ type DrizzleDb = {
218
+ select(): any;
219
+ insert(table: any): any;
220
+ update(table: any): any;
221
+ delete(table: any): any;
222
+ };
223
+ declare function createDrizzleStorage(db: DrizzleDb, overridesTable: typeof sidekickOverrides): SidekickStorage;
224
+
225
+ declare function formatDesignSystem(schema: Record<string, unknown>): string;
226
+ declare function buildSystemPrompt(schema: Record<string, unknown>): string;
227
+ declare function buildUserPrompt(request: string, previousErrors?: string[], existingCode?: string): string;
228
+ declare function callAI(request: string, schema: Record<string, unknown>, apiKey: string, previousErrors?: string[], existingCode?: string): Promise<GeneratedOverride>;
229
+ declare function parseAIResponse(text: string): GeneratedOverride;
230
+ declare function validateCode(code: string): {
231
+ valid: boolean;
232
+ errors: string[];
233
+ };
234
+
235
+ export { type GeneratedOverride, type NewOverrideRecord, type NewSidekickOverride, type OverrideManifest, type OverrideRecord, type SidekickHandlerOptions, type SidekickOverride, type SidekickStorage, buildSystemPrompt, buildUserPrompt, callAI, createDrizzleStorage, createSidekickHandler, formatDesignSystem, parseAIResponse, sidekickOverrides, validateCode };