@molecule/app-ide-react 1.17.0 → 1.18.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.
- package/dist/components/ActivityCard.d.ts.map +1 -1
- package/dist/components/ActivityCard.js +5 -1
- package/dist/components/ActivityCard.js.map +1 -1
- package/dist/components/AutoCommitBadge.d.ts +6 -4
- package/dist/components/AutoCommitBadge.d.ts.map +1 -1
- package/dist/components/AutoCommitBadge.js +13 -36
- package/dist/components/AutoCommitBadge.js.map +1 -1
- package/dist/components/BackgroundTasksStrip.d.ts +17 -0
- package/dist/components/BackgroundTasksStrip.d.ts.map +1 -0
- package/dist/components/BackgroundTasksStrip.js +56 -0
- package/dist/components/BackgroundTasksStrip.js.map +1 -0
- package/dist/components/ChatPanel.d.ts.map +1 -1
- package/dist/components/ChatPanel.js +179 -206
- package/dist/components/ChatPanel.js.map +1 -1
- package/dist/components/DeviceFrameSelector.d.ts.map +1 -1
- package/dist/components/DeviceFrameSelector.js +12 -2
- package/dist/components/DeviceFrameSelector.js.map +1 -1
- package/dist/components/FileExplorer.d.ts.map +1 -1
- package/dist/components/FileExplorer.js +11 -8
- package/dist/components/FileExplorer.js.map +1 -1
- package/dist/components/FileExplorerContextMenu.d.ts.map +1 -1
- package/dist/components/FileExplorerContextMenu.js +4 -1
- package/dist/components/FileExplorerContextMenu.js.map +1 -1
- package/dist/components/HelpCard.d.ts.map +1 -1
- package/dist/components/HelpCard.js +5 -1
- package/dist/components/HelpCard.js.map +1 -1
- package/dist/components/KeyboardShortcutsPanel.d.ts.map +1 -1
- package/dist/components/KeyboardShortcutsPanel.js +31 -9
- package/dist/components/KeyboardShortcutsPanel.js.map +1 -1
- package/dist/components/MarkdownContent.d.ts.map +1 -1
- package/dist/components/MarkdownContent.js +10 -7
- package/dist/components/MarkdownContent.js.map +1 -1
- package/dist/components/PreviewPanel.d.ts.map +1 -1
- package/dist/components/PreviewPanel.js +52 -27
- package/dist/components/PreviewPanel.js.map +1 -1
- package/dist/components/QuickPicker.d.ts.map +1 -1
- package/dist/components/QuickPicker.js +11 -4
- package/dist/components/QuickPicker.js.map +1 -1
- package/dist/components/RelevantSkillSuggestion.d.ts.map +1 -1
- package/dist/components/RelevantSkillSuggestion.js +24 -7
- package/dist/components/RelevantSkillSuggestion.js.map +1 -1
- package/dist/components/ReportModal.d.ts.map +1 -1
- package/dist/components/ReportModal.js +4 -1
- package/dist/components/ReportModal.js.map +1 -1
- package/dist/components/ScriptsCard.d.ts.map +1 -1
- package/dist/components/ScriptsCard.js +6 -4
- package/dist/components/ScriptsCard.js.map +1 -1
- package/dist/components/SearchPanel.d.ts.map +1 -1
- package/dist/components/SearchPanel.js +65 -54
- package/dist/components/SearchPanel.js.map +1 -1
- package/dist/components/SettingsCard.d.ts.map +1 -1
- package/dist/components/SettingsCard.js +1 -1
- package/dist/components/SettingsCard.js.map +1 -1
- package/dist/components/ShareLinkManager.d.ts.map +1 -1
- package/dist/components/ShareLinkManager.js +5 -5
- package/dist/components/ShareLinkManager.js.map +1 -1
- package/dist/components/ShareModal.js +1 -1
- package/dist/components/ShareModal.js.map +1 -1
- package/dist/components/SidebarTabs.d.ts.map +1 -1
- package/dist/components/SidebarTabs.js +7 -5
- package/dist/components/SidebarTabs.js.map +1 -1
- package/dist/components/SkillsCard.d.ts.map +1 -1
- package/dist/components/SkillsCard.js +15 -7
- package/dist/components/SkillsCard.js.map +1 -1
- package/dist/components/TabBar.d.ts.map +1 -1
- package/dist/components/TabBar.js +11 -6
- package/dist/components/TabBar.js.map +1 -1
- package/dist/components/TestsCard.js +4 -4
- package/dist/components/TestsCard.js.map +1 -1
- package/dist/components/TipCard.d.ts.map +1 -1
- package/dist/components/TipCard.js +6 -2
- package/dist/components/TipCard.js.map +1 -1
- package/dist/components/ToolCallCard.d.ts.map +1 -1
- package/dist/components/ToolCallCard.js +89 -46
- package/dist/components/ToolCallCard.js.map +1 -1
- package/dist/components/UserAvatar.d.ts.map +1 -1
- package/dist/components/UserAvatar.js +9 -1
- package/dist/components/UserAvatar.js.map +1 -1
- package/dist/components/tool-call-utilities.d.ts.map +1 -1
- package/dist/components/tool-call-utilities.js +46 -2
- package/dist/components/tool-call-utilities.js.map +1 -1
- package/package.json +15 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityCard.d.ts","sourceRoot":"","sources":["../../src/components/ActivityCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAMhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAUvD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,QAAQ,EAAE,QAAQ,CAAA;IAClB,kGAAkG;IAClG,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAA;CAC/C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"ActivityCard.d.ts","sourceRoot":"","sources":["../../src/components/ActivityCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAMhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAUvD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,QAAQ,EAAE,QAAQ,CAAA;IAClB,kGAAkG;IAClG,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAA;CAC/C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAsF1F"}
|
|
@@ -15,7 +15,11 @@ export function ActivityCard({ activity, onActivityClick }) {
|
|
|
15
15
|
const isCoarse = useCoarsePointer();
|
|
16
16
|
const pill = activityStatusColors(activity.status);
|
|
17
17
|
const clickable = Boolean(onActivityClick);
|
|
18
|
-
return (_jsxs("button", { type: "button", "data-mol-id": `activity-card-${activity.id}`, "data-activity-type": activity.type, "data-activity-status": activity.status, onClick: clickable ? () => onActivityClick(activity) : undefined, "aria-label": t('ide.activity.cardAria', undefined, { defaultValue: 'View captured activity' }), className: cm.cn(cm.textSize('xs'), cm.w('full')),
|
|
18
|
+
return (_jsxs("button", { type: "button", "data-mol-id": `activity-card-${activity.id}`, "data-activity-type": activity.type, "data-activity-status": activity.status, onClick: clickable ? () => onActivityClick(activity) : undefined, "aria-label": t('ide.activity.cardAria', undefined, { defaultValue: 'View captured activity' }), className: cm.cn(cm.textSize('xs'), cm.w('full')),
|
|
19
|
+
/* mol-bespoke-button: the whole CARD is the click target, sharing the
|
|
20
|
+
chat cards' chrome via chatCardStyle() — a clickable card, not a CTA;
|
|
21
|
+
its one design-token property is the inherited card colour. */
|
|
22
|
+
style: {
|
|
19
23
|
display: 'flex',
|
|
20
24
|
alignItems: 'center',
|
|
21
25
|
gap: 8,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityCard.js","sourceRoot":"","sources":["../../src/components/ActivityCard.tsx"],"names":[],"mappings":";AAaA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAYhC;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAqB;IAC3E,MAAM,EAAE,GAAG,WAAW,EAAE,CAAA;IACxB,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAA;IACnC,MAAM,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAE1C,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,iBACA,iBAAiB,QAAQ,CAAC,EAAE,EAAE,wBACvB,QAAQ,CAAC,IAAI,0BACX,QAAQ,CAAC,MAAM,EACrC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,eAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,gBACrD,CAAC,CAAC,uBAAuB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,wBAAwB,EAAE,CAAC,EAC7F,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"ActivityCard.js","sourceRoot":"","sources":["../../src/components/ActivityCard.tsx"],"names":[],"mappings":";AAaA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAYhC;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAqB;IAC3E,MAAM,EAAE,GAAG,WAAW,EAAE,CAAA;IACxB,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAA;IACnC,MAAM,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAE1C,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,iBACA,iBAAiB,QAAQ,CAAC,EAAE,EAAE,wBACvB,QAAQ,CAAC,IAAI,0BACX,QAAQ,CAAC,MAAM,EACrC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,eAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,gBACrD,CAAC,CAAC,uBAAuB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,wBAAwB,EAAE,CAAC,EAC7F,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACjD;;yEAEiE;QACjE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,CAAC;YACN,4EAA4E;YAC5E,0EAA0E;YAC1E,YAAY,EAAE,EAAE;YAChB,wEAAwE;YACxE,+EAA+E;YAC/E,GAAG,aAAa,EAAE;YAClB,2EAA2E;YAC3E,GAAG,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACzC,KAAK,EAAE,SAAS;YAChB,UAAU,EAAE,oBAAoB;SACjC,EACD,YAAY,EACV,SAAS;YACP,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;gBACJ,CAAC;gBAAC,CAAC,CAAC,aAA6B,CAAC,KAAK,CAAC,WAAW,GAAG,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;YACrF,CAAC;YACH,CAAC,CAAC,SAAS,EAEf,YAAY,EACV,SAAS;YACP,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;gBACJ,CAAC;gBAAC,CAAC,CAAC,aAA6B,CAAC,KAAK,CAAC,WAAW,GAAG,cAAc,EAAE,CAAA;YACxE,CAAC;YACH,CAAC,CAAC,SAAS,aAGf,KAAC,IAAI,IACH,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EACrC,IAAI,EAAE,mBAAmB,iBACb,MAAM,EAClB,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,GACxB,EACF,eACE,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC5B,KAAK,EAAE;oBACL,IAAI,EAAE,CAAC;oBACP,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,QAAQ;oBAClB,YAAY,EAAE,UAAU;oBACxB,UAAU,EAAE,QAAQ;iBACrB,YAEA,mBAAmB,CAAC,QAAQ,CAAC,GACzB,EACP,8BACe,mBAAmB,QAAQ,CAAC,EAAE,EAAE,EAC7C,KAAK,EAAE;oBACL,UAAU,EAAE,CAAC;oBACb,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,GAAG;oBACf,aAAa,EAAE,WAAW;oBAC1B,aAAa,EAAE,QAAQ;oBACvB,OAAO,EAAE,SAAS;oBAClB,YAAY,EAAE,GAAG;oBACjB,KAAK,EAAE,IAAI,CAAC,EAAE;oBACd,UAAU,EAAE,IAAI,CAAC,EAAE;iBACpB,YAEA,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,GAChC,IACA,CACV,CAAA;AACH,CAAC"}
|
|
@@ -24,10 +24,12 @@
|
|
|
24
24
|
*
|
|
25
25
|
* Renders nothing when auto-commit is off (`/autocommit 0`).
|
|
26
26
|
*
|
|
27
|
-
* Visually it
|
|
28
|
-
*
|
|
29
|
-
* padding
|
|
30
|
-
*
|
|
27
|
+
* Visually it IS the manual `/commit` button, but green: both render the design
|
|
28
|
+
* system's `cm.button({ variant: 'solid', size: 'xs' })` — identical height,
|
|
29
|
+
* radius, padding and type scale — and differ only in the semantic colour
|
|
30
|
+
* (`success` here, `primary` there). Nothing about the box model is written by
|
|
31
|
+
* hand, so the two can never drift apart again, and neither can drift from the
|
|
32
|
+
* tests bar's button one strip above. No hardcoded green, no pulse animation.
|
|
31
33
|
*
|
|
32
34
|
* @module
|
|
33
35
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoCommitBadge.d.ts","sourceRoot":"","sources":["../../src/components/AutoCommitBadge.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"AutoCommitBadge.d.ts","sourceRoot":"","sources":["../../src/components/AutoCommitBadge.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAKhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAOrE;;;;;;;;;;;;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,CAmDrB;yBA7De,eAAe"}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { t } from '@molecule/app-i18n';
|
|
3
|
+
import { getClassMap } from '@molecule/app-ui';
|
|
3
4
|
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
5
|
/**
|
|
13
6
|
* Renders the green auto-commit button while auto-commit is enabled: a "Commit"
|
|
14
7
|
* button that morphs into the live countdown for the debounce's final seconds.
|
|
@@ -23,6 +16,7 @@ function successTint(percent) {
|
|
|
23
16
|
* @returns The rendered button, or `null` when auto-commit is disabled.
|
|
24
17
|
*/
|
|
25
18
|
export function AutoCommitBadge({ state, onCommitNow, disabled = false, inline = false, }) {
|
|
19
|
+
const cm = getClassMap();
|
|
26
20
|
if (!isAutoCommitEnabled(state))
|
|
27
21
|
return null;
|
|
28
22
|
// A held countdown is paused, not imminent — never show the countdown label
|
|
@@ -30,7 +24,13 @@ export function AutoCommitBadge({ state, onCommitNow, disabled = false, inline =
|
|
|
30
24
|
const showCountdown = !disabled && isAutoCommitCountdownVisible(state);
|
|
31
25
|
const commitLabel = t('ide.chat.commit', undefined, { defaultValue: 'Commit' });
|
|
32
26
|
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,
|
|
27
|
+
return (_jsx("button", { type: "button", "data-mol-id": "chat-autocommit-badge", disabled: disabled,
|
|
28
|
+
// The manual commit button's exact treatment, recolored to the SUCCESS
|
|
29
|
+
// semantic. The CVA owns hover/active/focus-visible AND the disabled look
|
|
30
|
+
// (`disabled:opacity-50 disabled:pointer-events-none`), so the real
|
|
31
|
+
// `disabled` attribute above is the whole "muted + inert" story — no
|
|
32
|
+
// hand-written hover handlers, no cursor/opacity overrides.
|
|
33
|
+
className: cm.cn(cm.button({ variant: 'solid', color: 'success', size: 'xs' }), cm.touchTargetCompact), onClick: (e) => {
|
|
34
34
|
// Stop the click from bubbling to the commit-bar header's toggle
|
|
35
35
|
// (setCommitBarExpanded) — clicking the button should only commit,
|
|
36
36
|
// not expand/collapse the uncommitted-files bar (P5-06).
|
|
@@ -39,39 +39,16 @@ export function AutoCommitBadge({ state, onCommitNow, disabled = false, inline =
|
|
|
39
39
|
if (disabled)
|
|
40
40
|
return;
|
|
41
41
|
onCommitNow();
|
|
42
|
-
}, "aria-label": showCountdown ? `${countdownLabel} — ${commitLabel}` : commitLabel, title: showCountdown ? commitLabel : undefined,
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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: {
|
|
42
|
+
}, "aria-label": showCountdown ? `${countdownLabel} — ${commitLabel}` : commitLabel, title: showCountdown ? commitLabel : undefined,
|
|
43
|
+
// ONLY what the ClassMap cannot express: where the button sits, and the
|
|
44
|
+
// tabular figures that stop the countdown label jittering as it ticks.
|
|
45
|
+
style: {
|
|
55
46
|
// Inline (commit-bar slot) sits in normal flow; the default floats over
|
|
56
47
|
// the input's top-right so it never blocks typing.
|
|
57
48
|
...(inline
|
|
58
49
|
? { position: 'relative' }
|
|
59
50
|
: { 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
51
|
fontVariantNumeric: 'tabular-nums',
|
|
74
|
-
transition: 'background 100ms, border-color 100ms, color 100ms',
|
|
75
52
|
}, children: showCountdown ? countdownLabel : commitLabel }));
|
|
76
53
|
}
|
|
77
54
|
AutoCommitBadge.displayName = 'AutoCommitBadge';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoCommitBadge.js","sourceRoot":"","sources":["../../src/components/AutoCommitBadge.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"AutoCommitBadge.js","sourceRoot":"","sources":["../../src/components/AutoCommitBadge.tsx"],"names":[],"mappings":";AAsCA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,gCAAgC,CAAA;AAEvC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,WAAW,EACX,QAAQ,GAAG,KAAK,EAChB,MAAM,GAAG,KAAK,GAMf;IACC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAA;IACxB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5C,4EAA4E;IAC5E,2CAA2C;IAC3C,MAAM,aAAa,GAAG,CAAC,QAAQ,IAAI,4BAA4B,CAAC,KAAK,CAAC,CAAA;IACtE,MAAM,WAAW,GAAG,CAAC,CAAC,iBAAiB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC/E,MAAM,cAAc,GAAG,CAAC,CACtB,2BAA2B,EAC3B,EAAE,SAAS,EAAE,qBAAqB,CAAC,KAAK,CAAC,EAAE,EAC3C,EAAE,YAAY,EAAE,8BAA8B,EAAE,CACjD,CAAA;IACD,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,iBACD,uBAAuB,EACnC,QAAQ,EAAE,QAAQ;QAClB,uEAAuE;QACvE,0EAA0E;QAC1E,oEAAoE;QACpE,qEAAqE;QACrE,4DAA4D;QAC5D,SAAS,EAAE,EAAE,CAAC,EAAE,CACd,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAC7D,EAAE,CAAC,kBAAkB,CACtB,EACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,iEAAiE;YACjE,mEAAmE;YACnE,yDAAyD;YACzD,qEAAqE;YACrE,CAAC,CAAC,eAAe,EAAE,CAAA;YACnB,IAAI,QAAQ;gBAAE,OAAM;YACpB,WAAW,EAAE,CAAA;QACf,CAAC,gBACW,aAAa,CAAC,CAAC,CAAC,GAAG,cAAc,MAAM,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,EAC9E,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QAC9C,wEAAwE;QACxE,uEAAuE;QACvE,KAAK,EAAE;YACL,wEAAwE;YACxE,mDAAmD;YACnD,GAAG,CAAC,MAAM;gBACR,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE;gBAC1B,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAC7D,kBAAkB,EAAE,cAAc;SACnC,YAEA,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,GACtC,CACV,CAAA;AACH,CAAC;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type JSX } from 'react';
|
|
2
|
+
import type { BackgroundTaskState } from '@molecule/app-ai-chat';
|
|
3
|
+
/**
|
|
4
|
+
* The commands running in the sandbox that outlived the tool call that started
|
|
5
|
+
* them.
|
|
6
|
+
*
|
|
7
|
+
* `exec_command` with `run_in_background` returns a handle immediately, so the
|
|
8
|
+
* tool call's own card goes green while the command is still running — a test
|
|
9
|
+
* suite can be four minutes from its verdict with nothing on screen saying so.
|
|
10
|
+
* This strip is the one place that state is visible: what is running, how long
|
|
11
|
+
* it has been running, and how each one ended.
|
|
12
|
+
*/
|
|
13
|
+
export declare function BackgroundTasksStrip({ tasks, }: {
|
|
14
|
+
/** Every background command of the current turn, newest last. */
|
|
15
|
+
tasks: BackgroundTaskState[];
|
|
16
|
+
}): JSX.Element | null;
|
|
17
|
+
//# sourceMappingURL=BackgroundTasksStrip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackgroundTasksStrip.d.ts","sourceRoot":"","sources":["../../src/components/BackgroundTasksStrip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAuB,MAAM,OAAO,CAAA;AAErD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAKhE;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,GACN,EAAE;IACD,iEAAiE;IACjE,KAAK,EAAE,mBAAmB,EAAE,CAAA;CAC7B,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAgGrB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import { t } from '@molecule/app-i18n';
|
|
4
|
+
import { getClassMap } from '@molecule/app-ui';
|
|
5
|
+
import { Icon } from '@molecule/app-ui-react';
|
|
6
|
+
/**
|
|
7
|
+
* The commands running in the sandbox that outlived the tool call that started
|
|
8
|
+
* them.
|
|
9
|
+
*
|
|
10
|
+
* `exec_command` with `run_in_background` returns a handle immediately, so the
|
|
11
|
+
* tool call's own card goes green while the command is still running — a test
|
|
12
|
+
* suite can be four minutes from its verdict with nothing on screen saying so.
|
|
13
|
+
* This strip is the one place that state is visible: what is running, how long
|
|
14
|
+
* it has been running, and how each one ended.
|
|
15
|
+
*/
|
|
16
|
+
export function BackgroundTasksStrip({ tasks, }) {
|
|
17
|
+
const cm = getClassMap();
|
|
18
|
+
const [expanded, setExpanded] = useState(false);
|
|
19
|
+
// Re-render once a second so the elapsed time on a running command counts up.
|
|
20
|
+
const [, tick] = useState(0);
|
|
21
|
+
const running = tasks.filter((task) => task.status === 'running');
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (running.length === 0)
|
|
24
|
+
return;
|
|
25
|
+
const timer = setInterval(() => tick((n) => n + 1), 1000);
|
|
26
|
+
return () => clearInterval(timer);
|
|
27
|
+
}, [running.length]);
|
|
28
|
+
if (tasks.length === 0)
|
|
29
|
+
return null;
|
|
30
|
+
const failed = tasks.filter((task) => task.status === 'failed');
|
|
31
|
+
const summary = running.length > 0
|
|
32
|
+
? t('ide.chat.backgroundRunning', { count: running.length }, { defaultValue: '{{count}} task running in the background' })
|
|
33
|
+
: failed.length > 0
|
|
34
|
+
? t('ide.chat.backgroundFailed', { count: failed.length }, { defaultValue: '{{count}} background task failed' })
|
|
35
|
+
: t('ide.chat.backgroundDone', { count: tasks.length }, { defaultValue: '{{count}} background task finished' });
|
|
36
|
+
return (_jsxs("div", { "data-mol-id": "chat-background-tasks", className: cm.cn(cm.shrink0, cm.borderT), style: { padding: '6px 12px', fontSize: 12 }, children: [_jsxs("button", { type: "button", "data-mol-id": "chat-background-tasks-toggle", onClick: () => setExpanded((open) => !open), className: cm.cn(cm.button({ color: 'secondary', size: 'sm' }), cm.touchTargetCompact), style: { display: 'flex', alignItems: 'center', gap: 8, width: '100%' }, children: [_jsx(Icon, { name: running.length > 0 ? 'sync' : failed.length > 0 ? 'x-circle' : 'check-circle', size: 14, className: running.length > 0 ? cm.textMuted : failed.length > 0 ? cm.textError : cm.textSuccess }), _jsx("span", { className: cm.textMuted, children: summary }), _jsx(Icon, { name: expanded ? 'chevron-up' : 'chevron-down', size: 12, className: cm.textMuted, style: { marginLeft: 'auto' } })] }), expanded && (_jsx("ul", { style: { listStyle: 'none', margin: '6px 0 0', padding: 0 }, children: tasks.map((task) => (_jsxs("li", { "data-mol-id": "chat-background-task", style: { display: 'flex', alignItems: 'baseline', gap: 8, padding: '2px 0' }, children: [_jsx(Icon, { name: task.kind === 'agent' ? 'search' : 'chevron-right', size: 11, className: cm.textMuted }), _jsx("code", { className: cm.textMuted, style: {
|
|
37
|
+
flex: 1,
|
|
38
|
+
minWidth: 0,
|
|
39
|
+
overflow: 'hidden',
|
|
40
|
+
textOverflow: 'ellipsis',
|
|
41
|
+
whiteSpace: 'nowrap',
|
|
42
|
+
}, title: task.command, children: task.command }), _jsx("span", { className: cm.textMuted, children: describe(task) })] }, task.id))) }))] }));
|
|
43
|
+
}
|
|
44
|
+
/** The right-hand status for one command: how long it ran, and how it ended. */
|
|
45
|
+
function describe(task) {
|
|
46
|
+
const seconds = Math.max(0, Math.round(((task.finishedAt ?? Date.now()) - task.startedAt) / 1000));
|
|
47
|
+
const elapsed = seconds < 60 ? `${seconds}s` : `${Math.floor(seconds / 60)}m ${seconds % 60}s`;
|
|
48
|
+
if (task.status === 'running') {
|
|
49
|
+
return t('ide.chat.backgroundElapsed', { elapsed }, { defaultValue: 'running · {{elapsed}}' });
|
|
50
|
+
}
|
|
51
|
+
if (task.status === 'failed') {
|
|
52
|
+
return t('ide.chat.backgroundExit', { code: task.exitCode ?? 1, elapsed }, { defaultValue: 'exit {{code}} · {{elapsed}}' });
|
|
53
|
+
}
|
|
54
|
+
return t('ide.chat.backgroundOk', { elapsed }, { defaultValue: 'done · {{elapsed}}' });
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=BackgroundTasksStrip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackgroundTasksStrip.js","sourceRoot":"","sources":["../../src/components/BackgroundTasksStrip.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../src/components/ChatPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAa,MAAM,OAAO,CAAA;AAY3C,OAAO,KAAK,EAAa,WAAW,EAAmB,MAAM,uBAAuB,CAAA;AAyCpF,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,EAIhB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../src/components/ChatPanel.tsx"],"names":[],"mappings":"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"}
|