Files
stack/docs/scratchpads/p8-009-tui-slash-commands.md
Jarvis 774b76447d
Some checks failed
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline failed
fix: rename all packages from @mosaic/* to @mosaicstack/*
- Updated all package.json name fields and dependency references
- Updated all TypeScript/JavaScript imports
- Updated .woodpecker/publish.yml filters and registry paths
- Updated tools/install.sh scope default
- Updated .npmrc registry paths (worktree + host)
- Enhanced update-checker.ts with checkForAllUpdates() multi-package support
- Updated CLI update command to show table of all packages
- Added KNOWN_PACKAGES, formatAllPackagesTable, getInstallAllCommand
- Marked checkForUpdate() with @deprecated JSDoc

Closes #391
2026-04-04 21:43:23 -05:00

1.6 KiB

P8-009: TUI Phase 1 — Slash Command Parsing

Task Reference

  • Issue: #162
  • Branch: feat/p8-009-tui-slash-commands

Scope

  • New files: parse.ts, registry.ts, local/help.ts, local/status.ts, commands/index.ts
  • Modified files: use-socket.ts, input-bar.tsx, message-list.tsx, app.tsx

Key Observations

  • CommandDef in @mosaicstack/types does NOT have category field — will omit from LOCAL_COMMANDS
  • CommandDef.args is CommandArgDef[] | undefined, not { usage: string } — help.ts args rendering needs adjustment
  • Message role union currently: 'user' | 'assistant' | 'thinking' | 'tool' — adding 'system'
  • InputBar currently takes onSubmit: (value: string) => void — need to add slash command interception
  • app.tsx passes onSubmit={socket.sendMessage} directly — needs command-aware handler

Assumptions

  • ASSUMPTION: category field not in CommandDef type — will skip category grouping in help output, or add it only to registry (not to CommandDef type)
  • ASSUMPTION: For the args field display in help, will use CommandArgDef.name and CommandArgDef.description
  • ASSUMPTION: commands:manifest event type may not be in ServerToClientEvents — will handle via socket.on with casting if needed

Status

  • Create commands directory structure
  • Implement parse.ts
  • Implement registry.ts
  • Implement local/help.ts
  • Implement local/status.ts
  • Implement commands/index.ts
  • Modify use-socket.ts
  • Modify input-bar.tsx
  • Modify message-list.tsx
  • Modify app.tsx
  • Run quality gates
  • Commit + Push + PR + CI