@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,6 @@
1
+ import * as z from 'zod/v4';
2
+ export declare const StudioCommandSchema: z.ZodString;
3
+ export declare const StudioHistoryOptionsSchema: z.ZodObject<{
4
+ limit: z.ZodDefault<z.ZodNumber>;
5
+ }, z.core.$strip>;
6
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/schemas/history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,eAAO,MAAM,mBAAmB,aAAoB,CAAC;AACrD,eAAO,MAAM,0BAA0B;;iBAErC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import * as z from 'zod/v4';
2
+ export const StudioCommandSchema = z.string().trim();
3
+ export const StudioHistoryOptionsSchema = z.object({
4
+ limit: z.number().int().positive().default(50)
5
+ });
6
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/schemas/history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACrD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9C,CAAC,CAAC"}
@@ -0,0 +1,63 @@
1
+ import * as z from 'zod/v4';
2
+ export declare const StudioLogScopeSchema: z.ZodEnum<{
3
+ runtime: "runtime";
4
+ lifecycle: "lifecycle";
5
+ tool: "tool";
6
+ chat: "chat";
7
+ discovery: "discovery";
8
+ auth: "auth";
9
+ widgets: "widgets";
10
+ }>;
11
+ export declare const StudioRuntimeContextSchema: z.ZodObject<{
12
+ environment: z.ZodOptional<z.ZodObject<{
13
+ name: z.ZodOptional<z.ZodString>;
14
+ }, z.core.$strip>>;
15
+ sessionState: z.ZodOptional<z.ZodObject<{
16
+ activeSessionId: z.ZodOptional<z.ZodString>;
17
+ resolvedSessionId: z.ZodOptional<z.ZodString>;
18
+ }, z.core.$strip>>;
19
+ auth: z.ZodOptional<z.ZodObject<{
20
+ user: z.ZodOptional<z.ZodObject<{
21
+ id: z.ZodOptional<z.ZodString>;
22
+ }, z.core.$strip>>;
23
+ }, z.core.$strip>>;
24
+ authCredentials: z.ZodOptional<z.ZodObject<{
25
+ user: z.ZodOptional<z.ZodObject<{
26
+ id: z.ZodOptional<z.ZodString>;
27
+ }, z.core.$strip>>;
28
+ }, z.core.$strip>>;
29
+ }, z.core.$strip>;
30
+ export declare const StudioLogDetailsSchema: z.ZodIntersection<z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodObject<{
31
+ runtimeContext: z.ZodOptional<z.ZodObject<{
32
+ environment: z.ZodOptional<z.ZodObject<{
33
+ name: z.ZodOptional<z.ZodString>;
34
+ }, z.core.$strip>>;
35
+ sessionState: z.ZodOptional<z.ZodObject<{
36
+ activeSessionId: z.ZodOptional<z.ZodString>;
37
+ resolvedSessionId: z.ZodOptional<z.ZodString>;
38
+ }, z.core.$strip>>;
39
+ auth: z.ZodOptional<z.ZodObject<{
40
+ user: z.ZodOptional<z.ZodObject<{
41
+ id: z.ZodOptional<z.ZodString>;
42
+ }, z.core.$strip>>;
43
+ }, z.core.$strip>>;
44
+ authCredentials: z.ZodOptional<z.ZodObject<{
45
+ user: z.ZodOptional<z.ZodObject<{
46
+ id: z.ZodOptional<z.ZodString>;
47
+ }, z.core.$strip>>;
48
+ }, z.core.$strip>>;
49
+ }, z.core.$strip>>;
50
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
51
+ error: z.ZodOptional<z.ZodUnknown>;
52
+ }, z.core.$strip>>;
53
+ export declare const StudioLoggerSchema: z.ZodObject<{
54
+ debug: z.ZodFunction<z.ZodTuple<readonly [z.ZodCustom<string, string>, z.ZodOptional<z.ZodPipe<z.ZodUnknown, z.ZodTransform<Record<string, unknown>, unknown>>>, z.ZodOptional<z.ZodPipe<z.ZodUnknown, z.ZodTransform<Record<string, unknown>, unknown>>>], null>, z.ZodVoid>;
55
+ info: z.ZodFunction<z.ZodTuple<readonly [z.ZodCustom<string, string>, z.ZodOptional<z.ZodPipe<z.ZodUnknown, z.ZodTransform<Record<string, unknown>, unknown>>>, z.ZodOptional<z.ZodPipe<z.ZodUnknown, z.ZodTransform<Record<string, unknown>, unknown>>>], null>, z.ZodVoid>;
56
+ warn: z.ZodFunction<z.ZodTuple<readonly [z.ZodCustom<string, string>, z.ZodOptional<z.ZodPipe<z.ZodUnknown, z.ZodTransform<Record<string, unknown>, unknown>>>, z.ZodOptional<z.ZodPipe<z.ZodUnknown, z.ZodTransform<Record<string, unknown>, unknown>>>], null>, z.ZodVoid>;
57
+ error: z.ZodFunction<z.ZodTuple<readonly [z.ZodCustom<string, string>, z.ZodOptional<z.ZodPipe<z.ZodUnknown, z.ZodTransform<Record<string, unknown>, unknown>>>, z.ZodOptional<z.ZodPipe<z.ZodUnknown, z.ZodTransform<Record<string, unknown>, unknown>>>], null>, z.ZodVoid>;
58
+ }, z.core.$strip>;
59
+ export type StudioLogScope = z.infer<typeof StudioLogScopeSchema>;
60
+ export type StudioRuntimeContext = z.infer<typeof StudioRuntimeContextSchema>;
61
+ export type StudioLogDetails = z.infer<typeof StudioLogDetailsSchema>;
62
+ export type StudioLogger = z.infer<typeof StudioLoggerSchema>;
63
+ //# sourceMappingURL=logging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/schemas/logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,eAAO,MAAM,oBAAoB;;;;;;;;EAE/B,CAAC;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;iBAQrC,CAAC;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;kBAIhC,CAAC;AACJ,eAAO,MAAM,kBAAkB;;;;;iBAK7B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import * as z from 'zod/v4';
2
+ import { LogContextSchema, LogMethodSchema } from '@vibesdotdev/logging';
3
+ export const StudioLogScopeSchema = z.enum([
4
+ 'runtime', 'lifecycle', 'auth', 'tool', 'discovery', 'widgets', 'chat'
5
+ ]);
6
+ export const StudioRuntimeContextSchema = z.object({
7
+ environment: z.object({ name: z.string().optional() }).optional(),
8
+ sessionState: z.object({
9
+ activeSessionId: z.string().optional(),
10
+ resolvedSessionId: z.string().optional()
11
+ }).optional(),
12
+ auth: z.object({ user: z.object({ id: z.string().optional() }).optional() }).optional(),
13
+ authCredentials: z.object({ user: z.object({ id: z.string().optional() }).optional() }).optional()
14
+ });
15
+ export const StudioLogDetailsSchema = LogContextSchema.and(z.object({
16
+ runtimeContext: StudioRuntimeContextSchema.optional(),
17
+ metadata: LogContextSchema.optional(),
18
+ error: z.unknown().optional()
19
+ }));
20
+ export const StudioLoggerSchema = z.object({
21
+ debug: LogMethodSchema,
22
+ info: LogMethodSchema,
23
+ warn: LogMethodSchema,
24
+ error: LogMethodSchema
25
+ });
26
+ //# sourceMappingURL=logging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/schemas/logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1C,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM;CACtE,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjE,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACtB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACtC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACxC,CAAC,CAAC,QAAQ,EAAE;IACb,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvF,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;CAClG,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IACnE,cAAc,EAAE,0BAA0B,CAAC,QAAQ,EAAE;IACrD,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACrC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,eAAe;IACtB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,eAAe;CACtB,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { DSSemanticColors, DSSemanticTheme, DSThemeName } from '@vibesdotdev/tui/theme';
2
+ export interface Theme extends Omit<DSSemanticTheme, 'colors'> {
3
+ colors: DSSemanticColors & {
4
+ error: string;
5
+ };
6
+ }
7
+ export type ThemeName = DSThemeName;
8
+ export type StudioTheme = Theme['colors'];
9
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/schemas/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE7F,MAAM,WAAW,KAAM,SAAQ,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC7D,MAAM,EAAE,gBAAgB,GAAG;QAC1B,KAAK,EAAE,MAAM,CAAC;KACd,CAAC;CACF;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC;AACpC,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/schemas/theme.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import * as z from 'zod/v4';
2
+ import type { TuiRouteState } from '@vibesdotdev/tui/kinds/tui-app';
3
+ export type AppCard = {
4
+ id: string;
5
+ title: string;
6
+ description: string;
7
+ icon: string;
8
+ category: string;
9
+ route: string;
10
+ audience: string;
11
+ hardware: string[];
12
+ surfaces: string[];
13
+ stateIds: string[];
14
+ order: number;
15
+ };
16
+ export type RouteState = TuiRouteState;
17
+ /**
18
+ * The launch values an attached launch hands the gateway. Commander puts `--fast`
19
+ * in `options`; tests and direct callers may put it in `args`.
20
+ */
21
+ export declare const StudioLaunchPropsSchema: z.ZodCatch<z.ZodObject<{
22
+ args: z.ZodOptional<z.ZodCatch<z.ZodObject<{
23
+ page: z.ZodCatch<z.ZodOptional<z.ZodString>>;
24
+ fast: z.ZodCatch<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodLiteral<"true">]>>>;
25
+ }, z.core.$strip>>>;
26
+ options: z.ZodOptional<z.ZodCatch<z.ZodObject<{
27
+ page: z.ZodCatch<z.ZodOptional<z.ZodString>>;
28
+ fast: z.ZodCatch<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodLiteral<"true">]>>>;
29
+ }, z.core.$strip>>>;
30
+ }, z.core.$strip>>;
31
+ export type StudioLaunchProps = z.infer<typeof StudioLaunchPropsSchema>;
32
+ /** A route-state value read as trimmed text; anything else is empty. */
33
+ export declare const RouteStateTextSchema: z.ZodCatch<z.ZodString>;
34
+ //# sourceMappingURL=studio-gateway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-gateway.d.ts","sourceRoot":"","sources":["../../../src/services/schemas/studio-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE,MAAM,MAAM,OAAO,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;AAUvC;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;kBAKzB,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,yBAA8B,CAAC"}
@@ -0,0 +1,21 @@
1
+ import * as z from 'zod/v4';
2
+ /** One launch-value bag (`args` or `options`) as Studio reads it; other keys are ignored. */
3
+ const StudioLaunchValuesSchema = z
4
+ .object({
5
+ page: z.string().trim().optional().catch(undefined),
6
+ fast: z.union([z.literal(true), z.literal('true')]).optional().catch(undefined)
7
+ })
8
+ .catch({});
9
+ /**
10
+ * The launch values an attached launch hands the gateway. Commander puts `--fast`
11
+ * in `options`; tests and direct callers may put it in `args`.
12
+ */
13
+ export const StudioLaunchPropsSchema = z
14
+ .object({
15
+ args: StudioLaunchValuesSchema.optional(),
16
+ options: StudioLaunchValuesSchema.optional()
17
+ })
18
+ .catch({});
19
+ /** A route-state value read as trimmed text; anything else is empty. */
20
+ export const RouteStateTextSchema = z.string().trim().catch('');
21
+ //# sourceMappingURL=studio-gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-gateway.js","sourceRoot":"","sources":["../../../src/services/schemas/studio-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAmB5B,6FAA6F;AAC7F,MAAM,wBAAwB,GAAG,CAAC;KAChC,MAAM,CAAC;IACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACnD,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;CAC/E,CAAC;KACD,KAAK,CAAC,EAAE,CAAC,CAAC;AAEZ;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACtC,MAAM,CAAC;IACP,IAAI,EAAE,wBAAwB,CAAC,QAAQ,EAAE;IACzC,OAAO,EAAE,wBAAwB,CAAC,QAAQ,EAAE;CAC5C,CAAC;KACD,KAAK,CAAC,EAAE,CAAC,CAAC;AAGZ,wEAAwE;AACxE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type RuntimePlugin } from '@vibesdotdev/kernel';
2
+ /** Full consumer composition; CLI registration survives a TUI import failure. */
3
+ export declare function createStudioConsumerPlugin(loadTui?: () => Promise<{
4
+ default: RuntimePlugin;
5
+ }>): RuntimePlugin;
6
+ declare const _default: RuntimePlugin;
7
+ export default _default;
8
+ //# sourceMappingURL=studio.consumer.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio.consumer.plugin.d.ts","sourceRoot":"","sources":["../src/studio.consumer.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8D,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKrH,iFAAiF;AACjF,wBAAgB,0BAA0B,CACzC,OAAO,GAAE,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,aAAa,CAAA;CAAE,CAAmC,GAClF,aAAa,CAoBf;;AAED,wBAA4C"}
@@ -0,0 +1,29 @@
1
+ import { CaughtFailureSchema, createRuntimePlugin, valueFreeFailure } from '@vibesdotdev/kernel';
2
+ import { getLogger } from '@vibesdotdev/logging';
3
+ import studioCorePlugin from "./studio.core.plugin.js";
4
+ import studioCliPlugin from "./cli/plugin.js";
5
+ /** Full consumer composition; CLI registration survives a TUI import failure. */
6
+ export function createStudioConsumerPlugin(loadTui = () => import("./tui/plugin.js")) {
7
+ return createRuntimePlugin({
8
+ id: 'studio.consumer',
9
+ name: 'Studio Consumer',
10
+ dependencies: ['logging', 'runtime-client'],
11
+ onRegister: async (runtime) => {
12
+ await runtime.registerPlugin(studioCorePlugin);
13
+ await runtime.registerPlugin(studioCliPlugin);
14
+ const logger = getLogger('studio', runtime);
15
+ try {
16
+ const { default: tuiPlugin } = await loadTui();
17
+ await runtime.registerPlugin(tuiPlugin);
18
+ }
19
+ catch (error) {
20
+ logger.warn('Studio TUI unavailable; vibes studio cannot launch.', {
21
+ plugin: 'studio.tui',
22
+ error: valueFreeFailure(CaughtFailureSchema.parse(error))
23
+ });
24
+ }
25
+ }
26
+ });
27
+ }
28
+ export default createStudioConsumerPlugin();
29
+ //# sourceMappingURL=studio.consumer.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio.consumer.plugin.js","sourceRoot":"","sources":["../src/studio.consumer.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,gBAAgB,EAAsB,MAAM,qBAAqB,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,eAAe,MAAM,iBAAiB,CAAC;AAE9C,iFAAiF;AACjF,MAAM,UAAU,0BAA0B,CACzC,UAAqD,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAEpF,OAAO,mBAAmB,CAAC;QAC1B,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,iBAAiB;QACvB,YAAY,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC;QAC3C,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC7B,MAAM,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAC/C,MAAM,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC;gBACJ,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC;gBAC/C,MAAM,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,qDAAqD,EAAE;oBAClE,MAAM,EAAE,YAAY;oBACpB,KAAK,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBACzD,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAED,eAAe,0BAA0B,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** Surface-neutral state, logging and prompts. Consumer surfaces compose this core. */
2
+ declare const studioCorePlugin: import("@vibesdotdev/kernel").RuntimePlugin;
3
+ export default studioCorePlugin;
4
+ //# sourceMappingURL=studio.core.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio.core.plugin.d.ts","sourceRoot":"","sources":["../src/studio.core.plugin.ts"],"names":[],"mappings":"AAOA,uFAAuF;AACvF,QAAA,MAAM,gBAAgB,6CAcpB,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { createRuntimePlugin, loader } from '@vibesdotdev/kernel';
2
+ import { getVibesClient } from '@vibesdotdev/kernel/client';
3
+ import studioLoggerDescriptor from "./logging/studio.logger.descriptor.js";
4
+ import studioOutputDescriptor from "./logging/studio.output.descriptor.js";
5
+ import { studioPromptManifestDescriptors } from "./prompts/studio-system.prompt.descriptor.js";
6
+ /** Surface-neutral state, logging and prompts. Consumer surfaces compose this core. */
7
+ const studioCorePlugin = createRuntimePlugin({
8
+ id: 'studio',
9
+ name: 'Studio Core',
10
+ dependencies: ['runtime-client', 'logging'],
11
+ descriptors: [
12
+ { id: 'studio', kind: 'runtime/client', name: 'Studio Client' },
13
+ studioLoggerDescriptor,
14
+ studioOutputDescriptor,
15
+ ...studioPromptManifestDescriptors
16
+ ],
17
+ loaders: [loader('studio', { kind: 'runtime/client' }, () => import("./client.js").then(({ StudioClient }) => ({ impl: StudioClient })))],
18
+ onActivate: async (runtime) => {
19
+ await getVibesClient('studio', runtime);
20
+ }
21
+ });
22
+ export default studioCorePlugin;
23
+ //# sourceMappingURL=studio.core.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio.core.plugin.js","sourceRoot":"","sources":["../src/studio.core.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,8CAA8C,CAAC;AAE/F,uFAAuF;AACvF,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;IAC5C,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,aAAa;IACnB,YAAY,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC;IAC3C,WAAW,EAAE;QACZ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe,EAAE;QAC/D,sBAAsB;QACtB,sBAAsB;QACtB,GAAG,+BAA+B;KAClC;IACD,OAAO,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IACzI,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC7B,MAAM,cAAc,CAAe,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;CACD,CAAC,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Compatible full-surface entrypoint. Neutral consumers use ./core.plugin. */
2
+ export { default } from './studio.consumer.plugin.ts';
3
+ //# sourceMappingURL=studio.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio.plugin.d.ts","sourceRoot":"","sources":["../src/studio.plugin.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Compatible full-surface entrypoint. Neutral consumers use ./core.plugin. */
2
+ export { default } from "./studio.consumer.plugin.js";
3
+ //# sourceMappingURL=studio.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio.plugin.js","sourceRoot":"","sources":["../src/studio.plugin.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Studio Theme System
3
+ *
4
+ * Studio derives from the shared TUI semantic theme presets so terminal and
5
+ * web-facing theme roles stay coherent.
6
+ */
7
+ import type { Theme, ThemeName } from './schemas/theme.ts';
8
+ export declare const darkTheme: Theme;
9
+ export declare const lightTheme: Theme;
10
+ export declare const highContrastTheme: Theme;
11
+ /**
12
+ * All available themes
13
+ */
14
+ export declare const themes: {
15
+ dark: Theme;
16
+ light: Theme;
17
+ 'high-contrast': Theme;
18
+ };
19
+ /**
20
+ * Default theme name
21
+ */
22
+ export declare const DEFAULT_THEME: ThemeName;
23
+ /**
24
+ * Studio theme color palette used by studio components for direct color access.
25
+ * Resolves to the dark-theme palette; callers that need runtime theme switching
26
+ * should use `themes[name].colors`.
27
+ */
28
+ export declare const studioTheme: {
29
+ background: string;
30
+ foreground: string;
31
+ card: string;
32
+ cardForeground: string;
33
+ popover: string;
34
+ popoverForeground: string;
35
+ muted: string;
36
+ mutedForeground: string;
37
+ brand: string;
38
+ brandForeground: string;
39
+ brandTint: string;
40
+ primary: string;
41
+ primaryForeground: string;
42
+ secondary: string;
43
+ secondaryForeground: string;
44
+ accent: string;
45
+ accentForeground: string;
46
+ destructive: string;
47
+ destructiveForeground: string;
48
+ warning: string;
49
+ warningForeground: string;
50
+ success: string;
51
+ successForeground: string;
52
+ info: string;
53
+ infoForeground: string;
54
+ border: string;
55
+ structuralBorder: string;
56
+ input: string;
57
+ ring: string;
58
+ statusBar: string;
59
+ statusBarPage: string;
60
+ requiredBackground: string;
61
+ selectedBackground: string;
62
+ backdrop: string;
63
+ } & {
64
+ error: string;
65
+ };
66
+ export type { Theme, ThemeName, StudioTheme } from './schemas/theme.ts';
67
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAY3D,eAAO,MAAM,SAAS,OAA6B,CAAC;AACpD,eAAO,MAAM,UAAU,OAA8B,CAAC;AACtD,eAAO,MAAM,iBAAiB,OAAqC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,MAAM;;;;CAIiB,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,SAAkB,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAmB,CAAC;AAC5C,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/theme.js ADDED
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Studio Theme System
3
+ *
4
+ * Studio derives from the shared TUI semantic theme presets so terminal and
5
+ * web-facing theme roles stay coherent.
6
+ */
7
+ import { dsDarkTheme, dsHighContrastTheme, dsLightTheme } from '@vibesdotdev/tui/theme';
8
+ function toStudioTheme(theme) {
9
+ return {
10
+ ...theme,
11
+ colors: {
12
+ ...theme.colors,
13
+ error: theme.colors.destructive
14
+ }
15
+ };
16
+ }
17
+ export const darkTheme = toStudioTheme(dsDarkTheme);
18
+ export const lightTheme = toStudioTheme(dsLightTheme);
19
+ export const highContrastTheme = toStudioTheme(dsHighContrastTheme);
20
+ /**
21
+ * All available themes
22
+ */
23
+ export const themes = {
24
+ dark: darkTheme,
25
+ light: lightTheme,
26
+ 'high-contrast': highContrastTheme
27
+ };
28
+ /**
29
+ * Default theme name
30
+ */
31
+ export const DEFAULT_THEME = 'dark';
32
+ /**
33
+ * Studio theme color palette used by studio components for direct color access.
34
+ * Resolves to the dark-theme palette; callers that need runtime theme switching
35
+ * should use `themes[name].colors`.
36
+ */
37
+ export const studioTheme = darkTheme.colors;
38
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACN,WAAW,EACX,mBAAmB,EACnB,YAAY,EAEZ,MAAM,wBAAwB,CAAC;AAGhC,SAAS,aAAa,CAAC,KAAsB;IAC5C,OAAO;QACN,GAAG,KAAK;QACR,MAAM,EAAE;YACP,GAAG,KAAK,CAAC,MAAM;YACf,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;SAC/B;KACD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC;AAEpE;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,UAAU;IACjB,eAAe,EAAE,iBAAiB;CACC,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAc,MAAM,CAAC;AAE/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Studio TUI Slice Plugin
3
+ *
4
+ * Registers the `studio.gateway` TUI app against the `tui/app` kind
5
+ * owned by `@vibesdotdev/tui`. The core `@vibesdotdev/studio/core.plugin`
6
+ * stays surface-neutral so SSR/web/worker apps that adopt studio's
7
+ * logging integration don't have to bundle the TUI machinery.
8
+ */
9
+ /** The host may supply the lazy native import; registration remains renderer-free. */
10
+ export declare function createStudioTuiPlugin(loadGateway?: () => Promise<typeof import("./studio-gateway.impl.consumer.tsx")>): import("@vibesdotdev/kernel").RuntimePlugin;
11
+ declare const _default: import("@vibesdotdev/kernel").RuntimePlugin;
12
+ export default _default;
13
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/tui/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,sFAAsF;AACtF,wBAAgB,qBAAqB,CACpC,WAAW,qEAAqD,+CAmBhE;;AAED,wBAAuC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Studio TUI Slice Plugin
3
+ *
4
+ * Registers the `studio.gateway` TUI app against the `tui/app` kind
5
+ * owned by `@vibesdotdev/tui`. The core `@vibesdotdev/studio/core.plugin`
6
+ * stays surface-neutral so SSR/web/worker apps that adopt studio's
7
+ * logging integration don't have to bundle the TUI machinery.
8
+ */
9
+ import { createRuntimePlugin, loader } from '@vibesdotdev/kernel';
10
+ import studioGatewayDescriptor from "./studio-gateway.descriptor.js";
11
+ import studioAppsDescriptor from "./studio-apps.descriptor.js";
12
+ import studioHomeDescriptor from "./studio-home.config.descriptor.js";
13
+ import studioUiStateDescriptor from "./studio-ui-state.config.descriptor.js";
14
+ /** The host may supply the lazy native import; registration remains renderer-free. */
15
+ export function createStudioTuiPlugin(loadGateway = () => import("./studio-gateway.impl.consumer.js")) {
16
+ return createRuntimePlugin({
17
+ id: 'studio.tui',
18
+ name: 'Studio TUI Surface',
19
+ description: 'TUI gateway (`studio.gateway`) — the rich Vibes Studio entry point',
20
+ dependencies: ['studio', 'tui'],
21
+ descriptors: [studioGatewayDescriptor, studioAppsDescriptor, studioUiStateDescriptor, studioHomeDescriptor],
22
+ loaders: [
23
+ loader('studio.gateway', { kind: 'tui/app', scope: 'consumer' }, loadGateway),
24
+ loader('studio.apps', { kind: 'tui/app', scope: 'consumer' }, () => import("./studio-apps.impl.consumer.js"))
25
+ ]
26
+ });
27
+ }
28
+ export default createStudioTuiPlugin();
29
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/tui/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,uBAAuB,MAAM,gCAAgC,CAAC;AACrE,OAAO,oBAAoB,MAAM,6BAA6B,CAAC;AAC/D,OAAO,oBAAoB,MAAM,oCAAoC,CAAC;AACtE,OAAO,uBAAuB,MAAM,wCAAwC,CAAC;AAE7E,sFAAsF;AACtF,MAAM,UAAU,qBAAqB,CACpC,WAAW,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,mCAAoC,CAAC;IAEhE,OAAO,mBAAmB,CAAC;QAC1B,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,oEAAoE;QACjF,YAAY,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;QAE/B,WAAW,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,oBAAoB,CAAC;QAE3G,OAAO,EAAE;YACR,MAAM,CACL,gBAAgB,EAChB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EACtC,WAAW,CACX;YACD,MAAM,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,gCAAiC,CAAC,CAAC;SAC9G;KACD,CAAC,CAAC;AACJ,CAAC;AAED,eAAe,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * App Directory — tui/app descriptor
3
+ *
4
+ * `/apps` merged into Home (F2): Home renders the full task-grouped
5
+ * directory. The route stays registered as a forwarder for muscle memory
6
+ * and old deep links; `sidebar: false` keeps it out of launchers and rails.
7
+ */
8
+ import type { TuiAppDescriptor } from '@vibesdotdev/tui/schemas/tui-app';
9
+ declare const descriptor: TuiAppDescriptor;
10
+ export default descriptor;
11
+ //# sourceMappingURL=studio-apps.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-apps.descriptor.d.ts","sourceRoot":"","sources":["../../src/tui/studio-apps.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,QAAA,MAAM,UAAU,EAAE,gBAiBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * App Directory — tui/app descriptor
3
+ *
4
+ * `/apps` merged into Home (F2): Home renders the full task-grouped
5
+ * directory. The route stays registered as a forwarder for muscle memory
6
+ * and old deep links; `sidebar: false` keeps it out of launchers and rails.
7
+ */
8
+ const descriptor = {
9
+ kind: 'tui/app',
10
+ id: 'studio.apps',
11
+ title: 'App Directory',
12
+ description: 'Every Vibes app in one list.',
13
+ icon: '▦',
14
+ category: 'Studio',
15
+ audience: 'primary',
16
+ order: 90,
17
+ route: '/apps',
18
+ states: [],
19
+ sidebar: false,
20
+ embeddable: true,
21
+ minSize: { width: 80, height: 20 },
22
+ surfaces: ['tui'],
23
+ hardware: ['consumer'],
24
+ enabled: true
25
+ };
26
+ export default descriptor;
27
+ //# sourceMappingURL=studio-apps.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-apps.descriptor.js","sourceRoot":"","sources":["../../src/tui/studio-apps.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,UAAU,GAAqB;IACpC,IAAI,EAAE,SAAS;IACf,EAAE,EAAE,aAAa;IACjB,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,8BAA8B;IAC3C,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IAClC,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * /apps — merged into Home (Drew's F2 decision, tui-page-specs/apps.md).
3
+ *
4
+ * Home renders the full task-grouped directory and the palette is the fuzzy
5
+ * switcher, so a separate directory page would be a third place for one job.
6
+ * The route stays registered for muscle memory and deep links: it forwards to
7
+ * Home. `sidebar: false` on the descriptor keeps it out of every launcher.
8
+ */
9
+ import type { TuiAppImplementation } from '@vibesdotdev/tui/kinds/tui-app';
10
+ declare const impl: TuiAppImplementation;
11
+ export default impl;
12
+ //# sourceMappingURL=studio-apps.impl.consumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-apps.impl.consumer.d.ts","sourceRoot":"","sources":["../../src/tui/studio-apps.impl.consumer.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAe,MAAM,gCAAgC,CAAC;AAexF,QAAA,MAAM,IAAI,EAAE,oBAAkD,CAAC;AAC/D,eAAe,IAAI,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "@opentui/react/jsx-runtime";
2
+ /**
3
+ * /apps — merged into Home (Drew's F2 decision, tui-page-specs/apps.md).
4
+ *
5
+ * Home renders the full task-grouped directory and the palette is the fuzzy
6
+ * switcher, so a separate directory page would be a third place for one job.
7
+ * The route stays registered for muscle memory and deep links: it forwards to
8
+ * Home. `sidebar: false` on the descriptor keeps it out of every launcher.
9
+ */
10
+ import { useEffect } from 'react';
11
+ import { DSText } from '@vibesdotdev/tui/components/content';
12
+ function AppsRedirect(props) {
13
+ const navigate = props.navigate;
14
+ useEffect(() => {
15
+ navigate?.('/');
16
+ }, [navigate]);
17
+ // Rendered only when no navigator exists (e.g. mounted standalone in a
18
+ // test); in the gateway the redirect above replaces this immediately.
19
+ return _jsx(DSText, { variant: "muted", children: "The app directory lives on Home now \u2014 press Ctrl+H." });
20
+ }
21
+ const impl = { component: AppsRedirect };
22
+ export default impl;
23
+ //# sourceMappingURL=studio-apps.impl.consumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-apps.impl.consumer.js","sourceRoot":"","sources":["../../src/tui/studio-apps.impl.consumer.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAE7D,SAAS,YAAY,CAAC,KAAkB;IACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAEhC,SAAS,CAAC,GAAG,EAAE;QACd,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,uEAAuE;IACvE,sEAAsE;IACtE,OAAO,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,yEAA6D,CAAC;AAC7F,CAAC;AAED,MAAM,IAAI,GAAyB,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AAC/D,eAAe,IAAI,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type VibesRuntime } from '@vibesdotdev/kernel';
2
+ import { type StudioIdentityOutcome, type SignInLogTone, type SignInOutcome } from '../schemas/auth.ts';
3
+ export type { StudioIdentity, StudioIdentityOutcome, SignInLogTone, SignInOutcome } from '../schemas/auth.ts';
4
+ /** Only an explicit empty credential result means signed out. */
5
+ export declare function loadStudioIdentity(runtime: VibesRuntime): Promise<StudioIdentityOutcome>;
6
+ /** Device progress comes from Auth; failures keep their cause outside product copy. */
7
+ export declare function runStudioSignIn(runtime: VibesRuntime, onLog: (line: string, tone: SignInLogTone) => void): Promise<SignInOutcome>;
8
+ //# sourceMappingURL=studio-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-auth.d.ts","sourceRoot":"","sources":["../../src/tui/studio-auth.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0C,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEhG,OAAO,EAEN,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE9G,iEAAiE;AACjE,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAgB9F;AAED,uFAAuF;AACvF,wBAAsB,eAAe,CACpC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,KAAK,IAAI,GAChD,OAAO,CAAC,aAAa,CAAC,CA0BxB"}