@vibesdotdev/studio 0.0.0-stage → 1.0.0-rc.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 (136) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +46 -2
  3. package/VIBES.md +120 -0
  4. package/dist/cli/plugin.d.ts +11 -0
  5. package/dist/cli/plugin.d.ts.map +1 -0
  6. package/dist/cli/plugin.js +18 -0
  7. package/dist/cli/plugin.js.map +1 -0
  8. package/dist/cli/studio.descriptor.d.ts +9 -0
  9. package/dist/cli/studio.descriptor.d.ts.map +1 -0
  10. package/dist/cli/studio.descriptor.js +39 -0
  11. package/dist/cli/studio.descriptor.js.map +1 -0
  12. package/dist/client.d.ts +12 -0
  13. package/dist/client.d.ts.map +1 -0
  14. package/dist/client.js +27 -0
  15. package/dist/client.js.map +1 -0
  16. package/dist/index.d.ts +8 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +6 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/logger.d.ts +10 -0
  21. package/dist/logger.d.ts.map +1 -0
  22. package/dist/logger.js +41 -0
  23. package/dist/logger.js.map +1 -0
  24. package/dist/logging/studio.logger.descriptor.d.ts +7 -0
  25. package/dist/logging/studio.logger.descriptor.d.ts.map +1 -0
  26. package/dist/logging/studio.logger.descriptor.js +14 -0
  27. package/dist/logging/studio.logger.descriptor.js.map +1 -0
  28. package/dist/logging/studio.output.descriptor.d.ts +4 -0
  29. package/dist/logging/studio.output.descriptor.d.ts.map +1 -0
  30. package/dist/logging/studio.output.descriptor.js +22 -0
  31. package/dist/logging/studio.output.descriptor.js.map +1 -0
  32. package/dist/prompts/index.d.ts +7 -0
  33. package/dist/prompts/index.d.ts.map +1 -0
  34. package/dist/prompts/index.js +7 -0
  35. package/dist/prompts/index.js.map +1 -0
  36. package/dist/prompts/studio-system.prompt.d.ts +49 -0
  37. package/dist/prompts/studio-system.prompt.d.ts.map +1 -0
  38. package/dist/prompts/studio-system.prompt.descriptor.d.ts +345 -0
  39. package/dist/prompts/studio-system.prompt.descriptor.d.ts.map +1 -0
  40. package/dist/prompts/studio-system.prompt.descriptor.js +22 -0
  41. package/dist/prompts/studio-system.prompt.descriptor.js.map +1 -0
  42. package/dist/prompts/studio-system.prompt.js +116 -0
  43. package/dist/prompts/studio-system.prompt.js.map +1 -0
  44. package/dist/schemas/auth.d.ts +43 -0
  45. package/dist/schemas/auth.d.ts.map +1 -0
  46. package/dist/schemas/auth.js +19 -0
  47. package/dist/schemas/auth.js.map +1 -0
  48. package/dist/schemas/continuity.d.ts +51 -0
  49. package/dist/schemas/continuity.d.ts.map +1 -0
  50. package/dist/schemas/continuity.js +35 -0
  51. package/dist/schemas/continuity.js.map +1 -0
  52. package/dist/schemas/history.d.ts +6 -0
  53. package/dist/schemas/history.d.ts.map +1 -0
  54. package/dist/schemas/history.js +6 -0
  55. package/dist/schemas/history.js.map +1 -0
  56. package/dist/schemas/logging.d.ts +63 -0
  57. package/dist/schemas/logging.d.ts.map +1 -0
  58. package/dist/schemas/logging.js +26 -0
  59. package/dist/schemas/logging.js.map +1 -0
  60. package/dist/schemas/theme.d.ts +9 -0
  61. package/dist/schemas/theme.d.ts.map +1 -0
  62. package/dist/schemas/theme.js +2 -0
  63. package/dist/schemas/theme.js.map +1 -0
  64. package/dist/services/schemas/studio-gateway.d.ts +34 -0
  65. package/dist/services/schemas/studio-gateway.d.ts.map +1 -0
  66. package/dist/services/schemas/studio-gateway.js +21 -0
  67. package/dist/services/schemas/studio-gateway.js.map +1 -0
  68. package/dist/studio.consumer.plugin.d.ts +8 -0
  69. package/dist/studio.consumer.plugin.d.ts.map +1 -0
  70. package/dist/studio.consumer.plugin.js +29 -0
  71. package/dist/studio.consumer.plugin.js.map +1 -0
  72. package/dist/studio.core.plugin.d.ts +4 -0
  73. package/dist/studio.core.plugin.d.ts.map +1 -0
  74. package/dist/studio.core.plugin.js +23 -0
  75. package/dist/studio.core.plugin.js.map +1 -0
  76. package/dist/studio.plugin.d.ts +3 -0
  77. package/dist/studio.plugin.d.ts.map +1 -0
  78. package/dist/studio.plugin.js +3 -0
  79. package/dist/studio.plugin.js.map +1 -0
  80. package/dist/theme.d.ts +67 -0
  81. package/dist/theme.d.ts.map +1 -0
  82. package/dist/theme.js +38 -0
  83. package/dist/theme.js.map +1 -0
  84. package/dist/tui/plugin.d.ts +13 -0
  85. package/dist/tui/plugin.d.ts.map +1 -0
  86. package/dist/tui/plugin.js +29 -0
  87. package/dist/tui/plugin.js.map +1 -0
  88. package/dist/tui/studio-apps.descriptor.d.ts +11 -0
  89. package/dist/tui/studio-apps.descriptor.d.ts.map +1 -0
  90. package/dist/tui/studio-apps.descriptor.js +27 -0
  91. package/dist/tui/studio-apps.descriptor.js.map +1 -0
  92. package/dist/tui/studio-apps.impl.consumer.d.ts +12 -0
  93. package/dist/tui/studio-apps.impl.consumer.d.ts.map +1 -0
  94. package/dist/tui/studio-apps.impl.consumer.js +23 -0
  95. package/dist/tui/studio-apps.impl.consumer.js.map +1 -0
  96. package/dist/tui/studio-auth.d.ts +8 -0
  97. package/dist/tui/studio-auth.d.ts.map +1 -0
  98. package/dist/tui/studio-auth.js +56 -0
  99. package/dist/tui/studio-auth.js.map +1 -0
  100. package/dist/tui/studio-gateway-home.d.ts +56 -0
  101. package/dist/tui/studio-gateway-home.d.ts.map +1 -0
  102. package/dist/tui/studio-gateway-home.js +352 -0
  103. package/dist/tui/studio-gateway-home.js.map +1 -0
  104. package/dist/tui/studio-gateway.actions.d.ts +8 -0
  105. package/dist/tui/studio-gateway.actions.d.ts.map +1 -0
  106. package/dist/tui/studio-gateway.actions.js +133 -0
  107. package/dist/tui/studio-gateway.actions.js.map +1 -0
  108. package/dist/tui/studio-gateway.descriptor.d.ts +14 -0
  109. package/dist/tui/studio-gateway.descriptor.d.ts.map +1 -0
  110. package/dist/tui/studio-gateway.descriptor.js +33 -0
  111. package/dist/tui/studio-gateway.descriptor.js.map +1 -0
  112. package/dist/tui/studio-gateway.impl.consumer.d.ts +32 -0
  113. package/dist/tui/studio-gateway.impl.consumer.d.ts.map +1 -0
  114. package/dist/tui/studio-gateway.impl.consumer.js +422 -0
  115. package/dist/tui/studio-gateway.impl.consumer.js.map +1 -0
  116. package/dist/tui/studio-gateway.logic.d.ts +55 -0
  117. package/dist/tui/studio-gateway.logic.d.ts.map +1 -0
  118. package/dist/tui/studio-gateway.logic.js +255 -0
  119. package/dist/tui/studio-gateway.logic.js.map +1 -0
  120. package/dist/tui/studio-home-sessions.d.ts +14 -0
  121. package/dist/tui/studio-home-sessions.d.ts.map +1 -0
  122. package/dist/tui/studio-home-sessions.js +190 -0
  123. package/dist/tui/studio-home-sessions.js.map +1 -0
  124. package/dist/tui/studio-home.config.descriptor.d.ts +29 -0
  125. package/dist/tui/studio-home.config.descriptor.d.ts.map +1 -0
  126. package/dist/tui/studio-home.config.descriptor.js +20 -0
  127. package/dist/tui/studio-home.config.descriptor.js.map +1 -0
  128. package/dist/tui/studio-sign-in.d.ts +19 -0
  129. package/dist/tui/studio-sign-in.d.ts.map +1 -0
  130. package/dist/tui/studio-sign-in.js +71 -0
  131. package/dist/tui/studio-sign-in.js.map +1 -0
  132. package/dist/tui/studio-ui-state.config.descriptor.d.ts +17 -0
  133. package/dist/tui/studio-ui-state.config.descriptor.d.ts.map +1 -0
  134. package/dist/tui/studio-ui-state.config.descriptor.js +35 -0
  135. package/dist/tui/studio-ui-state.config.descriptor.js.map +1 -0
  136. package/package.json +123 -4
@@ -0,0 +1,345 @@
1
+ /**
2
+ * Studio system prompts, projected onto the runtime.
3
+ *
4
+ * Studio owns this content (`prompts/SPEC.md` §Does not own). It
5
+ * reaches the prompt catalog as `prompts/manifest` descriptors rather than by
6
+ * `@vibesdotdev/prompts` importing studio — resolve, don't import.
7
+ *
8
+ * Registered by `studio.plugin.ts`. The manifests themselves live in
9
+ * `./studio-system.prompt.ts`; this file adds no content of its own.
10
+ */
11
+ export declare const studioSystemPromptDescriptor: {
12
+ id: string;
13
+ kind: "prompts/manifest";
14
+ owner: string;
15
+ manifest: {
16
+ id: string;
17
+ version: string;
18
+ name: string;
19
+ description: string;
20
+ type: "system" | "workflow" | "specialist" | "tool" | "extraction";
21
+ tags: string[];
22
+ scope: "user" | "shared" | "builtin" | "project";
23
+ isPublic: boolean;
24
+ content: string;
25
+ generator: "static" | "template" | "dynamic";
26
+ category?: "custom" | "generation" | "extraction" | "development" | "knowledge" | "chat" | "analysis" | "validation" | undefined;
27
+ ownerId?: string | undefined;
28
+ projectId?: string | undefined;
29
+ sections?: {
30
+ key: string;
31
+ title: string;
32
+ content: string;
33
+ order: number;
34
+ collapsible: boolean;
35
+ conditional?: string | undefined;
36
+ }[] | undefined;
37
+ contentPath?: string | undefined;
38
+ tools?: string[] | undefined;
39
+ contextRequired?: string[] | undefined;
40
+ modelConfig?: {
41
+ model?: string | undefined;
42
+ temperature?: number | undefined;
43
+ maxTokens?: number | undefined;
44
+ topP?: number | undefined;
45
+ stopSequences?: string[] | undefined;
46
+ } | undefined;
47
+ knowledgeBaseIds?: string[] | undefined;
48
+ dependencies?: string[] | undefined;
49
+ composedWith?: string[] | undefined;
50
+ inject?: "tools"[] | undefined;
51
+ arguments?: {
52
+ name: string;
53
+ description: string;
54
+ type: "string" | "number" | "boolean" | "file" | "select" | "multiselect" | "text" | "json";
55
+ required: boolean;
56
+ default?: unknown;
57
+ options?: {
58
+ label: string;
59
+ value: string;
60
+ description?: string | undefined;
61
+ }[] | undefined;
62
+ validation?: string | undefined;
63
+ placeholder?: string | undefined;
64
+ }[] | undefined;
65
+ templateEngine?: "handlebars" | "mustache" | "native" | undefined;
66
+ transform?: {
67
+ inputSchema?: Record<string, unknown> | undefined;
68
+ transformPath?: string | undefined;
69
+ transformSpread?: {
70
+ spreadFrom?: ("data" | "user" | "project" | "session")[] | undefined;
71
+ assigns?: Record<string, {
72
+ literal: import("@vibesdotdev/kernel/bootstrap").JsonValue;
73
+ } | {
74
+ path: string;
75
+ }> | undefined;
76
+ } | undefined;
77
+ } | undefined;
78
+ versions?: {
79
+ version: string;
80
+ createdAt: string;
81
+ changelog?: string | undefined;
82
+ parentVersion?: string | undefined;
83
+ author?: string | undefined;
84
+ }[] | undefined;
85
+ currentVersion?: {
86
+ version: string;
87
+ createdAt: string;
88
+ changelog?: string | undefined;
89
+ parentVersion?: string | undefined;
90
+ author?: string | undefined;
91
+ } | undefined;
92
+ metadata?: {
93
+ author?: string | undefined;
94
+ license?: string | undefined;
95
+ source?: string | undefined;
96
+ related?: string[] | undefined;
97
+ custom?: Record<string, unknown> | undefined;
98
+ } | undefined;
99
+ createdAt?: string | undefined;
100
+ updatedAt?: string | undefined;
101
+ };
102
+ name?: string | undefined;
103
+ description?: string | undefined;
104
+ tags?: string[] | undefined;
105
+ hardware?: string[] | undefined;
106
+ enabled?: boolean | undefined;
107
+ priority?: number | undefined;
108
+ capabilityId?: string | undefined;
109
+ requiredContext?: string[] | undefined;
110
+ optionalContext?: string[] | undefined;
111
+ config?: unknown;
112
+ retention?: string | {
113
+ reason: string;
114
+ maxAgeDays?: number | undefined;
115
+ maxEntries?: number | undefined;
116
+ maxBytes?: number | undefined;
117
+ cascadeFrom?: string | undefined;
118
+ ageField?: string | undefined;
119
+ enforcedBy?: string | undefined;
120
+ } | undefined;
121
+ };
122
+ export declare const studioSystemPromptMinimalDescriptor: {
123
+ id: string;
124
+ kind: "prompts/manifest";
125
+ owner: string;
126
+ manifest: {
127
+ id: string;
128
+ version: string;
129
+ name: string;
130
+ description: string;
131
+ type: "system" | "workflow" | "specialist" | "tool" | "extraction";
132
+ tags: string[];
133
+ scope: "user" | "shared" | "builtin" | "project";
134
+ isPublic: boolean;
135
+ content: string;
136
+ generator: "static" | "template" | "dynamic";
137
+ category?: "custom" | "generation" | "extraction" | "development" | "knowledge" | "chat" | "analysis" | "validation" | undefined;
138
+ ownerId?: string | undefined;
139
+ projectId?: string | undefined;
140
+ sections?: {
141
+ key: string;
142
+ title: string;
143
+ content: string;
144
+ order: number;
145
+ collapsible: boolean;
146
+ conditional?: string | undefined;
147
+ }[] | undefined;
148
+ contentPath?: string | undefined;
149
+ tools?: string[] | undefined;
150
+ contextRequired?: string[] | undefined;
151
+ modelConfig?: {
152
+ model?: string | undefined;
153
+ temperature?: number | undefined;
154
+ maxTokens?: number | undefined;
155
+ topP?: number | undefined;
156
+ stopSequences?: string[] | undefined;
157
+ } | undefined;
158
+ knowledgeBaseIds?: string[] | undefined;
159
+ dependencies?: string[] | undefined;
160
+ composedWith?: string[] | undefined;
161
+ inject?: "tools"[] | undefined;
162
+ arguments?: {
163
+ name: string;
164
+ description: string;
165
+ type: "string" | "number" | "boolean" | "file" | "select" | "multiselect" | "text" | "json";
166
+ required: boolean;
167
+ default?: unknown;
168
+ options?: {
169
+ label: string;
170
+ value: string;
171
+ description?: string | undefined;
172
+ }[] | undefined;
173
+ validation?: string | undefined;
174
+ placeholder?: string | undefined;
175
+ }[] | undefined;
176
+ templateEngine?: "handlebars" | "mustache" | "native" | undefined;
177
+ transform?: {
178
+ inputSchema?: Record<string, unknown> | undefined;
179
+ transformPath?: string | undefined;
180
+ transformSpread?: {
181
+ spreadFrom?: ("data" | "user" | "project" | "session")[] | undefined;
182
+ assigns?: Record<string, {
183
+ literal: import("@vibesdotdev/kernel/bootstrap").JsonValue;
184
+ } | {
185
+ path: string;
186
+ }> | undefined;
187
+ } | undefined;
188
+ } | undefined;
189
+ versions?: {
190
+ version: string;
191
+ createdAt: string;
192
+ changelog?: string | undefined;
193
+ parentVersion?: string | undefined;
194
+ author?: string | undefined;
195
+ }[] | undefined;
196
+ currentVersion?: {
197
+ version: string;
198
+ createdAt: string;
199
+ changelog?: string | undefined;
200
+ parentVersion?: string | undefined;
201
+ author?: string | undefined;
202
+ } | undefined;
203
+ metadata?: {
204
+ author?: string | undefined;
205
+ license?: string | undefined;
206
+ source?: string | undefined;
207
+ related?: string[] | undefined;
208
+ custom?: Record<string, unknown> | undefined;
209
+ } | undefined;
210
+ createdAt?: string | undefined;
211
+ updatedAt?: string | undefined;
212
+ };
213
+ name?: string | undefined;
214
+ description?: string | undefined;
215
+ tags?: string[] | undefined;
216
+ hardware?: string[] | undefined;
217
+ enabled?: boolean | undefined;
218
+ priority?: number | undefined;
219
+ capabilityId?: string | undefined;
220
+ requiredContext?: string[] | undefined;
221
+ optionalContext?: string[] | undefined;
222
+ config?: unknown;
223
+ retention?: string | {
224
+ reason: string;
225
+ maxAgeDays?: number | undefined;
226
+ maxEntries?: number | undefined;
227
+ maxBytes?: number | undefined;
228
+ cascadeFrom?: string | undefined;
229
+ ageField?: string | undefined;
230
+ enforcedBy?: string | undefined;
231
+ } | undefined;
232
+ };
233
+ export declare const studioPromptManifestDescriptors: {
234
+ id: string;
235
+ kind: "prompts/manifest";
236
+ owner: string;
237
+ manifest: {
238
+ id: string;
239
+ version: string;
240
+ name: string;
241
+ description: string;
242
+ type: "system" | "workflow" | "specialist" | "tool" | "extraction";
243
+ tags: string[];
244
+ scope: "user" | "shared" | "builtin" | "project";
245
+ isPublic: boolean;
246
+ content: string;
247
+ generator: "static" | "template" | "dynamic";
248
+ category?: "custom" | "generation" | "extraction" | "development" | "knowledge" | "chat" | "analysis" | "validation" | undefined;
249
+ ownerId?: string | undefined;
250
+ projectId?: string | undefined;
251
+ sections?: {
252
+ key: string;
253
+ title: string;
254
+ content: string;
255
+ order: number;
256
+ collapsible: boolean;
257
+ conditional?: string | undefined;
258
+ }[] | undefined;
259
+ contentPath?: string | undefined;
260
+ tools?: string[] | undefined;
261
+ contextRequired?: string[] | undefined;
262
+ modelConfig?: {
263
+ model?: string | undefined;
264
+ temperature?: number | undefined;
265
+ maxTokens?: number | undefined;
266
+ topP?: number | undefined;
267
+ stopSequences?: string[] | undefined;
268
+ } | undefined;
269
+ knowledgeBaseIds?: string[] | undefined;
270
+ dependencies?: string[] | undefined;
271
+ composedWith?: string[] | undefined;
272
+ inject?: "tools"[] | undefined;
273
+ arguments?: {
274
+ name: string;
275
+ description: string;
276
+ type: "string" | "number" | "boolean" | "file" | "select" | "multiselect" | "text" | "json";
277
+ required: boolean;
278
+ default?: unknown;
279
+ options?: {
280
+ label: string;
281
+ value: string;
282
+ description?: string | undefined;
283
+ }[] | undefined;
284
+ validation?: string | undefined;
285
+ placeholder?: string | undefined;
286
+ }[] | undefined;
287
+ templateEngine?: "handlebars" | "mustache" | "native" | undefined;
288
+ transform?: {
289
+ inputSchema?: Record<string, unknown> | undefined;
290
+ transformPath?: string | undefined;
291
+ transformSpread?: {
292
+ spreadFrom?: ("data" | "user" | "project" | "session")[] | undefined;
293
+ assigns?: Record<string, {
294
+ literal: import("@vibesdotdev/kernel/bootstrap").JsonValue;
295
+ } | {
296
+ path: string;
297
+ }> | undefined;
298
+ } | undefined;
299
+ } | undefined;
300
+ versions?: {
301
+ version: string;
302
+ createdAt: string;
303
+ changelog?: string | undefined;
304
+ parentVersion?: string | undefined;
305
+ author?: string | undefined;
306
+ }[] | undefined;
307
+ currentVersion?: {
308
+ version: string;
309
+ createdAt: string;
310
+ changelog?: string | undefined;
311
+ parentVersion?: string | undefined;
312
+ author?: string | undefined;
313
+ } | undefined;
314
+ metadata?: {
315
+ author?: string | undefined;
316
+ license?: string | undefined;
317
+ source?: string | undefined;
318
+ related?: string[] | undefined;
319
+ custom?: Record<string, unknown> | undefined;
320
+ } | undefined;
321
+ createdAt?: string | undefined;
322
+ updatedAt?: string | undefined;
323
+ };
324
+ name?: string | undefined;
325
+ description?: string | undefined;
326
+ tags?: string[] | undefined;
327
+ hardware?: string[] | undefined;
328
+ enabled?: boolean | undefined;
329
+ priority?: number | undefined;
330
+ capabilityId?: string | undefined;
331
+ requiredContext?: string[] | undefined;
332
+ optionalContext?: string[] | undefined;
333
+ config?: unknown;
334
+ retention?: string | {
335
+ reason: string;
336
+ maxAgeDays?: number | undefined;
337
+ maxEntries?: number | undefined;
338
+ maxBytes?: number | undefined;
339
+ cascadeFrom?: string | undefined;
340
+ ageField?: string | undefined;
341
+ enforcedBy?: string | undefined;
342
+ } | undefined;
343
+ }[];
344
+ export default studioPromptManifestDescriptors;
345
+ //# sourceMappingURL=studio-system.prompt.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-system.prompt.descriptor.d.ts","sourceRoot":"","sources":["../../src/prompts/studio-system.prompt.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEvC,CAAC;AAEH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG/C,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAG3C,CAAC;AAEF,eAAe,+BAA+B,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Studio system prompts, projected onto the runtime.
3
+ *
4
+ * Studio owns this content (`prompts/SPEC.md` §Does not own). It
5
+ * reaches the prompt catalog as `prompts/manifest` descriptors rather than by
6
+ * `@vibesdotdev/prompts` importing studio — resolve, don't import.
7
+ *
8
+ * Registered by `studio.plugin.ts`. The manifests themselves live in
9
+ * `./studio-system.prompt.ts`; this file adds no content of its own.
10
+ */
11
+ import { definePromptManifestDescriptor } from '@vibesdotdev/prompts/kinds/prompts.manifest.kind';
12
+ import { studioSystemPrompt, studioSystemPromptMinimal } from "./studio-system.prompt.js";
13
+ export const studioSystemPromptDescriptor = definePromptManifestDescriptor(studioSystemPrompt, {
14
+ owner: 'studio'
15
+ });
16
+ export const studioSystemPromptMinimalDescriptor = definePromptManifestDescriptor(studioSystemPromptMinimal, { owner: 'studio' });
17
+ export const studioPromptManifestDescriptors = [
18
+ studioSystemPromptDescriptor,
19
+ studioSystemPromptMinimalDescriptor
20
+ ];
21
+ export default studioPromptManifestDescriptors;
22
+ //# sourceMappingURL=studio-system.prompt.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-system.prompt.descriptor.js","sourceRoot":"","sources":["../../src/prompts/studio-system.prompt.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AAElG,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAE1F,MAAM,CAAC,MAAM,4BAA4B,GAAG,8BAA8B,CAAC,kBAAkB,EAAE;IAC9F,KAAK,EAAE,QAAQ;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mCAAmC,GAAG,8BAA8B,CAChF,yBAAyB,EACzB,EAAE,KAAK,EAAE,QAAQ,EAAE,CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC9C,4BAA4B;IAC5B,mCAAmC;CACnC,CAAC;AAEF,eAAe,+BAA+B,CAAC"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Studio System Prompts
3
+ *
4
+ * System prompt for the Studio TUI agent.
5
+ *
6
+ * AUTHORING CONTRACT — read before editing:
7
+ * docs/architecture/CONTEXT-ENGINEERING.md (law: AGENT-CONSTITUTION.md §THE RULES #14).
8
+ *
9
+ * A system prompt carries PRODUCT CONTEXT — what surface the agent is on and what
10
+ * is true there that it cannot discover by looking. It does not carry:
11
+ * - how to use a tool → that tool's `mcpDescription` (one home, ≤1024 chars)
12
+ * - repo law/stance → CLAUDE.md + AGENT-CONSTITUTION.md, already loaded
13
+ * - conditional depth → a skill the agent loads when it applies
14
+ *
15
+ * Rewritten 2026-07-24 (386 → ~90 lines). What was cut and why:
16
+ * - 7 tool names that DO NOT EXIST (`session-init`, `session-search`,
17
+ * `session-list`, `session-scratchpad-write`, `lang-edit-file-batch`,
18
+ * `run_shell_command`, `rules-check`) — verified against the live registry.
19
+ * They were CLI-flag-style (`session-init --sessionId <id>`) for tools that
20
+ * are action-routed (`session {action:"init"}`), so the prompt was sending
21
+ * agents at nothing.
22
+ * - A mandatory ReAct cycle, a "research checklist" with □ boxes, and worked
23
+ * ✅/❌ examples. Examples narrow a capable model to the shapes shown.
24
+ * - "DO NOT silently chain tool calls without explanation" — forced narration
25
+ * and forbade parallel tool calls, which are correct here.
26
+ * - "Get approval before creating new files" + a destructive-op approval list.
27
+ * These directly contradicted CLAUDE.md §Hard failures #3 (approval-gating
28
+ * every step is a hard failure); the model had to reconcile them mid-task.
29
+ * - "NEVER GUESS" stated four times in four sections.
30
+ */
31
+ const STUDIO_SYSTEM_CONTENT = `You are a coding agent in **vibes Studio TUI**, working inside one specific project.
32
+
33
+ ## What is true on this surface
34
+
35
+ - **The workspace is the source of truth, not your training data.** This project pins its own
36
+ dependency versions and has its own conventions. When a fact about this codebase decides what
37
+ you write, read it here first.
38
+ - **Tool output is already rendered.** Every tool call becomes a widget showing its full input and
39
+ output, drawn before your text. Repeating that output back is noise — interpret it instead.
40
+ - **Sessions carry state.** \`session {action:"init"}\` (with \`workspacePath\`, and \`sessionId\` when
41
+ resuming) restores scratchpad, TODOs, and Atlas context from previous turns. Bind before doing
42
+ real work, or you start blind and re-derive what a previous session already established. If
43
+ binding fails, say so rather than proceeding unbound.
44
+ - **Repo law is already loaded.** CLAUDE.md (stance) and AGENT-CONSTITUTION.md (architecture) are
45
+ in your context. Follow them; don't re-derive them.
46
+
47
+ ## Working here
48
+
49
+ Track multi-step work in \`session-todo\` and durable findings in \`session-scratchpad\` — both
50
+ survive the turn, and the next session reads them. Reach for \`knowledge\` when a finding should
51
+ outlive the session entirely.
52
+
53
+ Prefer \`workspace-search\` to locate code and \`workspace-lsp\` for types and references before
54
+ falling back to reading files whole. Independent reads can go in one batch.
55
+
56
+ Drive the task to a verified end: run the check, read the real output, and report what it actually
57
+ said. If something you need is missing or broken, that is the finding — surface it.`;
58
+ /**
59
+ * Studio System Prompt.
60
+ *
61
+ * Registered on the runtime by `studio.plugin.ts` as a `prompts/manifest`
62
+ * descriptor (see `./studio-system.prompt.descriptor.ts`), which the consumer
63
+ * prompt registry reads on every list/show/resolve. Reachable as
64
+ * `vibes prompts show studio-system`.
65
+ */
66
+ export const studioSystemPrompt = {
67
+ id: 'studio-system',
68
+ version: '2.0.0',
69
+ name: 'Studio System Prompt',
70
+ description: 'Product-context system prompt for the vibes Studio TUI agent',
71
+ type: 'system',
72
+ category: 'development',
73
+ tags: ['studio', 'agent', 'system'],
74
+ scope: 'builtin',
75
+ isPublic: false,
76
+ generator: 'static',
77
+ content: STUDIO_SYSTEM_CONTENT,
78
+ metadata: {
79
+ author: 'vibes',
80
+ source: 'studio/src/prompts/studio-system.prompt.ts'
81
+ },
82
+ createdAt: new Date().toISOString(),
83
+ updatedAt: new Date().toISOString()
84
+ };
85
+ /**
86
+ * Studio System Prompt — minimal variant.
87
+ *
88
+ * Retained for surfaces that supply their own operating instructions and need
89
+ * only the Studio-specific product facts. Kept in sync with the full prompt:
90
+ * it is a strict subset, never a divergent second copy.
91
+ */
92
+ export const studioSystemPromptMinimal = {
93
+ id: 'studio-system-minimal',
94
+ version: '2.0.0',
95
+ name: 'Studio System Prompt (Minimal)',
96
+ description: 'Studio TUI product facts only — for surfaces that bring their own instructions',
97
+ type: 'system',
98
+ category: 'development',
99
+ tags: ['studio', 'agent', 'system', 'minimal'],
100
+ scope: 'builtin',
101
+ isPublic: false,
102
+ generator: 'static',
103
+ content: `You are a coding agent in **vibes Studio TUI**, working inside one specific project.
104
+
105
+ - The workspace is the source of truth for this project's versions and conventions, not your training data.
106
+ - Every tool call renders as a widget showing its full I/O before your text — interpret it, don't repeat it.
107
+ - \`session {action:"init"}\` (with \`workspacePath\`, plus \`sessionId\` to resume) restores scratchpad, TODOs, and Atlas context. Bind before real work.
108
+ - CLAUDE.md and AGENT-CONSTITUTION.md are already loaded; follow them without re-deriving them.`,
109
+ metadata: {
110
+ author: 'vibes',
111
+ source: 'studio/src/prompts/studio-system.prompt.ts'
112
+ },
113
+ createdAt: new Date().toISOString(),
114
+ updatedAt: new Date().toISOString()
115
+ };
116
+ //# sourceMappingURL=studio-system.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-system.prompt.js","sourceRoot":"","sources":["../../src/prompts/studio-system.prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;oFA0BsD,CAAC;AAErF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IACjD,EAAE,EAAE,eAAe;IACnB,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,8DAA8D;IAC3E,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,aAAa;IACvB,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;IACnC,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,qBAAqB;IAC9B,QAAQ,EAAE;QACT,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,4CAA4C;KACpD;IACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;CACnC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAmB;IACxD,EAAE,EAAE,uBAAuB;IAC3B,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,gCAAgC;IACtC,WAAW,EAAE,gFAAgF;IAC7F,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,aAAa;IACvB,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;IAC9C,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE;;;;;gGAKsF;IAC/F,QAAQ,EAAE;QACT,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,4CAA4C;KACpD;IACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;CACnC,CAAC"}
@@ -0,0 +1,43 @@
1
+ import * as z from 'zod/v4';
2
+ export declare const StudioIdentitySchema: z.ZodObject<{
3
+ email: z.ZodOptional<z.ZodString>;
4
+ name: z.ZodOptional<z.ZodString>;
5
+ userId: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strip>;
7
+ export type StudioIdentity = z.infer<typeof StudioIdentitySchema>;
8
+ export declare const SignInLogToneSchema: z.ZodEnum<{
9
+ error: "error";
10
+ info: "info";
11
+ warn: "warn";
12
+ }>;
13
+ export type SignInLogTone = z.infer<typeof SignInLogToneSchema>;
14
+ export declare const StudioIdentityOutcomeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
15
+ status: z.ZodLiteral<"signed-in">;
16
+ identity: z.ZodObject<{
17
+ email: z.ZodOptional<z.ZodString>;
18
+ name: z.ZodOptional<z.ZodString>;
19
+ userId: z.ZodOptional<z.ZodString>;
20
+ }, z.core.$strip>;
21
+ }, z.core.$strip>, z.ZodObject<{
22
+ status: z.ZodLiteral<"signed-out">;
23
+ }, z.core.$strip>, z.ZodObject<{
24
+ status: z.ZodEnum<{
25
+ unavailable: "unavailable";
26
+ failed: "failed";
27
+ }>;
28
+ cause: z.ZodUnknown;
29
+ message: z.ZodString;
30
+ }, z.core.$strip>], "status">;
31
+ export type StudioIdentityOutcome = z.infer<typeof StudioIdentityOutcomeSchema>;
32
+ export declare const SignInOutcomeSchema: z.ZodObject<{
33
+ success: z.ZodBoolean;
34
+ message: z.ZodString;
35
+ identity: z.ZodNullable<z.ZodObject<{
36
+ email: z.ZodOptional<z.ZodString>;
37
+ name: z.ZodOptional<z.ZodString>;
38
+ userId: z.ZodOptional<z.ZodString>;
39
+ }, z.core.$strip>>;
40
+ cause: z.ZodOptional<z.ZodUnknown>;
41
+ }, z.core.$strip>;
42
+ export type SignInOutcome = z.infer<typeof SignInOutcomeSchema>;
43
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/schemas/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,eAAO,MAAM,mBAAmB;;;;EAAoC,CAAC;AACrE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;6BAItC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,eAAO,MAAM,mBAAmB;;;;;;;;;iBAK9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import * as z from 'zod/v4';
2
+ export const StudioIdentitySchema = z.object({
3
+ email: z.string().optional(),
4
+ name: z.string().optional(),
5
+ userId: z.string().optional()
6
+ });
7
+ export const SignInLogToneSchema = z.enum(['info', 'warn', 'error']);
8
+ export const StudioIdentityOutcomeSchema = z.discriminatedUnion('status', [
9
+ z.object({ status: z.literal('signed-in'), identity: StudioIdentitySchema }),
10
+ z.object({ status: z.literal('signed-out') }),
11
+ z.object({ status: z.enum(['unavailable', 'failed']), cause: z.unknown(), message: z.string() })
12
+ ]);
13
+ export const SignInOutcomeSchema = z.object({
14
+ success: z.boolean(),
15
+ message: z.string(),
16
+ identity: StudioIdentitySchema.nullable(),
17
+ cause: z.unknown().optional()
18
+ });
19
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/schemas/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IACzE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IAC5E,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;IAC7C,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;CAChG,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IACzC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC"}
@@ -0,0 +1,51 @@
1
+ import * as z from 'zod/v4';
2
+ export declare const HomeSessionsOptionsSchema: z.ZodObject<{
3
+ limit: z.ZodDefault<z.ZodNumber>;
4
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
5
+ }, z.core.$strip>;
6
+ /** Only the Chat metadata Studio consumes; other room metadata belongs to Chat. */
7
+ export declare const ChatContinuityMetadataSchema: z.ZodOptional<z.ZodNullable<z.ZodObject<{
8
+ codeSessionId: z.ZodOptional<z.ZodString>;
9
+ }, z.core.$strip>>>;
10
+ export declare const HomeSessionRowSchema: z.ZodObject<{
11
+ sessionId: z.ZodString;
12
+ title: z.ZodString;
13
+ status: z.ZodEnum<{
14
+ error: "error";
15
+ active: "active";
16
+ initializing: "initializing";
17
+ ended: "ended";
18
+ }>;
19
+ host: z.ZodString;
20
+ hostKind: z.ZodEnum<{
21
+ cloud: "cloud";
22
+ host: "host";
23
+ provisioned: "provisioned";
24
+ }>;
25
+ workspacePath: z.ZodString;
26
+ chatRoomId: z.ZodOptional<z.ZodString>;
27
+ roomAbsent: z.ZodOptional<z.ZodBoolean>;
28
+ continuityError: z.ZodOptional<z.ZodString>;
29
+ lastActivityAt: z.ZodString;
30
+ }, z.core.$strip>;
31
+ export type HomeSessionRow = z.infer<typeof HomeSessionRowSchema>;
32
+ export declare const HomeSessionsErrorSchema: z.ZodObject<{
33
+ error: z.ZodString;
34
+ status: z.ZodEnum<{
35
+ unavailable: "unavailable";
36
+ failed: "failed";
37
+ "timed-out": "timed-out";
38
+ }>;
39
+ cause: z.ZodUnknown;
40
+ }, z.core.$strip>;
41
+ export type HomeSessionsError = z.infer<typeof HomeSessionsErrorSchema>;
42
+ export type HomeSessionsResult = HomeSessionRow[] | null | HomeSessionsError;
43
+ export declare const HomeSessionLaunchTargetSchema: z.ZodObject<{
44
+ path: z.ZodEnum<{
45
+ "/chat": "/chat";
46
+ "/code-sessions": "/code-sessions";
47
+ }>;
48
+ state: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUndefined]>>;
49
+ }, z.core.$strip>;
50
+ export type HomeSessionLaunchTarget = z.infer<typeof HomeSessionLaunchTargetSchema>;
51
+ //# sourceMappingURL=continuity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continuity.d.ts","sourceRoot":"","sources":["../../src/schemas/continuity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,eAAO,MAAM,yBAAyB;;;iBAGpC,CAAC;AAEH,mFAAmF;AACnF,eAAO,MAAM,4BAA4B;;mBAEjB,CAAC;AAEzB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;iBAc/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,eAAO,MAAM,uBAAuB;;;;;;;;iBAIlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,kBAAkB,GAAG,cAAc,EAAE,GAAG,IAAI,GAAG,iBAAiB,CAAC;AAE7E,eAAO,MAAM,6BAA6B;;;;;;iBAGxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import * as z from 'zod/v4';
2
+ import { SessionHostTargetKindSchema } from '@vibesdotdev/code-sessions/api';
3
+ export const HomeSessionsOptionsSchema = z.object({
4
+ limit: z.number().int().positive().default(3),
5
+ timeoutMs: z.number().int().positive().default(4000)
6
+ });
7
+ /** Only the Chat metadata Studio consumes; other room metadata belongs to Chat. */
8
+ export const ChatContinuityMetadataSchema = z.object({
9
+ codeSessionId: z.string().trim().min(1).optional()
10
+ }).nullable().optional();
11
+ export const HomeSessionRowSchema = z.object({
12
+ sessionId: z.string(),
13
+ title: z.string(),
14
+ status: z.enum(['initializing', 'active', 'error', 'ended']),
15
+ host: z.string(),
16
+ // The execution substrate owns the host-target kinds; Studio follows
17
+ // SessionHostTargetKindSchema rather than keeping its own provider list.
18
+ hostKind: SessionHostTargetKindSchema,
19
+ workspacePath: z.string(),
20
+ chatRoomId: z.string().optional(),
21
+ /** Only confirmed absence permits a new room. Omitted means unresolved. */
22
+ roomAbsent: z.boolean().optional(),
23
+ continuityError: z.string().optional(),
24
+ lastActivityAt: z.string()
25
+ });
26
+ export const HomeSessionsErrorSchema = z.object({
27
+ error: z.string(),
28
+ status: z.enum(['unavailable', 'failed', 'timed-out']),
29
+ cause: z.unknown()
30
+ });
31
+ export const HomeSessionLaunchTargetSchema = z.object({
32
+ path: z.enum(['/chat', '/code-sessions']),
33
+ state: z.record(z.string(), z.union([z.string(), z.number(), z.boolean(), z.null(), z.undefined()]))
34
+ });
35
+ //# sourceMappingURL=continuity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continuity.js","sourceRoot":"","sources":["../../src/schemas/continuity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAE7E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACpD,CAAC,CAAC;AAEH,mFAAmF;AACnF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;AAEzB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,qEAAqE;IACrE,yEAAyE;IACzE,QAAQ,EAAE,2BAA2B;IACrC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,2EAA2E;IAC3E,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACtD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;CAClB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;CACpG,CAAC,CAAC"}