refactor: remove legacy tools format, use permission only
BREAKING: Requires OpenCode 1.1.1+ - Remove supportsNewPermissionSystem/usesLegacyToolsSystem checks - Simplify permission-compat.ts to permission format only - Unify explore/librarian deny lists: write, edit, task, sisyphus_task, call_omo_agent - Add sisyphus_task to oracle deny list - Update agent-tool-restrictions.ts with correct per-agent restrictions - Clean config-handler.ts conditional version checks - Update tests for simplified API
This commit is contained in:
@@ -3,8 +3,7 @@ import { isGptModel } from "./types"
|
||||
import type { AgentOverrideConfig, CategoryConfig } from "../config/schema"
|
||||
import {
|
||||
createAgentToolRestrictions,
|
||||
migrateAgentConfig,
|
||||
supportsNewPermissionSystem,
|
||||
type PermissionValue,
|
||||
} from "../shared/permission-compat"
|
||||
|
||||
const SISYPHUS_JUNIOR_PROMPT = `<Role>
|
||||
@@ -99,26 +98,14 @@ export function createSisyphusJuniorAgentWithOverrides(
|
||||
|
||||
const baseRestrictions = createAgentToolRestrictions(BLOCKED_TOOLS)
|
||||
|
||||
let toolsConfig: Record<string, unknown> = {}
|
||||
if (supportsNewPermissionSystem()) {
|
||||
const userPermission = (override?.permission ?? {}) as Record<string, string>
|
||||
const basePermission = (baseRestrictions as { permission: Record<string, string> }).permission
|
||||
const merged: Record<string, string> = { ...userPermission }
|
||||
for (const tool of BLOCKED_TOOLS) {
|
||||
merged[tool] = "deny"
|
||||
}
|
||||
merged.call_omo_agent = "allow"
|
||||
toolsConfig = { permission: { ...merged, ...basePermission } }
|
||||
} else {
|
||||
const userTools = override?.tools ?? {}
|
||||
const baseTools = (baseRestrictions as { tools: Record<string, boolean> }).tools
|
||||
const merged: Record<string, boolean> = { ...userTools }
|
||||
for (const tool of BLOCKED_TOOLS) {
|
||||
merged[tool] = false
|
||||
}
|
||||
merged.call_omo_agent = true
|
||||
toolsConfig = { tools: { ...merged, ...baseTools } }
|
||||
const userPermission = (override?.permission ?? {}) as Record<string, PermissionValue>
|
||||
const basePermission = baseRestrictions.permission
|
||||
const merged: Record<string, PermissionValue> = { ...userPermission }
|
||||
for (const tool of BLOCKED_TOOLS) {
|
||||
merged[tool] = "deny"
|
||||
}
|
||||
merged.call_omo_agent = "allow"
|
||||
const toolsConfig = { permission: { ...merged, ...basePermission } }
|
||||
|
||||
const base: AgentConfig = {
|
||||
description: override?.description ??
|
||||
@@ -153,10 +140,18 @@ export function createSisyphusJuniorAgent(
|
||||
const prompt = buildSisyphusJuniorPrompt(promptAppend)
|
||||
const model = categoryConfig.model
|
||||
const baseRestrictions = createAgentToolRestrictions(BLOCKED_TOOLS)
|
||||
const mergedConfig = migrateAgentConfig({
|
||||
...baseRestrictions,
|
||||
...(categoryConfig.tools ? { tools: categoryConfig.tools } : {}),
|
||||
})
|
||||
const categoryPermission = categoryConfig.tools
|
||||
? Object.fromEntries(
|
||||
Object.entries(categoryConfig.tools).map(([k, v]) => [
|
||||
k,
|
||||
v ? ("allow" as const) : ("deny" as const),
|
||||
])
|
||||
)
|
||||
: {}
|
||||
const mergedPermission = {
|
||||
...categoryPermission,
|
||||
...baseRestrictions.permission,
|
||||
}
|
||||
|
||||
|
||||
const base: AgentConfig = {
|
||||
@@ -167,7 +162,7 @@ export function createSisyphusJuniorAgent(
|
||||
maxTokens: categoryConfig.maxTokens ?? 64000,
|
||||
prompt,
|
||||
color: "#20B2AA",
|
||||
...mergedConfig,
|
||||
permission: mergedPermission,
|
||||
}
|
||||
|
||||
if (categoryConfig.temperature !== undefined) {
|
||||
|
||||
Reference in New Issue
Block a user