@pellux/goodvibes-tui 0.19.23 → 0.19.25
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/CHANGELOG.md +21 -0
- package/README.md +5 -5
- package/bin/goodvibes +5 -0
- package/bin/goodvibes-daemon +5 -0
- package/docs/foundation-artifacts/operator-contract.json +1 -1
- package/package.json +2 -2
- package/src/cli/completion.ts +89 -0
- package/src/cli/config-overrides.ts +159 -0
- package/src/cli/endpoints.ts +63 -0
- package/src/cli/entrypoint.ts +155 -0
- package/src/cli/help.ts +122 -0
- package/src/cli/index.ts +8 -0
- package/src/cli/management-commands.ts +576 -0
- package/src/cli/management.ts +693 -0
- package/src/cli/parser.ts +367 -0
- package/src/cli/status.ts +112 -0
- package/src/cli/tui-startup.ts +32 -0
- package/src/cli/types.ts +63 -0
- package/src/cli-flags.ts +17 -55
- package/src/config/index.ts +1 -1
- package/src/config/secrets.ts +44 -0
- package/src/core/conversation.ts +36 -13
- package/src/daemon/cli.ts +62 -11
- package/src/input/command-registry.ts +3 -0
- package/src/input/commands/guidance-runtime.ts +9 -4
- package/src/input/commands/local-runtime.ts +21 -7
- package/src/input/commands/local-setup.ts +31 -38
- package/src/input/commands/onboarding-runtime.ts +14 -0
- package/src/input/commands/runtime-services.ts +9 -0
- package/src/input/commands.ts +2 -0
- package/src/input/feed-context-factory.ts +8 -1
- package/src/input/handler-feed.ts +13 -8
- package/src/input/handler-interactions.ts +266 -0
- package/src/input/handler-modal-stack.ts +23 -3
- package/src/input/handler-modal-token-routes.ts +23 -1
- package/src/input/handler-onboarding.ts +696 -0
- package/src/input/handler-picker-routes.ts +15 -7
- package/src/input/handler-ui-state.ts +58 -0
- package/src/input/handler.ts +120 -246
- package/src/input/onboarding/handler-onboarding-routes.ts +105 -0
- package/src/input/onboarding/onboarding-wizard-apply.ts +211 -0
- package/src/input/onboarding/onboarding-wizard-constants.ts +148 -0
- package/src/input/onboarding/onboarding-wizard-external-surfaces.ts +712 -0
- package/src/input/onboarding/onboarding-wizard-helpers.ts +218 -0
- package/src/input/onboarding/onboarding-wizard-rules.ts +224 -0
- package/src/input/onboarding/onboarding-wizard-state.ts +354 -0
- package/src/input/onboarding/onboarding-wizard-steps.ts +642 -0
- package/src/input/onboarding/onboarding-wizard-types.ts +170 -0
- package/src/input/onboarding/onboarding-wizard.ts +594 -0
- package/src/main.ts +32 -39
- package/src/panels/builtin/operations.ts +0 -10
- package/src/panels/index.ts +0 -1
- package/src/panels/panel-manager.ts +6 -2
- package/src/renderer/conversation-overlays.ts +6 -0
- package/src/renderer/help-overlay.ts +1 -1
- package/src/renderer/onboarding/onboarding-wizard.ts +533 -0
- package/src/renderer/panel-composite.ts +42 -5
- package/src/renderer/panel-workspace-bar.ts +5 -1
- package/src/runtime/bootstrap-core.ts +1 -0
- package/src/runtime/bootstrap.ts +123 -0
- package/src/runtime/onboarding/apply.ts +685 -0
- package/src/runtime/onboarding/derivation.ts +495 -0
- package/src/runtime/onboarding/index.ts +7 -0
- package/src/runtime/onboarding/markers.ts +161 -0
- package/src/runtime/onboarding/snapshot.ts +400 -0
- package/src/runtime/onboarding/state.ts +140 -0
- package/src/runtime/onboarding/types.ts +402 -0
- package/src/runtime/onboarding/verify.ts +233 -0
- package/src/runtime/ui-services.ts +16 -0
- package/src/shell/ui-openers.ts +12 -2
- package/src/version.ts +1 -1
- package/src/panels/welcome-panel.ts +0 -64
package/src/cli/help.ts
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
|
|
5
|
+
const FALLBACK_VERSION = '0.19.24';
|
|
6
|
+
|
|
7
|
+
function readJsonVersion(path: string): string | null {
|
|
8
|
+
try {
|
|
9
|
+
if (!existsSync(path)) return null;
|
|
10
|
+
const parsed = JSON.parse(readFileSync(path, 'utf-8')) as { version?: unknown };
|
|
11
|
+
return typeof parsed.version === 'string' ? parsed.version : null;
|
|
12
|
+
} catch {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function getPackageVersion(): string {
|
|
18
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
19
|
+
return readJsonVersion(join(here, '..', '..', 'package.json'))
|
|
20
|
+
?? process.env.npm_package_version
|
|
21
|
+
?? FALLBACK_VERSION;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function renderGoodVibesVersion(binary = 'goodvibes'): string {
|
|
25
|
+
return `${binary} ${getPackageVersion()}`;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function renderGoodVibesHelp(binary = 'goodvibes'): string {
|
|
29
|
+
return [
|
|
30
|
+
`Usage: ${binary} [OPTIONS] [PROMPT]`,
|
|
31
|
+
` ${binary} [OPTIONS] <COMMAND> [ARGS]`,
|
|
32
|
+
'',
|
|
33
|
+
'Commands:',
|
|
34
|
+
' tui [path] Start the interactive TUI (default)',
|
|
35
|
+
' run|exec [prompt] Run non-interactively with text/json/stream-json output',
|
|
36
|
+
' serve|daemon Start the daemon/API host',
|
|
37
|
+
' web Show browser surface bind URL and enablement',
|
|
38
|
+
' status Print config, provider, service, and onboarding posture',
|
|
39
|
+
' doctor Print status plus setup warnings',
|
|
40
|
+
' onboarding [status] Open onboarding in the TUI, or print onboarding status',
|
|
41
|
+
' models [provider] List/use/pin selectable models and recent model history',
|
|
42
|
+
' providers List/inspect/use provider config/auth posture',
|
|
43
|
+
' auth Inspect and manage local users, sessions, and bootstrap auth',
|
|
44
|
+
' subscription Start/finish/logout provider subscription sessions',
|
|
45
|
+
' secrets List, set, link, delete, and test GoodVibes secret refs',
|
|
46
|
+
' sessions List, show, export, or resume saved sessions',
|
|
47
|
+
' tasks List/show in-process tasks or submit a non-interactive task',
|
|
48
|
+
' pair|qrcode Print companion pairing payload and QR code',
|
|
49
|
+
' surfaces Inspect/check/enable/disable browser/listener/external surfaces',
|
|
50
|
+
' listener test Test HTTP listener/webhook readiness',
|
|
51
|
+
' control-plane status Inspect daemon auth, local admin, tokens, and ports',
|
|
52
|
+
' bundle export|inspect|import',
|
|
53
|
+
' Move setup/profile/trust/support bundles',
|
|
54
|
+
' remote|bridge Inspect remote runner/node posture',
|
|
55
|
+
' completion <shell> Generate shell completion script',
|
|
56
|
+
' help Print this help',
|
|
57
|
+
' version Print version',
|
|
58
|
+
'',
|
|
59
|
+
'Options:',
|
|
60
|
+
' -m, --model <registryKey> Override model. provider:model infers --provider',
|
|
61
|
+
' --provider <id> Override provider',
|
|
62
|
+
' -C, --cd <dir> Set working directory for this launch',
|
|
63
|
+
' --working-dir <dir> Alias for --cd',
|
|
64
|
+
' --daemon-home <dir> Override daemon home for daemon-backed commands',
|
|
65
|
+
' -c, --config <key=value> Override a config value for this launch',
|
|
66
|
+
' --enable <feature> Enable a feature flag for this launch',
|
|
67
|
+
' --disable <feature> Disable a feature flag for this launch',
|
|
68
|
+
' -p, --prompt <text> Run a non-interactive prompt',
|
|
69
|
+
' --print Alias for non-interactive run mode',
|
|
70
|
+
' -o, --output <format> text, json, or stream-json',
|
|
71
|
+
' --output-format <format> Alias for --output',
|
|
72
|
+
' --json Alias for --output-format json',
|
|
73
|
+
' --no-alt-screen Keep output in normal terminal scrollback',
|
|
74
|
+
' --port <port> Port for server/web commands',
|
|
75
|
+
' --hostname <host> Hostname for server/web commands',
|
|
76
|
+
' --open Open browser when supported',
|
|
77
|
+
' -r, --resume [id|latest] Resume saved session when supported',
|
|
78
|
+
' -s, --session <id> Use a specific session when supported',
|
|
79
|
+
' --continue Continue the latest session when supported',
|
|
80
|
+
' --fork Fork session when supported',
|
|
81
|
+
' -h, --help Print help',
|
|
82
|
+
' -v, --version Print version',
|
|
83
|
+
'',
|
|
84
|
+
'Examples:',
|
|
85
|
+
` ${binary}`,
|
|
86
|
+
` ${binary} --no-alt-screen`,
|
|
87
|
+
` ${binary} --cd ~/work/project --model openai:gpt-5.2`,
|
|
88
|
+
` ${binary} onboarding`,
|
|
89
|
+
` ${binary} onboarding status`,
|
|
90
|
+
` ${binary} status`,
|
|
91
|
+
` ${binary} models current`,
|
|
92
|
+
` ${binary} models use openai:gpt-5.2`,
|
|
93
|
+
` ${binary} providers inspect openai`,
|
|
94
|
+
` ${binary} surfaces`,
|
|
95
|
+
` ${binary} surfaces check`,
|
|
96
|
+
` ${binary} surfaces enable web`,
|
|
97
|
+
` ${binary} listener test`,
|
|
98
|
+
` ${binary} control-plane status`,
|
|
99
|
+
` ${binary} subscription providers`,
|
|
100
|
+
` ${binary} subscription login openai start --open`,
|
|
101
|
+
` ${binary} serve --hostname 0.0.0.0 --port 3421`,
|
|
102
|
+
].join('\n');
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export function renderGoodVibesDaemonHelp(binary = 'goodvibes-daemon'): string {
|
|
106
|
+
return [
|
|
107
|
+
`Usage: ${binary} [OPTIONS]`,
|
|
108
|
+
'',
|
|
109
|
+
'Starts the headless GoodVibes daemon/API host.',
|
|
110
|
+
'',
|
|
111
|
+
'Options:',
|
|
112
|
+
' --daemon-home <dir> Override daemon home',
|
|
113
|
+
' --working-dir <dir> Override working directory',
|
|
114
|
+
' -C, --cd <dir> Alias for --working-dir',
|
|
115
|
+
' --provider <id> Override provider',
|
|
116
|
+
' -m, --model <registryKey> Override model. provider:model infers --provider',
|
|
117
|
+
' --hostname <host> Hostname hint for printed connection info',
|
|
118
|
+
' --port <port> Control-plane port override when supported',
|
|
119
|
+
' -h, --help Print help',
|
|
120
|
+
' -v, --version Print version',
|
|
121
|
+
].join('\n');
|
|
122
|
+
}
|
package/src/cli/index.ts
ADDED