@jupyterlite/services 0.1.0 → 0.7.0-rc.0

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 (87) hide show
  1. package/lib/contents/drive.d.ts +277 -0
  2. package/lib/contents/drive.js +888 -0
  3. package/lib/contents/drive.js.map +1 -0
  4. package/lib/contents/drivecontents.d.ts +92 -0
  5. package/lib/contents/drivecontents.js +132 -0
  6. package/lib/contents/drivecontents.js.map +1 -0
  7. package/lib/contents/drivefs.d.ts +245 -0
  8. package/lib/contents/drivefs.js +481 -0
  9. package/lib/contents/drivefs.js.map +1 -0
  10. package/lib/contents/emscripten.d.ts +96 -0
  11. package/lib/contents/emscripten.js +10 -0
  12. package/lib/contents/emscripten.js.map +1 -0
  13. package/lib/contents/index.d.ts +5 -0
  14. package/lib/contents/index.js +8 -0
  15. package/lib/contents/index.js.map +1 -0
  16. package/lib/contents/tokens.d.ts +21 -0
  17. package/lib/contents/tokens.js +55 -0
  18. package/lib/contents/tokens.js.map +1 -0
  19. package/lib/index.d.ts +9 -0
  20. package/lib/index.js +12 -0
  21. package/lib/index.js.map +1 -0
  22. package/lib/kernel/base.d.ts +245 -0
  23. package/lib/kernel/base.js +457 -0
  24. package/lib/kernel/base.js.map +1 -0
  25. package/lib/kernel/client.d.ts +114 -0
  26. package/lib/kernel/client.js +375 -0
  27. package/lib/kernel/client.js.map +1 -0
  28. package/lib/kernel/index.d.ts +5 -0
  29. package/lib/kernel/index.js +8 -0
  30. package/lib/kernel/index.js.map +1 -0
  31. package/lib/kernel/kernelspecclient.d.ts +39 -0
  32. package/lib/kernel/kernelspecclient.js +37 -0
  33. package/lib/kernel/kernelspecclient.js.map +1 -0
  34. package/lib/kernel/kernelspecs.d.ts +59 -0
  35. package/lib/kernel/kernelspecs.js +62 -0
  36. package/lib/kernel/kernelspecs.js.map +1 -0
  37. package/lib/kernel/tokens.d.ts +163 -0
  38. package/lib/kernel/tokens.js +20 -0
  39. package/lib/kernel/tokens.js.map +1 -0
  40. package/lib/nbconvert/exporters.d.ts +80 -0
  41. package/lib/nbconvert/exporters.js +154 -0
  42. package/lib/nbconvert/exporters.js.map +1 -0
  43. package/lib/nbconvert/index.d.ts +3 -0
  44. package/lib/nbconvert/index.js +6 -0
  45. package/lib/nbconvert/index.js.map +1 -0
  46. package/lib/nbconvert/manager.d.ts +66 -0
  47. package/lib/nbconvert/manager.js +77 -0
  48. package/lib/nbconvert/manager.js.map +1 -0
  49. package/lib/nbconvert/tokens.d.ts +49 -0
  50. package/lib/nbconvert/tokens.js +8 -0
  51. package/lib/nbconvert/tokens.js.map +1 -0
  52. package/lib/session/client.d.ts +85 -0
  53. package/lib/session/client.js +200 -0
  54. package/lib/session/client.js.map +1 -0
  55. package/lib/session/index.d.ts +1 -0
  56. package/lib/session/index.js +4 -0
  57. package/lib/session/index.js.map +1 -0
  58. package/lib/settings/index.d.ts +1 -0
  59. package/lib/settings/index.js +4 -0
  60. package/lib/settings/index.js.map +1 -0
  61. package/lib/settings/settings.d.ts +91 -0
  62. package/lib/settings/settings.js +185 -0
  63. package/lib/settings/settings.js.map +1 -0
  64. package/package.json +67 -8
  65. package/src/contents/drive.ts +1030 -0
  66. package/src/contents/drivecontents.ts +253 -0
  67. package/src/contents/drivefs.ts +824 -0
  68. package/src/contents/emscripten.ts +148 -0
  69. package/src/contents/index.ts +8 -0
  70. package/src/contents/tokens.ts +61 -0
  71. package/src/index.ts +13 -0
  72. package/src/kernel/base.ts +637 -0
  73. package/src/kernel/client.ts +483 -0
  74. package/src/kernel/index.ts +8 -0
  75. package/src/kernel/kernelspecclient.ts +64 -0
  76. package/src/kernel/kernelspecs.ts +103 -0
  77. package/src/kernel/tokens.ts +222 -0
  78. package/src/nbconvert/exporters.ts +177 -0
  79. package/src/nbconvert/index.ts +6 -0
  80. package/src/nbconvert/manager.ts +105 -0
  81. package/src/nbconvert/tokens.ts +60 -0
  82. package/src/session/client.ts +251 -0
  83. package/src/session/index.ts +4 -0
  84. package/src/settings/index.ts +4 -0
  85. package/src/settings/settings.ts +236 -0
  86. package/style/index.css +6 -0
  87. package/style/index.js +6 -0
@@ -0,0 +1,637 @@
1
+ import { KernelMessage } from '@jupyterlab/services';
2
+
3
+ import { ISignal, Signal } from '@lumino/signaling';
4
+
5
+ import { IKernel } from './tokens';
6
+
7
+ /**
8
+ * A base kernel class handling basic kernel messaging.
9
+ */
10
+ export abstract class BaseKernel implements IKernel {
11
+ /**
12
+ * Construct a new BaseKernel.
13
+ *
14
+ * @param options The instantiation options for a BaseKernel.
15
+ */
16
+ constructor(options: IKernel.IOptions) {
17
+ const { id, name, location, sendMessage } = options;
18
+ this._id = id;
19
+ this._name = name;
20
+ this._location = location;
21
+ this._sendMessage = sendMessage;
22
+ }
23
+
24
+ /**
25
+ * A promise that is fulfilled when the kernel is ready.
26
+ */
27
+ get ready(): Promise<void> {
28
+ return Promise.resolve();
29
+ }
30
+
31
+ /**
32
+ * Return whether the kernel is disposed.
33
+ */
34
+ get isDisposed(): boolean {
35
+ return this._isDisposed;
36
+ }
37
+
38
+ /**
39
+ * A signal emitted when the kernel is disposed.
40
+ */
41
+ get disposed(): ISignal<this, void> {
42
+ return this._disposed;
43
+ }
44
+
45
+ /**
46
+ * Get the kernel id
47
+ */
48
+ get id(): string {
49
+ return this._id;
50
+ }
51
+
52
+ /**
53
+ * Get the name of the kernel
54
+ */
55
+ get name(): string {
56
+ return this._name;
57
+ }
58
+
59
+ /**
60
+ * The location in the virtual filesystem from which the kernel was started.
61
+ */
62
+ get location(): string {
63
+ return this._location;
64
+ }
65
+
66
+ /**
67
+ * The current execution count
68
+ */
69
+ get executionCount(): number {
70
+ return this._executionCount;
71
+ }
72
+
73
+ /**
74
+ * Get the last parent header
75
+ */
76
+ get parentHeader(): KernelMessage.IHeader<KernelMessage.MessageType> | undefined {
77
+ return this._parentHeader;
78
+ }
79
+
80
+ /**
81
+ * Get the last parent message (mimic ipykernel's get_parent)
82
+ */
83
+ get parent(): KernelMessage.IMessage | undefined {
84
+ return this._parent;
85
+ }
86
+
87
+ /**
88
+ * Dispose the kernel.
89
+ */
90
+ dispose(): void {
91
+ if (this.isDisposed) {
92
+ return;
93
+ }
94
+ this._isDisposed = true;
95
+ this._disposed.emit(void 0);
96
+ }
97
+
98
+ /**
99
+ * Handle an incoming message from the client.
100
+ *
101
+ * @param msg The message to handle
102
+ */
103
+ async handleMessage(msg: KernelMessage.IMessage): Promise<void> {
104
+ this._busy(msg);
105
+
106
+ this._parent = msg;
107
+
108
+ const msgType = msg.header.msg_type;
109
+ switch (msgType) {
110
+ case 'kernel_info_request':
111
+ await this._kernelInfo(msg);
112
+ break;
113
+ case 'execute_request':
114
+ await this._execute(msg);
115
+ break;
116
+ case 'input_reply':
117
+ this.inputReply(msg.content as KernelMessage.IInputReplyMsg['content']);
118
+ break;
119
+ case 'inspect_request':
120
+ await this._inspect(msg);
121
+ break;
122
+ case 'is_complete_request':
123
+ await this._isCompleteRequest(msg);
124
+ break;
125
+ case 'complete_request':
126
+ await this._complete(msg);
127
+ break;
128
+ case 'history_request':
129
+ await this._historyRequest(msg);
130
+ break;
131
+ case 'comm_open':
132
+ await this.commOpen(msg as KernelMessage.ICommOpenMsg);
133
+ break;
134
+ case 'comm_msg':
135
+ await this.commMsg(msg as KernelMessage.ICommMsgMsg);
136
+ break;
137
+ case 'comm_close':
138
+ await this.commClose(msg as KernelMessage.ICommCloseMsg);
139
+ break;
140
+ default:
141
+ break;
142
+ }
143
+
144
+ this._idle(msg);
145
+ }
146
+
147
+ /**
148
+ * Handle a `kernel_info_request` message.
149
+ *
150
+ * @returns A promise that resolves with the kernel info.
151
+ */
152
+ abstract kernelInfoRequest(): Promise<KernelMessage.IInfoReplyMsg['content']>;
153
+
154
+ /**
155
+ * Handle an `execute_request` message.
156
+ *
157
+ * @param content - The content of the execute_request kernel message
158
+ */
159
+ abstract executeRequest(
160
+ content: KernelMessage.IExecuteRequestMsg['content'],
161
+ ): Promise<KernelMessage.IExecuteReplyMsg['content']>;
162
+
163
+ /**
164
+ * Handle a `complete_request` message.
165
+ *
166
+ * @param content - The content of the request.
167
+ */
168
+ abstract completeRequest(
169
+ content: KernelMessage.ICompleteRequestMsg['content'],
170
+ ): Promise<KernelMessage.ICompleteReplyMsg['content']>;
171
+
172
+ /**
173
+ * Handle an `inspect_request` message.
174
+ *
175
+ * @param content - The content of the request.
176
+ *
177
+ * @returns A promise that resolves with the response message.
178
+ */
179
+ abstract inspectRequest(
180
+ content: KernelMessage.IInspectRequestMsg['content'],
181
+ ): Promise<KernelMessage.IInspectReplyMsg['content']>;
182
+
183
+ /**
184
+ * Handle an `is_complete_request` message.
185
+ *
186
+ * @param content - The content of the request.
187
+ *
188
+ * @returns A promise that resolves with the response message.
189
+ */
190
+ abstract isCompleteRequest(
191
+ content: KernelMessage.IIsCompleteRequestMsg['content'],
192
+ ): Promise<KernelMessage.IIsCompleteReplyMsg['content']>;
193
+
194
+ /**
195
+ * Handle a `comm_info_request` message.
196
+ *
197
+ * @param content - The content of the request.
198
+ *
199
+ * @returns A promise that resolves with the response message.
200
+ */
201
+ abstract commInfoRequest(
202
+ content: KernelMessage.ICommInfoRequestMsg['content'],
203
+ ): Promise<KernelMessage.ICommInfoReplyMsg['content']>;
204
+
205
+ /**
206
+ * Send an `input_reply` message.
207
+ *
208
+ * @param content - The content of the reply.
209
+ */
210
+ abstract inputReply(content: KernelMessage.IInputReplyMsg['content']): void;
211
+
212
+ /**
213
+ * Send an `comm_open` message.
214
+ *
215
+ * @param msg - The comm_open message.
216
+ */
217
+ abstract commOpen(msg: KernelMessage.ICommOpenMsg): Promise<void>;
218
+
219
+ /**
220
+ * Send an `comm_msg` message.
221
+ *
222
+ * @param msg - The comm_msg message.
223
+ */
224
+ abstract commMsg(msg: KernelMessage.ICommMsgMsg): Promise<void>;
225
+
226
+ /**
227
+ * Send an `comm_close` message.
228
+ *
229
+ * @param close - The comm_close message.
230
+ */
231
+ abstract commClose(msg: KernelMessage.ICommCloseMsg): Promise<void>;
232
+
233
+ /**
234
+ * Stream an event from the kernel
235
+ *
236
+ * @param parentHeader The parent header.
237
+ * @param content The stream content.
238
+ */
239
+ protected stream(
240
+ content: KernelMessage.IStreamMsg['content'],
241
+ parentHeader:
242
+ | KernelMessage.IHeader<KernelMessage.MessageType>
243
+ | undefined = undefined,
244
+ ): void {
245
+ const parentHeaderValue =
246
+ typeof parentHeader !== 'undefined' ? parentHeader : this._parentHeader;
247
+ const message = KernelMessage.createMessage<KernelMessage.IStreamMsg>({
248
+ channel: 'iopub',
249
+ msgType: 'stream',
250
+ // TODO: better handle this
251
+ session: parentHeaderValue?.session ?? '',
252
+ parentHeader: parentHeaderValue,
253
+ content,
254
+ });
255
+ this._sendMessage(message);
256
+ }
257
+
258
+ /**
259
+ * Send a `display_data` message to the client.
260
+ *
261
+ * @param parentHeader The parent header.
262
+ * @param content The display_data content.
263
+ */
264
+ protected displayData(
265
+ content: KernelMessage.IDisplayDataMsg['content'],
266
+ parentHeader:
267
+ | KernelMessage.IHeader<KernelMessage.MessageType>
268
+ | undefined = undefined,
269
+ ): void {
270
+ // Make sure metadata is always set
271
+ const parentHeaderValue =
272
+ typeof parentHeader !== 'undefined' ? parentHeader : this._parentHeader;
273
+ content.metadata = content.metadata ?? {};
274
+
275
+ const message = KernelMessage.createMessage<KernelMessage.IDisplayDataMsg>({
276
+ channel: 'iopub',
277
+ msgType: 'display_data',
278
+ // TODO: better handle this
279
+ session: parentHeaderValue?.session ?? '',
280
+ parentHeader: parentHeaderValue,
281
+ content,
282
+ });
283
+ this._sendMessage(message);
284
+ }
285
+
286
+ /**
287
+ * Send a `input_request` message to the client.
288
+ *
289
+ * @param parentHeader The parent header.
290
+ * @param content The input_request content.
291
+ */
292
+ protected inputRequest(
293
+ content: KernelMessage.IInputRequestMsg['content'],
294
+ parentHeader:
295
+ | KernelMessage.IHeader<KernelMessage.MessageType>
296
+ | undefined = undefined,
297
+ ): void {
298
+ const parentHeaderValue =
299
+ typeof parentHeader !== 'undefined' ? parentHeader : this._parentHeader;
300
+ const message = KernelMessage.createMessage<KernelMessage.IInputRequestMsg>({
301
+ channel: 'stdin',
302
+ msgType: 'input_request',
303
+ // TODO: better handle this
304
+ session: parentHeaderValue?.session ?? '',
305
+ parentHeader: parentHeaderValue,
306
+ content,
307
+ });
308
+ this._sendMessage(message);
309
+ }
310
+
311
+ /**
312
+ * Send an `execute_result` message.
313
+ *
314
+ * @param parentHeader The parent header.
315
+ * @param content The execute result content.
316
+ */
317
+ protected publishExecuteResult(
318
+ content: KernelMessage.IExecuteResultMsg['content'],
319
+ parentHeader:
320
+ | KernelMessage.IHeader<KernelMessage.MessageType>
321
+ | undefined = undefined,
322
+ ): void {
323
+ const parentHeaderValue =
324
+ typeof parentHeader !== 'undefined' ? parentHeader : this._parentHeader;
325
+ const message = KernelMessage.createMessage<KernelMessage.IExecuteResultMsg>({
326
+ channel: 'iopub',
327
+ msgType: 'execute_result',
328
+ // TODO: better handle this
329
+ session: parentHeaderValue?.session ?? '',
330
+ parentHeader: parentHeaderValue,
331
+ content,
332
+ });
333
+ this._sendMessage(message);
334
+ }
335
+
336
+ /**
337
+ * Send an `error` message to the client.
338
+ *
339
+ * @param parentHeader The parent header.
340
+ * @param content The error content.
341
+ */
342
+ protected publishExecuteError(
343
+ content: KernelMessage.IErrorMsg['content'],
344
+ parentHeader:
345
+ | KernelMessage.IHeader<KernelMessage.MessageType>
346
+ | undefined = undefined,
347
+ ): void {
348
+ const parentHeaderValue =
349
+ typeof parentHeader !== 'undefined' ? parentHeader : this._parentHeader;
350
+ const message = KernelMessage.createMessage<KernelMessage.IErrorMsg>({
351
+ channel: 'iopub',
352
+ msgType: 'error',
353
+ // TODO: better handle this
354
+ session: parentHeaderValue?.session ?? '',
355
+ parentHeader: parentHeaderValue,
356
+ content,
357
+ });
358
+ this._sendMessage(message);
359
+ }
360
+
361
+ /**
362
+ * Send a `update_display_data` message to the client.
363
+ *
364
+ * @param parentHeader The parent header.
365
+ * @param content The update_display_data content.
366
+ */
367
+ protected updateDisplayData(
368
+ content: KernelMessage.IUpdateDisplayDataMsg['content'],
369
+ parentHeader:
370
+ | KernelMessage.IHeader<KernelMessage.MessageType>
371
+ | undefined = undefined,
372
+ ): void {
373
+ const parentHeaderValue =
374
+ typeof parentHeader !== 'undefined' ? parentHeader : this._parentHeader;
375
+ const message = KernelMessage.createMessage<KernelMessage.IUpdateDisplayDataMsg>({
376
+ channel: 'iopub',
377
+ msgType: 'update_display_data',
378
+ // TODO: better handle this
379
+ session: parentHeaderValue?.session ?? '',
380
+ parentHeader: parentHeaderValue,
381
+ content,
382
+ });
383
+ this._sendMessage(message);
384
+ }
385
+
386
+ /**
387
+ * Send a `clear_output` message to the client.
388
+ *
389
+ * @param parentHeader The parent header.
390
+ * @param content The clear_output content.
391
+ */
392
+ protected clearOutput(
393
+ content: KernelMessage.IClearOutputMsg['content'],
394
+ parentHeader:
395
+ | KernelMessage.IHeader<KernelMessage.MessageType>
396
+ | undefined = undefined,
397
+ ): void {
398
+ const parentHeaderValue =
399
+ typeof parentHeader !== 'undefined' ? parentHeader : this._parentHeader;
400
+ const message = KernelMessage.createMessage<KernelMessage.IClearOutputMsg>({
401
+ channel: 'iopub',
402
+ msgType: 'clear_output',
403
+ // TODO: better handle this
404
+ session: parentHeaderValue?.session ?? '',
405
+ parentHeader: parentHeaderValue,
406
+ content,
407
+ });
408
+ this._sendMessage(message);
409
+ }
410
+
411
+ /**
412
+ * Send a `comm` message to the client.
413
+ *
414
+ * @param .
415
+ */
416
+ protected handleComm(
417
+ type: 'comm_close' | 'comm_msg' | 'comm_open',
418
+ content: KernelMessage.ICommMsgMsg['content'],
419
+ metadata: KernelMessage.ICommMsgMsg['metadata'],
420
+ buffers: KernelMessage.ICommMsgMsg['buffers'],
421
+ parentHeader:
422
+ | KernelMessage.IHeader<KernelMessage.MessageType>
423
+ | undefined = undefined,
424
+ ): void {
425
+ const parentHeaderValue =
426
+ typeof parentHeader !== 'undefined' ? parentHeader : this._parentHeader;
427
+ const message = KernelMessage.createMessage<any>({
428
+ channel: 'iopub',
429
+ msgType: type,
430
+ // TODO: better handle this
431
+ session: parentHeaderValue?.session ?? '',
432
+ parentHeader: parentHeaderValue,
433
+ content,
434
+ metadata,
435
+ buffers,
436
+ });
437
+ this._sendMessage(message);
438
+ }
439
+
440
+ /**
441
+ * Send an 'idle' status message.
442
+ *
443
+ * @param parent The parent message
444
+ */
445
+ private _idle(parent: KernelMessage.IMessage): void {
446
+ const message = KernelMessage.createMessage<KernelMessage.IStatusMsg>({
447
+ msgType: 'status',
448
+ session: parent.header.session,
449
+ parentHeader: parent.header,
450
+ channel: 'iopub',
451
+ content: {
452
+ execution_state: 'idle',
453
+ },
454
+ });
455
+ this._sendMessage(message);
456
+ }
457
+
458
+ /**
459
+ * Send a 'busy' status message.
460
+ *
461
+ * @param parent The parent message.
462
+ */
463
+ private _busy(parent: KernelMessage.IMessage): void {
464
+ const message = KernelMessage.createMessage<KernelMessage.IStatusMsg>({
465
+ msgType: 'status',
466
+ session: parent.header.session,
467
+ parentHeader: parent.header,
468
+ channel: 'iopub',
469
+ content: {
470
+ execution_state: 'busy',
471
+ },
472
+ });
473
+ this._sendMessage(message);
474
+ }
475
+
476
+ /**
477
+ * Handle a kernel_info_request message
478
+ *
479
+ * @param parent The parent message.
480
+ */
481
+ private async _kernelInfo(parent: KernelMessage.IMessage): Promise<void> {
482
+ const content = await this.kernelInfoRequest();
483
+
484
+ const message = KernelMessage.createMessage<KernelMessage.IInfoReplyMsg>({
485
+ msgType: 'kernel_info_reply',
486
+ channel: 'shell',
487
+ session: parent.header.session,
488
+ parentHeader: parent.header as KernelMessage.IHeader<'kernel_info_request'>,
489
+ content,
490
+ });
491
+
492
+ this._sendMessage(message);
493
+ }
494
+
495
+ /**
496
+ * Handle a `history_request` message
497
+ *
498
+ * @param msg The parent message.
499
+ */
500
+ private async _historyRequest(msg: KernelMessage.IMessage): Promise<void> {
501
+ const historyMsg = msg as KernelMessage.IHistoryRequestMsg;
502
+ const message = KernelMessage.createMessage<KernelMessage.IHistoryReplyMsg>({
503
+ msgType: 'history_reply',
504
+ channel: 'shell',
505
+ parentHeader: historyMsg.header,
506
+ session: msg.header.session,
507
+ content: {
508
+ status: 'ok',
509
+ history: this._history as KernelMessage.IHistoryReply['history'],
510
+ },
511
+ });
512
+ this._sendMessage(message);
513
+ }
514
+
515
+ /**
516
+ * Send an `execute_input` message.
517
+ *
518
+ * @param msg The parent message.
519
+ */
520
+ private _executeInput(msg: KernelMessage.IMessage): void {
521
+ const parent = msg as KernelMessage.IExecuteInputMsg;
522
+ const code = parent.content.code;
523
+ const message = KernelMessage.createMessage<KernelMessage.IExecuteInputMsg>({
524
+ msgType: 'execute_input',
525
+ parentHeader: parent.header,
526
+ channel: 'iopub',
527
+ session: msg.header.session,
528
+ content: {
529
+ code,
530
+ execution_count: this._executionCount,
531
+ },
532
+ });
533
+ this._sendMessage(message);
534
+ }
535
+
536
+ /**
537
+ * Handle an execute_request message.
538
+ *
539
+ * @param msg The parent message.
540
+ */
541
+ private async _execute(msg: KernelMessage.IMessage): Promise<void> {
542
+ const executeMsg = msg as KernelMessage.IExecuteRequestMsg;
543
+ const content = executeMsg.content;
544
+ if (content.store_history) {
545
+ this._executionCount++;
546
+ }
547
+
548
+ // TODO: handle differently
549
+ this._parentHeader = executeMsg.header;
550
+
551
+ this._executeInput(executeMsg);
552
+
553
+ if (content.store_history) {
554
+ this._history.push([0, 0, content.code]);
555
+ }
556
+
557
+ const reply = await this.executeRequest(executeMsg.content);
558
+ const message = KernelMessage.createMessage<KernelMessage.IExecuteReplyMsg>({
559
+ msgType: 'execute_reply',
560
+ channel: 'shell',
561
+ parentHeader: executeMsg.header,
562
+ session: msg.header.session,
563
+ content: reply,
564
+ });
565
+
566
+ this._sendMessage(message);
567
+ }
568
+
569
+ /**
570
+ * Handle an complete_request message
571
+ *
572
+ * @param msg The parent message.
573
+ */
574
+ private async _complete(msg: KernelMessage.IMessage): Promise<void> {
575
+ const completeMsg = msg as KernelMessage.ICompleteRequestMsg;
576
+ const content = await this.completeRequest(completeMsg.content);
577
+ const message = KernelMessage.createMessage<KernelMessage.ICompleteReplyMsg>({
578
+ msgType: 'complete_reply',
579
+ parentHeader: completeMsg.header,
580
+ channel: 'shell',
581
+ session: msg.header.session,
582
+ content,
583
+ });
584
+
585
+ this._sendMessage(message);
586
+ }
587
+
588
+ /**
589
+ * Handle an inspect_request message
590
+ *
591
+ * @param msg The parent message.
592
+ */
593
+ private async _inspect(msg: KernelMessage.IMessage): Promise<void> {
594
+ const inspectMsg = msg as KernelMessage.IInspectRequestMsg;
595
+ const content = await this.inspectRequest(inspectMsg.content);
596
+ const message = KernelMessage.createMessage<KernelMessage.IInspectReplyMsg>({
597
+ msgType: 'inspect_reply',
598
+ parentHeader: inspectMsg.header,
599
+ channel: 'shell',
600
+ session: msg.header.session,
601
+ content,
602
+ });
603
+
604
+ this._sendMessage(message);
605
+ }
606
+
607
+ /**
608
+ * Handle an is_complete_request message
609
+ *
610
+ * @param msg The parent message.
611
+ */
612
+ private async _isCompleteRequest(msg: KernelMessage.IMessage): Promise<void> {
613
+ const isCompleteMsg = msg as KernelMessage.IIsCompleteRequestMsg;
614
+ const content = await this.isCompleteRequest(isCompleteMsg.content);
615
+ const message = KernelMessage.createMessage<KernelMessage.IIsCompleteReplyMsg>({
616
+ msgType: 'is_complete_reply',
617
+ parentHeader: isCompleteMsg.header,
618
+ channel: 'shell',
619
+ session: msg.header.session,
620
+ content,
621
+ });
622
+
623
+ this._sendMessage(message);
624
+ }
625
+
626
+ private _id: string;
627
+ private _name: string;
628
+ private _location: string;
629
+ private _history: [number, number, string][] = [];
630
+ private _executionCount = 0;
631
+ private _isDisposed = false;
632
+ private _disposed = new Signal<this, void>(this);
633
+ private _sendMessage: IKernel.SendMessage;
634
+ private _parentHeader: KernelMessage.IHeader<KernelMessage.MessageType> | undefined =
635
+ undefined;
636
+ private _parent: KernelMessage.IMessage | undefined = undefined;
637
+ }