Parent directory

classifier.ts

1038 bytes
 1import type { FrontmatterDocument, SkillInvocationMode, SkillSource } from "../types.ts";
 2import { getDisableModelInvocation } from "../frontmatter/validation.ts";
 3
 4export function classifyInvocationMode(doc: FrontmatterDocument): SkillInvocationMode {
 5  return getDisableModelInvocation(doc) ? "manual-only" : "agent-invocable";
 6}
 7
 8export function formatSourceKind(kind: SkillSource["kind"] | string): string {
 9  switch (kind) {
10    case "global":
11      return "Global";
12    case "user":
13      return "User";
14    case "project":
15      return "Project";
16    case "project-legacy":
17      return "Project (.agents)";
18    default:
19      return "Unknown";
20  }
21}
22
23export function sourceCategory(source: SkillSource): "global" | "user" | "project" | "unknown" {
24  if (source.kind === "project-legacy") return "project";
25  if (source.kind === "global" || source.kind === "user" || source.kind === "project") return source.kind;
26  return "unknown";
27}
28
29export function sourceBadge(source: SkillSource): string {
30  return sourceCategory(source);
31}