@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.
- package/LICENSE +18 -0
- package/README.md +46 -2
- package/VIBES.md +120 -0
- package/dist/cli/plugin.d.ts +11 -0
- package/dist/cli/plugin.d.ts.map +1 -0
- package/dist/cli/plugin.js +18 -0
- package/dist/cli/plugin.js.map +1 -0
- package/dist/cli/studio.descriptor.d.ts +9 -0
- package/dist/cli/studio.descriptor.d.ts.map +1 -0
- package/dist/cli/studio.descriptor.js +39 -0
- package/dist/cli/studio.descriptor.js.map +1 -0
- package/dist/client.d.ts +12 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +27 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +10 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +41 -0
- package/dist/logger.js.map +1 -0
- package/dist/logging/studio.logger.descriptor.d.ts +7 -0
- package/dist/logging/studio.logger.descriptor.d.ts.map +1 -0
- package/dist/logging/studio.logger.descriptor.js +14 -0
- package/dist/logging/studio.logger.descriptor.js.map +1 -0
- package/dist/logging/studio.output.descriptor.d.ts +4 -0
- package/dist/logging/studio.output.descriptor.d.ts.map +1 -0
- package/dist/logging/studio.output.descriptor.js +22 -0
- package/dist/logging/studio.output.descriptor.js.map +1 -0
- package/dist/prompts/index.d.ts +7 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +7 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/studio-system.prompt.d.ts +49 -0
- package/dist/prompts/studio-system.prompt.d.ts.map +1 -0
- package/dist/prompts/studio-system.prompt.descriptor.d.ts +345 -0
- package/dist/prompts/studio-system.prompt.descriptor.d.ts.map +1 -0
- package/dist/prompts/studio-system.prompt.descriptor.js +22 -0
- package/dist/prompts/studio-system.prompt.descriptor.js.map +1 -0
- package/dist/prompts/studio-system.prompt.js +116 -0
- package/dist/prompts/studio-system.prompt.js.map +1 -0
- package/dist/schemas/auth.d.ts +43 -0
- package/dist/schemas/auth.d.ts.map +1 -0
- package/dist/schemas/auth.js +19 -0
- package/dist/schemas/auth.js.map +1 -0
- package/dist/schemas/continuity.d.ts +51 -0
- package/dist/schemas/continuity.d.ts.map +1 -0
- package/dist/schemas/continuity.js +35 -0
- package/dist/schemas/continuity.js.map +1 -0
- package/dist/schemas/history.d.ts +6 -0
- package/dist/schemas/history.d.ts.map +1 -0
- package/dist/schemas/history.js +6 -0
- package/dist/schemas/history.js.map +1 -0
- package/dist/schemas/logging.d.ts +63 -0
- package/dist/schemas/logging.d.ts.map +1 -0
- package/dist/schemas/logging.js +26 -0
- package/dist/schemas/logging.js.map +1 -0
- package/dist/schemas/theme.d.ts +9 -0
- package/dist/schemas/theme.d.ts.map +1 -0
- package/dist/schemas/theme.js +2 -0
- package/dist/schemas/theme.js.map +1 -0
- package/dist/services/schemas/studio-gateway.d.ts +34 -0
- package/dist/services/schemas/studio-gateway.d.ts.map +1 -0
- package/dist/services/schemas/studio-gateway.js +21 -0
- package/dist/services/schemas/studio-gateway.js.map +1 -0
- package/dist/studio.consumer.plugin.d.ts +8 -0
- package/dist/studio.consumer.plugin.d.ts.map +1 -0
- package/dist/studio.consumer.plugin.js +29 -0
- package/dist/studio.consumer.plugin.js.map +1 -0
- package/dist/studio.core.plugin.d.ts +4 -0
- package/dist/studio.core.plugin.d.ts.map +1 -0
- package/dist/studio.core.plugin.js +23 -0
- package/dist/studio.core.plugin.js.map +1 -0
- package/dist/studio.plugin.d.ts +3 -0
- package/dist/studio.plugin.d.ts.map +1 -0
- package/dist/studio.plugin.js +3 -0
- package/dist/studio.plugin.js.map +1 -0
- package/dist/theme.d.ts +67 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +38 -0
- package/dist/theme.js.map +1 -0
- package/dist/tui/plugin.d.ts +13 -0
- package/dist/tui/plugin.d.ts.map +1 -0
- package/dist/tui/plugin.js +29 -0
- package/dist/tui/plugin.js.map +1 -0
- package/dist/tui/studio-apps.descriptor.d.ts +11 -0
- package/dist/tui/studio-apps.descriptor.d.ts.map +1 -0
- package/dist/tui/studio-apps.descriptor.js +27 -0
- package/dist/tui/studio-apps.descriptor.js.map +1 -0
- package/dist/tui/studio-apps.impl.consumer.d.ts +12 -0
- package/dist/tui/studio-apps.impl.consumer.d.ts.map +1 -0
- package/dist/tui/studio-apps.impl.consumer.js +23 -0
- package/dist/tui/studio-apps.impl.consumer.js.map +1 -0
- package/dist/tui/studio-auth.d.ts +8 -0
- package/dist/tui/studio-auth.d.ts.map +1 -0
- package/dist/tui/studio-auth.js +56 -0
- package/dist/tui/studio-auth.js.map +1 -0
- package/dist/tui/studio-gateway-home.d.ts +56 -0
- package/dist/tui/studio-gateway-home.d.ts.map +1 -0
- package/dist/tui/studio-gateway-home.js +352 -0
- package/dist/tui/studio-gateway-home.js.map +1 -0
- package/dist/tui/studio-gateway.actions.d.ts +8 -0
- package/dist/tui/studio-gateway.actions.d.ts.map +1 -0
- package/dist/tui/studio-gateway.actions.js +133 -0
- package/dist/tui/studio-gateway.actions.js.map +1 -0
- package/dist/tui/studio-gateway.descriptor.d.ts +14 -0
- package/dist/tui/studio-gateway.descriptor.d.ts.map +1 -0
- package/dist/tui/studio-gateway.descriptor.js +33 -0
- package/dist/tui/studio-gateway.descriptor.js.map +1 -0
- package/dist/tui/studio-gateway.impl.consumer.d.ts +32 -0
- package/dist/tui/studio-gateway.impl.consumer.d.ts.map +1 -0
- package/dist/tui/studio-gateway.impl.consumer.js +422 -0
- package/dist/tui/studio-gateway.impl.consumer.js.map +1 -0
- package/dist/tui/studio-gateway.logic.d.ts +55 -0
- package/dist/tui/studio-gateway.logic.d.ts.map +1 -0
- package/dist/tui/studio-gateway.logic.js +255 -0
- package/dist/tui/studio-gateway.logic.js.map +1 -0
- package/dist/tui/studio-home-sessions.d.ts +14 -0
- package/dist/tui/studio-home-sessions.d.ts.map +1 -0
- package/dist/tui/studio-home-sessions.js +190 -0
- package/dist/tui/studio-home-sessions.js.map +1 -0
- package/dist/tui/studio-home.config.descriptor.d.ts +29 -0
- package/dist/tui/studio-home.config.descriptor.d.ts.map +1 -0
- package/dist/tui/studio-home.config.descriptor.js +20 -0
- package/dist/tui/studio-home.config.descriptor.js.map +1 -0
- package/dist/tui/studio-sign-in.d.ts +19 -0
- package/dist/tui/studio-sign-in.d.ts.map +1 -0
- package/dist/tui/studio-sign-in.js +71 -0
- package/dist/tui/studio-sign-in.js.map +1 -0
- package/dist/tui/studio-ui-state.config.descriptor.d.ts +17 -0
- package/dist/tui/studio-ui-state.config.descriptor.d.ts.map +1 -0
- package/dist/tui/studio-ui-state.config.descriptor.js +35 -0
- package/dist/tui/studio-ui-state.config.descriptor.js.map +1 -0
- package/package.json +123 -4
package/LICENSE
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 VIBES DEV LLC
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
|
6
|
+
associated documentation files (the "Software"), to deal in the Software without restriction, including
|
|
7
|
+
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
|
|
9
|
+
following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial
|
|
12
|
+
portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
|
15
|
+
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
|
|
16
|
+
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
17
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
18
|
+
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,47 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @vibesdotdev/studio
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Studio is a terminal gateway for runtime-discovered apps. Launch it through a
|
|
4
|
+
host that composes the CLI, Logging, Config and TUI consumer plugins:
|
|
5
|
+
|
|
6
|
+
```sh
|
|
7
|
+
vibes studio [page]
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
Home offers a composer, app entrypoints, sign-in and recent work. Plain text
|
|
11
|
+
starts a Build conversation in Chat. Each recent-work row shows the execution
|
|
12
|
+
target kind its owner declares — `cloud`, `host` or `provisioned` — and Studio
|
|
13
|
+
never branches on a provider. Slash commands use the TUI dispatcher; history
|
|
14
|
+
belongs to the runtime's Studio client. Failed owners remain visible with retry
|
|
15
|
+
or recovery actions. Existing conversations are preserved.
|
|
16
|
+
|
|
17
|
+
The root `studioPlugin` and `./core.plugin` provide neutral history, logging
|
|
18
|
+
and prompts. Use `./consumer.plugin` or compatible `./plugin` for full CLI/TUI
|
|
19
|
+
composition, or `./cli.plugin` and `./tui.plugin` for individual slices. CLI
|
|
20
|
+
registration survives a failed TUI import and reports a bounded runtime warning.
|
|
21
|
+
|
|
22
|
+
Resolve `StudioClient` with `getVibesClient('studio', runtime)`; use
|
|
23
|
+
`tryGetVibesClient` after activation. `./theme` exposes Studio themes,
|
|
24
|
+
`./prompts` exposes prompt content, and `studioLogger(scope, runtime)` binds
|
|
25
|
+
logging to the handed runtime. Ctrl+backtick toggles Logs. Escape and Ctrl+H
|
|
26
|
+
return standalone routes to Home.
|
|
27
|
+
|
|
28
|
+
The host activates TUI's UI client before rendering. Studio discovers domain
|
|
29
|
+
pages from their owners and forwards primitive route state; it owns no Chat,
|
|
30
|
+
session, process or agent implementation. Identity and device sign-in resolve
|
|
31
|
+
through Auth's semantic client. Consumer hosts compose Auth's `./consumer.plugin`
|
|
32
|
+
for stored identity, bounded progress and cancellable device authorization.
|
|
33
|
+
|
|
34
|
+
From this package directory:
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
bun run check
|
|
38
|
+
bun run test
|
|
39
|
+
bun run build
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Package rules and lint use the host checks declared in `vibes.config.ts`. Typecheck
|
|
43
|
+
includes tests; build emits production code only. Tests run in one process with
|
|
44
|
+
disposable composed runtimes and real OpenTUI text frames. `bun run test:ai`
|
|
45
|
+
selects optional AI suites when the host supplies their model capabilities.
|
|
46
|
+
|
|
47
|
+
See [SPEC.md](./SPEC.md) for exports, navigation, continuity and refusal contracts.
|
package/VIBES.md
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
slice: repos/platform/framework/studio
|
|
3
|
+
name: studio
|
|
4
|
+
generated: 2026-10-26T03:14:19.749Z
|
|
5
|
+
branches: [origin/main, v1/correctness]
|
|
6
|
+
policy:
|
|
7
|
+
lifecycle: "active"
|
|
8
|
+
changeResistance: "none"
|
|
9
|
+
frozen: false
|
|
10
|
+
frozenAt: null
|
|
11
|
+
frozenBy: null
|
|
12
|
+
freezeReason: null
|
|
13
|
+
enforcement: "error"
|
|
14
|
+
scope: "all"
|
|
15
|
+
exceptions: []
|
|
16
|
+
expiresAt: null
|
|
17
|
+
expired: false
|
|
18
|
+
requiresApproval: []
|
|
19
|
+
violationCount: 0
|
|
20
|
+
violations: []
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# studio
|
|
24
|
+
|
|
25
|
+
## Ownership
|
|
26
|
+
|
|
27
|
+
**owners:** none
|
|
28
|
+
**source:** "none"
|
|
29
|
+
**confidence:** 0
|
|
30
|
+
|
|
31
|
+
## Dependencies
|
|
32
|
+
|
|
33
|
+
| sliceId | paths |
|
|
34
|
+
| --- | --- |
|
|
35
|
+
| ai | @vibesdotdev/ai |
|
|
36
|
+
| chat | @vibesdotdev/chat |
|
|
37
|
+
| client | @vibesdotdev/client |
|
|
38
|
+
| code-sessions | @vibesdotdev/code-sessions |
|
|
39
|
+
| config | @vibesdotdev/config |
|
|
40
|
+
| docs | @vibesdotdev/docs |
|
|
41
|
+
| kernel | @vibesdotdev/kernel |
|
|
42
|
+
| logging | @vibesdotdev/logging |
|
|
43
|
+
| paths | @vibesdotdev/paths |
|
|
44
|
+
| prompts | @vibesdotdev/prompts |
|
|
45
|
+
| shared | @vibesdotdev/shared |
|
|
46
|
+
| testing | @vibesdotdev/testing |
|
|
47
|
+
| tools | @vibesdotdev/tools |
|
|
48
|
+
| tui | @vibesdotdev/tui |
|
|
49
|
+
| vibesdotdev.auth | @vibesdotdev/auth |
|
|
50
|
+
| vibesdotdev.cli | @vibesdotdev/cli |
|
|
51
|
+
| vibesdotdev.storage | @vibesdotdev/storage |
|
|
52
|
+
| workers | @vibesdotdev/workers |
|
|
53
|
+
**importedBy:** none
|
|
54
|
+
**external:** @opentui/core, @opentui/react, @types/bun, @types/react, bun:test, node:fs, node:path, react, typescript, zod
|
|
55
|
+
**source:** "both"
|
|
56
|
+
|
|
57
|
+
## Health
|
|
58
|
+
|
|
59
|
+
**ruleViolations:** none
|
|
60
|
+
| package | check | status | findings |
|
|
61
|
+
| --- | --- | --- | --- |
|
|
62
|
+
| @vibesdotdev/developer-bootstrap | import-exports | failed | 22806 |
|
|
63
|
+
| @vibesdotdev/studio | test | failed | 2 |
|
|
64
|
+
**typeErrors:** 0
|
|
65
|
+
**warnings:** 0
|
|
66
|
+
**indexCoverage:** 0
|
|
67
|
+
|
|
68
|
+
## Index State
|
|
69
|
+
|
|
70
|
+
**dirtyFiles:** 0
|
|
71
|
+
**signalCoverage:** {"workspace.signal.file-stats":0.84375}
|
|
72
|
+
|
|
73
|
+
## Lock State
|
|
74
|
+
|
|
75
|
+
### origin/main
|
|
76
|
+
|
|
77
|
+
**uncommittedFiles:** none
|
|
78
|
+
**hasConflicts:** false
|
|
79
|
+
**conflictFiles:** none
|
|
80
|
+
**aheadBehind:** {"ahead":0,"behind":0}
|
|
81
|
+
|
|
82
|
+
### v1/correctness
|
|
83
|
+
|
|
84
|
+
**uncommittedFiles:** none
|
|
85
|
+
**hasConflicts:** false
|
|
86
|
+
**conflictFiles:** none
|
|
87
|
+
**aheadBehind:** {"ahead":0,"behind":0}
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
## Change Summary
|
|
91
|
+
|
|
92
|
+
### origin/main
|
|
93
|
+
|
|
94
|
+
**baseBranch:** "origin/main"
|
|
95
|
+
**filesChanged:** 0
|
|
96
|
+
**insertions:** 0
|
|
97
|
+
**deletions:** 0
|
|
98
|
+
**changedFiles:** none
|
|
99
|
+
**unavailable:** {"reason":"slice-git-unavailable","message":"The slice's Git facts could not be read."}
|
|
100
|
+
|
|
101
|
+
### v1/correctness
|
|
102
|
+
|
|
103
|
+
**baseBranch:** "v1/correctness"
|
|
104
|
+
**filesChanged:** 0
|
|
105
|
+
**insertions:** 0
|
|
106
|
+
**deletions:** 0
|
|
107
|
+
**changedFiles:** none
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
## Children
|
|
111
|
+
|
|
112
|
+
**children:** none
|
|
113
|
+
**totalChildren:** 0
|
|
114
|
+
**frozenChildren:** 0
|
|
115
|
+
**healthyChildren:** 0
|
|
116
|
+
**degradedChildren:** 0
|
|
117
|
+
**totalViolations:** 0
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
*Generated by vibes workspace slices*
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Studio CLI Slice Plugin
|
|
3
|
+
*
|
|
4
|
+
* Registers the `vibes studio` CLI command against the `cli/command` kind
|
|
5
|
+
* owned by `@vibesdotdev/cli`. The core `@vibesdotdev/studio/core.plugin` is
|
|
6
|
+
* surface-neutral so other contexts (logging integrations) can consume
|
|
7
|
+
* studio's owned descriptors without dragging the CLI machinery in.
|
|
8
|
+
*/
|
|
9
|
+
declare const _default: import("@vibesdotdev/kernel").RuntimePlugin;
|
|
10
|
+
export default _default;
|
|
11
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/cli/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;AAMH,wBAOG"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Studio CLI Slice Plugin
|
|
3
|
+
*
|
|
4
|
+
* Registers the `vibes studio` CLI command against the `cli/command` kind
|
|
5
|
+
* owned by `@vibesdotdev/cli`. The core `@vibesdotdev/studio/core.plugin` is
|
|
6
|
+
* surface-neutral so other contexts (logging integrations) can consume
|
|
7
|
+
* studio's owned descriptors without dragging the CLI machinery in.
|
|
8
|
+
*/
|
|
9
|
+
import { createRuntimePlugin } from '@vibesdotdev/kernel';
|
|
10
|
+
import studioDescriptor from "./studio.descriptor.js";
|
|
11
|
+
export default createRuntimePlugin({
|
|
12
|
+
id: 'studio.cli',
|
|
13
|
+
name: 'Studio CLI Surface',
|
|
14
|
+
description: '`vibes studio` CLI command (entry point that boots the TUI gateway)',
|
|
15
|
+
dependencies: ['cli'],
|
|
16
|
+
descriptors: [studioDescriptor]
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/cli/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AAEtD,eAAe,mBAAmB,CAAC;IAClC,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,qEAAqE;IAClF,YAAY,EAAE,CAAC,KAAK,CAAC;IAErB,WAAW,EAAE,CAAC,gBAAgB,CAAC;CAC/B,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Studio CLI Command Descriptor
|
|
3
|
+
*
|
|
4
|
+
* Launches the Vibes Studio TUI gateway via `vibes studio`.
|
|
5
|
+
*/
|
|
6
|
+
import type { CLICommandAssetDescriptor } from '@vibesdotdev/kernel/schemas/asset';
|
|
7
|
+
declare const descriptor: CLICommandAssetDescriptor;
|
|
8
|
+
export default descriptor;
|
|
9
|
+
//# sourceMappingURL=studio.descriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio.descriptor.d.ts","sourceRoot":"","sources":["../../src/cli/studio.descriptor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAEnF,QAAA,MAAM,UAAU,EAAE,yBAmCjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Studio CLI Command Descriptor
|
|
3
|
+
*
|
|
4
|
+
* Launches the Vibes Studio TUI gateway via `vibes studio`.
|
|
5
|
+
*/
|
|
6
|
+
const descriptor = {
|
|
7
|
+
kind: 'cli/command',
|
|
8
|
+
id: 'studio',
|
|
9
|
+
name: 'studio',
|
|
10
|
+
description: 'Launch Vibes Studio TUI interface',
|
|
11
|
+
group: 'studio',
|
|
12
|
+
arguments: [
|
|
13
|
+
{
|
|
14
|
+
name: 'page',
|
|
15
|
+
description: 'Initial page to navigate to',
|
|
16
|
+
required: false,
|
|
17
|
+
variadic: false
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
// No `--sidebar` option: nothing read it, and the CLI host launches the
|
|
21
|
+
// gateway with `showNavigation: false` (`cli/src/surface/attach-tui-action.ts`).
|
|
22
|
+
options: [
|
|
23
|
+
{
|
|
24
|
+
flags: '--fast',
|
|
25
|
+
description: 'Start immediately; skip setup checks and deferred home panels'
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
// `launchWhen: 'always'` because the `page` arg navigates inside the
|
|
29
|
+
// TUI — providing it should still launch the gateway, not fall through.
|
|
30
|
+
interactive: {
|
|
31
|
+
appId: 'studio.gateway',
|
|
32
|
+
launchWhen: 'always'
|
|
33
|
+
},
|
|
34
|
+
surfaces: ['cli'],
|
|
35
|
+
hardware: ['consumer'],
|
|
36
|
+
enabled: true
|
|
37
|
+
};
|
|
38
|
+
export default descriptor;
|
|
39
|
+
//# sourceMappingURL=studio.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio.descriptor.js","sourceRoot":"","sources":["../../src/cli/studio.descriptor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,UAAU,GAA8B;IAC7C,IAAI,EAAE,aAAa;IACnB,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,mCAAmC;IAChD,KAAK,EAAE,QAAQ;IAEf,SAAS,EAAE;QACV;YACC,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,KAAK;SACf;KACD;IAED,wEAAwE;IACxE,iFAAiF;IACjF,OAAO,EAAE;QACR;YACC,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,+DAA+D;SAC5E;KACD;IAED,qEAAqE;IACrE,wEAAwE;IACxE,WAAW,EAAE;QACZ,KAAK,EAAE,gBAAgB;QACvB,UAAU,EAAE,QAAQ;KACpB;IAED,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseRuntimeClient } from '@vibesdotdev/kernel/client';
|
|
2
|
+
/** Command history belongs to this kernel-resolved client and its runtime lifetime. */
|
|
3
|
+
export declare class StudioClient extends BaseRuntimeClient {
|
|
4
|
+
private readonly history;
|
|
5
|
+
private readonly options;
|
|
6
|
+
recordCommand(command: string): void;
|
|
7
|
+
getCommandHistory(): readonly string[];
|
|
8
|
+
getLastCommand(): string | null;
|
|
9
|
+
clearCommandHistory(): void;
|
|
10
|
+
protected onDispose(): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG/D,uFAAuF;AACvF,qBAAa,YAAa,SAAQ,iBAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwC;IAEhE,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOpC,iBAAiB,IAAI,SAAS,MAAM,EAAE;IAItC,cAAc,IAAI,MAAM,GAAG,IAAI;IAI/B,mBAAmB,IAAI,IAAI;cAIR,SAAS,IAAI,IAAI;CAGpC"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BaseRuntimeClient } from '@vibesdotdev/kernel/client';
|
|
2
|
+
import { StudioCommandSchema, StudioHistoryOptionsSchema } from "./schemas/history.js";
|
|
3
|
+
/** Command history belongs to this kernel-resolved client and its runtime lifetime. */
|
|
4
|
+
export class StudioClient extends BaseRuntimeClient {
|
|
5
|
+
history = [];
|
|
6
|
+
options = StudioHistoryOptionsSchema.parse({});
|
|
7
|
+
recordCommand(command) {
|
|
8
|
+
const trimmed = StudioCommandSchema.parse(command);
|
|
9
|
+
if (!trimmed || this.history[0] === trimmed)
|
|
10
|
+
return;
|
|
11
|
+
this.history.unshift(trimmed);
|
|
12
|
+
this.history.length = Math.min(this.history.length, this.options.limit);
|
|
13
|
+
}
|
|
14
|
+
getCommandHistory() {
|
|
15
|
+
return [...this.history];
|
|
16
|
+
}
|
|
17
|
+
getLastCommand() {
|
|
18
|
+
return this.history[0] ?? null;
|
|
19
|
+
}
|
|
20
|
+
clearCommandHistory() {
|
|
21
|
+
this.history.length = 0;
|
|
22
|
+
}
|
|
23
|
+
onDispose() {
|
|
24
|
+
this.clearCommandHistory();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAEvF,uFAAuF;AACvF,MAAM,OAAO,YAAa,SAAQ,iBAAiB;IACjC,OAAO,GAAa,EAAE,CAAC;IACvB,OAAO,GAAG,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEhE,aAAa,CAAC,OAAe;QAC5B,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO;YAAE,OAAO;QACpD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzE,CAAC;IAED,iBAAiB;QAChB,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED,cAAc;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAChC,CAAC;IAED,mBAAmB;QAClB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;IAEkB,SAAS;QAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC5B,CAAC;CACD"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { default as studioPlugin } from './studio.core.plugin.ts';
|
|
2
|
+
export { studioTheme, darkTheme, lightTheme, highContrastTheme, themes, DEFAULT_THEME } from './theme.ts';
|
|
3
|
+
export type { Theme, ThemeName, StudioTheme } from './theme.ts';
|
|
4
|
+
export { studioLogger } from './logger.ts';
|
|
5
|
+
export type { StudioLogDetails, StudioLogger } from './logger.ts';
|
|
6
|
+
export { StudioClient } from './client.ts';
|
|
7
|
+
export { StudioCommandSchema, StudioHistoryOptionsSchema } from './schemas/history.ts';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1G,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as studioPlugin } from "./studio.core.plugin.js";
|
|
2
|
+
export { studioTheme, darkTheme, lightTheme, highContrastTheme, themes, DEFAULT_THEME } from "./theme.js";
|
|
3
|
+
export { studioLogger } from "./logger.js";
|
|
4
|
+
export { StudioClient } from "./client.js";
|
|
5
|
+
export { StudioCommandSchema, StudioHistoryOptionsSchema } from "./schemas/history.js";
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE1G,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { RuntimeRef } from '@vibesdotdev/kernel';
|
|
2
|
+
import { type StudioLogDetails, type StudioLogScope, type StudioRuntimeContext } from './schemas/logging.ts';
|
|
3
|
+
export type { StudioLogDetails, StudioLogger } from './schemas/logging.ts';
|
|
4
|
+
export declare function studioLogger(scope: StudioLogScope, runtime: RuntimeRef, defaultRuntimeContext?: StudioRuntimeContext): {
|
|
5
|
+
debug: (message: string, details?: StudioLogDetails) => void;
|
|
6
|
+
info: (message: string, details?: StudioLogDetails) => void;
|
|
7
|
+
warn: (message: string, details?: StudioLogDetails) => void;
|
|
8
|
+
error: (message: string, details?: StudioLogDetails) => void;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAGN,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAY3E,wBAAgB,YAAY,CAC3B,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,UAAU,EACnB,qBAAqB,CAAC,EAAE,oBAAoB;qBA0B1B,MAAM,YAAY,gBAAgB;oBACnC,MAAM,YAAY,gBAAgB;oBAClC,MAAM,YAAY,gBAAgB;qBACjC,MAAM,YAAY,gBAAgB;EAEpD"}
|
package/dist/logger.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { getLogger } from '@vibesdotdev/logging';
|
|
2
|
+
import { StudioLogDetailsSchema, StudioRuntimeContextSchema } from "./schemas/logging.js";
|
|
3
|
+
const namespaces = {
|
|
4
|
+
runtime: 'cli',
|
|
5
|
+
lifecycle: 'cli:lifecycle',
|
|
6
|
+
auth: 'cli:auth',
|
|
7
|
+
tool: 'mcp:tool',
|
|
8
|
+
discovery: 'cli:discovery',
|
|
9
|
+
widgets: 'cli:widgets',
|
|
10
|
+
chat: 'studio:chat'
|
|
11
|
+
};
|
|
12
|
+
export function studioLogger(scope, runtime, defaultRuntimeContext) {
|
|
13
|
+
const defaults = StudioRuntimeContextSchema.optional().parse(defaultRuntimeContext);
|
|
14
|
+
const base = getLogger('studio', runtime);
|
|
15
|
+
const logger = (scope === 'runtime' ? base : base.child(scope)).withContext({
|
|
16
|
+
service: 'vibes-studio',
|
|
17
|
+
runtime: 'cli',
|
|
18
|
+
namespace: namespaces[scope]
|
|
19
|
+
});
|
|
20
|
+
const emit = (level, message, details) => {
|
|
21
|
+
const { runtimeContext = defaults, metadata, ...context } = StudioLogDetailsSchema.parse(details ?? {});
|
|
22
|
+
logger[level](message, {
|
|
23
|
+
...context,
|
|
24
|
+
sessionId: context.sessionId ?? runtimeContext?.sessionState?.activeSessionId,
|
|
25
|
+
userId: context.userId ?? runtimeContext?.auth?.user?.id ?? runtimeContext?.authCredentials?.user?.id,
|
|
26
|
+
metadata: {
|
|
27
|
+
scope,
|
|
28
|
+
environmentName: runtimeContext?.environment?.name,
|
|
29
|
+
sessionResolvedId: runtimeContext?.sessionState?.resolvedSessionId,
|
|
30
|
+
...metadata
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
return {
|
|
35
|
+
debug: (message, details) => emit('debug', message, details),
|
|
36
|
+
info: (message, details) => emit('info', message, details),
|
|
37
|
+
warn: (message, details) => emit('warn', message, details),
|
|
38
|
+
error: (message, details) => emit('error', message, details)
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,MAAM,sBAAsB,CAAC;AAEhE,OAAO,EACN,sBAAsB,EACtB,0BAA0B,EAI1B,MAAM,sBAAsB,CAAC;AAI9B,MAAM,UAAU,GAAG;IAClB,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,eAAe;IAC1B,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,aAAa;CACnB,CAAC;AAEF,MAAM,UAAU,YAAY,CAC3B,KAAqB,EACrB,OAAmB,EACnB,qBAA4C;IAE5C,MAAM,QAAQ,GAAG,0BAA0B,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACpF,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;QAC3E,OAAO,EAAE,cAAc;QACvB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC;KAC5B,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,OAA0B,EAAE,EAAE;QAC7E,MAAM,EAAE,cAAc,GAAG,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACxG,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;YACtB,GAAG,OAAO;YACV,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,cAAc,EAAE,YAAY,EAAE,eAAe;YAC7E,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE;YACrG,QAAQ,EAAE;gBACT,KAAK;gBACL,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI;gBAClD,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB;gBAClE,GAAG,QAAQ;aACX;SACD,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO;QACN,KAAK,EAAE,CAAC,OAAe,EAAE,OAA0B,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;QACvF,IAAI,EAAE,CAAC,OAAe,EAAE,OAA0B,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;QACrF,IAAI,EAAE,CAAC,OAAe,EAAE,OAA0B,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;QACrF,KAAK,EAAE,CAAC,OAAe,EAAE,OAA0B,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;KACvF,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio.logger.descriptor.d.ts","sourceRoot":"","sources":["../../src/logging/studio.logger.descriptor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,QAAA,MAAM,UAAU,EAAE,gBAQjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Studio Logger Descriptor
|
|
3
|
+
*/
|
|
4
|
+
const descriptor = {
|
|
5
|
+
kind: 'logging/logger',
|
|
6
|
+
id: 'studio',
|
|
7
|
+
namespace: 'studio',
|
|
8
|
+
runtime: 'cli',
|
|
9
|
+
sinks: ['console'],
|
|
10
|
+
outputs: ['studio'],
|
|
11
|
+
level: 'info'
|
|
12
|
+
};
|
|
13
|
+
export default descriptor;
|
|
14
|
+
//# sourceMappingURL=studio.logger.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio.logger.descriptor.js","sourceRoot":"","sources":["../../src/logging/studio.logger.descriptor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,UAAU,GAAqB;IACpC,IAAI,EAAE,gBAAgB;IACtB,EAAE,EAAE,QAAQ;IACZ,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,CAAC,SAAS,CAAC;IAClB,OAAO,EAAE,CAAC,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio.output.descriptor.d.ts","sourceRoot":"","sources":["../../src/logging/studio.output.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,QAAA,MAAM,UAAU,EAAE,gBAmBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const descriptor = {
|
|
2
|
+
kind: 'logging/output',
|
|
3
|
+
id: 'studio',
|
|
4
|
+
name: 'Studio Output',
|
|
5
|
+
description: 'Structured logs emitted by vibes studio',
|
|
6
|
+
storage: 'file',
|
|
7
|
+
format: 'jsonl',
|
|
8
|
+
path: 'logs/studio.log',
|
|
9
|
+
rotation: {
|
|
10
|
+
maxSize: '20MB',
|
|
11
|
+
maxAge: '14d',
|
|
12
|
+
maxFiles: 7
|
|
13
|
+
},
|
|
14
|
+
buffering: {
|
|
15
|
+
enabled: true,
|
|
16
|
+
size: 8192,
|
|
17
|
+
flushInterval: 1000,
|
|
18
|
+
maxBufferEntries: 10000
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
export default descriptor;
|
|
22
|
+
//# sourceMappingURL=studio.output.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio.output.descriptor.js","sourceRoot":"","sources":["../../src/logging/studio.output.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAqB;IACpC,IAAI,EAAE,gBAAgB;IACtB,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,yCAAyC;IACtD,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE;QACT,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,CAAC;KACX;IACD,SAAS,EAAE;QACV,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,IAAI;QACV,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE,KAAK;KACvB;CACD,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACN,kBAAkB,EAClB,yBAAyB,EACzB,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACN,kBAAkB,EAClB,yBAAyB,EACzB,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
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
|
+
import type { PromptManifest } from '@vibesdotdev/prompts/schemas/manifest';
|
|
32
|
+
/**
|
|
33
|
+
* Studio System Prompt.
|
|
34
|
+
*
|
|
35
|
+
* Registered on the runtime by `studio.plugin.ts` as a `prompts/manifest`
|
|
36
|
+
* descriptor (see `./studio-system.prompt.descriptor.ts`), which the consumer
|
|
37
|
+
* prompt registry reads on every list/show/resolve. Reachable as
|
|
38
|
+
* `vibes prompts show studio-system`.
|
|
39
|
+
*/
|
|
40
|
+
export declare const studioSystemPrompt: PromptManifest;
|
|
41
|
+
/**
|
|
42
|
+
* Studio System Prompt — minimal variant.
|
|
43
|
+
*
|
|
44
|
+
* Retained for surfaces that supply their own operating instructions and need
|
|
45
|
+
* only the Studio-specific product facts. Kept in sync with the full prompt:
|
|
46
|
+
* it is a strict subset, never a divergent second copy.
|
|
47
|
+
*/
|
|
48
|
+
export declare const studioSystemPromptMinimal: PromptManifest;
|
|
49
|
+
//# sourceMappingURL=studio-system.prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio-system.prompt.d.ts","sourceRoot":"","sources":["../../src/prompts/studio-system.prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AA8B5E;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAkBhC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,cAuBvC,CAAC"}
|