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
@@ -26,7 +26,7 @@ export declare const TerminalDataPayloadSchema: z.ZodObject<{
26
26
  data: string;
27
27
  sequence?: number | undefined;
28
28
  }>;
29
- export declare const TerminalSeedPayloadSchema: z.ZodObject<{
29
+ export declare const TerminalSeedPayloadSchema: z.ZodEffects<z.ZodObject<{
30
30
  data: z.ZodString;
31
31
  chunk: z.ZodNumber;
32
32
  totalChunks: z.ZodNumber;
@@ -35,6 +35,11 @@ export declare const TerminalSeedPayloadSchema: z.ZodObject<{
35
35
  hasHistory: z.ZodOptional<z.ZodBoolean>;
36
36
  cols: z.ZodOptional<z.ZodNumber>;
37
37
  rows: z.ZodOptional<z.ZodNumber>;
38
+ cursorX: z.ZodOptional<z.ZodNumber>;
39
+ cursorY: z.ZodOptional<z.ZodNumber>;
40
+ sequenceEpoch: z.ZodOptional<z.ZodString>;
41
+ recoveryEpoch: z.ZodOptional<z.ZodNumber>;
42
+ capturedSequence: z.ZodOptional<z.ZodNumber>;
38
43
  }, "strip", z.ZodTypeAny, {
39
44
  data: string;
40
45
  chunk: number;
@@ -44,6 +49,39 @@ export declare const TerminalSeedPayloadSchema: z.ZodObject<{
44
49
  viewportStart?: number | undefined;
45
50
  hasHistory?: boolean | undefined;
46
51
  cols?: number | undefined;
52
+ cursorX?: number | undefined;
53
+ cursorY?: number | undefined;
54
+ sequenceEpoch?: string | undefined;
55
+ recoveryEpoch?: number | undefined;
56
+ capturedSequence?: number | undefined;
57
+ }, {
58
+ data: string;
59
+ chunk: number;
60
+ totalChunks: number;
61
+ rows?: number | undefined;
62
+ totalLines?: number | undefined;
63
+ viewportStart?: number | undefined;
64
+ hasHistory?: boolean | undefined;
65
+ cols?: number | undefined;
66
+ cursorX?: number | undefined;
67
+ cursorY?: number | undefined;
68
+ sequenceEpoch?: string | undefined;
69
+ recoveryEpoch?: number | undefined;
70
+ capturedSequence?: number | undefined;
71
+ }>, {
72
+ data: string;
73
+ chunk: number;
74
+ totalChunks: number;
75
+ rows?: number | undefined;
76
+ totalLines?: number | undefined;
77
+ viewportStart?: number | undefined;
78
+ hasHistory?: boolean | undefined;
79
+ cols?: number | undefined;
80
+ cursorX?: number | undefined;
81
+ cursorY?: number | undefined;
82
+ sequenceEpoch?: string | undefined;
83
+ recoveryEpoch?: number | undefined;
84
+ capturedSequence?: number | undefined;
47
85
  }, {
48
86
  data: string;
49
87
  chunk: number;
@@ -53,6 +91,24 @@ export declare const TerminalSeedPayloadSchema: z.ZodObject<{
53
91
  viewportStart?: number | undefined;
54
92
  hasHistory?: boolean | undefined;
55
93
  cols?: number | undefined;
94
+ cursorX?: number | undefined;
95
+ cursorY?: number | undefined;
96
+ sequenceEpoch?: string | undefined;
97
+ recoveryEpoch?: number | undefined;
98
+ capturedSequence?: number | undefined;
99
+ }>;
100
+ export declare const TerminalSeedEmptyPayloadSchema: z.ZodObject<{
101
+ capturedSequence: z.ZodNumber;
102
+ cols: z.ZodOptional<z.ZodNumber>;
103
+ rows: z.ZodOptional<z.ZodNumber>;
104
+ }, "strict", z.ZodTypeAny, {
105
+ capturedSequence: number;
106
+ rows?: number | undefined;
107
+ cols?: number | undefined;
108
+ }, {
109
+ capturedSequence: number;
110
+ rows?: number | undefined;
111
+ cols?: number | undefined;
56
112
  }>;
57
113
  export declare const TerminalResizePayloadSchema: z.ZodObject<{
58
114
  rows: z.ZodNumber;
@@ -64,29 +120,70 @@ export declare const TerminalResizePayloadSchema: z.ZodObject<{
64
120
  rows: number;
65
121
  cols: number;
66
122
  }>;
123
+ export declare const FullHistoryRequestPayloadSchema: z.ZodObject<{
124
+ sessionId: z.ZodString;
125
+ maxLines: z.ZodOptional<z.ZodNumber>;
126
+ correlationId: z.ZodOptional<z.ZodString>;
127
+ }, "strip", z.ZodTypeAny, {
128
+ sessionId: string;
129
+ maxLines?: number | undefined;
130
+ correlationId?: string | undefined;
131
+ }, {
132
+ sessionId: string;
133
+ maxLines?: number | undefined;
134
+ correlationId?: string | undefined;
135
+ }>;
67
136
  export declare const FullHistoryPayloadSchema: z.ZodObject<{
68
137
  history: z.ZodString;
69
138
  cursorX: z.ZodOptional<z.ZodNumber>;
70
139
  cursorY: z.ZodOptional<z.ZodNumber>;
71
140
  hasHistory: z.ZodOptional<z.ZodBoolean>;
72
141
  capturedSequence: z.ZodOptional<z.ZodNumber>;
142
+ sequenceEpoch: z.ZodOptional<z.ZodString>;
143
+ correlationId: z.ZodOptional<z.ZodString>;
73
144
  }, "strip", z.ZodTypeAny, {
74
145
  history: string;
75
146
  hasHistory?: boolean | undefined;
76
147
  cursorX?: number | undefined;
77
148
  cursorY?: number | undefined;
149
+ sequenceEpoch?: string | undefined;
78
150
  capturedSequence?: number | undefined;
151
+ correlationId?: string | undefined;
79
152
  }, {
80
153
  history: string;
81
154
  hasHistory?: boolean | undefined;
82
155
  cursorX?: number | undefined;
83
156
  cursorY?: number | undefined;
157
+ sequenceEpoch?: string | undefined;
84
158
  capturedSequence?: number | undefined;
159
+ correlationId?: string | undefined;
160
+ }>;
161
+ export declare const SubscribedPayloadSchema: z.ZodObject<{
162
+ sessionId: z.ZodString;
163
+ currentSequence: z.ZodNumber;
164
+ sequenceEpoch: z.ZodString;
165
+ replayStatus: z.ZodEnum<["seed", "covered", "gap"]>;
166
+ historyRefreshable: z.ZodBoolean;
167
+ }, "strip", z.ZodTypeAny, {
168
+ sessionId: string;
169
+ sequenceEpoch: string;
170
+ currentSequence: number;
171
+ replayStatus: "seed" | "covered" | "gap";
172
+ historyRefreshable: boolean;
173
+ }, {
174
+ sessionId: string;
175
+ sequenceEpoch: string;
176
+ currentSequence: number;
177
+ replayStatus: "seed" | "covered" | "gap";
178
+ historyRefreshable: boolean;
85
179
  }>;
86
180
  export type TerminalDataPayload = z.infer<typeof TerminalDataPayloadSchema>;
87
181
  export type TerminalSeedPayload = z.infer<typeof TerminalSeedPayloadSchema>;
182
+ export type TerminalSeedEmptyPayload = z.infer<typeof TerminalSeedEmptyPayloadSchema>;
88
183
  export type TerminalResizePayload = z.infer<typeof TerminalResizePayloadSchema>;
184
+ export type FullHistoryRequestPayload = z.infer<typeof FullHistoryRequestPayloadSchema>;
89
185
  export type FullHistoryPayload = z.infer<typeof FullHistoryPayloadSchema>;
186
+ export type SubscribedPayload = z.infer<typeof SubscribedPayloadSchema>;
90
187
  export declare const SessionStatePayloadSchema: z.ZodObject<{
91
188
  sessionId: z.ZodString;
92
189
  status: z.ZodEnum<["started", "ended", "crashed", "timeout"]>;
@@ -112,6 +209,48 @@ export declare const ReconnectPayloadSchema: z.ZodObject<{
112
209
  lastSequence?: number | undefined;
113
210
  }>;
114
211
  export type ReconnectPayload = z.infer<typeof ReconnectPayloadSchema>;
212
+ export declare const TerminalResyncRequestPayloadSchema: z.ZodObject<{
213
+ sessionId: z.ZodString;
214
+ reason: z.ZodLiteral<"client_write_overflow">;
215
+ }, "strict", z.ZodTypeAny, {
216
+ reason: "client_write_overflow";
217
+ sessionId: string;
218
+ }, {
219
+ reason: "client_write_overflow";
220
+ sessionId: string;
221
+ }>;
222
+ export type TerminalResyncRequestPayload = z.infer<typeof TerminalResyncRequestPayloadSchema>;
223
+ export declare const TerminalResyncAbortPayloadSchema: z.ZodObject<{
224
+ sessionId: z.ZodString;
225
+ sequenceEpoch: z.ZodOptional<z.ZodString>;
226
+ recoveryEpoch: z.ZodNumber;
227
+ }, "strict", z.ZodTypeAny, {
228
+ sessionId: string;
229
+ recoveryEpoch: number;
230
+ sequenceEpoch?: string | undefined;
231
+ }, {
232
+ sessionId: string;
233
+ recoveryEpoch: number;
234
+ sequenceEpoch?: string | undefined;
235
+ }>;
236
+ export type TerminalResyncAbortPayload = z.infer<typeof TerminalResyncAbortPayloadSchema>;
237
+ export declare const TerminalResyncCompletePayloadSchema: z.ZodObject<{
238
+ sessionId: z.ZodString;
239
+ sequenceEpoch: z.ZodOptional<z.ZodString>;
240
+ recoveryEpoch: z.ZodNumber;
241
+ capturedSequence: z.ZodNumber;
242
+ }, "strict", z.ZodTypeAny, {
243
+ sessionId: string;
244
+ recoveryEpoch: number;
245
+ capturedSequence: number;
246
+ sequenceEpoch?: string | undefined;
247
+ }, {
248
+ sessionId: string;
249
+ recoveryEpoch: number;
250
+ capturedSequence: number;
251
+ sequenceEpoch?: string | undefined;
252
+ }>;
253
+ export type TerminalResyncCompletePayload = z.infer<typeof TerminalResyncCompletePayloadSchema>;
115
254
  export declare const HeartbeatPayloadSchema: z.ZodObject<{
116
255
  timestamp: z.ZodString;
117
256
  }, "strip", z.ZodTypeAny, {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HeartbeatPayloadSchema = exports.ReconnectPayloadSchema = exports.SessionStatePayloadSchema = exports.FullHistoryPayloadSchema = exports.TerminalResizePayloadSchema = exports.TerminalSeedPayloadSchema = exports.TerminalDataPayloadSchema = exports.WsEnvelopeSchema = void 0;
3
+ exports.HeartbeatPayloadSchema = exports.TerminalResyncCompletePayloadSchema = exports.TerminalResyncAbortPayloadSchema = exports.TerminalResyncRequestPayloadSchema = exports.ReconnectPayloadSchema = exports.SessionStatePayloadSchema = exports.SubscribedPayloadSchema = exports.FullHistoryPayloadSchema = exports.FullHistoryRequestPayloadSchema = exports.TerminalResizePayloadSchema = exports.TerminalSeedEmptyPayloadSchema = exports.TerminalSeedPayloadSchema = exports.TerminalDataPayloadSchema = exports.WsEnvelopeSchema = void 0;
4
4
  exports.createEnvelope = createEnvelope;
5
5
  const zod_1 = require("zod");
6
6
  exports.WsEnvelopeSchema = zod_1.z.object({
@@ -13,7 +13,8 @@ exports.TerminalDataPayloadSchema = zod_1.z.object({
13
13
  data: zod_1.z.string(),
14
14
  sequence: zod_1.z.number().optional(),
15
15
  });
16
- exports.TerminalSeedPayloadSchema = zod_1.z.object({
16
+ exports.TerminalSeedPayloadSchema = zod_1.z
17
+ .object({
17
18
  data: zod_1.z.string(),
18
19
  chunk: zod_1.z.number(),
19
20
  totalChunks: zod_1.z.number(),
@@ -22,17 +23,52 @@ exports.TerminalSeedPayloadSchema = zod_1.z.object({
22
23
  hasHistory: zod_1.z.boolean().optional(),
23
24
  cols: zod_1.z.number().optional(),
24
25
  rows: zod_1.z.number().optional(),
26
+ cursorX: zod_1.z.number().optional(),
27
+ cursorY: zod_1.z.number().optional(),
28
+ sequenceEpoch: zod_1.z.string().min(1).optional(),
29
+ recoveryEpoch: zod_1.z.number().int().nonnegative().optional(),
30
+ capturedSequence: zod_1.z.number().int().nonnegative().optional(),
31
+ })
32
+ .superRefine((payload, context) => {
33
+ const present = [payload.sequenceEpoch, payload.recoveryEpoch, payload.capturedSequence].filter((value) => value !== undefined).length;
34
+ if (present !== 0 && present !== 3) {
35
+ context.addIssue({
36
+ code: zod_1.z.ZodIssueCode.custom,
37
+ message: 'sequenceEpoch, recoveryEpoch, and capturedSequence must be provided together',
38
+ });
39
+ }
25
40
  });
41
+ exports.TerminalSeedEmptyPayloadSchema = zod_1.z
42
+ .object({
43
+ capturedSequence: zod_1.z.number().int().nonnegative(),
44
+ cols: zod_1.z.number().optional(),
45
+ rows: zod_1.z.number().optional(),
46
+ })
47
+ .strict();
26
48
  exports.TerminalResizePayloadSchema = zod_1.z.object({
27
49
  rows: zod_1.z.number(),
28
50
  cols: zod_1.z.number(),
29
51
  });
52
+ exports.FullHistoryRequestPayloadSchema = zod_1.z.object({
53
+ sessionId: zod_1.z.string().min(1),
54
+ maxLines: zod_1.z.number().optional(),
55
+ correlationId: zod_1.z.string().optional(),
56
+ });
30
57
  exports.FullHistoryPayloadSchema = zod_1.z.object({
31
58
  history: zod_1.z.string(),
32
59
  cursorX: zod_1.z.number().optional(),
33
60
  cursorY: zod_1.z.number().optional(),
34
61
  hasHistory: zod_1.z.boolean().optional(),
35
62
  capturedSequence: zod_1.z.number().optional(),
63
+ sequenceEpoch: zod_1.z.string().min(1).optional(),
64
+ correlationId: zod_1.z.string().optional(),
65
+ });
66
+ exports.SubscribedPayloadSchema = zod_1.z.object({
67
+ sessionId: zod_1.z.string(),
68
+ currentSequence: zod_1.z.number(),
69
+ sequenceEpoch: zod_1.z.string().min(1),
70
+ replayStatus: zod_1.z.enum(['seed', 'covered', 'gap']),
71
+ historyRefreshable: zod_1.z.boolean(),
36
72
  });
37
73
  exports.SessionStatePayloadSchema = zod_1.z.object({
38
74
  sessionId: zod_1.z.string(),
@@ -43,6 +79,27 @@ exports.ReconnectPayloadSchema = zod_1.z.object({
43
79
  lastSequence: zod_1.z.number().optional(),
44
80
  sessionId: zod_1.z.string(),
45
81
  });
82
+ exports.TerminalResyncRequestPayloadSchema = zod_1.z
83
+ .object({
84
+ sessionId: zod_1.z.string().min(1),
85
+ reason: zod_1.z.literal('client_write_overflow'),
86
+ })
87
+ .strict();
88
+ exports.TerminalResyncAbortPayloadSchema = zod_1.z
89
+ .object({
90
+ sessionId: zod_1.z.string().min(1),
91
+ sequenceEpoch: zod_1.z.string().min(1).optional(),
92
+ recoveryEpoch: zod_1.z.number().int().nonnegative(),
93
+ })
94
+ .strict();
95
+ exports.TerminalResyncCompletePayloadSchema = zod_1.z
96
+ .object({
97
+ sessionId: zod_1.z.string().min(1),
98
+ sequenceEpoch: zod_1.z.string().min(1).optional(),
99
+ recoveryEpoch: zod_1.z.number().int().nonnegative(),
100
+ capturedSequence: zod_1.z.number().int().nonnegative(),
101
+ })
102
+ .strict();
46
103
  exports.HeartbeatPayloadSchema = zod_1.z.object({
47
104
  timestamp: zod_1.z.string().datetime(),
48
105
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ws-envelope.dto.js","sourceRoot":"","sources":["../../../../src/modules/terminal/dtos/ws-envelope.dto.ts"],"names":[],"mappings":";;;AA0FA,wCAOC;AAjGD,6BAAwB;AAMX,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;IACpB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC1B,CAAC,CAAC;AAOU,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEU,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IAEvB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAElC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAEU,QAAA,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC;IAClD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAKU,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAUU,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChD,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC1D,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAOU,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAOU,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAOH,SAAgB,cAAc,CAAC,KAAa,EAAE,IAAY,EAAE,OAAgB;IAC1E,OAAO;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ws-envelope.dto.js","sourceRoot":"","sources":["../../../../src/modules/terminal/dtos/ws-envelope.dto.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,9 @@ import { TerminalSeedService } from '../services/terminal-seed.service';
8
8
  import { SettingsService } from '../../settings/services/settings.service';
9
9
  import { SessionsService } from '../../sessions/services/sessions.service';
10
10
  import { RealtimeBroadcastService } from '../../realtime/services/realtime-broadcast.service';
11
+ import { MetricsService } from '../../metrics/services/metrics.service';
12
+ import type { SocketStats } from '../../metrics/types/metrics.types';
13
+ import { TerminalSendSchedulerService } from '../services/terminal-send-scheduler.service';
11
14
  export declare class TerminalGateway implements OnGatewayConnection, OnGatewayDisconnect {
12
15
  private readonly streamService;
13
16
  private readonly settingsService;
@@ -17,6 +20,8 @@ export declare class TerminalGateway implements OnGatewayConnection, OnGatewayDi
17
20
  private readonly registry;
18
21
  private readonly sessionsService;
19
22
  private readonly realtimeBroadcast;
23
+ private readonly sendScheduler;
24
+ private readonly metricsService;
20
25
  server: Server;
21
26
  private clientSessions;
22
27
  private frameListeners;
@@ -24,17 +29,38 @@ export declare class TerminalGateway implements OnGatewayConnection, OnGatewayDi
24
29
  private inputRateTracker;
25
30
  private readonly themeCache;
26
31
  private readonly viewportRestoreAt;
27
- constructor(streamService: TerminalStreamService, settingsService: SettingsService, ptyService: PtyService, seedService: TerminalSeedService, terminalIO: TerminalIOService, registry: TerminalSessionRegistry, sessionsService: SessionsService, realtimeBroadcast: RealtimeBroadcastService);
32
+ private readonly recoveries;
33
+ private readonly targetedSeedAttempts;
34
+ constructor(streamService: TerminalStreamService, settingsService: SettingsService, ptyService: PtyService, seedService: TerminalSeedService, terminalIO: TerminalIOService, registry: TerminalSessionRegistry, sessionsService: SessionsService, realtimeBroadcast: RealtimeBroadcastService, sendScheduler: TerminalSendSchedulerService, metricsService: MetricsService);
28
35
  afterInit(): void;
36
+ getSocketStats(): SocketStats;
29
37
  handleConnection(client: Socket): void;
30
38
  handleDisconnect(client: Socket): void;
31
39
  private releaseClientSession;
32
40
  handleSubscribe(client: Socket, payload: {
33
41
  sessionId: string;
34
42
  lastSequence?: number;
43
+ sequenceEpoch?: string;
35
44
  rows?: number;
36
45
  cols?: number;
37
46
  }): Promise<void>;
47
+ private resolveSubscribeReplay;
48
+ private applySubscribeReplay;
49
+ private emitSubscribed;
50
+ private emitReplayResync;
51
+ private emitTargetedSeed;
52
+ handleResyncRequest(client: Socket, payload: unknown): Promise<void>;
53
+ handleResyncAbort(client: Socket, payload: unknown): boolean;
54
+ handleResyncComplete(client: Socket, payload: unknown): void;
55
+ private startRecovery;
56
+ private enqueueLiveOrRecover;
57
+ private launchRecovery;
58
+ private deliverCoveredTail;
59
+ private scheduleReplacementSeed;
60
+ private disconnectUnrecoverableRecovery;
61
+ private finishRecovery;
62
+ private isCurrentRecovery;
63
+ private recoveryKey;
38
64
  handleEventsSubscribe(client: Socket): void;
39
65
  handleChatSubscribe(client: Socket, payload: {
40
66
  threadId: string;
@@ -65,12 +91,14 @@ export declare class TerminalGateway implements OnGatewayConnection, OnGatewayDi
65
91
  handleRequestFullHistory(client: Socket, payload: {
66
92
  sessionId: string;
67
93
  maxLines?: number;
94
+ correlationId?: string;
68
95
  }): Promise<void>;
69
96
  handleRestoreViewportModes(client: Socket, payload: {
70
97
  sessionId: string;
71
98
  }): void;
72
99
  handlePong(client: Socket): void;
73
100
  broadcastTerminalData(sessionId: string, data: string): void;
101
+ private hasWebSubscribers;
74
102
  handleSessionCrashed(payload: {
75
103
  sessionId: string;
76
104
  sessionName: string;
@@ -96,8 +124,12 @@ export declare class TerminalGateway implements OnGatewayConnection, OnGatewayDi
96
124
  private wireFrameListener;
97
125
  private unwireFrameListener;
98
126
  private handleDeadTmuxSession;
127
+ private cancelReplayCleanup;
128
+ private cleanupSessionLifecycle;
129
+ private retireSessionRecoveries;
99
130
  private ensurePtyStreaming;
100
131
  private maybeRestoreViewportModes;
101
132
  private trackInputRate;
133
+ private pruneInputRateEntries;
102
134
  onModuleDestroy(): void;
103
135
  }