1
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<!doctype html>
3
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<html lang="en" class="no-js">
4
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<head>
5
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
6
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<meta charset="utf-8">
7
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<meta name="viewport" content="width=device-width,initial-scale=1">
8
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
9
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<meta name="description" content="AI-powered video analysis and knowledge extraction">
10
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
11
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
12
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<meta name="author" content="CONFLICT LLC">
13
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
14
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
15
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<link rel="canonical" href="https://planopticon.dev/contributing/">
16
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
17
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
18
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<link rel="prev" href="../faq/">
19
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
20
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
21
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
22
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
23
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
24
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
25
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<link rel="icon" href="../assets/images/favicon.png">
26
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.4">
27
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
28
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
29
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
30
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<title>Contributing - PlanOpticon</title>
31
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
32
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
33
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
34
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<link rel="stylesheet" href="../assets/stylesheets/main.484c7ddc.min.css">
35
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
36
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
37
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<link rel="stylesheet" href="../assets/stylesheets/palette.ab4e12ef.min.css">
38
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
39
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
40
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
41
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
42
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
43
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
44
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
45
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
46
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
47
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
48
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
49
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
50
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
51
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<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">
52
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
53
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
54
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
55
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
56
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<link rel="stylesheet" href="../assets/_mkdocstrings.css">
57
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
58
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<link rel="stylesheet" href="../assets/css/custom.css">
59
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
60
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<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>
61
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
62
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
63
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
64
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
65
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
66
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</head>
67
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
68
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
69
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
70
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
71
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
72
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
73
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
74
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
75
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
76
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="custom" data-md-color-accent="custom">
77
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
78
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
79
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
80
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
81
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-overlay" for="__drawer"></label>
82
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div data-md-component="skip">
83
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
84
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
85
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#contributing" class="md-skip">
86
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Skip to content
87
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
88
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
89
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
90
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div data-md-component="announce">
91
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
92
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
93
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
94
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
95
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
96
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
97
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<header class="md-header" data-md-component="header">
98
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-header__inner md-grid" aria-label="Header">
99
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href=".." title="PlanOpticon" class="md-header__button md-logo" aria-label="PlanOpticon" data-md-component="logo">
100
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
101
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<img src="../assets/images/conflict-logo.svg" alt="logo">
102
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
103
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
104
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-header__button md-icon" for="__drawer">
105
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
106
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
107
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
108
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-header__title" data-md-component="header-title">
109
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-header__ellipsis">
110
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-header__topic">
111
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
112
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
PlanOpticon
113
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
114
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
115
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-header__topic" data-md-component="header-topic">
116
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
117
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
118
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Contributing
119
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
120
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
121
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
122
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
123
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
124
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
125
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
126
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<form class="md-header__option" data-md-component="palette">
127
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
128
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
129
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
130
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
131
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="custom" data-md-color-accent="custom" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_0">
132
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
133
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
134
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
135
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
136
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
137
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
138
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
139
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
140
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
141
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="custom" data-md-color-accent="custom" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
142
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
143
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_0" hidden>
144
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
145
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
146
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
147
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
148
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</form>
149
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
150
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
151
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
152
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<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>
153
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
154
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
155
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
156
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
157
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
158
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-header__button md-icon" for="__search">
159
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
160
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<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>
161
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
162
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-search" data-md-component="search" role="dialog">
163
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-search__overlay" for="__search"></label>
164
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-search__inner" role="search">
165
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<form class="md-search__form" name="search">
166
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<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>
167
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-search__icon md-icon" for="__search">
168
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
169
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<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>
170
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
171
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<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>
172
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
173
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-search__options" aria-label="Search">
174
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
175
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
176
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
177
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<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>
178
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</button>
179
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
180
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
181
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-search__suggest" data-md-component="search-suggest"></div>
182
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
183
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</form>
184
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-search__output">
185
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
186
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-search-result" data-md-component="search-result">
187
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-search-result__meta">
188
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Initializing search
189
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
190
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ol class="md-search-result__list" role="presentation"></ol>
191
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
192
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
193
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
194
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
195
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
196
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
197
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
198
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
199
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-header__source">
200
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="https://github.com/ConflictHQ/PlanOpticon" title="Go to repository" class="md-source" data-md-component="source">
201
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-source__icon md-icon">
202
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
203
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 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="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
204
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
205
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-source__repository">
206
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
ConflictHQ/PlanOpticon
207
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
208
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
209
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
210
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
211
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
212
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
213
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</header>
214
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
215
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-container" data-md-component="container">
216
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
217
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
218
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
219
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
220
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
221
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
222
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-grid">
223
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-tabs__list">
224
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
225
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
226
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
227
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
228
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
229
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
230
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-tabs__item">
231
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href=".." class="md-tabs__link">
232
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
233
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
234
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
235
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
236
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
237
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Home
238
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
239
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
240
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
241
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
242
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
243
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
244
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
245
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
246
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
247
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
248
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
249
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
250
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
251
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-tabs__item">
252
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../getting-started/installation/" class="md-tabs__link">
253
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
254
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
255
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
256
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Getting Started
257
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
258
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
259
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
260
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
261
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
262
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
263
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
264
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
265
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
266
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
267
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
268
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
269
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
270
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
271
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-tabs__item">
272
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../guide/single-video/" class="md-tabs__link">
273
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
274
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
275
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
276
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
User Guide
277
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
278
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
279
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
280
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
281
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
282
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
283
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
284
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
285
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
286
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
287
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
288
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
289
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-tabs__item">
290
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../use-cases/" class="md-tabs__link">
291
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
292
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
293
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
294
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
295
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
296
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Use Cases
297
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
298
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
299
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
300
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
301
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
302
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
303
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
304
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
305
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
306
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
307
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
308
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-tabs__item">
309
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../cli-reference/" class="md-tabs__link">
310
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
311
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
312
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
313
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
314
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
315
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
CLI Reference
316
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
317
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
318
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
319
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
320
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
321
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
322
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
323
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
324
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
325
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
326
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
327
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
328
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
329
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-tabs__item">
330
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../architecture/overview/" class="md-tabs__link">
331
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
332
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
333
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
334
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Architecture
335
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
336
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
337
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
338
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
339
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
340
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
341
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
342
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
343
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
344
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
345
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
346
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
347
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
348
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
349
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-tabs__item">
350
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../api/models/" class="md-tabs__link">
351
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
352
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
353
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
354
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
API Reference
355
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
356
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
357
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
358
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
359
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
360
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
361
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
362
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
363
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
364
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
365
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
366
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
367
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-tabs__item">
368
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../faq/" class="md-tabs__link">
369
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
370
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
371
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
372
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
373
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
374
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
FAQ & Troubleshooting
375
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
376
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
377
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
378
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
379
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
380
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
381
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
382
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
383
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
384
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
385
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
386
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
387
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
388
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-tabs__item md-tabs__item--active">
389
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="./" class="md-tabs__link">
390
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
391
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
392
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
393
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
394
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
395
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Contributing
396
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
397
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
398
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
399
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
400
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
401
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
402
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
403
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
404
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
405
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
406
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
407
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
408
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<main class="md-main" data-md-component="main">
409
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-main__inner md-grid">
410
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
411
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
412
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
413
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
414
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-sidebar__scrollwrap">
415
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-sidebar__inner">
416
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
417
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
418
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
419
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
420
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
421
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
422
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
423
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-nav__title" for="__drawer">
424
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href=".." title="PlanOpticon" class="md-nav__button md-logo" aria-label="PlanOpticon" data-md-component="logo">
425
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
426
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<img src="../assets/images/conflict-logo.svg" alt="logo">
427
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
428
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
429
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
PlanOpticon
430
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
431
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
432
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-nav__source">
433
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="https://github.com/ConflictHQ/PlanOpticon" title="Go to repository" class="md-source" data-md-component="source">
434
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-source__icon md-icon">
435
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
436
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 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="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
437
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
438
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-source__repository">
439
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
ConflictHQ/PlanOpticon
440
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
441
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
442
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
443
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
444
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list" data-md-scrollfix>
445
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
446
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
447
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
448
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
449
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
450
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
451
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
452
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
453
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href=".." class="md-nav__link">
454
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
455
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
456
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
457
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
458
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
459
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
460
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Home
461
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
462
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
463
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
464
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
465
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
466
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
467
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
468
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
469
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
470
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
471
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
472
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
473
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
474
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
475
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
476
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
477
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
478
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
479
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
480
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
481
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
482
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
483
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
484
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
485
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
486
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
487
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
488
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
489
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item md-nav__item--nested">
490
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
491
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
492
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
493
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
494
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
495
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
496
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
497
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
498
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
499
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
500
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
501
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
502
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
503
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
504
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
505
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Getting Started
506
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
507
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
508
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
509
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
510
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
511
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
512
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
513
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-nav__icon md-icon"></span>
514
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
515
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
516
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
517
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-nav__title" for="__nav_2">
518
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-nav__icon md-icon"></span>
519
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
520
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
521
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Getting Started
522
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
523
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
524
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
525
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list" data-md-scrollfix>
526
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
527
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
528
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
529
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
530
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
531
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
532
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
533
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
534
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../getting-started/installation/" class="md-nav__link">
535
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
536
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
537
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
538
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
539
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
540
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
541
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Installation
542
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
543
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
544
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
545
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
546
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
547
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
548
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
549
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
550
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
551
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
552
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
553
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
554
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
555
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
556
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
557
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
558
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
559
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
560
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
561
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
562
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../getting-started/quickstart/" class="md-nav__link">
563
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
564
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
565
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
566
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
567
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
568
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
569
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Quick Start
570
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
571
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
572
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
573
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
574
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
575
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
576
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
577
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
578
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
579
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
580
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
581
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
582
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
583
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
584
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
585
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
586
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
587
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
588
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
589
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
590
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../getting-started/configuration/" class="md-nav__link">
591
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
592
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
593
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
594
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
595
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
596
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
597
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Configuration
598
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
599
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
600
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
601
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
602
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
603
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
604
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
605
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
606
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
607
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
608
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
609
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
610
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
611
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
612
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
613
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
614
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
615
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
616
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
617
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
618
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
619
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
620
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
621
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
622
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
623
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
624
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
625
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
626
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
627
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
628
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
629
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
630
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
631
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
632
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
633
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
634
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item md-nav__item--nested">
635
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
636
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
637
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
638
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
639
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
640
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
641
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
642
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
643
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
644
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
645
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
646
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
647
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
648
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
649
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
650
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
User Guide
651
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
652
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
653
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
654
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
655
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
656
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
657
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
658
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-nav__icon md-icon"></span>
659
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
660
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
661
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
662
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-nav__title" for="__nav_3">
663
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-nav__icon md-icon"></span>
664
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
665
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
666
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
User Guide
667
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
668
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
669
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
670
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list" data-md-scrollfix>
671
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
672
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
673
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
674
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
675
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
676
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
677
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
678
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
679
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../guide/single-video/" class="md-nav__link">
680
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
681
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
682
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
683
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
684
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
685
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
686
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Single Video Analysis
687
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
688
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
689
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
690
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
691
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
692
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
693
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
694
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
695
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
696
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
697
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
698
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
699
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
700
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
701
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
702
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
703
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
704
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
705
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
706
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
707
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../guide/batch/" class="md-nav__link">
708
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
709
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
710
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
711
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
712
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
713
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
714
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Batch Processing
715
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
716
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
717
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
718
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
719
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
720
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
721
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
722
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
723
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
724
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
725
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
726
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
727
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
728
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
729
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
730
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
731
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
732
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
733
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
734
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
735
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../guide/document-ingestion/" class="md-nav__link">
736
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
737
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
738
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
739
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
740
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
741
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
742
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Document Ingestion
743
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
744
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
745
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
746
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
747
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
748
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
749
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
750
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
751
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
752
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
753
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
754
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
755
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
756
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
757
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
758
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
759
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
760
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
761
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
762
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
763
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../guide/cloud-sources/" class="md-nav__link">
764
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
765
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
766
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
767
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
768
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
769
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
770
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Cloud Sources
771
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
772
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
773
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
774
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
775
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
776
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
777
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
778
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
779
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
780
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
781
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
782
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
783
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
784
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
785
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
786
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
787
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
788
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
789
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
790
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
791
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../guide/knowledge-graphs/" class="md-nav__link">
792
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
793
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
794
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
795
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
796
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
797
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
798
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Knowledge Graphs
799
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
800
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
801
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
802
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
803
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
804
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
805
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
806
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
807
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
808
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
809
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
810
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
811
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
812
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
813
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
814
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
815
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
816
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
817
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
818
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
819
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../guide/companion/" class="md-nav__link">
820
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
821
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
822
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
823
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
824
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
825
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
826
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Interactive Companion
827
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
828
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
829
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
830
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
831
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
832
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
833
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
834
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
835
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
836
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
837
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
838
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
839
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
840
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
841
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
842
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
843
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
844
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
845
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
846
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
847
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../guide/planning-agent/" class="md-nav__link">
848
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
849
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
850
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
851
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
852
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
853
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
854
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Planning Agent
855
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
856
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
857
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
858
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
859
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
860
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
861
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
862
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
863
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
864
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
865
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
866
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
867
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
868
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
869
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
870
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
871
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
872
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
873
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
874
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
875
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../guide/authentication/" class="md-nav__link">
876
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
877
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
878
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
879
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
880
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
881
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
882
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Authentication
883
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
884
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
885
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
886
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
887
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
888
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
889
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
890
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
891
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
892
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
893
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
894
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
895
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
896
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
897
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
898
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
899
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
900
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
901
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
902
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
903
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../guide/export/" class="md-nav__link">
904
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
905
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
906
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
907
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
908
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
909
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
910
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Export & Documents
911
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
912
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
913
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
914
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
915
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
916
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
917
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
918
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
919
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
920
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
921
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
922
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
923
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
924
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
925
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
926
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
927
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
928
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
929
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
930
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
931
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../guide/output-formats/" class="md-nav__link">
932
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
933
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
934
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
935
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
936
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
937
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
938
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Output Formats
939
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
940
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
941
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
942
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
943
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
944
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
945
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
946
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
947
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
948
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
949
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
950
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
951
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
952
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
953
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
954
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
955
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
956
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
957
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
958
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
959
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
960
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
961
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
962
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
963
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
964
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
965
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
966
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../use-cases/" class="md-nav__link">
967
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
968
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
969
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
970
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
971
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
972
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
973
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Use Cases
974
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
975
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
976
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
977
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
978
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
979
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
980
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
981
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
982
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
983
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
984
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
985
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
986
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
987
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
988
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
989
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
990
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
991
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
992
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
993
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../cli-reference/" class="md-nav__link">
994
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
995
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
996
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
997
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
998
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
999
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1000
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
CLI Reference
1001
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1002
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1003
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1004
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1005
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1006
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1007
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1008
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1009
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1010
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1011
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1012
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1013
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1014
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1015
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1016
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1017
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1018
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1019
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1020
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1021
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1022
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1023
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1024
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1025
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1026
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1027
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1028
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1029
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item md-nav__item--nested">
1030
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1031
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1032
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1033
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1034
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1035
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
1036
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1037
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1038
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
1039
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1040
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1041
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1042
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1043
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1044
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1045
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Architecture
1046
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1047
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1048
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1049
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1050
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1051
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1052
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1053
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-nav__icon md-icon"></span>
1054
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
1055
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1056
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
1057
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-nav__title" for="__nav_6">
1058
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-nav__icon md-icon"></span>
1059
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1060
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1061
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Architecture
1062
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1063
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1064
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
1065
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list" data-md-scrollfix>
1066
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1067
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1068
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1069
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1070
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1071
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1072
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1073
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1074
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../architecture/overview/" class="md-nav__link">
1075
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1076
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1077
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1078
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1079
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1080
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1081
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Overview
1082
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1083
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1084
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1085
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1086
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1087
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1088
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1089
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1090
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1091
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1092
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1093
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1094
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1095
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1096
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1097
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1098
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1099
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1100
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1101
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1102
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../architecture/providers/" class="md-nav__link">
1103
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1104
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1105
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1106
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1107
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1108
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1109
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Provider System
1110
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1111
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1112
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1113
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1114
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1115
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1116
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1117
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1118
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1119
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1120
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1121
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1122
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1123
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1124
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1125
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1126
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1127
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1128
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1129
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1130
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../architecture/pipeline/" class="md-nav__link">
1131
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1132
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1133
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1134
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1135
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1136
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1137
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Processing Pipeline
1138
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1139
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1140
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1141
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1142
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1143
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1144
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1145
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1146
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1147
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1148
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1149
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1150
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1151
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
1152
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
1153
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1154
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1155
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1156
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1157
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1158
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1159
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1160
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1161
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1162
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1163
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1164
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1165
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1166
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1167
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1168
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1169
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1170
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1171
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1172
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1173
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1174
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item md-nav__item--nested">
1175
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1176
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1177
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1178
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1179
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1180
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_7" >
1181
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1182
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1183
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
1184
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1185
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1186
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1187
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1188
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1189
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1190
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
API Reference
1191
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1192
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1193
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1194
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1195
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1196
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1197
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1198
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-nav__icon md-icon"></span>
1199
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
1200
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1201
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
1202
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-nav__title" for="__nav_7">
1203
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-nav__icon md-icon"></span>
1204
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1205
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1206
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
API Reference
1207
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1208
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1209
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
1210
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list" data-md-scrollfix>
1211
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1212
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1213
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1214
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1215
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1216
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1217
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1218
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1219
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../api/models/" class="md-nav__link">
1220
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1221
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1222
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1223
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1224
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1225
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1226
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Models
1227
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1228
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1229
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1230
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1231
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1232
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1233
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1234
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1235
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1236
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1237
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1238
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1239
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1240
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1241
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1242
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1243
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1244
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1245
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1246
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1247
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../api/providers/" class="md-nav__link">
1248
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1249
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1250
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1251
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1252
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1253
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1254
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Providers
1255
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1256
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1257
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1258
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1259
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1260
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1261
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1262
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1263
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1264
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1265
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1266
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1267
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1268
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1269
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1270
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1271
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1272
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1273
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1274
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1275
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../api/analyzers/" class="md-nav__link">
1276
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1277
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1278
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1279
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1280
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1281
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1282
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Analyzers
1283
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1284
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1285
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1286
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1287
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1288
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1289
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1290
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1291
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1292
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1293
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1294
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1295
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1296
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1297
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1298
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1299
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1300
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1301
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1302
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1303
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../api/agent/" class="md-nav__link">
1304
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1305
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1306
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1307
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1308
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1309
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1310
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Agent & Skills
1311
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1312
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1313
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1314
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1315
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1316
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1317
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1318
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1319
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1320
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1321
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1322
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1323
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1324
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1325
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1326
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1327
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1328
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1329
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1330
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1331
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../api/sources/" class="md-nav__link">
1332
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1333
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1334
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1335
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1336
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1337
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1338
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Sources
1339
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1340
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1341
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1342
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1343
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1344
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1345
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1346
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1347
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1348
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1349
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1350
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1351
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1352
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1353
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1354
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1355
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1356
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1357
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1358
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1359
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../api/auth/" class="md-nav__link">
1360
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1361
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1362
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1363
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1364
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1365
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1366
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Authentication
1367
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1368
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1369
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1370
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1371
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1372
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1373
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1374
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1375
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1376
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1377
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1378
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1379
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1380
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
1381
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
1382
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1383
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1384
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1385
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1386
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1387
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1388
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1389
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1390
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1391
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1392
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1393
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1394
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="../faq/" class="md-nav__link">
1395
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1396
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1397
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1398
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1399
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1400
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1401
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
FAQ & Troubleshooting
1402
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1403
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1404
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1405
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1406
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1407
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1408
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1409
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1410
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1411
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1412
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1413
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1414
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1415
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1416
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1417
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1418
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1419
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1420
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1421
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1422
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item md-nav__item--active">
1423
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1424
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
1425
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1426
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1427
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1428
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1429
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1430
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-nav__link md-nav__link--active" for="__toc">
1431
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1432
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1433
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1434
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1435
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1436
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1437
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Contributing
1438
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1439
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1440
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1441
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1442
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1443
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1444
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1445
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-nav__icon md-icon"></span>
1446
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
1447
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1448
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="./" class="md-nav__link md-nav__link--active">
1449
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1450
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1451
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1452
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1453
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1454
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1455
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Contributing
1456
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1457
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1458
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1459
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1460
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1461
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1462
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1463
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1464
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1465
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1466
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1467
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1468
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1469
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1470
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1471
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1472
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1473
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1474
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-nav__title" for="__toc">
1475
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-nav__icon md-icon"></span>
1476
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Table of contents
1477
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
1478
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1479
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1480
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1481
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#development-setup" class="md-nav__link">
1482
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1483
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1484
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Development setup
1485
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1486
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1487
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1488
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1489
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1490
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1491
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1492
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#running-tests" class="md-nav__link">
1493
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1494
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1495
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Running tests
1496
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1497
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1498
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1499
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1500
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" aria-label="Running tests">
1501
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list">
1502
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1503
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1504
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#test-conventions" class="md-nav__link">
1505
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1506
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1507
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Test conventions
1508
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1509
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1510
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1511
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1512
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1513
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1514
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1515
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#mocking-patterns" class="md-nav__link">
1516
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1517
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1518
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Mocking patterns
1519
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1520
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1521
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1522
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1523
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1524
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1525
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
1526
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
1527
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1528
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1529
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1530
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1531
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#code-style" class="md-nav__link">
1532
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1533
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1534
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Code style
1535
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1536
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1537
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1538
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1539
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" aria-label="Code style">
1540
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list">
1541
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1542
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1543
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#ruff-configuration" class="md-nav__link">
1544
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1545
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1546
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Ruff configuration
1547
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1548
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1549
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1550
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1551
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1552
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1553
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
1554
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
1555
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1556
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1557
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1558
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1559
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#project-structure" class="md-nav__link">
1560
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1561
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1562
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Project structure
1563
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1564
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1565
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1566
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1567
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1568
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1569
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1570
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#adding-a-new-provider" class="md-nav__link">
1571
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1572
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1573
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Adding a new provider
1574
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1575
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1576
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1577
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1578
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" aria-label="Adding a new provider">
1579
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list">
1580
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1581
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1582
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#example-provider-skeleton" class="md-nav__link">
1583
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1584
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1585
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Example provider skeleton
1586
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1587
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1588
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1589
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1590
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1591
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1592
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1593
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#openai-compatible-providers" class="md-nav__link">
1594
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1595
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1596
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
OpenAI-compatible providers
1597
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1598
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1599
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1600
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1601
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1602
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1603
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
1604
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
1605
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1606
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1607
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1608
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1609
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#adding-a-new-cloud-source" class="md-nav__link">
1610
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1611
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1612
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Adding a new cloud source
1613
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1614
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1615
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1616
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1617
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" aria-label="Adding a new cloud source">
1618
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list">
1619
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1620
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1621
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#example-source-skeleton" class="md-nav__link">
1622
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1623
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1624
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Example source skeleton
1625
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1626
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1627
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1628
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1629
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1630
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1631
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1632
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#registering-in-__init__py" class="md-nav__link">
1633
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1634
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1635
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Registering in __init__.py
1636
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1637
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1638
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1639
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1640
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1641
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1642
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
1643
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
1644
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1645
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1646
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1647
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1648
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#adding-a-new-skill" class="md-nav__link">
1649
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1650
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1651
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Adding a new skill
1652
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1653
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1654
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1655
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1656
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" aria-label="Adding a new skill">
1657
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list">
1658
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1659
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1660
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#example-skill-skeleton" class="md-nav__link">
1661
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1662
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1663
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Example skill skeleton
1664
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1665
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1666
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1667
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1668
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1669
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1670
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1671
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#registering-in-__init__py_1" class="md-nav__link">
1672
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1673
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1674
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Registering in __init__.py
1675
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1676
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1677
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1678
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1679
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1680
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1681
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
1682
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
1683
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1684
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1685
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1686
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1687
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#adding-a-new-document-processor" class="md-nav__link">
1688
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1689
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1690
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Adding a new document processor
1691
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1692
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1693
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1694
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1695
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" aria-label="Adding a new document processor">
1696
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list">
1697
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1698
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1699
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#example-processor-skeleton" class="md-nav__link">
1700
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1701
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1702
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Example processor skeleton
1703
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1704
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1705
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1706
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1707
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1708
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1709
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1710
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#registering-in-__init__py_2" class="md-nav__link">
1711
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1712
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1713
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Registering in __init__.py
1714
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1715
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1716
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1717
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1718
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1719
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1720
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
1721
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
1722
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1723
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1724
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1725
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1726
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#adding-a-new-exporter" class="md-nav__link">
1727
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1728
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1729
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Adding a new exporter
1730
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1731
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1732
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1733
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1734
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" aria-label="Adding a new exporter">
1735
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list">
1736
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1737
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1738
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#example-exporter-skeleton" class="md-nav__link">
1739
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1740
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1741
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Example exporter skeleton
1742
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1743
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1744
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1745
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1746
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1747
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1748
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1749
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#adding-the-cli-command" class="md-nav__link">
1750
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1751
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1752
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Adding the CLI command
1753
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1754
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1755
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1756
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1757
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1758
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1759
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
1760
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
1761
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1762
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1763
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1764
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1765
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#license" class="md-nav__link">
1766
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1767
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1768
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
License
1769
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1770
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1771
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1772
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1773
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1774
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1775
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
1776
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1777
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
1778
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1779
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1780
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1781
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1782
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1783
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
1784
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
1785
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
1786
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
1787
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
1788
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1789
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1790
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1791
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1792
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-sidebar__scrollwrap">
1793
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-sidebar__inner">
1794
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1795
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1796
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1797
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1798
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1799
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1800
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1801
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1802
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1803
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<label class="md-nav__title" for="__toc">
1804
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-nav__icon md-icon"></span>
1805
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Table of contents
1806
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</label>
1807
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1808
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1809
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1810
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#development-setup" class="md-nav__link">
1811
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1812
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1813
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Development setup
1814
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1815
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1816
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1817
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1818
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1819
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1820
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1821
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#running-tests" class="md-nav__link">
1822
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1823
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1824
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Running tests
1825
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1826
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1827
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1828
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1829
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" aria-label="Running tests">
1830
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list">
1831
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1832
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1833
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#test-conventions" class="md-nav__link">
1834
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1835
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1836
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Test conventions
1837
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1838
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1839
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1840
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1841
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1842
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1843
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1844
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#mocking-patterns" class="md-nav__link">
1845
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1846
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1847
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Mocking patterns
1848
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1849
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1850
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1851
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1852
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1853
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1854
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
1855
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
1856
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1857
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1858
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1859
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1860
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#code-style" class="md-nav__link">
1861
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1862
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1863
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Code style
1864
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1865
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1866
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1867
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1868
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" aria-label="Code style">
1869
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list">
1870
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1871
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1872
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#ruff-configuration" class="md-nav__link">
1873
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1874
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1875
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Ruff configuration
1876
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1877
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1878
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1879
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1880
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1881
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1882
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
1883
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
1884
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1885
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1886
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1887
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1888
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#project-structure" class="md-nav__link">
1889
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1890
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1891
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Project structure
1892
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1893
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1894
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1895
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1896
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1897
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1898
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1899
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#adding-a-new-provider" class="md-nav__link">
1900
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1901
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1902
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Adding a new provider
1903
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1904
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1905
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1906
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1907
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" aria-label="Adding a new provider">
1908
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list">
1909
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1910
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1911
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#example-provider-skeleton" class="md-nav__link">
1912
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1913
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1914
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Example provider skeleton
1915
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1916
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1917
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1918
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1919
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1920
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1921
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1922
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#openai-compatible-providers" class="md-nav__link">
1923
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1924
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1925
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
OpenAI-compatible providers
1926
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1927
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1928
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1929
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1930
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1931
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1932
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
1933
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
1934
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1935
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1936
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1937
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1938
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#adding-a-new-cloud-source" class="md-nav__link">
1939
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1940
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1941
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Adding a new cloud source
1942
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1943
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1944
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1945
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1946
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" aria-label="Adding a new cloud source">
1947
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list">
1948
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1949
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1950
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#example-source-skeleton" class="md-nav__link">
1951
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1952
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1953
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Example source skeleton
1954
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1955
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1956
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1957
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1958
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1959
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1960
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1961
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#registering-in-__init__py" class="md-nav__link">
1962
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1963
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1964
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Registering in __init__.py
1965
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1966
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1967
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1968
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1969
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1970
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1971
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
1972
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
1973
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1974
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1975
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1976
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1977
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#adding-a-new-skill" class="md-nav__link">
1978
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1979
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1980
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Adding a new skill
1981
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1982
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1983
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1984
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1985
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" aria-label="Adding a new skill">
1986
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list">
1987
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1988
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
1989
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#example-skill-skeleton" class="md-nav__link">
1990
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
1991
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1992
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Example skill skeleton
1993
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1994
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
1995
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
1996
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1997
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
1998
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1999
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
2000
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#registering-in-__init__py_1" class="md-nav__link">
2001
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
2002
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2003
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Registering in __init__.py
2004
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2005
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
2006
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
2007
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2008
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
2009
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2010
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
2011
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
2012
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2013
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
2014
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2015
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
2016
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#adding-a-new-document-processor" class="md-nav__link">
2017
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
2018
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2019
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Adding a new document processor
2020
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2021
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
2022
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
2023
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2024
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" aria-label="Adding a new document processor">
2025
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list">
2026
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2027
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
2028
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#example-processor-skeleton" class="md-nav__link">
2029
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
2030
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2031
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Example processor skeleton
2032
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2033
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
2034
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
2035
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2036
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
2037
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2038
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
2039
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#registering-in-__init__py_2" class="md-nav__link">
2040
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
2041
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2042
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Registering in __init__.py
2043
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2044
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
2045
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
2046
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2047
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
2048
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2049
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
2050
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
2051
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2052
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
2053
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2054
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
2055
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#adding-a-new-exporter" class="md-nav__link">
2056
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
2057
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2058
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Adding a new exporter
2059
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2060
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
2061
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
2062
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2063
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<nav class="md-nav" aria-label="Adding a new exporter">
2064
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul class="md-nav__list">
2065
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2066
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
2067
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#example-exporter-skeleton" class="md-nav__link">
2068
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
2069
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2070
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Example exporter skeleton
2071
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2072
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
2073
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
2074
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2075
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
2076
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2077
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
2078
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#adding-the-cli-command" class="md-nav__link">
2079
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
2080
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2081
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Adding the CLI command
2082
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2083
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
2084
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
2085
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2086
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
2087
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2088
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
2089
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
2090
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2091
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
2092
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2093
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li class="md-nav__item">
2094
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="#license" class="md-nav__link">
2095
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<span class="md-ellipsis">
2096
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2097
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
License
2098
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2099
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</span>
2100
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
2101
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2102
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</li>
2103
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2104
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
2105
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2106
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</nav>
2107
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
2108
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
2109
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
2110
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2111
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2112
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2113
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-content" data-md-component="content">
2114
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2115
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<article class="md-content__inner md-typeset">
2116
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2117
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2118
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2119
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2120
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2121
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2122
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2123
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2124
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h1 id="contributing">Contributing<a class="headerlink" href="#contributing" title="Permanent link">¶</a></h1>
2125
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h2 id="development-setup">Development setup<a class="headerlink" href="#development-setup" title="Permanent link">¶</a></h2>
2126
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/ConflictHQ/PlanOpticon.git
2127
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="nb">cd</span><span class="w"> </span>PlanOpticon
2128
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a>python<span class="w"> </span>-m<span class="w"> </span>venv<span class="w"> </span>.venv
2129
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="nb">source</span><span class="w"> </span>.venv/bin/activate
2130
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a>pip<span class="w"> </span>install<span class="w"> </span>-e<span class="w"> </span><span class="s2">".[dev]"</span>
2131
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</code></pre></div>
2132
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h2 id="running-tests">Running tests<a class="headerlink" href="#running-tests" title="Permanent link">¶</a></h2>
2133
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>PlanOpticon has 822+ tests covering providers, pipeline stages, document processors, knowledge graph operations, exporters, skills, and CLI commands.</p>
2134
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="c1"># Run all tests</span>
2135
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a>pytest<span class="w"> </span>tests/<span class="w"> </span>-v
2136
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a>
2137
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="c1"># Run with coverage</span>
2138
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a>pytest<span class="w"> </span>tests/<span class="w"> </span>--cov<span class="o">=</span>video_processor<span class="w"> </span>--cov-report<span class="o">=</span>html
2139
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a>
2140
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a><span class="c1"># Run a specific test file</span>
2141
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a>pytest<span class="w"> </span>tests/test_models.py<span class="w"> </span>-v
2142
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-1-9" name="__codelineno-1-9" href="#__codelineno-1-9"></a>
2143
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-1-10" name="__codelineno-1-10" href="#__codelineno-1-10"></a><span class="c1"># Run tests matching a keyword</span>
2144
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-1-11" name="__codelineno-1-11" href="#__codelineno-1-11"></a>pytest<span class="w"> </span>tests/<span class="w"> </span>-k<span class="w"> </span><span class="s2">"test_knowledge_graph"</span><span class="w"> </span>-v
2145
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-1-12" name="__codelineno-1-12" href="#__codelineno-1-12"></a>
2146
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-1-13" name="__codelineno-1-13" href="#__codelineno-1-13"></a><span class="c1"># Run only fast tests (skip slow integration tests)</span>
2147
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-1-14" name="__codelineno-1-14" href="#__codelineno-1-14"></a>pytest<span class="w"> </span>tests/<span class="w"> </span>-m<span class="w"> </span><span class="s2">"not slow"</span><span class="w"> </span>-v
2148
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</code></pre></div>
2149
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h3 id="test-conventions">Test conventions<a class="headerlink" href="#test-conventions" title="Permanent link">¶</a></h3>
2150
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul>
2151
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>All tests live in the <code>tests/</code> directory, mirroring the <code>video_processor/</code> package structure</li>
2152
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Test files are named <code>test_<module>.py</code></li>
2153
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Use <code>pytest</code> as the test runner -- do not use <code>unittest.TestCase</code> unless necessary for specific setup/teardown patterns</li>
2154
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Mock external API calls. Never make real API calls in tests. Use <code>unittest.mock.patch</code> or <code>pytest-mock</code> fixtures to mock provider responses.</li>
2155
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Use <code>tmp_path</code> (pytest fixture) for any tests that write files to disk</li>
2156
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Fixtures shared across test files go in <code>conftest.py</code></li>
2157
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>For testing CLI commands, use <code>click.testing.CliRunner</code></li>
2158
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>For testing provider implementations, mock at the HTTP client level (e.g., patch <code>requests.post</code> or the provider's SDK client)</li>
2159
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
2160
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h3 id="mocking-patterns">Mocking patterns<a class="headerlink" href="#mocking-patterns" title="Permanent link">¶</a></h3>
2161
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="c1"># Mocking a provider's chat method</span>
2162
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a><span class="kn">from</span><span class="w"> </span><span class="nn">unittest.mock</span><span class="w"> </span><span class="kn">import</span> <span class="n">MagicMock</span><span class="p">,</span> <span class="n">patch</span>
2163
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a>
2164
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="k">def</span><span class="w"> </span><span class="nf">test_key_point_extraction</span><span class="p">():</span>
2165
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a> <span class="n">pm</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">()</span>
2166
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a> <span class="n">pm</span><span class="o">.</span><span class="n">chat</span><span class="o">.</span><span class="n">return_value</span> <span class="o">=</span> <span class="s1">'["Point 1", "Point 2"]'</span>
2167
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a> <span class="n">result</span> <span class="o">=</span> <span class="n">extract_key_points</span><span class="p">(</span><span class="n">pm</span><span class="p">,</span> <span class="s2">"transcript text"</span><span class="p">)</span>
2168
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a> <span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">result</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span>
2169
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a>
2170
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a><span class="c1"># Mocking an external API at the HTTP level</span>
2171
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-11" name="__codelineno-2-11" href="#__codelineno-2-11"></a><span class="nd">@patch</span><span class="p">(</span><span class="s2">"requests.post"</span><span class="p">)</span>
2172
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-12" name="__codelineno-2-12" href="#__codelineno-2-12"></a><span class="k">def</span><span class="w"> </span><span class="nf">test_provider_chat</span><span class="p">(</span><span class="n">mock_post</span><span class="p">):</span>
2173
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-13" name="__codelineno-2-13" href="#__codelineno-2-13"></a> <span class="n">mock_post</span><span class="o">.</span><span class="n">return_value</span><span class="o">.</span><span class="n">json</span><span class="o">.</span><span class="n">return_value</span> <span class="o">=</span> <span class="p">{</span>
2174
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-14" name="__codelineno-2-14" href="#__codelineno-2-14"></a> <span class="s2">"choices"</span><span class="p">:</span> <span class="p">[{</span><span class="s2">"message"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"content"</span><span class="p">:</span> <span class="s2">"response"</span><span class="p">}}]</span>
2175
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-15" name="__codelineno-2-15" href="#__codelineno-2-15"></a> <span class="p">}</span>
2176
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-16" name="__codelineno-2-16" href="#__codelineno-2-16"></a> <span class="n">provider</span> <span class="o">=</span> <span class="n">OpenAIProvider</span><span class="p">(</span><span class="n">api_key</span><span class="o">=</span><span class="s2">"test"</span><span class="p">)</span>
2177
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-17" name="__codelineno-2-17" href="#__codelineno-2-17"></a> <span class="n">result</span> <span class="o">=</span> <span class="n">provider</span><span class="o">.</span><span class="n">chat</span><span class="p">([{</span><span class="s2">"role"</span><span class="p">:</span> <span class="s2">"user"</span><span class="p">,</span> <span class="s2">"content"</span><span class="p">:</span> <span class="s2">"hello"</span><span class="p">}])</span>
2178
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-2-18" name="__codelineno-2-18" href="#__codelineno-2-18"></a> <span class="k">assert</span> <span class="n">result</span> <span class="o">==</span> <span class="s2">"response"</span>
2179
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</code></pre></div>
2180
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h2 id="code-style">Code style<a class="headerlink" href="#code-style" title="Permanent link">¶</a></h2>
2181
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>We use:</p>
2182
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ul>
2183
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li><strong>Ruff</strong> for both linting and formatting (100 char line length)</li>
2184
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li><strong>mypy</strong> for type checking</li>
2185
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ul>
2186
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>Ruff handles all linting (error, warning, pyflakes, and import sorting rules) and formatting in a single tool. There is no need to run Black or isort separately.</p>
2187
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="c1"># Lint</span>
2188
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a>ruff<span class="w"> </span>check<span class="w"> </span>video_processor/
2189
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a>
2190
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a><span class="c1"># Format</span>
2191
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a>ruff<span class="w"> </span>format<span class="w"> </span>video_processor/
2192
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-3-6" name="__codelineno-3-6" href="#__codelineno-3-6"></a>
2193
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-3-7" name="__codelineno-3-7" href="#__codelineno-3-7"></a><span class="c1"># Auto-fix lint issues</span>
2194
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-3-8" name="__codelineno-3-8" href="#__codelineno-3-8"></a>ruff<span class="w"> </span>check<span class="w"> </span>video_processor/<span class="w"> </span>--fix
2195
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-3-9" name="__codelineno-3-9" href="#__codelineno-3-9"></a>
2196
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-3-10" name="__codelineno-3-10" href="#__codelineno-3-10"></a><span class="c1"># Type check</span>
2197
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-3-11" name="__codelineno-3-11" href="#__codelineno-3-11"></a>mypy<span class="w"> </span>video_processor/<span class="w"> </span>--ignore-missing-imports
2198
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</code></pre></div>
2199
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h3 id="ruff-configuration">Ruff configuration<a class="headerlink" href="#ruff-configuration" title="Permanent link">¶</a></h3>
2200
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>The project's <code>pyproject.toml</code> configures ruff as follows:</p>
2201
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="k">[tool.ruff]</span>
2202
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="n">line-length</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">100</span>
2203
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="n">target-version</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"py310"</span>
2204
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a>
2205
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a><span class="k">[tool.ruff.lint]</span>
2206
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a><span class="n">select</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s2">"E"</span><span class="p">,</span><span class="w"> </span><span class="s2">"F"</span><span class="p">,</span><span class="w"> </span><span class="s2">"W"</span><span class="p">,</span><span class="w"> </span><span class="s2">"I"</span><span class="p">]</span>
2207
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</code></pre></div>
2208
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>The <code>I</code> rule set covers import sorting (equivalent to isort), so imports are automatically organized by ruff.</p>
2209
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h2 id="project-structure">Project structure<a class="headerlink" href="#project-structure" title="Permanent link">¶</a></h2>
2210
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>PlanOpticon/
2211
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a>├── video_processor/
2212
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a>│ ├── cli/ # Click CLI commands
2213
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a>│ │ └── commands.py
2214
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a>│ ├── providers/ # LLM/API provider implementations
2215
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a>│ │ ├── base.py # BaseProvider, ProviderRegistry
2216
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a>│ │ ├── manager.py # ProviderManager
2217
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a>│ │ ├── discovery.py # Auto-discovery of available providers
2218
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a>│ │ ├── openai_provider.py
2219
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a>│ │ ├── anthropic_provider.py
2220
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-11" name="__codelineno-5-11" href="#__codelineno-5-11"></a>│ │ ├── gemini_provider.py
2221
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-12" name="__codelineno-5-12" href="#__codelineno-5-12"></a>│ │ └── ... # 15+ provider implementations
2222
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-13" name="__codelineno-5-13" href="#__codelineno-5-13"></a>│ ├── sources/ # Cloud and web source connectors
2223
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-14" name="__codelineno-5-14" href="#__codelineno-5-14"></a>│ │ ├── base.py # BaseSource, SourceFile
2224
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-15" name="__codelineno-5-15" href="#__codelineno-5-15"></a>│ │ ├── google_drive.py
2225
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-16" name="__codelineno-5-16" href="#__codelineno-5-16"></a>│ │ ├── zoom_source.py
2226
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-17" name="__codelineno-5-17" href="#__codelineno-5-17"></a>│ │ └── ... # 20+ source implementations
2227
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-18" name="__codelineno-5-18" href="#__codelineno-5-18"></a>│ ├── processors/ # Document processors
2228
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-19" name="__codelineno-5-19" href="#__codelineno-5-19"></a>│ │ ├── base.py # DocumentProcessor, registry
2229
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-20" name="__codelineno-5-20" href="#__codelineno-5-20"></a>│ │ ├── ingest.py # File/directory ingestion
2230
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-21" name="__codelineno-5-21" href="#__codelineno-5-21"></a>│ │ ├── markdown_processor.py
2231
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-22" name="__codelineno-5-22" href="#__codelineno-5-22"></a>│ │ ├── pdf_processor.py
2232
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-23" name="__codelineno-5-23" href="#__codelineno-5-23"></a>│ │ └── __init__.py # Auto-registration of built-in processors
2233
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-24" name="__codelineno-5-24" href="#__codelineno-5-24"></a>│ ├── integrators/ # Knowledge graph and analysis
2234
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-25" name="__codelineno-5-25" href="#__codelineno-5-25"></a>│ │ ├── knowledge_graph.py # KnowledgeGraph class
2235
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-26" name="__codelineno-5-26" href="#__codelineno-5-26"></a>│ │ ├── graph_store.py # SQLite graph storage
2236
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-27" name="__codelineno-5-27" href="#__codelineno-5-27"></a>│ │ ├── graph_query.py # GraphQueryEngine
2237
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-28" name="__codelineno-5-28" href="#__codelineno-5-28"></a>│ │ ├── graph_discovery.py # Auto-find knowledge_graph.db
2238
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-29" name="__codelineno-5-29" href="#__codelineno-5-29"></a>│ │ └── taxonomy.py # Planning taxonomy classifier
2239
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-30" name="__codelineno-5-30" href="#__codelineno-5-30"></a>│ ├── agent/ # Planning agent
2240
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-31" name="__codelineno-5-31" href="#__codelineno-5-31"></a>│ │ ├── orchestrator.py # Agent orchestration
2241
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-32" name="__codelineno-5-32" href="#__codelineno-5-32"></a>│ │ └── skills/ # Skill implementations
2242
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-33" name="__codelineno-5-33" href="#__codelineno-5-33"></a>│ │ ├── base.py # Skill ABC, registry, Artifact
2243
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-34" name="__codelineno-5-34" href="#__codelineno-5-34"></a>│ │ ├── project_plan.py
2244
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-35" name="__codelineno-5-35" href="#__codelineno-5-35"></a>│ │ ├── prd.py
2245
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-36" name="__codelineno-5-36" href="#__codelineno-5-36"></a>│ │ ├── roadmap.py
2246
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-37" name="__codelineno-5-37" href="#__codelineno-5-37"></a>│ │ ├── task_breakdown.py
2247
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-38" name="__codelineno-5-38" href="#__codelineno-5-38"></a>│ │ ├── doc_generator.py
2248
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-39" name="__codelineno-5-39" href="#__codelineno-5-39"></a>│ │ ├── wiki_generator.py
2249
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-40" name="__codelineno-5-40" href="#__codelineno-5-40"></a>│ │ ├── notes_export.py
2250
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-41" name="__codelineno-5-41" href="#__codelineno-5-41"></a>│ │ ├── artifact_export.py
2251
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-42" name="__codelineno-5-42" href="#__codelineno-5-42"></a>│ │ ├── github_integration.py
2252
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-43" name="__codelineno-5-43" href="#__codelineno-5-43"></a>│ │ ├── requirements_chat.py
2253
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-44" name="__codelineno-5-44" href="#__codelineno-5-44"></a>│ │ ├── cli_adapter.py
2254
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-45" name="__codelineno-5-45" href="#__codelineno-5-45"></a>│ │ └── __init__.py # Auto-registration of skills
2255
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-46" name="__codelineno-5-46" href="#__codelineno-5-46"></a>│ ├── exporters/ # Output format exporters
2256
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-47" name="__codelineno-5-47" href="#__codelineno-5-47"></a>│ │ ├── __init__.py
2257
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-48" name="__codelineno-5-48" href="#__codelineno-5-48"></a>│ │ └── markdown.py # Template-based markdown generation
2258
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-49" name="__codelineno-5-49" href="#__codelineno-5-49"></a>│ ├── utils/ # Shared utilities
2259
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-50" name="__codelineno-5-50" href="#__codelineno-5-50"></a>│ │ ├── export.py # Multi-format export orchestration
2260
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-51" name="__codelineno-5-51" href="#__codelineno-5-51"></a>│ │ ├── rendering.py # Mermaid/chart rendering
2261
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-52" name="__codelineno-5-52" href="#__codelineno-5-52"></a>│ │ ├── prompt_templates.py
2262
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-53" name="__codelineno-5-53" href="#__codelineno-5-53"></a>│ │ ├── callbacks.py # Progress callback helpers
2263
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-54" name="__codelineno-5-54" href="#__codelineno-5-54"></a>│ │ └── ...
2264
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-55" name="__codelineno-5-55" href="#__codelineno-5-55"></a>│ ├── exchange.py # PlanOpticonExchange format
2265
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-56" name="__codelineno-5-56" href="#__codelineno-5-56"></a>│ ├── pipeline.py # Main video processing pipeline
2266
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-57" name="__codelineno-5-57" href="#__codelineno-5-57"></a>│ ├── models.py # Pydantic data models
2267
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-58" name="__codelineno-5-58" href="#__codelineno-5-58"></a>│ └── output_structure.py # Output directory helpers
2268
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-59" name="__codelineno-5-59" href="#__codelineno-5-59"></a>├── tests/ # 822+ tests
2269
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-60" name="__codelineno-5-60" href="#__codelineno-5-60"></a>├── knowledge-base/ # Local-first graph tools
2270
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-61" name="__codelineno-5-61" href="#__codelineno-5-61"></a>│ ├── viewer.html # Self-contained D3.js graph viewer
2271
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-62" name="__codelineno-5-62" href="#__codelineno-5-62"></a>│ └── query.py # Python query script (NetworkX)
2272
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-63" name="__codelineno-5-63" href="#__codelineno-5-63"></a>├── docs/ # MkDocs documentation
2273
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-5-64" name="__codelineno-5-64" href="#__codelineno-5-64"></a>└── pyproject.toml # Project configuration
2274
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</code></pre></div>
2275
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>See <a href="../architecture/overview/">Architecture Overview</a> for a more detailed breakdown of module responsibilities.</p>
2276
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h2 id="adding-a-new-provider">Adding a new provider<a class="headerlink" href="#adding-a-new-provider" title="Permanent link">¶</a></h2>
2277
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>Providers self-register via <code>ProviderRegistry.register()</code> at module level. When the provider module is imported, it registers itself automatically.</p>
2278
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ol>
2279
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Create <code>video_processor/providers/your_provider.py</code></li>
2280
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Extend <code>BaseProvider</code> from <code>video_processor/providers/base.py</code></li>
2281
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Implement the four required methods: <code>chat()</code>, <code>analyze_image()</code>, <code>transcribe_audio()</code>, <code>list_models()</code></li>
2282
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Call <code>ProviderRegistry.register()</code> at module level</li>
2283
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Add the import to <code>video_processor/providers/manager.py</code> in the lazy-import block</li>
2284
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Add tests in <code>tests/test_providers.py</code></li>
2285
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ol>
2286
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h3 id="example-provider-skeleton">Example provider skeleton<a class="headerlink" href="#example-provider-skeleton" title="Permanent link">¶</a></h3>
2287
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="sd">"""Your provider implementation."""</span>
2288
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a>
2289
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a><span class="kn">from</span><span class="w"> </span><span class="nn">video_processor.providers.base</span><span class="w"> </span><span class="kn">import</span> <span class="n">BaseProvider</span><span class="p">,</span> <span class="n">ModelInfo</span><span class="p">,</span> <span class="n">ProviderRegistry</span>
2290
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a>
2291
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a>
2292
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a><span class="k">class</span><span class="w"> </span><span class="nc">YourProvider</span><span class="p">(</span><span class="n">BaseProvider</span><span class="p">):</span>
2293
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a> <span class="n">provider_name</span> <span class="o">=</span> <span class="s2">"yourprovider"</span>
2294
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-8" name="__codelineno-6-8" href="#__codelineno-6-8"></a>
2295
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-9" name="__codelineno-6-9" href="#__codelineno-6-9"></a> <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">api_key</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
2296
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-10" name="__codelineno-6-10" href="#__codelineno-6-10"></a> <span class="kn">import</span><span class="w"> </span><span class="nn">os</span>
2297
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-11" name="__codelineno-6-11" href="#__codelineno-6-11"></a> <span class="bp">self</span><span class="o">.</span><span class="n">api_key</span> <span class="o">=</span> <span class="n">api_key</span> <span class="ow">or</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"YOUR_API_KEY"</span><span class="p">,</span> <span class="s2">""</span><span class="p">)</span>
2298
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-12" name="__codelineno-6-12" href="#__codelineno-6-12"></a>
2299
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-13" name="__codelineno-6-13" href="#__codelineno-6-13"></a> <span class="k">def</span><span class="w"> </span><span class="nf">chat</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">messages</span><span class="p">,</span> <span class="n">max_tokens</span><span class="o">=</span><span class="mi">4096</span><span class="p">,</span> <span class="n">temperature</span><span class="o">=</span><span class="mf">0.7</span><span class="p">,</span> <span class="n">model</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
2300
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-14" name="__codelineno-6-14" href="#__codelineno-6-14"></a> <span class="c1"># Implement chat completion</span>
2301
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-15" name="__codelineno-6-15" href="#__codelineno-6-15"></a> <span class="o">...</span>
2302
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-16" name="__codelineno-6-16" href="#__codelineno-6-16"></a>
2303
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-17" name="__codelineno-6-17" href="#__codelineno-6-17"></a> <span class="k">def</span><span class="w"> </span><span class="nf">analyze_image</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">image_bytes</span><span class="p">,</span> <span class="n">prompt</span><span class="p">,</span> <span class="n">max_tokens</span><span class="o">=</span><span class="mi">4096</span><span class="p">,</span> <span class="n">model</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
2304
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-18" name="__codelineno-6-18" href="#__codelineno-6-18"></a> <span class="c1"># Implement image analysis</span>
2305
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-19" name="__codelineno-6-19" href="#__codelineno-6-19"></a> <span class="o">...</span>
2306
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-20" name="__codelineno-6-20" href="#__codelineno-6-20"></a>
2307
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-21" name="__codelineno-6-21" href="#__codelineno-6-21"></a> <span class="k">def</span><span class="w"> </span><span class="nf">transcribe_audio</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">audio_path</span><span class="p">,</span> <span class="n">language</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">model</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
2308
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-22" name="__codelineno-6-22" href="#__codelineno-6-22"></a> <span class="c1"># Implement audio transcription (or raise NotImplementedError)</span>
2309
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-23" name="__codelineno-6-23" href="#__codelineno-6-23"></a> <span class="o">...</span>
2310
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-24" name="__codelineno-6-24" href="#__codelineno-6-24"></a>
2311
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-25" name="__codelineno-6-25" href="#__codelineno-6-25"></a> <span class="k">def</span><span class="w"> </span><span class="nf">list_models</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
2312
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-26" name="__codelineno-6-26" href="#__codelineno-6-26"></a> <span class="k">return</span> <span class="p">[</span><span class="n">ModelInfo</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="s2">"your-model"</span><span class="p">,</span> <span class="n">provider</span><span class="o">=</span><span class="s2">"yourprovider"</span><span class="p">,</span> <span class="n">capabilities</span><span class="o">=</span><span class="p">[</span><span class="s2">"chat"</span><span class="p">])]</span>
2313
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-27" name="__codelineno-6-27" href="#__codelineno-6-27"></a>
2314
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-28" name="__codelineno-6-28" href="#__codelineno-6-28"></a>
2315
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-29" name="__codelineno-6-29" href="#__codelineno-6-29"></a><span class="c1"># Self-registration at import time</span>
2316
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-30" name="__codelineno-6-30" href="#__codelineno-6-30"></a><span class="n">ProviderRegistry</span><span class="o">.</span><span class="n">register</span><span class="p">(</span>
2317
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-31" name="__codelineno-6-31" href="#__codelineno-6-31"></a> <span class="s2">"yourprovider"</span><span class="p">,</span>
2318
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-32" name="__codelineno-6-32" href="#__codelineno-6-32"></a> <span class="n">YourProvider</span><span class="p">,</span>
2319
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-33" name="__codelineno-6-33" href="#__codelineno-6-33"></a> <span class="n">env_var</span><span class="o">=</span><span class="s2">"YOUR_API_KEY"</span><span class="p">,</span>
2320
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-34" name="__codelineno-6-34" href="#__codelineno-6-34"></a> <span class="n">model_prefixes</span><span class="o">=</span><span class="p">[</span><span class="s2">"your-"</span><span class="p">],</span>
2321
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-35" name="__codelineno-6-35" href="#__codelineno-6-35"></a> <span class="n">default_models</span><span class="o">=</span><span class="p">{</span><span class="s2">"chat"</span><span class="p">:</span> <span class="s2">"your-model"</span><span class="p">},</span>
2322
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-6-36" name="__codelineno-6-36" href="#__codelineno-6-36"></a><span class="p">)</span>
2323
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</code></pre></div>
2324
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h3 id="openai-compatible-providers">OpenAI-compatible providers<a class="headerlink" href="#openai-compatible-providers" title="Permanent link">¶</a></h3>
2325
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>For providers that use the OpenAI API format, extend <code>OpenAICompatibleProvider</code> instead of <code>BaseProvider</code>. This provides default implementations of <code>chat()</code>, <code>analyze_image()</code>, and <code>list_models()</code> -- you only need to configure the base URL and model mappings.</p>
2326
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">video_processor.providers.base</span><span class="w"> </span><span class="kn">import</span> <span class="n">OpenAICompatibleProvider</span><span class="p">,</span> <span class="n">ProviderRegistry</span>
2327
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a>
2328
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a><span class="k">class</span><span class="w"> </span><span class="nc">YourProvider</span><span class="p">(</span><span class="n">OpenAICompatibleProvider</span><span class="p">):</span>
2329
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a> <span class="n">provider_name</span> <span class="o">=</span> <span class="s2">"yourprovider"</span>
2330
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a> <span class="n">base_url</span> <span class="o">=</span> <span class="s2">"https://api.yourprovider.com/v1"</span>
2331
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a> <span class="n">env_var</span> <span class="o">=</span> <span class="s2">"YOUR_API_KEY"</span>
2332
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a>
2333
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a><span class="n">ProviderRegistry</span><span class="o">.</span><span class="n">register</span><span class="p">(</span><span class="s2">"yourprovider"</span><span class="p">,</span> <span class="n">YourProvider</span><span class="p">,</span> <span class="n">env_var</span><span class="o">=</span><span class="s2">"YOUR_API_KEY"</span><span class="p">)</span>
2334
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</code></pre></div>
2335
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h2 id="adding-a-new-cloud-source">Adding a new cloud source<a class="headerlink" href="#adding-a-new-cloud-source" title="Permanent link">¶</a></h2>
2336
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>Source connectors implement the <code>BaseSource</code> ABC from <code>video_processor/sources/base.py</code>. Authentication is handled per-source, typically via environment variables.</p>
2337
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ol>
2338
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Create <code>video_processor/sources/your_source.py</code></li>
2339
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Extend <code>BaseSource</code></li>
2340
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Implement <code>authenticate()</code>, <code>list_videos()</code>, and <code>download()</code></li>
2341
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Add the class to the lazy-import map in <code>video_processor/sources/__init__.py</code></li>
2342
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Add CLI commands in <code>video_processor/cli/commands.py</code> if needed</li>
2343
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Add tests and documentation</li>
2344
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ol>
2345
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h3 id="example-source-skeleton">Example source skeleton<a class="headerlink" href="#example-source-skeleton" title="Permanent link">¶</a></h3>
2346
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="sd">"""Your source integration."""</span>
2347
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a>
2348
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a><span class="kn">import</span><span class="w"> </span><span class="nn">os</span>
2349
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a><span class="kn">import</span><span class="w"> </span><span class="nn">logging</span>
2350
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a><span class="kn">from</span><span class="w"> </span><span class="nn">pathlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">Path</span>
2351
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-6" name="__codelineno-8-6" href="#__codelineno-8-6"></a><span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">List</span><span class="p">,</span> <span class="n">Optional</span>
2352
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-7" name="__codelineno-8-7" href="#__codelineno-8-7"></a>
2353
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-8" name="__codelineno-8-8" href="#__codelineno-8-8"></a><span class="kn">from</span><span class="w"> </span><span class="nn">video_processor.sources.base</span><span class="w"> </span><span class="kn">import</span> <span class="n">BaseSource</span><span class="p">,</span> <span class="n">SourceFile</span>
2354
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-9" name="__codelineno-8-9" href="#__codelineno-8-9"></a>
2355
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-10" name="__codelineno-8-10" href="#__codelineno-8-10"></a><span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span>
2356
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-11" name="__codelineno-8-11" href="#__codelineno-8-11"></a>
2357
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-12" name="__codelineno-8-12" href="#__codelineno-8-12"></a>
2358
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-13" name="__codelineno-8-13" href="#__codelineno-8-13"></a><span class="k">class</span><span class="w"> </span><span class="nc">YourSource</span><span class="p">(</span><span class="n">BaseSource</span><span class="p">):</span>
2359
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-14" name="__codelineno-8-14" href="#__codelineno-8-14"></a> <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">api_key</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
2360
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-15" name="__codelineno-8-15" href="#__codelineno-8-15"></a> <span class="bp">self</span><span class="o">.</span><span class="n">api_key</span> <span class="o">=</span> <span class="n">api_key</span> <span class="ow">or</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"YOUR_SOURCE_KEY"</span><span class="p">,</span> <span class="s2">""</span><span class="p">)</span>
2361
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-16" name="__codelineno-8-16" href="#__codelineno-8-16"></a>
2362
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-17" name="__codelineno-8-17" href="#__codelineno-8-17"></a> <span class="k">def</span><span class="w"> </span><span class="nf">authenticate</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
2363
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-18" name="__codelineno-8-18" href="#__codelineno-8-18"></a><span class="w"> </span><span class="sd">"""Validate credentials. Return True on success."""</span>
2364
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-19" name="__codelineno-8-19" href="#__codelineno-8-19"></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">api_key</span><span class="p">:</span>
2365
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-20" name="__codelineno-8-20" href="#__codelineno-8-20"></a> <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"API key not set. Set YOUR_SOURCE_KEY env var."</span><span class="p">)</span>
2366
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-21" name="__codelineno-8-21" href="#__codelineno-8-21"></a> <span class="k">return</span> <span class="kc">False</span>
2367
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-22" name="__codelineno-8-22" href="#__codelineno-8-22"></a> <span class="c1"># Make a test API call to verify credentials</span>
2368
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-23" name="__codelineno-8-23" href="#__codelineno-8-23"></a> <span class="o">...</span>
2369
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-24" name="__codelineno-8-24" href="#__codelineno-8-24"></a> <span class="k">return</span> <span class="kc">True</span>
2370
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-25" name="__codelineno-8-25" href="#__codelineno-8-25"></a>
2371
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-26" name="__codelineno-8-26" href="#__codelineno-8-26"></a> <span class="k">def</span><span class="w"> </span><span class="nf">list_videos</span><span class="p">(</span>
2372
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-27" name="__codelineno-8-27" href="#__codelineno-8-27"></a> <span class="bp">self</span><span class="p">,</span>
2373
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-28" name="__codelineno-8-28" href="#__codelineno-8-28"></a> <span class="n">folder_id</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
2374
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-29" name="__codelineno-8-29" href="#__codelineno-8-29"></a> <span class="n">folder_path</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
2375
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-30" name="__codelineno-8-30" href="#__codelineno-8-30"></a> <span class="n">patterns</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
2376
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-31" name="__codelineno-8-31" href="#__codelineno-8-31"></a> <span class="p">)</span> <span class="o">-></span> <span class="n">List</span><span class="p">[</span><span class="n">SourceFile</span><span class="p">]:</span>
2377
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-32" name="__codelineno-8-32" href="#__codelineno-8-32"></a><span class="w"> </span><span class="sd">"""List available video files."""</span>
2378
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-33" name="__codelineno-8-33" href="#__codelineno-8-33"></a> <span class="o">...</span>
2379
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-34" name="__codelineno-8-34" href="#__codelineno-8-34"></a>
2380
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-35" name="__codelineno-8-35" href="#__codelineno-8-35"></a> <span class="k">def</span><span class="w"> </span><span class="nf">download</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file</span><span class="p">:</span> <span class="n">SourceFile</span><span class="p">,</span> <span class="n">destination</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-></span> <span class="n">Path</span><span class="p">:</span>
2381
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-36" name="__codelineno-8-36" href="#__codelineno-8-36"></a><span class="w"> </span><span class="sd">"""Download a single file. Return the local path."""</span>
2382
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-37" name="__codelineno-8-37" href="#__codelineno-8-37"></a> <span class="n">destination</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">parents</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
2383
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-38" name="__codelineno-8-38" href="#__codelineno-8-38"></a> <span class="c1"># Download file content to destination</span>
2384
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-39" name="__codelineno-8-39" href="#__codelineno-8-39"></a> <span class="o">...</span>
2385
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-8-40" name="__codelineno-8-40" href="#__codelineno-8-40"></a> <span class="k">return</span> <span class="n">destination</span>
2386
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</code></pre></div>
2387
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h3 id="registering-in-__init__py">Registering in <code>__init__.py</code><a class="headerlink" href="#registering-in-__init__py" title="Permanent link">¶</a></h3>
2388
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>Add your source to the <code>__all__</code> list and the <code>_lazy_map</code> dictionary in <code>video_processor/sources/__init__.py</code>:</p>
2389
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="n">__all__</span> <span class="o">=</span> <span class="p">[</span>
2390
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a> <span class="o">...</span>
2391
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a> <span class="s2">"YourSource"</span><span class="p">,</span>
2392
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a><span class="p">]</span>
2393
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-9-5" name="__codelineno-9-5" href="#__codelineno-9-5"></a>
2394
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-9-6" name="__codelineno-9-6" href="#__codelineno-9-6"></a><span class="n">_lazy_map</span> <span class="o">=</span> <span class="p">{</span>
2395
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-9-7" name="__codelineno-9-7" href="#__codelineno-9-7"></a> <span class="o">...</span>
2396
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-9-8" name="__codelineno-9-8" href="#__codelineno-9-8"></a> <span class="s2">"YourSource"</span><span class="p">:</span> <span class="s2">"video_processor.sources.your_source"</span><span class="p">,</span>
2397
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-9-9" name="__codelineno-9-9" href="#__codelineno-9-9"></a><span class="p">}</span>
2398
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</code></pre></div>
2399
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h2 id="adding-a-new-skill">Adding a new skill<a class="headerlink" href="#adding-a-new-skill" title="Permanent link">¶</a></h2>
2400
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>Agent skills extend the <code>Skill</code> ABC from <code>video_processor/agent/skills/base.py</code> and self-register via <code>register_skill()</code>.</p>
2401
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ol>
2402
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Create <code>video_processor/agent/skills/your_skill.py</code></li>
2403
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Extend <code>Skill</code> and set <code>name</code> and <code>description</code> class attributes</li>
2404
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Implement <code>execute()</code> to return an <code>Artifact</code></li>
2405
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Optionally override <code>can_execute()</code> for custom precondition checks</li>
2406
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Call <code>register_skill()</code> at module level</li>
2407
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Add the import to <code>video_processor/agent/skills/__init__.py</code></li>
2408
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Add tests</li>
2409
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ol>
2410
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h3 id="example-skill-skeleton">Example skill skeleton<a class="headerlink" href="#example-skill-skeleton" title="Permanent link">¶</a></h3>
2411
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="sd">"""Your custom skill."""</span>
2412
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a>
2413
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="kn">from</span><span class="w"> </span><span class="nn">video_processor.agent.skills.base</span><span class="w"> </span><span class="kn">import</span> <span class="n">AgentContext</span><span class="p">,</span> <span class="n">Artifact</span><span class="p">,</span> <span class="n">Skill</span><span class="p">,</span> <span class="n">register_skill</span>
2414
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a>
2415
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a>
2416
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a><span class="k">class</span><span class="w"> </span><span class="nc">YourSkill</span><span class="p">(</span><span class="n">Skill</span><span class="p">):</span>
2417
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-7" name="__codelineno-10-7" href="#__codelineno-10-7"></a> <span class="n">name</span> <span class="o">=</span> <span class="s2">"your_skill"</span>
2418
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-8" name="__codelineno-10-8" href="#__codelineno-10-8"></a> <span class="n">description</span> <span class="o">=</span> <span class="s2">"Generates a custom artifact from the knowledge graph."</span>
2419
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-9" name="__codelineno-10-9" href="#__codelineno-10-9"></a>
2420
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-10" name="__codelineno-10-10" href="#__codelineno-10-10"></a> <span class="k">def</span><span class="w"> </span><span class="nf">execute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">context</span><span class="p">:</span> <span class="n">AgentContext</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Artifact</span><span class="p">:</span>
2421
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-11" name="__codelineno-10-11" href="#__codelineno-10-11"></a><span class="w"> </span><span class="sd">"""Generate the artifact."""</span>
2422
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-12" name="__codelineno-10-12" href="#__codelineno-10-12"></a> <span class="n">kg_data</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">knowledge_graph</span><span class="o">.</span><span class="n">to_dict</span><span class="p">()</span>
2423
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-13" name="__codelineno-10-13" href="#__codelineno-10-13"></a> <span class="c1"># Build content from knowledge graph data</span>
2424
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-14" name="__codelineno-10-14" href="#__codelineno-10-14"></a> <span class="n">content</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"# Your Artifact</span><span class="se">\n\n</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">kg_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'entities'</span><span class="p">,</span><span class="w"> </span><span class="p">[]))</span><span class="si">}</span><span class="s2"> entities found."</span>
2425
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-15" name="__codelineno-10-15" href="#__codelineno-10-15"></a> <span class="k">return</span> <span class="n">Artifact</span><span class="p">(</span>
2426
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-16" name="__codelineno-10-16" href="#__codelineno-10-16"></a> <span class="n">name</span><span class="o">=</span><span class="s2">"your_artifact"</span><span class="p">,</span>
2427
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-17" name="__codelineno-10-17" href="#__codelineno-10-17"></a> <span class="n">content</span><span class="o">=</span><span class="n">content</span><span class="p">,</span>
2428
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-18" name="__codelineno-10-18" href="#__codelineno-10-18"></a> <span class="n">artifact_type</span><span class="o">=</span><span class="s2">"document"</span><span class="p">,</span>
2429
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-19" name="__codelineno-10-19" href="#__codelineno-10-19"></a> <span class="nb">format</span><span class="o">=</span><span class="s2">"markdown"</span><span class="p">,</span>
2430
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-20" name="__codelineno-10-20" href="#__codelineno-10-20"></a> <span class="p">)</span>
2431
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-21" name="__codelineno-10-21" href="#__codelineno-10-21"></a>
2432
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-22" name="__codelineno-10-22" href="#__codelineno-10-22"></a> <span class="k">def</span><span class="w"> </span><span class="nf">can_execute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">context</span><span class="p">:</span> <span class="n">AgentContext</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
2433
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-23" name="__codelineno-10-23" href="#__codelineno-10-23"></a><span class="w"> </span><span class="sd">"""Check prerequisites (default requires KG + provider)."""</span>
2434
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-24" name="__codelineno-10-24" href="#__codelineno-10-24"></a> <span class="k">return</span> <span class="n">context</span><span class="o">.</span><span class="n">knowledge_graph</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
2435
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-25" name="__codelineno-10-25" href="#__codelineno-10-25"></a>
2436
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-26" name="__codelineno-10-26" href="#__codelineno-10-26"></a>
2437
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-27" name="__codelineno-10-27" href="#__codelineno-10-27"></a><span class="c1"># Self-registration at import time</span>
2438
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-10-28" name="__codelineno-10-28" href="#__codelineno-10-28"></a><span class="n">register_skill</span><span class="p">(</span><span class="n">YourSkill</span><span class="p">())</span>
2439
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</code></pre></div>
2440
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h3 id="registering-in-__init__py_1">Registering in <code>__init__.py</code><a class="headerlink" href="#registering-in-__init__py_1" title="Permanent link">¶</a></h3>
2441
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>Add the import to <code>video_processor/agent/skills/__init__.py</code> so the skill is loaded (and self-registered) when the skills package is imported:</p>
2442
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">video_processor.agent.skills</span><span class="w"> </span><span class="kn">import</span> <span class="p">(</span>
2443
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a> <span class="o">...</span>
2444
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a> <span class="n">your_skill</span><span class="p">,</span> <span class="c1"># noqa: F401</span>
2445
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a><span class="p">)</span>
2446
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</code></pre></div>
2447
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h2 id="adding-a-new-document-processor">Adding a new document processor<a class="headerlink" href="#adding-a-new-document-processor" title="Permanent link">¶</a></h2>
2448
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>Document processors extend the <code>DocumentProcessor</code> ABC from <code>video_processor/processors/base.py</code> and are registered via <code>register_processor()</code>.</p>
2449
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ol>
2450
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Create <code>video_processor/processors/your_processor.py</code></li>
2451
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Extend <code>DocumentProcessor</code></li>
2452
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Set <code>supported_extensions</code> class attribute</li>
2453
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Implement <code>process()</code> (returns <code>List[DocumentChunk]</code>) and <code>can_process()</code></li>
2454
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Call <code>register_processor()</code> at module level</li>
2455
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Add the import to <code>video_processor/processors/__init__.py</code></li>
2456
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Add tests</li>
2457
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ol>
2458
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h3 id="example-processor-skeleton">Example processor skeleton<a class="headerlink" href="#example-processor-skeleton" title="Permanent link">¶</a></h3>
2459
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="sd">"""Your document processor."""</span>
2460
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a>
2461
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-3" name="__codelineno-12-3" href="#__codelineno-12-3"></a><span class="kn">from</span><span class="w"> </span><span class="nn">pathlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">Path</span>
2462
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-4" name="__codelineno-12-4" href="#__codelineno-12-4"></a><span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">List</span>
2463
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-5" name="__codelineno-12-5" href="#__codelineno-12-5"></a>
2464
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-6" name="__codelineno-12-6" href="#__codelineno-12-6"></a><span class="kn">from</span><span class="w"> </span><span class="nn">video_processor.processors.base</span><span class="w"> </span><span class="kn">import</span> <span class="p">(</span>
2465
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-7" name="__codelineno-12-7" href="#__codelineno-12-7"></a> <span class="n">DocumentChunk</span><span class="p">,</span>
2466
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-8" name="__codelineno-12-8" href="#__codelineno-12-8"></a> <span class="n">DocumentProcessor</span><span class="p">,</span>
2467
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-9" name="__codelineno-12-9" href="#__codelineno-12-9"></a> <span class="n">register_processor</span><span class="p">,</span>
2468
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-10" name="__codelineno-12-10" href="#__codelineno-12-10"></a><span class="p">)</span>
2469
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-11" name="__codelineno-12-11" href="#__codelineno-12-11"></a>
2470
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-12" name="__codelineno-12-12" href="#__codelineno-12-12"></a>
2471
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-13" name="__codelineno-12-13" href="#__codelineno-12-13"></a><span class="k">class</span><span class="w"> </span><span class="nc">YourProcessor</span><span class="p">(</span><span class="n">DocumentProcessor</span><span class="p">):</span>
2472
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-14" name="__codelineno-12-14" href="#__codelineno-12-14"></a> <span class="n">supported_extensions</span> <span class="o">=</span> <span class="p">[</span><span class="s2">".xyz"</span><span class="p">,</span> <span class="s2">".abc"</span><span class="p">]</span>
2473
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-15" name="__codelineno-12-15" href="#__codelineno-12-15"></a>
2474
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-16" name="__codelineno-12-16" href="#__codelineno-12-16"></a> <span class="k">def</span><span class="w"> </span><span class="nf">can_process</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
2475
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-17" name="__codelineno-12-17" href="#__codelineno-12-17"></a> <span class="k">return</span> <span class="n">path</span><span class="o">.</span><span class="n">suffix</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">supported_extensions</span>
2476
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-18" name="__codelineno-12-18" href="#__codelineno-12-18"></a>
2477
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-19" name="__codelineno-12-19" href="#__codelineno-12-19"></a> <span class="k">def</span><span class="w"> </span><span class="nf">process</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-></span> <span class="n">List</span><span class="p">[</span><span class="n">DocumentChunk</span><span class="p">]:</span>
2478
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-20" name="__codelineno-12-20" href="#__codelineno-12-20"></a> <span class="n">text</span> <span class="o">=</span> <span class="n">path</span><span class="o">.</span><span class="n">read_text</span><span class="p">()</span>
2479
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-21" name="__codelineno-12-21" href="#__codelineno-12-21"></a> <span class="c1"># Split into chunks as appropriate for your format</span>
2480
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-22" name="__codelineno-12-22" href="#__codelineno-12-22"></a> <span class="k">return</span> <span class="p">[</span>
2481
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-23" name="__codelineno-12-23" href="#__codelineno-12-23"></a> <span class="n">DocumentChunk</span><span class="p">(</span>
2482
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-24" name="__codelineno-12-24" href="#__codelineno-12-24"></a> <span class="n">text</span><span class="o">=</span><span class="n">text</span><span class="p">,</span>
2483
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-25" name="__codelineno-12-25" href="#__codelineno-12-25"></a> <span class="n">source_file</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">path</span><span class="p">),</span>
2484
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-26" name="__codelineno-12-26" href="#__codelineno-12-26"></a> <span class="n">chunk_index</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
2485
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-27" name="__codelineno-12-27" href="#__codelineno-12-27"></a> <span class="n">metadata</span><span class="o">=</span><span class="p">{</span><span class="s2">"format"</span><span class="p">:</span> <span class="s2">"xyz"</span><span class="p">},</span>
2486
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-28" name="__codelineno-12-28" href="#__codelineno-12-28"></a> <span class="p">)</span>
2487
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-29" name="__codelineno-12-29" href="#__codelineno-12-29"></a> <span class="p">]</span>
2488
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-30" name="__codelineno-12-30" href="#__codelineno-12-30"></a>
2489
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-31" name="__codelineno-12-31" href="#__codelineno-12-31"></a>
2490
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-32" name="__codelineno-12-32" href="#__codelineno-12-32"></a><span class="c1"># Self-registration at import time</span>
2491
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-12-33" name="__codelineno-12-33" href="#__codelineno-12-33"></a><span class="n">register_processor</span><span class="p">([</span><span class="s2">".xyz"</span><span class="p">,</span> <span class="s2">".abc"</span><span class="p">],</span> <span class="n">YourProcessor</span><span class="p">)</span>
2492
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</code></pre></div>
2493
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h3 id="registering-in-__init__py_2">Registering in <code>__init__.py</code><a class="headerlink" href="#registering-in-__init__py_2" title="Permanent link">¶</a></h3>
2494
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>Add the import to <code>video_processor/processors/__init__.py</code>:</p>
2495
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">video_processor.processors</span><span class="w"> </span><span class="kn">import</span> <span class="p">(</span>
2496
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a> <span class="n">markdown_processor</span><span class="p">,</span> <span class="c1"># noqa: F401, E402</span>
2497
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a> <span class="n">pdf_processor</span><span class="p">,</span> <span class="c1"># noqa: F401, E402</span>
2498
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a> <span class="n">your_processor</span><span class="p">,</span> <span class="c1"># noqa: F401, E402</span>
2499
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-13-5" name="__codelineno-13-5" href="#__codelineno-13-5"></a><span class="p">)</span>
2500
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</code></pre></div>
2501
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h2 id="adding-a-new-exporter">Adding a new exporter<a class="headerlink" href="#adding-a-new-exporter" title="Permanent link">¶</a></h2>
2502
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>Exporters live in <code>video_processor/exporters/</code> and are typically called from CLI commands. There is no strict ABC for exporters -- they are plain functions that accept knowledge graph data and an output directory.</p>
2503
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<ol>
2504
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Create <code>video_processor/exporters/your_exporter.py</code></li>
2505
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Implement one or more export functions that accept KG data (as a dict) and an output path</li>
2506
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Add CLI integration in <code>video_processor/cli/commands.py</code> under the <code>export</code> group</li>
2507
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<li>Add tests</li>
2508
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</ol>
2509
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h3 id="example-exporter-skeleton">Example exporter skeleton<a class="headerlink" href="#example-exporter-skeleton" title="Permanent link">¶</a></h3>
2510
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="sd">"""Your exporter."""</span>
2511
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a>
2512
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a><span class="kn">import</span><span class="w"> </span><span class="nn">json</span>
2513
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a><span class="kn">from</span><span class="w"> </span><span class="nn">pathlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">Path</span>
2514
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-5" name="__codelineno-14-5" href="#__codelineno-14-5"></a><span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">List</span>
2515
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-6" name="__codelineno-14-6" href="#__codelineno-14-6"></a>
2516
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-7" name="__codelineno-14-7" href="#__codelineno-14-7"></a>
2517
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-8" name="__codelineno-14-8" href="#__codelineno-14-8"></a><span class="k">def</span><span class="w"> </span><span class="nf">export_your_format</span><span class="p">(</span><span class="n">kg_data</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span> <span class="n">output_dir</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-></span> <span class="n">List</span><span class="p">[</span><span class="n">Path</span><span class="p">]:</span>
2518
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-9" name="__codelineno-14-9" href="#__codelineno-14-9"></a><span class="w"> </span><span class="sd">"""Export knowledge graph data in your format.</span>
2519
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-10" name="__codelineno-14-10" href="#__codelineno-14-10"></a>
2520
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-11" name="__codelineno-14-11" href="#__codelineno-14-11"></a><span class="sd"> Args:</span>
2521
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-12" name="__codelineno-14-12" href="#__codelineno-14-12"></a><span class="sd"> kg_data: Knowledge graph as a dict (from KnowledgeGraph.to_dict()).</span>
2522
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-13" name="__codelineno-14-13" href="#__codelineno-14-13"></a><span class="sd"> output_dir: Directory to write output files.</span>
2523
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-14" name="__codelineno-14-14" href="#__codelineno-14-14"></a>
2524
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-15" name="__codelineno-14-15" href="#__codelineno-14-15"></a><span class="sd"> Returns:</span>
2525
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-16" name="__codelineno-14-16" href="#__codelineno-14-16"></a><span class="sd"> List of created file paths.</span>
2526
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-17" name="__codelineno-14-17" href="#__codelineno-14-17"></a><span class="sd"> """</span>
2527
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-18" name="__codelineno-14-18" href="#__codelineno-14-18"></a> <span class="n">output_dir</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">parents</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
2528
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-19" name="__codelineno-14-19" href="#__codelineno-14-19"></a> <span class="n">created</span> <span class="o">=</span> <span class="p">[]</span>
2529
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-20" name="__codelineno-14-20" href="#__codelineno-14-20"></a>
2530
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-21" name="__codelineno-14-21" href="#__codelineno-14-21"></a> <span class="n">output_file</span> <span class="o">=</span> <span class="n">output_dir</span> <span class="o">/</span> <span class="s2">"export.xyz"</span>
2531
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-22" name="__codelineno-14-22" href="#__codelineno-14-22"></a> <span class="n">output_file</span><span class="o">.</span><span class="n">write_text</span><span class="p">(</span><span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">kg_data</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">2</span><span class="p">))</span>
2532
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-23" name="__codelineno-14-23" href="#__codelineno-14-23"></a> <span class="n">created</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">output_file</span><span class="p">)</span>
2533
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-24" name="__codelineno-14-24" href="#__codelineno-14-24"></a>
2534
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-14-25" name="__codelineno-14-25" href="#__codelineno-14-25"></a> <span class="k">return</span> <span class="n">created</span>
2535
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</code></pre></div>
2536
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h3 id="adding-the-cli-command">Adding the CLI command<a class="headerlink" href="#adding-the-cli-command" title="Permanent link">¶</a></h3>
2537
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>Add a subcommand under the <code>export</code> group in <code>video_processor/cli/commands.py</code>:</p>
2538
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a><span class="nd">@export</span><span class="o">.</span><span class="n">command</span><span class="p">(</span><span class="s2">"your-format"</span><span class="p">)</span>
2539
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a><span class="nd">@click</span><span class="o">.</span><span class="n">argument</span><span class="p">(</span><span class="s2">"db_path"</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="n">click</span><span class="o">.</span><span class="n">Path</span><span class="p">(</span><span class="n">exists</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span>
2540
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a><span class="nd">@click</span><span class="o">.</span><span class="n">option</span><span class="p">(</span><span class="s2">"-o"</span><span class="p">,</span> <span class="s2">"--output"</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="n">click</span><span class="o">.</span><span class="n">Path</span><span class="p">(),</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
2541
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a><span class="k">def</span><span class="w"> </span><span class="nf">export_your_format_cmd</span><span class="p">(</span><span class="n">db_path</span><span class="p">,</span> <span class="n">output</span><span class="p">):</span>
2542
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-15-5" name="__codelineno-15-5" href="#__codelineno-15-5"></a><span class="w"> </span><span class="sd">"""Export knowledge graph in your format."""</span>
2543
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-15-6" name="__codelineno-15-6" href="#__codelineno-15-6"></a> <span class="kn">from</span><span class="w"> </span><span class="nn">video_processor.exporters.your_exporter</span><span class="w"> </span><span class="kn">import</span> <span class="n">export_your_format</span>
2544
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-15-7" name="__codelineno-15-7" href="#__codelineno-15-7"></a> <span class="kn">from</span><span class="w"> </span><span class="nn">video_processor.integrators.knowledge_graph</span><span class="w"> </span><span class="kn">import</span> <span class="n">KnowledgeGraph</span>
2545
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-15-8" name="__codelineno-15-8" href="#__codelineno-15-8"></a>
2546
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-15-9" name="__codelineno-15-9" href="#__codelineno-15-9"></a> <span class="n">kg</span> <span class="o">=</span> <span class="n">KnowledgeGraph</span><span class="p">(</span><span class="n">db_path</span><span class="o">=</span><span class="n">Path</span><span class="p">(</span><span class="n">db_path</span><span class="p">))</span>
2547
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-15-10" name="__codelineno-15-10" href="#__codelineno-15-10"></a> <span class="n">out_dir</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="n">output</span><span class="p">)</span> <span class="k">if</span> <span class="n">output</span> <span class="k">else</span> <span class="n">Path</span><span class="o">.</span><span class="n">cwd</span><span class="p">()</span> <span class="o">/</span> <span class="s2">"your-export"</span>
2548
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-15-11" name="__codelineno-15-11" href="#__codelineno-15-11"></a> <span class="n">created</span> <span class="o">=</span> <span class="n">export_your_format</span><span class="p">(</span><span class="n">kg</span><span class="o">.</span><span class="n">to_dict</span><span class="p">(),</span> <span class="n">out_dir</span><span class="p">)</span>
2549
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a id="__codelineno-15-12" name="__codelineno-15-12" href="#__codelineno-15-12"></a> <span class="n">click</span><span class="o">.</span><span class="n">echo</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Exported </span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">created</span><span class="p">)</span><span class="si">}</span><span class="s2"> files to </span><span class="si">{</span><span class="n">out_dir</span><span class="si">}</span><span class="s2">/"</span><span class="p">)</span>
2550
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</code></pre></div>
2551
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<h2 id="license">License<a class="headerlink" href="#license" title="Permanent link">¶</a></h2>
2552
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<p>MIT License -- Copyright (c) 2026 CONFLICT LLC. All rights reserved.</p>
2553
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2554
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2555
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2556
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2557
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2558
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2559
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2560
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2561
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2562
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2563
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2564
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2565
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2566
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</article>
2567
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
2568
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2569
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2570
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
2571
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2572
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
2573
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
2574
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2575
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
2576
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2577
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
2578
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Back to top
2579
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</button>
2580
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2581
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</main>
2582
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2583
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<footer class="md-footer">
2584
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2585
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-footer-meta md-typeset">
2586
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-footer-meta__inner md-grid">
2587
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-copyright">
2588
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2589
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-copyright__highlight">
2590
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Copyright © 2026 CONFLICT LLC
2591
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
2592
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2593
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2594
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Made with
2595
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2596
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Material for MkDocs
2597
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
2598
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2599
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
2600
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2601
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2602
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-social">
2603
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2604
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2605
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2606
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2607
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2608
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2609
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2610
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2611
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<a href="https://github.com/ConflictHQ/PlanOpticon" target="_blank" rel="noopener" title="github.com" class="md-social__link">
2612
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 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="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
2613
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</a>
2614
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2615
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
2616
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2617
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
2618
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
2619
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</footer>
2620
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2621
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
2622
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-dialog" data-md-component="dialog">
2623
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<div class="md-dialog__inner md-typeset"></div>
2624
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</div>
2625
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2626
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2627
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2628
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2629
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2630
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["navigation.instant", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.copy", "content.tabs.link", "header.autohide"], "search": "../assets/javascripts/workers/search.2c215733.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>
2631
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2632
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2633
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
<script src="../assets/javascripts/bundle.79ae519e.min.js"></script>
2634
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2635
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2636
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</body>
2637
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
</html>