mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-05-18 14:53:05 +08:00
feat: add zed install target
This commit is contained in:
@@ -37,6 +37,7 @@ Targets:
|
||||
codebuddy - Install commands, agents, skills, and flattened rules into ./.codebuddy/
|
||||
joycode - Install commands, agents, skills, and flattened rules into ./.joycode/
|
||||
qwen - Install commands, agents, skills, rules, and Qwen config into ~/.qwen/
|
||||
zed - Install project settings, commands, agents, skills, and flattened rules into ./.zed/
|
||||
|
||||
Options:
|
||||
--profile <name> Resolve and install a manifest profile
|
||||
|
||||
@@ -170,23 +170,30 @@ const ADAPTER_RECORDS = Object.freeze([
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'zed-adjacent',
|
||||
harness: 'Zed-adjacent workflows',
|
||||
state: 'Instruction-backed',
|
||||
id: 'zed',
|
||||
harness: 'Zed',
|
||||
state: 'Adapter-backed',
|
||||
supported_assets: [
|
||||
'Zed project settings',
|
||||
'flattened project rules',
|
||||
'shared skills',
|
||||
'`AGENTS.md` style project instructions',
|
||||
'verification loops',
|
||||
'commands',
|
||||
'agents',
|
||||
],
|
||||
unsupported_surfaces: ['Zed agent surfaces vary; no first-party ECC installer is shipped today'],
|
||||
install_or_onramp: ['Manual copy from shared ECC sources until adapter requirements settle'],
|
||||
verification_commands: ['`npm run harness:audit -- --format json`'],
|
||||
risk_notes: ['Do not claim native Zed support before a real adapter and verification path exist.'],
|
||||
last_verified_at: '2026-05-12',
|
||||
unsupported_surfaces: ['Zed external agents and native Agent Panel permissions are not Claude hooks'],
|
||||
install_or_onramp: ['`./install.sh --profile minimal --target zed`'],
|
||||
verification_commands: [
|
||||
'`node tests/lib/install-targets.test.js`',
|
||||
'`npm run harness:audit -- --format json`',
|
||||
],
|
||||
risk_notes: ['Keep project settings conservative and do not copy BYOK/OpenRouter secrets into `.zed/`.'],
|
||||
last_verified_at: '2026-05-17',
|
||||
owner: 'ECC maintainers',
|
||||
source_docs: [
|
||||
'AGENTS.md',
|
||||
'.zed/settings.json',
|
||||
'scripts/lib/install-targets/zed-project.js',
|
||||
'docs/architecture/cross-harness.md',
|
||||
'tests/lib/install-targets.test.js',
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
@@ -4,7 +4,7 @@ const path = require('path');
|
||||
const { getInstallTargetAdapter, planInstallTargetScaffold } = require('./install-targets/registry');
|
||||
|
||||
const DEFAULT_REPO_ROOT = path.join(__dirname, '../..');
|
||||
const SUPPORTED_INSTALL_TARGETS = ['claude', 'cursor', 'antigravity', 'codex', 'gemini', 'opencode', 'codebuddy', 'joycode', 'qwen'];
|
||||
const SUPPORTED_INSTALL_TARGETS = ['claude', 'cursor', 'antigravity', 'codex', 'gemini', 'opencode', 'codebuddy', 'joycode', 'qwen', 'zed'];
|
||||
const COMPONENT_FAMILY_PREFIXES = {
|
||||
baseline: 'baseline:',
|
||||
language: 'lang:',
|
||||
@@ -35,6 +35,13 @@ const LEGACY_COMPAT_BASE_MODULE_IDS_BY_TARGET = Object.freeze({
|
||||
'agents-core',
|
||||
'commands-core',
|
||||
],
|
||||
zed: [
|
||||
'rules-core',
|
||||
'agents-core',
|
||||
'commands-core',
|
||||
'platform-configs',
|
||||
'workflow-quality',
|
||||
],
|
||||
});
|
||||
const LEGACY_LANGUAGE_ALIAS_TO_CANONICAL = Object.freeze({
|
||||
c: 'c',
|
||||
|
||||
@@ -11,6 +11,7 @@ const PLATFORM_SOURCE_PATH_OWNERS = Object.freeze({
|
||||
'.opencode': 'opencode',
|
||||
'.codebuddy': 'codebuddy',
|
||||
'.qwen': 'qwen',
|
||||
'.zed': 'zed',
|
||||
});
|
||||
|
||||
function normalizeRelativePath(relativePath) {
|
||||
|
||||
@@ -7,6 +7,7 @@ const geminiProject = require('./gemini-project');
|
||||
const joycodeProject = require('./joycode-project');
|
||||
const opencodeHome = require('./opencode-home');
|
||||
const qwenHome = require('./qwen-home');
|
||||
const zedProject = require('./zed-project');
|
||||
|
||||
const ADAPTERS = Object.freeze([
|
||||
claudeHome,
|
||||
@@ -18,6 +19,7 @@ const ADAPTERS = Object.freeze([
|
||||
codebuddyProject,
|
||||
joycodeProject,
|
||||
qwenHome,
|
||||
zedProject,
|
||||
]);
|
||||
|
||||
function listInstallTargetAdapters() {
|
||||
|
||||
50
scripts/lib/install-targets/zed-project.js
Normal file
50
scripts/lib/install-targets/zed-project.js
Normal file
@@ -0,0 +1,50 @@
|
||||
const path = require('path');
|
||||
|
||||
const {
|
||||
createFlatRuleOperations,
|
||||
createInstallTargetAdapter,
|
||||
isForeignPlatformPath,
|
||||
} = require('./helpers');
|
||||
|
||||
module.exports = createInstallTargetAdapter({
|
||||
id: 'zed-project',
|
||||
target: 'zed',
|
||||
kind: 'project',
|
||||
rootSegments: ['.zed'],
|
||||
installStatePathSegments: ['ecc-install-state.json'],
|
||||
nativeRootRelativePath: '.zed',
|
||||
planOperations(input, adapter) {
|
||||
const modules = Array.isArray(input.modules)
|
||||
? input.modules
|
||||
: (input.module ? [input.module] : []);
|
||||
const {
|
||||
repoRoot,
|
||||
projectRoot,
|
||||
homeDir,
|
||||
} = input;
|
||||
const planningInput = {
|
||||
repoRoot,
|
||||
projectRoot,
|
||||
homeDir,
|
||||
};
|
||||
const targetRoot = adapter.resolveRoot(planningInput);
|
||||
|
||||
return modules.flatMap(module => {
|
||||
const paths = Array.isArray(module.paths) ? module.paths : [];
|
||||
return paths
|
||||
.filter(p => !isForeignPlatformPath(p, adapter.target))
|
||||
.flatMap(sourceRelativePath => {
|
||||
if (sourceRelativePath === 'rules') {
|
||||
return createFlatRuleOperations({
|
||||
moduleId: module.id,
|
||||
repoRoot,
|
||||
sourceRelativePath,
|
||||
destinationDir: path.join(targetRoot, 'rules'),
|
||||
});
|
||||
}
|
||||
|
||||
return [adapter.createScaffoldOperation(module.id, sourceRelativePath, planningInput)];
|
||||
});
|
||||
});
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user