nebula-notebook 0.1.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 (97) hide show
  1. package/README.md +222 -0
  2. package/bin/nebula-notebook.js +33 -0
  3. package/dist/assets/index-C1h_sArD.css +32 -0
  4. package/dist/assets/index-CDSTBon8.js +658 -0
  5. package/dist/favicon.svg +11 -0
  6. package/dist/index.html +73 -0
  7. package/node-server/dist/app.d.ts +5 -0
  8. package/node-server/dist/app.js +38 -0
  9. package/node-server/dist/auth/auth-middleware.d.ts +24 -0
  10. package/node-server/dist/auth/auth-middleware.js +276 -0
  11. package/node-server/dist/auth/auth-service.d.ts +84 -0
  12. package/node-server/dist/auth/auth-service.js +265 -0
  13. package/node-server/dist/auth/index.d.ts +3 -0
  14. package/node-server/dist/auth/index.js +8 -0
  15. package/node-server/dist/cluster/client-registration.d.ts +43 -0
  16. package/node-server/dist/cluster/client-registration.js +217 -0
  17. package/node-server/dist/cluster/cluster-secret.d.ts +11 -0
  18. package/node-server/dist/cluster/cluster-secret.js +90 -0
  19. package/node-server/dist/cluster/kernel-proxy.d.ts +100 -0
  20. package/node-server/dist/cluster/kernel-proxy.js +361 -0
  21. package/node-server/dist/cluster/server-registry.d.ts +109 -0
  22. package/node-server/dist/cluster/server-registry.js +217 -0
  23. package/node-server/dist/config/output-limits.d.ts +7 -0
  24. package/node-server/dist/config/output-limits.js +10 -0
  25. package/node-server/dist/discovery/discovery-service.d.ts +198 -0
  26. package/node-server/dist/discovery/discovery-service.js +811 -0
  27. package/node-server/dist/discovery/index.d.ts +5 -0
  28. package/node-server/dist/discovery/index.js +21 -0
  29. package/node-server/dist/discovery/types.d.ts +48 -0
  30. package/node-server/dist/discovery/types.js +24 -0
  31. package/node-server/dist/fs/fs-service.d.ts +218 -0
  32. package/node-server/dist/fs/fs-service.js +1422 -0
  33. package/node-server/dist/fs/index.d.ts +5 -0
  34. package/node-server/dist/fs/index.js +21 -0
  35. package/node-server/dist/fs/types.d.ts +132 -0
  36. package/node-server/dist/fs/types.js +5 -0
  37. package/node-server/dist/index.d.ts +13 -0
  38. package/node-server/dist/index.js +556 -0
  39. package/node-server/dist/kernel/default-kernel.d.ts +5 -0
  40. package/node-server/dist/kernel/default-kernel.js +138 -0
  41. package/node-server/dist/kernel/index.d.ts +7 -0
  42. package/node-server/dist/kernel/index.js +23 -0
  43. package/node-server/dist/kernel/kernel-service.d.ts +290 -0
  44. package/node-server/dist/kernel/kernel-service.js +1714 -0
  45. package/node-server/dist/kernel/kernelspec.d.ts +29 -0
  46. package/node-server/dist/kernel/kernelspec.js +210 -0
  47. package/node-server/dist/kernel/session-store.d.ts +87 -0
  48. package/node-server/dist/kernel/session-store.js +303 -0
  49. package/node-server/dist/kernel/types.d.ts +143 -0
  50. package/node-server/dist/kernel/types.js +17 -0
  51. package/node-server/dist/llm/index.d.ts +5 -0
  52. package/node-server/dist/llm/index.js +21 -0
  53. package/node-server/dist/llm/llm-service.d.ts +77 -0
  54. package/node-server/dist/llm/llm-service.js +454 -0
  55. package/node-server/dist/llm/types.d.ts +40 -0
  56. package/node-server/dist/llm/types.js +15 -0
  57. package/node-server/dist/notebook/cell-metadata.d.ts +27 -0
  58. package/node-server/dist/notebook/cell-metadata.js +76 -0
  59. package/node-server/dist/notebook/headless-handler.d.ts +127 -0
  60. package/node-server/dist/notebook/headless-handler.js +1530 -0
  61. package/node-server/dist/notebook/notebook-websocket.d.ts +12 -0
  62. package/node-server/dist/notebook/notebook-websocket.js +103 -0
  63. package/node-server/dist/notebook/operation-router.d.ts +115 -0
  64. package/node-server/dist/notebook/operation-router.js +641 -0
  65. package/node-server/dist/notebook/undoRedoManager.d.ts +194 -0
  66. package/node-server/dist/notebook/undoRedoManager.js +558 -0
  67. package/node-server/dist/output/display-data.d.ts +14 -0
  68. package/node-server/dist/output/display-data.js +134 -0
  69. package/node-server/dist/resources/resource-service.d.ts +69 -0
  70. package/node-server/dist/resources/resource-service.js +363 -0
  71. package/node-server/dist/routes/auth.d.ts +5 -0
  72. package/node-server/dist/routes/auth.js +61 -0
  73. package/node-server/dist/routes/cluster.d.ts +7 -0
  74. package/node-server/dist/routes/cluster.js +94 -0
  75. package/node-server/dist/routes/fs.d.ts +7 -0
  76. package/node-server/dist/routes/fs.js +392 -0
  77. package/node-server/dist/routes/kernel.d.ts +13 -0
  78. package/node-server/dist/routes/kernel.js +637 -0
  79. package/node-server/dist/routes/llm.d.ts +8 -0
  80. package/node-server/dist/routes/llm.js +105 -0
  81. package/node-server/dist/routes/notebook.d.ts +10 -0
  82. package/node-server/dist/routes/notebook.js +335 -0
  83. package/node-server/dist/routes/python.d.ts +8 -0
  84. package/node-server/dist/routes/python.js +187 -0
  85. package/node-server/dist/routes/resources.d.ts +7 -0
  86. package/node-server/dist/routes/resources.js +77 -0
  87. package/node-server/dist/scripts/show-auth-qr.d.ts +1 -0
  88. package/node-server/dist/scripts/show-auth-qr.js +81 -0
  89. package/node-server/dist/terminal/pty-manager.d.ts +100 -0
  90. package/node-server/dist/terminal/pty-manager.js +246 -0
  91. package/node-server/dist/terminal/server.d.ts +19 -0
  92. package/node-server/dist/terminal/server.js +254 -0
  93. package/node-server/dist/terminal/types.d.ts +50 -0
  94. package/node-server/dist/terminal/types.js +9 -0
  95. package/node-server/package.json +45 -0
  96. package/package.json +99 -0
  97. package/scripts/postinstall.cjs +26 -0
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Kernel Service Types
3
+ *
4
+ * Types for Jupyter kernel management in Node.js
5
+ */
6
+ /**
7
+ * Jupyter kernelspec definition (from kernel.json files)
8
+ */
9
+ export interface KernelSpec {
10
+ name: string;
11
+ displayName: string;
12
+ language: string;
13
+ path: string;
14
+ argv?: string[];
15
+ env?: Record<string, string>;
16
+ }
17
+ /**
18
+ * Jupyter connection configuration
19
+ * Contains port information for ZeroMQ channels
20
+ */
21
+ export interface ConnectionConfig {
22
+ ip: string;
23
+ transport: string;
24
+ signatureScheme: string;
25
+ key: string;
26
+ shellPort: number;
27
+ stdinPort: number;
28
+ controlPort: number;
29
+ iopubPort: number;
30
+ hbPort: number;
31
+ }
32
+ /**
33
+ * Active kernel session
34
+ */
35
+ export interface KernelSession {
36
+ id: string;
37
+ kernelName: string;
38
+ filePath: string | null;
39
+ status: KernelStatus;
40
+ executionCount: number;
41
+ pid: number | null;
42
+ connectionFile: string | null;
43
+ connectionConfig: ConnectionConfig | null;
44
+ createdAt: number;
45
+ lastActivity: number;
46
+ }
47
+ /**
48
+ * Kernel status
49
+ */
50
+ export type KernelStatus = 'starting' | 'idle' | 'busy' | 'dead';
51
+ /**
52
+ * Persisted session for SQLite storage
53
+ */
54
+ export interface PersistedSession {
55
+ sessionId: string;
56
+ kernelName: string;
57
+ filePath: string | null;
58
+ kernelPid: number | null;
59
+ serverId?: string | null;
60
+ serverInstanceId?: string | null;
61
+ kernelStartTime?: string | null;
62
+ status: 'active' | 'orphaned' | 'terminated';
63
+ createdAt: number;
64
+ lastHeartbeat: number;
65
+ connectionFile: string | null;
66
+ connectionConfig: string | null;
67
+ }
68
+ /**
69
+ * Kernel output types (matching Jupyter message types)
70
+ */
71
+ export type JsonValue = string | number | boolean | null | JsonValue[] | {
72
+ [key: string]: JsonValue;
73
+ };
74
+ export type OutputType = 'stdout' | 'stderr' | 'image' | 'html' | 'error' | 'display_data';
75
+ export type MimeBundle = Record<string, JsonValue>;
76
+ /**
77
+ * Kernel output message
78
+ */
79
+ export interface KernelOutput {
80
+ type: OutputType;
81
+ content: string;
82
+ mimeBundle?: MimeBundle;
83
+ metadata?: Record<string, JsonValue>;
84
+ preferredMimeType?: string;
85
+ }
86
+ export interface SequencedKernelOutput {
87
+ seq: number;
88
+ output: KernelOutput;
89
+ cellId?: string | null;
90
+ }
91
+ /**
92
+ * Execution queue metadata for a kernel session.
93
+ */
94
+ export interface ExecutionQueueInfo {
95
+ /** Zero-based position of this request in the session queue. */
96
+ queuePosition: number;
97
+ /** Total number of requests queued for the session at enqueue time (includes this request). */
98
+ queueLength: number;
99
+ }
100
+ /**
101
+ * Execution result
102
+ */
103
+ export interface ExecutionResult {
104
+ status: 'ok' | 'error';
105
+ executionCount: number | null;
106
+ error?: string;
107
+ queuePosition?: number;
108
+ queueLength?: number;
109
+ }
110
+ /**
111
+ * Options for starting a kernel
112
+ */
113
+ export interface StartKernelOptions {
114
+ kernelName?: string;
115
+ cwd?: string;
116
+ filePath?: string;
117
+ }
118
+ /**
119
+ * Session info returned by API
120
+ */
121
+ export interface SessionInfo {
122
+ id: string;
123
+ kernelName: string;
124
+ filePath: string | null;
125
+ status: KernelStatus;
126
+ executionCount: number;
127
+ memoryMb: number | null;
128
+ pid: number | null;
129
+ createdAt: number;
130
+ }
131
+ /**
132
+ * Kernel service configuration
133
+ */
134
+ export interface KernelServiceConfig {
135
+ startupTimeoutSeconds?: number;
136
+ shutdownTimeoutSeconds?: number;
137
+ messageTimeoutSeconds?: number;
138
+ pollingIntervalSeconds?: number;
139
+ }
140
+ /**
141
+ * Default configuration values
142
+ */
143
+ export declare const DEFAULT_CONFIG: Required<KernelServiceConfig>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * Kernel Service Types
4
+ *
5
+ * Types for Jupyter kernel management in Node.js
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.DEFAULT_CONFIG = void 0;
9
+ /**
10
+ * Default configuration values
11
+ */
12
+ exports.DEFAULT_CONFIG = {
13
+ startupTimeoutSeconds: 60,
14
+ shutdownTimeoutSeconds: 10,
15
+ messageTimeoutSeconds: 5,
16
+ pollingIntervalSeconds: 0.1,
17
+ };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * LLM Service Module
3
+ */
4
+ export * from './types';
5
+ export * from './llm-service';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * LLM Service Module
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./types"), exports);
21
+ __exportStar(require("./llm-service"), exports);
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Multi-Provider LLM Service
3
+ *
4
+ * Supports Google Gemini, OpenAI, and Anthropic.
5
+ * Node.js port of the Python LLMService.
6
+ */
7
+ import { LLMConfig, LLMProvider, GenerateOptions, ChatOptions, GenerateStructuredOptions } from './types';
8
+ export declare class LLMService {
9
+ private googleClient;
10
+ private openaiClient;
11
+ private anthropicClient;
12
+ /**
13
+ * Get or create Google GenAI client
14
+ */
15
+ private getGoogleClient;
16
+ /**
17
+ * Get or create OpenAI client
18
+ */
19
+ private getOpenaiClient;
20
+ /**
21
+ * Get or create Anthropic client
22
+ */
23
+ private getAnthropicClient;
24
+ /**
25
+ * Get available providers based on configured API keys
26
+ */
27
+ getAvailableProviders(): Partial<Record<LLMProvider, string[]>>;
28
+ /**
29
+ * Normalize config with defaults
30
+ */
31
+ normalizeConfig(config: LLMConfig): Required<Omit<LLMConfig, 'apiKey'>> & {
32
+ apiKey?: string;
33
+ };
34
+ /**
35
+ * Repair common JSON formatting issues
36
+ */
37
+ repairJson(s: string): string;
38
+ /**
39
+ * Parse JSON with automatic repair on failure
40
+ */
41
+ private parseJsonWithRepair;
42
+ /**
43
+ * Extract JSON from a response that may contain markdown code blocks
44
+ */
45
+ extractJsonFromResponse(response: string): unknown;
46
+ /**
47
+ * Generate response from Google Gemini
48
+ */
49
+ private generateGoogle;
50
+ /**
51
+ * Generate response from OpenAI
52
+ */
53
+ private generateOpenai;
54
+ /**
55
+ * Generate response from Anthropic Claude
56
+ */
57
+ private generateAnthropic;
58
+ /**
59
+ * Generate a response from the LLM
60
+ */
61
+ generate(options: GenerateOptions): Promise<string>;
62
+ /**
63
+ * Generate structured JSON response
64
+ */
65
+ generateStructured(options: GenerateStructuredOptions): Promise<unknown>;
66
+ private generateStructuredGoogle;
67
+ private generateStructuredOpenai;
68
+ private generateStructuredAnthropic;
69
+ /**
70
+ * Chat with conversation history
71
+ */
72
+ chat(options: ChatOptions): Promise<string>;
73
+ private chatGoogle;
74
+ private chatOpenai;
75
+ private chatAnthropic;
76
+ }
77
+ export declare const llmService: LLMService;