phewsh 0.15.60 → 0.15.61

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 (2) hide show
  1. package/commands/session.js +23 -16
  2. package/package.json +1 -1
@@ -426,27 +426,31 @@ async function main() {
426
426
  // ── The Exhale: animated brand reveal ──────────────────
427
427
  await ui.brandReveal();
428
428
 
429
- // Self-aware, plain-language summarythe value prop made real with THIS
430
- // machine's state. Non-technical readers get one warm sentence; the rows
431
- // below give engineers the exact facts. Fail-soft: a missing piece just
432
- // shortens the line, it never blocks the door.
433
- (function narrativeSummary() {
429
+ // The welcome beatwarm, plain-language, and continuity-first. This is the
430
+ // "you made it" moment that frames what phewsh is FOR: one thread across every
431
+ // AI tool, so you switch harnesses mid-work and nothing gets re-explained.
432
+ // Non-technical readers get one inviting sentence; the cockpit rows below give
433
+ // engineers the exact facts. Fail-soft: a missing piece shortens the line, it
434
+ // never blocks the door.
435
+ (function welcome() {
434
436
  try {
435
437
  const toolCount = harnesses.filter(h => h.installed).length;
436
438
  const hasProject = intentFiles.length > 0;
437
439
  const dot = teal('●');
438
440
  const tools = `${toolCount} AI tool${toolCount !== 1 ? 's' : ''}`;
439
- if (hasProject && toolCount > 0) {
440
- console.log(` ${dot} ${sage(`${tools} here, all sharing one memory of`)} ${cream(projectName)}${sage(' so you never start this project over.')}`);
441
+ if (hasProject && toolCount > 1) {
442
+ console.log(` ${dot} ${sage('Welcome back. One shared memory of')} ${cream(projectName)}${sage(`, and ${tools} that all read it`)} ${slate('— switch tools mid-thought, nothing re-explained.')}`);
441
443
  } else if (hasProject) {
442
- console.log(` ${dot} ${sage('phewsh holds one verified memory of')} ${cream(projectName)} ${sage('— ready for whatever AI tool you bring.')}`);
443
- } else if (toolCount > 0) {
444
- console.log(` ${dot} ${sage(`${tools} here.`)} ${sage('Run')} ${cream('/init')} ${sage('and they all work from one shared project memory.')}`);
444
+ console.log(` ${dot} ${sage('Welcome back. One verified memory of')} ${cream(projectName)} ${sage('— ready for whatever AI tool you reach for next.')}`);
445
+ } else if (toolCount > 1) {
446
+ console.log(` ${dot} ${sage(`Welcome — you made it. ${tools} here; this is where they share one thread.`)} ${slate('/init')} ${sage('to begin.')}`);
447
+ } else if (toolCount === 1) {
448
+ console.log(` ${dot} ${sage('Welcome — you made it. Add Codex or Gemini and phewsh keeps every tool on the same page.')}`);
445
449
  } else {
446
- console.log(` ${dot} ${sage('Install Claude Code, Codex, or Gemini phewsh keeps them all on the same page.')}`);
450
+ console.log(` ${dot} ${sage('Welcome — you made it. Install Claude Code, Codex, or Gemini and phewsh keeps them all on the same page.')}`);
447
451
  }
448
452
  console.log('');
449
- } catch { /* the summary is a flourish, never a blocker */ }
453
+ } catch { /* the welcome is a flourish, never a blocker */ }
450
454
  })();
451
455
 
452
456
  if (config?.apiKey && !config.apiKey.startsWith('sk-')) {
@@ -583,6 +587,10 @@ async function main() {
583
587
  console.log(` ${b(cream('What are you trying to do?'))}`);
584
588
  console.log(` ${teal('1')} ${sage('Build')} ${slate('·')} ${teal('2')} ${sage('Research')} ${slate('·')} ${teal('3')} ${sage('Decide')} ${slate('·')} ${teal('4')} ${sage('Review')} ${slate('·')} ${teal('5')} ${sage('Ask another model')}`);
585
589
  console.log(` ${slate('pick a number, or just type — your context travels with every route')}`);
590
+ // One quiet line to the deeper power, without dumping the whole command list:
591
+ // the moves that make phewsh more than a chat box — true continuity across
592
+ // harnesses. /help opens everything when they're ready.
593
+ console.log(` ${slate('⌄ deeper:')} ${cream('/work')} ${slate('hand to a tool')} ${slate('·')} ${cream('/council')} ${slate('ask them all')} ${slate('·')} ${cream('/handoff')} ${slate('what carries over')} ${slate('·')} ${cream('/help')} ${slate('all')}`);
586
594
  }
587
595
 
588
596
  // Self-aware guidance: snapshot the session's state so phewsh can recommend
@@ -666,6 +674,7 @@ async function main() {
666
674
  const tools = continuity.toolsInThread(decisions, { project: projectName });
667
675
  const span = tools >= 2 ? slate(` · ${tools} tools, one thread`) : '';
668
676
  console.log(` ${teal('↻')} ${sage('Picking up — ' + line)}${span} ${slate('· /thread')}`);
677
+ console.log(''); // breathe before "What are you trying to do?"
669
678
  } catch { /* continuity is a nicety, never a blocker */ }
670
679
  }
671
680
 
@@ -733,10 +742,8 @@ async function main() {
733
742
  console.log('');
734
743
  if (!route) {
735
744
  // Nothing to route through: no key, no agent CLIs found on this machine.
736
- console.log(` ${b(cream('Welcome to phewsh.'))}`);
737
- console.log('');
738
- console.log(` ${sage('No agent CLI found (Claude Code, Codex, Gemini, Cursor, OpenCode)')}`);
739
- console.log(` ${sage('and no API key set. Either one gets you running:')}`);
745
+ console.log(` ${b(cream('Two ways to get running:'))}`);
746
+ console.log(` ${slate('No agent CLI found (Claude Code, Codex, Gemini, Cursor, OpenCode) and no API key yet.')}`);
740
747
  console.log('');
741
748
  console.log(` ${teal('/key')} ${sage('Set an API key (10 seconds)')}`);
742
749
  console.log(` ${teal('/tour')} ${sage('See what this does (nothing needed)')}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "phewsh",
3
- "version": "0.15.60",
3
+ "version": "0.15.61",
4
4
  "description": "Turn intent into action. Structure your thinking, execute your next step.",
5
5
  "bin": {
6
6
  "phewsh": "bin/phewsh.js"