notioncode 0.1.1 → 0.1.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.
- package/README.md +10 -4
- package/agent-runtime-server/package-lock.json +4377 -0
- package/agent-runtime-server/package.json +36 -0
- package/agent-runtime-server/scripts/fix-node-pty.js +67 -0
- package/agent-runtime-server/server/agent-session-service.js +816 -0
- package/agent-runtime-server/server/claude-sdk.js +836 -0
- package/agent-runtime-server/server/cli.js +330 -0
- package/agent-runtime-server/server/constants/config.js +5 -0
- package/agent-runtime-server/server/cursor-cli.js +335 -0
- package/agent-runtime-server/server/database/db.js +653 -0
- package/agent-runtime-server/server/database/init.sql +99 -0
- package/agent-runtime-server/server/gemini-cli.js +460 -0
- package/agent-runtime-server/server/gemini-response-handler.js +79 -0
- package/agent-runtime-server/server/index.js +2569 -0
- package/agent-runtime-server/server/load-env.js +32 -0
- package/agent-runtime-server/server/middleware/auth.js +132 -0
- package/agent-runtime-server/server/openai-codex.js +512 -0
- package/agent-runtime-server/server/projects.js +2594 -0
- package/agent-runtime-server/server/providers/claude/adapter.js +278 -0
- package/agent-runtime-server/server/providers/codex/adapter.js +248 -0
- package/agent-runtime-server/server/providers/cursor/adapter.js +353 -0
- package/agent-runtime-server/server/providers/gemini/adapter.js +186 -0
- package/agent-runtime-server/server/providers/registry.js +44 -0
- package/agent-runtime-server/server/providers/types.js +119 -0
- package/agent-runtime-server/server/providers/utils.js +29 -0
- package/agent-runtime-server/server/routes/agent-sessions.js +238 -0
- package/agent-runtime-server/server/routes/agent.js +1244 -0
- package/agent-runtime-server/server/routes/auth.js +144 -0
- package/agent-runtime-server/server/routes/cli-auth.js +478 -0
- package/agent-runtime-server/server/routes/codex.js +329 -0
- package/agent-runtime-server/server/routes/commands.js +596 -0
- package/agent-runtime-server/server/routes/cursor.js +798 -0
- package/agent-runtime-server/server/routes/gemini.js +24 -0
- package/agent-runtime-server/server/routes/git.js +1508 -0
- package/agent-runtime-server/server/routes/mcp-utils.js +48 -0
- package/agent-runtime-server/server/routes/mcp.js +552 -0
- package/agent-runtime-server/server/routes/messages.js +61 -0
- package/agent-runtime-server/server/routes/plugins.js +307 -0
- package/agent-runtime-server/server/routes/projects.js +548 -0
- package/agent-runtime-server/server/routes/settings.js +276 -0
- package/agent-runtime-server/server/routes/taskmaster.js +1963 -0
- package/agent-runtime-server/server/routes/user.js +123 -0
- package/agent-runtime-server/server/services/notification-orchestrator.js +227 -0
- package/agent-runtime-server/server/services/vapid-keys.js +35 -0
- package/agent-runtime-server/server/sessionManager.js +226 -0
- package/agent-runtime-server/server/utils/commandParser.js +303 -0
- package/agent-runtime-server/server/utils/frontmatter.js +18 -0
- package/agent-runtime-server/server/utils/gitConfig.js +34 -0
- package/agent-runtime-server/server/utils/mcp-detector.js +198 -0
- package/agent-runtime-server/server/utils/plugin-loader.js +457 -0
- package/agent-runtime-server/server/utils/plugin-process-manager.js +184 -0
- package/agent-runtime-server/server/utils/taskmaster-websocket.js +129 -0
- package/agent-runtime-server/shared/modelConstants.js +12 -0
- package/agent-runtime-server/shared/modelConstants.test.js +34 -0
- package/agent-runtime-server/shared/networkHosts.js +22 -0
- package/agent-runtime-server/test_sdk.mjs +16 -0
- package/bin/bridges/darwin-x64/nocode-bridge +0 -0
- package/bin/{nocode-local.js → notioncode.js} +0 -0
- package/dist/assets/icon-CQtd7WEB.png +0 -0
- package/dist/assets/index-D_1ZrHDe.js +1 -0
- package/dist/assets/index-DhCWie1Z.css +1 -0
- package/dist/assets/index-DkGqIiwF.js +689 -0
- package/dist/index.html +46 -0
- package/dist/onboarding/step1_create.png +0 -0
- package/dist/onboarding/step2_capabilities.png +0 -0
- package/dist/onboarding/step2b_content_access.png +0 -0
- package/dist/onboarding/step2c_page_access.png +0 -0
- package/dist/onboarding/step3_token.png +0 -0
- package/dist/onboarding/step4_webhook.png +0 -0
- package/dist/onboarding/step6a_verify.png +0 -0
- package/dist/onboarding/step6b_copy_verify_token.png +0 -0
- package/dist/tinyfish-fish-only.png +0 -0
- package/lib/install.js +33 -2
- package/lib/start.js +157 -25
- package/package.json +7 -4
- package/src/shared/modelRegistry.d.ts +24 -0
- package/src/shared/modelRegistry.js +163 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TASKMASTER WEBSOCKET UTILITIES
|
|
3
|
+
* ==============================
|
|
4
|
+
*
|
|
5
|
+
* Utilities for broadcasting TaskMaster state changes via WebSocket.
|
|
6
|
+
* Integrates with the existing WebSocket system to provide real-time updates.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Broadcast TaskMaster project update to all connected clients
|
|
11
|
+
* @param {WebSocket.Server} wss - WebSocket server instance
|
|
12
|
+
* @param {string} projectName - Name of the updated project
|
|
13
|
+
* @param {Object} taskMasterData - Updated TaskMaster data
|
|
14
|
+
*/
|
|
15
|
+
export function broadcastTaskMasterProjectUpdate(wss, projectName, taskMasterData) {
|
|
16
|
+
if (!wss || !projectName) {
|
|
17
|
+
console.warn('TaskMaster WebSocket broadcast: Missing wss or projectName');
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const message = {
|
|
22
|
+
type: 'taskmaster-project-updated',
|
|
23
|
+
projectName,
|
|
24
|
+
taskMasterData,
|
|
25
|
+
timestamp: new Date().toISOString()
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
wss.clients.forEach((client) => {
|
|
30
|
+
if (client.readyState === 1) { // WebSocket.OPEN
|
|
31
|
+
try {
|
|
32
|
+
client.send(JSON.stringify(message));
|
|
33
|
+
} catch (error) {
|
|
34
|
+
console.error('Error sending TaskMaster project update:', error);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Broadcast TaskMaster tasks update for a specific project
|
|
42
|
+
* @param {WebSocket.Server} wss - WebSocket server instance
|
|
43
|
+
* @param {string} projectName - Name of the project with updated tasks
|
|
44
|
+
* @param {Object} tasksData - Updated tasks data
|
|
45
|
+
*/
|
|
46
|
+
export function broadcastTaskMasterTasksUpdate(wss, projectName, tasksData) {
|
|
47
|
+
if (!wss || !projectName) {
|
|
48
|
+
console.warn('TaskMaster WebSocket broadcast: Missing wss or projectName');
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const message = {
|
|
53
|
+
type: 'taskmaster-tasks-updated',
|
|
54
|
+
projectName,
|
|
55
|
+
tasksData,
|
|
56
|
+
timestamp: new Date().toISOString()
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
wss.clients.forEach((client) => {
|
|
61
|
+
if (client.readyState === 1) { // WebSocket.OPEN
|
|
62
|
+
try {
|
|
63
|
+
client.send(JSON.stringify(message));
|
|
64
|
+
} catch (error) {
|
|
65
|
+
console.error('Error sending TaskMaster tasks update:', error);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Broadcast MCP server status change
|
|
73
|
+
* @param {WebSocket.Server} wss - WebSocket server instance
|
|
74
|
+
* @param {Object} mcpStatus - Updated MCP server status
|
|
75
|
+
*/
|
|
76
|
+
export function broadcastMCPStatusChange(wss, mcpStatus) {
|
|
77
|
+
if (!wss) {
|
|
78
|
+
console.warn('TaskMaster WebSocket broadcast: Missing wss');
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const message = {
|
|
83
|
+
type: 'taskmaster-mcp-status-changed',
|
|
84
|
+
mcpStatus,
|
|
85
|
+
timestamp: new Date().toISOString()
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
wss.clients.forEach((client) => {
|
|
90
|
+
if (client.readyState === 1) { // WebSocket.OPEN
|
|
91
|
+
try {
|
|
92
|
+
client.send(JSON.stringify(message));
|
|
93
|
+
} catch (error) {
|
|
94
|
+
console.error('Error sending TaskMaster MCP status update:', error);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Broadcast general TaskMaster update notification
|
|
102
|
+
* @param {WebSocket.Server} wss - WebSocket server instance
|
|
103
|
+
* @param {string} updateType - Type of update (e.g., 'initialization', 'configuration')
|
|
104
|
+
* @param {Object} data - Additional data about the update
|
|
105
|
+
*/
|
|
106
|
+
export function broadcastTaskMasterUpdate(wss, updateType, data = {}) {
|
|
107
|
+
if (!wss || !updateType) {
|
|
108
|
+
console.warn('TaskMaster WebSocket broadcast: Missing wss or updateType');
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
const message = {
|
|
113
|
+
type: 'taskmaster-update',
|
|
114
|
+
updateType,
|
|
115
|
+
data,
|
|
116
|
+
timestamp: new Date().toISOString()
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
wss.clients.forEach((client) => {
|
|
121
|
+
if (client.readyState === 1) { // WebSocket.OPEN
|
|
122
|
+
try {
|
|
123
|
+
client.send(JSON.stringify(message));
|
|
124
|
+
} catch (error) {
|
|
125
|
+
console.error('Error sending TaskMaster update:', error);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import {
|
|
4
|
+
getDefaultModel,
|
|
5
|
+
isSupportedModel,
|
|
6
|
+
migrateLegacyModel,
|
|
7
|
+
normalizeModel,
|
|
8
|
+
} from './modelConstants.js';
|
|
9
|
+
|
|
10
|
+
test('returns shared defaults for every provider', () => {
|
|
11
|
+
assert.equal(getDefaultModel('claude'), 'sonnet');
|
|
12
|
+
assert.equal(getDefaultModel('cursor'), 'gpt-5-3-codex');
|
|
13
|
+
assert.equal(getDefaultModel('codex'), 'gpt-5.4');
|
|
14
|
+
assert.equal(getDefaultModel('gemini'), 'gemini-2.5-flash');
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test('migrates legacy Claude API model ids to SDK aliases', () => {
|
|
18
|
+
assert.equal(migrateLegacyModel('claude', 'claude-3-5-sonnet-20241022'), 'sonnet');
|
|
19
|
+
assert.equal(migrateLegacyModel('claude', 'claude-3-7-sonnet-20250219'), 'sonnet');
|
|
20
|
+
assert.equal(migrateLegacyModel('claude', 'claude-3-opus-20240229'), 'opus');
|
|
21
|
+
assert.equal(migrateLegacyModel('claude', 'claude-3-5-haiku-20241022'), 'haiku');
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
test('falls back to provider default for unsupported values', () => {
|
|
25
|
+
assert.equal(normalizeModel('claude', 'claude-sonnet-4-6'), 'sonnet');
|
|
26
|
+
assert.equal(normalizeModel('codex', 'gpt-4o'), 'gpt-5.4');
|
|
27
|
+
assert.equal(normalizeModel('cursor', 'gpt-4.5-turbo'), 'gpt-5-3-codex');
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test('reports supported canonical values correctly', () => {
|
|
31
|
+
assert.equal(isSupportedModel('claude', 'sonnet'), true);
|
|
32
|
+
assert.equal(isSupportedModel('claude', 'claude-3-5-sonnet-20241022'), false);
|
|
33
|
+
assert.equal(isSupportedModel('gemini', 'gemini-2.5-flash'), true);
|
|
34
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export function isWildcardHost(host) {
|
|
2
|
+
return host === '0.0.0.0' || host === '::';
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export function isLoopbackHost(host) {
|
|
6
|
+
return host === 'localhost' || host === '127.0.0.1' || host === '::1' || host === '[::1]';
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function normalizeLoopbackHost(host) {
|
|
10
|
+
if (!host) {
|
|
11
|
+
return host;
|
|
12
|
+
}
|
|
13
|
+
return isLoopbackHost(host) ? 'localhost' : host;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Use localhost for connectable loopback and wildcard addresses in browser-facing URLs.
|
|
17
|
+
export function getConnectableHost(host) {
|
|
18
|
+
if (!host) {
|
|
19
|
+
return 'localhost';
|
|
20
|
+
}
|
|
21
|
+
return isWildcardHost(host) || isLoopbackHost(host) ? 'localhost' : host;
|
|
22
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
2
|
+
import { ConsoleMessageWriter } from '@anthropic-ai/claude-agent-sdk';
|
|
3
|
+
|
|
4
|
+
async function test() {
|
|
5
|
+
const writer = new ConsoleMessageWriter();
|
|
6
|
+
try {
|
|
7
|
+
const res = await query('hi', {
|
|
8
|
+
env: { ANTHROPIC_API_KEY: 'sk-ant-api03-xxx' }, // intentionally invalid key
|
|
9
|
+
tools: { type: 'preset', preset: 'claude_code' }
|
|
10
|
+
});
|
|
11
|
+
console.log('Result:', res);
|
|
12
|
+
} catch (err) {
|
|
13
|
+
console.error('Error:', err.message);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
test();
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i}from"./index-DkGqIiwF.js";async function o(e={}){return typeof e=="object"&&Object.freeze(e),await i("plugin:dialog|open",{options:e})}export{o as open};
|