@molecule/app-ide-react 1.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 (250) hide show
  1. package/LICENSE +115 -0
  2. package/dist/chatTimelineOrdering.d.ts +50 -0
  3. package/dist/chatTimelineOrdering.d.ts.map +1 -0
  4. package/dist/chatTimelineOrdering.js +46 -0
  5. package/dist/chatTimelineOrdering.js.map +1 -0
  6. package/dist/command-metadata.d.ts +78 -0
  7. package/dist/command-metadata.d.ts.map +1 -0
  8. package/dist/command-metadata.js +214 -0
  9. package/dist/command-metadata.js.map +1 -0
  10. package/dist/components/ActivityCard.d.ts +28 -0
  11. package/dist/components/ActivityCard.d.ts.map +1 -0
  12. package/dist/components/ActivityCard.js +62 -0
  13. package/dist/components/ActivityCard.js.map +1 -0
  14. package/dist/components/AutoCommitBadge.d.ts +58 -0
  15. package/dist/components/AutoCommitBadge.d.ts.map +1 -0
  16. package/dist/components/AutoCommitBadge.js +78 -0
  17. package/dist/components/AutoCommitBadge.js.map +1 -0
  18. package/dist/components/ChatPanel.d.ts +184 -0
  19. package/dist/components/ChatPanel.d.ts.map +1 -0
  20. package/dist/components/ChatPanel.js +6691 -0
  21. package/dist/components/ChatPanel.js.map +1 -0
  22. package/dist/components/CommandPalette.d.ts +18 -0
  23. package/dist/components/CommandPalette.d.ts.map +1 -0
  24. package/dist/components/CommandPalette.js +33 -0
  25. package/dist/components/CommandPalette.js.map +1 -0
  26. package/dist/components/DeviceFrameSelector.d.ts +60 -0
  27. package/dist/components/DeviceFrameSelector.d.ts.map +1 -0
  28. package/dist/components/DeviceFrameSelector.js +230 -0
  29. package/dist/components/DeviceFrameSelector.js.map +1 -0
  30. package/dist/components/EditorPanel.d.ts +17 -0
  31. package/dist/components/EditorPanel.d.ts.map +1 -0
  32. package/dist/components/EditorPanel.js +241 -0
  33. package/dist/components/EditorPanel.js.map +1 -0
  34. package/dist/components/FileExplorer.d.ts +64 -0
  35. package/dist/components/FileExplorer.d.ts.map +1 -0
  36. package/dist/components/FileExplorer.js +1111 -0
  37. package/dist/components/FileExplorer.js.map +1 -0
  38. package/dist/components/FileExplorerContextMenu.d.ts +37 -0
  39. package/dist/components/FileExplorerContextMenu.d.ts.map +1 -0
  40. package/dist/components/FileExplorerContextMenu.js +241 -0
  41. package/dist/components/FileExplorerContextMenu.js.map +1 -0
  42. package/dist/components/HelpCard.d.ts +34 -0
  43. package/dist/components/HelpCard.d.ts.map +1 -0
  44. package/dist/components/HelpCard.js +28 -0
  45. package/dist/components/HelpCard.js.map +1 -0
  46. package/dist/components/Icon.d.ts +50 -0
  47. package/dist/components/Icon.d.ts.map +1 -0
  48. package/dist/components/Icon.js +25 -0
  49. package/dist/components/Icon.js.map +1 -0
  50. package/dist/components/KeyboardShortcutsPanel.d.ts +19 -0
  51. package/dist/components/KeyboardShortcutsPanel.d.ts.map +1 -0
  52. package/dist/components/KeyboardShortcutsPanel.js +187 -0
  53. package/dist/components/KeyboardShortcutsPanel.js.map +1 -0
  54. package/dist/components/MarkdownContent.d.ts +52 -0
  55. package/dist/components/MarkdownContent.d.ts.map +1 -0
  56. package/dist/components/MarkdownContent.js +303 -0
  57. package/dist/components/MarkdownContent.js.map +1 -0
  58. package/dist/components/ModelsTable.d.ts +38 -0
  59. package/dist/components/ModelsTable.d.ts.map +1 -0
  60. package/dist/components/ModelsTable.js +96 -0
  61. package/dist/components/ModelsTable.js.map +1 -0
  62. package/dist/components/PreviewPanel.d.ts +66 -0
  63. package/dist/components/PreviewPanel.d.ts.map +1 -0
  64. package/dist/components/PreviewPanel.js +1752 -0
  65. package/dist/components/PreviewPanel.js.map +1 -0
  66. package/dist/components/QuickOpen.d.ts +20 -0
  67. package/dist/components/QuickOpen.d.ts.map +1 -0
  68. package/dist/components/QuickOpen.js +72 -0
  69. package/dist/components/QuickOpen.js.map +1 -0
  70. package/dist/components/QuickPicker.d.ts +21 -0
  71. package/dist/components/QuickPicker.d.ts.map +1 -0
  72. package/dist/components/QuickPicker.js +174 -0
  73. package/dist/components/QuickPicker.js.map +1 -0
  74. package/dist/components/RelevantSkillSuggestion.d.ts +41 -0
  75. package/dist/components/RelevantSkillSuggestion.d.ts.map +1 -0
  76. package/dist/components/RelevantSkillSuggestion.js +85 -0
  77. package/dist/components/RelevantSkillSuggestion.js.map +1 -0
  78. package/dist/components/ReportModal.d.ts +35 -0
  79. package/dist/components/ReportModal.d.ts.map +1 -0
  80. package/dist/components/ReportModal.js +112 -0
  81. package/dist/components/ReportModal.js.map +1 -0
  82. package/dist/components/ResizeHandle.d.ts +21 -0
  83. package/dist/components/ResizeHandle.d.ts.map +1 -0
  84. package/dist/components/ResizeHandle.js +109 -0
  85. package/dist/components/ResizeHandle.js.map +1 -0
  86. package/dist/components/ScriptsCard.d.ts +37 -0
  87. package/dist/components/ScriptsCard.d.ts.map +1 -0
  88. package/dist/components/ScriptsCard.js +177 -0
  89. package/dist/components/ScriptsCard.js.map +1 -0
  90. package/dist/components/SearchPanel.d.ts +18 -0
  91. package/dist/components/SearchPanel.d.ts.map +1 -0
  92. package/dist/components/SearchPanel.js +449 -0
  93. package/dist/components/SearchPanel.js.map +1 -0
  94. package/dist/components/SettingsCard.d.ts +49 -0
  95. package/dist/components/SettingsCard.d.ts.map +1 -0
  96. package/dist/components/SettingsCard.js +59 -0
  97. package/dist/components/SettingsCard.js.map +1 -0
  98. package/dist/components/ShareModal.d.ts +32 -0
  99. package/dist/components/ShareModal.d.ts.map +1 -0
  100. package/dist/components/ShareModal.js +126 -0
  101. package/dist/components/ShareModal.js.map +1 -0
  102. package/dist/components/SidebarTabs.d.ts +18 -0
  103. package/dist/components/SidebarTabs.d.ts.map +1 -0
  104. package/dist/components/SidebarTabs.js +20 -0
  105. package/dist/components/SidebarTabs.js.map +1 -0
  106. package/dist/components/SkillsCard.d.ts +86 -0
  107. package/dist/components/SkillsCard.d.ts.map +1 -0
  108. package/dist/components/SkillsCard.js +227 -0
  109. package/dist/components/SkillsCard.js.map +1 -0
  110. package/dist/components/StreamingIndicator.d.ts +50 -0
  111. package/dist/components/StreamingIndicator.d.ts.map +1 -0
  112. package/dist/components/StreamingIndicator.js +142 -0
  113. package/dist/components/StreamingIndicator.js.map +1 -0
  114. package/dist/components/TabBar.d.ts +37 -0
  115. package/dist/components/TabBar.d.ts.map +1 -0
  116. package/dist/components/TabBar.js +187 -0
  117. package/dist/components/TabBar.js.map +1 -0
  118. package/dist/components/TipCard.d.ts +22 -0
  119. package/dist/components/TipCard.d.ts.map +1 -0
  120. package/dist/components/TipCard.js +73 -0
  121. package/dist/components/TipCard.js.map +1 -0
  122. package/dist/components/ToolCallCard.d.ts +18 -0
  123. package/dist/components/ToolCallCard.d.ts.map +1 -0
  124. package/dist/components/ToolCallCard.js +716 -0
  125. package/dist/components/ToolCallCard.js.map +1 -0
  126. package/dist/components/UserAvatar.d.ts +45 -0
  127. package/dist/components/UserAvatar.d.ts.map +1 -0
  128. package/dist/components/UserAvatar.js +80 -0
  129. package/dist/components/UserAvatar.js.map +1 -0
  130. package/dist/components/WorkspaceLayout.d.ts +19 -0
  131. package/dist/components/WorkspaceLayout.d.ts.map +1 -0
  132. package/dist/components/WorkspaceLayout.js +56 -0
  133. package/dist/components/WorkspaceLayout.js.map +1 -0
  134. package/dist/components/activity-utilities.d.ts +107 -0
  135. package/dist/components/activity-utilities.d.ts.map +1 -0
  136. package/dist/components/activity-utilities.js +154 -0
  137. package/dist/components/activity-utilities.js.map +1 -0
  138. package/dist/components/chat-autocommit-utilities.d.ts +172 -0
  139. package/dist/components/chat-autocommit-utilities.d.ts.map +1 -0
  140. package/dist/components/chat-autocommit-utilities.js +185 -0
  141. package/dist/components/chat-autocommit-utilities.js.map +1 -0
  142. package/dist/components/chat-card-style.d.ts +64 -0
  143. package/dist/components/chat-card-style.d.ts.map +1 -0
  144. package/dist/components/chat-card-style.js +74 -0
  145. package/dist/components/chat-card-style.js.map +1 -0
  146. package/dist/components/chat-commands.d.ts +17 -0
  147. package/dist/components/chat-commands.d.ts.map +1 -0
  148. package/dist/components/chat-commands.js +17 -0
  149. package/dist/components/chat-commands.js.map +1 -0
  150. package/dist/components/chat-commit-utilities.d.ts +29 -0
  151. package/dist/components/chat-commit-utilities.d.ts.map +1 -0
  152. package/dist/components/chat-commit-utilities.js +31 -0
  153. package/dist/components/chat-commit-utilities.js.map +1 -0
  154. package/dist/components/chat-cost-utilities.d.ts +62 -0
  155. package/dist/components/chat-cost-utilities.d.ts.map +1 -0
  156. package/dist/components/chat-cost-utilities.js +66 -0
  157. package/dist/components/chat-cost-utilities.js.map +1 -0
  158. package/dist/components/chat-effort-utilities.d.ts +96 -0
  159. package/dist/components/chat-effort-utilities.d.ts.map +1 -0
  160. package/dist/components/chat-effort-utilities.js +97 -0
  161. package/dist/components/chat-effort-utilities.js.map +1 -0
  162. package/dist/components/chat-help-utilities.d.ts +89 -0
  163. package/dist/components/chat-help-utilities.d.ts.map +1 -0
  164. package/dist/components/chat-help-utilities.js +131 -0
  165. package/dist/components/chat-help-utilities.js.map +1 -0
  166. package/dist/components/chat-model-mode-utilities.d.ts +143 -0
  167. package/dist/components/chat-model-mode-utilities.d.ts.map +1 -0
  168. package/dist/components/chat-model-mode-utilities.js +191 -0
  169. package/dist/components/chat-model-mode-utilities.js.map +1 -0
  170. package/dist/components/chat-models-utilities.d.ts +98 -0
  171. package/dist/components/chat-models-utilities.d.ts.map +1 -0
  172. package/dist/components/chat-models-utilities.js +136 -0
  173. package/dist/components/chat-models-utilities.js.map +1 -0
  174. package/dist/components/chat-report-utilities.d.ts +149 -0
  175. package/dist/components/chat-report-utilities.d.ts.map +1 -0
  176. package/dist/components/chat-report-utilities.js +151 -0
  177. package/dist/components/chat-report-utilities.js.map +1 -0
  178. package/dist/components/chat-scripts-utilities.d.ts +140 -0
  179. package/dist/components/chat-scripts-utilities.d.ts.map +1 -0
  180. package/dist/components/chat-scripts-utilities.js +158 -0
  181. package/dist/components/chat-scripts-utilities.js.map +1 -0
  182. package/dist/components/chat-settings-utilities.d.ts +72 -0
  183. package/dist/components/chat-settings-utilities.d.ts.map +1 -0
  184. package/dist/components/chat-settings-utilities.js +56 -0
  185. package/dist/components/chat-settings-utilities.js.map +1 -0
  186. package/dist/components/chat-share-utilities.d.ts +104 -0
  187. package/dist/components/chat-share-utilities.d.ts.map +1 -0
  188. package/dist/components/chat-share-utilities.js +90 -0
  189. package/dist/components/chat-share-utilities.js.map +1 -0
  190. package/dist/components/chat-skills-utilities.d.ts +242 -0
  191. package/dist/components/chat-skills-utilities.d.ts.map +1 -0
  192. package/dist/components/chat-skills-utilities.js +433 -0
  193. package/dist/components/chat-skills-utilities.js.map +1 -0
  194. package/dist/components/chat-stream-utilities.d.ts +74 -0
  195. package/dist/components/chat-stream-utilities.d.ts.map +1 -0
  196. package/dist/components/chat-stream-utilities.js +103 -0
  197. package/dist/components/chat-stream-utilities.js.map +1 -0
  198. package/dist/components/chat-tips-utilities.d.ts +108 -0
  199. package/dist/components/chat-tips-utilities.d.ts.map +1 -0
  200. package/dist/components/chat-tips-utilities.js +137 -0
  201. package/dist/components/chat-tips-utilities.js.map +1 -0
  202. package/dist/components/device-cycle.d.ts +84 -0
  203. package/dist/components/device-cycle.d.ts.map +1 -0
  204. package/dist/components/device-cycle.js +77 -0
  205. package/dist/components/device-cycle.js.map +1 -0
  206. package/dist/components/index.d.ts +36 -0
  207. package/dist/components/index.d.ts.map +1 -0
  208. package/dist/components/index.js +33 -0
  209. package/dist/components/index.js.map +1 -0
  210. package/dist/components/tool-call-utilities.d.ts +69 -0
  211. package/dist/components/tool-call-utilities.d.ts.map +1 -0
  212. package/dist/components/tool-call-utilities.js +368 -0
  213. package/dist/components/tool-call-utilities.js.map +1 -0
  214. package/dist/components/user-avatar-utilities.d.ts +41 -0
  215. package/dist/components/user-avatar-utilities.d.ts.map +1 -0
  216. package/dist/components/user-avatar-utilities.js +56 -0
  217. package/dist/components/user-avatar-utilities.js.map +1 -0
  218. package/dist/components/workspace-layout-utilities.d.ts +37 -0
  219. package/dist/components/workspace-layout-utilities.d.ts.map +1 -0
  220. package/dist/components/workspace-layout-utilities.js +58 -0
  221. package/dist/components/workspace-layout-utilities.js.map +1 -0
  222. package/dist/customEventCards.d.ts +117 -0
  223. package/dist/customEventCards.d.ts.map +1 -0
  224. package/dist/customEventCards.js +36 -0
  225. package/dist/customEventCards.js.map +1 -0
  226. package/dist/hooks/index.d.ts +8 -0
  227. package/dist/hooks/index.d.ts.map +1 -0
  228. package/dist/hooks/index.js +8 -0
  229. package/dist/hooks/index.js.map +1 -0
  230. package/dist/hooks/useKeyboardShortcuts.d.ts +48 -0
  231. package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  232. package/dist/hooks/useKeyboardShortcuts.js +112 -0
  233. package/dist/hooks/useKeyboardShortcuts.js.map +1 -0
  234. package/dist/hooks/useViewport.d.ts +42 -0
  235. package/dist/hooks/useViewport.d.ts.map +1 -0
  236. package/dist/hooks/useViewport.js +61 -0
  237. package/dist/hooks/useViewport.js.map +1 -0
  238. package/dist/index.d.ts +75 -0
  239. package/dist/index.d.ts.map +1 -0
  240. package/dist/index.js +74 -0
  241. package/dist/index.js.map +1 -0
  242. package/dist/settings-metadata.d.ts +78 -0
  243. package/dist/settings-metadata.d.ts.map +1 -0
  244. package/dist/settings-metadata.js +131 -0
  245. package/dist/settings-metadata.js.map +1 -0
  246. package/dist/types.d.ts +751 -0
  247. package/dist/types.d.ts.map +1 -0
  248. package/dist/types.js +25 -0
  249. package/dist/types.js.map +1 -0
  250. package/package.json +90 -0
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Auto-commit button — the commit bar's green commit action.
3
+ *
4
+ * Renders whenever auto-commit is ENABLED, occupying the commit bar's button
5
+ * slot (the blue manual `/commit` button remains for auto-commit-off projects
6
+ * and for the committing/committed status states). Two looks, one button:
7
+ *
8
+ * - **Idle / quiet phase** — a green "Commit" button. Clicking it commits
9
+ * immediately, exactly like the blue button.
10
+ * - **Final countdown** — once the debounce enters its last
11
+ * `AUTO_COMMIT_COUNTDOWN_VISIBLE_SECONDS` seconds it morphs into the live
12
+ * "Auto-commit in Ns" label (still click-to-commit-now). The countdown is
13
+ * deliberately NOT shown for the whole debounce: a bare "12s" pill told
14
+ * users nothing — the button is always a labeled commit action, and the
15
+ * countdown only takes over right before the auto-commit fires.
16
+ *
17
+ * **Disabled while the agent is working.** Committing mid-turn is unsafe — it
18
+ * would stage a half-written tree and races the chat stream's own writes to the
19
+ * conversation. So while a turn is streaming (or an auto-fix follow-up is
20
+ * pending) the button is shown muted and inert: the commit bar still tracks the
21
+ * changing files live, but the commit itself waits until the turn finishes. In
22
+ * that state it always reads "Commit" (a held countdown is paused, not
23
+ * imminent), never the countdown label.
24
+ *
25
+ * Renders nothing when auto-commit is off (`/autocommit 0`).
26
+ *
27
+ * Visually it is the blue `/commit` button, but green: the same compact
28
+ * translucent-bordered, 6px rounded-rectangle button with the same fontSize /
29
+ * padding / transition, recolored from the theme's success token (no hardcoded
30
+ * green, no pulse animation).
31
+ *
32
+ * @module
33
+ */
34
+ import type { JSX } from 'react';
35
+ import type { AutoCommitState } from './chat-autocommit-utilities.js';
36
+ /**
37
+ * Renders the green auto-commit button while auto-commit is enabled: a "Commit"
38
+ * button that morphs into the live countdown for the debounce's final seconds.
39
+ * Clicking it commits now. Muted and inert while `disabled` (the agent is
40
+ * working). Renders nothing when auto-commit is off.
41
+ *
42
+ * @param props - Component props.
43
+ * (a turn is streaming / an auto-fix is pending): committing mid-turn is
44
+ * unsafe, so the click is suppressed and the label stays "Commit".
45
+ * in normal flow — e.g. occupying the commit bar's button slot — instead of a
46
+ * floating button absolutely positioned over the input area.
47
+ * @returns The rendered button, or `null` when auto-commit is disabled.
48
+ */
49
+ export declare function AutoCommitBadge({ state, onCommitNow, disabled, inline, }: {
50
+ state: AutoCommitState;
51
+ onCommitNow: () => void;
52
+ disabled?: boolean;
53
+ inline?: boolean;
54
+ }): JSX.Element | null;
55
+ export declare namespace AutoCommitBadge {
56
+ var displayName: string;
57
+ }
58
+ //# sourceMappingURL=AutoCommitBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutoCommitBadge.d.ts","sourceRoot":"","sources":["../../src/components/AutoCommitBadge.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAIhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAkBrE;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,WAAW,EACX,QAAgB,EAChB,MAAc,GACf,EAAE;IACD,KAAK,EAAE,eAAe,CAAA;IACtB,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAiErB;yBA3Ee,eAAe"}
@@ -0,0 +1,78 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { t } from '@molecule/app-i18n';
3
+ import { formatAutoCommitBadge, isAutoCommitCountdownVisible, isAutoCommitEnabled, } from './chat-autocommit-utilities.js';
4
+ /** The theme's success color, with a sensible fallback. */
5
+ const SUCCESS_COLOR = 'var(--mol-color-success, #16a34a)';
6
+ /** A lighter success color for the hover state (mirrors the blue button's brighter hover). */
7
+ const SUCCESS_COLOR_BRIGHT = 'color-mix(in srgb, var(--mol-color-success, #16a34a) 70%, #ffffff)';
8
+ /** The theme's success color (with the same fallback) at a given opacity, via color-mix. */
9
+ function successTint(percent) {
10
+ return `color-mix(in srgb, var(--mol-color-success, #16a34a) ${percent}%, transparent)`;
11
+ }
12
+ /**
13
+ * Renders the green auto-commit button while auto-commit is enabled: a "Commit"
14
+ * button that morphs into the live countdown for the debounce's final seconds.
15
+ * Clicking it commits now. Muted and inert while `disabled` (the agent is
16
+ * working). Renders nothing when auto-commit is off.
17
+ *
18
+ * @param props - Component props.
19
+ * (a turn is streaming / an auto-fix is pending): committing mid-turn is
20
+ * unsafe, so the click is suppressed and the label stays "Commit".
21
+ * in normal flow — e.g. occupying the commit bar's button slot — instead of a
22
+ * floating button absolutely positioned over the input area.
23
+ * @returns The rendered button, or `null` when auto-commit is disabled.
24
+ */
25
+ export function AutoCommitBadge({ state, onCommitNow, disabled = false, inline = false, }) {
26
+ if (!isAutoCommitEnabled(state))
27
+ return null;
28
+ // A held countdown is paused, not imminent — never show the countdown label
29
+ // while disabled, only the plain "Commit".
30
+ const showCountdown = !disabled && isAutoCommitCountdownVisible(state);
31
+ const commitLabel = t('ide.chat.commit', undefined, { defaultValue: 'Commit' });
32
+ const countdownLabel = t('ide.chat.autoCommit.badge', { countdown: formatAutoCommitBadge(state) }, { defaultValue: 'Auto-commit in {{countdown}}' });
33
+ return (_jsx("button", { type: "button", "data-mol-id": "chat-autocommit-badge", disabled: disabled, onClick: (e) => {
34
+ // Stop the click from bubbling to the commit-bar header's toggle
35
+ // (setCommitBarExpanded) — clicking the button should only commit,
36
+ // not expand/collapse the uncommitted-files bar (P5-06).
37
+ // Mirrors the manual commit button, which already stops propagation.
38
+ e.stopPropagation();
39
+ if (disabled)
40
+ return;
41
+ onCommitNow();
42
+ }, "aria-label": showCountdown ? `${countdownLabel} — ${commitLabel}` : commitLabel, title: showCountdown ? commitLabel : undefined, onMouseEnter: (e) => {
43
+ if (disabled)
44
+ return;
45
+ e.currentTarget.style.background = successTint(30);
46
+ e.currentTarget.style.borderColor = successTint(65);
47
+ e.currentTarget.style.color = SUCCESS_COLOR_BRIGHT;
48
+ }, onMouseLeave: (e) => {
49
+ if (disabled)
50
+ return;
51
+ e.currentTarget.style.background = successTint(20);
52
+ e.currentTarget.style.borderColor = successTint(40);
53
+ e.currentTarget.style.color = SUCCESS_COLOR;
54
+ }, style: {
55
+ // Inline (commit-bar slot) sits in normal flow; the default floats over
56
+ // the input's top-right so it never blocks typing.
57
+ ...(inline
58
+ ? { position: 'relative' }
59
+ : { position: 'absolute', top: -10, right: 8, zIndex: 50 }),
60
+ // The blue /commit button, but green (theme success token, not literal green).
61
+ display: 'inline-flex',
62
+ alignItems: 'center',
63
+ justifyContent: 'center',
64
+ fontSize: 12,
65
+ padding: '4px 10px',
66
+ borderRadius: 6,
67
+ border: `1px solid ${successTint(40)}`,
68
+ background: successTint(20),
69
+ color: SUCCESS_COLOR,
70
+ // Muted + inert while the agent is working; committing mid-turn is unsafe.
71
+ cursor: disabled ? 'not-allowed' : 'pointer',
72
+ opacity: disabled ? 0.5 : 1,
73
+ fontVariantNumeric: 'tabular-nums',
74
+ transition: 'background 100ms, border-color 100ms, color 100ms',
75
+ }, children: showCountdown ? countdownLabel : commitLabel }));
76
+ }
77
+ AutoCommitBadge.displayName = 'AutoCommitBadge';
78
+ //# sourceMappingURL=AutoCommitBadge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutoCommitBadge.js","sourceRoot":"","sources":["../../src/components/AutoCommitBadge.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * AI chat panel — Claude Code-style.
3
+ *
4
+ * Features:
5
+ * - Conversation history dropdown with search + new chat
6
+ * - Markdown rendering for assistant messages
7
+ * - Thinking block with toggle (when backend sends thinking events)
8
+ * - Compact tool-call rows (see ToolCallCard)
9
+ * - @ file mention: type @ to attach a project file as context
10
+ * - / command menu: /clear clears history
11
+ * - Auto-resizing textarea (grows up to 200 px)
12
+ * - Voice dictation via Web Speech API (hidden when unsupported)
13
+ * - Commit button at bottom of messages; commit records appear inline
14
+ * - Escape: close menus or abort the active stream
15
+ *
16
+ * @module
17
+ */
18
+ import type { JSX } from 'react';
19
+ import type { ChatMessage } from '@molecule/app-ai-chat';
20
+ import type { ChatPanelProps, IdeClientAction } from '../types.js';
21
+ import type { Activity } from './activity-utilities.js';
22
+ import type { ModelMode } from './chat-model-mode-utilities.js';
23
+ interface CommitCard {
24
+ id: string;
25
+ message: string;
26
+ files: string[];
27
+ timestamp: number;
28
+ status: 'running' | 'done' | 'error';
29
+ hash?: string;
30
+ }
31
+ interface ModelPicker {
32
+ selectedIdx: number;
33
+ /**
34
+ * When set, the picker is scoped to a mode: selections persist to that
35
+ * mode's settings field (`planModel` / `executeModel` / `commitModel` /
36
+ * `compactModel`) and the free-tier lock follows the mode's rules. Unset =
37
+ * the legacy single `chatModel` ("Default"). Driven live by the mode
38
+ * dropdown at the top of the picker; the `/model --plan` etc. flags merely
39
+ * preselect it.
40
+ */
41
+ mode?: ModelMode;
42
+ }
43
+ /**
44
+ * Expandable tool-call-style card displaying a commit with its files.
45
+ * @param props - Component props (see {@link MessageItemProps}).
46
+ * @returns The rendered commit card element.
47
+ */
48
+ export declare function CommitCardItem({ card, onRevert, }: {
49
+ card: CommitCard;
50
+ onRevert?: (hash: string) => Promise<string | undefined>;
51
+ }): JSX.Element;
52
+ /** Props for the memoized per-message timeline row (see {@link MessageItem}). */
53
+ export interface MessageItemProps {
54
+ msg: ChatMessage;
55
+ editingQueuedId: string | null;
56
+ editingQueuedText: string;
57
+ setEditingQueuedId: React.Dispatch<React.SetStateAction<string | null>>;
58
+ setEditingQueuedText: React.Dispatch<React.SetStateAction<string>>;
59
+ editQueuedMessage: (id: string, content: string) => void;
60
+ deleteQueuedMessage: (id: string) => void;
61
+ sendMessage: (msg: string) => void;
62
+ handleAskUserResponse: (response: string) => void;
63
+ isLoading: boolean;
64
+ /**
65
+ * Transient background-phase label (e.g. "Type-checking the API") shown in the
66
+ * streaming spinner in place of the generic rotating messages; null when idle.
67
+ */
68
+ streamingStatus: string | null;
69
+ /** Navigates the preview to a route path when a `[label](/route)` link in a message is clicked. */
70
+ onNavigatePreview?: (path: string) => void;
71
+ undoneTcIds: Set<string>;
72
+ handleUndoToggle: (tcId: string, undone: boolean) => void;
73
+ onFileOpen?: (path: string) => void;
74
+ onFileDoubleClick?: (path: string) => void;
75
+ onFileDiff?: (path: string, diff?: {
76
+ original: string;
77
+ modified: string;
78
+ }) => void;
79
+ handleFileRevert: (path: string, content: string) => Promise<void>;
80
+ setInputAndCursorEnd: (val: string) => void;
81
+ setModelPicker: React.Dispatch<React.SetStateAction<ModelPicker | null>>;
82
+ /** Signed-in user's avatar shown beside their own messages (SOC1); icon fallback when absent/unsafe. */
83
+ userAvatar?: string | null;
84
+ /** When set, the user avatar becomes clickable and fires this to open the user's profile (C5). */
85
+ onAvatarClick?: () => void;
86
+ /** Discovery phase — gives consecutive question/answer cards roomier, uncollapsed spacing (B3). */
87
+ discovery?: boolean;
88
+ /**
89
+ * Host-supplied upgrade/sign-in CTA builder — used to give the in-message
90
+ * resource-limit (OOM) banner its sign-in/upgrade buttons. See
91
+ * {@link ChatPanelProps.buildUpgradeCta}.
92
+ */
93
+ buildUpgradeCta?: ChatPanelProps['buildUpgradeCta'];
94
+ }
95
+ /** Props for the inner chat surface (timeline + composer), remounted per conversation. */
96
+ export interface ChatInnerProps {
97
+ projectId: string;
98
+ endpoint: string;
99
+ initialMessage?: string;
100
+ onInitialMessageSent?: () => void;
101
+ isPro?: boolean;
102
+ /** Host-supplied upgrade/sign-in CTA builder — see {@link ChatPanelProps.buildUpgradeCta}. */
103
+ buildUpgradeCta?: ChatPanelProps['buildUpgradeCta'];
104
+ /** Host-supplied `/help` upgrade section builder — see {@link ChatPanelProps.buildHelpUpgradeSection}. */
105
+ buildHelpUpgradeSection?: ChatPanelProps['buildHelpUpgradeSection'];
106
+ activeFile?: string | null;
107
+ openTabs?: string[];
108
+ onFileOpen?: (path: string, opts?: {
109
+ focus?: boolean;
110
+ }) => void;
111
+ onFileDoubleClick?: (path: string) => void;
112
+ onFileDiff?: (path: string, diff?: {
113
+ original: string;
114
+ modified: string;
115
+ }) => void;
116
+ onFileRevert?: (path: string, content: string) => Promise<void>;
117
+ onFileChange?: (path: string, content: string) => void;
118
+ onFileDeleted?: (path: string) => void;
119
+ onCommit?: () => void;
120
+ onConversationId?: (id: string) => void;
121
+ /** Called when an inline activity card is clicked — should open the Activity panel filtered to this activity. */
122
+ onActivityClick?: (activity: Activity) => void;
123
+ /** Called when a user avatar in the chat timeline is clicked — see {@link ChatPanelProps.onProfileClick}. */
124
+ onProfileClick?: ChatPanelProps['onProfileClick'];
125
+ /** Called on the `ready_to_build` stream event — discovery is done; boot the sandbox. */
126
+ onReadyToBuild?: () => void;
127
+ /** True after the plan streams but while the sandbox is still booting (pre-kickoff) — drives the chat "waiting for environment" indicator. */
128
+ awaitingSandboxBoot?: boolean;
129
+ /** Called on the `client_action` stream event — the agent wants a preview reload/navigate or a file opened. */
130
+ onClientAction?: (action: IdeClientAction) => void;
131
+ /** Called on each stream done/error — host keeps the boot view up until the during-boot plan stream completes. */
132
+ onTurnComplete?: () => void;
133
+ /** Called when the chat's loading state changes — see {@link ChatPanelProps.onLoadingChange}. */
134
+ onLoadingChange?: (loading: boolean) => void;
135
+ /** Navigates the preview to a route path on a chat link click — see {@link ChatPanelProps.onNavigatePreview}. */
136
+ onNavigatePreview?: (path: string) => void;
137
+ /** Registers the broadcast-chat-event handler with the host — see {@link ChatPanelProps.onRegisterPushHandler}. */
138
+ onRegisterPushHandler?: ChatPanelProps['onRegisterPushHandler'];
139
+ /** Changing this value submits the current input draft (used by the prompt→chat morph). */
140
+ autoSubmitSignal?: number;
141
+ /** Changing this value opens the `/settings` view (used by the header gear button). */
142
+ openSettingsSignal?: number;
143
+ /** Shows a "manage your own models" row in the `/model` picker — see {@link ChatPanelProps.onManageCustomModels}. */
144
+ onManageCustomModels?: () => void;
145
+ /** Changing this value opens the `/report` bug-report modal (used by the header bug button). */
146
+ openReportSignal?: number;
147
+ /** Changing this value opens the `/share` link modal (used by the header share button). */
148
+ openShareSignal?: number;
149
+ /** Seeds the input with this text on mount (prompt→chat morph). */
150
+ initialInputValue?: string;
151
+ pendingMessage?: string;
152
+ pendingMessageKey?: number;
153
+ /** When true, the pending message is sent on the user's behalf (e.g. the post-boot build kickoff) and is NOT rendered as a user bubble — phase cards convey what's happening instead. */
154
+ pendingMessageSuppressUser?: boolean;
155
+ /** When true, the pending message was directly requested by the user (a "Fix with AI" button) — it bypasses (and clears) a prior user Stop. See {@link ChatPanelProps.pendingMessageUserInitiated}. */
156
+ pendingMessageUserInitiated?: boolean;
157
+ /** File path edited by the user in the editor — triggers auto-deletion of queued autofix messages referencing this file. */
158
+ userEditedFile?: string;
159
+ userEditedFileKey?: number;
160
+ gitStatusTick?: number;
161
+ /** True during the initial discovery phase — suppresses the onboarding/idle tip cards so no blue tip shows during discovery (mvp B1). */
162
+ discovery?: boolean;
163
+ /** Signed-in user's avatar shown beside their own messages (SOC1) — see {@link ChatPanelProps.userAvatar}. */
164
+ userAvatar?: string | null;
165
+ /** Display name of the AI coding agent — see {@link ChatPanelProps.agentName}. */
166
+ agentName?: string;
167
+ /** Display name of the host product / IDE — see {@link ChatPanelProps.productName}. */
168
+ productName?: string;
169
+ /** Host app/build version for /version — see {@link ChatPanelProps.version}. */
170
+ version?: string;
171
+ /** Command-menu "Report a problem" URL — see {@link ChatPanelProps.feedbackUrl}. */
172
+ feedbackUrl?: string;
173
+ }
174
+ /**
175
+ * AI chat panel with conversation history dropdown and Claude Code-style tool display.
176
+ * @param props - Component props (see {@link MessageItemProps}).
177
+ * @returns The rendered chat panel element.
178
+ */
179
+ export declare function ChatPanel({ projectId, endpoint, initialMessage, onInitialMessageSent, activeFile, openTabs, onFileOpen, onFileDoubleClick, onFileDiff, onFileRevert, onFileChange, onFileDeleted, onCommit, onActivityClick, onProfileClick, onReadyToBuild, awaitingSandboxBoot, onClientAction, onTurnComplete, onLoadingChange, onNavigatePreview, onRegisterPushHandler, autoSubmitSignal, initialInputValue, hideConversationMenu, renderConversationHeader, conversationId: controlledConversationId, chatKey: controlledChatKey, onConversationId: controlledOnConversationId, openShareSignal: controlledShareSignal, openReportSignal: controlledReportSignal, openSettingsSignal: controlledSettingsSignal, onManageCustomModels, gitStatusTick, pendingMessage, pendingMessageKey, pendingMessageSuppressUser, pendingMessageUserInitiated, userEditedFile, userEditedFileKey, isPro, buildUpgradeCta, buildHelpUpgradeSection, userAvatar, agentName, productName, version, feedbackUrl, className, }: ChatPanelProps): JSX.Element;
180
+ export declare namespace ChatPanel {
181
+ var displayName: string;
182
+ }
183
+ export {};
184
+ //# sourceMappingURL=ChatPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../src/components/ChatPanel.tsx"],"names":[],"mappings":"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"}