SYMBOL INDEX (513 symbols across 40 files) FILE: skills/.curated/chatgpt-apps/scripts/scaffold_node_ext_apps.mjs function toSlug (line 6) | function toSlug(value) { function toToolName (line 11) | function toToolName(value) { function toTitle (line 16) | function toTitle(value) { function fillTemplate (line 21) | function fillTemplate(template, mapping) { function writeFile (line 29) | function writeFile(filePath, content) { function ensureTargetDir (line 34) | function ensureTargetDir(targetPath, force) { function buildPackageJson (line 49) | function buildPackageJson(appSlug) { function buildTsconfig (line 74) | function buildTsconfig() { constant WIDGET_TEMPLATE (line 91) | const WIDGET_TEMPLATE = ` constant SERVER_TEMPLATE (line 314) | const SERVER_TEMPLATE = `import { createServer } from "node:http"; function buildWidgetHtml (line 485) | function buildWidgetHtml(appSlug, appTitle, toolName) { function buildServerTs (line 493) | function buildServerTs(appSlug, appTitle, toolName, widgetUri, port) { function usage (line 503) | function usage() { function parseArgs (line 516) | function parseArgs(argv) { function main (line 573) | function main() { FILE: skills/.curated/develop-web-game/scripts/web_game_playwright_client.js function parseArgs (line 5) | function parseArgs(argv) { function sleep (line 69) | async function sleep(ms) { function ensureDir (line 73) | function ensureDir(p) { function makeVirtualTimeShim (line 77) | function makeVirtualTimeShim() { function getCanvasHandle (line 127) | async function getCanvasHandle(page) { function captureCanvasPngBase64 (line 143) | async function captureCanvasPngBase64(canvas) { function isCanvasTransparent (line 152) | async function isCanvasTransparent(canvas) { function captureScreenshot (line 177) | async function captureScreenshot(page, canvas, outPath) { class ConsoleErrorTracker (line 207) | class ConsoleErrorTracker { method constructor (line 208) | constructor() { method ingest (line 213) | ingest(err) { method drain (line 220) | drain() { function doChoreography (line 227) | async function doChoreography(page, canvas, steps) { function main (line 262) | async function main() { FILE: skills/.curated/doc/scripts/render_docx.py function ensure_system_tools (line 19) | def ensure_system_tools() -> None: function calc_dpi_via_ooxml_docx (line 31) | def calc_dpi_via_ooxml_docx(input_path: str, max_w_px: int, max_h_px: in... function calc_dpi_via_pdf (line 69) | def calc_dpi_via_pdf(input_path: str, max_w_px: int, max_h_px: int) -> int: function run_cmd_no_check (line 100) | def run_cmd_no_check(cmd: list[str]) -> None: function convert_to_pdf (line 110) | def convert_to_pdf( function rasterize (line 172) | def rasterize( function main (line 227) | def main() -> None: FILE: skills/.curated/gh-address-comments/scripts/fetch_comments.py function _run (line 95) | def _run(cmd: list[str], stdin: str | None = None) -> str: function _run_json (line 102) | def _run_json(cmd: list[str], stdin: str | None = None) -> dict[str, Any]: function _ensure_gh_authenticated (line 110) | def _ensure_gh_authenticated() -> None: function gh_pr_view_json (line 118) | def gh_pr_view_json(fields: str) -> dict[str, Any]: function get_current_pr_ref (line 123) | def get_current_pr_ref() -> tuple[str, str, int]: function gh_api_graphql (line 135) | def gh_api_graphql( function fetch_all (line 170) | def fetch_all(owner: str, repo: str, number: int) -> dict[str, Any]: function main (line 229) | def main() -> None: FILE: skills/.curated/gh-fix-ci/scripts/inspect_pr_checks.py class GhResult (line 51) | class GhResult: method __init__ (line 52) | def __init__(self, returncode: int, stdout: str, stderr: str): function run_gh_command (line 58) | def run_gh_command(args: Sequence[str], cwd: Path) -> GhResult: function run_gh_command_raw (line 68) | def run_gh_command_raw(args: Sequence[str], cwd: Path) -> tuple[int, byt... function parse_args (line 78) | def parse_args() -> argparse.Namespace: function main (line 96) | def main() -> int: function find_git_root (line 138) | def find_git_root(start: Path) -> Path | None: function ensure_gh_available (line 150) | def ensure_gh_available(repo_root: Path) -> bool: function resolve_pr (line 162) | def resolve_pr(pr_value: str | None, repo_root: Path) -> str | None: function fetch_checks (line 182) | def fetch_checks(pr_value: str, repo_root: Path) -> list[dict[str, Any]]... function is_failing (line 227) | def is_failing(check: dict[str, Any]) -> bool: function analyze_check (line 238) | def analyze_check( function extract_run_id (line 288) | def extract_run_id(url: str) -> str | None: function extract_job_id (line 298) | def extract_job_id(url: str) -> str | None: function fetch_run_metadata (line 310) | def fetch_run_metadata(run_id: str, repo_root: Path) -> dict[str, Any] |... function fetch_check_log (line 333) | def fetch_check_log( function fetch_run_log (line 358) | def fetch_run_log(run_id: str, repo_root: Path) -> tuple[str, str]: function fetch_job_log (line 366) | def fetch_job_log(job_id: str, repo_root: Path) -> tuple[str, str]: function fetch_repo_slug (line 380) | def fetch_repo_slug(repo_root: Path) -> str | None: function normalize_field (line 394) | def normalize_field(value: Any) -> str: function parse_available_fields (line 400) | def parse_available_fields(message: str) -> list[str]: function is_log_pending_message (line 418) | def is_log_pending_message(message: str) -> bool: function is_zip_payload (line 423) | def is_zip_payload(payload: bytes) -> bool: function extract_failure_snippet (line 427) | def extract_failure_snippet(log_text: str, max_lines: int, context: int)... function find_failure_index (line 444) | def find_failure_index(lines: Sequence[str]) -> int | None: function tail_lines (line 452) | def tail_lines(text: str, max_lines: int) -> str: function render_results (line 459) | def render_results(pr_number: str, results: Iterable[dict[str, Any]]) ->... function indent_block (line 504) | def indent_block(text: str, prefix: str = " ") -> str: FILE: skills/.curated/imagegen/scripts/image_gen.py function _die (line 37) | def _die(message: str, code: int = 1) -> None: function _warn (line 42) | def _warn(message: str) -> None: function _ensure_api_key (line 46) | def _ensure_api_key(dry_run: bool) -> None: function _read_prompt (line 56) | def _read_prompt(prompt: Optional[str], prompt_file: Optional[str]) -> str: function _check_image_paths (line 70) | def _check_image_paths(paths: Iterable[str]) -> List[Path]: function _normalize_output_format (line 82) | def _normalize_output_format(fmt: Optional[str]) -> str: function _validate_size (line 91) | def _validate_size(size: str) -> None: function _validate_quality (line 98) | def _validate_quality(quality: str) -> None: function _validate_background (line 103) | def _validate_background(background: Optional[str]) -> None: function _validate_transparency (line 108) | def _validate_transparency(background: Optional[str], output_format: str... function _validate_generate_payload (line 113) | def _validate_generate_payload(payload: Dict[str, Any]) -> None: function _build_output_paths (line 128) | def _build_output_paths( function _augment_prompt (line 162) | def _augment_prompt(args: argparse.Namespace, prompt: str) -> str: function _augment_prompt_fields (line 167) | def _augment_prompt_fields(augment: bool, prompt: str, fields: Dict[str,... function _fields_from_args (line 199) | def _fields_from_args(args: argparse.Namespace) -> Dict[str, Optional[st... function _print_request (line 215) | def _print_request(payload: dict) -> None: function _decode_and_write (line 219) | def _decode_and_write(images: List[str], outputs: List[Path], force: boo... function _derive_downscale_path (line 231) | def _derive_downscale_path(path: Path, suffix: str) -> Path: function _downscale_image_bytes (line 237) | def _downscale_image_bytes(image_bytes: bytes, *, max_dim: int, output_f... function _decode_write_and_downscale (line 273) | def _decode_write_and_downscale( function _create_client (line 306) | def _create_client(): function _create_async_client (line 314) | def _create_async_client(): function _slugify (line 328) | def _slugify(value: str) -> str: function _normalize_job (line 335) | def _normalize_job(job: Any, idx: int) -> Dict[str, Any]: function _read_jobs_jsonl (line 349) | def _read_jobs_jsonl(path: str) -> List[Dict[str, Any]]: function _merge_non_null (line 374) | def _merge_non_null(dst: Dict[str, Any], src: Dict[str, Any]) -> Dict[st... function _job_output_paths (line 382) | def _job_output_paths( function _extract_retry_after_seconds (line 415) | def _extract_retry_after_seconds(exc: Exception) -> Optional[float]: function _is_rate_limit_error (line 431) | def _is_rate_limit_error(exc: Exception) -> bool: function _is_transient_error (line 439) | def _is_transient_error(exc: Exception) -> bool: function _generate_one_with_retries (line 449) | async def _generate_one_with_retries( function _run_generate_batch (line 477) | async def _run_generate_batch(args: argparse.Namespace) -> int: function _generate_batch (line 612) | def _generate_batch(args: argparse.Namespace) -> None: function _generate (line 618) | def _generate(args: argparse.Namespace) -> None: function _edit (line 666) | def _edit(args: argparse.Namespace) -> None: function _open_files (line 735) | def _open_files(paths: List[Path]): function _open_mask (line 739) | def _open_mask(mask_path: Optional[Path]): class _NullContext (line 745) | class _NullContext: method __enter__ (line 746) | def __enter__(self): method __exit__ (line 749) | def __exit__(self, exc_type, exc, tb): class _SingleFile (line 753) | class _SingleFile: method __init__ (line 754) | def __init__(self, path: Path): method __enter__ (line 758) | def __enter__(self): method __exit__ (line 762) | def __exit__(self, exc_type, exc, tb): class _FileBundle (line 771) | class _FileBundle: method __init__ (line 772) | def __init__(self, paths: List[Path]): method __enter__ (line 776) | def __enter__(self): method __exit__ (line 780) | def __exit__(self, exc_type, exc, tb): function _add_shared_args (line 789) | def _add_shared_args(parser: argparse.ArgumentParser) -> None: function main (line 826) | def main() -> int: FILE: skills/.curated/jupyter-notebook/scripts/new_notebook.py function slugify (line 10) | def slugify(text: str) -> str: function find_repo_root (line 17) | def find_repo_root(start: Path) -> Path: function load_template (line 24) | def load_template(skill_dir: Path, kind: str) -> dict[str, Any]: function update_title (line 36) | def update_title(notebook: dict[str, Any], kind: str, title: str) -> None: function default_output (line 73) | def default_output(repo_root: Path, title: str) -> Path: function parse_args (line 78) | def parse_args() -> argparse.Namespace: function main (line 105) | def main() -> None: FILE: skills/.curated/screenshot/scripts/take_screenshot.py function parse_region (line 33) | def parse_region(value: str) -> tuple[int, int, int, int]: function test_mode_enabled (line 46) | def test_mode_enabled() -> bool: function normalize_platform (line 51) | def normalize_platform(value: str) -> str: function test_platform_override (line 62) | def test_platform_override() -> str | None: function parse_int_list (line 69) | def parse_int_list(value: str) -> list[int]: function test_window_ids (line 82) | def test_window_ids() -> list[int]: function test_display_ids (line 88) | def test_display_ids() -> list[int]: function write_test_png (line 94) | def write_test_png(path: Path) -> None: function timestamp (line 99) | def timestamp() -> str: function default_filename (line 103) | def default_filename(fmt: str, prefix: str = "screenshot") -> str: function mac_default_dir (line 107) | def mac_default_dir() -> Path: function default_dir (line 124) | def default_dir(system: str) -> Path: function ensure_parent (line 145) | def ensure_parent(path: Path) -> None: function resolve_output_path (line 153) | def resolve_output_path( function multi_output_paths (line 180) | def multi_output_paths(base: Path, suffixes: list[str]) -> list[Path]: function run (line 191) | def run(cmd: list[str]) -> None: function swift_json (line 200) | def swift_json(script: Path, extra_args: list[str] | None = None) -> dict: function macos_screen_capture_granted (line 224) | def macos_screen_capture_granted(request: bool = False) -> bool: function ensure_macos_permissions (line 230) | def ensure_macos_permissions() -> None: function activate_app (line 244) | def activate_app(app: str) -> None: function macos_window_payload (line 250) | def macos_window_payload(args: argparse.Namespace, frontmost: bool, incl... function macos_display_indexes (line 263) | def macos_display_indexes() -> list[int]: function macos_window_ids (line 277) | def macos_window_ids(args: argparse.Namespace, capture_all: bool) -> lis... function list_macos_windows (line 306) | def list_macos_windows(args: argparse.Namespace) -> None: function list_test_macos_windows (line 322) | def list_test_macos_windows(args: argparse.Namespace) -> None: function resolve_macos_windows (line 333) | def resolve_macos_windows(args: argparse.Namespace) -> list[int]: function resolve_test_macos_windows (line 340) | def resolve_test_macos_windows(args: argparse.Namespace) -> list[int]: function capture_macos (line 347) | def capture_macos( function capture_linux (line 369) | def capture_linux(args: argparse.Namespace, output: Path) -> None: function main (line 420) | def main() -> None: FILE: skills/.curated/security-ownership-map/scripts/build_ownership_map.py function parse_args (line 65) | def parse_args() -> argparse.Namespace: function load_sensitive_rules (line 206) | def load_sensitive_rules(path: str | None) -> list[tuple[str, str, float]]: function parse_date (line 225) | def parse_date(value: str) -> dt.datetime: function offset_minutes (line 232) | def offset_minutes(timestamp: dt.datetime) -> int | None: function format_offset (line 239) | def format_offset(minutes: int) -> str: function recency_weighted (line 245) | def recency_weighted(now: dt.datetime, when: dt.datetime, half_life_days... function match_sensitive (line 252) | def match_sensitive(path: str, rules: Iterable[tuple[str, str, float]]) ... function matches_glob (line 266) | def matches_glob(path: str, pattern: str) -> bool: function is_excluded (line 274) | def is_excluded(path: str, patterns: Iterable[str]) -> bool: function author_excluded (line 278) | def author_excluded(name: str, email: str, patterns: Iterable[re.Pattern... function compute_community_owners (line 285) | def compute_community_owners( function run_git_log (line 340) | def run_git_log( function iter_commits (line 384) | def iter_commits(lines: Iterable[list[str]]) -> Iterable[tuple[dict[str,... function ensure_out_dir (line 407) | def ensure_out_dir(path: str) -> Path: function write_csv (line 413) | def write_csv(path: Path, header: list[str], rows: Iterable[list[str]]) ... function build_ownership_map (line 421) | def build_ownership_map(args: argparse.Namespace) -> Path: function main (line 943) | def main() -> int: FILE: skills/.curated/security-ownership-map/scripts/community_maintainers.py function parse_args (line 19) | def parse_args() -> argparse.Namespace: function parse_date (line 127) | def parse_date(value: str) -> dt.datetime: function month_key (line 137) | def month_key(timestamp: dt.datetime) -> str: function quarter_key (line 141) | def quarter_key(timestamp: dt.datetime) -> str: function month_end (line 146) | def month_end(timestamp: dt.datetime) -> dt.datetime: function quarter_start (line 156) | def quarter_start(timestamp: dt.datetime) -> dt.datetime: function quarter_end (line 162) | def quarter_end(timestamp: dt.datetime) -> dt.datetime: function add_months (line 173) | def add_months(timestamp: dt.datetime, months: int) -> dt.datetime: function recency_weight (line 179) | def recency_weight(age_days: float, half_life_days: float) -> float: function read_csv (line 185) | def read_csv(path: Path) -> Iterable[dict[str, str]]: function load_people (line 191) | def load_people(data_dir: Path) -> dict[str, dict[str, str]]: function load_graph_json (line 203) | def load_graph_json(data_dir: Path) -> dict[str, object] | None: function find_file_node (line 213) | def find_file_node(nodes: list[dict[str, object]], query: str) -> dict[s... function load_community_files (line 226) | def load_community_files( function iter_commits_from_json (line 261) | def iter_commits_from_json( function iter_commits_from_git (line 304) | def iter_commits_from_git( function parse_git_block (line 350) | def parse_git_block(block: list[str]) -> Iterable[dict[str, object]]: function main (line 378) | def main() -> int: FILE: skills/.curated/security-ownership-map/scripts/query_ownership.py function parse_args (line 15) | def parse_args() -> argparse.Namespace: function to_int (line 78) | def to_int(value: str) -> int: function to_float (line 85) | def to_float(value: str) -> float: function read_csv (line 92) | def read_csv(path: Path) -> Iterable[dict[str, str]]: function load_people (line 98) | def load_people(data_dir: Path) -> list[dict[str, object]]: function load_files (line 110) | def load_files(data_dir: Path) -> list[dict[str, object]]: function load_summary (line 125) | def load_summary(data_dir: Path) -> dict[str, object]: function load_communities (line 131) | def load_communities(data_dir: Path) -> list[dict[str, object]]: function load_cochange_edges (line 139) | def load_cochange_edges(data_dir: Path) -> Iterable[dict[str, object]]: function select_single (line 152) | def select_single(records: list[dict[str, object]], key: str, query: str... function top_edges_for_person (line 165) | def top_edges_for_person(data_dir: Path, person_id: str) -> list[dict[st... function top_edges_for_file (line 183) | def top_edges_for_file(data_dir: Path, file_id: str) -> list[dict[str, o... function sort_records (line 201) | def sort_records(records: list[dict[str, object]], key: str) -> list[dic... function handle_people (line 205) | def handle_people(args: argparse.Namespace, data_dir: Path) -> None: function handle_files (line 227) | def handle_files(args: argparse.Namespace, data_dir: Path) -> None: function handle_person (line 252) | def handle_person(args: argparse.Namespace, data_dir: Path) -> None: function handle_file (line 286) | def handle_file(args: argparse.Namespace, data_dir: Path) -> None: function handle_cochange (line 321) | def handle_cochange(args: argparse.Namespace, data_dir: Path) -> None: function handle_tag (line 361) | def handle_tag(args: argparse.Namespace, data_dir: Path) -> None: function handle_summary (line 408) | def handle_summary(args: argparse.Namespace, data_dir: Path) -> None: function handle_communities (line 419) | def handle_communities(args: argparse.Namespace, data_dir: Path) -> None: function handle_community (line 433) | def handle_community(args: argparse.Namespace, data_dir: Path) -> None: function main (line 447) | def main() -> int: FILE: skills/.curated/security-ownership-map/scripts/run_ownership_map.py function parse_args (line 12) | def parse_args() -> argparse.Namespace: function main (line 133) | def main() -> int: FILE: skills/.curated/sentry/scripts/sentry_api.py function redact_string (line 21) | def redact_string(value): function redact_data (line 27) | def redact_data(value): function next_cursor (line 43) | def next_cursor(link_header): function request_json (line 54) | def request_json(url, token, retries=1): function build_url (line 81) | def build_url(base_url, path, params=None): function paged_get (line 89) | def paged_get(base_url, path, params, token, limit): function require_org_project (line 108) | def require_org_project(org, project): function handle_list_issues (line 115) | def handle_list_issues(args, token, base_url): function handle_issue_detail (line 130) | def handle_issue_detail(args, token, base_url): function handle_issue_events (line 137) | def handle_issue_events(args, token, base_url): function handle_event_detail (line 144) | def handle_event_detail(args, token, base_url): function build_parser (line 155) | def build_parser(): function main (line 206) | def main(): FILE: skills/.curated/slides/assets/pptxgenjs_helpers/code.js constant THEME_MAP (line 6) | let THEME_MAP; function loadPrismLanguage (line 8) | function loadPrismLanguage(lang) { function buildThemeMap (line 48) | function buildThemeMap(themeCssModule = "prismjs/themes/prism-okaidia.cs... function getThemeMap (line 63) | function getThemeMap() { function run (line 68) | function run(text, type = "plain") { function tokensToRuns (line 80) | function tokensToRuns(tokens) { function codeToRuns (line 90) | function codeToRuns(code, lang) { FILE: skills/.curated/slides/assets/pptxgenjs_helpers/image.js function readInputAsBuffer (line 8) | function readInputAsBuffer(source) { function isPng (line 41) | function isPng(buf) { function isJpeg (line 55) | function isJpeg(buf) { function isGif (line 61) | function isGif(buf) { function isWebp (line 73) | function isWebp(buf) { function isSvg (line 87) | function isSvg(buf) { function readPngSize (line 92) | function readPngSize(buf) { function readGifSize (line 99) | function readGifSize(buf) { function readWebpSize (line 105) | function readWebpSize(buf) { function readJpegSize (line 148) | function readJpegSize(buf) { function parseSvgSize (line 175) | function parseSvgSize(buf) { function getImageDimensions (line 231) | function getImageDimensions(pathOrData) { function imageSizingCrop (line 257) | function imageSizingCrop(source, x, y, w, h, cx, cy, cw, ch) { function imageSizingContain (line 310) | function imageSizingContain(source, x, y, w, h) { FILE: skills/.curated/slides/assets/pptxgenjs_helpers/index.js constant VERSION (line 4) | const VERSION = "1.2.0"; FILE: skills/.curated/slides/assets/pptxgenjs_helpers/latex.js function ensureMathJax (line 8) | function ensureMathJax() { function latexToSvgDataUri (line 31) | function latexToSvgDataUri(latex, display = true) { FILE: skills/.curated/slides/assets/pptxgenjs_helpers/layout.js function inferElementType (line 4) | function inferElementType(obj) { constant TEXT_OVERLAP_ERROR_THRESHOLD (line 20) | const TEXT_OVERLAP_ERROR_THRESHOLD = 0.1; constant RECTIFY_DIRECTION_EQUALITY_TOLERANCE (line 21) | const RECTIFY_DIRECTION_EQUALITY_TOLERANCE = 0.15; function warnIfSlideHasOverlaps (line 23) | function warnIfSlideHasOverlaps(slide, pptx, options = {}) { function compareElementPosition (line 234) | function compareElementPosition(slide, firstIndex, secondIndex) { constant VALID_ALIGNMENTS (line 347) | const VALID_ALIGNMENTS = new Set([ function alignSlideElements (line 462) | function alignSlideElements(slide, indices, alignment) { function distributeSlideElements (line 519) | function distributeSlideElements(slide, indices, direction) { function warnIfSlideElementsOutOfBounds (line 575) | function warnIfSlideElementsOutOfBounds(slide, pptx) { FILE: skills/.curated/slides/assets/pptxgenjs_helpers/layout_builders.js function addImageTextCard (line 14) | function addImageTextCard(slide, opts = {}) { function addCardRow (line 136) | function addCardRow(slide, region, cards = [], options = {}) { function addThreeLevelTree (line 174) | function addThreeLevelTree(slide, opts = {}) { function addConnector (line 342) | function addConnector(slide, x1, y1, x2, y2, line = {}) { function toNumberOr (line 355) | function toNumberOr(v, fallback) { FILE: skills/.curated/slides/assets/pptxgenjs_helpers/svg.js function toDataUri (line 4) | function toDataUri(svg) { function sanitizeSvg (line 8) | function sanitizeSvg(svg) { function svgToDataUri (line 28) | function svgToDataUri(svg) { FILE: skills/.curated/slides/assets/pptxgenjs_helpers/text.js constant TEXT_MEASURER (line 9) | const TEXT_MEASURER = getTextMeasurer(); function calcTextBoxHeightSimple (line 18) | function calcTextBoxHeightSimple( function autoFontSize (line 42) | function autoFontSize(textOrRuns, fontFace, opts = {}) { function calcTextBox (line 206) | function calcTextBox(fontSizePt, opts = {}) { function layoutGivenWidth (line 363) | function layoutGivenWidth(paragraphs, boxW) { function greedyWrap (line 380) | function greedyWrap(paragraph, maxWidthIn) { function splitTextIntoTokens (line 423) | function splitTextIntoTokens(text) { function trimLineEnd (line 429) | function trimLineEnd(value) { function measureRunWidth (line 433) | function measureRunWidth(paragraph, text) { function forceBreakSegment (line 455) | function forceBreakSegment(text, start, maxWidthIn, paragraph) { function skipTextWhitespace (line 481) | function skipTextWhitespace(text, index) { function buildParagraphModels (line 487) | function buildParagraphModels(textOrRuns, baseStyle) { function collectParagraphEntries (line 495) | function collectParagraphEntries(textOrRuns) { function pushParagraphSegments (line 511) | function pushParagraphSegments(text, options, target) { function resolveParagraphStyle (line 523) | function resolveParagraphStyle(entry, baseStyle) { function getFontData (line 579) | function getFontData(face, fontStyle, fontWeight) { function makeFontCacheKey (line 606) | function makeFontCacheKey(face, fontStyle, fontWeight) { function registerCanvasFontVariant (line 613) | function registerCanvasFontVariant( function findFontPath (line 633) | function findFontPath(face, fontStyle, fontWeight) { function selectCollectionFont (line 658) | function selectCollectionFont(collection, fontStyle, fontWeight) { function scoreFontVariant (line 676) | function scoreFontVariant(font, wantItalic, wantBold) { function getWidthScaleForParagraph (line 692) | function getWidthScaleForParagraph(paragraph) { function buildPassthroughOptions (line 714) | function buildPassthroughOptions(opts, fontSizePt, margins) { function getTextMeasurer (line 733) | function getTextMeasurer() { function normalizeMargins (line 750) | function normalizeMargins(m) { function normalizeText (line 767) | function normalizeText(textOrRuns) { function toNumber (line 780) | function toNumber(v, fallback) { FILE: skills/.curated/slides/assets/pptxgenjs_helpers/util.js function safeOuterShadow (line 5) | function safeOuterShadow( FILE: skills/.curated/slides/scripts/create_montage.py function _make_placeholder (line 21) | def _make_placeholder(w: int, h: int) -> Image.Image: function _load_images_with_placeholders (line 31) | def _load_images_with_placeholders( function _natural_key (line 58) | def _natural_key(s: str) -> list: function create_montage (line 63) | def create_montage( function main (line 201) | def main() -> None: FILE: skills/.curated/slides/scripts/detect_font.py function normalize_font_family_name (line 102) | def normalize_font_family_name(name: str) -> str: function _or_dummy (line 109) | def _or_dummy(node: ET.Element | None) -> ET.Element: function _build_fc_synonym_map (line 118) | def _build_fc_synonym_map() -> dict[str, set[str]]: function _expand_via_fontconfig (line 149) | def _expand_via_fontconfig(family_base_norm: str) -> set[str]: function parse_font_family_base_and_styles (line 161) | def parse_font_family_base_and_styles(name_norm: str) -> tuple[str, set[... function _split_odf_family_list (line 233) | def _split_odf_family_list(value: str) -> list[str]: function extract_used_fonts_from_pptx (line 242) | def extract_used_fonts_from_pptx(pptx_path: str) -> dict[int, set[str]]: function _detect_script_tag (line 282) | def _detect_script_tag(text: str) -> str: function _collect_default_font_faces (line 324) | def _collect_default_font_faces(root: ET.Element) -> dict[str, set[str]]: function _run_soffice_convert (line 337) | def _run_soffice_convert(cmd: list[str]) -> None: function _export_to_odp (line 347) | def _export_to_odp(pptx_path: str, user_profile: str, out_dir: str, stem... function _collect_face_map (line 366) | def _collect_face_map(root: ET.Element, ns: dict[str, str]) -> dict[str,... function _families_from_text_properties (line 382) | def _families_from_text_properties( function _extract_styles_from_container (line 420) | def _extract_styles_from_container( function _build_style_map (line 447) | def _build_style_map( function _lookup_style_families (line 514) | def _lookup_style_families( function _collect_slide_families (line 550) | def _collect_slide_families( function _build_style_map_text (line 589) | def _build_style_map_text(xml_text: str) -> dict[str, set[str]]: function _extract_slide_families_from_odp (line 616) | def _extract_slide_families_from_odp(odp_path: str) -> dict[int, set[str]]: function _build_master_page_map (line 689) | def _build_master_page_map( function detect_missing_fonts_odp (line 733) | def detect_missing_fonts_odp(pptx_path: str) -> tuple[set[str], dict[int... function main (line 765) | def main() -> None: FILE: skills/.curated/slides/scripts/ensure_raster_image.py function _imagemagick_convert (line 71) | def _imagemagick_convert(src_path: str, dst_path: str) -> None: function ensure_raster_image (line 76) | def ensure_raster_image(path: str, out_dir: str | None = None) -> str: function main (line 162) | def main() -> None: FILE: skills/.curated/slides/scripts/render_slides.py function calc_dpi_via_ooxml (line 19) | def calc_dpi_via_ooxml(input_path: str, max_w_px: int, max_h_px: int) ->... function calc_dpi_via_pdf (line 37) | def calc_dpi_via_pdf(input_path: str, max_w_px: int, max_h_px: int) -> int: function run_cmd_no_check (line 98) | def run_cmd_no_check(cmd: list[str]) -> None: function convert_to_pdf (line 108) | def convert_to_pdf( function rasterize (line 173) | def rasterize( function main (line 226) | def main() -> None: FILE: skills/.curated/slides/scripts/slides_test.py function px_to_emu (line 29) | def px_to_emu(px: int, dpi: int) -> Emu: function calc_tol (line 33) | def calc_tol(dpi: int) -> int: function enlarge_deck (line 42) | def enlarge_deck(src: str, dst: str, pad_emu: Emu) -> tuple[int, int]: function inspect_images (line 83) | def inspect_images( function main (line 133) | def main() -> None: FILE: skills/.curated/sora/scripts/sora.py function _die (line 49) | def _die(message: str, code: int = 1) -> None: function _warn (line 54) | def _warn(message: str) -> None: function _ensure_api_key (line 58) | def _ensure_api_key(dry_run: bool) -> None: function _read_prompt (line 68) | def _read_prompt(prompt: Optional[str], prompt_file: Optional[str]) -> str: function _normalize_model (line 82) | def _normalize_model(model: Optional[str]) -> str: function _normalize_size (line 89) | def _normalize_size(size: Optional[str], model: str) -> str: function _normalize_seconds (line 98) | def _normalize_seconds(seconds: Optional[Union[int, str]]) -> str: function _normalize_variant (line 110) | def _normalize_variant(variant: Optional[str]) -> str: function _normalize_order (line 117) | def _normalize_order(order: Optional[str]) -> Optional[str]: function _normalize_poll_interval (line 126) | def _normalize_poll_interval(interval: Optional[float]) -> float: function _normalize_timeout (line 133) | def _normalize_timeout(timeout: Optional[float]) -> Optional[float]: function _default_out_path (line 142) | def _default_out_path(variant: str) -> Path: function _normalize_out_path (line 150) | def _normalize_out_path(out: Optional[str], variant: str) -> Path: function _normalize_json_out (line 162) | def _normalize_json_out(out: Optional[str], default_name: str) -> Option... function _normalize_input_reference_object (line 176) | def _normalize_input_reference_object(value: Any) -> Dict[str, str]: function _normalize_input_reference (line 191) | def _normalize_input_reference( function _normalize_characters (line 223) | def _normalize_characters(raw: Any) -> Optional[List[Dict[str, str]]]: function _open_input_reference (line 259) | def _open_input_reference(path: Optional[str]): function _open_video_upload (line 270) | def _open_video_upload(path: Optional[str], *, label: str) -> Any: function _create_client (line 281) | def _create_client(): function _create_async_client (line 289) | def _create_async_client(): function _make_request_options (line 303) | def _make_request_options(*, multipart: bool) -> Dict[str, Any]: function _video_post (line 310) | def _video_post( function _async_video_post (line 326) | async def _async_video_post( function _to_dict (line 342) | def _to_dict(obj: Any) -> Any: function _print_json (line 354) | def _print_json(obj: Any) -> None: function _print_request (line 358) | def _print_request(payload: Dict[str, Any]) -> None: function _slugify (line 362) | def _slugify(value: str) -> str: function _normalize_job (line 369) | def _normalize_job(job: Any, idx: int) -> Dict[str, Any]: function _read_jobs_jsonl (line 383) | def _read_jobs_jsonl(path: str) -> List[Dict[str, Any]]: function _merge_non_null (line 408) | def _merge_non_null(dst: Dict[str, Any], src: Dict[str, Any]) -> Dict[st... function _job_output_path (line 416) | def _job_output_path(out_dir: Path, idx: int, prompt: str, explicit_out:... function _extract_retry_after_seconds (line 427) | def _extract_retry_after_seconds(exc: Exception) -> Optional[float]: function _is_rate_limit_error (line 442) | def _is_rate_limit_error(exc: Exception) -> bool: function _is_transient_error (line 450) | def _is_transient_error(exc: Exception) -> bool: function _fields_from_args (line 460) | def _fields_from_args(args: argparse.Namespace) -> Dict[str, Optional[st... function _augment_prompt_fields (line 479) | def _augment_prompt_fields(augment: bool, prompt: str, fields: Dict[str,... function _augment_prompt (line 518) | def _augment_prompt(args: argparse.Namespace, prompt: str) -> str: function _get_status (line 523) | def _get_status(video: Any) -> Optional[str]: function _get_video_id (line 541) | def _get_video_id(video: Any) -> Optional[str]: function _poll_video (line 553) | def _poll_video( function _download_content (line 576) | def _download_content(client: Any, video_id: str, variant: str) -> Any: function _write_download (line 589) | def _write_download(data: Any, out_path: Path, *, force: bool) -> None: function _build_create_payload (line 604) | def _build_create_payload(args: argparse.Namespace, prompt: str) -> Dict... function _prepare_job_payload (line 629) | def _prepare_job_payload( function _write_json (line 698) | def _write_json(path: Path, obj: Any) -> None: function _write_json_out (line 704) | def _write_json_out(out_path: Optional[Path], obj: Any) -> None: function _create_one_with_retries (line 710) | async def _create_one_with_retries( function _run_create_batch (line 739) | async def _run_create_batch(args: argparse.Namespace) -> int: function _create_batch (line 815) | def _create_batch(args: argparse.Namespace) -> None: function _cmd_create (line 821) | def _cmd_create(args: argparse.Namespace) -> int: function _cmd_create_and_poll (line 850) | def _cmd_create_and_poll(args: argparse.Namespace) -> int: function _cmd_poll (line 924) | def _cmd_poll(args: argparse.Namespace) -> int: function _cmd_status (line 951) | def _cmd_status(args: argparse.Namespace) -> int: function _cmd_list (line 960) | def _cmd_list(args: argparse.Namespace) -> int: function _cmd_delete (line 978) | def _cmd_delete(args: argparse.Namespace) -> int: function _cmd_remix (line 987) | def _cmd_remix(args: argparse.Namespace) -> int: function _cmd_download (line 1006) | def _cmd_download(args: argparse.Namespace) -> int: function _cmd_create_character (line 1016) | def _cmd_create_character(args: argparse.Namespace) -> int: function _cmd_extend (line 1042) | def _cmd_extend(args: argparse.Namespace) -> int: function _cmd_edit (line 1069) | def _cmd_edit(args: argparse.Namespace) -> int: class _NullContext (line 1091) | class _NullContext: method __enter__ (line 1092) | def __enter__(self): method __exit__ (line 1095) | def __exit__(self, exc_type, exc, tb): class _SingleFile (line 1099) | class _SingleFile: method __init__ (line 1100) | def __init__(self, path: Path): method __enter__ (line 1104) | def __enter__(self): method __exit__ (line 1108) | def __exit__(self, exc_type, exc, tb): function _add_prompt_args (line 1117) | def _add_prompt_args(parser: argparse.ArgumentParser) -> None: function _add_create_args (line 1140) | def _add_create_args(parser: argparse.ArgumentParser) -> None: function _add_poll_args (line 1152) | def _add_poll_args(parser: argparse.ArgumentParser) -> None: function _add_download_args (line 1157) | def _add_download_args(parser: argparse.ArgumentParser) -> None: function _add_json_out (line 1164) | def _add_json_out(parser: argparse.ArgumentParser) -> None: function main (line 1168) | def main() -> int: FILE: skills/.curated/speech/scripts/text_to_speech.py function _die (line 46) | def _die(message: str, code: int = 1) -> None: function _warn (line 51) | def _warn(message: str) -> None: function _ensure_api_key (line 55) | def _ensure_api_key(dry_run: bool) -> None: function _read_text (line 65) | def _read_text(text: Optional[str], text_file: Optional[str], label: str... function _validate_input (line 79) | def _validate_input(text: str) -> None: function _normalize_voice (line 88) | def _normalize_voice(voice: Optional[str]) -> str: function _normalize_format (line 99) | def _normalize_format(fmt: Optional[str]) -> str: function _normalize_speed (line 108) | def _normalize_speed(speed: Optional[float]) -> Optional[float]: function _normalize_output_path (line 120) | def _normalize_output_path(out: Optional[str], response_format: str) -> ... function _create_client (line 135) | def _create_client(): function _extract_retry_after_seconds (line 143) | def _extract_retry_after_seconds(exc: Exception) -> Optional[float]: function _is_rate_limit_error (line 158) | def _is_rate_limit_error(exc: Exception) -> bool: function _is_transient_error (line 166) | def _is_transient_error(exc: Exception) -> bool: function _maybe_drop_instructions (line 176) | def _maybe_drop_instructions(model: str, instructions: Optional[str]) ->... function _print_payload (line 183) | def _print_payload(payload: Dict[str, Any]) -> None: function _write_audio (line 187) | def _write_audio( function _slugify (line 232) | def _slugify(value: str) -> str: function _read_jobs_jsonl (line 239) | def _read_jobs_jsonl(path: str) -> List[Dict[str, Any]]: function _job_input (line 263) | def _job_input(job: Dict[str, Any]) -> str: function _merge_non_null (line 271) | def _merge_non_null(base: Dict[str, Any], extra: Dict[str, Any]) -> Dict... function _enforce_rpm (line 279) | def _enforce_rpm(rpm: int) -> int: function _sleep_for_rate_limit (line 288) | def _sleep_for_rate_limit(last_ts: Optional[float], rpm: int) -> float: function _list_voices (line 299) | def _list_voices() -> None: function _run_speak (line 304) | def _run_speak(args: argparse.Namespace) -> int: function _run_speak_batch (line 354) | def _run_speak_batch(args: argparse.Namespace) -> int: function _add_common_args (line 438) | def _add_common_args(parser: argparse.ArgumentParser) -> None: function main (line 486) | def main() -> int: FILE: skills/.curated/spreadsheet/references/examples/openpyxl/create_basic_spreadsheet.py function main (line 16) | def main() -> None: FILE: skills/.curated/spreadsheet/references/examples/openpyxl/create_spreadsheet_with_styling.py function apply_header_style (line 21) | def apply_header_style(cell, fill_hex: str) -> None: function apply_highlight_style (line 27) | def apply_highlight_style(cell, fill_hex: str) -> None: function populate_game_sheet (line 33) | def populate_game_sheet(ws) -> None: function main (line 71) | def main() -> None: FILE: skills/.curated/spreadsheet/references/examples/openpyxl/read_existing_spreadsheet.py function create_sample (line 16) | def create_sample(path: Path) -> Path: function main (line 32) | def main() -> None: FILE: skills/.curated/spreadsheet/references/examples/openpyxl/styling_spreadsheet.py function main (line 16) | def main() -> None: FILE: skills/.curated/transcribe/scripts/transcribe_diarize.py function _die (line 24) | def _die(message: str, code: int = 1) -> None: function _warn (line 29) | def _warn(message: str) -> None: function _ensure_api_key (line 33) | def _ensure_api_key(dry_run: bool) -> None: function _normalize_response_format (line 43) | def _normalize_response_format(value: Optional[str]) -> str: function _normalize_chunking_strategy (line 55) | def _normalize_chunking_strategy(value: Optional[str]) -> Any: function _guess_mime_type (line 67) | def _guess_mime_type(path: Path) -> str: function _encode_data_url (line 74) | def _encode_data_url(path: Path) -> str: function _parse_known_speakers (line 81) | def _parse_known_speakers(raw_items: List[str]) -> Tuple[List[str], List... function _output_extension (line 101) | def _output_extension(response_format: str) -> str: function _build_output_path (line 105) | def _build_output_path( function _create_client (line 126) | def _create_client(): function _format_output (line 134) | def _format_output(result: Any, response_format: str) -> str: function _validate_audio (line 145) | def _validate_audio(path: Path) -> None: function _build_payload (line 155) | def _build_payload( function _run_one (line 177) | def _run_one( function main (line 189) | def main() -> None: FILE: skills/.system/skill-creator/scripts/generate_openai_yaml.py function yaml_quote (line 52) | def yaml_quote(value): function format_display_name (line 57) | def format_display_name(skill_name): function generate_short_description (line 76) | def generate_short_description(display_name): function read_frontmatter_name (line 106) | def read_frontmatter_name(skill_dir): function parse_interface_overrides (line 132) | def parse_interface_overrides(raw_overrides): function write_openai_yaml (line 155) | def write_openai_yaml(skill_dir, skill_name, raw_overrides): function main (line 189) | def main(): FILE: skills/.system/skill-creator/scripts/init_skill.py function normalize_skill_name (line 197) | def normalize_skill_name(skill_name): function title_case_skill_name (line 206) | def title_case_skill_name(skill_name): function parse_resources (line 211) | def parse_resources(raw_resources): function create_resource_dirs (line 230) | def create_resource_dirs(skill_dir, skill_name, skill_title, resources, ... function init_skill (line 258) | def init_skill(skill_name, path, resources, include_examples, interface_... function main (line 333) | def main(): FILE: skills/.system/skill-creator/scripts/quick_validate.py function validate_skill (line 15) | def validate_skill(skill_path): FILE: skills/.system/skill-installer/scripts/github_utils.py function github_request (line 10) | def github_request(url: str, user_agent: str) -> bytes: function github_api_contents_url (line 20) | def github_api_contents_url(repo: str, path: str, ref: str) -> str: FILE: skills/.system/skill-installer/scripts/install-skill-from-github.py class Args (line 22) | class Args: class Source (line 33) | class Source: class InstallError (line 41) | class InstallError(Exception): function _codex_home (line 45) | def _codex_home() -> str: function _tmp_root (line 49) | def _tmp_root() -> str: function _request (line 55) | def _request(url: str) -> bytes: function _parse_github_url (line 59) | def _parse_github_url(url: str, default_ref: str) -> tuple[str, str, str... function _download_repo_zip (line 80) | def _download_repo_zip(owner: str, repo: str, ref: str, dest_dir: str) -... function _run_git (line 99) | def _run_git(args: list[str]) -> None: function _safe_extract_zip (line 105) | def _safe_extract_zip(zip_file: zipfile.ZipFile, dest_dir: str) -> None: function _validate_relative_path (line 115) | def _validate_relative_path(path: str) -> None: function _validate_skill_name (line 120) | def _validate_skill_name(name: str) -> None: function _git_sparse_checkout (line 128) | def _git_sparse_checkout(repo_url: str, ref: str, paths: list[str], dest... function _validate_skill (line 164) | def _validate_skill(path: str) -> None: function _copy_skill (line 172) | def _copy_skill(src: str, dest_dir: str) -> None: function _build_repo_url (line 179) | def _build_repo_url(owner: str, repo: str) -> str: function _build_repo_ssh (line 183) | def _build_repo_ssh(owner: str, repo: str) -> str: function _prepare_repo (line 187) | def _prepare_repo(source: Source, method: str, tmp_dir: str) -> str: function _resolve_source (line 209) | def _resolve_source(args: Args) -> Source: function _default_dest (line 243) | def _default_dest() -> str: function _parse_args (line 247) | def _parse_args(argv: list[str]) -> Args: function main (line 269) | def main(argv: list[str]) -> int: FILE: skills/.system/skill-installer/scripts/list-skills.py class ListError (line 19) | class ListError(Exception): class Args (line 23) | class Args(argparse.Namespace): function _request (line 30) | def _request(url: str) -> bytes: function _codex_home (line 34) | def _codex_home() -> str: function _installed_skills (line 38) | def _installed_skills() -> set[str]: function _list_skills (line 50) | def _list_skills(repo: str, path: str, ref: str) -> list[str]: function _parse_args (line 68) | def _parse_args(argv: list[str]) -> Args: function main (line 86) | def main(argv: list[str]) -> int: