synabun 1.3.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/CHANGELOG.md +665 -0
- package/LICENSE +191 -0
- package/README.md +853 -0
- package/hooks/claude-code/post-plan.mjs +391 -0
- package/hooks/claude-code/post-remember.mjs +239 -0
- package/hooks/claude-code/pre-compact.mjs +241 -0
- package/hooks/claude-code/pre-websearch.mjs +90 -0
- package/hooks/claude-code/prompt-submit.mjs +861 -0
- package/hooks/claude-code/session-start.mjs +494 -0
- package/hooks/claude-code/shared.mjs +368 -0
- package/hooks/claude-code/stop.mjs +646 -0
- package/hooks/claude-code/test-user-learning.mjs +531 -0
- package/mcp-server/package.json +38 -0
- package/mcp-server/run.mjs +10 -0
- package/mcp-server/src/config.ts +70 -0
- package/mcp-server/src/http.ts +93 -0
- package/mcp-server/src/index.ts +203 -0
- package/mcp-server/src/preload-http.ts +25 -0
- package/mcp-server/src/preload.ts +29 -0
- package/mcp-server/src/scripts/migrate-qdrant-to-sqlite.ts +506 -0
- package/mcp-server/src/services/categories.ts +429 -0
- package/mcp-server/src/services/discord.ts +702 -0
- package/mcp-server/src/services/file-checksums.ts +33 -0
- package/mcp-server/src/services/local-embeddings.ts +77 -0
- package/mcp-server/src/services/neural-interface.ts +344 -0
- package/mcp-server/src/services/sqlite.ts +823 -0
- package/mcp-server/src/tools/browser-advanced.ts +123 -0
- package/mcp-server/src/tools/browser-interact.ts +255 -0
- package/mcp-server/src/tools/browser-navigate.ts +77 -0
- package/mcp-server/src/tools/browser-observe.ts +1330 -0
- package/mcp-server/src/tools/browser.ts +107 -0
- package/mcp-server/src/tools/card-tools.ts +193 -0
- package/mcp-server/src/tools/card.ts +22 -0
- package/mcp-server/src/tools/category.ts +379 -0
- package/mcp-server/src/tools/discord-channel.ts +274 -0
- package/mcp-server/src/tools/discord-guild.ts +188 -0
- package/mcp-server/src/tools/discord-member.ts +158 -0
- package/mcp-server/src/tools/discord-message.ts +231 -0
- package/mcp-server/src/tools/discord-onboarding.ts +228 -0
- package/mcp-server/src/tools/discord-role.ts +209 -0
- package/mcp-server/src/tools/discord-thread.ts +110 -0
- package/mcp-server/src/tools/discord-webhook.ts +176 -0
- package/mcp-server/src/tools/discord.ts +40 -0
- package/mcp-server/src/tools/forget.ts +38 -0
- package/mcp-server/src/tools/git-tools.ts +141 -0
- package/mcp-server/src/tools/git.ts +13 -0
- package/mcp-server/src/tools/image-tools.ts +98 -0
- package/mcp-server/src/tools/image.ts +17 -0
- package/mcp-server/src/tools/leonardo-browser-tools.ts +281 -0
- package/mcp-server/src/tools/leonardo.ts +28 -0
- package/mcp-server/src/tools/loop.ts +348 -0
- package/mcp-server/src/tools/memories.ts +118 -0
- package/mcp-server/src/tools/recall.ts +323 -0
- package/mcp-server/src/tools/reflect.ts +145 -0
- package/mcp-server/src/tools/remember.ts +115 -0
- package/mcp-server/src/tools/response.ts +26 -0
- package/mcp-server/src/tools/restore.ts +34 -0
- package/mcp-server/src/tools/sync.ts +114 -0
- package/mcp-server/src/tools/tictactoe-tools.ts +98 -0
- package/mcp-server/src/tools/tictactoe.ts +13 -0
- package/mcp-server/src/tools/utils.ts +25 -0
- package/mcp-server/src/tools/whiteboard-tools.ts +260 -0
- package/mcp-server/src/tools/whiteboard.ts +22 -0
- package/mcp-server/src/tui.ts +940 -0
- package/mcp-server/src/types.ts +85 -0
- package/mcp-server/tsconfig.json +19 -0
- package/neural-interface/package.json +27 -0
- package/neural-interface/public/apple-touch-icon.png +0 -0
- package/neural-interface/public/category-logos/claude.svg +1 -0
- package/neural-interface/public/category-logos/gemini-color.svg +1 -0
- package/neural-interface/public/category-logos/openai.svg +1 -0
- package/neural-interface/public/category-logos/synabun.png +0 -0
- package/neural-interface/public/claude-chat.css +878 -0
- package/neural-interface/public/claude-chat.html +92 -0
- package/neural-interface/public/claude-chat.js +1168 -0
- package/neural-interface/public/favicon-16x16.png +0 -0
- package/neural-interface/public/favicon-32x32.png +0 -0
- package/neural-interface/public/gallery.svg +6 -0
- package/neural-interface/public/icon-192.png +0 -0
- package/neural-interface/public/icon-512.png +0 -0
- package/neural-interface/public/index-legacy.html +14677 -0
- package/neural-interface/public/index.html +212 -0
- package/neural-interface/public/index2d-legacy.html +8193 -0
- package/neural-interface/public/index2d.html +127 -0
- package/neural-interface/public/invite.html +351 -0
- package/neural-interface/public/leonardoai.svg +1 -0
- package/neural-interface/public/logo-synabun.png +0 -0
- package/neural-interface/public/logoHD.png +0 -0
- package/neural-interface/public/manifest.json +14 -0
- package/neural-interface/public/offline.html +299 -0
- package/neural-interface/public/onboarding.html +2335 -0
- package/neural-interface/public/openclaw-logo-text.png +0 -0
- package/neural-interface/public/pin-svgrepo-com.svg +25 -0
- package/neural-interface/public/sessionicon.svg +8 -0
- package/neural-interface/public/shared/ansi-parser.js +305 -0
- package/neural-interface/public/shared/api.js +1043 -0
- package/neural-interface/public/shared/colors.js +153 -0
- package/neural-interface/public/shared/constants.js +141 -0
- package/neural-interface/public/shared/html-shell.js +777 -0
- package/neural-interface/public/shared/html-term-renderer.js +1022 -0
- package/neural-interface/public/shared/i18n.js +147 -0
- package/neural-interface/public/shared/registry.js +82 -0
- package/neural-interface/public/shared/state.js +86 -0
- package/neural-interface/public/shared/storage.js +150 -0
- package/neural-interface/public/shared/styles.css +21212 -0
- package/neural-interface/public/shared/ui-automation-studio.js +3573 -0
- package/neural-interface/public/shared/ui-bookmarks.js +231 -0
- package/neural-interface/public/shared/ui-claude-panel.js +6333 -0
- package/neural-interface/public/shared/ui-command-runner.js +534 -0
- package/neural-interface/public/shared/ui-cost-widget.js +602 -0
- package/neural-interface/public/shared/ui-detail.js +1454 -0
- package/neural-interface/public/shared/ui-explorer.js +1356 -0
- package/neural-interface/public/shared/ui-file-explorer.js +2750 -0
- package/neural-interface/public/shared/ui-games.js +411 -0
- package/neural-interface/public/shared/ui-help.js +107 -0
- package/neural-interface/public/shared/ui-image-gallery.js +461 -0
- package/neural-interface/public/shared/ui-invite.js +519 -0
- package/neural-interface/public/shared/ui-keybinds.js +452 -0
- package/neural-interface/public/shared/ui-layouts.js +297 -0
- package/neural-interface/public/shared/ui-link.js +731 -0
- package/neural-interface/public/shared/ui-loading.js +255 -0
- package/neural-interface/public/shared/ui-menubar.js +499 -0
- package/neural-interface/public/shared/ui-multiselect.js +93 -0
- package/neural-interface/public/shared/ui-navbar.js +222 -0
- package/neural-interface/public/shared/ui-notifications.js +287 -0
- package/neural-interface/public/shared/ui-panels.js +309 -0
- package/neural-interface/public/shared/ui-resume.js +653 -0
- package/neural-interface/public/shared/ui-search.js +145 -0
- package/neural-interface/public/shared/ui-sessions.js +531 -0
- package/neural-interface/public/shared/ui-settings.js +5987 -0
- package/neural-interface/public/shared/ui-sidebar.js +1905 -0
- package/neural-interface/public/shared/ui-skills.js +2805 -0
- package/neural-interface/public/shared/ui-stats.js +38 -0
- package/neural-interface/public/shared/ui-sync.js +201 -0
- package/neural-interface/public/shared/ui-terminal.js +6385 -0
- package/neural-interface/public/shared/ui-tooltip.js +123 -0
- package/neural-interface/public/shared/ui-trash.js +439 -0
- package/neural-interface/public/shared/ui-tutorial-draw.js +875 -0
- package/neural-interface/public/shared/ui-tutorial-steps.js +2276 -0
- package/neural-interface/public/shared/ui-tutorial.js +1117 -0
- package/neural-interface/public/shared/ui-update.js +244 -0
- package/neural-interface/public/shared/ui-whiteboard.js +3262 -0
- package/neural-interface/public/shared/ui-workspaces.js +722 -0
- package/neural-interface/public/shared/utils.js +360 -0
- package/neural-interface/public/shared/vterm-buffer.js +1102 -0
- package/neural-interface/public/sw.js +52 -0
- package/neural-interface/public/synabun.png +0 -0
- package/neural-interface/public/toolbar-album.svg +8 -0
- package/neural-interface/public/toolbar-question.svg +6 -0
- package/neural-interface/public/toolbar-sessions.svg +6 -0
- package/neural-interface/public/variant/2d/background.js +113 -0
- package/neural-interface/public/variant/2d/context-menu.js +133 -0
- package/neural-interface/public/variant/2d/gfx.js +45 -0
- package/neural-interface/public/variant/2d/graph.js +1635 -0
- package/neural-interface/public/variant/2d/hulls.js +207 -0
- package/neural-interface/public/variant/2d/lasso.js +135 -0
- package/neural-interface/public/variant/2d/layout.js +594 -0
- package/neural-interface/public/variant/2d/main.js +521 -0
- package/neural-interface/public/variant/2d/minimap.js +312 -0
- package/neural-interface/public/variant/2d/settings-gfx.js +98 -0
- package/neural-interface/public/variant/3d/background.js +884 -0
- package/neural-interface/public/variant/3d/camera.js +661 -0
- package/neural-interface/public/variant/3d/gfx.js +116 -0
- package/neural-interface/public/variant/3d/graph.js +2399 -0
- package/neural-interface/public/variant/3d/main.js +500 -0
- package/neural-interface/public/variant/3d/settings-gfx.js +228 -0
- package/neural-interface/scripts/rebuild-pty.js +100 -0
- package/neural-interface/server.js +15000 -0
- package/neural-interface/templates/CLAUDE-template.md +211 -0
- package/package.json +53 -0
- package/postinstall.js +135 -0
- package/setup.js +260 -0
- package/skills/leonardo/SKILL.md +159 -0
- package/skills/leonardo/icon.svg +1 -0
- package/skills/leonardo/modules/browser-guide.md +378 -0
- package/skills/leonardo/modules/image-prompter.md +277 -0
- package/skills/leonardo/modules/model-advisor.md +100 -0
- package/skills/leonardo/modules/prompt-library.md +110 -0
- package/skills/leonardo/modules/style-guide.md +186 -0
- package/skills/leonardo/modules/video-prompter.md +311 -0
- package/skills/synabun/SKILL.md +185 -0
- package/skills/synabun/icon.png +0 -0
- package/skills/synabun/modules/audit.md +374 -0
- package/skills/synabun/modules/changelog.md +194 -0
- package/skills/synabun/modules/idea.md +144 -0
- package/skills/synabun/modules/memorize.md +188 -0
- package/skills/synabun/synabunicon.png +0 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
// ═══════════════════════════════════════════
|
|
2
|
+
// COLORS — shared color utility functions
|
|
3
|
+
// ═══════════════════════════════════════════
|
|
4
|
+
//
|
|
5
|
+
// Pure utility functions for color resolution, alpha blending,
|
|
6
|
+
// importance-to-radius mapping, and the custom <select> upgrade.
|
|
7
|
+
// No variant-specific dependencies.
|
|
8
|
+
|
|
9
|
+
import { COLOR_PALETTE, KEYS } from './constants.js';
|
|
10
|
+
import { storage } from './storage.js';
|
|
11
|
+
import { state } from './state.js';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Resolve the display color for a category.
|
|
15
|
+
* Priority: storage override > backend metadata color > palette index > hash fallback.
|
|
16
|
+
* @param {string} category Category name
|
|
17
|
+
* @returns {string} Hex color string
|
|
18
|
+
*/
|
|
19
|
+
export function catColor(category) {
|
|
20
|
+
// 1. User override from storage (highest priority)
|
|
21
|
+
try {
|
|
22
|
+
const overrides = JSON.parse(storage.getItem(KEYS.CATEGORY_COLORS) || '{}');
|
|
23
|
+
if (overrides[category]) return overrides[category];
|
|
24
|
+
} catch {}
|
|
25
|
+
// 2. Backend color from category metadata
|
|
26
|
+
if (state.categoryMetadata[category]?.color) {
|
|
27
|
+
return state.categoryMetadata[category].color;
|
|
28
|
+
}
|
|
29
|
+
// 3. Index-based from palette (deterministic -- same position = same color)
|
|
30
|
+
const idx = state.allCategoryNames.indexOf(category);
|
|
31
|
+
if (idx >= 0) return COLOR_PALETTE[idx % COLOR_PALETTE.length];
|
|
32
|
+
// 4. Hash-based fallback for unknown categories
|
|
33
|
+
let hash = 0;
|
|
34
|
+
for (let i = 0; i < category.length; i++) hash = ((hash << 5) - hash + category.charCodeAt(i)) | 0;
|
|
35
|
+
return COLOR_PALETTE[Math.abs(hash) % COLOR_PALETTE.length];
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Convert a hex color + alpha (0-1) to an rgba() string.
|
|
40
|
+
* @param {string} hex Hex color (e.g. '#C47A8E')
|
|
41
|
+
* @param {number} alpha Alpha value 0-1
|
|
42
|
+
* @returns {string} rgba() CSS string
|
|
43
|
+
*/
|
|
44
|
+
export function hexAlpha(hex, alpha) {
|
|
45
|
+
const c = parseInt(hex.replace('#', ''), 16);
|
|
46
|
+
return `rgba(${(c >> 16) & 255},${(c >> 8) & 255},${c & 255},${alpha})`;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Map an importance score (1-10) to a node radius.
|
|
51
|
+
* @param {number} importance 1-10
|
|
52
|
+
* @returns {number} Radius (2 to 6.5)
|
|
53
|
+
*/
|
|
54
|
+
export function importanceToRadius(importance) {
|
|
55
|
+
return 2 + (importance - 1) * 0.5; // 2 to 6.5
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Replace a native <select> with a styled custom dropdown.
|
|
60
|
+
* Keeps the hidden <select> synced so .value still works.
|
|
61
|
+
* Adds category color dots via catColor() when values match categories.
|
|
62
|
+
*
|
|
63
|
+
* If the select was already upgraded, refreshes the existing wrapper
|
|
64
|
+
* (useful after options change dynamically).
|
|
65
|
+
*
|
|
66
|
+
* @param {HTMLSelectElement} selectEl The native <select> to upgrade
|
|
67
|
+
* @returns {HTMLDivElement|null} The .styled-select wrapper, or null if selectEl is falsy
|
|
68
|
+
*/
|
|
69
|
+
export function upgradeSelect(selectEl) {
|
|
70
|
+
if (!selectEl) return null;
|
|
71
|
+
|
|
72
|
+
// If already upgraded, refresh the existing wrapper
|
|
73
|
+
if (selectEl.dataset.upgraded) {
|
|
74
|
+
const existing = selectEl.closest('.styled-select');
|
|
75
|
+
if (existing && existing._refresh) { existing._refresh(); return existing; }
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
selectEl.dataset.upgraded = '1';
|
|
79
|
+
selectEl.style.display = 'none';
|
|
80
|
+
|
|
81
|
+
const wrapper = document.createElement('div');
|
|
82
|
+
wrapper.className = 'styled-select';
|
|
83
|
+
|
|
84
|
+
const trigger = document.createElement('button');
|
|
85
|
+
trigger.type = 'button';
|
|
86
|
+
trigger.className = 'styled-select-trigger';
|
|
87
|
+
|
|
88
|
+
const menu = document.createElement('div');
|
|
89
|
+
menu.className = 'styled-select-menu';
|
|
90
|
+
|
|
91
|
+
function updateTrigger() {
|
|
92
|
+
trigger.innerHTML = '';
|
|
93
|
+
const sel = selectEl.options[selectEl.selectedIndex];
|
|
94
|
+
if (sel && sel.value) {
|
|
95
|
+
const dot = document.createElement('span');
|
|
96
|
+
dot.className = 'styled-select-dot';
|
|
97
|
+
dot.style.background = catColor(sel.value);
|
|
98
|
+
trigger.appendChild(dot);
|
|
99
|
+
}
|
|
100
|
+
const lbl = document.createElement('span');
|
|
101
|
+
lbl.className = 'styled-select-label';
|
|
102
|
+
lbl.textContent = sel ? sel.textContent : '';
|
|
103
|
+
trigger.appendChild(lbl);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
function buildOptions() {
|
|
107
|
+
menu.innerHTML = '';
|
|
108
|
+
Array.from(selectEl.options).forEach(opt => {
|
|
109
|
+
const row = document.createElement('div');
|
|
110
|
+
row.className = 'styled-select-option' + (opt.value === selectEl.value ? ' active' : '');
|
|
111
|
+
if (opt.value) {
|
|
112
|
+
const dot = document.createElement('span');
|
|
113
|
+
dot.className = 'styled-select-dot';
|
|
114
|
+
dot.style.background = catColor(opt.value);
|
|
115
|
+
row.appendChild(dot);
|
|
116
|
+
}
|
|
117
|
+
const lbl = document.createElement('span');
|
|
118
|
+
lbl.textContent = opt.textContent;
|
|
119
|
+
row.appendChild(lbl);
|
|
120
|
+
row.addEventListener('click', () => {
|
|
121
|
+
selectEl.value = opt.value;
|
|
122
|
+
selectEl.dispatchEvent(new Event('change', { bubbles: true }));
|
|
123
|
+
updateTrigger();
|
|
124
|
+
buildOptions();
|
|
125
|
+
wrapper.classList.remove('open');
|
|
126
|
+
});
|
|
127
|
+
menu.appendChild(row);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
trigger.addEventListener('click', (e) => {
|
|
132
|
+
e.stopPropagation();
|
|
133
|
+
// Close any other open styled selects first
|
|
134
|
+
document.querySelectorAll('.styled-select.open').forEach(s => {
|
|
135
|
+
if (s !== wrapper) s.classList.remove('open');
|
|
136
|
+
});
|
|
137
|
+
const opening = wrapper.classList.toggle('open');
|
|
138
|
+
if (opening) buildOptions();
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
document.addEventListener('click', (e) => {
|
|
142
|
+
if (!wrapper.contains(e.target)) wrapper.classList.remove('open');
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
selectEl.parentNode.insertBefore(wrapper, selectEl);
|
|
146
|
+
wrapper.appendChild(trigger);
|
|
147
|
+
wrapper.appendChild(menu);
|
|
148
|
+
wrapper.appendChild(selectEl);
|
|
149
|
+
|
|
150
|
+
wrapper._refresh = () => { updateTrigger(); buildOptions(); };
|
|
151
|
+
updateTrigger();
|
|
152
|
+
return wrapper;
|
|
153
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// ═══════════════════════════════════════════
|
|
2
|
+
// CONSTANTS — shared between 3D and 2D variants
|
|
3
|
+
// ═══════════════════════════════════════════
|
|
4
|
+
|
|
5
|
+
export const DEFAULT_COLOR = '#888888';
|
|
6
|
+
|
|
7
|
+
export const COLOR_PALETTE = [
|
|
8
|
+
'#4FC3F7', '#66BB6A', '#FFC107', '#FF7043', '#29B6F6',
|
|
9
|
+
'#BDBDBD', '#42A5F5', '#EF5350', '#FFCA28', '#AB47BC',
|
|
10
|
+
'#26A69A', '#FF8A65', '#7E57C2', '#26C6DA', '#D4E157',
|
|
11
|
+
'#FF7043', '#26A69A', '#CE93D8', '#FFB300', '#00ACC1',
|
|
12
|
+
'#9CCC65', '#00BCD4', '#7986CB', '#EF5350', '#E53935',
|
|
13
|
+
'#00BFA5', '#5C6BC0', '#EC407A',
|
|
14
|
+
];
|
|
15
|
+
|
|
16
|
+
/** All storage key names used across both variants.
|
|
17
|
+
* Most keys are persisted to data/ui-state.json via shared/storage.js.
|
|
18
|
+
* Keys marked "sessionStorage" remain browser-only (ephemeral). */
|
|
19
|
+
export const KEYS = {
|
|
20
|
+
BOOKMARKS: 'neural-bookmarks',
|
|
21
|
+
CATEGORY_COLORS: 'neural-category-colors',
|
|
22
|
+
CATEGORY_ORDER: 'neural-category-order',
|
|
23
|
+
SELECTED_NODE: 'neural-selected-node',
|
|
24
|
+
SELECTED_SWITCH: 'neural-selected-node-switch', // sessionStorage — preserve selection across variant switch
|
|
25
|
+
UI_SCALE: 'neural-ui-scale',
|
|
26
|
+
GFX_CONFIG_3D: 'neural-gfx-config',
|
|
27
|
+
GFX_CONFIG_2D: 'neural-gfx-config-2d',
|
|
28
|
+
GFX_PRESET: 'neural-gfx-preset',
|
|
29
|
+
LAYOUT_PRESETS_3D: 'neural-layout-presets',
|
|
30
|
+
LAYOUT_PRESETS_2D: 'neural-user-presets-2d',
|
|
31
|
+
PANEL_PREFIX: 'neural-panel-',
|
|
32
|
+
NODE_POS_3D: 'synabun-node-positions',
|
|
33
|
+
NODE_POS_2D: 'synabun-node-positions-2d',
|
|
34
|
+
CAM_HUD_PINNED: 'neural-cam-hud-pinned',
|
|
35
|
+
CAM_HUD_POS: 'neural-cam-hud-pos',
|
|
36
|
+
LAYOUT_VERSION: 'synabun-layout-version',
|
|
37
|
+
INTERFACE_CONFIG: 'neural-interface-config',
|
|
38
|
+
EXPLORER_CAT_ORDER: 'neural-explorer-cat-order',
|
|
39
|
+
EXPLORER_COLLAPSED: 'neural-explorer-collapsed',
|
|
40
|
+
EXPLORER_SORT: 'neural-explorer-sort',
|
|
41
|
+
EXPLORER_VISIBLE: 'neural-explorer-visible',
|
|
42
|
+
EXPLORER_WIDTH: 'neural-explorer-width',
|
|
43
|
+
TERMINAL_HEIGHT: 'neural-terminal-height',
|
|
44
|
+
TERMINAL_OPEN: 'neural-terminal-open',
|
|
45
|
+
TERMINAL_DETACHED: 'neural-terminal-detached',
|
|
46
|
+
TERMINAL_FLOAT_POS: 'neural-terminal-float-pos',
|
|
47
|
+
TERMINAL_SESSIONS: 'neural-terminal-active-sessions',
|
|
48
|
+
TERMINAL_SPLIT_RATIO: 'neural-terminal-split-ratio',
|
|
49
|
+
TERMINAL_NOTIFICATIONS: 'neural-terminal-notifications',
|
|
50
|
+
NOTIF_SOUND: 'neural-notif-sound',
|
|
51
|
+
NOTIF_SOUND_VOLUME: 'neural-notif-sound-volume',
|
|
52
|
+
NOTIF_SOUND_TYPE: 'neural-notif-sound-type',
|
|
53
|
+
NOTIF_BANNER: 'neural-notif-banner',
|
|
54
|
+
NOTIF_BANNER_FOCUSED: 'neural-notif-banner-focused',
|
|
55
|
+
NOTIF_ACTION_ONLY: 'neural-notif-action-only',
|
|
56
|
+
NOTIF_SOURCE_CLI: 'neural-notif-source-cli',
|
|
57
|
+
NOTIF_SOURCE_PANEL: 'neural-notif-source-panel',
|
|
58
|
+
NOTIF_TRIGGER_DONE: 'neural-notif-trigger-done',
|
|
59
|
+
NOTIF_TRIGGER_ACTION: 'neural-notif-trigger-action',
|
|
60
|
+
NOTIF_TRIGGER_ASK: 'neural-notif-trigger-ask',
|
|
61
|
+
NOTIF_TRIGGER_ERROR: 'neural-notif-trigger-error',
|
|
62
|
+
NOTIF_TOAST: 'neural-notif-toast',
|
|
63
|
+
NOTIF_TOAST_DURATION: 'neural-notif-toast-duration',
|
|
64
|
+
NOTIF_TOAST_POSITION: 'neural-notif-toast-position',
|
|
65
|
+
OPEN_CARDS: 'neural-open-cards',
|
|
66
|
+
WORKSPACES: 'neural-workspaces',
|
|
67
|
+
ACTIVE_WORKSPACE: 'neural-active-workspace', // sessionStorage
|
|
68
|
+
GRID_SNAP: 'neural-grid-snap',
|
|
69
|
+
CATEGORIES_VISIBLE: 'neural-categories-visible',
|
|
70
|
+
WHITEBOARD: 'neural-whiteboard',
|
|
71
|
+
TUTORIAL_COMPLETED: 'neural-tutorial-completed',
|
|
72
|
+
TUTORIAL_SKIPPED: 'neural-tutorial-skipped',
|
|
73
|
+
TUTORIAL_STEP: 'neural-tutorial-step',
|
|
74
|
+
TUTORIAL_STARTED: 'neural-tutorial-started',
|
|
75
|
+
ONBOARDING_EXPLORE: 'neural-onboarding-explore',
|
|
76
|
+
ONBOARDING_CLI: 'neural-onboarding-cli',
|
|
77
|
+
ONBOARDING_MODEL: 'neural-onboarding-model',
|
|
78
|
+
ONBOARDING_PROJECT: 'neural-onboarding-project',
|
|
79
|
+
LINK_PANEL_POS: 'neural-link-panel-pos',
|
|
80
|
+
LINK_PANEL_SIZE: 'neural-link-panel-size',
|
|
81
|
+
ACTIVE_LINKS: 'neural-active-links',
|
|
82
|
+
COMMAND_RUNNER: 'neural-command-runner',
|
|
83
|
+
FILE_EXPLORER_VISIBLE: 'neural-file-explorer-visible',
|
|
84
|
+
FILE_EXPLORER_WIDTH: 'neural-file-explorer-width',
|
|
85
|
+
FILE_EXPLORER_COLLAPSED:'neural-file-explorer-collapsed',
|
|
86
|
+
FILE_EXPLORER_SORT: 'neural-file-explorer-sort',
|
|
87
|
+
FILE_EXPLORER_PROJECT: 'neural-file-explorer-project',
|
|
88
|
+
FILE_EXPLORER_FOLDER_COLORS: 'neural-file-explorer-folder-colors',
|
|
89
|
+
ACTIVE_SKIN: 'neural-active-skin',
|
|
90
|
+
COST_WIDGET_POS: 'neural-cost-widget-pos',
|
|
91
|
+
COST_WIDGET_COLLAPSED: 'neural-cost-widget-collapsed',
|
|
92
|
+
COST_WIDGET_DOCKED: 'neural-cost-widget-docked',
|
|
93
|
+
NODE_LIMIT: 'neural-node-limit',
|
|
94
|
+
MINIMAP_POS: 'synabun-2d-minimap-pos',
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
/** Default keybind mappings — action ID → combo string.
|
|
98
|
+
* Combo format: {Ctrl+}{Alt+}{Shift+}{Meta+}{key}
|
|
99
|
+
* key is KeyboardEvent.key (lowercase for printable chars). */
|
|
100
|
+
export const DEFAULT_KEYBINDS = {
|
|
101
|
+
'toggle-categories': 'c',
|
|
102
|
+
'open-skills': 'k',
|
|
103
|
+
'open-automations': 'z',
|
|
104
|
+
'toggle-terminal': 't',
|
|
105
|
+
'toggle-terminal-alt': 'Ctrl+`',
|
|
106
|
+
'focus-search': '/',
|
|
107
|
+
'toggle-help': '?',
|
|
108
|
+
'toggle-explorer': 'f',
|
|
109
|
+
'toggle-focus-mode': 'v',
|
|
110
|
+
'toggle-minimap': 'm',
|
|
111
|
+
'open-keybinds': 'n',
|
|
112
|
+
'launch-claude': '1',
|
|
113
|
+
'launch-codex': '2',
|
|
114
|
+
'launch-gemini': '3',
|
|
115
|
+
'launch-browser': 'b',
|
|
116
|
+
'launch-youtube': 'y',
|
|
117
|
+
'toggle-file-explorer': 'e',
|
|
118
|
+
'open-settings': 's',
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
/** Display metadata for each rebindable action. */
|
|
122
|
+
export const KEYBIND_META = {
|
|
123
|
+
'toggle-categories': { label: 'Toggle Categories', group: 'Navigation' },
|
|
124
|
+
'open-skills': { label: 'Open Skills Studio', group: 'Navigation' },
|
|
125
|
+
'open-automations': { label: 'Open Automation Studio', group: 'Navigation' },
|
|
126
|
+
'toggle-terminal': { label: 'Toggle Terminal', group: 'Navigation' },
|
|
127
|
+
'toggle-terminal-alt': { label: 'Toggle Terminal (alt)', group: 'Navigation' },
|
|
128
|
+
'focus-search': { label: 'Focus Search', group: 'Navigation' },
|
|
129
|
+
'toggle-help': { label: 'Toggle Help', group: 'Navigation' },
|
|
130
|
+
'toggle-explorer': { label: 'Toggle Explorer', group: 'Navigation' },
|
|
131
|
+
'toggle-focus-mode': { label: 'Toggle Focus Mode', group: 'Navigation' },
|
|
132
|
+
'toggle-minimap': { label: 'Toggle Minimap', group: 'View' },
|
|
133
|
+
'open-settings': { label: 'Open Settings', group: 'Settings' },
|
|
134
|
+
'open-keybinds': { label: 'Open Keybinds', group: 'Settings' },
|
|
135
|
+
'launch-claude': { label: 'Claude Code', group: 'Launch App', icon: 'claude' },
|
|
136
|
+
'launch-codex': { label: 'Codex CLI', group: 'Launch App', icon: 'codex' },
|
|
137
|
+
'launch-gemini': { label: 'Gemini CLI', group: 'Launch App', icon: 'gemini' },
|
|
138
|
+
'launch-browser': { label: 'Browser', group: 'Launch App', icon: 'browser' },
|
|
139
|
+
'launch-youtube': { label: 'YouTube', group: 'Launch App', icon: 'youtube' },
|
|
140
|
+
'toggle-file-explorer': { label: 'Toggle File Explorer', group: 'Navigation' },
|
|
141
|
+
};
|