2025-12-22 23:24:06 +00:00
|
|
|
import { EOL } from "os"
|
2026-04-13 15:18:10 +00:00
|
|
|
import { Effect } from "effect"
|
2025-12-22 23:24:06 +00:00
|
|
|
import { Skill } from "../../../skill"
|
2026-05-02 23:22:51 +00:00
|
|
|
import { effectCmd } from "../../effect-cmd"
|
|
|
|
|
import { InstanceRef } from "@/effect/instance-ref"
|
|
|
|
|
import { InstanceStore } from "@/project/instance-store"
|
2025-12-22 23:24:06 +00:00
|
|
|
|
2026-05-02 23:22:51 +00:00
|
|
|
export const SkillCommand = effectCmd({
|
2025-12-22 23:24:06 +00:00
|
|
|
command: "skill",
|
2026-01-08 15:42:12 +00:00
|
|
|
describe: "list all available skills",
|
2025-12-22 23:24:06 +00:00
|
|
|
builder: (yargs) => yargs,
|
2026-05-02 23:22:51 +00:00
|
|
|
handler: Effect.fn("Cli.debug.skill")(function* () {
|
|
|
|
|
const ctx = yield* InstanceRef
|
|
|
|
|
if (!ctx) return
|
|
|
|
|
const store = yield* InstanceStore.Service
|
|
|
|
|
return yield* Effect.gen(function* () {
|
|
|
|
|
const skill = yield* Skill.Service
|
|
|
|
|
const skills = yield* skill.all()
|
2025-12-22 23:24:06 +00:00
|
|
|
process.stdout.write(JSON.stringify(skills, null, 2) + EOL)
|
2026-05-02 23:22:51 +00:00
|
|
|
}).pipe(Effect.ensuring(store.dispose(ctx)))
|
|
|
|
|
}),
|
2025-12-22 23:24:06 +00:00
|
|
|
})
|