30 lines
1.3 KiB
TypeScript
30 lines
1.3 KiB
TypeScript
export * as SkillPlugin from "./skill"
|
|
|
|
import { Effect } from "effect"
|
|
import { PluginV2 } from "../plugin"
|
|
import { AbsolutePath } from "../schema"
|
|
import { SkillV2 } from "../skill"
|
|
|
|
export const Plugin = PluginV2.define({
|
|
id: PluginV2.ID.make("skill"),
|
|
effect: Effect.gen(function* () {
|
|
const skill = yield* SkillV2.Service
|
|
const transform = yield* skill.transform()
|
|
const content = yield* Effect.promise(() => Bun.file(new URL("./skill/customize-opencode.md", import.meta.url)).text())
|
|
|
|
yield* transform((editor) => {
|
|
editor.source(
|
|
new SkillV2.EmbeddedSource({
|
|
type: "embedded",
|
|
skill: new SkillV2.Info({
|
|
name: "customize-opencode",
|
|
description:
|
|
"Use ONLY when the user is editing or creating opencode's own configuration: opencode.json, opencode.jsonc, files under .opencode/, or files under ~/.config/opencode/. Also use when creating or fixing opencode agents, subagents, skills, plugins, MCP servers, or permission rules. Do not use for the user's own application code, or for any project that is not configuring opencode itself.",
|
|
location: AbsolutePath.make("/builtin/customize-opencode.md"),
|
|
content,
|
|
}),
|
|
}),
|
|
)
|
|
})
|
|
}),
|
|
})
|