hoomanjs 1.22.2 → 1.23.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.
Files changed (136) hide show
  1. package/README.md +39 -9
  2. package/dist/acp/acp-agent.js +48 -9
  3. package/dist/acp/acp-agent.js.map +1 -1
  4. package/dist/acp/approvals.d.ts +1 -1
  5. package/dist/acp/approvals.js +4 -3
  6. package/dist/acp/approvals.js.map +1 -1
  7. package/dist/acp/sessions/config-options.d.ts +6 -3
  8. package/dist/acp/sessions/config-options.js +46 -6
  9. package/dist/acp/sessions/config-options.js.map +1 -1
  10. package/dist/acp/sessions/store.d.ts +8 -0
  11. package/dist/acp/sessions/store.js.map +1 -1
  12. package/dist/chat/app.d.ts +1 -2
  13. package/dist/chat/app.js +209 -31
  14. package/dist/chat/app.js.map +1 -1
  15. package/dist/chat/approvals.d.ts +1 -3
  16. package/dist/chat/approvals.js +4 -3
  17. package/dist/chat/approvals.js.map +1 -1
  18. package/dist/chat/components/Composer.d.ts +3 -2
  19. package/dist/chat/components/Composer.js +5 -5
  20. package/dist/chat/components/Composer.js.map +1 -1
  21. package/dist/chat/components/PromptInput.d.ts +3 -2
  22. package/dist/chat/components/PromptInput.js +2 -1
  23. package/dist/chat/components/PromptInput.js.map +1 -1
  24. package/dist/chat/components/ScrollView.d.ts +5 -0
  25. package/dist/chat/components/ScrollView.js +8 -2
  26. package/dist/chat/components/ScrollView.js.map +1 -1
  27. package/dist/chat/components/SelectPicker.d.ts +11 -0
  28. package/dist/chat/components/SelectPicker.js +7 -0
  29. package/dist/chat/components/SelectPicker.js.map +1 -0
  30. package/dist/chat/components/SlashCommands.d.ts +2 -1
  31. package/dist/chat/components/SlashCommands.js +9 -3
  32. package/dist/chat/components/SlashCommands.js.map +1 -1
  33. package/dist/chat/components/StatusBar.d.ts +3 -1
  34. package/dist/chat/components/StatusBar.js +18 -2
  35. package/dist/chat/components/StatusBar.js.map +1 -1
  36. package/dist/chat/components/ThinkingStatus.js +1 -1
  37. package/dist/chat/components/ThinkingStatus.js.map +1 -1
  38. package/dist/chat/components/TranscriptViewport.js +1 -1
  39. package/dist/chat/components/TranscriptViewport.js.map +1 -1
  40. package/dist/chat/components/markdown/BlockRenderer.d.ts +6 -1
  41. package/dist/chat/components/markdown/BlockRenderer.js +16 -14
  42. package/dist/chat/components/markdown/BlockRenderer.js.map +1 -1
  43. package/dist/chat/components/markdown/CodeBlock.d.ts +3 -1
  44. package/dist/chat/components/markdown/CodeBlock.js +3 -3
  45. package/dist/chat/components/markdown/CodeBlock.js.map +1 -1
  46. package/dist/chat/components/markdown/MarkdownMessage.js +2 -2
  47. package/dist/chat/components/markdown/MarkdownMessage.js.map +1 -1
  48. package/dist/chat/components/markdown/MarkdownTable.d.ts +2 -1
  49. package/dist/chat/components/markdown/MarkdownTable.js +2 -2
  50. package/dist/chat/components/markdown/MarkdownTable.js.map +1 -1
  51. package/dist/chat/components/prompt-input/hooks/usePromptInputController.d.ts +1 -1
  52. package/dist/chat/components/prompt-input/hooks/usePromptInputController.js.map +1 -1
  53. package/dist/chat/components/prompt-input/usePromptInputController.d.ts +11 -1
  54. package/dist/chat/components/prompt-input/usePromptInputController.js +55 -3
  55. package/dist/chat/components/prompt-input/usePromptInputController.js.map +1 -1
  56. package/dist/chat/index.d.ts +0 -1
  57. package/dist/chat/index.js +1 -1
  58. package/dist/chat/index.js.map +1 -1
  59. package/dist/cli.js +38 -16
  60. package/dist/cli.js.map +1 -1
  61. package/dist/core/agent/index.d.ts +4 -0
  62. package/dist/core/agent/index.js +25 -6
  63. package/dist/core/agent/index.js.map +1 -1
  64. package/dist/core/agent/mode-aware-tool-registry.d.ts +10 -0
  65. package/dist/core/agent/mode-aware-tool-registry.js +21 -0
  66. package/dist/core/agent/mode-aware-tool-registry.js.map +1 -0
  67. package/dist/core/agent/sync-tool-registry-mode.d.ts +6 -0
  68. package/dist/core/agent/sync-tool-registry-mode.js +15 -0
  69. package/dist/core/agent/sync-tool-registry-mode.js.map +1 -0
  70. package/dist/core/agents/definitions.d.ts +1 -1
  71. package/dist/core/agents/definitions.js +2 -17
  72. package/dist/core/agents/definitions.js.map +1 -1
  73. package/dist/core/agents/tools.d.ts +1 -1
  74. package/dist/core/agents/tools.js +1 -1
  75. package/dist/core/index.d.ts +5 -0
  76. package/dist/core/index.js +2 -0
  77. package/dist/core/index.js.map +1 -1
  78. package/dist/core/prompts/agents/research.md +15 -14
  79. package/dist/core/prompts/modes/ask.md +21 -0
  80. package/dist/core/prompts/{agents → modes}/plan.md +6 -8
  81. package/dist/core/prompts/session-mode-appendix.d.ts +5 -0
  82. package/dist/core/prompts/session-mode-appendix.js +53 -0
  83. package/dist/core/prompts/session-mode-appendix.js.map +1 -0
  84. package/dist/core/prompts/static/planning.md +34 -0
  85. package/dist/core/prompts/static/subagents.md +2 -2
  86. package/dist/core/prompts/system.js +3 -2
  87. package/dist/core/prompts/system.js.map +1 -1
  88. package/dist/core/session-config.d.ts +0 -3
  89. package/dist/core/session-config.js +0 -7
  90. package/dist/core/session-config.js.map +1 -1
  91. package/dist/core/state/agent-app-state.d.ts +6 -0
  92. package/dist/core/state/agent-app-state.js +11 -0
  93. package/dist/core/state/agent-app-state.js.map +1 -0
  94. package/dist/core/state/plan.d.ts +23 -0
  95. package/dist/core/state/plan.js +34 -0
  96. package/dist/core/state/plan.js.map +1 -0
  97. package/dist/core/state/session-mode.d.ts +23 -0
  98. package/dist/core/state/session-mode.js +21 -0
  99. package/dist/core/state/session-mode.js.map +1 -0
  100. package/dist/core/state/tool-approvals.d.ts +13 -1
  101. package/dist/core/state/tool-approvals.js +138 -5
  102. package/dist/core/state/tool-approvals.js.map +1 -1
  103. package/dist/core/state/yolo.d.ts +12 -0
  104. package/dist/core/state/yolo.js +9 -0
  105. package/dist/core/state/yolo.js.map +1 -0
  106. package/dist/core/tools/filesystem.js +1 -19
  107. package/dist/core/tools/filesystem.js.map +1 -1
  108. package/dist/core/tools/index.d.ts +1 -0
  109. package/dist/core/tools/index.js +1 -0
  110. package/dist/core/tools/index.js.map +1 -1
  111. package/dist/core/tools/plan.d.ts +4 -0
  112. package/dist/core/tools/plan.js +113 -0
  113. package/dist/core/tools/plan.js.map +1 -0
  114. package/dist/core/tools/wiki.d.ts +2 -2
  115. package/dist/core/utils/normalize-user-path.d.ts +4 -0
  116. package/dist/core/utils/normalize-user-path.js +31 -0
  117. package/dist/core/utils/normalize-user-path.js.map +1 -0
  118. package/dist/core/utils/paths.d.ts +1 -0
  119. package/dist/core/utils/paths.js +3 -0
  120. package/dist/core/utils/paths.js.map +1 -1
  121. package/dist/daemon/approvals.d.ts +1 -3
  122. package/dist/daemon/approvals.js +4 -3
  123. package/dist/daemon/approvals.js.map +1 -1
  124. package/dist/daemon/index.d.ts +0 -1
  125. package/dist/daemon/index.js +0 -3
  126. package/dist/daemon/index.js.map +1 -1
  127. package/dist/exec/approvals.d.ts +1 -3
  128. package/dist/exec/approvals.js +4 -3
  129. package/dist/exec/approvals.js.map +1 -1
  130. package/dist/index.d.ts +3 -0
  131. package/dist/index.js +3 -0
  132. package/dist/index.js.map +1 -1
  133. package/package.json +1 -1
  134. package/dist/chat/components/ModelPicker.d.ts +0 -10
  135. package/dist/chat/components/ModelPicker.js +0 -7
  136. package/dist/chat/components/ModelPicker.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PromptInput.js","sourceRoot":"","sources":["../../../src/chat/components/PromptInput.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,wBAAwB,GAEzB,MAAM,kDAAkD,CAAC;AAW1D,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,GAAG,EAAE,EAChB,KAAK,GAAG,IAAI,EACZ,eAAe,GAAG,CAAC,GACF;IACjB,MAAM,EAAE,IAAI,EAAE,GAAG,wBAAwB,CAAC;QACxC,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,eAAe;KAChB,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,OAAO,CACL,MAAC,IAAI,eACF,KAAK,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,OAAO,wBAAS,CAAC,CAAC,CAAC,IAAI,EACrC,WAAW,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,WAAW,GAAQ,CAAC,CAAC,CAAC,IAAI,IACxD,CACR,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACrC,MAAM,YAAY,GAAG,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC;YAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAO,KAAC,IAAI,cAAqC,IAAI,IAAnC,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,EAAE,CAAe,CAAC;YAChE,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAClD,OAAO,CACL,MAAC,IAAI,eACF,KAAK,CAAC,IAAI,EACX,KAAC,IAAI,IAAC,OAAO,kBAAE,KAAK,CAAC,EAAE,GAAQ,EAC9B,KAAK,CAAC,KAAK,KAHH,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,EAAE,CAIhC,CACR,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"PromptInput.js","sourceRoot":"","sources":["../../../src/chat/components/PromptInput.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,wBAAwB,GAGzB,MAAM,kDAAkD,CAAC;AAY1D,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,GAAG,EAAE,EAChB,KAAK,GAAG,IAAI,EACZ,eAAe,GAAG,CAAC,EACnB,SAAS,GACQ;IACjB,MAAM,EAAE,IAAI,EAAE,GAAG,wBAAwB,CAAC;QACxC,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,eAAe;QACf,SAAS;KACV,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,OAAO,CACL,MAAC,IAAI,eACF,KAAK,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,OAAO,wBAAS,CAAC,CAAC,CAAC,IAAI,EACrC,WAAW,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,WAAW,GAAQ,CAAC,CAAC,CAAC,IAAI,IACxD,CACR,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACrC,MAAM,YAAY,GAAG,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC;YAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAO,KAAC,IAAI,cAAqC,IAAI,IAAnC,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,EAAE,CAAe,CAAC;YAChE,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAClD,OAAO,CACL,MAAC,IAAI,eACF,KAAK,CAAC,IAAI,EACX,KAAC,IAAI,IAAC,OAAO,kBAAE,KAAK,CAAC,EAAE,GAAQ,EAC9B,KAAK,CAAC,KAAK,KAHH,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,EAAE,CAIhC,CACR,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -97,5 +97,10 @@ export declare const ScrollView: React.ForwardRefExoticComponent<{
97
97
  height: number;
98
98
  }) => void;
99
99
  onContentHeightChange?: (height: number, previousHeight: number) => void;
100
+ /**
101
+ * When content is shorter than the viewport, add top inset so the block sits on the
102
+ * bottom edge (chat-style). Scroll metrics still use raw content height.
103
+ */
104
+ pinShortContentToBottom?: boolean;
100
105
  children?: React.ReactNode;
101
106
  } & React.RefAttributes<ScrollViewRef>>;
@@ -4,7 +4,7 @@ import { Box, measureElement } from "ink";
4
4
  function clamp(offset, bottomOffset) {
5
5
  return Math.max(0, Math.min(offset, bottomOffset));
6
6
  }
7
- export const ScrollView = forwardRef(({ children, onScroll, onViewportSizeChange, onContentHeightChange, ...boxProps }, ref) => {
7
+ export const ScrollView = forwardRef(({ children, onScroll, onViewportSizeChange, onContentHeightChange, pinShortContentToBottom = false, ...boxProps }, ref) => {
8
8
  const viewportRef = useRef(null);
9
9
  const contentRef = useRef(null);
10
10
  const [scrollOffset, setScrollOffset] = useState(0);
@@ -68,7 +68,13 @@ export const ScrollView = forwardRef(({ children, onScroll, onViewportSizeChange
68
68
  getBottomOffset: bottomOffset,
69
69
  remeasure,
70
70
  }), [bottomOffset, remeasure, scrollTo]);
71
- return (_jsx(Box, { flexDirection: "column", flexShrink: 1, overflow: "hidden", ...boxProps, children: _jsx(Box, { ref: viewportRef, flexDirection: "column", flexGrow: 1, flexShrink: 1, minHeight: 1, overflow: "hidden", width: "100%", children: _jsx(Box, { ref: contentRef, flexDirection: "column", marginTop: -scrollOffset, flexShrink: 0, width: "100%", children: children }) }) }));
71
+ const shortContentTopPad = pinShortContentToBottom &&
72
+ contentHeight > 0 &&
73
+ viewportSize.height > 0 &&
74
+ contentHeight < viewportSize.height
75
+ ? viewportSize.height - contentHeight
76
+ : 0;
77
+ return (_jsx(Box, { flexDirection: "column", flexShrink: 1, overflow: "hidden", ...boxProps, children: _jsx(Box, { ref: viewportRef, flexDirection: "column", flexGrow: 1, flexShrink: 1, minHeight: 1, overflow: "hidden", width: "100%", children: _jsx(Box, { flexDirection: "column", marginTop: -scrollOffset + shortContentTopPad, flexShrink: 0, width: "100%", children: _jsx(Box, { ref: contentRef, flexDirection: "column", flexShrink: 0, width: "100%", children: children }) }) }) }));
72
78
  });
73
79
  ScrollView.displayName = "ScrollView";
74
80
  //# sourceMappingURL=ScrollView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollView.js","sourceRoot":"","sources":["../../../src/chat/components/ScrollView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScrollView.js","sourceRoot":"","sources":["../../../src/chat/components/ScrollView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export type SelectPickerItem = {
2
+ label: string;
3
+ value: string;
4
+ };
5
+ type SelectPickerProps = {
6
+ title: string;
7
+ items: SelectPickerItem[];
8
+ onSelect: (value: string) => void;
9
+ };
10
+ export declare function SelectPicker({ title, items, onSelect }: SelectPickerProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ import SelectInput from "ink-select-input";
4
+ export function SelectPicker({ title, items, onSelect }) {
5
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { bold: true, children: title }), _jsx(SelectInput, { items: items, onSelect: (item) => onSelect(item.value) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "gray", children: "up/down choose \u2022 enter select \u2022 esc cancel" }) })] }));
6
+ }
7
+ //# sourceMappingURL=SelectPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectPicker.js","sourceRoot":"","sources":["../../../src/chat/components/SelectPicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAa3C,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAqB;IACxE,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,IAAI,kBAAE,KAAK,GAAQ,EACzB,KAAC,WAAW,IACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GACxC,EACF,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,qEAAkD,GAChE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -4,6 +4,7 @@ type SlashCommandItem = {
4
4
  };
5
5
  type SlashCommandsProps = {
6
6
  items: readonly SlashCommandItem[];
7
+ highlightIndex: number;
7
8
  };
8
- export declare function SlashCommands({ items }: SlashCommandsProps): import("react/jsx-runtime").JSX.Element | null;
9
+ export declare function SlashCommands({ items, highlightIndex }: SlashCommandsProps): import("react/jsx-runtime").JSX.Element | null;
9
10
  export {};
@@ -1,9 +1,15 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text } from "ink";
3
- export function SlashCommands({ items }) {
3
+ export function SlashCommands({ items, highlightIndex }) {
4
4
  if (items.length === 0) {
5
5
  return null;
6
6
  }
7
- return (_jsx(Box, { flexDirection: "column", marginTop: 1, children: items.map((item) => (_jsxs(Text, { color: "gray", children: ["/", item.name, " - ", item.description] }, item.name))) }));
7
+ const safeIndex = Math.min(Math.max(0, highlightIndex), items.length - 1);
8
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [items.map((item, index) => {
9
+ const selected = index === safeIndex;
10
+ const cmd = `/${item.name}`;
11
+ const rest = ` — ${item.description}`;
12
+ return selected ? (_jsxs(Text, { inverse: true, children: [_jsx(Text, { bold: true, children: cmd }), _jsx(Text, { children: rest })] }, item.name)) : (_jsxs(Text, { color: "gray", children: [_jsx(Text, { bold: true, children: cmd }), _jsx(Text, { children: rest })] }, item.name));
13
+ }), _jsx(Text, { color: "gray", children: "\u2191\u2193 select \u2022 tab completes \u2022 enter completes name or submits" })] }));
8
14
  }
9
15
  //# sourceMappingURL=SlashCommands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SlashCommands.js","sourceRoot":"","sources":["../../../src/chat/components/SlashCommands.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAWhC,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,EAAsB;IACzD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACrC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,MAAC,IAAI,IAAiB,KAAK,EAAC,MAAM,kBAC9B,IAAI,CAAC,IAAI,SAAK,IAAI,CAAC,WAAW,KADvB,IAAI,CAAC,IAAI,CAEb,CACR,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"SlashCommands.js","sourceRoot":"","sources":["../../../src/chat/components/SlashCommands.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAYhC,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,cAAc,EAAsB;IACzE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1E,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACxC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACzB,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,CAAC;gBACrC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAChB,MAAC,IAAI,IAAiB,OAAO,mBAC3B,KAAC,IAAI,IAAC,IAAI,kBAAE,GAAG,GAAQ,EACvB,KAAC,IAAI,cAAE,IAAI,GAAQ,KAFV,IAAI,CAAC,IAAI,CAGb,CACR,CAAC,CAAC,CAAC,CACF,MAAC,IAAI,IAAiB,KAAK,EAAC,MAAM,aAChC,KAAC,IAAI,IAAC,IAAI,kBAAE,GAAG,GAAQ,EACvB,KAAC,IAAI,cAAE,IAAI,GAAQ,KAFV,IAAI,CAAC,IAAI,CAGb,CACR,CAAC;YACJ,CAAC,CAAC,EACF,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,gGAEX,IACH,CACP,CAAC;AACJ,CAAC"}
@@ -5,6 +5,8 @@ type StatusBarProps = {
5
5
  statusLabel?: string;
6
6
  sessionId: string;
7
7
  currentModel: string;
8
+ yoloOn: boolean;
9
+ sessionMode: string;
8
10
  elapsedLabel: string;
9
11
  turnCount: number;
10
12
  totalTools: number;
@@ -17,5 +19,5 @@ type StatusBarProps = {
17
19
  latencyMs: number;
18
20
  };
19
21
  };
20
- export declare function StatusBar({ running, status, statusLabel, sessionId, currentModel, elapsedLabel, turnCount, totalTools, skillsFound, manager, usage, }: StatusBarProps): import("react/jsx-runtime").JSX.Element;
22
+ export declare function StatusBar({ running, status, statusLabel, sessionId, currentModel, yoloOn, sessionMode, elapsedLabel, turnCount, totalTools, skillsFound, manager, usage, }: StatusBarProps): import("react/jsx-runtime").JSX.Element;
21
23
  export {};
@@ -1,5 +1,19 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text } from "ink";
3
+ /** Last UUID segment (or whole string) for a compact session label. */
4
+ function shortSessionId(sessionId) {
5
+ const parts = sessionId.split("-");
6
+ return parts.length > 1 ? (parts[parts.length - 1] ?? sessionId) : sessionId;
7
+ }
8
+ function sessionModeValueColor(mode) {
9
+ if (mode === "plan") {
10
+ return "#FFA500";
11
+ }
12
+ if (mode === "ask") {
13
+ return "cyan";
14
+ }
15
+ return "gray";
16
+ }
3
17
  /** Ink color for the live status token only (labels stay `gray`). */
4
18
  function statusValueColor(status) {
5
19
  switch (status) {
@@ -14,7 +28,9 @@ function statusValueColor(status) {
14
28
  return "gray";
15
29
  }
16
30
  }
17
- export function StatusBar({ running, status, statusLabel, sessionId, currentModel, elapsedLabel, turnCount, totalTools, skillsFound, manager, usage, }) {
18
- return (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Text, { children: [_jsx(Text, { color: "gray", children: "status: " }), _jsx(Text, { color: statusValueColor(status), children: statusLabel ?? status }), _jsxs(Text, { color: "gray", children: [" \u2022 session: ", sessionId] })] }), _jsxs(Text, { color: "gray", children: ["model: ", currentModel] }), _jsxs(Text, { color: "gray", children: ["turns: ", turnCount, " \u2022 tokens in/out/total: ", usage.inputTokens, "/", usage.outputTokens, "/", usage.totalTokens, usage.latencyMs > 0 ? ` • latency: ${usage.latencyMs}ms` : "", running ? _jsxs(Text, { color: "gray", children: [" \u2022 elapsed ", elapsedLabel] }) : null] }), _jsx(Text, { color: "gray", children: `mcp servers: ${manager.clients.size} • tools: ${totalTools} • skills: ${skillsFound}` })] }));
31
+ export function StatusBar({ running, status, statusLabel, sessionId, currentModel, yoloOn, sessionMode, elapsedLabel, turnCount, totalTools, skillsFound, manager, usage, }) {
32
+ const sessionShort = shortSessionId(sessionId);
33
+ const displayStatus = statusLabel ?? status;
34
+ return (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Text, { children: [_jsx(Text, { color: "gray", children: "session: " }), _jsx(Text, { color: "gray", children: sessionShort }), _jsx(Text, { color: "gray", children: " \u2022 status: " }), _jsx(Text, { color: statusValueColor(status), children: displayStatus }), _jsx(Text, { color: "gray", children: " \u2022 mode: " }), _jsx(Text, { color: sessionModeValueColor(sessionMode), children: sessionMode }), _jsx(Text, { color: "gray", children: " \u2022 yolo: " }), _jsx(Text, { color: yoloOn ? "red" : "green", children: yoloOn ? "on" : "off" })] }), _jsxs(Text, { color: "gray", children: ["model: ", currentModel, " \u2022 turns: ", turnCount, " \u2022 tokens: ", usage.inputTokens, " ", "+ ", usage.outputTokens, " = ", usage.totalTokens, usage.latencyMs > 0 ? ` • latency: ${usage.latencyMs}ms` : "", running ? ` • elapsed ${elapsedLabel}` : ""] }), _jsx(Text, { color: "gray", children: `mcp servers: ${manager.clients.size} • tools: ${totalTools} • skills: ${skillsFound}` })] }));
19
35
  }
20
36
  //# sourceMappingURL=StatusBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../src/chat/components/StatusBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAsBhC,qEAAqE;AACrE,SAAS,gBAAgB,CAAC,MAAc;IACtC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,cAAc,CAAC;QACpB,KAAK,kBAAkB;YACrB,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EACxB,OAAO,EACP,MAAM,EACN,WAAW,EACX,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,UAAU,EACV,WAAW,EACX,OAAO,EACP,KAAK,GACU;IACf,OAAO,CACL,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aACvC,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,yBAAgB,EAClC,KAAC,IAAI,IAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,YAAG,WAAW,IAAI,MAAM,GAAQ,EACrE,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kCAAc,SAAS,IAAQ,IAC5C,EACP,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,wBAAS,YAAY,IAAQ,EAC/C,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,wBACR,SAAS,mCAA0B,KAAK,CAAC,WAAW,OAC3D,KAAK,CAAC,YAAY,OAAG,KAAK,CAAC,WAAW,EACtC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,EAC7D,OAAO,CAAC,CAAC,CAAC,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,iCAAa,YAAY,IAAQ,CAAC,CAAC,CAAC,IAAI,IAChE,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YACf,gBAAgB,OAAO,CAAC,OAAO,CAAC,IAAI,aAAa,UAAU,cAAc,WAAW,EAAE,GAClF,IACH,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../src/chat/components/StatusBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAwBhC,uEAAuE;AACvE,SAAS,cAAc,CAAC,SAAiB;IACvC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/E,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IACzC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qEAAqE;AACrE,SAAS,gBAAgB,CAAC,MAAc;IACtC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,cAAc,CAAC;QACpB,KAAK,kBAAkB;YACrB,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EACxB,OAAO,EACP,MAAM,EACN,WAAW,EACX,SAAS,EACT,YAAY,EACZ,MAAM,EACN,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,WAAW,EACX,OAAO,EACP,KAAK,GACU;IACf,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,WAAW,IAAI,MAAM,CAAC;IAE5C,OAAO,CACL,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aACvC,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,0BAAiB,EACnC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,YAAY,GAAQ,EACxC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,iCAAmB,EACrC,KAAC,IAAI,IAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,YAAG,aAAa,GAAQ,EAC7D,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,+BAAiB,EACnC,KAAC,IAAI,IAAC,KAAK,EAAE,qBAAqB,CAAC,WAAW,CAAC,YAAG,WAAW,GAAQ,EACrE,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,+BAAiB,EACnC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,YAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAQ,IAChE,EACP,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,wBACR,YAAY,qBAAY,SAAS,sBAAa,KAAK,CAAC,WAAW,EAAE,GAAG,QACzE,KAAK,CAAC,YAAY,SAAK,KAAK,CAAC,WAAW,EAC1C,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,EAC7D,OAAO,CAAC,CAAC,CAAC,cAAc,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,IACvC,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YACf,gBAAgB,OAAO,CAAC,OAAO,CAAC,IAAI,aAAa,UAAU,cAAc,WAAW,EAAE,GAClF,IACH,CACP,CAAC;AACJ,CAAC"}
@@ -87,7 +87,7 @@ const THINKING_VERBS = [
87
87
  "is fine-tuning outputs",
88
88
  "is tracing linguistic roots",
89
89
  "is measuring semantic proximity",
90
- "is formulating plans",
90
+ "is outlining next moves",
91
91
  "is constructing frameworks",
92
92
  "is organizing thought streams",
93
93
  "is linking references",
@@ -1 +1 @@
1
- {"version":3,"file":"ThinkingStatus.js","sourceRoot":"","sources":["../../../src/chat/components/ThinkingStatus.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ThinkingStatus.js","sourceRoot":"","sources":["../../../src/chat/components/ThinkingStatus.tsx"],"names":[],"mappings":"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"}
@@ -114,7 +114,7 @@ export function TranscriptViewport({ lines, liveReasoning, followRequest, }) {
114
114
  process.stdout.write(MOUSE_REPORTING_DISABLE);
115
115
  };
116
116
  }, [scrollBy, setRawMode, stdin]);
117
- return (_jsx(Box, { flexDirection: "column", flexGrow: 1, minHeight: 1, children: _jsx(ScrollView, { ref: scrollRef, flexGrow: 1, width: "100%", onScroll: (offset) => {
117
+ return (_jsx(Box, { flexDirection: "column", flexGrow: 1, minHeight: 1, children: _jsx(ScrollView, { ref: scrollRef, flexGrow: 1, width: "100%", pinShortContentToBottom: true, onScroll: (offset) => {
118
118
  const scroll = scrollRef.current;
119
119
  if (scroll) {
120
120
  stickyRef.current = offset >= scroll.getBottomOffset() - 1;
@@ -1 +1 @@
1
- {"version":3,"file":"TranscriptViewport.js","sourceRoot":"","sources":["../../../src/chat/components/TranscriptViewport.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TranscriptViewport.js","sourceRoot":"","sources":["../../../src/chat/components/TranscriptViewport.tsx"],"names":[],"mappings":"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"}
@@ -3,6 +3,11 @@ type BlockRendererProps = {
3
3
  tokens: Token[];
4
4
  streaming?: boolean;
5
5
  depth?: number;
6
+ /**
7
+ * When true, the final top-level token omits block bottom margin so spacing matches plain user
8
+ * messages (ChatMessage already applies marginBottom).
9
+ */
10
+ omitTrailingBlockMargin?: boolean;
6
11
  };
7
- export declare function BlockRenderer({ tokens, streaming, depth, }: BlockRendererProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function BlockRenderer({ tokens, streaming, depth, omitTrailingBlockMargin, }: BlockRendererProps): import("react/jsx-runtime").JSX.Element;
8
13
  export {};
@@ -27,25 +27,26 @@ function blockToPlainText(token) {
27
27
  return token.raw ?? "";
28
28
  }
29
29
  }
30
- function renderBlock(token, key, depth, columns, streaming) {
30
+ function renderBlock(token, key, depth, columns, streaming, stripBottomMargin) {
31
+ const mb = stripBottomMargin ? 0 : 1;
31
32
  switch (token.type) {
32
33
  case "paragraph":
33
- return (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { wrap: "wrap", children: renderInlineTokens(token.tokens, { keyPrefix: key }) }) }, key));
34
+ return (_jsx(Box, { marginBottom: mb, children: _jsx(Text, { wrap: "wrap", children: renderInlineTokens(token.tokens, { keyPrefix: key }) }) }, key));
34
35
  case "heading": {
35
36
  const headingColor = token.depth <= 2 ? "cyan" : "white";
36
- return (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, color: headingColor, wrap: "wrap", children: renderInlineTokens(token.tokens, { keyPrefix: key }) }) }, key));
37
+ return (_jsx(Box, { marginBottom: mb, children: _jsx(Text, { bold: true, color: headingColor, wrap: "wrap", children: renderInlineTokens(token.tokens, { keyPrefix: key }) }) }, key));
37
38
  }
38
39
  case "code":
39
- return (_jsx(CodeBlock, { code: token.text ?? "", language: token.lang, streaming: streaming }, key));
40
+ return (_jsx(CodeBlock, { code: token.text ?? "", language: token.lang, streaming: streaming, omitBottomMargin: stripBottomMargin }, key));
40
41
  case "blockquote": {
41
42
  const lines = (token.tokens ?? [])
42
43
  .map((child) => blockToPlainText(child))
43
44
  .join("\n")
44
45
  .split("\n");
45
- return (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: lines.map((line, index) => (_jsx(Text, { color: "gray", italic: true, children: `│ ${line || " "}` }, `${key}-${index}`))) }, key));
46
+ return (_jsx(Box, { flexDirection: "column", marginBottom: mb, children: lines.map((line, index) => (_jsx(Text, { color: "gray", italic: true, children: `│ ${line || " "}` }, `${key}-${index}`))) }, key));
46
47
  }
47
48
  case "list":
48
- return (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: token.items.map((item, index) => {
49
+ return (_jsx(Box, { flexDirection: "column", marginBottom: mb, children: token.items.map((item, index) => {
49
50
  const marker = token.ordered
50
51
  ? `${(token.start ?? 1) + index}.`
51
52
  : "-";
@@ -60,28 +61,29 @@ function renderBlock(token, key, depth, columns, streaming) {
60
61
  : (head.text ??
61
62
  renderInlineTokens(head.tokens, {
62
63
  keyPrefix: `${key}-item-${index}-text`,
63
- })) })) : head ? (renderBlock(head, `${key}-item-${index}-head`, depth + 1, columns, streaming)) : (_jsx(Text, { children: " " }));
64
- return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { children: `${" ".repeat(depth)}${marker} ${checkbox}` }), _jsx(Box, { flexDirection: "column", flexGrow: 1, children: headNode })] }), tail.length > 0 ? (_jsx(Box, { marginLeft: Math.max(2, depth * 2 + 4), flexDirection: "column", children: tail.map((nestedToken, nestedIndex) => renderBlock(nestedToken, `${key}-item-${index}-tail-${nestedIndex}`, depth + 1, columns, streaming)) })) : null] }, `${key}-item-${index}`));
64
+ })) })) : head ? (renderBlock(head, `${key}-item-${index}-head`, depth + 1, columns, streaming, false)) : (_jsx(Text, { children: " " }));
65
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { children: `${" ".repeat(depth)}${marker} ${checkbox}` }), _jsx(Box, { flexDirection: "column", flexGrow: 1, children: headNode })] }), tail.length > 0 ? (_jsx(Box, { marginLeft: Math.max(2, depth * 2 + 4), flexDirection: "column", children: tail.map((nestedToken, nestedIndex) => renderBlock(nestedToken, `${key}-item-${index}-tail-${nestedIndex}`, depth + 1, columns, streaming, false)) })) : null] }, `${key}-item-${index}`));
65
66
  }) }, key));
66
67
  case "table":
67
- return _jsx(MarkdownTable, { token: token }, key);
68
+ return (_jsx(MarkdownTable, { token: token, omitBottomMargin: stripBottomMargin }, key));
68
69
  case "hr":
69
- return (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "gray", children: "─".repeat(Math.max(8, Math.min(columns - 4, 48))) }) }, key));
70
+ return (_jsx(Box, { marginBottom: mb, children: _jsx(Text, { color: "gray", children: "─".repeat(Math.max(8, Math.min(columns - 4, 48))) }) }, key));
70
71
  case "space":
71
72
  return null;
72
73
  case "text":
73
74
  case "escape":
74
- return (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { wrap: "wrap", children: token.text ?? token.raw ?? "" }) }, key));
75
+ return (_jsx(Box, { marginBottom: mb, children: _jsx(Text, { wrap: "wrap", children: token.text ?? token.raw ?? "" }) }, key));
75
76
  case "html":
76
77
  case "def":
77
78
  case "del":
78
79
  return null;
79
80
  default:
80
- return (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { wrap: "wrap", children: token.raw ?? "" }) }, key));
81
+ return (_jsx(Box, { marginBottom: mb, children: _jsx(Text, { wrap: "wrap", children: token.raw ?? "" }) }, key));
81
82
  }
82
83
  }
83
- export function BlockRenderer({ tokens, streaming = false, depth = 0, }) {
84
+ export function BlockRenderer({ tokens, streaming = false, depth = 0, omitTrailingBlockMargin = false, }) {
84
85
  const { columns } = useWindowSize();
85
- return (_jsx(Box, { flexDirection: "column", children: tokens.map((token, index) => renderBlock(token, `block-${depth}-${index}`, depth, columns, streaming)) }));
86
+ const lastIndex = tokens.length - 1;
87
+ return (_jsx(Box, { flexDirection: "column", children: tokens.map((token, index) => renderBlock(token, `block-${depth}-${index}`, depth, columns, streaming, omitTrailingBlockMargin && index === lastIndex)) }));
86
88
  }
87
89
  //# sourceMappingURL=BlockRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockRenderer.js","sourceRoot":"","sources":["../../../../src/chat/components/markdown/BlockRenderer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BlockRenderer.js","sourceRoot":"","sources":["../../../../src/chat/components/markdown/BlockRenderer.tsx"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ type CodeBlockProps = {
2
2
  code: string;
3
3
  language?: string;
4
4
  streaming?: boolean;
5
+ /** Last block in a message: skip margin so ChatMessage spacing is not doubled. */
6
+ omitBottomMargin?: boolean;
5
7
  };
6
- export declare function CodeBlock({ code, language, streaming, }: CodeBlockProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function CodeBlock({ code, language, streaming, omitBottomMargin, }: CodeBlockProps): import("react/jsx-runtime").JSX.Element;
7
9
  export {};
@@ -28,7 +28,7 @@ function getInkAnsi() {
28
28
  function renderCodeLines(lines, color) {
29
29
  return lines.map((line, index) => (_jsx(Text, { color: color, children: line || " " }, index)));
30
30
  }
31
- export function CodeBlock({ code, language, streaming = false, }) {
31
+ export function CodeBlock({ code, language, streaming = false, omitBottomMargin = false, }) {
32
32
  const trimmedLanguage = language?.trim() || undefined;
33
33
  const normalizedCode = useMemo(() => code.replace(/\r\n/g, "\n"), [code]);
34
34
  const plainLines = useMemo(() => normalizedCode.split("\n"), [normalizedCode]);
@@ -48,8 +48,8 @@ export function CodeBlock({ code, language, streaming = false, }) {
48
48
  }, [normalizedCode, streaming, trimmedLanguage]);
49
49
  if (highlightedLines) {
50
50
  const InkAnsiText = getInkAnsi();
51
- return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: "gray", children: `\`\`\`${trimmedLanguage}` }), highlightedLines.map((line, index) => InkAnsiText ? (_jsx(InkAnsiText, { children: line || " " }, index)) : (_jsx(Text, { children: stripAnsi(line) || " " }, index))), _jsx(Text, { color: "gray", children: "```" })] }));
51
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: omitBottomMargin ? 0 : 1, children: [_jsx(Text, { color: "gray", children: `\`\`\`${trimmedLanguage}` }), highlightedLines.map((line, index) => InkAnsiText ? (_jsx(InkAnsiText, { children: line || " " }, index)) : (_jsx(Text, { children: stripAnsi(line) || " " }, index))), _jsx(Text, { color: "gray", children: "```" })] }));
52
52
  }
53
- return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: "gray", children: `\`\`\`${trimmedLanguage ?? ""}` }), renderCodeLines(plainLines, "white"), _jsx(Text, { color: "gray", children: "```" })] }));
53
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: omitBottomMargin ? 0 : 1, children: [_jsx(Text, { color: "gray", children: `\`\`\`${trimmedLanguage ?? ""}` }), renderCodeLines(plainLines, "white"), _jsx(Text, { color: "gray", children: "```" })] }));
54
54
  }
55
55
  //# sourceMappingURL=CodeBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlock.js","sourceRoot":"","sources":["../../../../src/chat/components/markdown/CodeBlock.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAY5D,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,MAAM,OAAO,GAAG,mBAAmB,CAAC;AACpC,IAAI,aAAkD,CAAC;AAEvD,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,UAAU;IACjB,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,CAET,CAAC;QACnC,aAAa;YACX,OAAO,WAAW,KAAK,UAAU;gBAC/B,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,eAAe,CAAC,KAAe,EAAE,KAAc;IACtD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,KAAC,IAAI,IAAa,KAAK,EAAE,KAAK,YAC3B,IAAI,IAAI,GAAG,IADH,KAAK,CAET,CACR,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EACxB,IAAI,EACJ,QAAQ,EACR,SAAS,GAAG,KAAK,GACF;IACf,MAAM,eAAe,GAAG,QAAQ,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IACtD,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,EAChC,CAAC,cAAc,CAAC,CACjB,CAAC;IACF,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,IAAI,SAAS,IAAI,CAAC,eAAe,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,CAAC;YACxE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,OAAO,SAAS,CAAC,cAAc,EAAE;gBAC/B,QAAQ,EAAE,eAAe;gBACzB,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;IAEjD,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;QACjC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACzC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,SAAS,eAAe,EAAE,GAAQ,EACrD,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpC,WAAW,CAAC,CAAC,CAAC,CACZ,KAAC,WAAW,cAAc,IAAI,IAAI,GAAG,IAAnB,KAAK,CAA6B,CACrD,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,cAAc,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,IAA9B,KAAK,CAAiC,CAClD,CACF,EACD,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,oBAAW,IACzB,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACzC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,SAAS,eAAe,IAAI,EAAE,EAAE,GAAQ,EAC3D,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,EACrC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,oBAAW,IACzB,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"CodeBlock.js","sourceRoot":"","sources":["../../../../src/chat/components/markdown/CodeBlock.tsx"],"names":[],"mappings":"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"}
@@ -6,8 +6,8 @@ export function MarkdownMessage({ children, streaming = false, }) {
6
6
  const content = children ?? "";
7
7
  const { fullTokens, stablePrefix, unstableSuffix, stableTokens, unstableTokens, } = useMarkdownTokens(content, streaming);
8
8
  if (!streaming) {
9
- return _jsx(BlockRenderer, { tokens: fullTokens });
9
+ return _jsx(BlockRenderer, { tokens: fullTokens, omitTrailingBlockMargin: true });
10
10
  }
11
- return (_jsxs(Box, { flexDirection: "column", children: [stablePrefix ? _jsx(BlockRenderer, { tokens: stableTokens }) : null, unstableSuffix ? (_jsx(BlockRenderer, { tokens: unstableTokens, streaming: true })) : null] }));
11
+ return (_jsxs(Box, { flexDirection: "column", children: [stablePrefix ? (_jsx(BlockRenderer, { tokens: stableTokens, streaming: true, omitTrailingBlockMargin: !unstableSuffix })) : null, unstableSuffix ? (_jsx(BlockRenderer, { tokens: unstableTokens, streaming: true, omitTrailingBlockMargin: true })) : null] }));
12
12
  }
13
13
  //# sourceMappingURL=MarkdownMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownMessage.js","sourceRoot":"","sources":["../../../../src/chat/components/markdown/MarkdownMessage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAOjE,MAAM,UAAU,eAAe,CAAC,EAC9B,QAAQ,EACR,SAAS,GAAG,KAAK,GACI;IACrB,MAAM,OAAO,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC/B,MAAM,EACJ,UAAU,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,cAAc,GACf,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAE1C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,KAAC,aAAa,IAAC,MAAM,EAAE,UAAU,GAAI,CAAC;IAC/C,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACxB,YAAY,CAAC,CAAC,CAAC,KAAC,aAAa,IAAC,MAAM,EAAE,YAAY,GAAI,CAAC,CAAC,CAAC,IAAI,EAC7D,cAAc,CAAC,CAAC,CAAC,CAChB,KAAC,aAAa,IAAC,MAAM,EAAE,cAAc,EAAE,SAAS,SAAG,CACpD,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"MarkdownMessage.js","sourceRoot":"","sources":["../../../../src/chat/components/markdown/MarkdownMessage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAOjE,MAAM,UAAU,eAAe,CAAC,EAC9B,QAAQ,EACR,SAAS,GAAG,KAAK,GACI;IACrB,MAAM,OAAO,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC/B,MAAM,EACJ,UAAU,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,cAAc,GACf,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAE1C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,KAAC,aAAa,IAAC,MAAM,EAAE,UAAU,EAAE,uBAAuB,SAAG,CAAC;IACvE,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACxB,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,aAAa,IACZ,MAAM,EAAE,YAAY,EACpB,SAAS,QACT,uBAAuB,EAAE,CAAC,cAAc,GACxC,CACH,CAAC,CAAC,CAAC,IAAI,EACP,cAAc,CAAC,CAAC,CAAC,CAChB,KAAC,aAAa,IACZ,MAAM,EAAE,cAAc,EACtB,SAAS,QACT,uBAAuB,SACvB,CACH,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { Tokens } from "marked";
2
2
  type MarkdownTableProps = {
3
3
  token: Tokens.Table;
4
+ omitBottomMargin?: boolean;
4
5
  };
5
- export declare function MarkdownTable({ token }: MarkdownTableProps): import("react/jsx-runtime").JSX.Element | null;
6
+ export declare function MarkdownTable({ token, omitBottomMargin, }: MarkdownTableProps): import("react/jsx-runtime").JSX.Element | null;
6
7
  export {};
@@ -1,12 +1,12 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Box, Text, useWindowSize } from "ink";
3
3
  import { useMarkdownTableLayout } from "./hooks/useMarkdownTableLayout.js";
4
- export function MarkdownTable({ token }) {
4
+ export function MarkdownTable({ token, omitBottomMargin = false, }) {
5
5
  const { columns } = useWindowSize();
6
6
  const layout = useMarkdownTableLayout(token, columns);
7
7
  if (layout.lines.length === 0) {
8
8
  return null;
9
9
  }
10
- return (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: layout.lines.map((line, index) => (_jsx(Text, { children: line }, index))) }));
10
+ return (_jsx(Box, { flexDirection: "column", marginBottom: omitBottomMargin ? 0 : 1, children: layout.lines.map((line, index) => (_jsx(Text, { children: line }, index))) }));
11
11
  }
12
12
  //# sourceMappingURL=MarkdownTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownTable.js","sourceRoot":"","sources":["../../../../src/chat/components/markdown/MarkdownTable.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAM3E,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,EAAsB;IACzD,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,YACxC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACjC,KAAC,IAAI,cAAc,IAAI,IAAZ,KAAK,CAAe,CAChC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"MarkdownTable.js","sourceRoot":"","sources":["../../../../src/chat/components/markdown/MarkdownTable.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAO3E,MAAM,UAAU,aAAa,CAAC,EAC5B,KAAK,EACL,gBAAgB,GAAG,KAAK,GACL;IACnB,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAC/D,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACjC,KAAC,IAAI,cAAc,IAAI,IAAZ,KAAK,CAAe,CAChC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- export { usePromptInputController, type PromptSubmission, } from "../usePromptInputController.js";
1
+ export { usePromptInputController, type PromptSubmission, type SlashCommandMenuProps, } from "../usePromptInputController.js";
@@ -1 +1 @@
1
- {"version":3,"file":"usePromptInputController.js","sourceRoot":"","sources":["../../../../../src/chat/components/prompt-input/hooks/usePromptInputController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAEzB,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"usePromptInputController.js","sourceRoot":"","sources":["../../../../../src/chat/components/prompt-input/hooks/usePromptInputController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAGzB,MAAM,gCAAgC,CAAC"}
@@ -3,15 +3,25 @@ export type PromptSubmission = {
3
3
  text: string;
4
4
  attachments: string[];
5
5
  };
6
+ export type SlashCommandMenuProps = {
7
+ itemCount: number;
8
+ highlightIndex: number;
9
+ /** Name of the highlighted command (e.g. `model`). Used so Enter completes partial `/` instead of submitting. */
10
+ highlightedCommandName: string;
11
+ onHighlightChange: (index: number) => void;
12
+ completeSelected: () => void;
13
+ };
6
14
  type Args = {
7
15
  value: string;
8
16
  onChange: (value: string) => void;
9
17
  onSubmit: (value: PromptSubmission) => void;
10
18
  focus: boolean;
11
19
  maxVisibleLines: number;
20
+ /** When set and `itemCount > 0`, ↑/↓ cycle selection; Tab completes; Enter completes if the typed token still mismatches the highlight, otherwise submits. */
21
+ slashMenu?: SlashCommandMenuProps | undefined;
12
22
  };
13
23
  type Result = {
14
24
  view: PromptView;
15
25
  };
16
- export declare function usePromptInputController({ value, onChange, onSubmit, focus, maxVisibleLines, }: Args): Result;
26
+ export declare function usePromptInputController({ value, onChange, onSubmit, focus, maxVisibleLines, slashMenu, }: Args): Result;
17
27
  export {};