@tacuchi/agent-workflow-cli 7.3.1 → 9.0.0

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 (169) hide show
  1. package/dist/cli/main.js +0 -0
  2. package/dist/cli/tui/app.d.ts.map +1 -1
  3. package/dist/cli/tui/app.js +277 -76
  4. package/dist/cli/tui/app.js.map +1 -1
  5. package/dist/cli/tui/components/activity-feed.d.ts +16 -0
  6. package/dist/cli/tui/components/activity-feed.d.ts.map +1 -0
  7. package/dist/cli/tui/components/activity-feed.js +35 -0
  8. package/dist/cli/tui/components/activity-feed.js.map +1 -0
  9. package/dist/cli/tui/components/command-palette.d.ts +11 -33
  10. package/dist/cli/tui/components/command-palette.d.ts.map +1 -1
  11. package/dist/cli/tui/components/command-palette.js +18 -111
  12. package/dist/cli/tui/components/command-palette.js.map +1 -1
  13. package/dist/cli/tui/components/confirm-banner.d.ts +10 -0
  14. package/dist/cli/tui/components/confirm-banner.d.ts.map +1 -0
  15. package/dist/cli/tui/components/confirm-banner.js +11 -0
  16. package/dist/cli/tui/components/confirm-banner.js.map +1 -0
  17. package/dist/cli/tui/components/detail-panel.d.ts +34 -0
  18. package/dist/cli/tui/components/detail-panel.d.ts.map +1 -0
  19. package/dist/cli/tui/components/detail-panel.js +83 -0
  20. package/dist/cli/tui/components/detail-panel.js.map +1 -0
  21. package/dist/cli/tui/components/family-card.d.ts +14 -0
  22. package/dist/cli/tui/components/family-card.d.ts.map +1 -0
  23. package/dist/cli/tui/components/family-card.js +37 -0
  24. package/dist/cli/tui/components/family-card.js.map +1 -0
  25. package/dist/cli/tui/components/inline-wizard.d.ts +19 -0
  26. package/dist/cli/tui/components/inline-wizard.d.ts.map +1 -0
  27. package/dist/cli/tui/components/inline-wizard.js +16 -0
  28. package/dist/cli/tui/components/inline-wizard.js.map +1 -0
  29. package/dist/cli/tui/components/input-prompt.js +1 -1
  30. package/dist/cli/tui/components/input-prompt.js.map +1 -1
  31. package/dist/cli/tui/components/list-row.d.ts +30 -0
  32. package/dist/cli/tui/components/list-row.d.ts.map +1 -0
  33. package/dist/cli/tui/components/list-row.js +85 -0
  34. package/dist/cli/tui/components/list-row.js.map +1 -0
  35. package/dist/cli/tui/components/page-head.d.ts +11 -10
  36. package/dist/cli/tui/components/page-head.d.ts.map +1 -1
  37. package/dist/cli/tui/components/page-head.js +21 -10
  38. package/dist/cli/tui/components/page-head.js.map +1 -1
  39. package/dist/cli/tui/components/phase-card.d.ts +15 -0
  40. package/dist/cli/tui/components/phase-card.d.ts.map +1 -0
  41. package/dist/cli/tui/components/phase-card.js +13 -0
  42. package/dist/cli/tui/components/phase-card.js.map +1 -0
  43. package/dist/cli/tui/components/quick-actions.d.ts +9 -0
  44. package/dist/cli/tui/components/quick-actions.d.ts.map +1 -0
  45. package/dist/cli/tui/components/quick-actions.js +9 -0
  46. package/dist/cli/tui/components/quick-actions.js.map +1 -0
  47. package/dist/cli/tui/components/section-head.d.ts +10 -0
  48. package/dist/cli/tui/components/section-head.d.ts.map +1 -0
  49. package/dist/cli/tui/components/section-head.js +8 -0
  50. package/dist/cli/tui/components/section-head.js.map +1 -0
  51. package/dist/cli/tui/components/sidebar.d.ts +27 -0
  52. package/dist/cli/tui/components/sidebar.d.ts.map +1 -0
  53. package/dist/cli/tui/components/sidebar.js +37 -0
  54. package/dist/cli/tui/components/sidebar.js.map +1 -0
  55. package/dist/cli/tui/components/stat-tile.d.ts +16 -0
  56. package/dist/cli/tui/components/stat-tile.d.ts.map +1 -0
  57. package/dist/cli/tui/components/stat-tile.js +23 -0
  58. package/dist/cli/tui/components/stat-tile.js.map +1 -0
  59. package/dist/cli/tui/components/toast-stack.d.ts +3 -3
  60. package/dist/cli/tui/components/toast-stack.js +3 -3
  61. package/dist/cli/tui/data/activity.d.ts +21 -0
  62. package/dist/cli/tui/data/activity.d.ts.map +1 -0
  63. package/dist/cli/tui/data/activity.js +83 -0
  64. package/dist/cli/tui/data/activity.js.map +1 -0
  65. package/dist/cli/tui/data/workflow-content.d.ts +16 -0
  66. package/dist/cli/tui/data/workflow-content.d.ts.map +1 -0
  67. package/dist/cli/tui/data/workflow-content.js +202 -0
  68. package/dist/cli/tui/data/workflow-content.js.map +1 -0
  69. package/dist/cli/tui/tabs/mcp-tab.d.ts +3 -16
  70. package/dist/cli/tui/tabs/mcp-tab.d.ts.map +1 -1
  71. package/dist/cli/tui/tabs/mcp-tab.js +150 -195
  72. package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
  73. package/dist/cli/tui/tabs/project-tab.d.ts +0 -11
  74. package/dist/cli/tui/tabs/project-tab.d.ts.map +1 -1
  75. package/dist/cli/tui/tabs/project-tab.js +47 -86
  76. package/dist/cli/tui/tabs/project-tab.js.map +1 -1
  77. package/dist/cli/tui/tabs/skills-tab.d.ts +1 -11
  78. package/dist/cli/tui/tabs/skills-tab.d.ts.map +1 -1
  79. package/dist/cli/tui/tabs/skills-tab.js +165 -126
  80. package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
  81. package/dist/cli/tui/tabs/status-tab.d.ts +14 -14
  82. package/dist/cli/tui/tabs/status-tab.d.ts.map +1 -1
  83. package/dist/cli/tui/tabs/status-tab.js +179 -36
  84. package/dist/cli/tui/tabs/status-tab.js.map +1 -1
  85. package/dist/cli/tui/tabs/workflow-tab.d.ts +9 -0
  86. package/dist/cli/tui/tabs/workflow-tab.d.ts.map +1 -0
  87. package/dist/cli/tui/tabs/workflow-tab.js +40 -0
  88. package/dist/cli/tui/tabs/workflow-tab.js.map +1 -0
  89. package/dist/cli/tui/theme.d.ts +75 -55
  90. package/dist/cli/tui/theme.d.ts.map +1 -1
  91. package/dist/cli/tui/theme.js +75 -50
  92. package/dist/cli/tui/theme.js.map +1 -1
  93. package/package.json +1 -1
  94. package/dist/cli/commands/orchestration.d.ts +0 -5
  95. package/dist/cli/commands/orchestration.d.ts.map +0 -1
  96. package/dist/cli/commands/orchestration.js +0 -84
  97. package/dist/cli/commands/orchestration.js.map +0 -1
  98. package/dist/cli/commands/wave2-extras.d.ts +0 -7
  99. package/dist/cli/commands/wave2-extras.d.ts.map +0 -1
  100. package/dist/cli/commands/wave2-extras.js +0 -87
  101. package/dist/cli/commands/wave2-extras.js.map +0 -1
  102. package/dist/cli/commands/wave2-final.d.ts +0 -8
  103. package/dist/cli/commands/wave2-final.d.ts.map +0 -1
  104. package/dist/cli/commands/wave2-final.js +0 -134
  105. package/dist/cli/commands/wave2-final.js.map +0 -1
  106. package/dist/cli/commands/wave4d-simple.d.ts +0 -6
  107. package/dist/cli/commands/wave4d-simple.d.ts.map +0 -1
  108. package/dist/cli/commands/wave4d-simple.js +0 -138
  109. package/dist/cli/commands/wave4d-simple.js.map +0 -1
  110. package/dist/cli/tui/components/confirm-modal.d.ts +0 -12
  111. package/dist/cli/tui/components/confirm-modal.d.ts.map +0 -1
  112. package/dist/cli/tui/components/confirm-modal.js +0 -18
  113. package/dist/cli/tui/components/confirm-modal.js.map +0 -1
  114. package/dist/cli/tui/components/connections-grid.d.ts +0 -8
  115. package/dist/cli/tui/components/connections-grid.d.ts.map +0 -1
  116. package/dist/cli/tui/components/connections-grid.js +0 -55
  117. package/dist/cli/tui/components/connections-grid.js.map +0 -1
  118. package/dist/cli/tui/components/connections-table.d.ts +0 -5
  119. package/dist/cli/tui/components/connections-table.d.ts.map +0 -1
  120. package/dist/cli/tui/components/connections-table.js +0 -11
  121. package/dist/cli/tui/components/connections-table.js.map +0 -1
  122. package/dist/cli/tui/components/footer.d.ts +0 -4
  123. package/dist/cli/tui/components/footer.d.ts.map +0 -1
  124. package/dist/cli/tui/components/footer.js +0 -6
  125. package/dist/cli/tui/components/footer.js.map +0 -1
  126. package/dist/cli/tui/components/header.d.ts +0 -14
  127. package/dist/cli/tui/components/header.d.ts.map +0 -1
  128. package/dist/cli/tui/components/header.js +0 -21
  129. package/dist/cli/tui/components/header.js.map +0 -1
  130. package/dist/cli/tui/components/host-chip.d.ts +0 -28
  131. package/dist/cli/tui/components/host-chip.d.ts.map +0 -1
  132. package/dist/cli/tui/components/host-chip.js +0 -35
  133. package/dist/cli/tui/components/host-chip.js.map +0 -1
  134. package/dist/cli/tui/components/keymap-bar.d.ts +0 -17
  135. package/dist/cli/tui/components/keymap-bar.d.ts.map +0 -1
  136. package/dist/cli/tui/components/keymap-bar.js +0 -13
  137. package/dist/cli/tui/components/keymap-bar.js.map +0 -1
  138. package/dist/cli/tui/components/pill.d.ts +0 -16
  139. package/dist/cli/tui/components/pill.d.ts.map +0 -1
  140. package/dist/cli/tui/components/pill.js +0 -24
  141. package/dist/cli/tui/components/pill.js.map +0 -1
  142. package/dist/cli/tui/components/sectioned-menu.d.ts +0 -24
  143. package/dist/cli/tui/components/sectioned-menu.d.ts.map +0 -1
  144. package/dist/cli/tui/components/sectioned-menu.js +0 -72
  145. package/dist/cli/tui/components/sectioned-menu.js.map +0 -1
  146. package/dist/cli/tui/components/tab-bar.d.ts +0 -23
  147. package/dist/cli/tui/components/tab-bar.d.ts.map +0 -1
  148. package/dist/cli/tui/components/tab-bar.js +0 -17
  149. package/dist/cli/tui/components/tab-bar.js.map +0 -1
  150. package/dist/cli/tui/screens/main-menu.d.ts +0 -8
  151. package/dist/cli/tui/screens/main-menu.d.ts.map +0 -1
  152. package/dist/cli/tui/screens/main-menu.js +0 -24
  153. package/dist/cli/tui/screens/main-menu.js.map +0 -1
  154. package/dist/cli/tui/screens/mcp-done.d.ts +0 -10
  155. package/dist/cli/tui/screens/mcp-done.d.ts.map +0 -1
  156. package/dist/cli/tui/screens/mcp-done.js +0 -24
  157. package/dist/cli/tui/screens/mcp-done.js.map +0 -1
  158. package/dist/cli/tui/screens/mcp-wizard.d.ts +0 -10
  159. package/dist/cli/tui/screens/mcp-wizard.d.ts.map +0 -1
  160. package/dist/cli/tui/screens/mcp-wizard.js +0 -97
  161. package/dist/cli/tui/screens/mcp-wizard.js.map +0 -1
  162. package/dist/cli/tui/tabs/plugins-tab.d.ts +0 -8
  163. package/dist/cli/tui/tabs/plugins-tab.d.ts.map +0 -1
  164. package/dist/cli/tui/tabs/plugins-tab.js +0 -635
  165. package/dist/cli/tui/tabs/plugins-tab.js.map +0 -1
  166. package/dist/cli/tui/tabs/update-tab.d.ts +0 -20
  167. package/dist/cli/tui/tabs/update-tab.d.ts.map +0 -1
  168. package/dist/cli/tui/tabs/update-tab.js +0 -83
  169. package/dist/cli/tui/tabs/update-tab.js.map +0 -1
package/dist/cli/main.js CHANGED
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/app.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAe9C,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC;AAwDzC,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,UAAU,CAAC;IAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;CACvC;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,2CAMlC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/app.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAoB9C,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC;AAczC,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,UAAU,CAAC;IAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;CACvC;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,2CAMlC"}
@@ -1,66 +1,25 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, useApp, useInput } from "ink";
3
3
  import { useCallback, useEffect, useMemo, useState } from "react";
4
- import { Header } from "./components/header.js";
5
- import { KeymapBar } from "./components/keymap-bar.js";
4
+ import { CommandPalette } from "./components/command-palette.js";
6
5
  import { ScreenFrame } from "./components/screen-frame.js";
7
- import { TabBar } from "./components/tab-bar.js";
6
+ import { Sidebar, } from "./components/sidebar.js";
8
7
  import { ToastStack, useToasts } from "./components/toast-stack.js";
8
+ import { loadActivity } from "./data/activity.js";
9
9
  import { InputLockProvider, useInputLock } from "./input-lock.js";
10
10
  import { McpTab } from "./tabs/mcp-tab.js";
11
- import { PluginsTab } from "./tabs/plugins-tab.js";
12
11
  import { ProjectTab } from "./tabs/project-tab.js";
13
12
  import { SkillsTab } from "./tabs/skills-tab.js";
14
13
  import { StatusTab } from "./tabs/status-tab.js";
15
- import { UpdateTab } from "./tabs/update-tab.js";
14
+ import { WorkflowTab } from "./tabs/workflow-tab.js";
16
15
  import { TuiPrefsService } from "./tui-prefs.js";
17
- const TAB_ORDER = [
18
- "status",
19
- "project",
20
- "mcp",
21
- "skills",
22
- "plugins",
23
- "update",
24
- ];
25
- // Atajo numérico → tab id.
16
+ const TAB_ORDER = ["status", "workflow", "project", "mcp", "skills"];
26
17
  const TAB_BY_KEY = {
27
18
  "1": "status",
28
- "2": "project",
29
- "3": "mcp",
30
- "4": "skills",
31
- "5": "plugins",
32
- "6": "update",
33
- };
34
- const QUIT_HINT = { key: "q", action: "salir" };
35
- const TAB_HINT = { key: "Tab", action: "siguiente" };
36
- const KEYS_BY_TAB = {
37
- status: [TAB_HINT, QUIT_HINT],
38
- project: [
39
- { key: "↑↓", action: "navegar" },
40
- { key: "⏎", action: "aplicar", accent: true },
41
- QUIT_HINT,
42
- ],
43
- mcp: [
44
- { key: "↑↓", action: "navegar" },
45
- { key: "⏎", action: "acciones", accent: true },
46
- QUIT_HINT,
47
- ],
48
- skills: [
49
- { key: "↑↓", action: "navegar" },
50
- { key: "⏎", action: "acciones", accent: true },
51
- QUIT_HINT,
52
- ],
53
- plugins: [
54
- { key: "↑↓", action: "navegar" },
55
- { key: "/", action: "buscar" },
56
- { key: "f", action: "filtros" },
57
- QUIT_HINT,
58
- ],
59
- update: [
60
- { key: "i", action: "aplicar", accent: true },
61
- { key: "r", action: "buscar" },
62
- QUIT_HINT,
63
- ],
19
+ "2": "workflow",
20
+ "3": "project",
21
+ "4": "mcp",
22
+ "5": "skills",
64
23
  };
65
24
  export function App(props) {
66
25
  return (_jsx(InputLockProvider, { children: _jsx(AppShell, { ...props }) }));
@@ -68,6 +27,17 @@ export function App(props) {
68
27
  function AppShell({ version, ctx, onResult }) {
69
28
  const [activeTab, setActiveTab] = useState("status");
70
29
  const [density, setDensity] = useState("comfortable");
30
+ const [paletteOpen, setPaletteOpen] = useState(false);
31
+ const [paletteFilter, setPaletteFilter] = useState("");
32
+ const [paletteCursor, setPaletteCursor] = useState(0);
33
+ const [statusAlert, setStatusAlert] = useState(false);
34
+ const [workspaceCtx, setWorkspaceCtx] = useState({
35
+ modeLabel: "agent-workflow",
36
+ branchLabel: "— · loading",
37
+ sessionsLabel: "— sessions",
38
+ });
39
+ const [activity, setActivity] = useState([]);
40
+ const [activePhase, setActivePhase] = useState(0);
71
41
  const { exit } = useApp();
72
42
  const { locked: inputLocked } = useInputLock();
73
43
  const { toasts, push: pushToast } = useToasts();
@@ -78,12 +48,23 @@ function AppShell({ version, ctx, onResult }) {
78
48
  setDensity(prefs.density);
79
49
  })();
80
50
  }, [prefsSvc]);
51
+ useEffect(() => {
52
+ void (async () => {
53
+ const wctx = await loadWorkspaceContext(ctx);
54
+ setWorkspaceCtx(wctx);
55
+ const events = await loadActivity(ctx, { cap: 10 });
56
+ setActivity(events);
57
+ const phase = await loadActivePhase(ctx);
58
+ setActivePhase(phase);
59
+ })();
60
+ }, [ctx]);
81
61
  /**
82
- * Despacha acciones provenientes de las tabs (Proyecto landing, Update, etc).
83
- * Las acciones que requieren ejecutar un comando CLI con stdin (init, update)
84
- * salen del TUI primero y se manejan en `dispatchMenuAction` del main.
62
+ * Despacha acciones provenientes de las tabs y la palette.
63
+ * Las acciones que requieren ejecutar un comando CLI con stdin (init, doctor,
64
+ * update) salen del TUI primero y se manejan en `dispatchMenuAction` del main.
85
65
  */
86
66
  const runAction = useCallback((id, _payload) => {
67
+ // Exits-to-CLI vía MenuAction.
87
68
  if (id === "project-init") {
88
69
  onResult({ kind: "menu-action", action: "project-init" });
89
70
  exit();
@@ -94,56 +75,276 @@ function AppShell({ version, ctx, onResult }) {
94
75
  exit();
95
76
  return;
96
77
  }
78
+ if (id === "install-skill") {
79
+ onResult({ kind: "menu-action", action: "install-skill" });
80
+ exit();
81
+ return;
82
+ }
83
+ if (id === "self:doctor") {
84
+ onResult({ kind: "menu-action", action: "doctor" });
85
+ exit();
86
+ return;
87
+ }
88
+ if (id === "self:update") {
89
+ onResult({ kind: "menu-action", action: "update" });
90
+ exit();
91
+ return;
92
+ }
93
+ if (id === "self:help") {
94
+ onResult({ kind: "menu-action", action: "help" });
95
+ exit();
96
+ return;
97
+ }
98
+ if (id === "self:mcp-cli") {
99
+ onResult({ kind: "menu-action", action: "mcp" });
100
+ exit();
101
+ return;
102
+ }
97
103
  if (id === "quit") {
98
104
  onResult({ kind: "exit", exitCode: 0 });
99
105
  exit();
100
106
  return;
101
107
  }
108
+ // Hints in-app (navegación + toasts).
109
+ if (id === "mcp:add") {
110
+ setActiveTab("mcp");
111
+ pushToast({
112
+ tone: "info",
113
+ title: "MCP · new connection",
114
+ body: "Press `a` to open the wizard.",
115
+ });
116
+ return;
117
+ }
102
118
  if (id === "git:status") {
103
119
  pushToast({
104
120
  tone: "info",
105
121
  title: "git status",
106
- body: "Abrí tu terminal para ver el detalle.",
122
+ body: "Open your terminal to see details.",
107
123
  });
108
124
  return;
109
125
  }
110
126
  pushToast({ tone: "info", title: id });
111
127
  }, [pushToast, onResult, exit]);
128
+ const allCommands = useMemo(() => [
129
+ { id: "goto:status", category: "tabs", label: "Go to Status", hint: "1" },
130
+ { id: "goto:workflow", category: "tabs", label: "Go to Workflow", hint: "2" },
131
+ { id: "goto:project", category: "tabs", label: "Go to Project", hint: "3" },
132
+ { id: "goto:mcp", category: "tabs", label: "Go to MCP", hint: "4" },
133
+ { id: "goto:skills", category: "tabs", label: "Go to Skills", hint: "5" },
134
+ {
135
+ id: "install-skill",
136
+ category: "install",
137
+ label: "Install SKILL (chain claude + codex + warp)",
138
+ hint: "self install",
139
+ },
140
+ {
141
+ id: "mcp:add",
142
+ category: "mcp",
143
+ label: "Register new MCP connection",
144
+ hint: "a in MCP tab",
145
+ },
146
+ {
147
+ id: "self:mcp-cli",
148
+ category: "mcp",
149
+ label: "Open MCP wizard (CLI)",
150
+ hint: "self mcp",
151
+ },
152
+ { id: "project-init", category: "project", label: "Initialize as single-repo" },
153
+ { id: "hub-init", category: "project", label: "Initialize as hub (multi-repo)" },
154
+ {
155
+ id: "self:doctor",
156
+ category: "self",
157
+ label: "Diagnose runtime (doctor)",
158
+ hint: "self doctor",
159
+ },
160
+ {
161
+ id: "self:update",
162
+ category: "self",
163
+ label: "Check for update",
164
+ hint: "self update",
165
+ },
166
+ {
167
+ id: "self:help",
168
+ category: "self",
169
+ label: "View full CLI help",
170
+ hint: "--help",
171
+ },
172
+ { id: "quit", category: "self", label: "Quit", hint: "q" },
173
+ ], []);
174
+ const filteredCommands = useMemo(() => {
175
+ const q = paletteFilter.trim().toLowerCase();
176
+ if (!q)
177
+ return allCommands;
178
+ return allCommands.filter((c) => c.label.toLowerCase().includes(q) ||
179
+ c.id.toLowerCase().includes(q) ||
180
+ c.category.toLowerCase().includes(q));
181
+ }, [allCommands, paletteFilter]);
182
+ const openPalette = useCallback(() => {
183
+ setPaletteFilter("");
184
+ setPaletteCursor(0);
185
+ setPaletteOpen(true);
186
+ }, []);
187
+ const closePalette = useCallback(() => {
188
+ setPaletteOpen(false);
189
+ }, []);
190
+ const executeCommand = useCallback((cmd) => {
191
+ closePalette();
192
+ if (cmd.id.startsWith("goto:")) {
193
+ const target = cmd.id.slice("goto:".length);
194
+ if (TAB_ORDER.includes(target))
195
+ setActiveTab(target);
196
+ return;
197
+ }
198
+ runAction(cmd.id);
199
+ }, [closePalette, runAction]);
112
200
  useInput((input, key) => {
113
201
  if (inputLocked)
114
202
  return;
203
+ if (paletteOpen) {
204
+ if (key.escape) {
205
+ closePalette();
206
+ return;
207
+ }
208
+ if (key.return) {
209
+ const cmd = filteredCommands[paletteCursor];
210
+ if (cmd)
211
+ executeCommand(cmd);
212
+ return;
213
+ }
214
+ if (key.upArrow) {
215
+ setPaletteCursor((c) => Math.max(0, c - 1));
216
+ return;
217
+ }
218
+ if (key.downArrow) {
219
+ setPaletteCursor((c) => Math.min(Math.max(0, filteredCommands.length - 1), c + 1));
220
+ return;
221
+ }
222
+ if (key.backspace || key.delete) {
223
+ setPaletteFilter((s) => s.slice(0, -1));
224
+ setPaletteCursor(0);
225
+ return;
226
+ }
227
+ if (input && !key.ctrl && !key.meta) {
228
+ setPaletteFilter((s) => s + input);
229
+ setPaletteCursor(0);
230
+ }
231
+ return;
232
+ }
233
+ if ((key.ctrl || key.meta) && (input === "k" || input === "K")) {
234
+ openPalette();
235
+ return;
236
+ }
115
237
  if (input === "q" || input === "Q") {
116
238
  onResult({ kind: "exit", exitCode: 0 });
117
239
  exit();
118
240
  return;
119
241
  }
120
- if (key.tab) {
121
- setActiveTab((t) => cycleTab(t, key.shift === true));
122
- return;
123
- }
124
242
  const target = TAB_BY_KEY[input];
125
243
  if (target)
126
244
  setActiveTab(target);
127
245
  }, { isActive: true });
128
246
  const tabs = [
129
- { id: "status", label: "Status", key: "1" },
130
- { id: "project", label: "Proyecto", key: "2" },
131
- { id: "mcp", label: "MCP", key: "3" },
132
- { id: "skills", label: "Skills", key: "4" },
133
- { id: "plugins", label: "Plugins", key: "5" },
134
- { id: "update", label: "Update", key: "6", alert: true },
247
+ { id: "status", key: "1", label: "Status", alert: statusAlert },
248
+ { id: "workflow", key: "2", label: "Workflow" },
249
+ { id: "project", key: "3", label: "Project" },
250
+ { id: "mcp", key: "4", label: "MCP" },
251
+ { id: "skills", key: "5", label: "Skills" },
252
+ ];
253
+ const globalKeys = [
254
+ { key: "^K", action: "palette" },
255
+ { key: "⏎", action: "open" },
256
+ { key: "↑↓", action: "navigate" },
257
+ { key: "?", action: "help" },
258
+ { key: "q", action: "quit" },
135
259
  ];
136
- const keymap = KEYS_BY_TAB[activeTab] ?? [];
137
- return (_jsxs(ScreenFrame, { children: [_jsx(Header, { version: version, cwd: ctx.env.cwd(), homeDir: ctx.env.homeDir() }), _jsx(TabBar, { tabs: tabs, activeId: activeTab }), _jsxs(Box, { marginTop: density === "compact" ? 0 : 1, flexDirection: "column", children: [activeTab === "status" ? _jsx(StatusTab, { ctx: ctx, isActive: true }) : null, activeTab === "project" ? (_jsx(ProjectTab, { ctx: ctx, isActive: true, onRunAction: runAction })) : null, activeTab === "mcp" ? _jsx(McpTab, { ctx: ctx, isActive: true, onToast: pushToast }) : null, activeTab === "skills" ? (_jsx(SkillsTab, { ctx: ctx, isActive: true, onToast: pushToast })) : null, activeTab === "update" ? (_jsx(UpdateTab, { ctx: ctx, version: version, isActive: true, onToast: pushToast, onRequestUpdate: () => {
138
- onResult({ kind: "menu-action", action: "update" });
139
- exit();
140
- } })) : null, activeTab === "plugins" ? _jsx(PluginsTab, { ctx: ctx, isActive: true }) : null] }), _jsx(ToastStack, { toasts: toasts }), _jsx(KeymapBar, { entries: keymap })] }));
260
+ return (_jsxs(ScreenFrame, { children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Sidebar, { activeTab: activeTab, tabs: tabs, workspaceContext: workspaceCtx, cliVersion: version, globalKeys: globalKeys }), _jsx(Box, { flexDirection: "column", flexGrow: 1, marginTop: density === "compact" ? 0 : 1, paddingX: 1, children: paletteOpen ? (_jsx(Box, { flexDirection: "column", alignItems: "center", paddingY: 2, children: _jsx(Box, { width: "80%", flexDirection: "column", children: _jsx(CommandPalette, { filter: paletteFilter, commands: filteredCommands, cursor: paletteCursor }) }) })) : (_jsxs(_Fragment, { children: [activeTab === "status" ? (_jsx(StatusTab, { ctx: ctx, version: version, isActive: true, onActivateTab: (t) => setActiveTab(t), onRequestUpdate: () => {
261
+ onResult({ kind: "menu-action", action: "update" });
262
+ exit();
263
+ }, onToast: pushToast, onAlertChange: setStatusAlert, recentEvents: activity })) : null, activeTab === "workflow" ? (_jsx(WorkflowTab, { ctx: ctx, isActive: true, activePhase: activePhase })) : null, activeTab === "project" ? (_jsx(ProjectTab, { ctx: ctx, isActive: true, onRunAction: runAction })) : null, activeTab === "mcp" ? (_jsx(McpTab, { ctx: ctx, isActive: true, onToast: pushToast })) : null, activeTab === "skills" ? (_jsx(SkillsTab, { ctx: ctx, isActive: true, version: version, onToast: pushToast })) : null] })) })] }), _jsx(ToastStack, { toasts: toasts })] }));
141
264
  }
142
- function cycleTab(current, reverse) {
143
- const idx = TAB_ORDER.indexOf(current);
144
- const next = reverse
145
- ? (idx - 1 + TAB_ORDER.length) % TAB_ORDER.length
146
- : (idx + 1) % TAB_ORDER.length;
147
- return TAB_ORDER[next] ?? "status";
265
+ async function loadWorkspaceContext(ctx) {
266
+ const cwd = ctx.env.cwd();
267
+ // Mode + name: best-effort detection. Default agent-workflow.
268
+ let modeLabel = "agent-workflow · single-repo";
269
+ try {
270
+ const aw = await ctx.fs.exists(`${cwd}/AW-PROJECT.md`).catch(() => false);
271
+ if (aw)
272
+ modeLabel = "agent-workflow · linked";
273
+ }
274
+ catch {
275
+ // ignore
276
+ }
277
+ // Branch + sync
278
+ let branchLabel = "— · no git";
279
+ try {
280
+ const branchRes = await ctx.process.run("git", ["rev-parse", "--abbrev-ref", "HEAD"], {
281
+ cwd,
282
+ });
283
+ if (branchRes.code === 0) {
284
+ const branch = branchRes.stdout.trim();
285
+ const dirtyRes = await ctx.process
286
+ .run("git", ["status", "--porcelain"], { cwd })
287
+ .catch(() => null);
288
+ const isDirty = (dirtyRes?.stdout.trim() ?? "").length > 0;
289
+ const aheadRes = await ctx.process
290
+ .run("git", ["rev-list", "--count", "--left-right", "@{u}...HEAD"], { cwd })
291
+ .catch(() => null);
292
+ const aheadBehind = aheadRes?.stdout.trim().split(/\s+/);
293
+ const behind = aheadBehind?.[0] ?? "0";
294
+ const ahead = aheadBehind?.[1] ?? "0";
295
+ const sync = ahead !== "0" || behind !== "0" ? `${ahead}↑ ${behind}↓` : isDirty ? "dirty" : "in sync";
296
+ branchLabel = `${branch} · ${sync}`;
297
+ }
298
+ }
299
+ catch {
300
+ // keep default
301
+ }
302
+ // Sessions count
303
+ let sessionsLabel = "— sessions";
304
+ try {
305
+ const sessRes = await ctx.process.run(ctx.runtime.binName, ["sessions"], { cwd });
306
+ if (sessRes.code === 0) {
307
+ const data = JSON.parse(sessRes.stdout);
308
+ const active = data.active_count ?? 0;
309
+ const total = data.total_count ?? 0;
310
+ sessionsLabel = `${total} sessions · ${active} active`;
311
+ }
312
+ }
313
+ catch {
314
+ // keep default
315
+ }
316
+ return { modeLabel, branchLabel, sessionsLabel };
317
+ }
318
+ /**
319
+ * Mapea fase de sesión activa (planning/execution/validation/closure) al
320
+ * phase number del workflow tab (Discover=1, Start=2, Plan=3, Work=4, Close=5).
321
+ * Si no hay sesión activa, retorna 0 (idle).
322
+ */
323
+ async function loadActivePhase(ctx) {
324
+ try {
325
+ const sessRes = await ctx.process.run(ctx.runtime.binName, ["sessions"], {
326
+ cwd: ctx.env.cwd(),
327
+ });
328
+ if (sessRes.code !== 0)
329
+ return 0;
330
+ const data = JSON.parse(sessRes.stdout);
331
+ const active = (data.sessions ?? []).find((s) => s.state === "active");
332
+ if (!active)
333
+ return 0;
334
+ switch (active.phase) {
335
+ case "planning":
336
+ return 3;
337
+ case "execution":
338
+ case "validation":
339
+ return 4;
340
+ case "closure":
341
+ return 5;
342
+ default:
343
+ return 4;
344
+ }
345
+ }
346
+ catch {
347
+ return 0;
348
+ }
148
349
  }
149
350
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/cli/tui/app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/cli/tui/app.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export type ActivityTone = "ok" | "accent" | "info" | "purple" | "warn" | "err" | "dim";
2
+ export interface ActivityEvent {
3
+ id: string;
4
+ when: string;
5
+ dotColor: ActivityTone;
6
+ text: string;
7
+ meta?: string;
8
+ metaTone?: ActivityTone;
9
+ }
10
+ export interface ActivityFeedProps {
11
+ events: ActivityEvent[];
12
+ cap?: number;
13
+ emptyHint?: string;
14
+ }
15
+ export declare function ActivityFeed({ events, cap, emptyHint }: ActivityFeedProps): import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=activity-feed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-feed.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/activity-feed.tsx"],"names":[],"mappings":"AAGA,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAExF,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA4BD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,iBAAiB,2CA0BzE"}
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ import { colors } from "../theme.js";
4
+ const MAX_TEXT_LENGTH = 48;
5
+ function tone(t) {
6
+ switch (t) {
7
+ case "ok":
8
+ return colors.ok;
9
+ case "accent":
10
+ return colors.accent;
11
+ case "info":
12
+ return colors.info;
13
+ case "purple":
14
+ return colors.purple;
15
+ case "warn":
16
+ return colors.warn;
17
+ case "err":
18
+ return colors.err;
19
+ case "dim":
20
+ return colors.dim;
21
+ }
22
+ }
23
+ function truncate(text, max) {
24
+ if (text.length <= max)
25
+ return text;
26
+ return `${text.slice(0, max - 1)}…`;
27
+ }
28
+ export function ActivityFeed({ events, cap, emptyHint }) {
29
+ const list = cap ? events.slice(0, cap) : events;
30
+ if (!list.length) {
31
+ return _jsx(Text, { color: colors.faint, children: emptyHint ?? " (no recent activity)" });
32
+ }
33
+ return (_jsx(Box, { flexDirection: "column", children: list.map((e) => (_jsxs(Box, { children: [_jsx(Box, { width: 5, children: _jsx(Text, { color: colors.dim, children: e.when }) }), _jsx(Text, { color: tone(e.dotColor), children: "\u25CF " }), _jsx(Text, { color: colors.text, children: truncate(e.text, MAX_TEXT_LENGTH) }), e.meta ? (_jsxs(_Fragment, { children: [_jsx(Box, { flexGrow: 1, children: _jsx(Text, { children: " " }) }), _jsx(Text, { color: tone(e.metaTone ?? "dim"), children: e.meta })] })) : null] }, e.id))) }));
34
+ }
35
+ //# sourceMappingURL=activity-feed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-feed.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/activity-feed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAmBrC,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,SAAS,IAAI,CAAC,CAAe;IAC3B,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,IAAI;YACP,OAAO,MAAM,CAAC,EAAE,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,GAAG,CAAC;QACpB,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,GAAG,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,GAAW;IACzC,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAqB;IACxE,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACjD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,YAAG,SAAS,IAAI,wBAAwB,GAAQ,CAAC;IACnF,CAAC;IACD,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACf,MAAC,GAAG,eACF,KAAC,GAAG,IAAC,KAAK,EAAE,CAAC,YACX,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,GAAG,YAAG,CAAC,CAAC,IAAI,GAAQ,GACpC,EACN,KAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAW,EACxC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,YAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,GAAQ,EACnE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACR,8BACE,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACd,KAAC,IAAI,oBAAS,GACV,EACN,KAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,YAAG,CAAC,CAAC,IAAI,GAAQ,IACtD,CACJ,CAAC,CAAC,CAAC,IAAI,KAbA,CAAC,CAAC,EAAE,CAcR,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -1,39 +1,17 @@
1
- export interface CommandEntry {
1
+ export interface PaletteCommand {
2
2
  id: string;
3
3
  label: string;
4
- /** Categoría (navegación / acción / proyecto / vista / sesión) */
5
- ctx: string;
6
- /** Glyph corto a la izquierda del label */
7
- glyph: string;
4
+ category: string;
5
+ hint?: string;
8
6
  }
9
7
  export interface CommandPaletteProps {
10
- /** Comandos disponibles para filtrar */
11
- commands: readonly CommandEntry[];
12
- /** Callback al ejecutar — recibe el `id` del comando seleccionado */
13
- onRun: (id: string) => void;
14
- /** Cierra el palette sin ejecutar */
15
- onClose: () => void;
16
- /** Si false, no consume input (cuando hay otro modal por encima) */
17
- isActive?: boolean;
8
+ filter: string;
9
+ commands: PaletteCommand[];
10
+ cursor: number;
11
+ groups?: Array<{
12
+ category: string;
13
+ commands: PaletteCommand[];
14
+ }>;
18
15
  }
19
- /**
20
- * CommandPalette — overlay tipo Ctrl+K.
21
- *
22
- * - TextInput de `@inkjs/ui` para filtrar (case-insensitive en `label` + `ctx`).
23
- * - Lista filtrada con cursor; `↑↓` mueve, `⏎` ejecuta, `Esc` cierra.
24
- * - Footer con hint de navegación y conteo de resultados.
25
- *
26
- * En TTY no hay backdrop translúcido — el componente se renderiza en el área
27
- * de contenido en lugar de la tab activa cuando está abierto (app.tsx maneja
28
- * esa conmutación).
29
- */
30
- export declare function CommandPalette({ commands, onRun, onClose, isActive }: CommandPaletteProps): import("react/jsx-runtime").JSX.Element;
31
- /**
32
- * Catálogo canónico de comandos del TUI.
33
- *
34
- * Stable IDs porque app.tsx + hooks externos hacen pattern match contra ellos.
35
- * Cuando un comando no aplica al contexto actual el handler debe responder
36
- * con un toast (no romper).
37
- */
38
- export declare const PALETTE_COMMANDS: readonly CommandEntry[];
16
+ export declare function CommandPalette({ filter, commands, cursor }: CommandPaletteProps): import("react/jsx-runtime").JSX.Element;
39
17
  //# sourceMappingURL=command-palette.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command-palette.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/command-palette.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAClC,qEAAqE;IACrE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,qCAAqC;IACrC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAe,EAAE,EAAE,mBAAmB,2CA2EhG;AAoBD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,YAAY,EAiDnD,CAAC"}
1
+ {"version":3,"file":"command-palette.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/command-palette.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC,CAAC;CAClE;AAID,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,mBAAmB,2CAmF/E"}