@pellux/goodvibes-agent 0.1.106 → 0.1.107

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 CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to GoodVibes Agent will be recorded here.
4
4
 
5
+ ## 0.1.107 - Unreleased
6
+
7
+ - Add `goodvibes-agent launch` and `goodvibes-agent start` as explicit aliases for starting the Agent TUI.
8
+ - Open the Agent operator workspace automatically on normal TUI launch after first-run setup has been shown.
9
+ - Document the Bun global install path with `goodvibes-agent launch` as the first interactive smoke.
10
+
5
11
  ## 0.1.106 - 2026-06-01
6
12
 
7
13
  - b67a2fe Polish Agent setup entrypoint
package/README.md CHANGED
@@ -14,6 +14,7 @@ Install the public alpha package with Bun:
14
14
  ```sh
15
15
  bun add -g --trust @pellux/goodvibes-agent
16
16
  goodvibes-agent --help
17
+ goodvibes-agent launch
17
18
  goodvibes-agent status
18
19
  goodvibes-agent profiles templates
19
20
  goodvibes-agent personas list
@@ -31,6 +32,8 @@ export PATH="$(bun pm bin -g):$PATH"
31
32
  goodvibes-agent --help
32
33
  ```
33
34
 
35
+ `goodvibes-agent` and `goodvibes-agent launch` both start the interactive Agent TUI. On a fresh Agent home, the TUI opens Agent setup first.
36
+
34
37
  `--trust` lets Bun run the package lifecycle scripts required by the shipped SDK and parser dependencies during global install. A healthy install should report no pending lifecycle scripts:
35
38
 
36
39
  ```sh
@@ -62,7 +65,7 @@ bun run package:install-check
62
65
  bun run publish:check
63
66
  ```
64
67
 
65
- Inside the Agent TUI, use `/agent`, `/home`, or `/operator` to open the operator workspace. It is the Agent-first fullscreen workspace for setup, status, knowledge, local memory/skills, work-plan/approval review, automation observability, and explicit build delegation to GoodVibes TUI.
68
+ After setup has been shown once, the Agent TUI opens directly into the operator workspace. You can also reopen it with `/agent`, `/home`, or `/operator`. It is the Agent-first fullscreen workspace for setup, status, knowledge, local memory/skills, work-plan/approval review, automation observability, and explicit build delegation to GoodVibes TUI.
66
69
 
67
70
  Inside the workspace, use `/agent-profile guide` to author custom profile starters without leaving the Agent TUI. The guided flow lists starters, exports starter JSON, imports edited local starters, and creates isolated Agent profiles from them.
68
71
 
@@ -15,6 +15,7 @@ Agent does not launch the runtime for you.
15
15
  ```sh
16
16
  bun add -g --trust @pellux/goodvibes-agent
17
17
  goodvibes-agent --help
18
+ goodvibes-agent launch
18
19
  goodvibes-agent status
19
20
  goodvibes-agent personas list
20
21
  goodvibes-agent skills list
@@ -52,7 +53,9 @@ bun run dev
52
53
 
53
54
  `bun run dev` starts the Agent TUI. The same entrypoint backs the installed `goodvibes-agent` command.
54
55
 
55
- Once the TUI opens, run `/agent`, `/home`, or `/operator` to open the Agent operator workspace. That fullscreen workspace is the current front door for setup/config, knowledge status, local memory and skills, read-only work/approval/automation views, and explicit GoodVibes TUI build delegation.
56
+ `goodvibes-agent` and `goodvibes-agent launch` both start the interactive Agent TUI. On a fresh Agent home, the TUI opens Agent setup first.
57
+
58
+ After setup has been shown once, the TUI opens directly into the Agent operator workspace. You can also reopen it with `/agent`, `/home`, or `/operator`. That fullscreen workspace is the current front door for setup/config, knowledge status, local memory and skills, read-only work/approval/automation views, and explicit GoodVibes TUI build delegation.
56
59
 
57
60
  Use `/agent-profile guide` inside that workspace to walk through starter-profile authoring. It lists built-in and local starters, exports a JSON starter for editing, imports the edited starter back into this Agent home, and creates isolated profiles from the result.
58
61
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pellux/goodvibes-agent",
3
- "version": "0.1.106",
3
+ "version": "0.1.107",
4
4
  "private": false,
5
5
  "description": "GoodVibes personal operator assistant TUI with a proactive Agent product brain, isolated Agent Knowledge, local profiles, routines, skills, personas, and explicit build delegation.",
6
6
  "type": "module",
@@ -1,5 +1,7 @@
1
1
  const COMMANDS = [
2
2
  'tui',
3
+ 'launch',
4
+ 'start',
3
5
  'run',
4
6
  'exec',
5
7
  'onboarding',
package/src/cli/help.ts CHANGED
@@ -29,7 +29,7 @@ export function renderGoodVibesHelp(binary = 'goodvibes-agent'): string {
29
29
  ` ${binary} [OPTIONS] <COMMAND> [ARGS]`,
30
30
  '',
31
31
  'Commands:',
32
- ' tui [path] Start the interactive Agent terminal UI (default)',
32
+ ' tui|launch [path] Start the interactive Agent terminal UI (default)',
33
33
  ' run|exec [prompt] Run non-interactively with text/json/stream-json output',
34
34
  ' status Print config, provider, auth, and setup posture',
35
35
  ' doctor Print status plus setup warnings',
@@ -81,6 +81,7 @@ export function renderGoodVibesHelp(binary = 'goodvibes-agent'): string {
81
81
  '',
82
82
  'Examples:',
83
83
  ` ${binary}`,
84
+ ` ${binary} launch`,
84
85
  ` ${binary} --no-alt-screen`,
85
86
  ` ${binary} --cd ~/work/project --model openai:gpt-5.2`,
86
87
  ` ${binary} setup`,
@@ -119,9 +120,9 @@ type CommandHelp = {
119
120
 
120
121
  const COMMAND_HELP: Record<string, CommandHelp> = {
121
122
  tui: {
122
- usage: ['tui [path]', '[prompt]'],
123
+ usage: ['tui [path]', 'launch [path]', '[prompt]'],
123
124
  summary: 'Start the interactive Agent terminal UI. A prompt starts Agent with that prompt seeded.',
124
- examples: ['', 'tui ~/work/project', '"summarize current tasks"'],
125
+ examples: ['', 'launch', 'tui ~/work/project', '"summarize current tasks"'],
125
126
  },
126
127
  run: {
127
128
  usage: ['run [prompt] [--output text|json|stream-json]', 'exec [prompt]'],
package/src/cli/parser.ts CHANGED
@@ -8,6 +8,8 @@ import type {
8
8
  const COMMAND_ALIASES: Readonly<Record<string, GoodVibesCliCommand>> = {
9
9
  tui: 'tui',
10
10
  app: 'tui',
11
+ launch: 'tui',
12
+ start: 'tui',
11
13
  run: 'run',
12
14
  exec: 'run',
13
15
  e: 'run',
@@ -100,6 +100,7 @@ export function applyInitialTuiCliState(options: {
100
100
  }): void {
101
101
  const { cli, input, commandRegistry, commandContext, shellPaths, render } = options;
102
102
  const globalOnboardingMarker = readOnboardingCheckMarker(shellPaths, 'user');
103
+ const seededPrompt = cli.flags.prompt ?? (cli.rawCommand === undefined && cli.positionals.length > 0 ? cli.positionals.join(' ') : undefined);
103
104
  if (cli.command === 'onboarding') {
104
105
  input.openOnboardingWizard({ mode: 'edit', reset: true });
105
106
  } else if (cli.command === 'sessions' && cli.commandArgs[0] === 'resume') {
@@ -109,9 +110,10 @@ export function applyInitialTuiCliState(options: {
109
110
  }
110
111
  } else if (!globalOnboardingMarker.exists) {
111
112
  input.openOnboardingWizard({ mode: 'new', reset: true });
113
+ } else if (cli.command === 'tui' && seededPrompt === undefined) {
114
+ input.openAgentWorkspace(commandContext);
112
115
  }
113
116
 
114
- const seededPrompt = cli.flags.prompt ?? (cli.rawCommand === undefined && cli.positionals.length > 0 ? cli.positionals.join(' ') : undefined);
115
117
  if (seededPrompt) {
116
118
  input.prompt = seededPrompt;
117
119
  input.cursorPos = seededPrompt.length;
package/src/version.ts CHANGED
@@ -6,7 +6,7 @@ import { join } from 'node:path';
6
6
  // The prebuild script updates the fallback value before compilation.
7
7
  // Uses import.meta.dir (Bun) to locate package.json relative to this file,
8
8
  // which is correct regardless of the process working directory.
9
- let _version = '0.1.106';
9
+ let _version = '0.1.107';
10
10
  let _sdkVersion = '0.33.35';
11
11
  try {
12
12
  const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', 'package.json'), 'utf-8')) as {