- Add complete API documentation and architecture guides - Include quick start, installation, and deployment guides - Add troubleshooting and security documentation - Include CLI reference and configuration schema docs - Add production monitoring and operations guides - Implement MkDocs configuration with search functionality - Include comprehensive user and developer documentation Provides complete documentation for users and developers covering all aspects of the FetchML platform.
2288 lines
No EOL
57 KiB
HTML
2288 lines
No EOL
57 KiB
HTML
|
|
<!doctype html>
|
|
<html lang="en" class="no-js">
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
|
|
<meta name="description" content="Secure Machine Learning Platform">
|
|
|
|
|
|
|
|
|
|
<link rel="prev" href="../architecture/">
|
|
|
|
|
|
<link rel="next" href="../zig-cli/">
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="icon" href="../assets/images/favicon.png">
|
|
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.0">
|
|
|
|
|
|
|
|
<title>CLI Reference - Fetch ML Documentation</title>
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="../assets/stylesheets/main.618322db.min.css">
|
|
|
|
|
|
<link rel="stylesheet" href="../assets/stylesheets/palette.ab4e12ef.min.css">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
|
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
|
|
|
|
|
|
|
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="blue" data-md-color-accent="blue">
|
|
|
|
|
|
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|
<label class="md-overlay" for="__drawer"></label>
|
|
<div data-md-component="skip">
|
|
|
|
|
|
<a href="#fetch-ml-cli-reference" class="md-skip">
|
|
Skip to content
|
|
</a>
|
|
|
|
</div>
|
|
<div data-md-component="announce">
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<header class="md-header" data-md-component="header">
|
|
<nav class="md-header__inner md-grid" aria-label="Header">
|
|
<a href=".." title="Fetch ML Documentation" class="md-header__button md-logo" aria-label="Fetch ML Documentation" data-md-component="logo">
|
|
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
|
|
</a>
|
|
<label class="md-header__button md-icon" for="__drawer">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
|
</label>
|
|
<div class="md-header__title" data-md-component="header-title">
|
|
<div class="md-header__ellipsis">
|
|
<div class="md-header__topic">
|
|
<span class="md-ellipsis">
|
|
Fetch ML Documentation
|
|
</span>
|
|
</div>
|
|
<div class="md-header__topic" data-md-component="header-topic">
|
|
<span class="md-ellipsis">
|
|
|
|
CLI Reference
|
|
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<form class="md-header__option" data-md-component="palette">
|
|
|
|
|
|
|
|
|
|
<input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="blue" data-md-color-accent="blue" aria-hidden="true" type="radio" name="__palette" id="__palette_0">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="blue" data-md-color-accent="blue" aria-hidden="true" type="radio" name="__palette" id="__palette_1">
|
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-header__button md-icon" for="__search">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
</label>
|
|
<div class="md-search" data-md-component="search" role="dialog">
|
|
<label class="md-search__overlay" for="__search"></label>
|
|
<div class="md-search__inner" role="search">
|
|
<form class="md-search__form" name="search">
|
|
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|
<label class="md-search__icon md-icon" for="__search">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|
</label>
|
|
<nav class="md-search__options" aria-label="Search">
|
|
|
|
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
|
|
</a>
|
|
|
|
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|
</button>
|
|
</nav>
|
|
|
|
</form>
|
|
<div class="md-search__output">
|
|
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
|
<div class="md-search-result" data-md-component="search-result">
|
|
<div class="md-search-result__meta">
|
|
Initializing search
|
|
</div>
|
|
<ol class="md-search-result__list" role="presentation"></ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="md-header__source">
|
|
<a href="https://github.com/jfraeys/fetch_ml" title="Go to repository" class="md-source" data-md-component="source">
|
|
<div class="md-source__icon md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
|
|
</div>
|
|
<div class="md-source__repository">
|
|
GitHub
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
</header>
|
|
|
|
<div class="md-container" data-md-component="container">
|
|
|
|
|
|
|
|
|
|
|
|
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
|
|
<div class="md-grid">
|
|
<ul class="md-tabs__list">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href=".." class="md-tabs__link">
|
|
|
|
|
|
|
|
|
|
|
|
Home
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../quick-start/" class="md-tabs__link">
|
|
|
|
|
|
|
|
|
|
|
|
Getting Started
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item md-tabs__item--active">
|
|
<a href="../development-setup/" class="md-tabs__link">
|
|
|
|
|
|
|
|
|
|
|
|
Development
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../deployment/" class="md-tabs__link">
|
|
|
|
|
|
|
|
|
|
|
|
Operations & Production
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../security/" class="md-tabs__link">
|
|
|
|
|
|
|
|
|
|
|
|
Security
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../configuration-schema/" class="md-tabs__link">
|
|
|
|
|
|
|
|
|
|
|
|
Reference
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</div>
|
|
</nav>
|
|
|
|
|
|
|
|
<main class="md-main" data-md-component="main">
|
|
<div class="md-main__inner md-grid">
|
|
|
|
|
|
|
|
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|
<div class="md-sidebar__scrollwrap">
|
|
<div class="md-sidebar__inner">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label="Navigation" data-md-level="0">
|
|
<label class="md-nav__title" for="__drawer">
|
|
<a href=".." title="Fetch ML Documentation" class="md-nav__button md-logo" aria-label="Fetch ML Documentation" data-md-component="logo">
|
|
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
|
|
</a>
|
|
Fetch ML Documentation
|
|
</label>
|
|
|
|
<div class="md-nav__source">
|
|
<a href="https://github.com/jfraeys/fetch_ml" title="Go to repository" class="md-source" data-md-component="source">
|
|
<div class="md-source__icon md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
|
|
</div>
|
|
<div class="md-source__repository">
|
|
GitHub
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href=".." class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Home
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Getting Started
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_2">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
Getting Started
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../quick-start/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Quick Start
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../installation/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Simple Installation Guide
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../first-experiment/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
First Experiment
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Development
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="true">
|
|
<label class="md-nav__title" for="__nav_3">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
Development
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../development-setup/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Development Setup
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../testing/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Testing Guide
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../architecture/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Homelab Architecture
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active">
|
|
|
|
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
CLI Reference
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<a href="./" class="md-nav__link md-nav__link--active">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
CLI Reference
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
|
|
|
|
|
|
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__title" for="__toc">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Table of contents
|
|
</label>
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#overview" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Overview
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#zig-cli-clizig-outbinml" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Zig CLI (./cli/zig-out/bin/ml)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Zig CLI (./cli/zig-out/bin/ml)">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#available-commands" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Available Commands
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#command-details" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Command Details
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Command Details">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#init-configuration-setup" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
init - Configuration Setup
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#sync-project-synchronization" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
sync - Project Synchronization
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#queue-job-management" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
queue - Job Management
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#watch-auto-sync-monitoring" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
watch - Auto-Sync Monitoring
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#prune-cleanup-management" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
prune - Cleanup Management
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#monitor-remote-monitoring" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
monitor - Remote Monitoring
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#cancel-job-cancellation" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
cancel - Job Cancellation
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#configuration" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Configuration
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#performance-features" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Performance Features
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#go-commands" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Go Commands
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Go Commands">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#api-server-cmdapi-servermaingo" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
API Server (./cmd/api-server/main.go)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tui-cmdtuimaingo" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
TUI (./cmd/tui/main.go)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#data-manager-cmddata_manager" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Data Manager (./cmd/data_manager/)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#config-lint-cmdconfiglintmaingo" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Config Lint (./cmd/configlint/main.go)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#management-script-toolsmanagesh" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Management Script (./tools/manage.sh)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Management Script (./tools/manage.sh)">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#commands" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Commands
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#setup-script-setupsh" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Setup Script (./setup.sh)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Setup Script (./setup.sh)">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#usage" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Usage
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#api-testing" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
API Testing
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#zig-cli-architecture" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Zig CLI Architecture
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Zig CLI Architecture">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#core-components" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Core Components
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#performance-optimizations" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Performance Optimizations
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#security-features" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Security Features
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#configuration_1" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Configuration
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Configuration">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#key-settings" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Key Settings
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#docker-commands" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Docker Commands
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#troubleshooting" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Troubleshooting
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Troubleshooting">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#common-issues" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Common Issues
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#getting-help" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Getting Help
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../zig-cli/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Zig CLI Guide
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../queue/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Task Queue Architecture
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../smart-defaults/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Smart Defaults
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../cicd/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
CI/CD Pipeline
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Operations & Production
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
Operations & Production
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../deployment/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
ML Experiment Manager - Deployment Guide
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../environment-variables/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Environment Variables
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../production-monitoring/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Production Monitoring Deployment Guide (Linux)
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../operations/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Operations Runbook
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../redis-ha/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Redis High Availability (Optional)
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../release-checklist/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Release Checklist
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Security
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_5">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
Security
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../security/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Security Guide
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../api-key-process/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
FetchML API Key Process
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../user-permissions/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
User Permissions in Fetch ML
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Reference
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_6">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
Reference
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../configuration-schema/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Configuration Schema
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../troubleshooting/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Troubleshooting
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="md-content" data-md-component="content">
|
|
|
|
<article class="md-content__inner md-typeset">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h1 id="fetch-ml-cli-reference">Fetch ML CLI Reference<a class="headerlink" href="#fetch-ml-cli-reference" title="Permanent link">¶</a></h1>
|
|
<p>Comprehensive command-line tools for managing ML experiments in your homelab with Zig-based high-performance CLI.</p>
|
|
<h2 id="overview">Overview<a class="headerlink" href="#overview" title="Permanent link">¶</a></h2>
|
|
<p>Fetch ML provides a comprehensive CLI toolkit built with performance and security in mind:</p>
|
|
<ul>
|
|
<li><strong>Zig CLI</strong> - High-performance experiment management written in Zig</li>
|
|
<li><strong>Go Commands</strong> - API server, TUI, and data management utilities</li>
|
|
<li><strong>Management Scripts</strong> - Service orchestration and deployment</li>
|
|
<li><strong>Setup Scripts</strong> - One-command installation and configuration</li>
|
|
</ul>
|
|
<h2 id="zig-cli-clizig-outbinml">Zig CLI (<code>./cli/zig-out/bin/ml</code>)<a class="headerlink" href="#zig-cli-clizig-outbinml" title="Permanent link">¶</a></h2>
|
|
<p>High-performance command-line interface for experiment management, written in Zig for speed and efficiency.</p>
|
|
<h3 id="available-commands">Available Commands<a class="headerlink" href="#available-commands" title="Permanent link">¶</a></h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Command</th>
|
|
<th>Description</th>
|
|
<th>Example</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>init</code></td>
|
|
<td>Interactive configuration setup</td>
|
|
<td><code>ml init</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>sync</code></td>
|
|
<td>Sync project to worker with deduplication</td>
|
|
<td><code>ml sync ./project --name myjob --queue</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>queue</code></td>
|
|
<td>Queue job for execution</td>
|
|
<td><code>ml queue myjob --commit abc123 --priority 8</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>status</code></td>
|
|
<td>Get system and worker status</td>
|
|
<td><code>ml status</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>monitor</code></td>
|
|
<td>Launch TUI monitoring via SSH</td>
|
|
<td><code>ml monitor</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>cancel</code></td>
|
|
<td>Cancel running job</td>
|
|
<td><code>ml cancel job123</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>prune</code></td>
|
|
<td>Clean up old experiments</td>
|
|
<td><code>ml prune --keep 10</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>watch</code></td>
|
|
<td>Auto-sync directory on changes</td>
|
|
<td><code>ml watch ./project --queue</code></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3 id="command-details">Command Details<a class="headerlink" href="#command-details" title="Permanent link">¶</a></h3>
|
|
<h4 id="init-configuration-setup"><code>init</code> - Configuration Setup<a class="headerlink" href="#init-configuration-setup" title="Permanent link">¶</a></h4>
|
|
<p><div class="highlight"><pre><span></span><code>ml<span class="w"> </span>init
|
|
</code></pre></div>
|
|
Creates a configuration template at <code>~/.ml/config.toml</code> with:
|
|
- Worker connection details
|
|
- API authentication
|
|
- Base paths and ports</p>
|
|
<h4 id="sync-project-synchronization"><code>sync</code> - Project Synchronization<a class="headerlink" href="#sync-project-synchronization" title="Permanent link">¶</a></h4>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Basic sync</span>
|
|
ml<span class="w"> </span>sync<span class="w"> </span>./my-project
|
|
|
|
<span class="c1"># Sync with custom name and queue</span>
|
|
ml<span class="w"> </span>sync<span class="w"> </span>./my-project<span class="w"> </span>--name<span class="w"> </span><span class="s2">"experiment-1"</span><span class="w"> </span>--queue
|
|
|
|
<span class="c1"># Sync with priority</span>
|
|
ml<span class="w"> </span>sync<span class="w"> </span>./my-project<span class="w"> </span>--priority<span class="w"> </span><span class="m">9</span>
|
|
</code></pre></div>
|
|
<p><strong>Features:</strong>
|
|
- Content-addressed storage for deduplication
|
|
- SHA256 commit ID generation
|
|
- Rsync-based file transfer
|
|
- Automatic queuing (with <code>--queue</code> flag)</p>
|
|
<h4 id="queue-job-management"><code>queue</code> - Job Management<a class="headerlink" href="#queue-job-management" title="Permanent link">¶</a></h4>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Queue with commit ID</span>
|
|
ml<span class="w"> </span>queue<span class="w"> </span>my-job<span class="w"> </span>--commit<span class="w"> </span>abc123def456
|
|
|
|
<span class="c1"># Queue with priority (1-10, default 5)</span>
|
|
ml<span class="w"> </span>queue<span class="w"> </span>my-job<span class="w"> </span>--commit<span class="w"> </span>abc123<span class="w"> </span>--priority<span class="w"> </span><span class="m">8</span>
|
|
</code></pre></div>
|
|
<p><strong>Features:</strong>
|
|
- WebSocket-based communication
|
|
- Priority queuing system
|
|
- API key authentication</p>
|
|
<h4 id="watch-auto-sync-monitoring"><code>watch</code> - Auto-Sync Monitoring<a class="headerlink" href="#watch-auto-sync-monitoring" title="Permanent link">¶</a></h4>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Watch directory for changes</span>
|
|
ml<span class="w"> </span>watch<span class="w"> </span>./project
|
|
|
|
<span class="c1"># Watch and auto-queue on changes</span>
|
|
ml<span class="w"> </span>watch<span class="w"> </span>./project<span class="w"> </span>--name<span class="w"> </span><span class="s2">"dev-exp"</span><span class="w"> </span>--queue
|
|
</code></pre></div>
|
|
<p><strong>Features:</strong>
|
|
- Real-time file system monitoring
|
|
- Automatic re-sync on changes
|
|
- Configurable polling interval (2 seconds)
|
|
- Commit ID comparison for efficiency</p>
|
|
<h4 id="prune-cleanup-management"><code>prune</code> - Cleanup Management<a class="headerlink" href="#prune-cleanup-management" title="Permanent link">¶</a></h4>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Keep last N experiments</span>
|
|
ml<span class="w"> </span>prune<span class="w"> </span>--keep<span class="w"> </span><span class="m">20</span>
|
|
|
|
<span class="c1"># Remove experiments older than N days</span>
|
|
ml<span class="w"> </span>prune<span class="w"> </span>--older-than<span class="w"> </span><span class="m">30</span>
|
|
</code></pre></div>
|
|
<h4 id="monitor-remote-monitoring"><code>monitor</code> - Remote Monitoring<a class="headerlink" href="#monitor-remote-monitoring" title="Permanent link">¶</a></h4>
|
|
<p><div class="highlight"><pre><span></span><code>ml<span class="w"> </span>monitor
|
|
</code></pre></div>
|
|
Launches TUI interface via SSH for real-time monitoring.</p>
|
|
<h4 id="cancel-job-cancellation"><code>cancel</code> - Job Cancellation<a class="headerlink" href="#cancel-job-cancellation" title="Permanent link">¶</a></h4>
|
|
<p><div class="highlight"><pre><span></span><code>ml<span class="w"> </span>cancel<span class="w"> </span>running-job-id
|
|
</code></pre></div>
|
|
Cancels currently running jobs by ID.</p>
|
|
<h3 id="configuration">Configuration<a class="headerlink" href="#configuration" title="Permanent link">¶</a></h3>
|
|
<p>The Zig CLI reads configuration from <code>~/.ml/config.toml</code>:</p>
|
|
<div class="highlight"><pre><span></span><code><span class="n">worker_host</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"worker.local"</span>
|
|
<span class="n">worker_user</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"mluser"</span>
|
|
<span class="n">worker_base</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"/data/ml-experiments"</span>
|
|
<span class="n">worker_port</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">22</span>
|
|
<span class="n">api_key</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"your-api-key"</span>
|
|
</code></pre></div>
|
|
<h3 id="performance-features">Performance Features<a class="headerlink" href="#performance-features" title="Permanent link">¶</a></h3>
|
|
<ul>
|
|
<li><strong>Content-Addressed Storage</strong>: Automatic deduplication of identical files</li>
|
|
<li><strong>Incremental Sync</strong>: Only transfers changed files</li>
|
|
<li><strong>SHA256 Hashing</strong>: Reliable commit ID generation</li>
|
|
<li><strong>WebSocket Communication</strong>: Efficient real-time messaging</li>
|
|
<li><strong>Multi-threaded</strong>: Concurrent operations where applicable</li>
|
|
</ul>
|
|
<h2 id="go-commands">Go Commands<a class="headerlink" href="#go-commands" title="Permanent link">¶</a></h2>
|
|
<h3 id="api-server-cmdapi-servermaingo">API Server (<code>./cmd/api-server/main.go</code>)<a class="headerlink" href="#api-server-cmdapi-servermaingo" title="Permanent link">¶</a></h3>
|
|
<p>Main HTTPS API server for experiment management.</p>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Build and run</span>
|
|
go<span class="w"> </span>run<span class="w"> </span>./cmd/api-server/main.go
|
|
|
|
<span class="c1"># With configuration</span>
|
|
./bin/api-server<span class="w"> </span>--config<span class="w"> </span>configs/config-local.yaml
|
|
</code></pre></div>
|
|
<p><strong>Features:</strong>
|
|
- HTTPS-only communication
|
|
- API key authentication
|
|
- Rate limiting and IP whitelisting
|
|
- WebSocket support for real-time updates
|
|
- Redis integration for caching</p>
|
|
<h3 id="tui-cmdtuimaingo">TUI (<code>./cmd/tui/main.go</code>)<a class="headerlink" href="#tui-cmdtuimaingo" title="Permanent link">¶</a></h3>
|
|
<p>Terminal User Interface for monitoring experiments.</p>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Launch TUI</span>
|
|
go<span class="w"> </span>run<span class="w"> </span>./cmd/tui/main.go
|
|
|
|
<span class="c1"># With custom config</span>
|
|
./tui<span class="w"> </span>--config<span class="w"> </span>configs/config-local.yaml
|
|
</code></pre></div>
|
|
<p><strong>Features:</strong>
|
|
- Real-time experiment monitoring
|
|
- Interactive job management
|
|
- Status visualization
|
|
- Log viewing</p>
|
|
<h3 id="data-manager-cmddata_manager">Data Manager (<code>./cmd/data_manager/</code>)<a class="headerlink" href="#data-manager-cmddata_manager" title="Permanent link">¶</a></h3>
|
|
<p>Utilities for data synchronization and management.</p>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Sync data</span>
|
|
./data_manager<span class="w"> </span>--sync<span class="w"> </span>./data
|
|
|
|
<span class="c1"># Clean old data</span>
|
|
./data_manager<span class="w"> </span>--cleanup<span class="w"> </span>--older-than<span class="w"> </span>30d
|
|
</code></pre></div>
|
|
<h3 id="config-lint-cmdconfiglintmaingo">Config Lint (<code>./cmd/configlint/main.go</code>)<a class="headerlink" href="#config-lint-cmdconfiglintmaingo" title="Permanent link">¶</a></h3>
|
|
<p>Configuration validation and linting tool.</p>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Validate configuration</span>
|
|
./configlint<span class="w"> </span>configs/config-local.yaml
|
|
|
|
<span class="c1"># Check schema compliance</span>
|
|
./configlint<span class="w"> </span>--schema<span class="w"> </span>configs/schema/config_schema.yaml
|
|
</code></pre></div>
|
|
<h2 id="management-script-toolsmanagesh">Management Script (<code>./tools/manage.sh</code>)<a class="headerlink" href="#management-script-toolsmanagesh" title="Permanent link">¶</a></h2>
|
|
<p>Simple service management for your homelab.</p>
|
|
<h3 id="commands">Commands<a class="headerlink" href="#commands" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code>./tools/manage.sh<span class="w"> </span>start<span class="w"> </span><span class="c1"># Start all services</span>
|
|
./tools/manage.sh<span class="w"> </span>stop<span class="w"> </span><span class="c1"># Stop all services</span>
|
|
./tools/manage.sh<span class="w"> </span>status<span class="w"> </span><span class="c1"># Check service status</span>
|
|
./tools/manage.sh<span class="w"> </span>logs<span class="w"> </span><span class="c1"># View logs</span>
|
|
./tools/manage.sh<span class="w"> </span>monitor<span class="w"> </span><span class="c1"># Basic monitoring</span>
|
|
./tools/manage.sh<span class="w"> </span>security<span class="w"> </span><span class="c1"># Security status</span>
|
|
./tools/manage.sh<span class="w"> </span>cleanup<span class="w"> </span><span class="c1"># Clean project artifacts</span>
|
|
</code></pre></div>
|
|
<h2 id="setup-script-setupsh">Setup Script (<code>./setup.sh</code>)<a class="headerlink" href="#setup-script-setupsh" title="Permanent link">¶</a></h2>
|
|
<p>One-command homelab setup.</p>
|
|
<h3 id="usage">Usage<a class="headerlink" href="#usage" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Full setup</span>
|
|
./setup.sh
|
|
|
|
<span class="c1"># Setup includes:</span>
|
|
<span class="c1"># - SSL certificate generation</span>
|
|
<span class="c1"># - Configuration creation</span>
|
|
<span class="c1"># - Build all components</span>
|
|
<span class="c1"># - Start Redis</span>
|
|
<span class="c1"># - Setup Fail2Ban (if available)</span>
|
|
</code></pre></div>
|
|
<h2 id="api-testing">API Testing<a class="headerlink" href="#api-testing" title="Permanent link">¶</a></h2>
|
|
<p>Test the API with curl:</p>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Health check</span>
|
|
curl<span class="w"> </span>-k<span class="w"> </span>-H<span class="w"> </span><span class="s1">'X-API-Key: password'</span><span class="w"> </span>https://localhost:9101/health
|
|
|
|
<span class="c1"># List experiments</span>
|
|
curl<span class="w"> </span>-k<span class="w"> </span>-H<span class="w"> </span><span class="s1">'X-API-Key: password'</span><span class="w"> </span>https://localhost:9101/experiments
|
|
|
|
<span class="c1"># Submit experiment</span>
|
|
curl<span class="w"> </span>-k<span class="w"> </span>-X<span class="w"> </span>POST<span class="w"> </span>-H<span class="w"> </span><span class="s1">'X-API-Key: password'</span><span class="w"> </span><span class="se">\</span>
|
|
<span class="w"> </span>-H<span class="w"> </span><span class="s1">'Content-Type: application/json'</span><span class="w"> </span><span class="se">\</span>
|
|
<span class="w"> </span>-d<span class="w"> </span><span class="s1">'{"name":"test","config":{"type":"basic"}}'</span><span class="w"> </span><span class="se">\</span>
|
|
<span class="w"> </span>https://localhost:9101/experiments
|
|
</code></pre></div>
|
|
<h2 id="zig-cli-architecture">Zig CLI Architecture<a class="headerlink" href="#zig-cli-architecture" title="Permanent link">¶</a></h2>
|
|
<p>The Zig CLI is designed for performance and reliability:</p>
|
|
<h3 id="core-components">Core Components<a class="headerlink" href="#core-components" title="Permanent link">¶</a></h3>
|
|
<ul>
|
|
<li><strong>Commands</strong> (<code>cli/src/commands/</code>): Individual command implementations</li>
|
|
<li><strong>Config</strong> (<code>cli/src/config.zig</code>): Configuration management</li>
|
|
<li><strong>Network</strong> (<code>cli/src/net/ws.zig</code>): WebSocket client implementation</li>
|
|
<li><strong>Utils</strong> (<code>cli/src/utils/</code>): Cryptography, storage, and rsync utilities</li>
|
|
<li><strong>Errors</strong> (<code>cli/src/errors.zig</code>): Centralized error handling</li>
|
|
</ul>
|
|
<h3 id="performance-optimizations">Performance Optimizations<a class="headerlink" href="#performance-optimizations" title="Permanent link">¶</a></h3>
|
|
<ul>
|
|
<li><strong>Content-Addressed Storage</strong>: Deduplicates identical files across experiments</li>
|
|
<li><strong>SHA256 Hashing</strong>: Fast, reliable commit ID generation</li>
|
|
<li><strong>Rsync Integration</strong>: Efficient incremental file transfers</li>
|
|
<li><strong>WebSocket Protocol</strong>: Low-latency communication with worker</li>
|
|
<li><strong>Memory Management</strong>: Efficient allocation with Zig's allocator system</li>
|
|
</ul>
|
|
<h3 id="security-features">Security Features<a class="headerlink" href="#security-features" title="Permanent link">¶</a></h3>
|
|
<ul>
|
|
<li><strong>API Key Hashing</strong>: Secure authentication token handling</li>
|
|
<li><strong>SSH Integration</strong>: Secure file transfers</li>
|
|
<li><strong>Input Validation</strong>: Comprehensive argument checking</li>
|
|
<li><strong>Error Handling</strong>: Secure error reporting without information leakage</li>
|
|
</ul>
|
|
<h2 id="configuration_1">Configuration<a class="headerlink" href="#configuration_1" title="Permanent link">¶</a></h2>
|
|
<p>Main configuration file: <code>configs/config-local.yaml</code></p>
|
|
<h3 id="key-settings">Key Settings<a class="headerlink" href="#key-settings" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><span class="nt">auth</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
|
|
<span class="w"> </span><span class="nt">api_keys</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="nt">homelab_user</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="nt">hash</span><span class="p">:</span><span class="w"> </span><span class="s">"5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8"</span>
|
|
<span class="w"> </span><span class="nt">admin</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
|
|
|
|
<span class="nt">server</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="nt">address</span><span class="p">:</span><span class="w"> </span><span class="s">":9101"</span>
|
|
<span class="w"> </span><span class="nt">tls</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
|
|
<span class="w"> </span><span class="nt">cert_file</span><span class="p">:</span><span class="w"> </span><span class="s">"./ssl/cert.pem"</span>
|
|
<span class="w"> </span><span class="nt">key_file</span><span class="p">:</span><span class="w"> </span><span class="s">"./ssl/key.pem"</span>
|
|
|
|
<span class="nt">security</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="nt">rate_limit</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
|
|
<span class="w"> </span><span class="nt">requests_per_minute</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">30</span>
|
|
<span class="w"> </span><span class="nt">ip_whitelist</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"127.0.0.1"</span>
|
|
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"::1"</span>
|
|
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"192.168.0.0/16"</span>
|
|
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"10.0.0.0/8"</span>
|
|
</code></pre></div>
|
|
<h2 id="docker-commands">Docker Commands<a class="headerlink" href="#docker-commands" title="Permanent link">¶</a></h2>
|
|
<p>If using Docker Compose:</p>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Start services</span>
|
|
docker-compose<span class="w"> </span>up<span class="w"> </span>-d<span class="w"> </span><span class="o">(</span>testing<span class="w"> </span>only<span class="o">)</span>
|
|
|
|
<span class="c1"># View logs</span>
|
|
docker-compose<span class="w"> </span>logs<span class="w"> </span>-f
|
|
|
|
<span class="c1"># Stop services</span>
|
|
docker-compose<span class="w"> </span>down
|
|
|
|
<span class="c1"># Check status</span>
|
|
docker-compose<span class="w"> </span>ps
|
|
</code></pre></div>
|
|
<h2 id="troubleshooting">Troubleshooting<a class="headerlink" href="#troubleshooting" title="Permanent link">¶</a></h2>
|
|
<h3 id="common-issues">Common Issues<a class="headerlink" href="#common-issues" title="Permanent link">¶</a></h3>
|
|
<p><strong>Zig CLI not found:</strong>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Build the CLI</span>
|
|
<span class="nb">cd</span><span class="w"> </span>cli<span class="w"> </span><span class="o">&&</span><span class="w"> </span>make<span class="w"> </span>build
|
|
|
|
<span class="c1"># Check binary exists</span>
|
|
ls<span class="w"> </span>-la<span class="w"> </span>./cli/zig-out/bin/ml
|
|
</code></pre></div></p>
|
|
<p><strong>Configuration not found:</strong>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Create configuration</span>
|
|
./cli/zig-out/bin/ml<span class="w"> </span>init
|
|
|
|
<span class="c1"># Check config file</span>
|
|
ls<span class="w"> </span>-la<span class="w"> </span>~/.ml/config.toml
|
|
</code></pre></div></p>
|
|
<p><strong>Worker connection failed:</strong>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Test SSH connection</span>
|
|
ssh<span class="w"> </span>-p<span class="w"> </span><span class="m">22</span><span class="w"> </span>mluser@worker.local
|
|
|
|
<span class="c1"># Check configuration</span>
|
|
cat<span class="w"> </span>~/.ml/config.toml
|
|
</code></pre></div></p>
|
|
<p><strong>Sync not working:</strong>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Check rsync availability</span>
|
|
rsync<span class="w"> </span>--version
|
|
|
|
<span class="c1"># Test manual sync</span>
|
|
rsync<span class="w"> </span>-avz<span class="w"> </span>./project/<span class="w"> </span>mluser@worker.local:/tmp/test/
|
|
</code></pre></div></p>
|
|
<p><strong>WebSocket connection failed:</strong>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Check worker WebSocket port</span>
|
|
telnet<span class="w"> </span>worker.local<span class="w"> </span><span class="m">9100</span>
|
|
|
|
<span class="c1"># Verify API key</span>
|
|
./cli/zig-out/bin/ml<span class="w"> </span>status
|
|
</code></pre></div></p>
|
|
<p><strong>API not responding:</strong>
|
|
<div class="highlight"><pre><span></span><code>./tools/manage.sh<span class="w"> </span>status
|
|
./tools/manage.sh<span class="w"> </span>logs
|
|
</code></pre></div></p>
|
|
<p><strong>Authentication failed:</strong>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Check API key in config-local.yaml</span>
|
|
grep<span class="w"> </span>-A<span class="w"> </span><span class="m">5</span><span class="w"> </span><span class="s2">"api_keys:"</span><span class="w"> </span>configs/config-local.yaml
|
|
</code></pre></div></p>
|
|
<p><strong>Redis connection failed:</strong>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># Check Redis status</span>
|
|
redis-cli<span class="w"> </span>ping
|
|
|
|
<span class="c1"># Start Redis</span>
|
|
redis-server
|
|
</code></pre></div></p>
|
|
<h3 id="getting-help">Getting Help<a class="headerlink" href="#getting-help" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><span class="c1"># CLI help</span>
|
|
./cli/zig-out/bin/ml<span class="w"> </span><span class="nb">help</span>
|
|
|
|
<span class="c1"># Management script help</span>
|
|
./tools/manage.sh<span class="w"> </span><span class="nb">help</span>
|
|
|
|
<span class="c1"># Check all available commands</span>
|
|
make<span class="w"> </span><span class="nb">help</span>
|
|
</code></pre></div>
|
|
<hr />
|
|
<p><strong>That's it for the CLI reference!</strong> For complete setup instructions, see the main <a href="../">index</a>.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</article>
|
|
</div>
|
|
|
|
|
|
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
</div>
|
|
|
|
</main>
|
|
|
|
<footer class="md-footer">
|
|
|
|
<div class="md-footer-meta md-typeset">
|
|
<div class="md-footer-meta__inner md-grid">
|
|
<div class="md-copyright">
|
|
|
|
|
|
Made with
|
|
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
Material for MkDocs
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
</div>
|
|
<div class="md-dialog" data-md-component="dialog">
|
|
<div class="md-dialog__inner md-typeset"></div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["navigation.instant", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.indexes", "toc.integrate", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
|
|
|
|
|
|
<script src="../assets/javascripts/bundle.e71a0d61.min.js"></script>
|
|
|
|
|
|
</body>
|
|
</html> |