devchain-cli 0.17.0 → 0.17.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.
Files changed (152) hide show
  1. package/dist/node_modules/@devchain/codebase-overview/tsconfig.tsbuildinfo +1 -1
  2. package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
  3. package/dist/server/app.main.module.js +2 -0
  4. package/dist/server/app.main.module.js.map +1 -1
  5. package/dist/server/app.normal.module.js +2 -0
  6. package/dist/server/app.normal.module.js.map +1 -1
  7. package/dist/server/modules/events/catalog/broadcast-registry.js +19 -12
  8. package/dist/server/modules/events/catalog/broadcast-registry.js.map +1 -1
  9. package/dist/server/modules/events/catalog/index.d.ts +23 -3
  10. package/dist/server/modules/events/catalog/session.transcript.updated.d.ts +23 -3
  11. package/dist/server/modules/events/catalog/session.transcript.updated.js +41 -19
  12. package/dist/server/modules/events/catalog/session.transcript.updated.js.map +1 -1
  13. package/dist/server/modules/metrics/controllers/metrics.controller.d.ts +6 -0
  14. package/dist/server/modules/metrics/controllers/metrics.controller.js +38 -0
  15. package/dist/server/modules/metrics/controllers/metrics.controller.js.map +1 -0
  16. package/dist/server/modules/metrics/helpers/byte-accounting.helper.d.ts +17 -0
  17. package/dist/server/modules/metrics/helpers/byte-accounting.helper.js +88 -0
  18. package/dist/server/modules/metrics/helpers/byte-accounting.helper.js.map +1 -0
  19. package/dist/server/modules/metrics/metrics.module.d.ts +2 -0
  20. package/dist/server/modules/metrics/metrics.module.js +23 -0
  21. package/dist/server/modules/metrics/metrics.module.js.map +1 -0
  22. package/dist/server/modules/metrics/services/metrics.service.d.ts +20 -0
  23. package/dist/server/modules/metrics/services/metrics.service.js +241 -0
  24. package/dist/server/modules/metrics/services/metrics.service.js.map +1 -0
  25. package/dist/server/modules/metrics/types/metrics.types.d.ts +100 -0
  26. package/dist/server/modules/metrics/types/metrics.types.js +3 -0
  27. package/dist/server/modules/metrics/types/metrics.types.js.map +1 -0
  28. package/dist/server/modules/projects/helpers/profile-mapping.helpers.d.ts +5 -3
  29. package/dist/server/modules/projects/helpers/profile-mapping.helpers.js +25 -13
  30. package/dist/server/modules/projects/helpers/profile-mapping.helpers.js.map +1 -1
  31. package/dist/server/modules/projects/helpers/project-import.js +9 -7
  32. package/dist/server/modules/projects/helpers/project-import.js.map +1 -1
  33. package/dist/server/modules/projects/helpers/template-loader.js +11 -9
  34. package/dist/server/modules/projects/helpers/template-loader.js.map +1 -1
  35. package/dist/server/modules/projects/template-codec/codec-registry.js.map +1 -1
  36. package/dist/server/modules/projects/template-codec/codecs/agents.codec.d.ts +1 -1
  37. package/dist/server/modules/projects/template-codec/codecs/agents.codec.js +4 -4
  38. package/dist/server/modules/projects/template-codec/codecs/agents.codec.js.map +1 -1
  39. package/dist/server/modules/projects/template-codec/codecs/profiles.codec.d.ts +1 -1
  40. package/dist/server/modules/projects/template-codec/codecs/profiles.codec.js +27 -8
  41. package/dist/server/modules/projects/template-codec/codecs/profiles.codec.js.map +1 -1
  42. package/dist/server/modules/projects/template-codec/codecs/watchers.codec.js +1 -1
  43. package/dist/server/modules/projects/template-codec/codecs/watchers.codec.js.map +1 -1
  44. package/dist/server/modules/projects/template-codec/import-context.d.ts +6 -1
  45. package/dist/server/modules/projects/template-codec/import-context.js.map +1 -1
  46. package/dist/server/modules/projects/template-codec/template-section-codec.d.ts +2 -3
  47. package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.d.ts +6 -0
  48. package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.js +66 -0
  49. package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.js.map +1 -1
  50. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.d.ts +5 -0
  51. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js +12 -0
  52. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js.map +1 -1
  53. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.d.ts +5 -0
  54. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +12 -0
  55. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js.map +1 -1
  56. package/dist/server/modules/session-reader/adapters/copilot-session-reader.adapter.d.ts +5 -0
  57. package/dist/server/modules/session-reader/adapters/copilot-session-reader.adapter.js +12 -0
  58. package/dist/server/modules/session-reader/adapters/copilot-session-reader.adapter.js.map +1 -1
  59. package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.d.ts +5 -0
  60. package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.js +15 -0
  61. package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.js.map +1 -1
  62. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +10 -0
  63. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js +28 -1
  64. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js.map +1 -1
  65. package/dist/server/modules/session-reader/controllers/session-reader.controller.d.ts +10 -4
  66. package/dist/server/modules/session-reader/controllers/session-reader.controller.js +18 -19
  67. package/dist/server/modules/session-reader/controllers/session-reader.controller.js.map +1 -1
  68. package/dist/server/modules/session-reader/data/pricing.json +206 -0
  69. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.d.ts +1 -0
  70. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js +7 -3
  71. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js.map +1 -1
  72. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.d.ts +1 -0
  73. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js +22 -11
  74. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js.map +1 -1
  75. package/dist/server/modules/session-reader/parsers/copilot-jsonl.parser.d.ts +1 -0
  76. package/dist/server/modules/session-reader/parsers/copilot-jsonl.parser.js +21 -9
  77. package/dist/server/modules/session-reader/parsers/copilot-jsonl.parser.js.map +1 -1
  78. package/dist/server/modules/session-reader/readers/opencode-sqlite.reader.d.ts +5 -1
  79. package/dist/server/modules/session-reader/readers/opencode-sqlite.reader.js +102 -0
  80. package/dist/server/modules/session-reader/readers/opencode-sqlite.reader.js.map +1 -1
  81. package/dist/server/modules/session-reader/services/session-cache.service.d.ts +71 -4
  82. package/dist/server/modules/session-reader/services/session-cache.service.js +427 -68
  83. package/dist/server/modules/session-reader/services/session-cache.service.js.map +1 -1
  84. package/dist/server/modules/session-reader/services/session-reader.service.d.ts +21 -4
  85. package/dist/server/modules/session-reader/services/session-reader.service.js +126 -40
  86. package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
  87. package/dist/server/modules/session-reader/services/transcript-cursor.d.ts +1 -1
  88. package/dist/server/modules/session-reader/services/transcript-cursor.js +2 -2
  89. package/dist/server/modules/session-reader/services/transcript-cursor.js.map +1 -1
  90. package/dist/server/modules/session-reader/services/transcript-watcher.service.d.ts +2 -0
  91. package/dist/server/modules/session-reader/services/transcript-watcher.service.js +61 -11
  92. package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
  93. package/dist/server/modules/session-reader/session-reader.module.js +3 -1
  94. package/dist/server/modules/session-reader/session-reader.module.js.map +1 -1
  95. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.d.ts +4 -4
  96. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +11 -5
  97. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js.map +1 -1
  98. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.d.ts +3 -1
  99. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +11 -2
  100. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js.map +1 -1
  101. package/dist/server/modules/terminal/dtos/ws-envelope.dto.d.ts +140 -1
  102. package/dist/server/modules/terminal/dtos/ws-envelope.dto.js +59 -2
  103. package/dist/server/modules/terminal/dtos/ws-envelope.dto.js.map +1 -1
  104. package/dist/server/modules/terminal/gateways/terminal.gateway.d.ts +33 -1
  105. package/dist/server/modules/terminal/gateways/terminal.gateway.js +471 -61
  106. package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
  107. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.d.ts +1 -0
  108. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js +1 -0
  109. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js.map +1 -1
  110. package/dist/server/modules/terminal/services/pty.service.d.ts +8 -3
  111. package/dist/server/modules/terminal/services/pty.service.js +11 -2
  112. package/dist/server/modules/terminal/services/pty.service.js.map +1 -1
  113. package/dist/server/modules/terminal/services/terminal-io/capture.js +2 -0
  114. package/dist/server/modules/terminal/services/terminal-io/capture.js.map +1 -1
  115. package/dist/server/modules/terminal/services/terminal-io/delivery.d.ts +1 -0
  116. package/dist/server/modules/terminal/services/terminal-io/delivery.js.map +1 -1
  117. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js +28 -1
  118. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js.map +1 -1
  119. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.d.ts +6 -0
  120. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js +26 -1
  121. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js.map +1 -1
  122. package/dist/server/modules/terminal/services/terminal-seed.service.d.ts +27 -3
  123. package/dist/server/modules/terminal/services/terminal-seed.service.js +75 -19
  124. package/dist/server/modules/terminal/services/terminal-seed.service.js.map +1 -1
  125. package/dist/server/modules/terminal/services/terminal-send-scheduler.service.d.ts +73 -0
  126. package/dist/server/modules/terminal/services/terminal-send-scheduler.service.js +387 -0
  127. package/dist/server/modules/terminal/services/terminal-send-scheduler.service.js.map +1 -0
  128. package/dist/server/modules/terminal/services/terminal-session/terminal-session.d.ts +4 -10
  129. package/dist/server/modules/terminal/services/terminal-session/terminal-session.js +20 -48
  130. package/dist/server/modules/terminal/services/terminal-session/terminal-session.js.map +1 -1
  131. package/dist/server/modules/terminal/services/terminal-socket-drain.adapter.d.ts +10 -0
  132. package/dist/server/modules/terminal/services/terminal-socket-drain.adapter.js +75 -0
  133. package/dist/server/modules/terminal/services/terminal-socket-drain.adapter.js.map +1 -0
  134. package/dist/server/modules/terminal/services/terminal-stream.service.d.ts +53 -6
  135. package/dist/server/modules/terminal/services/terminal-stream.service.js +190 -35
  136. package/dist/server/modules/terminal/services/terminal-stream.service.js.map +1 -1
  137. package/dist/server/modules/terminal/terminal.module.js +7 -0
  138. package/dist/server/modules/terminal/terminal.module.js.map +1 -1
  139. package/dist/server/templates/3-agents-dev.json +97 -93
  140. package/dist/server/templates/teams-dev.json +174 -160
  141. package/dist/server/tsconfig.tsbuildinfo +1 -1
  142. package/dist/server/ui/assets/{ReviewDetailPage-Dd40lXMW.js → ReviewDetailPage-C5BI5FSx.js} +1 -1
  143. package/dist/server/ui/assets/{ReviewsPage-CBSbsimJ.js → ReviewsPage-C4V7MJQc.js} +1 -1
  144. package/dist/server/ui/assets/index-BSx7QxmM.css +32 -0
  145. package/dist/server/ui/assets/index-nwIXVn_B.js +1142 -0
  146. package/dist/server/ui/assets/{useReviewSubscription-CpDyx3vJ.js → useReviewSubscription-Bd1R13V5.js} +1 -1
  147. package/dist/server/ui/index.html +2 -2
  148. package/dist/templates/3-agents-dev.json +97 -93
  149. package/dist/templates/teams-dev.json +174 -160
  150. package/package.json +16 -5
  151. package/dist/server/ui/assets/index-COvyD_66.css +0 -32
  152. package/dist/server/ui/assets/index-DtIjl-Lt.js +0 -1113
@@ -1,14 +1,26 @@
1
- import { Socket } from 'socket.io';
2
1
  import { SettingsService } from '../../settings/services/settings.service';
3
2
  import { TerminalIOService } from './terminal-io/terminal-io.service';
4
3
  import { SessionsService } from '../../sessions/services/sessions.service';
4
+ import type { WsEnvelope } from '../dtos/ws-envelope.dto';
5
5
  import { TerminalSessionRegistry } from './terminal-session/terminal-session-registry';
6
+ export interface TerminalRecoverySeedWatermark {
7
+ sequenceEpoch: string;
8
+ recoveryEpoch: number;
9
+ capturedSequence: number;
10
+ }
11
+ export declare const TerminalSeedDelivery: {
12
+ readonly Continue: "continue";
13
+ readonly Abort: "abort";
14
+ };
15
+ export type TerminalSeedDeliveryDecision = (typeof TerminalSeedDelivery)[keyof typeof TerminalSeedDelivery];
16
+ export type TerminalSeedDeliver = (envelope: WsEnvelope) => TerminalSeedDeliveryDecision;
6
17
  export declare class TerminalSeedService {
7
18
  private readonly settingsService;
8
19
  private readonly terminalSessionRegistry;
9
20
  private readonly terminalIO;
10
21
  private readonly sessionsService;
11
22
  private readonly captureCache;
23
+ private seedCaptureCount;
12
24
  private readonly CAPTURE_CACHE_TTL;
13
25
  private readonly SEED_CHUNK_SIZE;
14
26
  constructor(settingsService: SettingsService, terminalSessionRegistry: TerminalSessionRegistry, terminalIO: TerminalIOService, sessionsService: SessionsService);
@@ -16,18 +28,30 @@ export declare class TerminalSeedService {
16
28
  maxBytes: number;
17
29
  };
18
30
  private getCachedCapture;
31
+ getCaptureStats(): {
32
+ terminalSeedCaptures: number;
33
+ };
19
34
  truncateToMaxBytes(snapshot: string, maxBytes: number): {
20
35
  truncated: string;
21
36
  wasTruncated: boolean;
22
37
  };
23
38
  emitSeedToClient(options: {
24
- client: Socket;
39
+ deliver: TerminalSeedDeliver;
25
40
  sessionId: string;
26
41
  maxBytes: number;
27
42
  cols?: number;
28
43
  rows?: number;
29
- }): Promise<void>;
44
+ allowEmpty?: boolean;
45
+ getCurrentSequence?: () => number;
46
+ recovery?: {
47
+ sequenceEpoch: string;
48
+ recoveryEpoch: number;
49
+ getCurrentSequence: () => number;
50
+ onCapturedSequence?: (capturedSequence: number) => void;
51
+ };
52
+ }): Promise<TerminalRecoverySeedWatermark | undefined>;
30
53
  invalidateCache(sessionId: string): void;
31
54
  private emitSeed;
55
+ private emitEmptyCompletion;
32
56
  private emitSeedSnapshot;
33
57
  }
@@ -12,7 +12,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.TerminalSeedService = void 0;
15
+ exports.TerminalSeedService = exports.TerminalSeedDelivery = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const logger_1 = require("../../../common/logging/logger");
18
18
  const settings_service_1 = require("../../settings/services/settings.service");
@@ -22,6 +22,10 @@ const ws_envelope_dto_1 = require("../dtos/ws-envelope.dto");
22
22
  const terminal_session_registry_1 = require("./terminal-session/terminal-session-registry");
23
23
  const normalize_line_endings_1 = require("../utils/normalize-line-endings");
24
24
  const logger = (0, logger_1.createLogger)('TerminalSeedService');
25
+ exports.TerminalSeedDelivery = {
26
+ Continue: 'continue',
27
+ Abort: 'abort',
28
+ };
25
29
  let TerminalSeedService = class TerminalSeedService {
26
30
  constructor(settingsService, terminalSessionRegistry, terminalIO, sessionsService) {
27
31
  this.settingsService = settingsService;
@@ -29,6 +33,7 @@ let TerminalSeedService = class TerminalSeedService {
29
33
  this.terminalIO = terminalIO;
30
34
  this.sessionsService = sessionsService;
31
35
  this.captureCache = new Map();
36
+ this.seedCaptureCount = 0;
32
37
  this.CAPTURE_CACHE_TTL = 2000;
33
38
  this.SEED_CHUNK_SIZE = 64 * 1024;
34
39
  }
@@ -59,6 +64,7 @@ let TerminalSeedService = class TerminalSeedService {
59
64
  return cached.snapshot;
60
65
  }
61
66
  try {
67
+ this.seedCaptureCount += 1;
62
68
  const result = await this.terminalIO.captureHistory({ name: tmuxSessionId }, scrollbackLines, true);
63
69
  const snapshot = result.ok ? result.output : null;
64
70
  if (snapshot && snapshot.length > 0) {
@@ -69,31 +75,36 @@ let TerminalSeedService = class TerminalSeedService {
69
75
  rows: 24,
70
76
  });
71
77
  logger.debug({ sessionId, bytes: snapshot.length }, 'Cached fresh tmux capture');
72
- return snapshot;
73
78
  }
79
+ return snapshot;
74
80
  }
75
81
  catch (error) {
76
82
  logger.warn({ sessionId, error }, 'tmux capture failed');
77
83
  }
78
84
  return null;
79
85
  }
86
+ getCaptureStats() {
87
+ return { terminalSeedCaptures: this.seedCaptureCount };
88
+ }
80
89
  truncateToMaxBytes(snapshot, maxBytes) {
81
90
  const byteLength = Buffer.byteLength(snapshot, 'utf-8');
82
91
  if (byteLength <= maxBytes) {
83
92
  return { truncated: snapshot, wasTruncated: false };
84
93
  }
94
+ const separator = snapshot.includes('\r\n') ? '\r\n' : '\n';
95
+ const separatorBytes = Buffer.byteLength(separator, 'utf-8');
85
96
  const lines = snapshot.split(/\r?\n/);
86
97
  let currentBytes = 0;
87
98
  let startLineIndex = 0;
88
99
  for (let i = lines.length - 1; i >= 0; i--) {
89
- const lineBytes = Buffer.byteLength(lines[i] + '\n', 'utf-8');
100
+ const lineBytes = Buffer.byteLength(lines[i], 'utf-8') + (i < lines.length - 1 ? separatorBytes : 0);
90
101
  if (currentBytes + lineBytes > maxBytes) {
91
102
  startLineIndex = i + 1;
92
103
  break;
93
104
  }
94
105
  currentBytes += lineBytes;
95
106
  }
96
- let truncated = lines.slice(startLineIndex).join('\n');
107
+ let truncated = lines.slice(startLineIndex).join(separator);
97
108
  if (truncated === '' && lines.length > 0) {
98
109
  let targetLine = '';
99
110
  for (let i = lines.length - 1; i >= 0; i--) {
@@ -105,9 +116,17 @@ let TerminalSeedService = class TerminalSeedService {
105
116
  if (targetLine === '') {
106
117
  return { truncated: '', wasTruncated: true };
107
118
  }
108
- const buffer = Buffer.from(targetLine, 'utf-8');
109
- const truncatedBuffer = buffer.subarray(-maxBytes);
110
- truncated = truncatedBuffer.toString('utf-8');
119
+ const characters = Array.from(targetLine);
120
+ let suffixBytes = 0;
121
+ let startCharacter = characters.length;
122
+ for (let i = characters.length - 1; i >= 0; i -= 1) {
123
+ const characterBytes = Buffer.byteLength(characters[i], 'utf-8');
124
+ if (suffixBytes + characterBytes > maxBytes)
125
+ break;
126
+ suffixBytes += characterBytes;
127
+ startCharacter = i;
128
+ }
129
+ truncated = characters.slice(startCharacter).join('');
111
130
  logger.info({
112
131
  originalBytes: byteLength,
113
132
  truncatedBytes: Buffer.byteLength(truncated, 'utf-8'),
@@ -125,17 +144,20 @@ let TerminalSeedService = class TerminalSeedService {
125
144
  return { truncated, wasTruncated: true };
126
145
  }
127
146
  async emitSeedToClient(options) {
128
- const { client, sessionId, maxBytes } = options;
129
- await this.emitSeed(client, sessionId, maxBytes);
147
+ const { deliver, sessionId, maxBytes, allowEmpty = false } = options;
148
+ return this.emitSeed(deliver, sessionId, maxBytes, allowEmpty, options.recovery, options.getCurrentSequence);
130
149
  }
131
150
  invalidateCache(sessionId) {
132
151
  this.captureCache.delete(sessionId);
133
152
  }
134
- async emitSeed(client, sessionId, maxBytes) {
153
+ async emitSeed(deliver, sessionId, maxBytes, allowEmpty, recovery, getCurrentSequence) {
135
154
  let snapshot = null;
155
+ let captureSucceeded = false;
136
156
  let tmuxCursorX;
137
157
  let tmuxCursorY;
138
158
  let wasTruncated = false;
159
+ let recoveryWatermark;
160
+ let emptyCompletionSequence;
139
161
  try {
140
162
  const session = this.sessionsService.getSession(sessionId);
141
163
  if (session?.tmuxSessionId) {
@@ -147,12 +169,23 @@ let TerminalSeedService = class TerminalSeedService {
147
169
  source: 'tmux-ansi',
148
170
  }, 'Capturing tmux ANSI scrollback for seed');
149
171
  snapshot = await this.getCachedCapture(sessionId, session.tmuxSessionId, scrollbackLines);
172
+ captureSucceeded = snapshot !== null;
173
+ if (captureSucceeded && recovery) {
174
+ recoveryWatermark = {
175
+ sequenceEpoch: recovery.sequenceEpoch,
176
+ recoveryEpoch: recovery.recoveryEpoch,
177
+ capturedSequence: recovery.getCurrentSequence(),
178
+ };
179
+ recovery.onCapturedSequence?.(recoveryWatermark.capturedSequence);
180
+ }
181
+ else if (captureSucceeded && getCurrentSequence) {
182
+ emptyCompletionSequence = getCurrentSequence();
183
+ }
150
184
  if (snapshot && snapshot.length > 0) {
151
- snapshot = (0, normalize_line_endings_1.stripFinalLineEnding)(snapshot);
185
+ snapshot = (0, normalize_line_endings_1.normalizeLineEndings)((0, normalize_line_endings_1.stripFinalLineEnding)(snapshot));
152
186
  const truncateResult = this.truncateToMaxBytes(snapshot, maxBytes);
153
187
  snapshot = truncateResult.truncated;
154
188
  wasTruncated = truncateResult.wasTruncated;
155
- snapshot = (0, normalize_line_endings_1.normalizeLineEndings)(snapshot);
156
189
  const cursorPos = await this.terminalIO.getCursorPosition({
157
190
  name: session.tmuxSessionId,
158
191
  });
@@ -168,12 +201,13 @@ let TerminalSeedService = class TerminalSeedService {
168
201
  catch (error) {
169
202
  logger.warn({ sessionId, error }, 'Failed to capture tmux scrollback');
170
203
  }
171
- if (!snapshot || snapshot.length === 0) {
204
+ if ((!snapshot || snapshot.length === 0) && !(allowEmpty && captureSucceeded)) {
172
205
  logger.info({ sessionId }, 'No tmux content yet, skipping seed');
173
- return;
206
+ return undefined;
174
207
  }
175
208
  let actualCols;
176
209
  let actualRows;
210
+ let usesAlternateScreen = false;
177
211
  try {
178
212
  const dims = this.terminalSessionRegistry.get(sessionId)?.getDimensions() ?? null;
179
213
  if (dims) {
@@ -184,18 +218,38 @@ let TerminalSeedService = class TerminalSeedService {
184
218
  catch (error) {
185
219
  logger.warn({ sessionId, error }, 'Failed to get terminal dimensions for seed');
186
220
  }
187
- this.emitSeedSnapshot(client, sessionId, snapshot, maxBytes, actualCols, actualRows, tmuxCursorX, tmuxCursorY, wasTruncated);
221
+ try {
222
+ usesAlternateScreen = this.sessionsService.usesAlternateScreenFor(sessionId);
223
+ }
224
+ catch (error) {
225
+ logger.warn({ sessionId, error }, 'Failed to resolve terminal output behavior for seed');
226
+ }
227
+ if ((!snapshot || snapshot.length === 0) && !recovery) {
228
+ this.emitEmptyCompletion(deliver, sessionId, emptyCompletionSequence ?? 0, actualCols, actualRows);
229
+ return undefined;
230
+ }
231
+ this.emitSeedSnapshot(deliver, sessionId, snapshot ?? '', maxBytes, actualCols, actualRows, tmuxCursorX, tmuxCursorY, wasTruncated, usesAlternateScreen, allowEmpty, recoveryWatermark);
232
+ return recoveryWatermark;
233
+ }
234
+ emitEmptyCompletion(deliver, sessionId, capturedSequence, cols, rows) {
235
+ const payload = {
236
+ capturedSequence,
237
+ ...(cols !== undefined && { cols }),
238
+ ...(rows !== undefined && { rows }),
239
+ };
240
+ logger.info({ sessionId, capturedSequence }, 'Emitting empty seed completion');
241
+ deliver((0, ws_envelope_dto_1.createEnvelope)(`terminal/${sessionId}`, 'seed_empty', payload));
188
242
  }
189
- emitSeedSnapshot(client, sessionId, snapshot, _maxBytes, cols, rows, cursorX, cursorY, wasTruncated = false) {
243
+ emitSeedSnapshot(deliver, sessionId, snapshot, _maxBytes, cols, rows, cursorX, cursorY, wasTruncated = false, usesAlternateScreen = false, allowEmpty = false, recoveryWatermark) {
190
244
  const buffer = Buffer.from(snapshot, 'utf8');
191
- if (buffer.length === 0) {
245
+ if (buffer.length === 0 && !allowEmpty) {
192
246
  logger.debug({ sessionId }, 'Seed snapshot empty; skipping emit');
193
247
  return;
194
248
  }
195
249
  const totalChunks = Math.max(1, Math.ceil(buffer.length / this.SEED_CHUNK_SIZE));
196
250
  const lines = snapshot.split(/\r?\n/);
197
251
  const totalLines = lines.length;
198
- const hasHistory = wasTruncated;
252
+ const hasHistory = wasTruncated && !usesAlternateScreen;
199
253
  logger.info({
200
254
  sessionId,
201
255
  bytes: buffer.length,
@@ -214,6 +268,7 @@ let TerminalSeedService = class TerminalSeedService {
214
268
  data: chunkBuffer.toString('utf8'),
215
269
  chunk: chunkIndex,
216
270
  totalChunks,
271
+ ...recoveryWatermark,
217
272
  ...(chunkIndex === totalChunks - 1 && {
218
273
  totalLines,
219
274
  hasHistory,
@@ -224,7 +279,8 @@ let TerminalSeedService = class TerminalSeedService {
224
279
  }),
225
280
  };
226
281
  const envelope = (0, ws_envelope_dto_1.createEnvelope)(`terminal/${sessionId}`, 'seed_ansi', payload);
227
- client.emit('message', envelope);
282
+ if (deliver(envelope) === exports.TerminalSeedDelivery.Abort)
283
+ return;
228
284
  }
229
285
  }
230
286
  };
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-seed.service.js","sourceRoot":"","sources":["../../../../src/modules/terminal/services/terminal-seed.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-seed.service.js","sourceRoot":"","sources":["../../../../src/modules/terminal/services/terminal-seed.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import type { Socket } from 'socket.io';
2
+ import type { WsEnvelope } from '../dtos/ws-envelope.dto';
3
+ import { TerminalSocketDrainAdapter } from './terminal-socket-drain.adapter';
4
+ export declare const TERMINAL_SEND_SCHEDULER_OPTIONS: unique symbol;
5
+ export declare const DEFAULT_TERMINAL_SOCKET_QUEUE_BYTES: number;
6
+ export declare const DEFAULT_TERMINAL_SOCKET_BATCH_BYTES: number;
7
+ export interface TerminalSendSchedulerOptions {
8
+ queueBytes?: number;
9
+ batchBytes?: number;
10
+ }
11
+ export declare const TerminalSendAdmission: {
12
+ readonly Accepted: "accepted";
13
+ readonly NewlyDesynchronized: "newlyDesynchronized";
14
+ readonly Rejected: "rejected";
15
+ };
16
+ export type TerminalSendAdmissionResult = (typeof TerminalSendAdmission)[keyof typeof TerminalSendAdmission];
17
+ export interface TerminalSessionLaneSnapshot {
18
+ queuedBytes: number;
19
+ desynchronized: boolean;
20
+ recoveryActive: boolean;
21
+ recoveryEpoch?: number;
22
+ droppedFrames: number;
23
+ droppedBytes: number;
24
+ }
25
+ export interface TerminalSocketQueueSnapshot {
26
+ queuedBytes: number;
27
+ inFlightBytes: number;
28
+ desynchronized: boolean;
29
+ droppedFrames: number;
30
+ droppedBytes: number;
31
+ engineBufferedPackets: number;
32
+ lanes: Record<string, TerminalSessionLaneSnapshot>;
33
+ }
34
+ export interface TerminalSendSchedulerSnapshot {
35
+ terminalQueuedBytes: number;
36
+ terminalInFlightBytes: number;
37
+ terminalDesynchronizedClients: number;
38
+ terminalDesynchronizedLanes: number;
39
+ terminalDroppedFrames: number;
40
+ terminalDroppedBytes: number;
41
+ terminalQueues: Record<string, TerminalSocketQueueSnapshot>;
42
+ }
43
+ export declare class TerminalSendSchedulerService {
44
+ private readonly drainAdapter;
45
+ private readonly states;
46
+ private readonly queueBytes;
47
+ private readonly batchBytes;
48
+ constructor(drainAdapter: TerminalSocketDrainAdapter, options?: TerminalSendSchedulerOptions);
49
+ registerSocket(socket: Socket): void;
50
+ removeSocket(socketId: string): void;
51
+ removeLane(socketId: string, sessionId: string): void;
52
+ removeSession(sessionId: string): void;
53
+ enqueueLive(socket: Socket, envelope: WsEnvelope): TerminalSendAdmissionResult;
54
+ enqueueRecovery(socket: Socket, envelope: WsEnvelope, onComplete?: () => void): TerminalSendAdmissionResult;
55
+ beginRecovery(socket: Socket, sessionId: string, recoveryEpoch: number): boolean;
56
+ markSynchronized(socketId: string, sessionId: string, recoveryEpoch: number): boolean;
57
+ isDesynchronized(socketId: string, sessionId: string): boolean;
58
+ getStats(): TerminalSendSchedulerSnapshot;
59
+ dispose(): void;
60
+ private enqueue;
61
+ private admissionAfterPump;
62
+ private getOrCreateState;
63
+ private getOrCreateLane;
64
+ private tryCoalesce;
65
+ private dropAndDesynchronize;
66
+ private pump;
67
+ private selectNextLane;
68
+ private clearLaneQueue;
69
+ private reconcileWritableWait;
70
+ private armWritableEdge;
71
+ private sessionIdForEnvelope;
72
+ private measureEnvelope;
73
+ }