@orbitpanel/cli 1.0.0-beta.9 → 1.0.1

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.
@@ -5,22 +5,29 @@ export default class Shell extends Command {
5
5
  static args = {};
6
6
  static flags = {};
7
7
  async run() {
8
+ const fs = await import('node:fs');
9
+ const dbg = (msg) => fs.appendFileSync('/tmp/orbit-debug.log', msg + '\n');
10
+ dbg(`isTTY=${process.stdin.isTTY} time=${new Date().toISOString()}`);
8
11
  if (process.stdin.isTTY) {
9
12
  try {
13
+ dbg('importing shell-ink...');
10
14
  const { startInkShell } = await import('../lib/shell-ink.js');
15
+ dbg('calling startInkShell...');
11
16
  await startInkShell(this.config.version);
17
+ dbg('startInkShell resolved normally');
12
18
  }
13
19
  catch (err) {
14
- // Ink crashed — fall back to readline, show error AFTER clear
15
20
  const msg = err instanceof Error ? err.message : String(err);
16
- const stack = err instanceof Error ? err.stack?.split('\n').slice(0, 3).join('\n') : '';
21
+ const stack = err instanceof Error ? err.stack ?? '' : '';
22
+ dbg(`INK CRASHED: ${msg}\n${stack}`);
17
23
  const { startShell } = await import('../lib/shell.js');
18
- // Pass error info so readline fallback can display it after its own clear
19
24
  process.env.__ORBIT_INK_ERROR = `${msg}\n${stack}`;
20
25
  await startShell(this.config.version);
26
+ dbg('readline fallback finished');
21
27
  }
22
28
  }
23
29
  else {
30
+ dbg('non-TTY, using readline');
24
31
  const { startShell } = await import('../lib/shell.js');
25
32
  await startShell(this.config.version);
26
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/commands/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,MAAM,CAAC,OAAO,GAAG,yCAAyC,CAAC;IAC3D,MAAM,CAAC,WAAW,GAAG,6FAA6F,CAAC;IAEnH,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;IAElB,KAAK,CAAC,GAAG;QACP,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBAC9D,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,8DAA8D;gBAC9D,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxF,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBACvD,0EAA0E;gBAC1E,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,GAAG,GAAG,KAAK,KAAK,EAAE,CAAC;gBACnD,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACvD,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/commands/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,MAAM,CAAC,OAAO,GAAG,yCAAyC,CAAC;IAC3D,MAAM,CAAC,WAAW,GAAG,6FAA6F,CAAC;IAEnH,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;IAElB,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,sBAAsB,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;QAEnF,GAAG,CAAC,SAAS,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACrE,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,GAAG,CAAC,wBAAwB,CAAC,CAAC;gBAC9B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBAC9D,GAAG,CAAC,0BAA0B,CAAC,CAAC;gBAChC,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACzC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,gBAAgB,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;gBACrC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBACvD,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,GAAG,GAAG,KAAK,KAAK,EAAE,CAAC;gBACnD,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACtC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAC/B,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACvD,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Interactive selection list with search — gum filter inspired.
3
+ *
4
+ * Features:
5
+ * - Real-time search/filter (just type)
6
+ * - Scrollable viewport (shows N items at a time)
7
+ * - Arrow keys navigate, Enter selects, Esc cancels
8
+ * - Count indicator (3 di 45)
9
+ */
10
+ export interface SelectItem {
11
+ id: string;
12
+ label: string;
13
+ detail?: string;
14
+ icon?: string;
15
+ iconColor?: string;
16
+ }
17
+ interface SelectListProps {
18
+ items: SelectItem[];
19
+ title: string;
20
+ onSelect: (item: SelectItem) => void;
21
+ onCancel: () => void;
22
+ maxVisible?: number;
23
+ }
24
+ export declare function SelectList({ items, title, onSelect, onCancel, maxVisible }: SelectListProps): import("react/jsx-runtime").JSX.Element;
25
+ export {};
@@ -0,0 +1,70 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * Interactive selection list with search — gum filter inspired.
4
+ *
5
+ * Features:
6
+ * - Real-time search/filter (just type)
7
+ * - Scrollable viewport (shows N items at a time)
8
+ * - Arrow keys navigate, Enter selects, Esc cancels
9
+ * - Count indicator (3 di 45)
10
+ */
11
+ import { useState } from 'react';
12
+ import { Box, Text, useInput } from 'ink';
13
+ export function SelectList({ items, title, onSelect, onCancel, maxVisible = 10 }) {
14
+ const [selectedIdx, setSelectedIdx] = useState(0);
15
+ const [filter, setFilter] = useState('');
16
+ const filtered = filter
17
+ ? items.filter(i => i.label.toLowerCase().includes(filter.toLowerCase()) ||
18
+ (i.detail ?? '').toLowerCase().includes(filter.toLowerCase()))
19
+ : items;
20
+ // Scrollable viewport
21
+ const total = filtered.length;
22
+ const viewSize = Math.min(maxVisible, total);
23
+ let viewStart = 0;
24
+ if (selectedIdx >= viewStart + viewSize) {
25
+ viewStart = selectedIdx - viewSize + 1;
26
+ }
27
+ else if (selectedIdx < viewStart) {
28
+ viewStart = selectedIdx;
29
+ }
30
+ // Keep selectedIdx centered when possible
31
+ viewStart = Math.max(0, Math.min(selectedIdx - Math.floor(viewSize / 2), total - viewSize));
32
+ const viewItems = filtered.slice(viewStart, viewStart + viewSize);
33
+ useInput((ch, key) => {
34
+ if (key.escape) {
35
+ onCancel();
36
+ return;
37
+ }
38
+ if (key.return && total > 0) {
39
+ onSelect(filtered[selectedIdx]);
40
+ return;
41
+ }
42
+ if (key.upArrow) {
43
+ setSelectedIdx(prev => prev <= 0 ? total - 1 : prev - 1);
44
+ return;
45
+ }
46
+ if (key.downArrow) {
47
+ setSelectedIdx(prev => prev >= total - 1 ? 0 : prev + 1);
48
+ return;
49
+ }
50
+ if (key.backspace || key.delete) {
51
+ setFilter(prev => prev.slice(0, -1));
52
+ setSelectedIdx(0);
53
+ return;
54
+ }
55
+ if (key.tab || key.ctrl || key.meta)
56
+ return;
57
+ // Filter typing
58
+ if (ch && ch.length === 1 && ch.charCodeAt(0) >= 32) {
59
+ setFilter(prev => prev + ch);
60
+ setSelectedIdx(0);
61
+ }
62
+ });
63
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 1, paddingY: 0, children: [_jsxs(Box, { justifyContent: "space-between", children: [_jsx(Text, { color: "cyan", bold: true, children: title }), _jsxs(Text, { dimColor: true, children: [total, " di ", items.length] })] }), _jsxs(Box, { marginTop: 0, marginBottom: 0, children: [_jsx(Text, { dimColor: true, children: "\uD83D\uDD0D " }), filter ? (_jsxs(_Fragment, { children: [_jsx(Text, { color: "cyan", children: filter }), _jsx(Text, { inverse: true, children: ' ' })] })) : (_jsx(Text, { dimColor: true, children: "digita per cercare..." }))] }), _jsx(Text, { dimColor: true, children: '─'.repeat(40) }), total === 0 ? (_jsxs(Text, { dimColor: true, children: [" Nessun risultato per \"", filter, "\""] })) : (_jsxs(_Fragment, { children: [viewStart > 0 && (_jsxs(Text, { dimColor: true, children: [" \u2191 altri ", viewStart] })), viewItems.map((item, viewIdx) => {
64
+ const realIdx = viewStart + viewIdx;
65
+ const isActive = realIdx === selectedIdx;
66
+ const icon = item.icon ?? '○';
67
+ return (_jsxs(Box, { gap: 1, children: [_jsx(Text, { color: isActive ? 'cyan' : 'gray', children: isActive ? ' ❯' : ' ' }), _jsx(Text, { color: item.iconColor ?? (isActive ? 'green' : 'gray'), children: icon }), _jsx(Text, { bold: isActive, color: isActive ? 'white' : undefined, children: item.label }), item.detail && (_jsxs(Text, { dimColor: true, children: [" ", item.detail] }))] }, item.id));
68
+ }), viewStart + viewSize < total && (_jsxs(Text, { dimColor: true, children: [" \u2193 altri ", total - viewStart - viewSize] }))] })), _jsx(Text, { dimColor: true, children: '─'.repeat(40) }), _jsx(Text, { dimColor: true, children: " \u2191\u2193 naviga \u00B7 Enter seleziona \u00B7 Esc annulla" })] }));
69
+ }
70
+ //# sourceMappingURL=SelectList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectList.js","sourceRoot":"","sources":["../../src/components/SelectList.tsx"],"names":[],"mappings":"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"}
@@ -1,14 +1,17 @@
1
1
  /**
2
- * Main Ink shell — charmbracelet-inspired design.
2
+ * Main Ink shell — Claude Code-inspired UX.
3
3
  *
4
- * Navigation: ↑↓ arrows + Enter (NO Tab — stock Ink intercepts it).
5
- * Input: manual via useInput(), no TextInput dependency.
4
+ * Supports three modes:
5
+ * 1. INPUT normal prompt, typing, slash suggestions
6
+ * 2. SELECT — interactive list (sites, interventions, etc.)
7
+ * 3. PROCESSING — spinner, waiting for response
6
8
  */
9
+ import { type SelectItem } from './SelectList.js';
7
10
  import type { OrbitStore } from '../state/store.js';
8
- interface ShellAppProps {
11
+ export interface ShellAppProps {
9
12
  store: OrbitStore;
10
13
  version: string;
11
- onCommand: (cmd: string, addOutput: (text: string) => void) => Promise<void>;
14
+ onCommand: (cmd: string, addOutput: (text: string) => void, showSelect: ShowSelectFn) => Promise<void>;
12
15
  }
16
+ export type ShowSelectFn = (title: string, items: SelectItem[]) => Promise<SelectItem | null>;
13
17
  export declare function ShellApp({ store, version, onCommand }: ShellAppProps): import("react/jsx-runtime").JSX.Element;
14
- export {};
@@ -1,16 +1,20 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /**
3
- * Main Ink shell — charmbracelet-inspired design.
3
+ * Main Ink shell — Claude Code-inspired UX.
4
4
  *
5
- * Navigation: ↑↓ arrows + Enter (NO Tab — stock Ink intercepts it).
6
- * Input: manual via useInput(), no TextInput dependency.
5
+ * Supports three modes:
6
+ * 1. INPUT normal prompt, typing, slash suggestions
7
+ * 2. SELECT — interactive list (sites, interventions, etc.)
8
+ * 3. PROCESSING — spinner, waiting for response
7
9
  */
8
- import { useState, useCallback, useRef, useEffect } from 'react';
10
+ import { useState, useCallback, useEffect } from 'react';
9
11
  import { Box, Text, Static, useInput, useApp, useFocusManager } from 'ink';
10
12
  import { StatusBar } from './StatusBar.js';
11
13
  import { SuggestionList } from './SuggestionList.js';
14
+ import { SelectList } from './SelectList.js';
12
15
  import { getSuggestions } from '../lib/shell-completer.js';
13
16
  import { SLASH_COMMANDS } from '../lib/shell-render.js';
17
+ const SPINNER = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
14
18
  function buildBarProps(store) {
15
19
  const { tokenEntry, siteLink, session, gitBranch } = store.getState();
16
20
  const mins = session
@@ -29,17 +33,26 @@ export function ShellApp({ store, version, onCommand }) {
29
33
  const { exit } = useApp();
30
34
  const { disableFocus } = useFocusManager();
31
35
  useEffect(() => { disableFocus(); }, [disableFocus]);
36
+ const [mode, setMode] = useState('input');
32
37
  const [input, setInput] = useState('');
33
38
  const [outputItems, setOutputItems] = useState([]);
34
39
  const [suggestions, setSuggestions] = useState([]);
35
40
  const [selectedIdx, setSelectedIdx] = useState(0);
36
- const [isProcessing, setIsProcessing] = useState(false);
41
+ const [spinnerFrame, setSpinnerFrame] = useState(0);
37
42
  const [barProps, setBarProps] = useState(buildBarProps(store));
38
- const idCounter = useRef(0);
39
- const suggestionsActive = suggestions.length > 0 && !isProcessing;
43
+ const [selectState, setSelectState] = useState(null);
44
+ const suggestionsActive = suggestions.length > 0 && mode === 'input';
45
+ useEffect(() => {
46
+ if (mode !== 'processing')
47
+ return;
48
+ const timer = setInterval(() => {
49
+ setSpinnerFrame(prev => (prev + 1) % SPINNER.length);
50
+ }, 80);
51
+ return () => clearInterval(timer);
52
+ }, [mode]);
40
53
  const addOutput = useCallback((text) => {
41
- idCounter.current += 1;
42
- setOutputItems(prev => [...prev, { id: idCounter.current, text }]);
54
+ const id = `${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
55
+ setOutputItems(prev => [...prev, { id, text }]);
43
56
  }, []);
44
57
  const refreshBar = useCallback(() => {
45
58
  setBarProps(buildBarProps(store));
@@ -54,6 +67,20 @@ export function ShellApp({ store, version, onCommand }) {
54
67
  setSelectedIdx(0);
55
68
  }
56
69
  }, []);
70
+ /** Show an interactive selection list. Returns selected item or null if cancelled. */
71
+ const showSelect = useCallback((title, items) => {
72
+ return new Promise((resolve) => {
73
+ setSelectState({ items, title, resolve });
74
+ setMode('select');
75
+ });
76
+ }, []);
77
+ const handleSelectDone = useCallback((item) => {
78
+ if (selectState?.resolve) {
79
+ selectState.resolve(item);
80
+ }
81
+ setSelectState(null);
82
+ setMode('input');
83
+ }, [selectState]);
57
84
  const handleSubmit = useCallback(async (value) => {
58
85
  const cmd = value.trim();
59
86
  if (!cmd)
@@ -66,20 +93,22 @@ export function ShellApp({ store, version, onCommand }) {
66
93
  exit();
67
94
  return;
68
95
  }
69
- setIsProcessing(true);
96
+ setMode('processing');
70
97
  try {
71
- await onCommand(cmd, addOutput);
98
+ await onCommand(cmd, addOutput, showSelect);
72
99
  }
73
100
  catch (err) {
74
101
  addOutput(` ✗ Errore: ${err instanceof Error ? err.message : String(err)}`);
75
102
  }
76
- setIsProcessing(false);
103
+ setMode('input');
77
104
  refreshBar();
78
- }, [onCommand, addOutput, refreshBar, exit]);
105
+ }, [onCommand, addOutput, showSelect, refreshBar, exit]);
106
+ // Keyboard — only active in INPUT mode
79
107
  useInput((ch, key) => {
80
- if (isProcessing)
108
+ if (mode !== 'input')
109
+ return;
110
+ if (key.tab || ch === '\t')
81
111
  return;
82
- // Enter — select suggestion or submit command
83
112
  if (key.return) {
84
113
  if (suggestionsActive && selectedIdx >= 0 && suggestions[selectedIdx]) {
85
114
  setInput(suggestions[selectedIdx].cmd);
@@ -91,7 +120,6 @@ export function ShellApp({ store, version, onCommand }) {
91
120
  }
92
121
  return;
93
122
  }
94
- // Arrow navigation
95
123
  if (key.upArrow && suggestionsActive) {
96
124
  setSelectedIdx(prev => prev <= 0 ? suggestions.length - 1 : prev - 1);
97
125
  return;
@@ -100,49 +128,33 @@ export function ShellApp({ store, version, onCommand }) {
100
128
  setSelectedIdx(prev => prev >= suggestions.length - 1 ? 0 : prev + 1);
101
129
  return;
102
130
  }
103
- // Escape — close suggestions
104
131
  if (key.escape) {
105
132
  setSuggestions([]);
106
133
  setSelectedIdx(0);
107
134
  return;
108
135
  }
109
- // Backspace
110
136
  if (key.backspace || key.delete) {
111
137
  const newVal = input.slice(0, -1);
112
138
  setInput(newVal);
113
139
  updateSuggestions(newVal);
114
140
  return;
115
141
  }
116
- // Ctrl shortcuts
117
142
  if (key.ctrl) {
118
143
  if (ch === 'u') {
119
144
  setInput('');
120
145
  setSuggestions([]);
121
- return;
122
146
  }
123
147
  if (ch === 'c') {
124
148
  exit();
125
- return;
126
- }
127
- if (ch === 'n' && suggestionsActive) {
128
- setSelectedIdx(prev => prev >= suggestions.length - 1 ? 0 : prev + 1);
129
- return;
130
- }
131
- if (ch === 'p' && suggestionsActive) {
132
- setSelectedIdx(prev => prev <= 0 ? suggestions.length - 1 : prev - 1);
133
- return;
134
149
  }
135
150
  return;
136
151
  }
137
- // Ignore Tab and all non-printable characters
138
- if (key.tab || !ch || ch.charCodeAt(0) < 32 || key.meta) {
139
- return;
152
+ if (ch && ch.length === 1 && ch.charCodeAt(0) >= 32 && !key.meta) {
153
+ const newVal = input + ch;
154
+ setInput(newVal);
155
+ updateSuggestions(newVal);
140
156
  }
141
- // Regular printable character
142
- const newVal = input + ch;
143
- setInput(newVal);
144
- updateSuggestions(newVal);
145
157
  });
146
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Static, { items: outputItems, children: (item) => _jsx(Text, { children: item.text }, item.id) }), _jsx(Text, { children: '' }), _jsxs(Box, { borderStyle: "round", borderColor: isProcessing ? 'yellow' : 'blue', paddingX: 1, children: [_jsx(Text, { color: "blue", bold: true, children: "orbit" }), _jsxs(Text, { color: isProcessing ? 'yellow' : 'white', bold: true, children: [' ', isProcessing ? '⟳' : '', ' '] }), isProcessing ? (_jsx(Text, { color: "yellow", children: "elaborazione..." })) : (_jsxs(_Fragment, { children: [_jsx(Text, { children: input }), _jsx(Text, { backgroundColor: "white", color: "black", children: ' ' })] }))] }), suggestionsActive && (_jsx(SuggestionList, { items: suggestions, selectedIndex: selectedIdx })), _jsx(StatusBar, { ...barProps })] }));
158
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Static, { items: outputItems, children: (item) => _jsx(Text, { children: item.text }, item.id) }), _jsx(Text, { children: '' }), _jsx(Text, { children: '' }), mode === 'select' && selectState && (_jsx(SelectList, { items: selectState.items, title: selectState.title, onSelect: (item) => handleSelectDone(item), onCancel: () => handleSelectDone(null) })), mode === 'input' && (_jsxs(Box, { borderStyle: "round", borderColor: "blue", paddingX: 1, children: [_jsx(Text, { color: "blue", bold: true, children: "\u276F " }), _jsx(Text, { children: input }), _jsx(Text, { inverse: true, children: ' ' })] })), mode === 'processing' && (_jsxs(Box, { borderStyle: "round", borderColor: "yellow", paddingX: 1, children: [_jsx(Text, { color: "yellow", children: SPINNER[spinnerFrame] }), _jsx(Text, { color: "yellow", children: " elaborazione..." })] })), suggestionsActive && (_jsx(SuggestionList, { items: suggestions, selectedIndex: selectedIdx })), _jsx(StatusBar, { ...barProps })] }));
147
159
  }
148
160
  //# sourceMappingURL=ShellApp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShellApp.js","sourceRoot":"","sources":["../../src/components/ShellApp.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShellApp.js","sourceRoot":"","sources":["../../src/components/ShellApp.tsx"],"names":[],"mappings":"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"}
@@ -20,10 +20,22 @@ const hook = async function (options) {
20
20
  catch {
21
21
  // Silently ignore update check failures
22
22
  }
23
- // Bare `orbit` → interactive shell
23
+ // Bare `orbit` → interactive shell (Ink if TTY, readline fallback otherwise)
24
24
  if (!options.id && (!options.argv || options.argv.length === 0)) {
25
- const { startShell } = await import('../lib/shell.js');
26
- await startShell(options.config.version);
25
+ if (process.stdin.isTTY) {
26
+ try {
27
+ const { startInkShell } = await import('../lib/shell-ink.js');
28
+ await startInkShell(options.config.version);
29
+ }
30
+ catch {
31
+ const { startShell } = await import('../lib/shell.js');
32
+ await startShell(options.config.version);
33
+ }
34
+ }
35
+ else {
36
+ const { startShell } = await import('../lib/shell.js');
37
+ await startShell(options.config.version);
38
+ }
27
39
  process.exit(0);
28
40
  }
29
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/hooks/init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,IAAI,GAAc,KAAK,WAAW,OAAO;IAC7C,mCAAmC;IACnC,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC;QACjE,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACzE,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;QAE9F,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,mCAAmC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAClI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;IAC1C,CAAC;IAED,mCAAmC;IACnC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACvD,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/hooks/init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,IAAI,GAAc,KAAK,WAAW,OAAO;IAC7C,mCAAmC;IACnC,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC;QACjE,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACzE,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;QAE9F,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,mCAAmC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAClI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;IAC1C,CAAC;IAED,6EAA6E;IAC7E,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAChE,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBAC9D,MAAM,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBACvD,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACvD,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -32,5 +32,7 @@ export declare class OrbitClient {
32
32
  getStats(): Promise<Record<string, unknown>>;
33
33
  /** List WordPress sites. */
34
34
  listSites(): Promise<Record<string, unknown>[]>;
35
+ /** Safely parse JSON response. Returns empty object on parse failure. */
36
+ private safeJson;
35
37
  private handleError;
36
38
  }
@@ -98,7 +98,7 @@ export class OrbitClient {
98
98
  if (!res.ok) {
99
99
  await this.handleError(res);
100
100
  }
101
- return res.json();
101
+ return this.safeJson(res);
102
102
  }
103
103
  /** Create a new intervention. */
104
104
  async createIntervention(data) {
@@ -110,7 +110,7 @@ export class OrbitClient {
110
110
  if (!res.ok) {
111
111
  await this.handleError(res);
112
112
  }
113
- return res.json();
113
+ return this.safeJson(res);
114
114
  }
115
115
  /** Get a single intervention by ID. */
116
116
  async getIntervention(id) {
@@ -118,7 +118,7 @@ export class OrbitClient {
118
118
  if (!res.ok) {
119
119
  await this.handleError(res);
120
120
  }
121
- return res.json();
121
+ return this.safeJson(res);
122
122
  }
123
123
  /** Update an intervention. */
124
124
  async updateIntervention(id, data) {
@@ -130,7 +130,7 @@ export class OrbitClient {
130
130
  if (!res.ok) {
131
131
  await this.handleError(res);
132
132
  }
133
- return res.json();
133
+ return this.safeJson(res);
134
134
  }
135
135
  /** Delete an intervention. */
136
136
  async deleteIntervention(id) {
@@ -145,7 +145,7 @@ export class OrbitClient {
145
145
  if (!res.ok) {
146
146
  await this.handleError(res);
147
147
  }
148
- return res.json();
148
+ return this.safeJson(res);
149
149
  }
150
150
  /** List WordPress sites. */
151
151
  async listSites() {
@@ -153,11 +153,25 @@ export class OrbitClient {
153
153
  if (!res.ok) {
154
154
  await this.handleError(res);
155
155
  }
156
- return res.json();
156
+ return this.safeJson(res);
157
+ }
158
+ /** Safely parse JSON response. Returns empty object on parse failure. */
159
+ async safeJson(res) {
160
+ const text = await res.text();
161
+ try {
162
+ return JSON.parse(text);
163
+ }
164
+ catch {
165
+ throw new Error(`Risposta non valida (non JSON): ${text.slice(0, 100)}`);
166
+ }
157
167
  }
158
168
  async handleError(res) {
159
- const body = await res.json().catch(() => ({}));
160
- const detail = body.detail || res.statusText;
169
+ let detail = res.statusText;
170
+ try {
171
+ const body = await this.safeJson(res);
172
+ detail = body.detail || res.statusText;
173
+ }
174
+ catch { /* use statusText */ }
161
175
  throw new Error(`HTTP ${res.status}: ${detail}`);
162
176
  }
163
177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Shared command router for @orbitpanel/cli.
3
+ *
4
+ * SINGLE source of truth for slash command routing.
5
+ * Used by BOTH shell-ink.ts (Ink) and shell.ts (readline).
6
+ * Eliminates the 99% duplication between the two files.
7
+ */
8
+ import { OrbitStore } from '../state/store.js';
9
+ export interface CommandContext {
10
+ /** Original input (preserving case) */
11
+ input: string;
12
+ /** Working directory */
13
+ cwd: string;
14
+ /** Centralized state store */
15
+ store: OrbitStore;
16
+ /** Output function (console.log for readline, addOutput for Ink) */
17
+ output: (text: string) => void;
18
+ /** Confirmation prompt (only in readline TTY mode) */
19
+ promptConfirm?: (message: string) => Promise<boolean>;
20
+ /** Interactive selection (only in Ink mode) */
21
+ showSelect?: (title: string, items: import('../components/SelectList.js').SelectItem[]) => Promise<import('../components/SelectList.js').SelectItem | null>;
22
+ }
23
+ export interface CommandResult {
24
+ /** Whether the command was recognized and handled */
25
+ handled: boolean;
26
+ /** Whether the store should be refreshed after this command */
27
+ needsRefresh: boolean;
28
+ /** Whether the shell should exit */
29
+ shouldExit: boolean;
30
+ /** Whether this was an AI chat (free text) */
31
+ isChat: boolean;
32
+ }
33
+ /**
34
+ * Route a slash command. Returns result indicating what happened.
35
+ * The caller handles UI-specific behavior (prompt refresh, bar update, etc.)
36
+ */
37
+ export declare function routeCommand(ctx: CommandContext): Promise<CommandResult>;
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Shared command router for @orbitpanel/cli.
3
+ *
4
+ * SINGLE source of truth for slash command routing.
5
+ * Used by BOTH shell-ink.ts (Ink) and shell.ts (readline).
6
+ * Eliminates the 99% duplication between the two files.
7
+ */
8
+ import { SLASH_COMMANDS, sparkle, BB, DIM, WHITE } from './shell-render.js';
9
+ import { formatSuggestionList } from './shell-completer.js';
10
+ import { getUnknownCommandHint } from './shell-hints.js';
11
+ import { cmdStatus, cmdDoctor, cmdSessionStart, cmdSessionEnd, cmdSessionInfo, cmdNoteAdd, cmdReport, cmdList, cmdGet, cmdHistory, cmdSites, cmdAuth, cmdLogin, cmdLink, } from './shell-commands.js';
12
+ /** Capture console.log output into a string via callback. */
13
+ async function captureToOutput(fn, output) {
14
+ const origLog = console.log;
15
+ const lines = [];
16
+ console.log = (...args) => {
17
+ lines.push(args.map(a => typeof a === 'string' ? a : String(a)).join(' '));
18
+ };
19
+ try {
20
+ const result = fn();
21
+ if (result instanceof Promise)
22
+ await result;
23
+ }
24
+ finally {
25
+ console.log = origLog;
26
+ if (lines.length > 0) {
27
+ output(lines.join('\n'));
28
+ }
29
+ }
30
+ }
31
+ /**
32
+ * Route a slash command. Returns result indicating what happened.
33
+ * The caller handles UI-specific behavior (prompt refresh, bar update, etc.)
34
+ */
35
+ export async function routeCommand(ctx) {
36
+ const cmd = ctx.input.toLowerCase().trim();
37
+ const noResult = { handled: false, needsRefresh: false, shouldExit: false, isChat: false };
38
+ // Exit
39
+ if (cmd === '/exit' || cmd === '/quit' || cmd === '/q') {
40
+ return { handled: true, needsRefresh: false, shouldExit: true, isChat: false };
41
+ }
42
+ // Clear
43
+ if (cmd === '/clear' || cmd === '/cls') {
44
+ return { handled: true, needsRefresh: false, shouldExit: false, isChat: false };
45
+ }
46
+ // Help
47
+ if (cmd === '/help' || cmd === '/h') {
48
+ await captureToOutput(() => {
49
+ console.log('');
50
+ console.log(` ${sparkle} ${BB('Comandi disponibili')}`);
51
+ console.log('');
52
+ for (const c of SLASH_COMMANDS) {
53
+ const alias = c.alias ? DIM(` ${c.alias}`) : '';
54
+ console.log(` ${WHITE(c.cmd.padEnd(18))}${alias.padEnd(10)}${DIM(c.desc)}`);
55
+ }
56
+ console.log('');
57
+ console.log(` ${DIM('Digita / e usa ↑↓ per navigare. Oppure scrivi in linguaggio naturale.')}`);
58
+ }, ctx.output);
59
+ return { handled: true, needsRefresh: false, shouldExit: false, isChat: false };
60
+ }
61
+ // Status
62
+ if (cmd === '/status' || cmd === '/s') {
63
+ await captureToOutput(() => cmdStatus(), ctx.output);
64
+ return { handled: true, needsRefresh: false, shouldExit: false, isChat: false };
65
+ }
66
+ // Doctor
67
+ if (cmd === '/doctor' || cmd === '/doc') {
68
+ await captureToOutput(() => cmdDoctor(), ctx.output);
69
+ return { handled: true, needsRefresh: false, shouldExit: false, isChat: false };
70
+ }
71
+ // Session start
72
+ if (cmd === '/session start' || cmd === '/ss') {
73
+ await captureToOutput(() => cmdSessionStart(), ctx.output);
74
+ return { handled: true, needsRefresh: true, shouldExit: false, isChat: false };
75
+ }
76
+ // Session end
77
+ if (cmd === '/session end' || cmd === '/se') {
78
+ await captureToOutput(() => cmdSessionEnd(), ctx.output);
79
+ return { handled: true, needsRefresh: true, shouldExit: false, isChat: false };
80
+ }
81
+ // Session info
82
+ if (cmd === '/session' || cmd === '/session info') {
83
+ await captureToOutput(() => cmdSessionInfo(), ctx.output);
84
+ return { handled: true, needsRefresh: false, shouldExit: false, isChat: false };
85
+ }
86
+ // Note
87
+ if (cmd.startsWith('/note ') || cmd.startsWith('/n ')) {
88
+ const text = ctx.input.slice(ctx.input.indexOf(' ') + 1);
89
+ await captureToOutput(() => cmdNoteAdd(text), ctx.output);
90
+ return { handled: true, needsRefresh: false, shouldExit: false, isChat: false };
91
+ }
92
+ // Report (with optional promptConfirm)
93
+ if (cmd === '/report' || cmd === '/r') {
94
+ await captureToOutput(() => cmdReport(ctx.promptConfirm), ctx.output);
95
+ return { handled: true, needsRefresh: true, shouldExit: false, isChat: false };
96
+ }
97
+ // List
98
+ if (cmd === '/list' || cmd === '/ls' || cmd === '/interventions') {
99
+ await captureToOutput(() => cmdList(), ctx.output);
100
+ return { handled: true, needsRefresh: false, shouldExit: false, isChat: false };
101
+ }
102
+ // History
103
+ if (cmd === '/history' || cmd === '/hist') {
104
+ await captureToOutput(() => cmdHistory(), ctx.output);
105
+ return { handled: true, needsRefresh: false, shouldExit: false, isChat: false };
106
+ }
107
+ // Get
108
+ if (cmd.startsWith('/get ') || cmd.startsWith('/g ')) {
109
+ const id = ctx.input.split(' ')[1];
110
+ await captureToOutput(() => cmdGet(id), ctx.output);
111
+ return { handled: true, needsRefresh: false, shouldExit: false, isChat: false };
112
+ }
113
+ // Sites (interactive if showSelect available, else fallback)
114
+ if (cmd === '/sites' || cmd.startsWith('/sites ')) {
115
+ const arg = cmd.split(' ')[1];
116
+ if (!arg && ctx.showSelect) {
117
+ // Interactive selection handled by caller (UI-specific)
118
+ return { handled: false, needsRefresh: true, shouldExit: false, isChat: false };
119
+ }
120
+ await captureToOutput(() => cmdSites(arg), ctx.output);
121
+ return { handled: true, needsRefresh: true, shouldExit: false, isChat: false };
122
+ }
123
+ // Auth
124
+ if (cmd === '/auth') {
125
+ await captureToOutput(() => cmdAuth(), ctx.output);
126
+ return { handled: true, needsRefresh: true, shouldExit: false, isChat: false };
127
+ }
128
+ // Login
129
+ if (cmd.startsWith('/login ')) {
130
+ const token = ctx.input.split(' ')[1];
131
+ await captureToOutput(() => cmdLogin(token), ctx.output);
132
+ return { handled: true, needsRefresh: true, shouldExit: false, isChat: false };
133
+ }
134
+ // Link
135
+ if (cmd.startsWith('/link ')) {
136
+ const siteId = ctx.input.split(' ')[1];
137
+ await captureToOutput(() => cmdLink(siteId), ctx.output);
138
+ return { handled: true, needsRefresh: true, shouldExit: false, isChat: false };
139
+ }
140
+ // "/" alone → command list
141
+ if (cmd === '/') {
142
+ await captureToOutput(() => {
143
+ console.log('');
144
+ console.log(` ${sparkle} ${BB('Comandi disponibili')}`);
145
+ console.log('');
146
+ console.log(formatSuggestionList(SLASH_COMMANDS));
147
+ console.log('');
148
+ }, ctx.output);
149
+ return { handled: true, needsRefresh: false, shouldExit: false, isChat: false };
150
+ }
151
+ // Unknown slash command → suggest
152
+ if (cmd.startsWith('/')) {
153
+ const hint = getUnknownCommandHint(cmd);
154
+ ctx.output(`\n ${DIM('Comando sconosciuto:')} ${WHITE(cmd)}\n ${DIM(hint)}\n`);
155
+ return { handled: true, needsRefresh: false, shouldExit: false, isChat: false };
156
+ }
157
+ // Not a slash command → free text (AI chat)
158
+ return { handled: false, needsRefresh: false, shouldExit: false, isChat: true };
159
+ }
160
+ //# sourceMappingURL=command-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-router.js","sourceRoot":"","sources":["../../src/lib/command-router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Lightweight markdown → chalk renderer for terminal.
3
+ * Handles: **bold**, *italic*, `code`, ```code blocks```, - lists, ### headings.
4
+ * No dependencies — pure string transform with chalk.
5
+ */
6
+ /**
7
+ * Render markdown text to chalk-styled terminal string.
8
+ */
9
+ export declare function renderMarkdown(text: string): string;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Lightweight markdown → chalk renderer for terminal.
3
+ * Handles: **bold**, *italic*, `code`, ```code blocks```, - lists, ### headings.
4
+ * No dependencies — pure string transform with chalk.
5
+ */
6
+ import chalk from 'chalk';
7
+ /**
8
+ * Render markdown text to chalk-styled terminal string.
9
+ */
10
+ export function renderMarkdown(text) {
11
+ const lines = text.split('\n');
12
+ let inCodeBlock = false;
13
+ const result = [];
14
+ for (const line of lines) {
15
+ // Code block toggle
16
+ if (line.trim().startsWith('```')) {
17
+ inCodeBlock = !inCodeBlock;
18
+ if (inCodeBlock) {
19
+ result.push(chalk.dim(' ──────'));
20
+ }
21
+ else {
22
+ result.push(chalk.dim(' ──────'));
23
+ }
24
+ continue;
25
+ }
26
+ // Inside code block — dim monospace
27
+ if (inCodeBlock) {
28
+ result.push(chalk.cyan(` ${line}`));
29
+ continue;
30
+ }
31
+ let processed = line;
32
+ // Headings: ### Title → bold
33
+ if (/^#{1,3}\s/.test(processed)) {
34
+ processed = processed.replace(/^#{1,3}\s+/, '');
35
+ result.push(chalk.bold(processed));
36
+ continue;
37
+ }
38
+ // List items: - item or * item → bullet
39
+ if (/^\s*[-*]\s/.test(processed)) {
40
+ processed = processed.replace(/^(\s*)[-*]\s/, '$1• ');
41
+ }
42
+ // Inline formatting
43
+ // Bold: **text** or __text__
44
+ processed = processed.replace(/\*\*(.+?)\*\*/g, (_, p1) => chalk.bold(p1));
45
+ processed = processed.replace(/__(.+?)__/g, (_, p1) => chalk.bold(p1));
46
+ // Italic: *text* or _text_ (but not inside bold)
47
+ processed = processed.replace(/(?<!\*)\*(?!\*)(.+?)(?<!\*)\*(?!\*)/g, (_, p1) => chalk.italic(p1));
48
+ // Inline code: `text`
49
+ processed = processed.replace(/`([^`]+)`/g, (_, p1) => chalk.cyan(p1));
50
+ result.push(processed);
51
+ }
52
+ return result.join('\n');
53
+ }
54
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/lib/markdown.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,oBAAoB;QACpB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,WAAW,GAAG,CAAC,WAAW,CAAC;YAC3B,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACrC,CAAC;YACD,SAAS;QACX,CAAC;QAED,oCAAoC;QACpC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YACrC,SAAS;QACX,CAAC;QAED,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,6BAA6B;QAC7B,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACnC,SAAS;QACX,CAAC;QAED,wCAAwC;QACxC,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;QAED,oBAAoB;QACpB,6BAA6B;QAC7B,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3E,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvE,iDAAiD;QACjD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,sCAAsC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAEnG,sBAAsB;QACtB,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC"}
@@ -10,6 +10,7 @@ import gradient from 'gradient-string';
10
10
  import { ShellApp } from '../components/ShellApp.js';
11
11
  import { OrbitStore } from '../state/store.js';
12
12
  import { loadConfig } from './config.js';
13
+ import { renderMarkdown } from './markdown.js';
13
14
  import { loadSiteLink } from './site.js';
14
15
  import { loadActiveSession } from './session.js';
15
16
  import { getGitBranch } from './git.js';
@@ -49,15 +50,13 @@ function captureOutput(fn, addOutput) {
49
50
  return Promise.resolve();
50
51
  }
51
52
  export async function startInkShell(version) {
52
- // Debug: confirm Ink renderer is active
53
- console.log(chalk.bgGreen.black(' INK RENDERER ACTIVE '));
54
53
  console.log('');
55
54
  for (const line of logoLines) {
56
55
  console.log(orbitGrad(line));
57
56
  await sleep(50);
58
57
  }
59
58
  console.log('');
60
- console.log(` ${chalk.bgRgb(37, 99, 235).white.bold(' CLI ')} ${chalk.bgHex('#1E293B').hex('#60A5FA')(` v${version} `)} ${DIM('·')} ${BL('Gestione Orbit Panel AI-powered')}`);
59
+ console.log(` ${chalk.bgRgb(37, 99, 235).white.bold(' CLI ')} ${chalk.bgHex('#0D9488').white.bold(' INK ')} ${chalk.bgHex('#1E293B').hex('#60A5FA')(` v${version} `)} ${DIM('·')} ${BL('Gestione Orbit Panel AI-powered')}`);
61
60
  console.log('');
62
61
  // Init store
63
62
  const cwd = process.cwd();
@@ -73,8 +72,14 @@ export async function startInkShell(version) {
73
72
  console.log(` ${DIM(welcomeHint)}`);
74
73
  console.log('');
75
74
  // Command handler — routes slash commands to existing handlers
76
- const handleCommand = async (input, addOutput) => {
75
+ const handleCommand = async (input, addOutput, showSelect) => {
77
76
  const cmd = input.toLowerCase();
77
+ // Show what the user typed — full-width background like Claude Code
78
+ const cols = process.stdout.columns ?? 80;
79
+ const content = ` ❯ ${input} `;
80
+ const pad = Math.max(0, cols - content.length);
81
+ const userMsg = chalk.bgHex('#1E293B').white(content + ' '.repeat(pad));
82
+ addOutput(`\n${userMsg}\n`);
78
83
  // Slash commands
79
84
  if (cmd === '/clear' || cmd === '/cls') {
80
85
  addOutput('\n Schermo pulito.\n');
@@ -139,7 +144,13 @@ export async function startInkShell(version) {
139
144
  return;
140
145
  }
141
146
  if (cmd === '/sites' || cmd.startsWith('/sites ')) {
142
- await captureOutput(() => cmdSites(cmd.split(' ')[1]), addOutput);
147
+ // Interactive site selection if no number given
148
+ if (cmd === '/sites' && showSelect) {
149
+ await handleSiteSelect(store, cwd, addOutput, showSelect);
150
+ }
151
+ else {
152
+ await captureOutput(() => cmdSites(cmd.split(' ')[1]), addOutput);
153
+ }
143
154
  await store.refresh(cwd);
144
155
  return;
145
156
  }
@@ -192,7 +203,7 @@ async function handleAIChat(raw, store, addOutput) {
192
203
  const { config, siteLink } = store.getState();
193
204
  const sm = new StreamStateMachine();
194
205
  let fullText = '';
195
- addOutput(`\n ${sparkle} ${BB('Orbit AI')}\n`);
206
+ addOutput(` ${sparkle} ${BB('Orbit AI')}\n`);
196
207
  try {
197
208
  store.startRequest();
198
209
  const result = await sendChatStream(raw, (event) => {
@@ -218,21 +229,19 @@ async function handleAIChat(raw, store, addOutput) {
218
229
  addOutput(` ${chalk.red('✗')} ${fallback.error}`);
219
230
  }
220
231
  else {
221
- addOutput(` ${fallback.response ?? ''}`);
222
- if (fallback.provider_used)
223
- addOutput(` ${DIM(`(${fallback.provider_used})`)}`);
232
+ const rendered = renderMarkdown(fallback.response ?? '');
233
+ addOutput(` ${rendered}`);
224
234
  }
225
235
  }
226
236
  else {
227
237
  if (fullText) {
228
- const indented = fullText.split('\n').map(l => ` ${l}`).join('\n');
238
+ const rendered = renderMarkdown(fullText);
239
+ const indented = rendered.split('\n').map(l => ` ${l}`).join('\n');
229
240
  addOutput(indented);
230
241
  }
231
242
  else if (!result.error) {
232
243
  addOutput(` ${DIM('Nessuna risposta ricevuta.')}`);
233
244
  }
234
- if (result.provider)
235
- addOutput(` ${DIM(`(${result.provider})`)}`);
236
245
  if (result.error)
237
246
  addOutput(` ${chalk.red('✗')} ${result.error}`);
238
247
  }
@@ -254,4 +263,49 @@ async function handleAIChat(raw, store, addOutput) {
254
263
  }
255
264
  addOutput('');
256
265
  }
266
+ // Interactive site selection
267
+ async function handleSiteSelect(store, cwd, addOutput, showSelect) {
268
+ const { loadConfig: lc } = await import('./config.js');
269
+ const { OrbitClient } = await import('./client.js');
270
+ const { getClient } = await import('./shell-render.js');
271
+ const config = await lc();
272
+ const client = getClient(config);
273
+ if (!client) {
274
+ addOutput(` ${chalk.red('✗')} Non autenticato. Usa /auth`);
275
+ return;
276
+ }
277
+ addOutput(` ${DIM('Caricamento siti...')}`);
278
+ try {
279
+ const sites = await client.listSites();
280
+ if (!Array.isArray(sites) || sites.length === 0) {
281
+ addOutput(` ${DIM('Nessun sito trovato.')}`);
282
+ return;
283
+ }
284
+ const items = sites.map((site) => ({
285
+ id: String(site.id ?? ''),
286
+ label: String(site.domain ?? site.home_url ?? site.id ?? '—'),
287
+ detail: site.wp_version ? `WP ${site.wp_version}` : undefined,
288
+ icon: site.status === 'active' ? '●' : '○',
289
+ iconColor: site.status === 'active' ? 'green' : 'red',
290
+ }));
291
+ const selected = await showSelect('Seleziona un sito', items);
292
+ if (!selected) {
293
+ addOutput(` ${DIM('Selezione annullata.')}`);
294
+ return;
295
+ }
296
+ // Link the selected site
297
+ const { saveSiteLink } = await import('./site.js');
298
+ const site = sites.find((s) => String(s.id) === selected.id);
299
+ await saveSiteLink(cwd, {
300
+ orbit_site_id: selected.id,
301
+ platform: 'wordpress',
302
+ final_url: String(site?.home_url ?? site?.domain ?? ''),
303
+ });
304
+ addOutput(` ${chalk.green('✓')} ${chalk.green.bold('Sito selezionato:')} ${chalk.hex('#60A5FA')(selected.label)}`);
305
+ addOutput(` ${DIM('ID:')} ${DIM(selected.id)}`);
306
+ }
307
+ catch (err) {
308
+ addOutput(` ${chalk.red('✗')} ${err instanceof Error ? err.message : String(err)}`);
309
+ }
310
+ }
257
311
  //# sourceMappingURL=shell-ink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shell-ink.js","sourceRoot":"","sources":["../../src/lib/shell-ink.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell-ink.js","sourceRoot":"","sources":["../../src/lib/shell-ink.ts"],"names":[],"mappings":"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"}
@@ -592,6 +592,76 @@
592
592
  "add.js"
593
593
  ]
594
594
  },
595
+ "session:end": {
596
+ "aliases": [],
597
+ "args": {},
598
+ "description": "Chiude la sessione attiva, cattura il commit finale\ne mostra un riepilogo del lavoro svolto.",
599
+ "examples": [
600
+ "<%= config.bin %> session end",
601
+ "<%= config.bin %> session end --summary \"Completato refactor homepage\""
602
+ ],
603
+ "flags": {
604
+ "summary": {
605
+ "char": "s",
606
+ "description": "Summary finale del lavoro svolto",
607
+ "name": "summary",
608
+ "hasDynamicHelp": false,
609
+ "multiple": false,
610
+ "type": "option"
611
+ }
612
+ },
613
+ "hasDynamicHelp": false,
614
+ "hiddenAliases": [],
615
+ "id": "session:end",
616
+ "pluginAlias": "@orbitpanel/cli",
617
+ "pluginName": "@orbitpanel/cli",
618
+ "pluginType": "core",
619
+ "strict": true,
620
+ "summary": "Chiude la sessione di lavoro corrente",
621
+ "enableJsonFlag": false,
622
+ "isESM": true,
623
+ "relativePath": [
624
+ "dist",
625
+ "commands",
626
+ "session",
627
+ "end.js"
628
+ ]
629
+ },
630
+ "session:start": {
631
+ "aliases": [],
632
+ "args": {},
633
+ "description": "Avvia una sessione di lavoro collegata al sito Orbit.\nCattura automaticamente branch git e commit corrente.",
634
+ "examples": [
635
+ "<%= config.bin %> session start",
636
+ "<%= config.bin %> session start --note \"Refactor homepage\""
637
+ ],
638
+ "flags": {
639
+ "note": {
640
+ "char": "n",
641
+ "description": "Nota iniziale sulla sessione",
642
+ "name": "note",
643
+ "hasDynamicHelp": false,
644
+ "multiple": false,
645
+ "type": "option"
646
+ }
647
+ },
648
+ "hasDynamicHelp": false,
649
+ "hiddenAliases": [],
650
+ "id": "session:start",
651
+ "pluginAlias": "@orbitpanel/cli",
652
+ "pluginName": "@orbitpanel/cli",
653
+ "pluginType": "core",
654
+ "strict": true,
655
+ "summary": "Inizia una sessione di lavoro locale",
656
+ "enableJsonFlag": false,
657
+ "isESM": true,
658
+ "relativePath": [
659
+ "dist",
660
+ "commands",
661
+ "session",
662
+ "start.js"
663
+ ]
664
+ },
595
665
  "report:send": {
596
666
  "aliases": [],
597
667
  "args": {},
@@ -677,77 +747,7 @@
677
747
  "report",
678
748
  "send.js"
679
749
  ]
680
- },
681
- "session:end": {
682
- "aliases": [],
683
- "args": {},
684
- "description": "Chiude la sessione attiva, cattura il commit finale\ne mostra un riepilogo del lavoro svolto.",
685
- "examples": [
686
- "<%= config.bin %> session end",
687
- "<%= config.bin %> session end --summary \"Completato refactor homepage\""
688
- ],
689
- "flags": {
690
- "summary": {
691
- "char": "s",
692
- "description": "Summary finale del lavoro svolto",
693
- "name": "summary",
694
- "hasDynamicHelp": false,
695
- "multiple": false,
696
- "type": "option"
697
- }
698
- },
699
- "hasDynamicHelp": false,
700
- "hiddenAliases": [],
701
- "id": "session:end",
702
- "pluginAlias": "@orbitpanel/cli",
703
- "pluginName": "@orbitpanel/cli",
704
- "pluginType": "core",
705
- "strict": true,
706
- "summary": "Chiude la sessione di lavoro corrente",
707
- "enableJsonFlag": false,
708
- "isESM": true,
709
- "relativePath": [
710
- "dist",
711
- "commands",
712
- "session",
713
- "end.js"
714
- ]
715
- },
716
- "session:start": {
717
- "aliases": [],
718
- "args": {},
719
- "description": "Avvia una sessione di lavoro collegata al sito Orbit.\nCattura automaticamente branch git e commit corrente.",
720
- "examples": [
721
- "<%= config.bin %> session start",
722
- "<%= config.bin %> session start --note \"Refactor homepage\""
723
- ],
724
- "flags": {
725
- "note": {
726
- "char": "n",
727
- "description": "Nota iniziale sulla sessione",
728
- "name": "note",
729
- "hasDynamicHelp": false,
730
- "multiple": false,
731
- "type": "option"
732
- }
733
- },
734
- "hasDynamicHelp": false,
735
- "hiddenAliases": [],
736
- "id": "session:start",
737
- "pluginAlias": "@orbitpanel/cli",
738
- "pluginName": "@orbitpanel/cli",
739
- "pluginType": "core",
740
- "strict": true,
741
- "summary": "Inizia una sessione di lavoro locale",
742
- "enableJsonFlag": false,
743
- "isESM": true,
744
- "relativePath": [
745
- "dist",
746
- "commands",
747
- "session",
748
- "start.js"
749
- ]
750
750
  }
751
751
  },
752
- "version": "1.0.0-beta.9"
752
+ "version": "1.0.1"
753
753
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orbitpanel/cli",
3
- "version": "1.0.0-beta.9",
3
+ "version": "1.0.1",
4
4
  "description": "Orbit CLI — strumento locale per sviluppatori OrbitPanel",
5
5
  "type": "module",
6
6
  "bin": {