← Files Cecil-IA Labs FFmpegARCHIVED FILE

skills/ffmpeg-environment/scripts/inspect.mjs

1.58 KB · Sep 30, 2026 · 23:17 UTC

↓ Download file

#!/usr/bin/env node

import {
  contextPlan,
  enumValue,
  executeSkillScript,
  inputPath,
  objectInput,
  optionalString,
  reportResult,
  runtimeOptions,
} from "../../../dist/skill-scripts/shared.js";
import {
  inspectEnvironmentCapabilities,
  inspectEnvironmentVersions,
  inspectDoctor,
} from "../../../dist/environment/index.js";
import { probeMedia } from "../../../dist/media/probe.js";

const actions = ["doctor", "capabilities", "version", "probe"];

await executeSkillScript("environment.inspect", async ({ request, context, signal }) => {
  const input = objectInput(request.input);
  const action = enumValue(input, "action", actions) ?? "doctor";
  const planned = contextPlan(
    input,
    context,
    "Run skills/ffmpeg-environment/scripts/inspect.mjs from Codex, Work, or a local terminal.",
  );
  if (planned !== undefined) return planned;

  const options = runtimeOptions(input, request, context, signal);
  let report;
  if (action === "doctor") {
    report = await inspectDoctor(options);
  } else if (action === "capabilities") {
    report = await inspectEnvironmentCapabilities(options);
  } else if (action === "version") {
    report = await inspectEnvironmentVersions(options);
  } else {
    report = await probeMedia(inputPath(input, "input", request), {
      ...options,
      ...(optionalString(input, "ffprobePath") !== undefined
        ? { ffprobePath: optionalString(input, "ffprobePath") }
        : {}),
    });
  }
  return reportResult(input, report, [
    "Use the matching domain Skill after the required capability or media metadata is confirmed.",
  ]);
});

SHA-256: 2f3c6b6b6685b7153453107a110c4b325fdb208089a8712b45368e7a4b196e9f