@industry-theme/xterm-terminal-panel 0.1.0 → 0.1.2

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/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export { TerminalPanel } from './src/panels/TerminalPanel';
8
8
  export { TabbedTerminalPanel } from './src/panels/TabbedTerminalPanel';
9
9
  export type { TerminalTabContentRef } from './src/panels/TabbedTerminalPanel';
10
10
  export { panels, onPackageLoad, onPackageUnload } from './src/panel-exports';
11
+ export { terminalPanelTools, terminalPanelToolsMetadata, createTerminalSessionTool, writeToTerminalTool, closeTerminalSessionTool, clearTerminalTool, focusTerminalTool, } from './src/panel-exports';
11
12
  export type { PanelDefinition, PanelMetadata, PanelComponentProps, PanelContextValue, PanelActions, PanelEventEmitter, TerminalSessionInfo, CreateTerminalSessionOptions, TerminalPanelActions, TerminalEventType, TerminalScope, TerminalPanelProps, TerminalTab, TabbedTerminalPanelProps, OwnershipStatus, OwnershipResult, PortReadyData, } from './src/panel-types';
12
13
  export { getTerminalSessions, getTerminalSession, isTerminalLoading, getRepositoryPath, getWorkspacePath, getTerminalDirectory, getTerminalSlice, } from './src/panel-types';
13
14
  export type { Theme } from '@principal-ade/industry-theme';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAGzF,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAG7E,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAG9E,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG7E,YAAY,EACV,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,4BAA4B,EAC5B,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAO3B,YAAY,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAG3D,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrF,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAGzF,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAG7E,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAG9E,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG7E,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACV,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,4BAA4B,EAC5B,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAO3B,YAAY,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAG3D,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrF,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -724,9 +724,9 @@ function useThemedTerminal() {
724
724
  };
725
725
  }
726
726
  // src/panels/TerminalPanel.tsx
727
- import { useEffect as useEffect2, useRef as useRef2, useState as useState2 } from "react";
728
- import { Lock, Unlock, ArrowDown } from "lucide-react";
729
727
  import { useTheme as useTheme3 } from "@principal-ade/industry-theme";
728
+ import { Lock, Unlock, ArrowDown } from "lucide-react";
729
+ import { useEffect as useEffect2, useRef as useRef2, useState as useState2 } from "react";
730
730
 
731
731
  // src/panel-types/index.ts
732
732
  function getTerminalSessions(context) {
@@ -1078,15 +1078,15 @@ var TerminalPanel = ({
1078
1078
  });
1079
1079
  };
1080
1080
  // src/panels/TabbedTerminalPanel.tsx
1081
+ import { useTheme as useTheme4 } from "@principal-ade/industry-theme";
1082
+ import { Terminal as TerminalIcon2, X as X2, Plus, Lock as Lock2, Unlock as Unlock2, Box, Boxes } from "lucide-react";
1081
1083
  import React, {
1082
1084
  useState as useState3,
1083
1085
  useCallback,
1084
1086
  useEffect as useEffect3,
1085
1087
  useRef as useRef3
1086
1088
  } from "react";
1087
- import { Terminal as TerminalIcon2, X as X2, Plus, Lock as Lock2, Unlock as Unlock2, ArrowDown as ArrowDown2, Box, Boxes } from "lucide-react";
1088
- import { useTheme as useTheme4 } from "@principal-ade/industry-theme";
1089
- import { jsx as jsx4, jsxs as jsxs3, Fragment as Fragment2 } from "react/jsx-runtime";
1089
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
1090
1090
  var TerminalTabContentInner = ({ tab, sessionId, isActive, isVisible, actions, terminalContext, onSessionCreated, onScrollPositionChange, isForeign = false }, ref) => {
1091
1091
  const terminalRef = useRef3(null);
1092
1092
  const [localSessionId, setLocalSessionId] = useState3(sessionId);
@@ -1303,7 +1303,8 @@ var TabbedTerminalPanel = ({
1303
1303
  onTabsChange,
1304
1304
  initialTabs = [],
1305
1305
  showAllTerminals = false,
1306
- onShowAllTerminalsChange
1306
+ onShowAllTerminalsChange,
1307
+ tabLabelPrefix
1307
1308
  }) => {
1308
1309
  const { theme } = useTheme4();
1309
1310
  const [ownedTabs, setOwnedTabs] = useState3(initialTabs);
@@ -1312,25 +1313,24 @@ var TabbedTerminalPanel = ({
1312
1313
  const [sessionIds, setSessionIds] = useState3(new Map);
1313
1314
  const [hoveredTabId, setHoveredTabId] = useState3(null);
1314
1315
  const [scrollPositions, setScrollPositions] = useState3(new Map);
1316
+ const getOwnedTabLabel = useCallback((index, directory2) => {
1317
+ if (tabLabelPrefix) {
1318
+ return `${tabLabelPrefix} ${index + 1}`;
1319
+ }
1320
+ return directory2.split("/").pop() || directory2;
1321
+ }, [tabLabelPrefix]);
1315
1322
  const tabs = React.useMemo(() => {
1323
+ const labeledOwnedTabs = ownedTabs.map((tab, index) => ({
1324
+ ...tab,
1325
+ label: getOwnedTabLabel(index, tab.directory)
1326
+ }));
1316
1327
  const sortedForeignTabs = [...foreignTabs].sort((a, b) => a.label.localeCompare(b.label));
1317
- return [...ownedTabs, ...sortedForeignTabs];
1318
- }, [ownedTabs, foreignTabs]);
1328
+ return [...labeledOwnedTabs, ...sortedForeignTabs];
1329
+ }, [ownedTabs, foreignTabs, getOwnedTabLabel]);
1319
1330
  const tabRefsMap = useRef3(new Map);
1320
1331
  const hasInitializedRef = useRef3(false);
1321
1332
  const isCreatingTabRef = useRef3(false);
1322
1333
  const headerRef = useRef3(null);
1323
- const [isCompact, setIsCompact] = useState3(false);
1324
- useEffect3(() => {
1325
- if (!headerRef.current)
1326
- return;
1327
- const observer = new ResizeObserver((entries) => {
1328
- const width = entries[0]?.contentRect.width ?? 0;
1329
- setIsCompact(width < 400);
1330
- });
1331
- observer.observe(headerRef.current);
1332
- return () => observer.disconnect();
1333
- }, []);
1334
1334
  const handleTabScrollPositionChange = useCallback((tabId, position) => {
1335
1335
  setScrollPositions((prev) => new Map(prev).set(tabId, position));
1336
1336
  }, []);
@@ -1339,12 +1339,6 @@ var TabbedTerminalPanel = ({
1339
1339
  isAtBottom: true,
1340
1340
  isScrollLocked: false
1341
1341
  };
1342
- const activeScrollPosition = activeTabId ? scrollPositions.get(activeTabId) ?? defaultScrollPosition : undefined;
1343
- const handleScrollToBottom = useCallback(() => {
1344
- if (activeTabId) {
1345
- tabRefsMap.current.get(activeTabId)?.scrollToBottom();
1346
- }
1347
- }, [activeTabId]);
1348
1342
  const handleToggleScrollLock = useCallback(() => {
1349
1343
  if (activeTabId) {
1350
1344
  tabRefsMap.current.get(activeTabId)?.toggleScrollLock();
@@ -1708,11 +1702,44 @@ var TabbedTerminalPanel = ({
1708
1702
  /* @__PURE__ */ jsx4("span", {
1709
1703
  title: tab.directory,
1710
1704
  children: tab.label
1705
+ }),
1706
+ tab.isActive && /* @__PURE__ */ jsx4("button", {
1707
+ onClick: (e) => {
1708
+ e.stopPropagation();
1709
+ handleToggleScrollLock();
1710
+ },
1711
+ style: {
1712
+ display: "flex",
1713
+ alignItems: "center",
1714
+ justifyContent: "center",
1715
+ width: "16px",
1716
+ height: "16px",
1717
+ borderRadius: "3px",
1718
+ border: "none",
1719
+ backgroundColor: "transparent",
1720
+ cursor: "pointer",
1721
+ color: (scrollPositions.get(tab.id) ?? defaultScrollPosition).isScrollLocked ? theme.colors.success : theme.colors.warning,
1722
+ padding: 0,
1723
+ position: "absolute",
1724
+ right: "8px"
1725
+ },
1726
+ onMouseEnter: (e) => {
1727
+ e.currentTarget.style.backgroundColor = theme.colors.backgroundTertiary;
1728
+ },
1729
+ onMouseLeave: (e) => {
1730
+ e.currentTarget.style.backgroundColor = "transparent";
1731
+ },
1732
+ title: (scrollPositions.get(tab.id) ?? defaultScrollPosition).isScrollLocked ? "Scroll locked" : "Scroll unlocked",
1733
+ children: (scrollPositions.get(tab.id) ?? defaultScrollPosition).isScrollLocked ? /* @__PURE__ */ jsx4(Lock2, {
1734
+ size: 10
1735
+ }) : /* @__PURE__ */ jsx4(Unlock2, {
1736
+ size: 10
1737
+ })
1711
1738
  })
1712
1739
  ]
1713
1740
  }, tab.id))
1714
1741
  }),
1715
- /* @__PURE__ */ jsxs3("div", {
1742
+ /* @__PURE__ */ jsx4("div", {
1716
1743
  style: {
1717
1744
  display: "flex",
1718
1745
  alignItems: "center",
@@ -1722,95 +1749,31 @@ var TabbedTerminalPanel = ({
1722
1749
  borderBottom: `1px solid ${theme.colors.border}`,
1723
1750
  boxSizing: "border-box"
1724
1751
  },
1725
- children: [
1726
- activeTabId && activeScrollPosition && /* @__PURE__ */ jsxs3(Fragment2, {
1727
- children: [
1728
- /* @__PURE__ */ jsxs3("button", {
1729
- onClick: handleToggleScrollLock,
1730
- style: {
1731
- display: "flex",
1732
- alignItems: "center",
1733
- gap: "4px",
1734
- fontSize: "11px",
1735
- padding: isCompact ? "4px 6px" : "4px 8px",
1736
- borderRadius: "4px",
1737
- backgroundColor: activeScrollPosition.isScrollLocked ? `${theme.colors.success}22` : `${theme.colors.warning}22`,
1738
- color: activeScrollPosition.isScrollLocked ? theme.colors.success : theme.colors.warning,
1739
- border: `1px solid ${activeScrollPosition.isScrollLocked ? `${theme.colors.success}44` : `${theme.colors.warning}44`}`,
1740
- cursor: "pointer",
1741
- transition: "opacity 0.2s"
1742
- },
1743
- onMouseEnter: (e) => e.currentTarget.style.opacity = "0.8",
1744
- onMouseLeave: (e) => e.currentTarget.style.opacity = "1",
1745
- title: activeScrollPosition.isScrollLocked ? "Click to unlock scroll" : "Click to lock scroll to bottom",
1746
- children: [
1747
- activeScrollPosition.isScrollLocked ? /* @__PURE__ */ jsx4(Lock2, {
1748
- size: 12
1749
- }) : /* @__PURE__ */ jsx4(Unlock2, {
1750
- size: 12
1751
- }),
1752
- !isCompact && /* @__PURE__ */ jsx4("span", {
1753
- children: activeScrollPosition.isScrollLocked ? "Locked" : "Unlocked"
1754
- })
1755
- ]
1756
- }),
1757
- /* @__PURE__ */ jsxs3("button", {
1758
- onClick: handleScrollToBottom,
1759
- disabled: activeScrollPosition.isAtBottom,
1760
- style: {
1761
- display: "flex",
1762
- alignItems: "center",
1763
- gap: "4px",
1764
- fontSize: "11px",
1765
- padding: isCompact ? "4px 6px" : "4px 8px",
1766
- borderRadius: "4px",
1767
- backgroundColor: activeScrollPosition.isAtBottom ? theme.colors.backgroundHover : theme.colors.accent,
1768
- color: activeScrollPosition.isAtBottom ? theme.colors.textTertiary : theme.colors.text,
1769
- border: `1px solid ${theme.colors.border}`,
1770
- cursor: activeScrollPosition.isAtBottom ? "not-allowed" : "pointer",
1771
- transition: "opacity 0.2s",
1772
- opacity: activeScrollPosition.isAtBottom ? 0.5 : 1
1773
- },
1774
- onMouseEnter: (e) => !activeScrollPosition.isAtBottom && (e.currentTarget.style.opacity = "0.8"),
1775
- onMouseLeave: (e) => !activeScrollPosition.isAtBottom && (e.currentTarget.style.opacity = "1"),
1776
- title: "Scroll to bottom and lock",
1777
- children: [
1778
- /* @__PURE__ */ jsx4(ArrowDown2, {
1779
- size: 12
1780
- }),
1781
- !isCompact && /* @__PURE__ */ jsx4("span", {
1782
- children: "Bottom"
1783
- })
1784
- ]
1785
- })
1786
- ]
1787
- }),
1788
- /* @__PURE__ */ jsx4("button", {
1789
- onClick: () => addNewTab(),
1790
- style: {
1791
- display: "flex",
1792
- alignItems: "center",
1793
- justifyContent: "center",
1794
- width: "28px",
1795
- height: "28px",
1796
- border: "none",
1797
- borderRadius: "4px",
1798
- backgroundColor: "transparent",
1799
- cursor: "pointer",
1800
- color: theme.colors.textSecondary
1801
- },
1802
- onMouseEnter: (e) => {
1803
- e.currentTarget.style.backgroundColor = theme.colors.backgroundTertiary;
1804
- },
1805
- onMouseLeave: (e) => {
1806
- e.currentTarget.style.backgroundColor = "transparent";
1807
- },
1808
- title: "New terminal (Cmd+T)",
1809
- children: /* @__PURE__ */ jsx4(Plus, {
1810
- size: 14
1811
- })
1752
+ children: /* @__PURE__ */ jsx4("button", {
1753
+ onClick: () => addNewTab(),
1754
+ style: {
1755
+ display: "flex",
1756
+ alignItems: "center",
1757
+ justifyContent: "center",
1758
+ width: "28px",
1759
+ height: "28px",
1760
+ border: "none",
1761
+ borderRadius: "4px",
1762
+ backgroundColor: "transparent",
1763
+ cursor: "pointer",
1764
+ color: theme.colors.textSecondary
1765
+ },
1766
+ onMouseEnter: (e) => {
1767
+ e.currentTarget.style.backgroundColor = theme.colors.backgroundTertiary;
1768
+ },
1769
+ onMouseLeave: (e) => {
1770
+ e.currentTarget.style.backgroundColor = "transparent";
1771
+ },
1772
+ title: "New terminal (Cmd+T)",
1773
+ children: /* @__PURE__ */ jsx4(Plus, {
1774
+ size: 14
1812
1775
  })
1813
- ]
1776
+ })
1814
1777
  })
1815
1778
  ]
1816
1779
  }),
@@ -1882,6 +1845,154 @@ var TabbedTerminalPanel = ({
1882
1845
  });
1883
1846
  };
1884
1847
  TabbedTerminalPanel.displayName = "TabbedTerminalPanel";
1848
+ // src/tools/index.ts
1849
+ var createTerminalSessionTool = {
1850
+ name: "create_terminal_session",
1851
+ description: "Creates a new terminal session in the specified directory",
1852
+ inputs: {
1853
+ type: "object",
1854
+ properties: {
1855
+ cwd: {
1856
+ type: "string",
1857
+ description: "The working directory for the terminal session"
1858
+ },
1859
+ name: {
1860
+ type: "string",
1861
+ description: "Optional name for the terminal session"
1862
+ }
1863
+ },
1864
+ required: ["cwd"]
1865
+ },
1866
+ outputs: {
1867
+ type: "object",
1868
+ properties: {
1869
+ success: { type: "boolean" },
1870
+ sessionId: { type: "string" }
1871
+ }
1872
+ },
1873
+ tags: ["terminal", "session", "create"],
1874
+ tool_call_template: {
1875
+ call_template_type: "panel_event",
1876
+ event_type: "industry-theme.terminal-panel:create-session"
1877
+ }
1878
+ };
1879
+ var writeToTerminalTool = {
1880
+ name: "write_to_terminal",
1881
+ description: "Writes data to an active terminal session",
1882
+ inputs: {
1883
+ type: "object",
1884
+ properties: {
1885
+ sessionId: {
1886
+ type: "string",
1887
+ description: "The ID of the terminal session to write to"
1888
+ },
1889
+ data: {
1890
+ type: "string",
1891
+ description: "The data to write to the terminal"
1892
+ }
1893
+ },
1894
+ required: ["sessionId", "data"]
1895
+ },
1896
+ outputs: {
1897
+ type: "object",
1898
+ properties: {
1899
+ success: { type: "boolean" }
1900
+ }
1901
+ },
1902
+ tags: ["terminal", "write", "input"],
1903
+ tool_call_template: {
1904
+ call_template_type: "panel_event",
1905
+ event_type: "industry-theme.terminal-panel:write"
1906
+ }
1907
+ };
1908
+ var closeTerminalSessionTool = {
1909
+ name: "close_terminal_session",
1910
+ description: "Closes an active terminal session",
1911
+ inputs: {
1912
+ type: "object",
1913
+ properties: {
1914
+ sessionId: {
1915
+ type: "string",
1916
+ description: "The ID of the terminal session to close"
1917
+ }
1918
+ },
1919
+ required: ["sessionId"]
1920
+ },
1921
+ outputs: {
1922
+ type: "object",
1923
+ properties: {
1924
+ success: { type: "boolean" }
1925
+ }
1926
+ },
1927
+ tags: ["terminal", "session", "close"],
1928
+ tool_call_template: {
1929
+ call_template_type: "panel_event",
1930
+ event_type: "industry-theme.terminal-panel:close-session"
1931
+ }
1932
+ };
1933
+ var clearTerminalTool = {
1934
+ name: "clear_terminal",
1935
+ description: "Clears the terminal screen",
1936
+ inputs: {
1937
+ type: "object",
1938
+ properties: {
1939
+ sessionId: {
1940
+ type: "string",
1941
+ description: "The ID of the terminal session to clear"
1942
+ }
1943
+ },
1944
+ required: ["sessionId"]
1945
+ },
1946
+ outputs: {
1947
+ type: "object",
1948
+ properties: {
1949
+ success: { type: "boolean" }
1950
+ }
1951
+ },
1952
+ tags: ["terminal", "clear"],
1953
+ tool_call_template: {
1954
+ call_template_type: "panel_event",
1955
+ event_type: "industry-theme.terminal-panel:clear"
1956
+ }
1957
+ };
1958
+ var focusTerminalTool = {
1959
+ name: "focus_terminal",
1960
+ description: "Focuses the terminal panel and brings it to the foreground",
1961
+ inputs: {
1962
+ type: "object",
1963
+ properties: {
1964
+ sessionId: {
1965
+ type: "string",
1966
+ description: "The ID of the terminal session to focus"
1967
+ }
1968
+ }
1969
+ },
1970
+ outputs: {
1971
+ type: "object",
1972
+ properties: {
1973
+ success: { type: "boolean" }
1974
+ }
1975
+ },
1976
+ tags: ["terminal", "focus", "navigation"],
1977
+ tool_call_template: {
1978
+ call_template_type: "panel_event",
1979
+ event_type: "industry-theme.terminal-panel:focus"
1980
+ }
1981
+ };
1982
+ var terminalPanelTools = [
1983
+ createTerminalSessionTool,
1984
+ writeToTerminalTool,
1985
+ closeTerminalSessionTool,
1986
+ clearTerminalTool,
1987
+ focusTerminalTool
1988
+ ];
1989
+ var terminalPanelToolsMetadata = {
1990
+ id: "industry-theme.terminal-panel",
1991
+ name: "Terminal Panel",
1992
+ description: "Tools provided by the xterm terminal panel extension",
1993
+ tools: terminalPanelTools
1994
+ };
1995
+
1885
1996
  // src/panel-exports.ts
1886
1997
  var panels = [
1887
1998
  {
@@ -1892,7 +2003,8 @@ var panels = [
1892
2003
  version: "0.1.0",
1893
2004
  author: "Principal",
1894
2005
  description: "Integrated terminal emulator with industry theming",
1895
- slices: ["terminal"]
2006
+ slices: ["terminal"],
2007
+ tools: terminalPanelTools
1896
2008
  },
1897
2009
  component: TerminalPanel,
1898
2010
  onMount: async (context) => {
@@ -1913,7 +2025,10 @@ var onPackageUnload = async () => {
1913
2025
  console.log("Panel package unloading - Terminal Panel Extension");
1914
2026
  };
1915
2027
  export {
2028
+ writeToTerminalTool,
1916
2029
  useThemedTerminal,
2030
+ terminalPanelToolsMetadata,
2031
+ terminalPanelTools,
1917
2032
  panels,
1918
2033
  onPackageUnload,
1919
2034
  onPackageLoad,
@@ -1925,7 +2040,11 @@ export {
1925
2040
  getTerminalDirectory,
1926
2041
  getTerminalCSSVariables,
1927
2042
  getRepositoryPath,
2043
+ focusTerminalTool,
1928
2044
  createTerminalTheme,
2045
+ createTerminalSessionTool,
2046
+ closeTerminalSessionTool,
2047
+ clearTerminalTool,
1929
2048
  ThemedTerminalWithProvider,
1930
2049
  ThemedTerminal,
1931
2050
  TerminalPanel,
@@ -1 +1 @@
1
- {"version":3,"file":"panelContext.d.ts","sourceRoot":"","sources":["../../../src/mocks/panelContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EAGjB,mBAAmB,EACnB,oBAAoB,EAGrB,MAAM,gBAAgB,CAAC;AAKxB,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAUrD,CAAC;AAuEF,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,iBAAiB,CAAC,KACrC,iBAqEF,CAAC;AAKF,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,oBAAoB,CAAC,KACxC,oBAwCD,CAAC;AAKH,eAAO,MAAM,gBAAgB,QAAO,iBAwCnC,CAAC;AASF,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1D,gBAAgB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClD,CA+CA,CAAC"}
1
+ {"version":3,"file":"panelContext.d.ts","sourceRoot":"","sources":["../../../src/mocks/panelContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EAGjB,mBAAmB,EACnB,oBAAoB,EAGrB,MAAM,gBAAgB,CAAC;AAKxB,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAUrD,CAAC;AAuEF,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,iBAAiB,CAAC,KACrC,iBAqEF,CAAC;AAKF,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,oBAAoB,CAAC,KACxC,oBAwCD,CAAC;AAKH,eAAO,MAAM,gBAAgB,QAAO,iBAwCnC,CAAC;AASF,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1D,gBAAgB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClD,CA+CA,CAAC"}
@@ -1,7 +1,8 @@
1
- import { TabbedTerminalPanel } from './panels/TabbedTerminalPanel';
2
1
  import type { PanelDefinition } from './panel-types';
2
+ import { TabbedTerminalPanel } from './panels/TabbedTerminalPanel';
3
3
  export declare const panels: PanelDefinition[];
4
4
  export declare const onPackageLoad: () => Promise<void>;
5
5
  export declare const onPackageUnload: () => Promise<void>;
6
6
  export { TabbedTerminalPanel };
7
+ export { terminalPanelTools, terminalPanelToolsMetadata, createTerminalSessionTool, writeToTerminalTool, closeTerminalSessionTool, clearTerminalTool, focusTerminalTool, } from './tools';
7
8
  //# sourceMappingURL=panel-exports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"panel-exports.d.ts","sourceRoot":"","sources":["../../src/panel-exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,eAAe,CAAC;AAMxE,eAAO,MAAM,MAAM,EAAE,eAAe,EAkCnC,CAAC;AAMF,eAAO,MAAM,aAAa,qBAGzB,CAAC;AAMF,eAAO,MAAM,eAAe,qBAG3B,CAAC;AAGF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"panel-exports.d.ts","sourceRoot":"","sources":["../../src/panel-exports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAQnE,eAAO,MAAM,MAAM,EAAE,eAAe,EAmCnC,CAAC;AAMF,eAAO,MAAM,aAAa,qBAGzB,CAAC;AAMF,eAAO,MAAM,eAAe,qBAG3B,CAAC;AAGF,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAG/B,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
@@ -86,5 +86,6 @@ export interface TabbedTerminalPanelProps extends Omit<TerminalPanelProps, 'term
86
86
  initialTabs?: TerminalTab[];
87
87
  showAllTerminals?: boolean;
88
88
  onShowAllTerminalsChange?: (showAll: boolean) => void;
89
+ tabLabelPrefix?: string;
89
90
  }
90
91
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/panel-types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/panel-types/index.ts"],"names":[],"mappings":"AAQA,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EACV,YAAY,IAAI,gBAAgB,EAChC,iBAAiB,EACjB,SAAS,EACV,MAAM,qCAAqC,CAAC;AAK7C,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,uBAAuB,GACvB,qBAAqB,CAAC;AAM1B,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,4BAA4B;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAKD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAE5D,qBAAqB,CAAC,EAAE,CACtB,OAAO,CAAC,EAAE,4BAA4B,KACnC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAG9D,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAG1F,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAU5C,mBAAmB,CAAC,EAAE,CACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,KACvD,MAAM,IAAI,CAAC;IAGhB,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACzE,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAC1F,wBAAwB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAO3E,eAAe,CAAC,EAAE,CAChB,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,KACtE,MAAM,IAAI,CAAC;IAGhB,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAO1D,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAShG,cAAc,CAAC,EAAE,CACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,KAC7B,MAAM,IAAI,CAAC;IAGhB,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;CAC7D;AAMD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,iBAAiB,GACzB,mBAAmB,EAAE,CAGvB;AAKD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,MAAM,GAChB,mBAAmB,GAAG,SAAS,CAGjC;AAKD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAErE;AAOD,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,WAAW,CAAC;AAKvD,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,OAAO,qCAAqC,EAAE,mBAAmB,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACnJ,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,MAAM,EAAE,OAAO,qCAAqC,EAAE,iBAAiB,CAAC;IAQxE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAKD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAE3E;AAKD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAE1E;AAKD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,iBAAiB,EAC1B,aAAa,GAAE,aAA4B,GAC1C,MAAM,GAAG,IAAI,CASf;AAKD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,iBAAiB,GACzB,SAAS,CAAC,mBAAmB,EAAE,CAAC,GAAG,SAAS,CAE9C;AAKD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAKD,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,eAAe,CAAC;IAMzF,eAAe,EAAE,MAAM,CAAC;IAKxB,SAAS,EAAE,MAAM,CAAC;IAMlB,UAAU,CAAC,EAAE,OAAO,CAAC;IAMrB,SAAS,CAAC,EAAE,OAAO,CAAC;IAKpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAK7C,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;IAM5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAK3B,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAQtD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EACV,wBAAwB,EAGzB,MAAM,gBAAgB,CAAC;AAsBxB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAgUD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA+tBlE,CAAC"}
1
+ {"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAKN,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EACV,wBAAwB,EAGzB,MAAM,gBAAgB,CAAC;AAuBxB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AA+TD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAsrBlE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TerminalPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,gBAAgB,CAAC;AAoBxE,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA0ZtD,CAAC"}
1
+ {"version":3,"file":"TerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TerminalPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,gBAAgB,CAAC;AAqBxE,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAyZtD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { PanelTool, PanelToolsMetadata } from '@principal-ade/utcp-panel-event';
2
+ export declare const createTerminalSessionTool: PanelTool;
3
+ export declare const writeToTerminalTool: PanelTool;
4
+ export declare const closeTerminalSessionTool: PanelTool;
5
+ export declare const clearTerminalTool: PanelTool;
6
+ export declare const focusTerminalTool: PanelTool;
7
+ export declare const terminalPanelTools: PanelTool[];
8
+ export declare const terminalPanelToolsMetadata: PanelToolsMetadata;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAKrF,eAAO,MAAM,yBAAyB,EAAE,SA6BvC,CAAC;AAKF,eAAO,MAAM,mBAAmB,EAAE,SA4BjC,CAAC;AAKF,eAAO,MAAM,wBAAwB,EAAE,SAwBtC,CAAC;AAKF,eAAO,MAAM,iBAAiB,EAAE,SAwB/B,CAAC;AAKF,eAAO,MAAM,iBAAiB,EAAE,SAuB/B,CAAC;AAKF,eAAO,MAAM,kBAAkB,EAAE,SAAS,EAMzC,CAAC;AAKF,eAAO,MAAM,0BAA0B,EAAE,kBAKxC,CAAC"}
@@ -0,0 +1,156 @@
1
+ // src/tools/index.ts
2
+ var createTerminalSessionTool = {
3
+ name: "create_terminal_session",
4
+ description: "Creates a new terminal session in the specified directory",
5
+ inputs: {
6
+ type: "object",
7
+ properties: {
8
+ cwd: {
9
+ type: "string",
10
+ description: "The working directory for the terminal session"
11
+ },
12
+ name: {
13
+ type: "string",
14
+ description: "Optional name for the terminal session"
15
+ }
16
+ },
17
+ required: ["cwd"]
18
+ },
19
+ outputs: {
20
+ type: "object",
21
+ properties: {
22
+ success: { type: "boolean" },
23
+ sessionId: { type: "string" }
24
+ }
25
+ },
26
+ tags: ["terminal", "session", "create"],
27
+ tool_call_template: {
28
+ call_template_type: "panel_event",
29
+ event_type: "industry-theme.terminal-panel:create-session"
30
+ }
31
+ };
32
+ var writeToTerminalTool = {
33
+ name: "write_to_terminal",
34
+ description: "Writes data to an active terminal session",
35
+ inputs: {
36
+ type: "object",
37
+ properties: {
38
+ sessionId: {
39
+ type: "string",
40
+ description: "The ID of the terminal session to write to"
41
+ },
42
+ data: {
43
+ type: "string",
44
+ description: "The data to write to the terminal"
45
+ }
46
+ },
47
+ required: ["sessionId", "data"]
48
+ },
49
+ outputs: {
50
+ type: "object",
51
+ properties: {
52
+ success: { type: "boolean" }
53
+ }
54
+ },
55
+ tags: ["terminal", "write", "input"],
56
+ tool_call_template: {
57
+ call_template_type: "panel_event",
58
+ event_type: "industry-theme.terminal-panel:write"
59
+ }
60
+ };
61
+ var closeTerminalSessionTool = {
62
+ name: "close_terminal_session",
63
+ description: "Closes an active terminal session",
64
+ inputs: {
65
+ type: "object",
66
+ properties: {
67
+ sessionId: {
68
+ type: "string",
69
+ description: "The ID of the terminal session to close"
70
+ }
71
+ },
72
+ required: ["sessionId"]
73
+ },
74
+ outputs: {
75
+ type: "object",
76
+ properties: {
77
+ success: { type: "boolean" }
78
+ }
79
+ },
80
+ tags: ["terminal", "session", "close"],
81
+ tool_call_template: {
82
+ call_template_type: "panel_event",
83
+ event_type: "industry-theme.terminal-panel:close-session"
84
+ }
85
+ };
86
+ var clearTerminalTool = {
87
+ name: "clear_terminal",
88
+ description: "Clears the terminal screen",
89
+ inputs: {
90
+ type: "object",
91
+ properties: {
92
+ sessionId: {
93
+ type: "string",
94
+ description: "The ID of the terminal session to clear"
95
+ }
96
+ },
97
+ required: ["sessionId"]
98
+ },
99
+ outputs: {
100
+ type: "object",
101
+ properties: {
102
+ success: { type: "boolean" }
103
+ }
104
+ },
105
+ tags: ["terminal", "clear"],
106
+ tool_call_template: {
107
+ call_template_type: "panel_event",
108
+ event_type: "industry-theme.terminal-panel:clear"
109
+ }
110
+ };
111
+ var focusTerminalTool = {
112
+ name: "focus_terminal",
113
+ description: "Focuses the terminal panel and brings it to the foreground",
114
+ inputs: {
115
+ type: "object",
116
+ properties: {
117
+ sessionId: {
118
+ type: "string",
119
+ description: "The ID of the terminal session to focus"
120
+ }
121
+ }
122
+ },
123
+ outputs: {
124
+ type: "object",
125
+ properties: {
126
+ success: { type: "boolean" }
127
+ }
128
+ },
129
+ tags: ["terminal", "focus", "navigation"],
130
+ tool_call_template: {
131
+ call_template_type: "panel_event",
132
+ event_type: "industry-theme.terminal-panel:focus"
133
+ }
134
+ };
135
+ var terminalPanelTools = [
136
+ createTerminalSessionTool,
137
+ writeToTerminalTool,
138
+ closeTerminalSessionTool,
139
+ clearTerminalTool,
140
+ focusTerminalTool
141
+ ];
142
+ var terminalPanelToolsMetadata = {
143
+ id: "industry-theme.terminal-panel",
144
+ name: "Terminal Panel",
145
+ description: "Tools provided by the xterm terminal panel extension",
146
+ tools: terminalPanelTools
147
+ };
148
+ export {
149
+ writeToTerminalTool,
150
+ terminalPanelToolsMetadata,
151
+ terminalPanelTools,
152
+ focusTerminalTool,
153
+ createTerminalSessionTool,
154
+ closeTerminalSessionTool,
155
+ clearTerminalTool
156
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@industry-theme/xterm-terminal-panel",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Industry-themed xterm.js terminal components with panel framework integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -13,12 +13,19 @@
13
13
  "require": "./dist/index.js",
14
14
  "default": "./dist/index.js"
15
15
  },
16
+ "./tools": {
17
+ "types": "./dist/tools/index.d.ts",
18
+ "import": "./dist/tools.bundle.js",
19
+ "require": "./dist/tools.bundle.js",
20
+ "default": "./dist/tools.bundle.js"
21
+ },
16
22
  "./styles.css": "./dist/styles.css",
17
23
  "./package.json": "./package.json"
18
24
  },
19
25
  "scripts": {
20
- "build": "bun run clean && bun run build:esm && bun run build:types && bun run build:styles",
26
+ "build": "bun run clean && bun run build:esm && bun run build:tools && bun run build:types && bun run build:styles",
21
27
  "build:esm": "NODE_ENV=production bun build ./index.ts --outdir ./dist --entry-naming [dir]/[name].[ext] --format esm --target browser --external react --external react-dom --external @xterm/xterm --external @xterm/addon-fit --external @xterm/addon-search --external @xterm/addon-web-links --external @xterm/addon-unicode11 --external @xterm/addon-webgl --external @principal-ade/industry-theme --external @principal-ade/panel-framework-core --external lucide-react --external clsx",
28
+ "build:tools": "bun build ./src/tools/index.ts --outfile ./dist/tools.bundle.js --format esm --target browser",
22
29
  "build:types": "tsc --project tsconfig.build.json --emitDeclarationOnly --declaration --declarationMap",
23
30
  "build:styles": "cp src/styles/terminal-theme.css dist/styles.css",
24
31
  "dev": "bun run build --watch",
@@ -41,13 +48,15 @@
41
48
  "theme",
42
49
  "industry",
43
50
  "panel",
44
- "panel-framework"
51
+ "panel-framework",
52
+ "panel-extension"
45
53
  ],
46
54
  "author": "Principal ADE Team",
47
55
  "license": "MIT",
48
56
  "dependencies": {
49
- "@principal-ade/industry-theme": "^0.1.2",
50
- "@principal-ade/panel-framework-core": "^0.1.2",
57
+ "@principal-ade/industry-theme": "^0.1.3",
58
+ "@principal-ade/panel-framework-core": "^0.1.5",
59
+ "@principal-ade/utcp-panel-event": "^0.1.0",
51
60
  "clsx": "^2.1.1"
52
61
  },
53
62
  "peerDependencies": {
@@ -73,15 +82,12 @@
73
82
  }
74
83
  },
75
84
  "devDependencies": {
85
+ "@chromatic-com/storybook": "^4.1.3",
76
86
  "@eslint/js": "^9.32.0",
77
- "@storybook/addon-essentials": "^8.6.0",
78
- "@storybook/addon-interactions": "^8.6.0",
79
- "@storybook/addon-links": "^8.6.0",
80
- "@storybook/addon-onboarding": "^8.6.0",
81
- "@storybook/blocks": "^8.6.0",
82
- "@storybook/react": "^8.6.0",
83
- "@storybook/react-vite": "^8.6.0",
84
- "@storybook/test": "^8.6.0",
87
+ "@storybook/addon-docs": "10.1.2",
88
+ "@storybook/addon-links": "10.1.2",
89
+ "@storybook/addon-onboarding": "10.1.2",
90
+ "@storybook/react-vite": "10.1.2",
85
91
  "@types/bun": "latest",
86
92
  "@types/node": "^22.15.26",
87
93
  "@types/react": "^19.1.12",
@@ -102,12 +108,12 @@
102
108
  "eslint-plugin-import": "^2.32.0",
103
109
  "eslint-plugin-react": "^7.37.2",
104
110
  "eslint-plugin-react-hooks": "^5.0.0",
105
- "eslint-plugin-storybook": "^0.11.1",
111
+ "eslint-plugin-storybook": "10.1.2",
106
112
  "lucide-react": "^0.552.0",
107
113
  "prettier": "^3.6.2",
108
114
  "react": "^19.1.1",
109
115
  "react-dom": "^19.1.1",
110
- "storybook": "^8.6.0",
116
+ "storybook": "10.1.2",
111
117
  "typescript": "^5.0.4",
112
118
  "typescript-eslint": "^8.38.0",
113
119
  "vite": "^6.0.7"