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.
- package/README.md +222 -0
- package/bin/nebula-notebook.js +33 -0
- package/dist/assets/index-C1h_sArD.css +32 -0
- package/dist/assets/index-CDSTBon8.js +658 -0
- package/dist/favicon.svg +11 -0
- package/dist/index.html +73 -0
- package/node-server/dist/app.d.ts +5 -0
- package/node-server/dist/app.js +38 -0
- package/node-server/dist/auth/auth-middleware.d.ts +24 -0
- package/node-server/dist/auth/auth-middleware.js +276 -0
- package/node-server/dist/auth/auth-service.d.ts +84 -0
- package/node-server/dist/auth/auth-service.js +265 -0
- package/node-server/dist/auth/index.d.ts +3 -0
- package/node-server/dist/auth/index.js +8 -0
- package/node-server/dist/cluster/client-registration.d.ts +43 -0
- package/node-server/dist/cluster/client-registration.js +217 -0
- package/node-server/dist/cluster/cluster-secret.d.ts +11 -0
- package/node-server/dist/cluster/cluster-secret.js +90 -0
- package/node-server/dist/cluster/kernel-proxy.d.ts +100 -0
- package/node-server/dist/cluster/kernel-proxy.js +361 -0
- package/node-server/dist/cluster/server-registry.d.ts +109 -0
- package/node-server/dist/cluster/server-registry.js +217 -0
- package/node-server/dist/config/output-limits.d.ts +7 -0
- package/node-server/dist/config/output-limits.js +10 -0
- package/node-server/dist/discovery/discovery-service.d.ts +198 -0
- package/node-server/dist/discovery/discovery-service.js +811 -0
- package/node-server/dist/discovery/index.d.ts +5 -0
- package/node-server/dist/discovery/index.js +21 -0
- package/node-server/dist/discovery/types.d.ts +48 -0
- package/node-server/dist/discovery/types.js +24 -0
- package/node-server/dist/fs/fs-service.d.ts +218 -0
- package/node-server/dist/fs/fs-service.js +1422 -0
- package/node-server/dist/fs/index.d.ts +5 -0
- package/node-server/dist/fs/index.js +21 -0
- package/node-server/dist/fs/types.d.ts +132 -0
- package/node-server/dist/fs/types.js +5 -0
- package/node-server/dist/index.d.ts +13 -0
- package/node-server/dist/index.js +556 -0
- package/node-server/dist/kernel/default-kernel.d.ts +5 -0
- package/node-server/dist/kernel/default-kernel.js +138 -0
- package/node-server/dist/kernel/index.d.ts +7 -0
- package/node-server/dist/kernel/index.js +23 -0
- package/node-server/dist/kernel/kernel-service.d.ts +290 -0
- package/node-server/dist/kernel/kernel-service.js +1714 -0
- package/node-server/dist/kernel/kernelspec.d.ts +29 -0
- package/node-server/dist/kernel/kernelspec.js +210 -0
- package/node-server/dist/kernel/session-store.d.ts +87 -0
- package/node-server/dist/kernel/session-store.js +303 -0
- package/node-server/dist/kernel/types.d.ts +143 -0
- package/node-server/dist/kernel/types.js +17 -0
- package/node-server/dist/llm/index.d.ts +5 -0
- package/node-server/dist/llm/index.js +21 -0
- package/node-server/dist/llm/llm-service.d.ts +77 -0
- package/node-server/dist/llm/llm-service.js +454 -0
- package/node-server/dist/llm/types.d.ts +40 -0
- package/node-server/dist/llm/types.js +15 -0
- package/node-server/dist/notebook/cell-metadata.d.ts +27 -0
- package/node-server/dist/notebook/cell-metadata.js +76 -0
- package/node-server/dist/notebook/headless-handler.d.ts +127 -0
- package/node-server/dist/notebook/headless-handler.js +1530 -0
- package/node-server/dist/notebook/notebook-websocket.d.ts +12 -0
- package/node-server/dist/notebook/notebook-websocket.js +103 -0
- package/node-server/dist/notebook/operation-router.d.ts +115 -0
- package/node-server/dist/notebook/operation-router.js +641 -0
- package/node-server/dist/notebook/undoRedoManager.d.ts +194 -0
- package/node-server/dist/notebook/undoRedoManager.js +558 -0
- package/node-server/dist/output/display-data.d.ts +14 -0
- package/node-server/dist/output/display-data.js +134 -0
- package/node-server/dist/resources/resource-service.d.ts +69 -0
- package/node-server/dist/resources/resource-service.js +363 -0
- package/node-server/dist/routes/auth.d.ts +5 -0
- package/node-server/dist/routes/auth.js +61 -0
- package/node-server/dist/routes/cluster.d.ts +7 -0
- package/node-server/dist/routes/cluster.js +94 -0
- package/node-server/dist/routes/fs.d.ts +7 -0
- package/node-server/dist/routes/fs.js +392 -0
- package/node-server/dist/routes/kernel.d.ts +13 -0
- package/node-server/dist/routes/kernel.js +637 -0
- package/node-server/dist/routes/llm.d.ts +8 -0
- package/node-server/dist/routes/llm.js +105 -0
- package/node-server/dist/routes/notebook.d.ts +10 -0
- package/node-server/dist/routes/notebook.js +335 -0
- package/node-server/dist/routes/python.d.ts +8 -0
- package/node-server/dist/routes/python.js +187 -0
- package/node-server/dist/routes/resources.d.ts +7 -0
- package/node-server/dist/routes/resources.js +77 -0
- package/node-server/dist/scripts/show-auth-qr.d.ts +1 -0
- package/node-server/dist/scripts/show-auth-qr.js +81 -0
- package/node-server/dist/terminal/pty-manager.d.ts +100 -0
- package/node-server/dist/terminal/pty-manager.js +246 -0
- package/node-server/dist/terminal/server.d.ts +19 -0
- package/node-server/dist/terminal/server.js +254 -0
- package/node-server/dist/terminal/types.d.ts +50 -0
- package/node-server/dist/terminal/types.js +9 -0
- package/node-server/package.json +45 -0
- package/package.json +99 -0
- package/scripts/postinstall.cjs +26 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Headless Undo/Redo Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages undo/redo state for notebooks when operated via the headless backend (MCP).
|
|
5
|
+
* This mirrors the frontend UndoRedoManager but uses NebulaCell types.
|
|
6
|
+
*
|
|
7
|
+
* Note: This is a simplified version of lib/undoRedoCore.ts adapted for the backend.
|
|
8
|
+
* The core logic is intentionally similar to maintain feature parity.
|
|
9
|
+
*/
|
|
10
|
+
import { NebulaCell } from '../fs/types';
|
|
11
|
+
import { FilesystemService } from '../fs/fs-service';
|
|
12
|
+
export type EditSource = 'user' | 'ai' | 'mcp' | 'system' | 'error';
|
|
13
|
+
export type MetadataChanges = Record<string, {
|
|
14
|
+
old: unknown;
|
|
15
|
+
new: unknown;
|
|
16
|
+
}>;
|
|
17
|
+
/** Patch format for content updates (diff-match-patch compatible) */
|
|
18
|
+
export interface Patch {
|
|
19
|
+
diffs: Array<[number, string]>;
|
|
20
|
+
start1: number;
|
|
21
|
+
start2: number;
|
|
22
|
+
length1: number;
|
|
23
|
+
length2: number;
|
|
24
|
+
}
|
|
25
|
+
export type UndoableOperation = {
|
|
26
|
+
type: 'insertCell';
|
|
27
|
+
index: number;
|
|
28
|
+
cell: NebulaCell;
|
|
29
|
+
source?: EditSource;
|
|
30
|
+
} | {
|
|
31
|
+
type: 'deleteCell';
|
|
32
|
+
index: number;
|
|
33
|
+
cell: NebulaCell;
|
|
34
|
+
source?: EditSource;
|
|
35
|
+
} | {
|
|
36
|
+
type: 'moveCell';
|
|
37
|
+
fromIndex: number;
|
|
38
|
+
toIndex: number;
|
|
39
|
+
source?: EditSource;
|
|
40
|
+
} | {
|
|
41
|
+
type: 'updateContent';
|
|
42
|
+
cellId: string;
|
|
43
|
+
oldContent: string;
|
|
44
|
+
newContent: string;
|
|
45
|
+
source?: EditSource;
|
|
46
|
+
} | {
|
|
47
|
+
type: 'updateMetadata';
|
|
48
|
+
cellId: string;
|
|
49
|
+
changes: MetadataChanges;
|
|
50
|
+
source?: EditSource;
|
|
51
|
+
} | {
|
|
52
|
+
type: 'batch';
|
|
53
|
+
operations: UndoableOperation[];
|
|
54
|
+
source?: EditSource;
|
|
55
|
+
};
|
|
56
|
+
export type EventCategory = 'execution' | 'kernel' | 'system' | 'ui';
|
|
57
|
+
export type EventTarget = {
|
|
58
|
+
cellId?: string;
|
|
59
|
+
cellIndex?: number;
|
|
60
|
+
};
|
|
61
|
+
export type EventOperation = {
|
|
62
|
+
type: 'event';
|
|
63
|
+
category: EventCategory;
|
|
64
|
+
name: string;
|
|
65
|
+
target?: EventTarget;
|
|
66
|
+
runId?: string;
|
|
67
|
+
data?: Record<string, unknown>;
|
|
68
|
+
source?: EditSource;
|
|
69
|
+
};
|
|
70
|
+
export type LegacyLogOperation = {
|
|
71
|
+
type: 'runCell';
|
|
72
|
+
cellId: string;
|
|
73
|
+
cellIndex: number;
|
|
74
|
+
runId?: string;
|
|
75
|
+
} | {
|
|
76
|
+
type: 'runAllCells';
|
|
77
|
+
cellCount?: number;
|
|
78
|
+
cellIds?: string[];
|
|
79
|
+
} | {
|
|
80
|
+
type: 'interruptKernel';
|
|
81
|
+
} | {
|
|
82
|
+
type: 'restartKernel';
|
|
83
|
+
} | {
|
|
84
|
+
type: 'runCellComplete';
|
|
85
|
+
cellId: string;
|
|
86
|
+
cellIndex: number;
|
|
87
|
+
durationMs: number;
|
|
88
|
+
success: boolean;
|
|
89
|
+
output?: string;
|
|
90
|
+
runId?: string;
|
|
91
|
+
};
|
|
92
|
+
export type LogOperation = EventOperation | LegacyLogOperation;
|
|
93
|
+
export interface SnapshotOperation {
|
|
94
|
+
type: 'snapshot';
|
|
95
|
+
cells: NebulaCell[];
|
|
96
|
+
}
|
|
97
|
+
export interface BaseOperation {
|
|
98
|
+
timestamp: number;
|
|
99
|
+
operationId?: string;
|
|
100
|
+
isUndo?: boolean;
|
|
101
|
+
undoesOperationId?: string;
|
|
102
|
+
}
|
|
103
|
+
export type TimestampedOperation = BaseOperation & (UndoableOperation | LogOperation | SnapshotOperation);
|
|
104
|
+
export type Operation = UndoableOperation;
|
|
105
|
+
export interface UndoRedoResult {
|
|
106
|
+
success: boolean;
|
|
107
|
+
affectedCellIds: string[];
|
|
108
|
+
operationType: string;
|
|
109
|
+
error?: string;
|
|
110
|
+
}
|
|
111
|
+
/** Summary of an update for agent awareness */
|
|
112
|
+
export interface UpdateSummary {
|
|
113
|
+
kind: 'edit' | 'event';
|
|
114
|
+
type: string;
|
|
115
|
+
category?: EventCategory;
|
|
116
|
+
name?: string;
|
|
117
|
+
cellId?: string;
|
|
118
|
+
cellIndex?: number;
|
|
119
|
+
timestamp: number;
|
|
120
|
+
description: string;
|
|
121
|
+
source?: EditSource;
|
|
122
|
+
runId?: string;
|
|
123
|
+
data?: Record<string, unknown>;
|
|
124
|
+
}
|
|
125
|
+
interface NotebookUndoState {
|
|
126
|
+
undoStack: Operation[];
|
|
127
|
+
redoStack: Operation[];
|
|
128
|
+
fullHistory: TimestampedOperation[];
|
|
129
|
+
lastContent: Map<string, string>;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Manages undo/redo state for multiple notebooks in the headless backend.
|
|
133
|
+
*/
|
|
134
|
+
export declare class HeadlessUndoRedoManager {
|
|
135
|
+
private states;
|
|
136
|
+
private fsService;
|
|
137
|
+
constructor(fsService: FilesystemService);
|
|
138
|
+
/**
|
|
139
|
+
* Get or initialize undo state for a notebook.
|
|
140
|
+
*/
|
|
141
|
+
getState(notebookPath: string, cells: NebulaCell[]): NotebookUndoState;
|
|
142
|
+
/**
|
|
143
|
+
* Rebuild undo stack from history.
|
|
144
|
+
*/
|
|
145
|
+
private rebuildUndoStack;
|
|
146
|
+
/**
|
|
147
|
+
* Record an operation (called by headless handler after executing an operation).
|
|
148
|
+
*/
|
|
149
|
+
recordOperation(notebookPath: string, cells: NebulaCell[], op: UndoableOperation): void;
|
|
150
|
+
/**
|
|
151
|
+
* Record a non-undoable log operation (history only).
|
|
152
|
+
*/
|
|
153
|
+
recordLogOperation(notebookPath: string, cells: NebulaCell[], op: LogOperation): void;
|
|
154
|
+
/**
|
|
155
|
+
* Undo the last operation.
|
|
156
|
+
*/
|
|
157
|
+
undo(notebookPath: string, cells: NebulaCell[]): {
|
|
158
|
+
cells: NebulaCell[];
|
|
159
|
+
result: UndoRedoResult;
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* Redo the last undone operation.
|
|
163
|
+
*/
|
|
164
|
+
redo(notebookPath: string, cells: NebulaCell[]): {
|
|
165
|
+
cells: NebulaCell[];
|
|
166
|
+
result: UndoRedoResult;
|
|
167
|
+
};
|
|
168
|
+
private updateContentTrackingAfterUndo;
|
|
169
|
+
private updateContentTrackingAfterRedo;
|
|
170
|
+
/**
|
|
171
|
+
* Check if undo is available.
|
|
172
|
+
*/
|
|
173
|
+
canUndo(notebookPath: string, cells: NebulaCell[]): boolean;
|
|
174
|
+
/**
|
|
175
|
+
* Check if redo is available.
|
|
176
|
+
*/
|
|
177
|
+
canRedo(notebookPath: string, cells: NebulaCell[]): boolean;
|
|
178
|
+
/**
|
|
179
|
+
* Get history for a notebook.
|
|
180
|
+
*/
|
|
181
|
+
getHistory(notebookPath: string, cells: NebulaCell[]): TimestampedOperation[];
|
|
182
|
+
/**
|
|
183
|
+
* Clear state for a notebook (e.g., when closing).
|
|
184
|
+
*/
|
|
185
|
+
clearState(notebookPath: string): void;
|
|
186
|
+
/**
|
|
187
|
+
* Get updates since a timestamp (for agent awareness).
|
|
188
|
+
* Returns human-readable summaries of operations made between agent sessions.
|
|
189
|
+
* Includes both edits and non-undoable events (no source filtering).
|
|
190
|
+
*/
|
|
191
|
+
getUpdatesSince(notebookPath: string, cells: NebulaCell[], sinceTimestamp: number): UpdateSummary[];
|
|
192
|
+
}
|
|
193
|
+
export declare function getUndoRedoManager(fsService: FilesystemService): HeadlessUndoRedoManager;
|
|
194
|
+
export {};
|