summaryrefslogtreecommitdiffhomepage
path: root/packages/skills/src/extension.ts
blob: 1f16586a259dd8db8c437ec2746571a76233cec0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import { homedir } from "node:os";
import type { Extension, HostAPI } from "@dispatch/kernel";
import { toolsFilter } from "@dispatch/session-orchestrator";
import { createLoadSkillTool } from "./load-skill.js";
import { makeSkillsToolFilter } from "./tools-filter.js";

export const extension: Extension = {
  manifest: {
    id: "skills",
    name: "Skills",
    version: "0.0.0",
    apiVersion: "^0.1.0",
    trust: "bundled",
    activation: "eager",
    dependsOn: ["session-orchestrator"],
    capabilities: { fs: true },
    contributes: { tools: ["load_skill"] },
  },
  activate(host: HostAPI) {
    const homeDir = homedir();
    const workdir = process.cwd();

    host.defineTool(createLoadSkillTool({ homeDir, workdir }));
    host.addFilter(toolsFilter, makeSkillsToolFilter({ homeDir, workdir }));
  },
};