@industry-theme/xterm-terminal-panel 0.5.1 → 0.5.3

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, onActivityStateChange } = 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,21 @@ function TerminalTabContentInner(props, ref) {
1848
1986
  });
1849
1987
  }
1850
1988
  }, [localSessionId, events]);
1989
+ const handleActivityChange = useCallback3((state) => {
1990
+ if (localSessionId) {
1991
+ onActivityStateChange?.(localSessionId, state.isActive);
1992
+ events.emit({
1993
+ type: "terminal:activity-changed",
1994
+ source: "TabbedTerminalPanel",
1995
+ timestamp: Date.now(),
1996
+ payload: {
1997
+ sessionId: localSessionId,
1998
+ activityType: state.isActive ? "started" : "stopped",
1999
+ isWorking: state.isActive
2000
+ }
2001
+ });
2002
+ }
2003
+ }, [localSessionId, events, onActivityStateChange]);
1851
2004
  const handleScrollToBottom = useCallback3(() => {
1852
2005
  terminalRef.current?.scrollToBottom();
1853
2006
  }, []);
@@ -1912,6 +2065,10 @@ function TerminalTabContentInner(props, ref) {
1912
2065
  cursorBlink: shouldRenderTerminal,
1913
2066
  scrollback: 1e4,
1914
2067
  enableSearch: true,
2068
+ activityDetection,
2069
+ activityTimeout,
2070
+ autoShowBlinds,
2071
+ onActivityChange: shouldRenderTerminal ? handleActivityChange : undefined,
1915
2072
  enableWebLinks: true,
1916
2073
  overlayState
1917
2074
  }, shouldRenderTerminal ? "active" : "overlay")
@@ -1932,6 +2089,12 @@ var areTerminalTabContentPropsEqual = (prevProps, nextProps) => {
1932
2089
  changes.push("terminalContext");
1933
2090
  if (prevProps.isForeign !== nextProps.isForeign)
1934
2091
  changes.push("isForeign");
2092
+ if (prevProps.activityDetection !== nextProps.activityDetection)
2093
+ changes.push("activityDetection");
2094
+ if (prevProps.activityTimeout !== nextProps.activityTimeout)
2095
+ changes.push("activityTimeout");
2096
+ if (prevProps.autoShowBlinds !== nextProps.autoShowBlinds)
2097
+ changes.push("autoShowBlinds");
1935
2098
  if (changes.length > 0) {
1936
2099
  console.log("[TerminalTabContent] MEMO - will re-render, props changed:", changes, { tabId: nextProps.tab.id });
1937
2100
  }
@@ -1962,7 +2125,10 @@ var TabbedTerminalPanelInner = ({
1962
2125
  onActiveTabChange,
1963
2126
  requestFocusTabId,
1964
2127
  onFocusTabHandled,
1965
- workingStates
2128
+ workingStates,
2129
+ activityDetection = true,
2130
+ activityTimeout = 500,
2131
+ autoShowBlinds = false
1966
2132
  }) => {
1967
2133
  console.log("[TabbedTerminalPanel] RENDER", { terminalContext, directory, width });
1968
2134
  const { theme } = useTheme6();
@@ -1981,6 +2147,7 @@ var TabbedTerminalPanelInner = ({
1981
2147
  }, [isControlled, onActiveTabChange]);
1982
2148
  const [sessionIds, setSessionIds] = useState4(new Map);
1983
2149
  const [scrollPositions, setScrollPositions] = useState4(new Map);
2150
+ const [activityStates, setActivityStates] = useState4(new Map);
1984
2151
  const customTabsKey = React2.useMemo(() => {
1985
2152
  const customTabs = initialTabs.filter((tab) => tab.contentType !== "terminal");
1986
2153
  return JSON.stringify(customTabs);
@@ -2169,8 +2336,8 @@ var TabbedTerminalPanelInner = ({
2169
2336
  useEffect4(() => {
2170
2337
  const handleSessionCreated2 = (event) => {
2171
2338
  const customEvent = event;
2172
- const { context } = customEvent.detail || {};
2173
- if (context && context.startsWith(terminalContext)) {
2339
+ const { context: context2 } = customEvent.detail || {};
2340
+ if (context2 && context2.startsWith(terminalContext)) {
2174
2341
  console.log("[TabbedTerminalPanel] External session created, restoring owned sessions...");
2175
2342
  restoreOwnedSessions();
2176
2343
  }
@@ -2217,8 +2384,34 @@ var TabbedTerminalPanelInner = ({
2217
2384
  if (!isForeign && sessionId && actions.destroyTerminalSession) {
2218
2385
  try {
2219
2386
  await actions.destroyTerminalSession(sessionId);
2387
+ const tracer = getTracer();
2388
+ const span = tracer.startSpan("terminal.session", {
2389
+ attributes: {
2390
+ "session.id": sessionId,
2391
+ "session.action": "destroyed"
2392
+ }
2393
+ });
2394
+ span.addEvent("terminal.session.destroyed", {
2395
+ "session.id": sessionId
2396
+ });
2397
+ span.setStatus({ code: SpanStatusCode.OK });
2398
+ span.end();
2220
2399
  } catch (err) {
2221
2400
  console.error("[TabbedTerminalPanel] Failed to destroy session:", err);
2401
+ const tracer = getTracer();
2402
+ const span = tracer.startSpan("terminal.session", {
2403
+ attributes: {
2404
+ "session.id": sessionId,
2405
+ "session.action": "destroy",
2406
+ "error.occurred": true
2407
+ }
2408
+ });
2409
+ span.addEvent("terminal.session.error", {
2410
+ "error.message": err instanceof Error ? err.message : "Unknown error"
2411
+ });
2412
+ span.recordException(err);
2413
+ span.setStatus({ code: SpanStatusCode.ERROR, message: "Session destruction failed" });
2414
+ span.end();
2222
2415
  }
2223
2416
  }
2224
2417
  setSessionIds((prev) => {
@@ -2258,6 +2451,17 @@ var TabbedTerminalPanelInner = ({
2258
2451
  const handleSessionCreated = useCallback3((tabId, sessionId) => {
2259
2452
  setSessionIds((prev) => new Map(prev).set(tabId, sessionId));
2260
2453
  }, []);
2454
+ const handleActivityStateChange = useCallback3((sessionId, isActive) => {
2455
+ setActivityStates((prev) => {
2456
+ const next = new Map(prev);
2457
+ if (isActive) {
2458
+ next.set(sessionId, true);
2459
+ } else {
2460
+ next.delete(sessionId);
2461
+ }
2462
+ return next;
2463
+ });
2464
+ }, []);
2261
2465
  useTabKeyboardShortcuts({
2262
2466
  onNewTab: () => {
2263
2467
  if (isCreatingTabRef.current)
@@ -2280,7 +2484,9 @@ var TabbedTerminalPanelInner = ({
2280
2484
  });
2281
2485
  const renderTabAccessory = useCallback3((tab) => {
2282
2486
  const tabSessionId = sessionIds.get(tab.id);
2283
- const isWorking = tabSessionId ? workingStates?.[tabSessionId]?.isWorking : false;
2487
+ const hasExternalWorkingState = tabSessionId ? workingStates?.[tabSessionId]?.isWorking : false;
2488
+ const hasInternalActivity = tabSessionId ? activityStates.get(tabSessionId) : false;
2489
+ const isWorking = hasExternalWorkingState || hasInternalActivity;
2284
2490
  const isActive = tab.id === activeTabId;
2285
2491
  if (!isActive && !isWorking)
2286
2492
  return null;
@@ -2338,7 +2544,7 @@ var TabbedTerminalPanelInner = ({
2338
2544
  })
2339
2545
  ]
2340
2546
  });
2341
- }, [activeTabId, scrollPositions, defaultScrollPosition, handleToggleScrollLock, theme, sessionIds, workingStates]);
2547
+ }, [activeTabId, scrollPositions, defaultScrollPosition, handleToggleScrollLock, theme, sessionIds, workingStates, activityStates]);
2342
2548
  return /* @__PURE__ */ jsxs6("div", {
2343
2549
  style: {
2344
2550
  display: "flex",
@@ -2420,7 +2626,11 @@ var TabbedTerminalPanelInner = ({
2420
2626
  onSessionCreated: handleSessionCreated,
2421
2627
  onScrollPositionChange: handleTabScrollPositionChange,
2422
2628
  isForeign: tab.id.startsWith("tab-foreign-"),
2423
- defaultScrollLocked
2629
+ defaultScrollLocked,
2630
+ activityDetection,
2631
+ activityTimeout,
2632
+ autoShowBlinds,
2633
+ onActivityStateChange: handleActivityStateChange
2424
2634
  }, tab.id);
2425
2635
  }
2426
2636
  return /* @__PURE__ */ jsx7("div", {
@@ -2446,7 +2656,11 @@ var TabbedTerminalPanelInner = ({
2446
2656
  onSessionCreated: handleSessionCreated,
2447
2657
  onScrollPositionChange: handleTabScrollPositionChange,
2448
2658
  isForeign: tab.id.startsWith("tab-foreign-"),
2449
- defaultScrollLocked
2659
+ defaultScrollLocked,
2660
+ activityDetection,
2661
+ activityTimeout,
2662
+ autoShowBlinds,
2663
+ onActivityStateChange: handleActivityStateChange
2450
2664
  }, tab.id);
2451
2665
  }
2452
2666
  return /* @__PURE__ */ jsxs6("div", {
@@ -2547,6 +2761,12 @@ var TabbedTerminalPanelMemoized = React2.memo(TabbedTerminalPanelInner, (prevPro
2547
2761
  changes.push("onActiveTabChange");
2548
2762
  if (prevProps.workingStates !== nextProps.workingStates)
2549
2763
  changes.push("workingStates");
2764
+ if (prevProps.activityDetection !== nextProps.activityDetection)
2765
+ changes.push("activityDetection");
2766
+ if (prevProps.activityTimeout !== nextProps.activityTimeout)
2767
+ changes.push("activityTimeout");
2768
+ if (prevProps.autoShowBlinds !== nextProps.autoShowBlinds)
2769
+ changes.push("autoShowBlinds");
2550
2770
  const ignoredChanges = [];
2551
2771
  if (prevProps.context !== nextProps.context)
2552
2772
  ignoredChanges.push("context");
@@ -2742,8 +2962,11 @@ var onPackageUnload = async () => {
2742
2962
  };
2743
2963
  export {
2744
2964
  writeToTerminalTool,
2965
+ withSpanSync,
2966
+ withSpan,
2745
2967
  useThemedTerminal,
2746
2968
  useTabKeyboardShortcuts,
2969
+ trace,
2747
2970
  terminalPanelToolsMetadata,
2748
2971
  terminalPanelTools,
2749
2972
  panels,
@@ -2752,15 +2975,18 @@ export {
2752
2975
  isTerminalLoading,
2753
2976
  isTabOfType,
2754
2977
  getWorkspacePath,
2978
+ getTracer,
2755
2979
  getTerminalSlice,
2756
2980
  getTerminalSessions,
2757
2981
  getTerminalSession,
2758
2982
  getTerminalDirectory,
2759
2983
  getTerminalCSSVariables,
2760
2984
  getRepositoryPath,
2985
+ getActiveSpan,
2761
2986
  focusTerminalTool,
2762
2987
  createTerminalTheme,
2763
2988
  createTerminalSessionTool,
2989
+ context,
2764
2990
  closeTerminalSessionTool,
2765
2991
  clearTerminalTool,
2766
2992
  WorkingOverlay,
@@ -2769,5 +2995,8 @@ export {
2769
2995
  TerminalPanel,
2770
2996
  TabbedTerminalPanel,
2771
2997
  TabButton,
2772
- TabBar
2998
+ TabBar,
2999
+ TRACER_VERSION,
3000
+ TRACER_NAME,
3001
+ SpanStatusCode
2773
3002
  };
@@ -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;AAGpC,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;AAKf,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EAKZ,MAAM,gBAAgB,CAAC;AAoCxB,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AA6zCD,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.3",
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",