@vibesdotdev/studio 0.0.0-stage → 1.0.0-rc.2

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 (135) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +46 -2
  3. package/dist/cli/plugin.d.ts +11 -0
  4. package/dist/cli/plugin.d.ts.map +1 -0
  5. package/dist/cli/plugin.js +18 -0
  6. package/dist/cli/plugin.js.map +1 -0
  7. package/dist/cli/studio.descriptor.d.ts +9 -0
  8. package/dist/cli/studio.descriptor.d.ts.map +1 -0
  9. package/dist/cli/studio.descriptor.js +39 -0
  10. package/dist/cli/studio.descriptor.js.map +1 -0
  11. package/dist/client.d.ts +12 -0
  12. package/dist/client.d.ts.map +1 -0
  13. package/dist/client.js +27 -0
  14. package/dist/client.js.map +1 -0
  15. package/dist/index.d.ts +8 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +6 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/logger.d.ts +10 -0
  20. package/dist/logger.d.ts.map +1 -0
  21. package/dist/logger.js +41 -0
  22. package/dist/logger.js.map +1 -0
  23. package/dist/logging/studio.logger.descriptor.d.ts +7 -0
  24. package/dist/logging/studio.logger.descriptor.d.ts.map +1 -0
  25. package/dist/logging/studio.logger.descriptor.js +14 -0
  26. package/dist/logging/studio.logger.descriptor.js.map +1 -0
  27. package/dist/logging/studio.output.descriptor.d.ts +4 -0
  28. package/dist/logging/studio.output.descriptor.d.ts.map +1 -0
  29. package/dist/logging/studio.output.descriptor.js +22 -0
  30. package/dist/logging/studio.output.descriptor.js.map +1 -0
  31. package/dist/prompts/index.d.ts +7 -0
  32. package/dist/prompts/index.d.ts.map +1 -0
  33. package/dist/prompts/index.js +7 -0
  34. package/dist/prompts/index.js.map +1 -0
  35. package/dist/prompts/studio-system.prompt.d.ts +49 -0
  36. package/dist/prompts/studio-system.prompt.d.ts.map +1 -0
  37. package/dist/prompts/studio-system.prompt.descriptor.d.ts +345 -0
  38. package/dist/prompts/studio-system.prompt.descriptor.d.ts.map +1 -0
  39. package/dist/prompts/studio-system.prompt.descriptor.js +22 -0
  40. package/dist/prompts/studio-system.prompt.descriptor.js.map +1 -0
  41. package/dist/prompts/studio-system.prompt.js +116 -0
  42. package/dist/prompts/studio-system.prompt.js.map +1 -0
  43. package/dist/schemas/auth.d.ts +43 -0
  44. package/dist/schemas/auth.d.ts.map +1 -0
  45. package/dist/schemas/auth.js +19 -0
  46. package/dist/schemas/auth.js.map +1 -0
  47. package/dist/schemas/continuity.d.ts +51 -0
  48. package/dist/schemas/continuity.d.ts.map +1 -0
  49. package/dist/schemas/continuity.js +35 -0
  50. package/dist/schemas/continuity.js.map +1 -0
  51. package/dist/schemas/history.d.ts +6 -0
  52. package/dist/schemas/history.d.ts.map +1 -0
  53. package/dist/schemas/history.js +6 -0
  54. package/dist/schemas/history.js.map +1 -0
  55. package/dist/schemas/logging.d.ts +63 -0
  56. package/dist/schemas/logging.d.ts.map +1 -0
  57. package/dist/schemas/logging.js +26 -0
  58. package/dist/schemas/logging.js.map +1 -0
  59. package/dist/schemas/theme.d.ts +9 -0
  60. package/dist/schemas/theme.d.ts.map +1 -0
  61. package/dist/schemas/theme.js +2 -0
  62. package/dist/schemas/theme.js.map +1 -0
  63. package/dist/services/schemas/studio-gateway.d.ts +34 -0
  64. package/dist/services/schemas/studio-gateway.d.ts.map +1 -0
  65. package/dist/services/schemas/studio-gateway.js +21 -0
  66. package/dist/services/schemas/studio-gateway.js.map +1 -0
  67. package/dist/studio.consumer.plugin.d.ts +8 -0
  68. package/dist/studio.consumer.plugin.d.ts.map +1 -0
  69. package/dist/studio.consumer.plugin.js +29 -0
  70. package/dist/studio.consumer.plugin.js.map +1 -0
  71. package/dist/studio.core.plugin.d.ts +4 -0
  72. package/dist/studio.core.plugin.d.ts.map +1 -0
  73. package/dist/studio.core.plugin.js +23 -0
  74. package/dist/studio.core.plugin.js.map +1 -0
  75. package/dist/studio.plugin.d.ts +3 -0
  76. package/dist/studio.plugin.d.ts.map +1 -0
  77. package/dist/studio.plugin.js +3 -0
  78. package/dist/studio.plugin.js.map +1 -0
  79. package/dist/theme.d.ts +67 -0
  80. package/dist/theme.d.ts.map +1 -0
  81. package/dist/theme.js +38 -0
  82. package/dist/theme.js.map +1 -0
  83. package/dist/tui/plugin.d.ts +13 -0
  84. package/dist/tui/plugin.d.ts.map +1 -0
  85. package/dist/tui/plugin.js +29 -0
  86. package/dist/tui/plugin.js.map +1 -0
  87. package/dist/tui/studio-apps.descriptor.d.ts +11 -0
  88. package/dist/tui/studio-apps.descriptor.d.ts.map +1 -0
  89. package/dist/tui/studio-apps.descriptor.js +27 -0
  90. package/dist/tui/studio-apps.descriptor.js.map +1 -0
  91. package/dist/tui/studio-apps.impl.consumer.d.ts +12 -0
  92. package/dist/tui/studio-apps.impl.consumer.d.ts.map +1 -0
  93. package/dist/tui/studio-apps.impl.consumer.js +23 -0
  94. package/dist/tui/studio-apps.impl.consumer.js.map +1 -0
  95. package/dist/tui/studio-auth.d.ts +8 -0
  96. package/dist/tui/studio-auth.d.ts.map +1 -0
  97. package/dist/tui/studio-auth.js +56 -0
  98. package/dist/tui/studio-auth.js.map +1 -0
  99. package/dist/tui/studio-gateway-home.d.ts +56 -0
  100. package/dist/tui/studio-gateway-home.d.ts.map +1 -0
  101. package/dist/tui/studio-gateway-home.js +352 -0
  102. package/dist/tui/studio-gateway-home.js.map +1 -0
  103. package/dist/tui/studio-gateway.actions.d.ts +8 -0
  104. package/dist/tui/studio-gateway.actions.d.ts.map +1 -0
  105. package/dist/tui/studio-gateway.actions.js +133 -0
  106. package/dist/tui/studio-gateway.actions.js.map +1 -0
  107. package/dist/tui/studio-gateway.descriptor.d.ts +14 -0
  108. package/dist/tui/studio-gateway.descriptor.d.ts.map +1 -0
  109. package/dist/tui/studio-gateway.descriptor.js +33 -0
  110. package/dist/tui/studio-gateway.descriptor.js.map +1 -0
  111. package/dist/tui/studio-gateway.impl.consumer.d.ts +32 -0
  112. package/dist/tui/studio-gateway.impl.consumer.d.ts.map +1 -0
  113. package/dist/tui/studio-gateway.impl.consumer.js +422 -0
  114. package/dist/tui/studio-gateway.impl.consumer.js.map +1 -0
  115. package/dist/tui/studio-gateway.logic.d.ts +55 -0
  116. package/dist/tui/studio-gateway.logic.d.ts.map +1 -0
  117. package/dist/tui/studio-gateway.logic.js +255 -0
  118. package/dist/tui/studio-gateway.logic.js.map +1 -0
  119. package/dist/tui/studio-home-sessions.d.ts +14 -0
  120. package/dist/tui/studio-home-sessions.d.ts.map +1 -0
  121. package/dist/tui/studio-home-sessions.js +190 -0
  122. package/dist/tui/studio-home-sessions.js.map +1 -0
  123. package/dist/tui/studio-home.config.descriptor.d.ts +29 -0
  124. package/dist/tui/studio-home.config.descriptor.d.ts.map +1 -0
  125. package/dist/tui/studio-home.config.descriptor.js +20 -0
  126. package/dist/tui/studio-home.config.descriptor.js.map +1 -0
  127. package/dist/tui/studio-sign-in.d.ts +19 -0
  128. package/dist/tui/studio-sign-in.d.ts.map +1 -0
  129. package/dist/tui/studio-sign-in.js +71 -0
  130. package/dist/tui/studio-sign-in.js.map +1 -0
  131. package/dist/tui/studio-ui-state.config.descriptor.d.ts +17 -0
  132. package/dist/tui/studio-ui-state.config.descriptor.d.ts.map +1 -0
  133. package/dist/tui/studio-ui-state.config.descriptor.js +35 -0
  134. package/dist/tui/studio-ui-state.config.descriptor.js.map +1 -0
  135. package/package.json +150 -4
@@ -0,0 +1,133 @@
1
+ import { createCommandDispatcher } from '@vibesdotdev/tui/commands/dispatcher';
2
+ import { settle } from '@vibesdotdev/kernel';
3
+ import { getLogger } from '@vibesdotdev/logging';
4
+ import { applyPrefixResult, buildHelpMessage, findPageByQuery, findPageOwningRoute, findCommandMatch, findPageMatch, normalizeRoute, searchGatewayItems, suggestCommandTriggers } from "./studio-gateway.logic.js";
5
+ import { getVibesClient } from '@vibesdotdev/kernel/client';
6
+ export async function submitGatewayInput(input, commands, pages, runtime, navigateTo, setInput, setMessage) {
7
+ const trimmed = input.trim();
8
+ if (!trimmed)
9
+ return;
10
+ setInput('');
11
+ setMessage(null);
12
+ const studio = await getVibesClient('studio', runtime);
13
+ studio.recordCommand(trimmed);
14
+ if (trimmed.startsWith('/')) {
15
+ const [trigger, ...rest] = trimmed.split(' ');
16
+ const args = rest.join(' ');
17
+ if (trigger === '/help' || trigger === '/?') {
18
+ setMessage(buildHelpMessage(commands, pages));
19
+ return;
20
+ }
21
+ if (trigger === '/apps') {
22
+ // Home IS the app directory (the /apps page merged into it — Drew's
23
+ // F2 decision). Keep the trigger for muscle memory; land on Home.
24
+ navigateTo('/');
25
+ return;
26
+ }
27
+ if (trigger === '/find') {
28
+ const results = searchGatewayItems(commands, pages, args);
29
+ setMessage(results.length > 0
30
+ ? `Matches: ${results.join(' | ')}`
31
+ : args.trim()
32
+ ? `No matches for "${args.trim()}".`
33
+ : 'Usage: /find <command or page>');
34
+ return;
35
+ }
36
+ if (trigger === '/goto') {
37
+ const routeTarget = normalizeRoute(args.trim());
38
+ const ownedRoute = args.trim() ? findPageOwningRoute(pages, routeTarget) : undefined;
39
+ if (ownedRoute) {
40
+ navigateTo(routeTarget);
41
+ return;
42
+ }
43
+ const page = findPageByQuery(pages, args);
44
+ if (page) {
45
+ navigateTo(page.path);
46
+ return;
47
+ }
48
+ setMessage(args.trim() ? `No page matched "${args.trim()}". Try /apps.` : 'Usage: /goto <page>');
49
+ return;
50
+ }
51
+ if (trigger === '/history') {
52
+ const history = studio.getCommandHistory().slice(0, 8);
53
+ setMessage(history.length > 0 ? `History: ${history.join(' | ')}` : 'No command history yet.');
54
+ return;
55
+ }
56
+ if (trigger === '/clear') {
57
+ studio.clearCommandHistory();
58
+ setMessage('Command history cleared.');
59
+ return;
60
+ }
61
+ if (trigger === '/home') {
62
+ navigateTo('/');
63
+ return;
64
+ }
65
+ if (trigger === '/last' || trigger === '/resume') {
66
+ const last = studio.getCommandHistory().find((command) => command !== trimmed && command !== '/last' && command !== '/resume');
67
+ if (!last) {
68
+ setMessage('No previous command to resume.');
69
+ return;
70
+ }
71
+ await submitGatewayInput(last, commands, pages, runtime, navigateTo, setInput, setMessage);
72
+ return;
73
+ }
74
+ const match = findCommandMatch(commands, trigger);
75
+ if (match) {
76
+ const logger = getLogger('studio.commands', runtime);
77
+ const dispatched = await settle(() => createCommandDispatcher(runtime).execute(trimmed, {
78
+ runtime,
79
+ args,
80
+ navigate: navigateTo,
81
+ toast: setMessage
82
+ }));
83
+ if (!dispatched.ok) {
84
+ logger.warn('Studio command dispatcher unavailable', { error: dispatched.cause });
85
+ setMessage('Commands are unavailable. Try again or open Logs for details.');
86
+ }
87
+ else {
88
+ const result = dispatched.value;
89
+ if (result.error !== undefined) {
90
+ logger.warn('Studio command failed', { error: result.cause });
91
+ setMessage('Command failed. Try again or open Logs for details.');
92
+ }
93
+ else if (result.route !== undefined) {
94
+ navigateTo(result.route);
95
+ }
96
+ }
97
+ return;
98
+ }
99
+ const pageMatch = findPageMatch(pages, trigger);
100
+ if (pageMatch) {
101
+ const normalizedTrigger = normalizeRoute(trigger);
102
+ const normalizedPageRoute = normalizeRoute(pageMatch.path);
103
+ navigateTo(normalizedTrigger === normalizedPageRoute ||
104
+ normalizedTrigger.startsWith(`${normalizedPageRoute}/`)
105
+ ? normalizedTrigger
106
+ : pageMatch.path);
107
+ return;
108
+ }
109
+ const suggestions = suggestCommandTriggers(commands, pages, trigger);
110
+ setMessage(suggestions.length > 0
111
+ ? `Unknown command: ${trigger}. Did you mean ${suggestions.join(', ')}?`
112
+ : `Unknown command: ${trigger}. Type /help for available commands.`);
113
+ return;
114
+ }
115
+ navigateTo('/chat', {
116
+ initialMessage: trimmed,
117
+ newRoom: true,
118
+ initialModeId: 'build'
119
+ });
120
+ }
121
+ export function handleGatewayPrefixResult(result, navigateTo, setInput, setMessage) {
122
+ applyPrefixResult(result, {
123
+ navigateTo: (route, state) => navigateTo(route, state),
124
+ setInput,
125
+ sendMessage: (text) => {
126
+ setInput('');
127
+ setMessage(null);
128
+ navigateTo('/chat', { initialMessage: text });
129
+ },
130
+ setMessage
131
+ });
132
+ }
133
+ //# sourceMappingURL=studio-gateway.actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-gateway.actions.js","sourceRoot":"","sources":["../../src/tui/studio-gateway.actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Studio Gateway — tui/app descriptor
3
+ *
4
+ * The multi-page gateway host for all tui/app pages.
5
+ * Auto-discovers registered tui/app descriptors and renders them
6
+ * as navigable pages with Router, sidebar, and widget system.
7
+ *
8
+ * States are empty because the gateway itself doesn't consume tui/state —
9
+ * child pages declare their own states via their tui/app descriptors.
10
+ */
11
+ import type { TuiAppDescriptor } from '@vibesdotdev/tui/schemas/tui-app';
12
+ declare const descriptor: TuiAppDescriptor;
13
+ export default descriptor;
14
+ //# sourceMappingURL=studio-gateway.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-gateway.descriptor.d.ts","sourceRoot":"","sources":["../../src/tui/studio-gateway.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,QAAA,MAAM,UAAU,EAAE,gBAoBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Studio Gateway — tui/app descriptor
3
+ *
4
+ * The multi-page gateway host for all tui/app pages.
5
+ * Auto-discovers registered tui/app descriptors and renders them
6
+ * as navigable pages with Router, sidebar, and widget system.
7
+ *
8
+ * States are empty because the gateway itself doesn't consume tui/state —
9
+ * child pages declare their own states via their tui/app descriptors.
10
+ */
11
+ const descriptor = {
12
+ kind: 'tui/app',
13
+ id: 'studio.gateway',
14
+ title: 'Vibes Studio',
15
+ description: 'Jump to any Vibes app from one place.',
16
+ icon: '⌂',
17
+ category: 'Studio',
18
+ audience: 'primary',
19
+ order: 0,
20
+ route: '/',
21
+ states: [],
22
+ embeddable: false,
23
+ // The gateway renders its own GlobalAppHeader + GlobalStatusBar
24
+ // (studio-gateway.impl.consumer.tsx) — tell TuiAppShell not to add a
25
+ // second copy of the same chrome around it.
26
+ ownsChrome: true,
27
+ minSize: { width: 80, height: 24 },
28
+ surfaces: ['tui'],
29
+ hardware: ['consumer'],
30
+ enabled: true
31
+ };
32
+ export default descriptor;
33
+ //# sourceMappingURL=studio-gateway.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-gateway.descriptor.js","sourceRoot":"","sources":["../../src/tui/studio-gateway.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,UAAU,GAAqB;IACpC,IAAI,EAAE,SAAS;IACf,EAAE,EAAE,gBAAgB;IACpB,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE,uCAAuC;IACpD,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,KAAK;IACjB,gEAAgE;IAChE,qEAAqE;IACrE,4CAA4C;IAC5C,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,32 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { TuiAppImplementation } from '@vibesdotdev/tui/kinds/tui-app';
3
+ import type { PrefixResult } from '@vibesdotdev/tui/kinds/tui-prefix';
4
+ import type { VibesRuntime } from '@vibesdotdev/kernel/api/runtime';
5
+ import { type GatewayPage } from '@vibesdotdev/tui/gateway';
6
+ import { type RouteState } from './studio-gateway.logic.ts';
7
+ interface RouteCommandProps {
8
+ runtime: VibesRuntime;
9
+ input: string;
10
+ onInputChange: (value: string) => void;
11
+ onPrefixResult: (result: PrefixResult) => void;
12
+ onSubmit?: () => void;
13
+ }
14
+ export declare function StudioRouteFrame({ page, children, activePath, routeState, navigateTo, onOpenLogs }: {
15
+ page: GatewayPage;
16
+ children: ReactNode;
17
+ activePath?: string;
18
+ routeState?: RouteState | null;
19
+ navigateTo: (path: string, state?: RouteState) => void;
20
+ onOpenLogs: () => void;
21
+ command: RouteCommandProps;
22
+ }): ReactNode;
23
+ export declare function MissingRoute({ activePath, pages, navigateTo, command }: {
24
+ activePath: string;
25
+ pages: GatewayPage[];
26
+ navigateTo: (path: string, state?: RouteState) => void;
27
+ onOpenLogs: () => void;
28
+ command: RouteCommandProps;
29
+ }): ReactNode;
30
+ declare const impl: TuiAppImplementation;
31
+ export default impl;
32
+ //# sourceMappingURL=studio-gateway.impl.consumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-gateway.impl.consumer.d.ts","sourceRoot":"","sources":["../../src/tui/studio-gateway.impl.consumer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAe,MAAM,gCAAgC,CAAC;AAExF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AA+BpE,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAKN,KAAK,UAAU,EACf,MAAM,2BAA2B,CAAC;AAsYnC,UAAU,iBAAiB;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAcD,wBAAgB,gBAAgB,CAAC,EAChC,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,EAAE;IACF,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACvD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,iBAAiB,CAAC;CAC3B,GAAG,SAAS,CA2BZ;AAED,wBAAgB,YAAY,CAAC,EAC5B,UAAU,EACV,KAAK,EACL,UAAU,EACV,OAAO,EACP,EAAE;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACvD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,iBAAiB,CAAC;CAC3B,GAAG,SAAS,CAuEZ;AA8QD,QAAA,MAAM,IAAI,EAAE,oBAAsD,CAAC;AACnE,eAAe,IAAI,CAAC"}