@industry-theme/xterm-terminal-panel 0.5.1 → 0.5.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
@@ -2,7 +2,7 @@ export { ThemedTerminal } from './src/components/ThemedTerminal';
2
2
  export { ThemedTerminalWithProvider } from './src/components/ThemedTerminalWithProvider';
3
3
  export { WorkingOverlay } from './src/components/WorkingOverlay';
4
4
  export type { WorkingOverlayProps } from './src/components/WorkingOverlay';
5
- export type { ThemedTerminalProps, ThemedTerminalRef, TerminalHeaderBadge, TerminalOverlayState, TerminalScrollPosition, LinkClickModifiers, } from './src/types/terminal.types';
5
+ export type { ThemedTerminalProps, ThemedTerminalRef, TerminalActivityState, TerminalHeaderBadge, TerminalOverlayState, TerminalScrollPosition, LinkClickModifiers, } from './src/types/terminal.types';
6
6
  export { useThemedTerminal } from './src/hooks/useThemedTerminal';
7
7
  export type { UseThemedTerminalReturn } from './src/hooks/useThemedTerminal';
8
8
  export { createTerminalTheme, getTerminalCSSVariables, } from './src/utils/terminalTheme';
@@ -19,6 +19,8 @@ export { panels, onPackageLoad, onPackageUnload } from './src/panel-exports';
19
19
  export { terminalPanelTools, terminalPanelToolsMetadata, createTerminalSessionTool, writeToTerminalTool, closeTerminalSessionTool, clearTerminalTool, focusTerminalTool, } from './src/panel-exports';
20
20
  export type { PanelDefinition, PanelMetadata, PanelComponentProps, PanelContextValue, PanelActions, PanelEventEmitter, TerminalSessionInfo, CreateTerminalSessionOptions, TerminalPanelActions, TerminalEventType, TerminalLinkClickEvent, TerminalScope, TerminalPanelProps, TerminalTab, TabbedTerminalPanelProps, OwnershipStatus, OwnershipResult, PortReadyData, TerminalWorkingState, TerminalActivityType, TerminalActivityChangedEvent, } from './src/panel-types';
21
21
  export { getTerminalSessions, getTerminalSession, isTerminalLoading, getRepositoryPath, getWorkspacePath, getTerminalDirectory, getTerminalSlice, } from './src/panel-types';
22
+ export { getTracer, getActiveSpan, withSpan, withSpanSync, TRACER_NAME, TRACER_VERSION, trace, context, SpanStatusCode, } from './src/telemetry';
23
+ export type { Tracer, Span } from './src/telemetry';
22
24
  export type { Theme } from '@principal-ade/industry-theme';
23
25
  export type { Terminal, ITheme as XTermTheme, ITerminalOptions } from '@xterm/xterm';
24
26
  export type { ISearchOptions } from '@xterm/addon-search';
@@ -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;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,GACnB,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,MAAM,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAG5D,YAAY,EACV,GAAG,EACH,OAAO,EACP,SAAS,EACT,WAAW,EACX,cAAc,EACf,MAAM,iBAAiB,CAAC;AAIzB,YAAY,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,YAAY,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAO1F,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,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,GAC7B,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;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,GACnB,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,MAAM,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAG5D,YAAY,EACV,GAAG,EACH,OAAO,EACP,SAAS,EACT,WAAW,EACX,cAAc,EACf,MAAM,iBAAiB,CAAC;AAIzB,YAAY,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,YAAY,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAO1F,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,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EACL,SAAS,EACT,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,cAAc,EACd,KAAK,EACL,OAAO,EACP,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAOpD,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
@@ -26,6 +26,28 @@ import {
26
26
  } from "react";
27
27
  import"@xterm/xterm/css/xterm.css";
28
28
 
29
+ // src/telemetry.ts
30
+ import {
31
+ trace,
32
+ context,
33
+ SpanStatusCode
34
+ } from "@opentelemetry/api";
35
+ var PACKAGE_VERSION = "0.5.1";
36
+ var TRACER_NAME = "@industry-theme/xterm-terminal-panel";
37
+ var TRACER_VERSION = PACKAGE_VERSION;
38
+ function getTracer() {
39
+ return trace.getTracer(TRACER_NAME, TRACER_VERSION);
40
+ }
41
+ function getActiveSpan() {
42
+ return trace.getActiveSpan();
43
+ }
44
+ async function withSpan(span, fn) {
45
+ return context.with(trace.setSpan(context.active(), span), fn);
46
+ }
47
+ function withSpanSync(span, fn) {
48
+ return context.with(trace.setSpan(context.active(), span), fn);
49
+ }
50
+
29
51
  // src/utils/terminalTheme.ts
30
52
  function createTerminalTheme(theme) {
31
53
  return {
@@ -183,9 +205,13 @@ var ThemedTerminal = forwardRef(({
183
205
  onPopOut,
184
206
  onShortcut,
185
207
  overlayState,
186
- isWorking = false,
208
+ isWorking: isWorkingProp = false,
187
209
  workingMessage = "Agent working...",
188
210
  workingSubtitle,
211
+ activityDetection = true,
212
+ activityTimeout = 500,
213
+ onActivityChange,
214
+ autoShowBlinds = false,
189
215
  cursorBlink = true,
190
216
  cursorStyle = "block",
191
217
  scrollback = 1e4,
@@ -196,7 +222,6 @@ var ThemedTerminal = forwardRef(({
196
222
  }, ref) => {
197
223
  const terminalRef = useRef(null);
198
224
  const [terminal, setTerminal] = useState(null);
199
- const [showWorkingOverlay, setShowWorkingOverlay] = useState(isWorking);
200
225
  const [isClosingOverlay, setIsClosingOverlay] = useState(false);
201
226
  const fitAddonRef = useRef(null);
202
227
  const searchAddonRef = useRef(null);
@@ -206,13 +231,31 @@ var ThemedTerminal = forwardRef(({
206
231
  const isVisibleRef = useRef(isVisible);
207
232
  const isScrollLockedRef = useRef(defaultScrollLocked);
208
233
  const onShortcutRef = useRef(onShortcut);
234
+ const [isActivityDetected, setIsActivityDetected] = useState(false);
235
+ const activityTimeoutRef = useRef(null);
236
+ const activityStartTimeRef = useRef(null);
237
+ const onActivityChangeRef = useRef(onActivityChange);
209
238
  useEffect(() => {
210
239
  onShortcutRef.current = onShortcut;
211
240
  }, [onShortcut]);
241
+ useEffect(() => {
242
+ onActivityChangeRef.current = onActivityChange;
243
+ }, [onActivityChange]);
244
+ const isWorking = isWorkingProp || autoShowBlinds && isActivityDetected;
245
+ const [showWorkingOverlay, setShowWorkingOverlay] = useState(isWorking);
212
246
  useEffect(() => {
213
247
  if (isWorking) {
214
248
  setIsClosingOverlay(false);
215
249
  setShowWorkingOverlay(true);
250
+ const tracer = getTracer();
251
+ const span = tracer.startSpan("terminal.blinds", {
252
+ attributes: {
253
+ "blinds.action": "shown"
254
+ }
255
+ });
256
+ span.addEvent("terminal.blinds.shown");
257
+ span.setStatus({ code: SpanStatusCode.OK });
258
+ span.end();
216
259
  } else if (showWorkingOverlay) {
217
260
  setIsClosingOverlay(true);
218
261
  }
@@ -220,6 +263,72 @@ var ThemedTerminal = forwardRef(({
220
263
  const handleOverlayCloseComplete = useCallback(() => {
221
264
  setShowWorkingOverlay(false);
222
265
  setIsClosingOverlay(false);
266
+ const tracer = getTracer();
267
+ const span = tracer.startSpan("terminal.blinds", {
268
+ attributes: {
269
+ "blinds.action": "hidden"
270
+ }
271
+ });
272
+ span.addEvent("terminal.blinds.hidden");
273
+ span.setStatus({ code: SpanStatusCode.OK });
274
+ span.end();
275
+ }, []);
276
+ const trackActivity = useCallback(() => {
277
+ if (!activityDetection)
278
+ return;
279
+ if (activityTimeoutRef.current) {
280
+ clearTimeout(activityTimeoutRef.current);
281
+ }
282
+ if (!activityStartTimeRef.current) {
283
+ activityStartTimeRef.current = Date.now();
284
+ setIsActivityDetected(true);
285
+ const tracer = getTracer();
286
+ const span = tracer.startSpan("terminal.activity", {
287
+ attributes: {
288
+ "activity.type": "started"
289
+ }
290
+ });
291
+ span.addEvent("terminal.activity.started", {
292
+ "activity.startedAt": activityStartTimeRef.current
293
+ });
294
+ span.setStatus({ code: SpanStatusCode.OK });
295
+ span.end();
296
+ const state = {
297
+ isActive: true,
298
+ startedAt: activityStartTimeRef.current
299
+ };
300
+ onActivityChangeRef.current?.(state);
301
+ }
302
+ activityTimeoutRef.current = setTimeout(() => {
303
+ const startedAt = activityStartTimeRef.current;
304
+ const duration = startedAt ? Date.now() - startedAt : undefined;
305
+ activityStartTimeRef.current = null;
306
+ setIsActivityDetected(false);
307
+ const tracer = getTracer();
308
+ const span = tracer.startSpan("terminal.activity", {
309
+ attributes: {
310
+ "activity.type": "stopped",
311
+ "activity.duration.ms": duration
312
+ }
313
+ });
314
+ span.addEvent("terminal.activity.stopped", {
315
+ "activity.duration.ms": duration ?? 0
316
+ });
317
+ span.setStatus({ code: SpanStatusCode.OK });
318
+ span.end();
319
+ const state = {
320
+ isActive: false,
321
+ duration
322
+ };
323
+ onActivityChangeRef.current?.(state);
324
+ }, activityTimeout);
325
+ }, [activityDetection, activityTimeout]);
326
+ useEffect(() => {
327
+ return () => {
328
+ if (activityTimeoutRef.current) {
329
+ clearTimeout(activityTimeoutRef.current);
330
+ }
331
+ };
223
332
  }, []);
224
333
  const handleDroppedContent = useCallback((content) => {
225
334
  if (terminal) {
@@ -288,6 +397,7 @@ var ThemedTerminal = forwardRef(({
288
397
  if (terminal) {
289
398
  terminal.write(data);
290
399
  scheduleScrollToBottom();
400
+ trackActivity();
291
401
  } else {
292
402
  console.warn("[ThemedTerminal] write called but terminal is null!");
293
403
  }
@@ -295,6 +405,7 @@ var ThemedTerminal = forwardRef(({
295
405
  writeln: (data) => {
296
406
  if (terminal) {
297
407
  terminal.writeln(data);
408
+ trackActivity();
298
409
  scheduleScrollToBottom();
299
410
  }
300
411
  },
@@ -369,7 +480,7 @@ var ThemedTerminal = forwardRef(({
369
480
  },
370
481
  isScrollLocked: () => isScrollLockedRef.current,
371
482
  getScrollPosition
372
- }), [terminal]);
483
+ }), [terminal, trackActivity]);
373
484
  const initialConfigRef = useRef({
374
485
  cursorBlink,
375
486
  cursorStyle,
@@ -1323,40 +1434,40 @@ import { Lock, Unlock, ArrowDown } from "lucide-react";
1323
1434
  import { useCallback as useCallback2, useEffect as useEffect3, useRef as useRef2, useState as useState3 } from "react";
1324
1435
 
1325
1436
  // src/panel-types/index.ts
1326
- function getTerminalSessions(context) {
1327
- return context.terminal?.data ?? [];
1437
+ function getTerminalSessions(context2) {
1438
+ return context2.terminal?.data ?? [];
1328
1439
  }
1329
- function getTerminalSession(context, sessionId) {
1330
- const sessions = getTerminalSessions(context);
1440
+ function getTerminalSession(context2, sessionId) {
1441
+ const sessions = getTerminalSessions(context2);
1331
1442
  return sessions.find((s) => s.id === sessionId);
1332
1443
  }
1333
- function isTerminalLoading(context) {
1334
- return context.terminal?.loading ?? false;
1444
+ function isTerminalLoading(context2) {
1445
+ return context2.terminal?.loading ?? false;
1335
1446
  }
1336
- function getRepositoryPath(context) {
1337
- return context.currentScope.repository?.path ?? null;
1447
+ function getRepositoryPath(context2) {
1448
+ return context2.currentScope.repository?.path ?? null;
1338
1449
  }
1339
- function getWorkspacePath(context) {
1340
- return context.currentScope.workspace?.path ?? null;
1450
+ function getWorkspacePath(context2) {
1451
+ return context2.currentScope.workspace?.path ?? null;
1341
1452
  }
1342
- function getTerminalDirectory(context, terminalScope = "repository") {
1453
+ function getTerminalDirectory(context2, terminalScope = "repository") {
1343
1454
  switch (terminalScope) {
1344
1455
  case "workspace":
1345
- return getWorkspacePath(context);
1456
+ return getWorkspacePath(context2);
1346
1457
  case "repository":
1347
- return getRepositoryPath(context) ?? getWorkspacePath(context);
1458
+ return getRepositoryPath(context2) ?? getWorkspacePath(context2);
1348
1459
  default:
1349
- return getRepositoryPath(context) ?? getWorkspacePath(context);
1460
+ return getRepositoryPath(context2) ?? getWorkspacePath(context2);
1350
1461
  }
1351
1462
  }
1352
- function getTerminalSlice(context) {
1353
- return context.terminal;
1463
+ function getTerminalSlice(context2) {
1464
+ return context2.terminal;
1354
1465
  }
1355
1466
 
1356
1467
  // src/panels/TerminalPanel.tsx
1357
1468
  import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
1358
1469
  var TerminalPanel = ({
1359
- context,
1470
+ context: context2,
1360
1471
  actions,
1361
1472
  events: _events,
1362
1473
  terminalScope = "repository"
@@ -1374,7 +1485,7 @@ var TerminalPanel = ({
1374
1485
  const terminalRef = useRef2(null);
1375
1486
  const dataPortRef = useRef2(null);
1376
1487
  const isScrollLockedRef = useRef2(scrollPosition.isScrollLocked);
1377
- const terminalDirectory = getTerminalDirectory(context, terminalScope);
1488
+ const terminalDirectory = getTerminalDirectory(context2, terminalScope);
1378
1489
  const pendingSessionIdRef = useRef2(null);
1379
1490
  useEffect3(() => {
1380
1491
  let mounted = true;
@@ -1511,7 +1622,7 @@ var TerminalPanel = ({
1511
1622
  setScrollPosition(position);
1512
1623
  isScrollLockedRef.current = position.isScrollLocked;
1513
1624
  }, []);
1514
- const sessionInfo = sessionId ? getTerminalSession(context, sessionId) : undefined;
1625
+ const sessionInfo = sessionId ? getTerminalSession(context2, sessionId) : undefined;
1515
1626
  if (error) {
1516
1627
  return /* @__PURE__ */ jsxs5("div", {
1517
1628
  style: {
@@ -1680,7 +1791,7 @@ import React2, {
1680
1791
  } from "react";
1681
1792
  import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
1682
1793
  function TerminalTabContentInner(props, ref) {
1683
- const { tab, sessionId, isActive, isVisible, actions, events, terminalContext, onSessionCreated, onScrollPositionChange, isForeign = false, defaultScrollLocked } = props;
1794
+ const { tab, sessionId, isActive, isVisible, actions, events, terminalContext, onSessionCreated, onScrollPositionChange, isForeign = false, defaultScrollLocked, activityDetection = true, activityTimeout = 500, autoShowBlinds = false } = props;
1684
1795
  console.log("[TerminalTabContent] RENDER", { tabId: tab.id, isActive, sessionId });
1685
1796
  const terminalRef = useRef3(null);
1686
1797
  const [localSessionId, setLocalSessionId] = useState4(sessionId);
@@ -1744,12 +1855,39 @@ function TerminalTabContentInner(props, ref) {
1744
1855
  });
1745
1856
  if (!mounted)
1746
1857
  return;
1858
+ const tracer = getTracer();
1859
+ const span = tracer.startSpan("terminal.session", {
1860
+ attributes: {
1861
+ "session.id": newSessionId,
1862
+ "session.cwd": tab.directory,
1863
+ "session.context": `${terminalContext}:${tab.id}`
1864
+ }
1865
+ });
1866
+ span.addEvent("terminal.session.created", {
1867
+ "session.id": newSessionId,
1868
+ "session.cwd": tab.directory
1869
+ });
1870
+ span.setStatus({ code: SpanStatusCode.OK });
1871
+ span.end();
1747
1872
  setLocalSessionId(newSessionId);
1748
1873
  setIsInitialized(true);
1749
1874
  onSessionCreated(tab.id, newSessionId);
1750
1875
  await claimAndConnect(newSessionId);
1751
1876
  } catch (error) {
1752
1877
  console.error("[TerminalTabContent] Failed to create session:", error);
1878
+ const tracer = getTracer();
1879
+ const span = tracer.startSpan("terminal.session", {
1880
+ attributes: {
1881
+ "session.action": "create",
1882
+ "error.occurred": true
1883
+ }
1884
+ });
1885
+ span.addEvent("terminal.session.error", {
1886
+ "error.message": error instanceof Error ? error.message : "Unknown error"
1887
+ });
1888
+ span.recordException(error);
1889
+ span.setStatus({ code: SpanStatusCode.ERROR, message: "Session creation failed" });
1890
+ span.end();
1753
1891
  }
1754
1892
  };
1755
1893
  initSession();
@@ -1848,6 +1986,20 @@ function TerminalTabContentInner(props, ref) {
1848
1986
  });
1849
1987
  }
1850
1988
  }, [localSessionId, events]);
1989
+ const handleActivityChange = useCallback3((state) => {
1990
+ if (localSessionId) {
1991
+ events.emit({
1992
+ type: "terminal:activity-changed",
1993
+ source: "TabbedTerminalPanel",
1994
+ timestamp: Date.now(),
1995
+ payload: {
1996
+ sessionId: localSessionId,
1997
+ activityType: state.isActive ? "started" : "stopped",
1998
+ isWorking: state.isActive
1999
+ }
2000
+ });
2001
+ }
2002
+ }, [localSessionId, events]);
1851
2003
  const handleScrollToBottom = useCallback3(() => {
1852
2004
  terminalRef.current?.scrollToBottom();
1853
2005
  }, []);
@@ -1912,6 +2064,10 @@ function TerminalTabContentInner(props, ref) {
1912
2064
  cursorBlink: shouldRenderTerminal,
1913
2065
  scrollback: 1e4,
1914
2066
  enableSearch: true,
2067
+ activityDetection,
2068
+ activityTimeout,
2069
+ autoShowBlinds,
2070
+ onActivityChange: shouldRenderTerminal ? handleActivityChange : undefined,
1915
2071
  enableWebLinks: true,
1916
2072
  overlayState
1917
2073
  }, shouldRenderTerminal ? "active" : "overlay")
@@ -1932,6 +2088,12 @@ var areTerminalTabContentPropsEqual = (prevProps, nextProps) => {
1932
2088
  changes.push("terminalContext");
1933
2089
  if (prevProps.isForeign !== nextProps.isForeign)
1934
2090
  changes.push("isForeign");
2091
+ if (prevProps.activityDetection !== nextProps.activityDetection)
2092
+ changes.push("activityDetection");
2093
+ if (prevProps.activityTimeout !== nextProps.activityTimeout)
2094
+ changes.push("activityTimeout");
2095
+ if (prevProps.autoShowBlinds !== nextProps.autoShowBlinds)
2096
+ changes.push("autoShowBlinds");
1935
2097
  if (changes.length > 0) {
1936
2098
  console.log("[TerminalTabContent] MEMO - will re-render, props changed:", changes, { tabId: nextProps.tab.id });
1937
2099
  }
@@ -1962,7 +2124,10 @@ var TabbedTerminalPanelInner = ({
1962
2124
  onActiveTabChange,
1963
2125
  requestFocusTabId,
1964
2126
  onFocusTabHandled,
1965
- workingStates
2127
+ workingStates,
2128
+ activityDetection = true,
2129
+ activityTimeout = 500,
2130
+ autoShowBlinds = false
1966
2131
  }) => {
1967
2132
  console.log("[TabbedTerminalPanel] RENDER", { terminalContext, directory, width });
1968
2133
  const { theme } = useTheme6();
@@ -2169,8 +2334,8 @@ var TabbedTerminalPanelInner = ({
2169
2334
  useEffect4(() => {
2170
2335
  const handleSessionCreated2 = (event) => {
2171
2336
  const customEvent = event;
2172
- const { context } = customEvent.detail || {};
2173
- if (context && context.startsWith(terminalContext)) {
2337
+ const { context: context2 } = customEvent.detail || {};
2338
+ if (context2 && context2.startsWith(terminalContext)) {
2174
2339
  console.log("[TabbedTerminalPanel] External session created, restoring owned sessions...");
2175
2340
  restoreOwnedSessions();
2176
2341
  }
@@ -2217,8 +2382,34 @@ var TabbedTerminalPanelInner = ({
2217
2382
  if (!isForeign && sessionId && actions.destroyTerminalSession) {
2218
2383
  try {
2219
2384
  await actions.destroyTerminalSession(sessionId);
2385
+ const tracer = getTracer();
2386
+ const span = tracer.startSpan("terminal.session", {
2387
+ attributes: {
2388
+ "session.id": sessionId,
2389
+ "session.action": "destroyed"
2390
+ }
2391
+ });
2392
+ span.addEvent("terminal.session.destroyed", {
2393
+ "session.id": sessionId
2394
+ });
2395
+ span.setStatus({ code: SpanStatusCode.OK });
2396
+ span.end();
2220
2397
  } catch (err) {
2221
2398
  console.error("[TabbedTerminalPanel] Failed to destroy session:", err);
2399
+ const tracer = getTracer();
2400
+ const span = tracer.startSpan("terminal.session", {
2401
+ attributes: {
2402
+ "session.id": sessionId,
2403
+ "session.action": "destroy",
2404
+ "error.occurred": true
2405
+ }
2406
+ });
2407
+ span.addEvent("terminal.session.error", {
2408
+ "error.message": err instanceof Error ? err.message : "Unknown error"
2409
+ });
2410
+ span.recordException(err);
2411
+ span.setStatus({ code: SpanStatusCode.ERROR, message: "Session destruction failed" });
2412
+ span.end();
2222
2413
  }
2223
2414
  }
2224
2415
  setSessionIds((prev) => {
@@ -2420,7 +2611,10 @@ var TabbedTerminalPanelInner = ({
2420
2611
  onSessionCreated: handleSessionCreated,
2421
2612
  onScrollPositionChange: handleTabScrollPositionChange,
2422
2613
  isForeign: tab.id.startsWith("tab-foreign-"),
2423
- defaultScrollLocked
2614
+ defaultScrollLocked,
2615
+ activityDetection,
2616
+ activityTimeout,
2617
+ autoShowBlinds
2424
2618
  }, tab.id);
2425
2619
  }
2426
2620
  return /* @__PURE__ */ jsx7("div", {
@@ -2446,7 +2640,10 @@ var TabbedTerminalPanelInner = ({
2446
2640
  onSessionCreated: handleSessionCreated,
2447
2641
  onScrollPositionChange: handleTabScrollPositionChange,
2448
2642
  isForeign: tab.id.startsWith("tab-foreign-"),
2449
- defaultScrollLocked
2643
+ defaultScrollLocked,
2644
+ activityDetection,
2645
+ activityTimeout,
2646
+ autoShowBlinds
2450
2647
  }, tab.id);
2451
2648
  }
2452
2649
  return /* @__PURE__ */ jsxs6("div", {
@@ -2547,6 +2744,12 @@ var TabbedTerminalPanelMemoized = React2.memo(TabbedTerminalPanelInner, (prevPro
2547
2744
  changes.push("onActiveTabChange");
2548
2745
  if (prevProps.workingStates !== nextProps.workingStates)
2549
2746
  changes.push("workingStates");
2747
+ if (prevProps.activityDetection !== nextProps.activityDetection)
2748
+ changes.push("activityDetection");
2749
+ if (prevProps.activityTimeout !== nextProps.activityTimeout)
2750
+ changes.push("activityTimeout");
2751
+ if (prevProps.autoShowBlinds !== nextProps.autoShowBlinds)
2752
+ changes.push("autoShowBlinds");
2550
2753
  const ignoredChanges = [];
2551
2754
  if (prevProps.context !== nextProps.context)
2552
2755
  ignoredChanges.push("context");
@@ -2742,8 +2945,11 @@ var onPackageUnload = async () => {
2742
2945
  };
2743
2946
  export {
2744
2947
  writeToTerminalTool,
2948
+ withSpanSync,
2949
+ withSpan,
2745
2950
  useThemedTerminal,
2746
2951
  useTabKeyboardShortcuts,
2952
+ trace,
2747
2953
  terminalPanelToolsMetadata,
2748
2954
  terminalPanelTools,
2749
2955
  panels,
@@ -2752,15 +2958,18 @@ export {
2752
2958
  isTerminalLoading,
2753
2959
  isTabOfType,
2754
2960
  getWorkspacePath,
2961
+ getTracer,
2755
2962
  getTerminalSlice,
2756
2963
  getTerminalSessions,
2757
2964
  getTerminalSession,
2758
2965
  getTerminalDirectory,
2759
2966
  getTerminalCSSVariables,
2760
2967
  getRepositoryPath,
2968
+ getActiveSpan,
2761
2969
  focusTerminalTool,
2762
2970
  createTerminalTheme,
2763
2971
  createTerminalSessionTool,
2972
+ context,
2764
2973
  closeTerminalSessionTool,
2765
2974
  clearTerminalTool,
2766
2975
  WorkingOverlay,
@@ -2769,5 +2978,8 @@ export {
2769
2978
  TerminalPanel,
2770
2979
  TabbedTerminalPanel,
2771
2980
  TabButton,
2772
- TabBar
2981
+ TabBar,
2982
+ TRACER_VERSION,
2983
+ TRACER_NAME,
2984
+ SpanStatusCode
2773
2985
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ThemedTerminal.d.ts","sourceRoot":"","sources":["../../../src/components/ThemedTerminal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAkC3D,OAAO,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAEV,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,8BAA8B,CAAC;AAEtC,MAAM,WAAW,4BAA6B,SAAQ,mBAAmB;IACvE,KAAK,EAAE,KAAK,CAAC;CACd;AAsBD,eAAO,MAAM,cAAc,4HAmgC1B,CAAC"}
1
+ {"version":3,"file":"ThemedTerminal.d.ts","sourceRoot":"","sources":["../../../src/components/ThemedTerminal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAkC3D,OAAO,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAGV,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,8BAA8B,CAAC;AAEtC,MAAM,WAAW,4BAA6B,SAAQ,mBAAmB;IACvE,KAAK,EAAE,KAAK,CAAC;CACd;AAsBD,eAAO,MAAM,cAAc,4HAunC1B,CAAC"}
@@ -122,5 +122,8 @@ export interface TabbedTerminalPanelProps<TTab extends BaseTab = TerminalTab> ex
122
122
  renderTabLabel?: (tab: TTab) => React.ReactNode;
123
123
  width?: number;
124
124
  workingStates?: Record<string, TerminalWorkingState>;
125
+ activityDetection?: boolean;
126
+ activityTimeout?: number;
127
+ autoShowBlinds?: boolean;
125
128
  }
126
129
  //# 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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAKN,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAIZ,MAAM,gBAAgB,CAAC;AA2BxB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAisCD,eAAO,MAAM,mBAAmB,EAAkC,CAAC,IAAI,SAAS,OAAO,cAAc,EAAE,OAAO,GAAG,WAAW,EAC1H,KAAK,EAAE,wBAAwB,CAAC,IAAI,CAAC,KAClC,KAAK,CAAC,YAAY,CAAC"}
1
+ {"version":3,"file":"TabbedTerminalPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TabbedTerminalPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAKN,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAKZ,MAAM,gBAAgB,CAAC;AAiCxB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAqyCD,eAAO,MAAM,mBAAmB,EAAkC,CAAC,IAAI,SAAS,OAAO,cAAc,EAAE,OAAO,GAAG,WAAW,EAC1H,KAAK,EAAE,wBAAwB,CAAC,IAAI,CAAC,KAClC,KAAK,CAAC,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { trace, context, SpanStatusCode, type Tracer, type Span } from '@opentelemetry/api';
2
+ export declare const TRACER_NAME = "@industry-theme/xterm-terminal-panel";
3
+ export declare const TRACER_VERSION = "0.5.1";
4
+ export declare function getTracer(): Tracer;
5
+ export declare function getActiveSpan(): Span | undefined;
6
+ export declare function withSpan<T>(span: Span, fn: () => Promise<T>): Promise<T>;
7
+ export declare function withSpanSync<T>(span: Span, fn: () => T): T;
8
+ export { trace, context, SpanStatusCode };
9
+ export type { Tracer, Span };
10
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,KAAK,EACL,OAAO,EACP,cAAc,EACd,KAAK,MAAM,EACX,KAAK,IAAI,EACV,MAAM,oBAAoB,CAAC;AAM5B,eAAO,MAAM,WAAW,yCAAyC,CAAC;AAClE,eAAO,MAAM,cAAc,UAAkB,CAAC;AAM9C,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAMD,wBAAgB,aAAa,IAAI,IAAI,GAAG,SAAS,CAEhD;AAMD,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAEZ;AAKD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE1D;AAGD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1C,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC"}
@@ -20,6 +20,11 @@ export interface TerminalScrollPosition {
20
20
  isAtBottom: boolean;
21
21
  isScrollLocked: boolean;
22
22
  }
23
+ export interface TerminalActivityState {
24
+ isActive: boolean;
25
+ startedAt?: number;
26
+ duration?: number;
27
+ }
23
28
  export type TerminalShortcut = 'command-palette';
24
29
  export interface TerminalShortcutEvent {
25
30
  shortcut: TerminalShortcut;
@@ -54,6 +59,10 @@ export interface ThemedTerminalProps {
54
59
  isWorking?: boolean;
55
60
  workingMessage?: string;
56
61
  workingSubtitle?: string;
62
+ activityDetection?: boolean;
63
+ activityTimeout?: number;
64
+ onActivityChange?: (state: TerminalActivityState) => void;
65
+ autoShowBlinds?: boolean;
57
66
  convertEol?: boolean;
58
67
  cursorBlink?: boolean;
59
68
  cursorStyle?: 'block' | 'underline' | 'bar';
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.types.d.ts","sourceRoot":"","sources":["../../../src/types/terminal.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal.types.d.ts","sourceRoot":"","sources":["../../../src/types/terminal.types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@industry-theme/xterm-terminal-panel",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "Industry-themed xterm.js terminal components with panel framework integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "scripts": {
26
26
  "build": "bun run clean && bun run build:esm && bun run build:tools && bun run build:types && bun run build:styles",
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-webgl --external @principal-ade/industry-theme --external @principal-ade/panel-framework-core --external lucide-react --external clsx",
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-webgl --external @principal-ade/industry-theme --external @principal-ade/panel-framework-core --external lucide-react --external clsx --external @opentelemetry/api",
28
28
  "build:tools": "bun build ./src/tools/index.ts --outfile ./dist/tools.bundle.js --format esm --target browser",
29
29
  "build:types": "tsc --project tsconfig.build.json --emitDeclarationOnly --declaration --declarationMap",
30
30
  "build:styles": "cp src/styles/terminal-theme.css dist/styles.css",
@@ -57,6 +57,7 @@
57
57
  "clsx": "^2.1.1"
58
58
  },
59
59
  "peerDependencies": {
60
+ "@opentelemetry/api": ">=1.8.0",
60
61
  "@principal-ade/industry-theme": ">=0.1.8",
61
62
  "@principal-ade/panel-framework-core": ">=0.5.1",
62
63
  "@principal-ade/panel-layouts": ">=0.4.0",
@@ -71,6 +72,9 @@
71
72
  "react-dom": ">=19.0.0"
72
73
  },
73
74
  "peerDependenciesMeta": {
75
+ "@opentelemetry/api": {
76
+ "optional": true
77
+ },
74
78
  "lucide-react": {
75
79
  "optional": true
76
80
  },
@@ -80,6 +84,8 @@
80
84
  },
81
85
  "devDependencies": {
82
86
  "@chromatic-com/storybook": "^4.1.3",
87
+ "@opentelemetry/api": "^1.9.0",
88
+ "@principal-ai/storybook-addon-otel": "^0.3.22",
83
89
  "@eslint/js": "^9.32.0",
84
90
  "@industry-theme/agent-panels": "^0.2.12",
85
91
  "@principal-ade/industry-theme": "^0.1.7",