diff --git a/.vsixmanifest b/.vsixmanifest new file mode 100644 index 0000000..6b429fd --- /dev/null +++ b/.vsixmanifest @@ -0,0 +1,14 @@ + + + + + Alfred Commander + Alfred Commander 5.0.0 + alfred + Other + Public + + + + + diff --git a/extension.js b/extension.js index 417ac17..4c9eff5 100644 --- a/extension.js +++ b/extension.js @@ -1164,6 +1164,54 @@ function activate(context) { }); }) ); + // ===== Hive Search (Meilisearch commander_hive index) ===== + context.subscriptions.push( + vscode.commands.registerCommand('alfred-commander.hiveSearch', async () => { + const http = require('http'); + const q = await vscode.window.showInputBox({ + prompt: 'Hive Search — search 174k+ indexed docs', + placeHolder: 'e.g. vault key, reunion protocol, sabbath, custody', + ignoreFocusOut: true + }); + if (!q) return; + const KEY = '885a895594cd2fa973ef1956547c2c25'; + const body = JSON.stringify({ q: q, limit: 30, attributesToRetrieve: ['title','path','snippet','folder','kind','ext'] }); + const opts = { + hostname:'127.0.0.1', port:7700, method:'POST', + path:'/indexes/commander_hive/search', + headers:{ 'Authorization':'Bearer '+KEY, 'Content-Type':'application/json', 'Content-Length':Buffer.byteLength(body) } + }; + const hits = await new Promise((resolve, reject) => { + const req = http.request(opts, res => { + let buf=''; res.setEncoding('utf8'); + res.on('data', d => buf += d); + res.on('end', () => { try { resolve(JSON.parse(buf).hits || []); } catch (e) { reject(e); } }); + }); + req.on('error', reject); + req.write(body); req.end(); + }).catch(err => { vscode.window.showErrorMessage('Hive: '+err.message); return []; }); + if (!hits.length) { vscode.window.showInformationMessage('Hive: no results for "'+q+'"'); return; } + const items = hits.map(h => ({ + label: '$(search) ' + (h.title || h.path || '(untitled)'), + description: (h.folder ? '['+h.folder+'] ' : '') + (h.kind || h.ext || ''), + detail: (h.snippet || '').slice(0, 240).replace(/\s+/g,' '), + _path: h.path + })); + const pick = await vscode.window.showQuickPick(items, { + placeHolder: 'Hive: '+hits.length+' results — pick to open', + matchOnDescription: true, matchOnDetail: true + }); + if (!pick || !pick._path) return; + try { + const doc = await vscode.workspace.openTextDocument(pick._path); + await vscode.window.showTextDocument(doc); + } catch (e) { + vscode.env.clipboard.writeText(pick._path); + vscode.window.showWarningMessage('Hive: could not open ('+e.message+'). Path copied to clipboard.'); + } + }) + ); + const statusBar = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, 100); statusBar.text = '$(mic) Alfred'; statusBar.tooltip = 'Alfred — Toggle mic (Ctrl+Shift+Alt+A)'; diff --git a/package.json b/package.json index 76c665c..2bd345b 100644 --- a/package.json +++ b/package.json @@ -1,168 +1,168 @@ { - "name": "alfred-commander", - "displayName": "Alfred IDE Assistant \u2014 Full IDE Chat & Voice", - "description": "Alfred Commander v5 Kingdom Edition \u2014 AI chat, voice AI, model routing, memory engine, cost tracking, session persistence, fleet commander. The sovereign IDE brain.", - "version": "5.0.0", - "publisher": "gositeme", - "repository": { - "type": "git", - "url": "https://alfredlinux.com/forge/commander/alfred-ide.git" - }, - "homepage": "https://alfredlinux.com/forge/commander/alfred-ide", - "engines": { - "vscode": "^1.70.0" - }, - "categories": [ - "Other" - ], - "activationEvents": [ - "onStartupFinished" - ], - "main": "./extension.js", - "contributes": { - "configurationDefaults": { - "window.menuBarVisibility": "visible", - "chat.disableAIFeatures": false - }, - "commands": [ - { - "command": "alfred-commander.open", - "title": "Alfred: Open Panel" - }, - { - "command": "alfred-commander.toggle", - "title": "Alfred: Toggle Mic" - }, - { - "command": "alfred-commander.showStats", - "title": "Alfred: Account & Usage Stats" - }, - { - "command": "alfred-commander.welcome", - "title": "Alfred: Getting Started" - }, - { - "command": "alfred-commander.workspaceStatus", - "title": "Alfred: Workspace Status" - }, - { - "command": "alfred-commander.voicePanel", - "title": "Alfred: Voice AI Panel" - }, - { - "command": "alfred-commander.memoryPanel", - "title": "Alfred: Memory Engine" - }, - { - "command": "alfred-commander.costPanel", - "title": "Alfred: Cost & Usage Tracker" - }, - { - "command": "alfred-commander.vaultPanel", - "title": "Alfred: Kingdom Vault" - }, - { - "command": "alfred-commander.vaultPanel", - "title": "Alfred: Kingdom Vault" - } - ], - "keybindings": [ - { - "command": "alfred-commander.open", - "key": "ctrl+shift+alt+o", - "mac": "cmd+shift+alt+o" - }, - { - "command": "alfred-commander.toggle", - "key": "ctrl+shift+alt+a", - "mac": "cmd+shift+alt+a" - }, - { - "command": "alfred-commander.voicePanel", - "key": "ctrl+shift+alt+v", - "mac": "cmd+shift+alt+v" - } - ], - "viewsContainers": { - "activitybar": [ - { - "id": "alfred-commander-container", - "title": "Alfred", - "icon": "media/alfred-icon.svg" - } - ] - }, - "views": { - "alfred-commander-container": [ - { - "type": "webview", - "id": "alfred-commander.panel", - "name": "Alfred", - "visibility": "visible" - } - ] - }, - "walkthroughs": [ - { - "id": "alfred-ide-getting-started", - "title": "Getting Started with Alfred IDE", - "description": "Your sovereign development environment \u2014 AI-powered, zero-tracking, fully yours.", - "steps": [ - { - "id": "meet-alfred", - "title": "Meet Alfred \u2014 Your AI Companion", - "description": "Alfred lives in the sidebar. Click the Alfred icon in the activity bar to open the chat panel. Ask anything \u2014 code questions, file operations, debugging help.\n\n[Open Alfred Panel](command:alfred-commander.open)", - "media": { - "markdown": "media/walkthrough/meet-alfred.md" - } - }, - { - "id": "voice-commands", - "title": "Talk to Your IDE", - "description": "Alfred supports voice input. Click the microphone button or press ``Ctrl+Shift+Alt+A`` to toggle voice mode. Speak naturally \u2014 Alfred transcribes and responds.\n\n[Toggle Voice](command:alfred-commander.toggle)", - "media": { - "markdown": "media/walkthrough/voice.md" - } - }, - { - "id": "choose-model", - "title": "Choose Your AI Model", - "description": "Switch between AI providers and models using the dropdown at the top of the Alfred panel. Available models include Claude, GPT, local Ollama models, and more.", - "media": { - "markdown": "media/walkthrough/models.md" - } - }, - { - "id": "account-stats", - "title": "Check Your Usage & Plan", - "description": "Click your username in the status bar (bottom-left) to see your account details, token usage, plan info, and billing.\n\n[View Account Stats](command:alfred-commander.showStats)", - "media": { - "markdown": "media/walkthrough/stats.md" - } - }, - { - "id": "keyboard-shortcuts", - "title": "Essential Shortcuts", - "description": "Master these shortcuts to work faster:\n- ``Ctrl+Shift+Alt+O`` \u2014 Open Alfred Panel\n- ``Ctrl+Shift+Alt+A`` \u2014 Toggle Voice\n- ``Ctrl+``` `` \u2014 Open Terminal\n- ``Ctrl+P`` \u2014 Quick File Open\n- ``Ctrl+Shift+P`` \u2014 Command Palette", - "media": { - "markdown": "media/walkthrough/shortcuts.md" - } - }, - { - "id": "sovereign-ide", - "title": "Your Sovereign IDE", - "description": "Alfred IDE tracks nothing. No telemetry, no usage analytics, no data collection. Your code stays on your machine. Your conversations stay private. Welcome to sovereign development.", - "media": { - "markdown": "media/walkthrough/sovereign.md" - } - } - ] - } - ] - }, - "__metadata": { - "installedTimestamp": 1774281381634, - "targetPlatform": "undefined", - "size": 75665 + "name": "alfred-commander", + "displayName": "Alfred IDE Assistant \u2014 Full IDE Chat & Voice", + "description": "Alfred Commander v5 Kingdom Edition \u2014 AI chat, voice AI, model routing, memory engine, cost tracking, session persistence, fleet commander. The sovereign IDE brain.", + "version": "5.1.0", + "publisher": "gositeme", + "repository": { + "type": "git", + "url": "https://alfredlinux.com/forge/commander/alfred-ide.git" + }, + "homepage": "https://alfredlinux.com/forge/commander/alfred-ide", + "engines": { + "vscode": "^1.70.0" + }, + "categories": [ + "Other" + ], + "activationEvents": [ + "onStartupFinished" + ], + "main": "./extension.js", + "contributes": { + "configurationDefaults": { + "window.menuBarVisibility": "visible", + "chat.disableAIFeatures": false + }, + "commands": [ + { + "command": "alfred-commander.open", + "title": "Alfred: Open Panel" + }, + { + "command": "alfred-commander.toggle", + "title": "Alfred: Toggle Mic" + }, + { + "command": "alfred-commander.showStats", + "title": "Alfred: Account & Usage Stats" + }, + { + "command": "alfred-commander.welcome", + "title": "Alfred: Getting Started" + }, + { + "command": "alfred-commander.workspaceStatus", + "title": "Alfred: Workspace Status" + }, + { + "command": "alfred-commander.voicePanel", + "title": "Alfred: Voice AI Panel" + }, + { + "command": "alfred-commander.memoryPanel", + "title": "Alfred: Memory Engine" + }, + { + "command": "alfred-commander.costPanel", + "title": "Alfred: Cost & Usage Tracker" + }, + { + "command": "alfred-commander.vaultPanel", + "title": "Alfred: Kingdom Vault" + }, + { + "command": "alfred-commander.hiveSearch", + "title": "Alfred: Hive Search" + } + ], + "keybindings": [ + { + "command": "alfred-commander.open", + "key": "ctrl+shift+alt+o", + "mac": "cmd+shift+alt+o" + }, + { + "command": "alfred-commander.toggle", + "key": "ctrl+shift+alt+a", + "mac": "cmd+shift+alt+a" + }, + { + "command": "alfred-commander.voicePanel", + "key": "ctrl+shift+alt+v", + "mac": "cmd+shift+alt+v" + } + ], + "viewsContainers": { + "activitybar": [ + { + "id": "alfred-commander-container", + "title": "Alfred", + "icon": "media/alfred-icon.svg" } + ] + }, + "views": { + "alfred-commander-container": [ + { + "type": "webview", + "id": "alfred-commander.panel", + "name": "Alfred", + "visibility": "visible" + } + ] + }, + "walkthroughs": [ + { + "id": "alfred-ide-getting-started", + "title": "Getting Started with Alfred IDE", + "description": "Your sovereign development environment \u2014 AI-powered, zero-tracking, fully yours.", + "steps": [ + { + "id": "meet-alfred", + "title": "Meet Alfred \u2014 Your AI Companion", + "description": "Alfred lives in the sidebar. Click the Alfred icon in the activity bar to open the chat panel. Ask anything \u2014 code questions, file operations, debugging help.\n\n[Open Alfred Panel](command:alfred-commander.open)", + "media": { + "markdown": "media/walkthrough/meet-alfred.md" + } + }, + { + "id": "voice-commands", + "title": "Talk to Your IDE", + "description": "Alfred supports voice input. Click the microphone button or press ``Ctrl+Shift+Alt+A`` to toggle voice mode. Speak naturally \u2014 Alfred transcribes and responds.\n\n[Toggle Voice](command:alfred-commander.toggle)", + "media": { + "markdown": "media/walkthrough/voice.md" + } + }, + { + "id": "choose-model", + "title": "Choose Your AI Model", + "description": "Switch between AI providers and models using the dropdown at the top of the Alfred panel. Available models include Claude, GPT, local Ollama models, and more.", + "media": { + "markdown": "media/walkthrough/models.md" + } + }, + { + "id": "account-stats", + "title": "Check Your Usage & Plan", + "description": "Click your username in the status bar (bottom-left) to see your account details, token usage, plan info, and billing.\n\n[View Account Stats](command:alfred-commander.showStats)", + "media": { + "markdown": "media/walkthrough/stats.md" + } + }, + { + "id": "keyboard-shortcuts", + "title": "Essential Shortcuts", + "description": "Master these shortcuts to work faster:\n- ``Ctrl+Shift+Alt+O`` \u2014 Open Alfred Panel\n- ``Ctrl+Shift+Alt+A`` \u2014 Toggle Voice\n- ``Ctrl+``` `` \u2014 Open Terminal\n- ``Ctrl+P`` \u2014 Quick File Open\n- ``Ctrl+Shift+P`` \u2014 Command Palette", + "media": { + "markdown": "media/walkthrough/shortcuts.md" + } + }, + { + "id": "sovereign-ide", + "title": "Your Sovereign IDE", + "description": "Alfred IDE tracks nothing. No telemetry, no usage analytics, no data collection. Your code stays on your machine. Your conversations stay private. Welcome to sovereign development.", + "media": { + "markdown": "media/walkthrough/sovereign.md" + } + } + ] + } + ] + }, + "__metadata": { + "installedTimestamp": 1777392313978, + "targetPlatform": "undefined", + "size": 250117 + } } \ No newline at end of file