feat: 階段 4 工具二(助理技能產生、驗證實跑、技能 README 與版本號、PR)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,7 @@ import { CHARACTERS, applyOverrides, findCharacter, personaSection } from './cha
|
||||
import type { Axes } from './characters'
|
||||
import { layout, meter, parseFields, remainColor, SEPARATOR, usedColor } from './statusline'
|
||||
import type { Segment } from './statusline'
|
||||
import { NEED_ACTIVE, TOOL_COMMAND, registerTools, runSkillTool } from './skilltool'
|
||||
|
||||
const ACTIVE_KEY = 'active'
|
||||
const OFF_COMMAND = 'anima-off'
|
||||
@@ -62,6 +63,7 @@ export const register: Register = (on, options) => {
|
||||
|
||||
const isEnabled = flag('enabled', true)
|
||||
let active: string | undefined
|
||||
let toolRegistered = false
|
||||
const holder: { sys?: Sys } = {}
|
||||
|
||||
const overrides = (): Partial<Axes> => {
|
||||
@@ -81,6 +83,10 @@ export const register: Register = (on, options) => {
|
||||
await $.command.register({ name: OFF_COMMAND, description: '離開角色,回到一般的 Claude Code' })
|
||||
const saved = await $.store.get(ACTIVE_KEY)
|
||||
active = flag('persist', true) && typeof saved === 'string' && findCharacter(saved) ? saved : undefined
|
||||
if (active && !toolRegistered) {
|
||||
toolRegistered = true
|
||||
await registerTools($)
|
||||
}
|
||||
}
|
||||
return next(e)
|
||||
})
|
||||
@@ -92,10 +98,18 @@ export const register: Register = (on, options) => {
|
||||
await $.store.delete(ACTIVE_KEY)
|
||||
return { text: '已離開角色,回到一般模式。' }
|
||||
}
|
||||
if (e.command === TOOL_COMMAND) {
|
||||
return { text: findCharacter(active) ? await runSkillTool($, e.args) : NEED_ACTIVE }
|
||||
}
|
||||
const c = findCharacter(e.command)
|
||||
if (!c) return next(e)
|
||||
active = c.slug
|
||||
await $.store.set(ACTIVE_KEY, c.slug)
|
||||
// 工具二到四只在啟動角色後才註冊。
|
||||
if (!toolRegistered) {
|
||||
toolRegistered = true
|
||||
await registerTools($)
|
||||
}
|
||||
return { text: `已啟動:${c.name}(${c.work})。用 /jsc-anima:${OFF_COMMAND} 離開。` }
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user