lanonasis-memory
Version:
Memory as a Service integration - AI-powered memory management with semantic search (Compatible with CLI v3.0.6+)
424 lines (423 loc) • 13.5 kB
JSON
{
"name": "lanonasis-memory",
"displayName": "LanOnasis Memory Assistant",
"description": "Memory as a Service integration - AI-powered memory management with semantic search (Compatible with CLI v3.0.6+)",
"version": "1.5.7",
"publisher": "LanOnasis",
"icon": "images/icon.png",
"repository": {
"type": "git",
"url": "https://github.com/lanonasis/lanonasis-maas"
},
"engines": {
"vscode": "^1.74.0"
},
"categories": [
"Other",
"Snippets",
"Machine Learning",
"Data Science"
],
"keywords": [
"memory",
"ai",
"knowledge",
"search",
"notes",
"documentation"
],
"activationEvents": [
"onStartupFinished"
],
"main": "./out/extension.js",
"browser": "./out/extension.js",
"capabilities": {
"virtualWorkspaces": {
"supported": "limited",
"description": "Some features may not work without local file system access"
},
"untrustedWorkspaces": {
"supported": "limited",
"description": "API key management and memory creation require workspace trust"
}
},
"contributes": {
"commands": [
{
"command": "lanonasis.searchMemory",
"title": "Search Memories",
"category": "Lanonasis",
"icon": "$(search)"
},
{
"command": "lanonasis.createMemory",
"title": "Create Memory from Selection",
"category": "Lanonasis",
"icon": "$(add)"
},
{
"command": "lanonasis.createMemoryFromFile",
"title": "Create Memory from Current File",
"category": "Lanonasis",
"icon": "$(file-add)"
},
{
"command": "lanonasis.authenticate",
"title": "Authenticate",
"category": "Lanonasis",
"icon": "$(key)"
},
{
"command": "lanonasis.refreshMemories",
"title": "Refresh Memories",
"category": "Lanonasis",
"icon": "$(refresh)"
},
{
"command": "lanonasis.openMemory",
"title": "Open Memory",
"category": "Lanonasis"
},
{
"command": "lanonasis.switchMode",
"title": "Switch Gateway/Direct API Mode",
"category": "Lanonasis",
"icon": "$(settings-gear)"
},
{
"command": "lanonasis.manageApiKeys",
"title": "Manage API Keys",
"category": "Lanonasis",
"icon": "$(key)"
},
{
"command": "lanonasis.createProject",
"title": "Create API Key Project",
"category": "Lanonasis",
"icon": "$(folder-library)"
},
{
"command": "lanonasis.viewProjects",
"title": "View API Key Projects",
"category": "Lanonasis",
"icon": "$(folder-opened)"
},
{
"command": "lanonasis.showConnectionInfo",
"title": "Show Connection Status",
"category": "Lanonasis",
"icon": "$(info)"
},
{
"command": "lanonasis.configureApiKey",
"title": "Configure Authentication",
"category": "Lanonasis",
"icon": "$(key)"
},
{
"command": "lanonasis.clearApiKey",
"title": "Clear API Key",
"category": "Lanonasis",
"icon": "$(trash)"
},
{
"command": "lanonasis.checkApiKeyStatus",
"title": "Check API Key Status",
"category": "Lanonasis",
"icon": "$(shield)"
},
{
"command": "lanonasis.testConnection",
"title": "Test Connection",
"category": "Lanonasis",
"icon": "$(plug)"
},
{
"command": "lanonasis.runDiagnostics",
"title": "Run System Diagnostics",
"category": "Lanonasis",
"icon": "$(checklist)"
},
{
"command": "lanonasis.showLogs",
"title": "Show Extension Logs",
"category": "Lanonasis",
"icon": "$(output)"
}
],
"keybindings": [
{
"command": "lanonasis.searchMemory",
"key": "ctrl+shift+m",
"mac": "cmd+shift+m",
"when": "editorTextFocus"
},
{
"command": "lanonasis.createMemory",
"key": "ctrl+shift+alt+m",
"mac": "cmd+shift+alt+m",
"when": "editorHasSelection"
},
{
"command": "lanonasis.manageApiKeys",
"key": "ctrl+shift+k",
"mac": "cmd+shift+k",
"when": "editorTextFocus"
}
],
"menus": {
"editor/context": [
{
"command": "lanonasis.createMemory",
"when": "editorHasSelection",
"group": "lanonasis"
}
],
"view/title": [
{
"command": "lanonasis.refreshMemories",
"when": "view == lanonasisMemories",
"group": "navigation"
},
{
"command": "lanonasis.authenticate",
"when": "view == lanonasisMemories && !lanonasis.authenticated",
"group": "navigation"
},
{
"command": "lanonasis.refreshApiKeys",
"when": "view == lanonasisApiKeys",
"group": "navigation"
},
{
"command": "lanonasis.createProject",
"when": "view == lanonasisApiKeys && lanonasis.authenticated",
"group": "navigation"
},
{
"command": "lanonasis.authenticate",
"when": "view == lanonasisApiKeys && !lanonasis.authenticated",
"group": "navigation"
}
],
"view/item/context": [
{
"command": "lanonasis.viewProjectDetails",
"when": "view == lanonasisApiKeys && viewItem == project",
"group": "inline"
},
{
"command": "lanonasis.createApiKey",
"when": "view == lanonasisApiKeys && viewItem == project",
"group": "inline"
},
{
"command": "lanonasis.deleteProject",
"when": "view == lanonasisApiKeys && viewItem == project",
"group": "inline@2"
},
{
"command": "lanonasis.viewApiKeyDetails",
"when": "view == lanonasisApiKeys && viewItem == apiKey",
"group": "inline"
},
{
"command": "lanonasis.rotateApiKey",
"when": "view == lanonasisApiKeys && viewItem == apiKey",
"group": "inline@1"
},
{
"command": "lanonasis.deleteApiKey",
"when": "view == lanonasisApiKeys && viewItem == apiKey",
"group": "inline@2"
}
]
},
"viewsContainers": {
"activitybar": [
{
"id": "lanonasis",
"title": "Lanonasis Memory",
"icon": "images/icon.svg"
}
]
},
"views": {
"lanonasis": [
{
"type": "webview",
"id": "lanonasis.sidebar",
"name": "Memory Assistant",
"icon": "$(brain)",
"contextualTitle": "Lanonasis Memory"
},
{
"type": "tree",
"id": "lanonasisMemories",
"name": "Memories",
"icon": "$(list-tree)",
"when": "config.lanonasis.showTreeView"
},
{
"type": "tree",
"id": "lanonasisApiKeys",
"name": "API Keys",
"icon": "$(key)",
"when": "lanonasis.enableApiKeyManagement"
}
]
},
"viewsWelcome": [
{
"view": "lanonasisMemories",
"contents": "Welcome to Lanonasis Memory! 🧠\n\nTo get started, you need to authenticate with your Lanonasis account.\n\n[Connect in Browser](command:lanonasis.authenticate?%5B%22oauth%22%5D)\n\n[Enter API Key](command:lanonasis.authenticate?%5B%22apikey%22%5D)\n\n[Get API Key](https://api.lanonasis.com)\n\n---\n\n**What is Lanonasis Memory?**\n\nLanonasis Memory is an AI-powered memory management system that helps you:\n\n• Store and organize knowledge with semantic search\n• Create memories from code selections\n• Find relevant information instantly\n• Manage API keys and projects\n\n**Need Help?**\n\n[View Documentation](https://docs.lanonasis.com)\n[Report Issue](https://github.com/lanonasis/lanonasis-maas/issues)",
"when": "!lanonasis.authenticated"
},
{
"view": "lanonasisApiKeys",
"contents": "Welcome to API Key Management! 🔑\n\nAuthenticate to manage your API keys and projects.\n\n[Connect in Browser](command:lanonasis.authenticate?%5B%22oauth%22%5D)\n\n[Enter API Key](command:lanonasis.authenticate?%5B%22apikey%22%5D)",
"when": "!lanonasis.authenticated"
}
],
"configuration": {
"title": "Lanonasis Memory",
"properties": {
"lanonasis.apiUrl": {
"type": "string",
"default": "https://mcp.lanonasis.com",
"markdownDescription": "Lanonasis Memory Service API URL. Change only if using a custom deployment."
},
"lanonasis.gatewayUrl": {
"type": "string",
"default": "https://mcp.lanonasis.com",
"markdownDescription": "Onasis Gateway URL for centralized API management. Recommended for most users."
},
"lanonasis.useGateway": {
"type": "boolean",
"default": true,
"markdownDescription": "**Recommended**: Use Onasis Gateway for enhanced security and rate limiting."
},
"lanonasis.apiKey": {
"type": "string",
"format": "password",
"markdownDescription": "**DEPRECATED**: API keys are now stored securely. Use the authentication command instead. This setting will be removed in a future version.",
"deprecationMessage": "API keys are now stored securely using VS Code's SecretStorage. Use the 'Lanonasis: Authenticate' command instead."
},
"lanonasis.defaultMemoryType": {
"type": "string",
"enum": [
"context",
"project",
"knowledge",
"reference",
"personal",
"workflow"
],
"default": "context",
"description": "Default memory type for new memories"
},
"lanonasis.searchLimit": {
"type": "number",
"default": 10,
"minimum": 1,
"maximum": 50,
"description": "Maximum number of search results to show"
},
"lanonasis.enableAutoCompletion": {
"type": "boolean",
"default": true,
"description": "Enable memory-based code completion suggestions"
},
"lanonasis.enableApiKeyManagement": {
"type": "boolean",
"default": true,
"description": "Enable API key management features"
},
"lanonasis.defaultEnvironment": {
"type": "string",
"enum": [
"development",
"staging",
"production"
],
"default": "development",
"description": "Default environment for API key management"
},
"lanonasis.organizationId": {
"type": "string",
"description": "Your organization ID for API key management"
},
"lanonasis.preferCLI": {
"type": "boolean",
"default": true,
"description": "Prefer CLI integration when @lanonasis/cli v3.0.6+ is available"
},
"lanonasis.enableMCP": {
"type": "boolean",
"default": true,
"description": "Enable Model Context Protocol channels when available"
},
"lanonasis.cliDetectionTimeout": {
"type": "number",
"default": 2000,
"minimum": 500,
"maximum": 10000,
"description": "CLI detection timeout in milliseconds"
},
"lanonasis.verboseLogging": {
"type": "boolean",
"default": false,
"description": "Enable verbose logging for CLI integration debugging"
},
"lanonasis.showPerformanceFeedback": {
"type": "boolean",
"default": false,
"description": "Show brief performance feedback (CLI vs API usage)"
},
"lanonasis.showTreeView": {
"type": "boolean",
"default": false,
"description": "Show traditional tree view alongside modern sidebar (for advanced users)"
},
"lanonasis.enableLegacyViews": {
"type": "boolean",
"default": false,
"description": "Enable legacy tree providers (Memories/API keys) when you prefer the older explorer views"
}
}
}
},
"extensionKind": [
"ui"
],
"scripts": {
"compile": "tsc -p ./",
"watch": "tsc -watch -p ./",
"pretest": "npm run compile && npm run lint",
"lint": "eslint src --ext ts",
"test": "node ./out/test/runTest.js",
"package": "npm run compile && vsce package --no-dependencies",
"publish": "vsce publish",
"build:package": "npm run compile && vsce package --no-dependencies"
},
"dependencies": {
"@lanonasis/memory-client": "^1.0.0",
"zod": "^3.23.8"
},
"devDependencies": {
"@types/node": "^24.1.0",
"@types/vscode": "^1.74.0",
"@typescript-eslint/eslint-plugin": "^8.38.0",
"@typescript-eslint/parser": "^8.38.0",
"@vscode/test-electron": "^2.5.2",
"@vscode/vsce": "^3.7.0",
"eslint": "^9.32.0",
"ts-loader": "^9.5.2",
"typescript": "^5.8.3",
"webpack": "^5.101.0",
"webpack-cli": "^6.0.1"
},
"overrides": {
"js-yaml": "^4.1.1"
}
}