@notebook-intelligence/notebook-intelligence 4.1.1 → 4.2.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/lib/api.js +8 -1
- package/lib/chat-sidebar.js +8 -2
- package/lib/components/settings-panel.js +1 -1
- package/lib/index.js +4 -2
- package/lib/tokens.d.ts +4 -0
- package/lib/tokens.js +5 -0
- package/package.json +1 -1
- package/src/api.ts +11 -1
- package/src/chat-sidebar.tsx +10 -5
- package/src/components/settings-panel.tsx +1 -1
- package/src/index.ts +4 -2
- package/src/tokens.ts +5 -0
- package/style/base.css +4 -0
package/lib/api.js
CHANGED
|
@@ -5,7 +5,7 @@ import { requestAPI } from './handler';
|
|
|
5
5
|
import { URLExt } from '@jupyterlab/coreutils';
|
|
6
6
|
import { UUID } from '@lumino/coreutils';
|
|
7
7
|
import { Signal } from '@lumino/signaling';
|
|
8
|
-
import { GITHUB_COPILOT_PROVIDER_ID, RequestDataType, BackendMessageType } from './tokens';
|
|
8
|
+
import { GITHUB_COPILOT_PROVIDER_ID, RequestDataType, BackendMessageType, AssistantMode } from './tokens';
|
|
9
9
|
export var GitHubCopilotLoginStatus;
|
|
10
10
|
(function (GitHubCopilotLoginStatus) {
|
|
11
11
|
GitHubCopilotLoginStatus["NotLoggedIn"] = "NOT_LOGGED_IN";
|
|
@@ -360,6 +360,13 @@ class NBIAPI {
|
|
|
360
360
|
}));
|
|
361
361
|
}
|
|
362
362
|
static async emitTelemetryEvent(event) {
|
|
363
|
+
const assistantMode = this.config.isInClaudeCodeMode
|
|
364
|
+
? AssistantMode.Claude
|
|
365
|
+
: AssistantMode.Default;
|
|
366
|
+
event.data = {
|
|
367
|
+
...(event.data || {}),
|
|
368
|
+
assistantMode
|
|
369
|
+
};
|
|
363
370
|
return new Promise((resolve, reject) => {
|
|
364
371
|
requestAPI('emit-telemetry-event', {
|
|
365
372
|
method: 'POST',
|
package/lib/chat-sidebar.js
CHANGED
|
@@ -985,7 +985,13 @@ function SidebarComponent(props) {
|
|
|
985
985
|
}
|
|
986
986
|
else if (response.type === BackendMessageType.RunUICommand) {
|
|
987
987
|
const messageId = response.id;
|
|
988
|
-
|
|
988
|
+
let result = 'void';
|
|
989
|
+
try {
|
|
990
|
+
result = await app.commands.execute(response.data.commandId, response.data.args);
|
|
991
|
+
}
|
|
992
|
+
catch (error) {
|
|
993
|
+
result = `Error executing command: ${error}`;
|
|
994
|
+
}
|
|
989
995
|
const data = {
|
|
990
996
|
callback_id: response.data.callback_id,
|
|
991
997
|
result: result || 'void'
|
|
@@ -1313,7 +1319,7 @@ function SidebarComponent(props) {
|
|
|
1313
1319
|
"Chat is disabled as you don't have a model configured.",
|
|
1314
1320
|
React.createElement("button", { className: "jp-Dialog-button jp-mod-accept jp-mod-styled", onClick: handleConfigurationClick },
|
|
1315
1321
|
React.createElement("div", { className: "jp-Dialog-buttonLabel" }, "Configure models")))),
|
|
1316
|
-
ghLoginRequired && (React.createElement("div", { className: "sidebar-login-info" },
|
|
1322
|
+
!NBIAPI.config.isInClaudeCodeMode && ghLoginRequired && (React.createElement("div", { className: "sidebar-login-info" },
|
|
1317
1323
|
React.createElement("div", null, "You are not logged in to GitHub Copilot. Please login now to activate chat."),
|
|
1318
1324
|
React.createElement("div", { className: "sidebar-login-buttons" },
|
|
1319
1325
|
React.createElement("button", { className: "jp-Dialog-button jp-mod-accept jp-mod-styled", onClick: handleLoginClick },
|
|
@@ -431,7 +431,7 @@ function SettingsPanelComponentClaude(props) {
|
|
|
431
431
|
settingSources,
|
|
432
432
|
tools
|
|
433
433
|
]);
|
|
434
|
-
return (React.createElement("div", { className: "config-dialog" },
|
|
434
|
+
return (React.createElement("div", { className: "config-dialog claude-mode-config-dialog" },
|
|
435
435
|
React.createElement("div", { className: "config-dialog-body" },
|
|
436
436
|
React.createElement("div", { className: "model-config-section" },
|
|
437
437
|
React.createElement("div", { className: "model-config-section-header" }, "Enable Claude mode"),
|
package/lib/index.js
CHANGED
|
@@ -760,11 +760,12 @@ const plugin = {
|
|
|
760
760
|
const messageCheckTimeout = 5000;
|
|
761
761
|
const messageCheckInterval = 1000;
|
|
762
762
|
let output = '';
|
|
763
|
-
|
|
763
|
+
const messageReceivedHandler = (sender, message) => {
|
|
764
764
|
const content = stripAnsi(message.content.join(''));
|
|
765
765
|
output += content;
|
|
766
766
|
lastMessageReceivedTime = Date.now();
|
|
767
|
-
}
|
|
767
|
+
};
|
|
768
|
+
session.messageReceived.connect(messageReceivedHandler);
|
|
768
769
|
session.send({
|
|
769
770
|
type: 'stdin',
|
|
770
771
|
content: [command + '\n'] // Add newline to execute the command
|
|
@@ -774,6 +775,7 @@ const plugin = {
|
|
|
774
775
|
lastMessageCheckInterval = setInterval(() => {
|
|
775
776
|
if (Date.now() - lastMessageReceivedTime > messageCheckTimeout) {
|
|
776
777
|
clearInterval(lastMessageCheckInterval);
|
|
778
|
+
session.messageReceived.disconnect(messageReceivedHandler);
|
|
777
779
|
resolve(`Command executed in Jupyter terminal, output: ${output}`);
|
|
778
780
|
}
|
|
779
781
|
}, messageCheckInterval);
|
package/lib/tokens.d.ts
CHANGED
|
@@ -96,6 +96,10 @@ export declare enum BuiltinToolsetType {
|
|
|
96
96
|
}
|
|
97
97
|
export declare const GITHUB_COPILOT_PROVIDER_ID = "github-copilot";
|
|
98
98
|
export declare const CLAUDE_CODE_CHAT_PARTICIPANT_ID = "claude-code";
|
|
99
|
+
export declare enum AssistantMode {
|
|
100
|
+
Default = "default",
|
|
101
|
+
Claude = "claude"
|
|
102
|
+
}
|
|
99
103
|
export declare enum TelemetryEventType {
|
|
100
104
|
InlineCompletionRequest = "inline-completion-request",
|
|
101
105
|
ExplainThisRequest = "explain-this-request",
|
package/lib/tokens.js
CHANGED
|
@@ -61,6 +61,11 @@ export var BuiltinToolsetType;
|
|
|
61
61
|
})(BuiltinToolsetType || (BuiltinToolsetType = {}));
|
|
62
62
|
export const GITHUB_COPILOT_PROVIDER_ID = 'github-copilot';
|
|
63
63
|
export const CLAUDE_CODE_CHAT_PARTICIPANT_ID = 'claude-code';
|
|
64
|
+
export var AssistantMode;
|
|
65
|
+
(function (AssistantMode) {
|
|
66
|
+
AssistantMode["Default"] = "default";
|
|
67
|
+
AssistantMode["Claude"] = "claude";
|
|
68
|
+
})(AssistantMode || (AssistantMode = {}));
|
|
64
69
|
export var TelemetryEventType;
|
|
65
70
|
(function (TelemetryEventType) {
|
|
66
71
|
TelemetryEventType["InlineCompletionRequest"] = "inline-completion-request";
|
package/package.json
CHANGED
package/src/api.ts
CHANGED
|
@@ -13,7 +13,8 @@ import {
|
|
|
13
13
|
ITelemetryEvent,
|
|
14
14
|
IToolSelections,
|
|
15
15
|
RequestDataType,
|
|
16
|
-
BackendMessageType
|
|
16
|
+
BackendMessageType,
|
|
17
|
+
AssistantMode
|
|
17
18
|
} from './tokens';
|
|
18
19
|
|
|
19
20
|
export enum GitHubCopilotLoginStatus {
|
|
@@ -497,6 +498,15 @@ export class NBIAPI {
|
|
|
497
498
|
}
|
|
498
499
|
|
|
499
500
|
static async emitTelemetryEvent(event: ITelemetryEvent): Promise<void> {
|
|
501
|
+
const assistantMode = this.config.isInClaudeCodeMode
|
|
502
|
+
? AssistantMode.Claude
|
|
503
|
+
: AssistantMode.Default;
|
|
504
|
+
|
|
505
|
+
event.data = {
|
|
506
|
+
...(event.data || {}),
|
|
507
|
+
assistantMode
|
|
508
|
+
};
|
|
509
|
+
|
|
500
510
|
return new Promise<void>((resolve, reject) => {
|
|
501
511
|
requestAPI<any>('emit-telemetry-event', {
|
|
502
512
|
method: 'POST',
|
package/src/chat-sidebar.tsx
CHANGED
|
@@ -1514,10 +1514,15 @@ function SidebarComponent(props: any) {
|
|
|
1514
1514
|
});
|
|
1515
1515
|
} else if (response.type === BackendMessageType.RunUICommand) {
|
|
1516
1516
|
const messageId = response.id;
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1517
|
+
let result = 'void';
|
|
1518
|
+
try {
|
|
1519
|
+
result = await app.commands.execute(
|
|
1520
|
+
response.data.commandId,
|
|
1521
|
+
response.data.args
|
|
1522
|
+
);
|
|
1523
|
+
} catch (error) {
|
|
1524
|
+
result = `Error executing command: ${error}`;
|
|
1525
|
+
}
|
|
1521
1526
|
|
|
1522
1527
|
const data = {
|
|
1523
1528
|
callback_id: response.data.callback_id,
|
|
@@ -1932,7 +1937,7 @@ function SidebarComponent(props: any) {
|
|
|
1932
1937
|
</button>
|
|
1933
1938
|
</div>
|
|
1934
1939
|
)}
|
|
1935
|
-
{ghLoginRequired && (
|
|
1940
|
+
{!NBIAPI.config.isInClaudeCodeMode && ghLoginRequired && (
|
|
1936
1941
|
<div className="sidebar-login-info">
|
|
1937
1942
|
<div>
|
|
1938
1943
|
You are not logged in to GitHub Copilot. Please login now to
|
|
@@ -877,7 +877,7 @@ function SettingsPanelComponentClaude(props: any) {
|
|
|
877
877
|
]);
|
|
878
878
|
|
|
879
879
|
return (
|
|
880
|
-
<div className="config-dialog">
|
|
880
|
+
<div className="config-dialog claude-mode-config-dialog">
|
|
881
881
|
<div className="config-dialog-body">
|
|
882
882
|
<div className="model-config-section">
|
|
883
883
|
<div className="model-config-section-header">Enable Claude mode</div>
|
package/src/index.ts
CHANGED
|
@@ -1006,11 +1006,12 @@ const plugin: JupyterFrontEndPlugin<INotebookIntelligence> = {
|
|
|
1006
1006
|
const messageCheckTimeout = 5000;
|
|
1007
1007
|
const messageCheckInterval = 1000;
|
|
1008
1008
|
let output = '';
|
|
1009
|
-
|
|
1009
|
+
const messageReceivedHandler = (sender: any, message: any) => {
|
|
1010
1010
|
const content = stripAnsi(message.content.join(''));
|
|
1011
1011
|
output += content;
|
|
1012
1012
|
lastMessageReceivedTime = Date.now();
|
|
1013
|
-
}
|
|
1013
|
+
};
|
|
1014
|
+
session.messageReceived.connect(messageReceivedHandler);
|
|
1014
1015
|
|
|
1015
1016
|
session.send({
|
|
1016
1017
|
type: 'stdin',
|
|
@@ -1022,6 +1023,7 @@ const plugin: JupyterFrontEndPlugin<INotebookIntelligence> = {
|
|
|
1022
1023
|
lastMessageCheckInterval = setInterval(() => {
|
|
1023
1024
|
if (Date.now() - lastMessageReceivedTime > messageCheckTimeout) {
|
|
1024
1025
|
clearInterval(lastMessageCheckInterval);
|
|
1026
|
+
session.messageReceived.disconnect(messageReceivedHandler);
|
|
1025
1027
|
resolve(
|
|
1026
1028
|
`Command executed in Jupyter terminal, output: ${output}`
|
|
1027
1029
|
);
|
package/src/tokens.ts
CHANGED
|
@@ -112,6 +112,11 @@ export enum BuiltinToolsetType {
|
|
|
112
112
|
export const GITHUB_COPILOT_PROVIDER_ID = 'github-copilot';
|
|
113
113
|
export const CLAUDE_CODE_CHAT_PARTICIPANT_ID = 'claude-code';
|
|
114
114
|
|
|
115
|
+
export enum AssistantMode {
|
|
116
|
+
Default = 'default',
|
|
117
|
+
Claude = 'claude'
|
|
118
|
+
}
|
|
119
|
+
|
|
115
120
|
export enum TelemetryEventType {
|
|
116
121
|
InlineCompletionRequest = 'inline-completion-request',
|
|
117
122
|
ExplainThisRequest = 'explain-this-request',
|