fix(cli): resolve repo-wide tsc --noEmit type errors (#512)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
4
bun.lock
4
bun.lock
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"configVersion": 0,
|
|
||||||
"workspaces": {
|
"workspaces": {
|
||||||
"": {
|
"": {
|
||||||
"name": "compound-plugin",
|
"name": "compound-plugin",
|
||||||
@@ -11,6 +10,7 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@semantic-release/changelog": "^6.0.3",
|
"@semantic-release/changelog": "^6.0.3",
|
||||||
"@semantic-release/git": "^10.0.1",
|
"@semantic-release/git": "^10.0.1",
|
||||||
|
"@types/js-yaml": "^4.0.9",
|
||||||
"bun-types": "^1.0.0",
|
"bun-types": "^1.0.0",
|
||||||
"semantic-release": "^25.0.3",
|
"semantic-release": "^25.0.3",
|
||||||
},
|
},
|
||||||
@@ -81,6 +81,8 @@
|
|||||||
|
|
||||||
"@sindresorhus/merge-streams": ["@sindresorhus/merge-streams@4.0.0", "", {}, "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ=="],
|
"@sindresorhus/merge-streams": ["@sindresorhus/merge-streams@4.0.0", "", {}, "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ=="],
|
||||||
|
|
||||||
|
"@types/js-yaml": ["@types/js-yaml@4.0.9", "", {}, "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg=="],
|
||||||
|
|
||||||
"@types/node": ["@types/node@25.0.9", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw=="],
|
"@types/node": ["@types/node@25.0.9", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw=="],
|
||||||
|
|
||||||
"@types/normalize-package-data": ["@types/normalize-package-data@2.4.4", "", {}, "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA=="],
|
"@types/normalize-package-data": ["@types/normalize-package-data@2.4.4", "", {}, "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA=="],
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@semantic-release/changelog": "^6.0.3",
|
"@semantic-release/changelog": "^6.0.3",
|
||||||
"@semantic-release/git": "^10.0.1",
|
"@semantic-release/git": "^10.0.1",
|
||||||
|
"@types/js-yaml": "^4.0.9",
|
||||||
"bun-types": "^1.0.0",
|
"bun-types": "^1.0.0",
|
||||||
"semantic-release": "^25.0.3"
|
"semantic-release": "^25.0.3"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import os from "os"
|
|||||||
import path from "path"
|
import path from "path"
|
||||||
import { loadClaudePlugin } from "../parsers/claude"
|
import { loadClaudePlugin } from "../parsers/claude"
|
||||||
import { targets, validateScope } from "../targets"
|
import { targets, validateScope } from "../targets"
|
||||||
import type { PermissionMode } from "../converters/claude-to-opencode"
|
import type { ClaudeToOpenCodeOptions, PermissionMode } from "../converters/claude-to-opencode"
|
||||||
import { ensureCodexAgentsFile } from "../utils/codex-agents"
|
import { ensureCodexAgentsFile } from "../utils/codex-agents"
|
||||||
import { expandHome, resolveTargetHome } from "../utils/resolve-home"
|
import { expandHome, resolveTargetHome } from "../utils/resolve-home"
|
||||||
import { resolveTargetOutputRoot } from "../utils/resolve-output"
|
import { resolveTargetOutputRoot } from "../utils/resolve-output"
|
||||||
@@ -92,7 +92,7 @@ export default defineCommand({
|
|||||||
const openclawHome = resolveTargetHome(args.openclawHome, path.join(os.homedir(), ".openclaw", "extensions"))
|
const openclawHome = resolveTargetHome(args.openclawHome, path.join(os.homedir(), ".openclaw", "extensions"))
|
||||||
const qwenHome = resolveTargetHome(args.qwenHome, path.join(os.homedir(), ".qwen", "extensions"))
|
const qwenHome = resolveTargetHome(args.qwenHome, path.join(os.homedir(), ".qwen", "extensions"))
|
||||||
|
|
||||||
const options = {
|
const options: ClaudeToOpenCodeOptions = {
|
||||||
agentMode: String(args.agentMode) === "primary" ? "primary" : "subagent",
|
agentMode: String(args.agentMode) === "primary" ? "primary" : "subagent",
|
||||||
inferTemperature: Boolean(args.inferTemperature),
|
inferTemperature: Boolean(args.inferTemperature),
|
||||||
permissions: permissions as PermissionMode,
|
permissions: permissions as PermissionMode,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { fileURLToPath } from "url"
|
|||||||
import { loadClaudePlugin } from "../parsers/claude"
|
import { loadClaudePlugin } from "../parsers/claude"
|
||||||
import { targets, validateScope } from "../targets"
|
import { targets, validateScope } from "../targets"
|
||||||
import { pathExists } from "../utils/files"
|
import { pathExists } from "../utils/files"
|
||||||
import type { PermissionMode } from "../converters/claude-to-opencode"
|
import type { ClaudeToOpenCodeOptions, PermissionMode } from "../converters/claude-to-opencode"
|
||||||
import { ensureCodexAgentsFile } from "../utils/codex-agents"
|
import { ensureCodexAgentsFile } from "../utils/codex-agents"
|
||||||
import { expandHome, resolveTargetHome } from "../utils/resolve-home"
|
import { expandHome, resolveTargetHome } from "../utils/resolve-home"
|
||||||
import { resolveTargetOutputRoot } from "../utils/resolve-output"
|
import { resolveTargetOutputRoot } from "../utils/resolve-output"
|
||||||
@@ -103,7 +103,7 @@ export default defineCommand({
|
|||||||
const openclawHome = resolveTargetHome(args.openclawHome, path.join(os.homedir(), ".openclaw", "extensions"))
|
const openclawHome = resolveTargetHome(args.openclawHome, path.join(os.homedir(), ".openclaw", "extensions"))
|
||||||
const qwenHome = resolveTargetHome(args.qwenHome, path.join(os.homedir(), ".qwen", "extensions"))
|
const qwenHome = resolveTargetHome(args.qwenHome, path.join(os.homedir(), ".qwen", "extensions"))
|
||||||
|
|
||||||
const options = {
|
const options: ClaudeToOpenCodeOptions = {
|
||||||
agentMode: String(args.agentMode) === "primary" ? "primary" : "subagent",
|
agentMode: String(args.agentMode) === "primary" ? "primary" : "subagent",
|
||||||
inferTemperature: Boolean(args.inferTemperature),
|
inferTemperature: Boolean(args.inferTemperature),
|
||||||
permissions: permissions as PermissionMode,
|
permissions: permissions as PermissionMode,
|
||||||
|
|||||||
@@ -350,7 +350,7 @@ function applyPermissions(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const permission: Record<string, "allow" | "deny"> = {}
|
const permission: Record<string, "allow" | "deny" | Record<string, "allow" | "deny">> = {}
|
||||||
const tools: Record<string, boolean> = {}
|
const tools: Record<string, boolean> = {}
|
||||||
|
|
||||||
for (const tool of sourceTools) {
|
for (const tool of sourceTools) {
|
||||||
@@ -369,7 +369,7 @@ function applyPermissions(
|
|||||||
for (const pattern of toolPatterns) {
|
for (const pattern of toolPatterns) {
|
||||||
patternPermission[pattern] = "allow"
|
patternPermission[pattern] = "allow"
|
||||||
}
|
}
|
||||||
;(permission as Record<string, typeof patternPermission>)[tool] = patternPermission
|
;(permission)[tool] = patternPermission
|
||||||
} else {
|
} else {
|
||||||
permission[tool] = enabled.has(tool) ? "allow" : "deny"
|
permission[tool] = enabled.has(tool) ? "allow" : "deny"
|
||||||
}
|
}
|
||||||
@@ -383,7 +383,7 @@ function applyPermissions(
|
|||||||
for (const pattern of toolPatterns) {
|
for (const pattern of toolPatterns) {
|
||||||
patternPermission[pattern] = "allow"
|
patternPermission[pattern] = "allow"
|
||||||
}
|
}
|
||||||
;(permission as Record<string, typeof patternPermission>)[tool] = patternPermission
|
;(permission)[tool] = patternPermission
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -399,8 +399,8 @@ function applyPermissions(
|
|||||||
for (const pattern of combined) {
|
for (const pattern of combined) {
|
||||||
combinedPermission[pattern] = "allow"
|
combinedPermission[pattern] = "allow"
|
||||||
}
|
}
|
||||||
;(permission as Record<string, typeof combinedPermission>).edit = combinedPermission
|
;(permission).edit = combinedPermission
|
||||||
;(permission as Record<string, typeof combinedPermission>).write = combinedPermission
|
;(permission).write = combinedPermission
|
||||||
}
|
}
|
||||||
|
|
||||||
config.permission = permission
|
config.permission = permission
|
||||||
|
|||||||
@@ -1,14 +1,4 @@
|
|||||||
import type { ClaudePlugin } from "../types/claude"
|
import type { ClaudePlugin } from "../types/claude"
|
||||||
import type { OpenCodeBundle } from "../types/opencode"
|
|
||||||
import type { CodexBundle } from "../types/codex"
|
|
||||||
import type { DroidBundle } from "../types/droid"
|
|
||||||
import type { PiBundle } from "../types/pi"
|
|
||||||
import type { CopilotBundle } from "../types/copilot"
|
|
||||||
import type { GeminiBundle } from "../types/gemini"
|
|
||||||
import type { KiroBundle } from "../types/kiro"
|
|
||||||
import type { WindsurfBundle } from "../types/windsurf"
|
|
||||||
import type { OpenClawBundle } from "../types/openclaw"
|
|
||||||
import type { QwenBundle } from "../types/qwen"
|
|
||||||
import { convertClaudeToOpenCode, type ClaudeToOpenCodeOptions } from "../converters/claude-to-opencode"
|
import { convertClaudeToOpenCode, type ClaudeToOpenCodeOptions } from "../converters/claude-to-opencode"
|
||||||
import { convertClaudeToCodex } from "../converters/claude-to-codex"
|
import { convertClaudeToCodex } from "../converters/claude-to-codex"
|
||||||
import { convertClaudeToDroid } from "../converters/claude-to-droid"
|
import { convertClaudeToDroid } from "../converters/claude-to-droid"
|
||||||
@@ -72,62 +62,62 @@ export const targets: Record<string, TargetHandler> = {
|
|||||||
name: "opencode",
|
name: "opencode",
|
||||||
implemented: true,
|
implemented: true,
|
||||||
convert: convertClaudeToOpenCode,
|
convert: convertClaudeToOpenCode,
|
||||||
write: writeOpenCodeBundle,
|
write: writeOpenCodeBundle as TargetHandler["write"],
|
||||||
},
|
},
|
||||||
codex: {
|
codex: {
|
||||||
name: "codex",
|
name: "codex",
|
||||||
implemented: true,
|
implemented: true,
|
||||||
convert: convertClaudeToCodex as TargetHandler<CodexBundle>["convert"],
|
convert: convertClaudeToCodex as TargetHandler["convert"],
|
||||||
write: writeCodexBundle as TargetHandler<CodexBundle>["write"],
|
write: writeCodexBundle as TargetHandler["write"],
|
||||||
},
|
},
|
||||||
droid: {
|
droid: {
|
||||||
name: "droid",
|
name: "droid",
|
||||||
implemented: true,
|
implemented: true,
|
||||||
convert: convertClaudeToDroid as TargetHandler<DroidBundle>["convert"],
|
convert: convertClaudeToDroid as TargetHandler["convert"],
|
||||||
write: writeDroidBundle as TargetHandler<DroidBundle>["write"],
|
write: writeDroidBundle as TargetHandler["write"],
|
||||||
},
|
},
|
||||||
pi: {
|
pi: {
|
||||||
name: "pi",
|
name: "pi",
|
||||||
implemented: true,
|
implemented: true,
|
||||||
convert: convertClaudeToPi as TargetHandler<PiBundle>["convert"],
|
convert: convertClaudeToPi as TargetHandler["convert"],
|
||||||
write: writePiBundle as TargetHandler<PiBundle>["write"],
|
write: writePiBundle as TargetHandler["write"],
|
||||||
},
|
},
|
||||||
copilot: {
|
copilot: {
|
||||||
name: "copilot",
|
name: "copilot",
|
||||||
implemented: true,
|
implemented: true,
|
||||||
convert: convertClaudeToCopilot as TargetHandler<CopilotBundle>["convert"],
|
convert: convertClaudeToCopilot as TargetHandler["convert"],
|
||||||
write: writeCopilotBundle as TargetHandler<CopilotBundle>["write"],
|
write: writeCopilotBundle as TargetHandler["write"],
|
||||||
},
|
},
|
||||||
gemini: {
|
gemini: {
|
||||||
name: "gemini",
|
name: "gemini",
|
||||||
implemented: true,
|
implemented: true,
|
||||||
convert: convertClaudeToGemini as TargetHandler<GeminiBundle>["convert"],
|
convert: convertClaudeToGemini as TargetHandler["convert"],
|
||||||
write: writeGeminiBundle as TargetHandler<GeminiBundle>["write"],
|
write: writeGeminiBundle as TargetHandler["write"],
|
||||||
},
|
},
|
||||||
kiro: {
|
kiro: {
|
||||||
name: "kiro",
|
name: "kiro",
|
||||||
implemented: true,
|
implemented: true,
|
||||||
convert: convertClaudeToKiro as TargetHandler<KiroBundle>["convert"],
|
convert: convertClaudeToKiro as TargetHandler["convert"],
|
||||||
write: writeKiroBundle as TargetHandler<KiroBundle>["write"],
|
write: writeKiroBundle as TargetHandler["write"],
|
||||||
},
|
},
|
||||||
windsurf: {
|
windsurf: {
|
||||||
name: "windsurf",
|
name: "windsurf",
|
||||||
implemented: true,
|
implemented: true,
|
||||||
defaultScope: "global",
|
defaultScope: "global",
|
||||||
supportedScopes: ["global", "workspace"],
|
supportedScopes: ["global", "workspace"],
|
||||||
convert: convertClaudeToWindsurf as TargetHandler<WindsurfBundle>["convert"],
|
convert: convertClaudeToWindsurf as TargetHandler["convert"],
|
||||||
write: writeWindsurfBundle as TargetHandler<WindsurfBundle>["write"],
|
write: writeWindsurfBundle as TargetHandler["write"],
|
||||||
},
|
},
|
||||||
openclaw: {
|
openclaw: {
|
||||||
name: "openclaw",
|
name: "openclaw",
|
||||||
implemented: true,
|
implemented: true,
|
||||||
convert: convertClaudeToOpenClaw as TargetHandler<OpenClawBundle>["convert"],
|
convert: convertClaudeToOpenClaw as TargetHandler["convert"],
|
||||||
write: writeOpenClawBundle as TargetHandler<OpenClawBundle>["write"],
|
write: writeOpenClawBundle as TargetHandler["write"],
|
||||||
},
|
},
|
||||||
qwen: {
|
qwen: {
|
||||||
name: "qwen",
|
name: "qwen",
|
||||||
implemented: true,
|
implemented: true,
|
||||||
convert: convertClaudeToQwen as TargetHandler<QwenBundle>["convert"],
|
convert: convertClaudeToQwen as TargetHandler["convert"],
|
||||||
write: writeQwenBundle as TargetHandler<QwenBundle>["write"],
|
write: writeQwenBundle as TargetHandler["write"],
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user