agent-docs-kit 2.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. agent_docs_kit-2.1.0.dist-info/METADATA +299 -0
  2. agent_docs_kit-2.1.0.dist-info/RECORD +40 -0
  3. agent_docs_kit-2.1.0.dist-info/WHEEL +4 -0
  4. agent_docs_kit-2.1.0.dist-info/entry_points.txt +3 -0
  5. agent_docs_kit-2.1.0.dist-info/licenses/LICENSE +21 -0
  6. living_docs_cli/__init__.py +686 -0
  7. living_docs_cli/__main__.py +3 -0
  8. living_docs_cli/assets/fumadocs-starter/app/docs/[[...slug]]/page.tsx +44 -0
  9. living_docs_cli/assets/fumadocs-starter/app/docs/layout.tsx +12 -0
  10. living_docs_cli/assets/fumadocs-starter/app/global.css +450 -0
  11. living_docs_cli/assets/fumadocs-starter/app/layout.tsx +15 -0
  12. living_docs_cli/assets/fumadocs-starter/app/page.tsx +5 -0
  13. living_docs_cli/assets/fumadocs-starter/components/living-docs/index.tsx +185 -0
  14. living_docs_cli/assets/fumadocs-starter/components/mdx.tsx +27 -0
  15. living_docs_cli/assets/fumadocs-starter/content/docs/architecture.mdx +55 -0
  16. living_docs_cli/assets/fumadocs-starter/content/docs/components.mdx +132 -0
  17. living_docs_cli/assets/fumadocs-starter/content/docs/glossary.mdx +16 -0
  18. living_docs_cli/assets/fumadocs-starter/content/docs/index.mdx +72 -0
  19. living_docs_cli/assets/fumadocs-starter/content/docs/meta.json +4 -0
  20. living_docs_cli/assets/fumadocs-starter/lib/layout.shared.ts +7 -0
  21. living_docs_cli/assets/fumadocs-starter/lib/source.ts +7 -0
  22. living_docs_cli/assets/fumadocs-starter/next-env.d.ts +4 -0
  23. living_docs_cli/assets/fumadocs-starter/next.config.mjs +10 -0
  24. living_docs_cli/assets/fumadocs-starter/package.json +27 -0
  25. living_docs_cli/assets/fumadocs-starter/source.config.ts +34 -0
  26. living_docs_cli/assets/fumadocs-starter/tsconfig.json +23 -0
  27. living_docs_cli/assets/project/.living-docs/scripts/check.mjs +72 -0
  28. living_docs_cli/assets/project/.living-docs/scripts/create-doc.mjs +88 -0
  29. living_docs_cli/assets/project/.living-docs/scripts/glossary.mjs +107 -0
  30. living_docs_cli/assets/project/.living-docs/templates/architecture.mdx +51 -0
  31. living_docs_cli/assets/project/.living-docs/templates/change.mdx +40 -0
  32. living_docs_cli/assets/project/.living-docs/templates/glossary.mdx +15 -0
  33. living_docs_cli/assets/project/.living-docs/templates/plan.mdx +54 -0
  34. living_docs_cli/assets/styles/atlas.css +450 -0
  35. living_docs_cli/assets/workflow-skills/living-docs-architecture/SKILL.md +55 -0
  36. living_docs_cli/assets/workflow-skills/living-docs-change/SKILL.md +62 -0
  37. living_docs_cli/assets/workflow-skills/living-docs-check/SKILL.md +32 -0
  38. living_docs_cli/assets/workflow-skills/living-docs-glossary/SKILL.md +30 -0
  39. living_docs_cli/assets/workflow-skills/living-docs-plan/SKILL.md +55 -0
  40. living_docs_cli/assets/workflow-skills/living-docs-write/SKILL.md +46 -0
@@ -0,0 +1,299 @@
1
+ Metadata-Version: 2.4
2
+ Name: agent-docs-kit
3
+ Version: 2.1.0
4
+ Summary: Bootstrap and maintain a Fumadocs-powered MDX documentation system with agent skills, reusable templates, and validation.
5
+ Project-URL: Homepage, https://github.com/wuyuxiangX/agent-docs-kit
6
+ Project-URL: Repository, https://github.com/wuyuxiangX/agent-docs-kit
7
+ Project-URL: Issues, https://github.com/wuyuxiangX/agent-docs-kit/issues
8
+ Author: wuyuxiangX
9
+ License: MIT
10
+ License-File: LICENSE
11
+ Keywords: agent-skill,claude-code,codex,cursor,documentation,fumadocs,gemini-cli,mdx
12
+ Requires-Python: >=3.10
13
+ Description-Content-Type: text/markdown
14
+
15
+ # agent-docs-kit
16
+
17
+ Generic documentation system for agent-assisted projects.
18
+
19
+ agent-docs-kit bootstraps a Fumadocs + MDX documentation app, project-local scaffolding scripts, reusable MDX templates, and agent skills for Codex, Claude Code, Copilot, Cursor, Gemini CLI, or a generic agent directory.
20
+
21
+ agent-docs-kit is skills-first. It installs `SKILL.md` workflow skills into the
22
+ target project instead of installing slash-command prompt files.
23
+
24
+ The model follows the same separation that makes tools like Spec Kit scale:
25
+
26
+ - **CLI**: install and manage the documentation system.
27
+ - **Project infra**: keep config, templates, scripts, and validation inside the repo.
28
+ - **Agent skills**: handle day-to-day authoring workflows.
29
+ - **Fumadocs**: render and organize the docs site.
30
+
31
+ The CLI is a small Python bootstrapper so it can be run with `uvx` without
32
+ requiring Node in the source package. The generated documentation app is still
33
+ Node/Fumadocs: after init, previewing, type-checking, and building docs happens
34
+ inside the generated `docs/` app with npm.
35
+
36
+ ## Install
37
+
38
+ One-time usage:
39
+
40
+ ```bash
41
+ uvx agent-docs-kit init
42
+ ```
43
+
44
+ Persistent install:
45
+
46
+ ```bash
47
+ uv tool install agent-docs-kit
48
+ agent-docs-kit init
49
+ ```
50
+
51
+ The PyPI distribution is named `agent-docs-kit` because `living-docs` is blocked
52
+ by PyPI's project-name similarity checks. It still installs both CLI commands:
53
+ `agent-docs-kit` and `living-docs`.
54
+
55
+ `agent-docs-kit init` is interactive in a terminal:
56
+
57
+ ```text
58
+ ? Target project [.]:
59
+ ? Docs directory [docs]:
60
+ ? Agent integrations
61
+ 1. codex - Codex (default)
62
+ 2. claude - Claude Code
63
+ 3. copilot - GitHub Copilot
64
+ 4. cursor - Cursor
65
+ 5. gemini - Gemini CLI
66
+ 6. generic - Generic
67
+ Enter names or numbers separated by commas, or 'all'.
68
+ Selection [codex]:
69
+ ? Style [atlas]:
70
+ ? Overwrite existing managed files if needed? [y/N]:
71
+ ```
72
+
73
+ Use explicit flags for scripts or CI:
74
+
75
+ ```bash
76
+ agent-docs-kit init . --integration codex
77
+ agent-docs-kit init . --integration codex --integration claude --integration copilot
78
+ agent-docs-kit init . --integration codex --integration cursor --integration gemini
79
+ agent-docs-kit init . --integration codex --docs-dir docs --style atlas --yes
80
+ ```
81
+
82
+ The starter uses the `atlas` style by default:
83
+
84
+ ```bash
85
+ agent-docs-kit init . --style atlas --interactive
86
+ agent-docs-kit styles
87
+ ```
88
+
89
+ ## Supported Agent Platforms
90
+
91
+ living-docs installs the same workflow skills into the best available
92
+ instruction surface for each agent. Native skill platforms get direct skill
93
+ folders; other agents get portable `SKILL.md` workflow files plus a project
94
+ context file that points to them.
95
+
96
+ | Integration | Context file | Workflow files |
97
+ | --- | --- | --- |
98
+ | `codex` | `AGENTS.md` | `.agents/skills/living-docs-*` |
99
+ | `claude` | `CLAUDE.md` | `.claude/skills/living-docs-*` |
100
+ | `copilot` | `.github/copilot-instructions.md` | `.github/skills/living-docs-*` |
101
+ | `cursor` | `.cursor/rules/living-docs.mdc` | `.living-docs/skills/living-docs-*` |
102
+ | `gemini` | `GEMINI.md` | `.living-docs/skills/living-docs-*` |
103
+ | `generic` | `.living-docs/AGENT_CONTEXT.md` | `.living-docs/skills/living-docs-*` |
104
+
105
+ You can repeat `--integration` to install several surfaces in one project.
106
+ `cursor`, `gemini`, and `generic` share `.living-docs/skills`, so a project can
107
+ support multiple agents without duplicating the portable workflow files.
108
+
109
+ ## User Paths
110
+
111
+ There is one bootstrap path: install the CLI, then run `agent-docs-kit init` or
112
+ `living-docs init` in the target project. The project-local skills are generated
113
+ during init.
114
+
115
+ ```text
116
+ <project>/.living-docs/
117
+ <project>/docs/
118
+ <project>/.agents/skills/living-docs-* # Codex integration
119
+ <project>/.claude/skills/living-docs-* # Claude integration
120
+ <project>/.github/skills/living-docs-* # Copilot integration
121
+ <project>/.cursor/rules/living-docs.mdc # Cursor integration
122
+ <project>/GEMINI.md # Gemini CLI integration
123
+ <project>/.living-docs/skills/living-docs-* # Portable workflows
124
+ ```
125
+
126
+ The per-project workflow skills live in the CLI assets under
127
+ `src/living_docs_cli/assets/workflow-skills/` and are copied into each target
128
+ project during `init`, so they can use that project's
129
+ `.living-docs/config.json`, templates, scripts, and context file. There is no
130
+ separate global `living-docs` helper skill.
131
+
132
+ ## What Init Creates
133
+
134
+ ```text
135
+ .living-docs/
136
+ config.json
137
+ templates/
138
+ architecture.mdx
139
+ change.mdx
140
+ plan.mdx
141
+ glossary.mdx
142
+ scripts/
143
+ create-doc.mjs
144
+ glossary.mjs
145
+ check.mjs
146
+
147
+ docs/
148
+ app/
149
+ components/
150
+ content/docs/
151
+ lib/
152
+ package.json
153
+ source.config.ts
154
+
155
+ .agents/skills/ # codex integration
156
+ .claude/skills/ # claude integration
157
+ .github/skills/ # copilot skills mode
158
+ .cursor/rules/living-docs.mdc # cursor integration
159
+ GEMINI.md # gemini integration
160
+ .living-docs/skills/ # portable workflow skills
161
+ AGENTS.md / CLAUDE.md / ... # managed living-docs context block
162
+ ```
163
+
164
+ The managed context block is bounded by:
165
+
166
+ ```markdown
167
+ <!-- LIVING-DOCS START -->
168
+ ...
169
+ <!-- LIVING-DOCS END -->
170
+ ```
171
+
172
+ Re-running init replaces only that block and preserves surrounding project instructions.
173
+
174
+ ## Day-to-Day Workflow
175
+
176
+ Use generated skills from your agent:
177
+
178
+ - `living-docs-write` for routing a general docs request to the right workflow
179
+ - `living-docs-architecture` for current architecture docs
180
+ - `living-docs-change` for shipped change records
181
+ - `living-docs-plan` for future design plans
182
+ - `living-docs-glossary` after terms change
183
+ - `living-docs-check` before committing docs changes
184
+
185
+ The skills call project-local scripts:
186
+
187
+ ```bash
188
+ node .living-docs/scripts/create-doc.mjs change api auth-flow "Auth Flow Update"
189
+ node .living-docs/scripts/glossary.mjs
190
+ node .living-docs/scripts/check.mjs
191
+ ```
192
+
193
+ ## MDX Components
194
+
195
+ living-docs ships reusable MDX components in the generated Fumadocs app. Use
196
+ them directly in `.mdx` pages:
197
+
198
+ ```mdx
199
+ <ArchMap
200
+ tiers={[
201
+ {
202
+ title: 'Entry points',
203
+ boxes: [
204
+ { title: 'Web app', body: 'User-facing route.', tone: 'blue' },
205
+ { title: 'API', body: 'Server boundary.', tone: 'green' },
206
+ ],
207
+ },
208
+ ]}
209
+ />
210
+
211
+ <FlowSteps
212
+ title="Request flow"
213
+ steps={[
214
+ { title: 'Receive input', body: 'Validate payload.', tone: 'blue' },
215
+ { title: 'Run service', body: 'Execute domain action.', tone: 'green' },
216
+ { title: 'Return result', body: 'Send status and telemetry.', tone: 'amber' },
217
+ ]}
218
+ />
219
+
220
+ <StateFlow
221
+ title="Lifecycle"
222
+ states={[
223
+ { name: 'draft', description: 'Work in progress.', tone: 'amber' },
224
+ { name: 'active', description: 'Current runtime truth.', tone: 'green' },
225
+ ]}
226
+ />
227
+ ```
228
+
229
+ The generated docs include `/docs/components` with copyable examples. Use
230
+ mermaid for complex sequence diagrams, branches, or graphs that do not fit the
231
+ built-in components.
232
+
233
+ The global CLI can also validate the project:
234
+
235
+ ```bash
236
+ agent-docs-kit check
237
+ ```
238
+
239
+ ## Run the Docs Site
240
+
241
+ ```bash
242
+ cd docs
243
+ npm install
244
+ npm run dev -- --port 3333
245
+ ```
246
+
247
+ Fumadocs reads MDX from `docs/content/docs`.
248
+
249
+ ## Publish to PyPI
250
+
251
+ Releases are published from GitHub Actions with PyPI Trusted Publishing. This
252
+ avoids long-lived PyPI API tokens in the repository or on a local machine.
253
+
254
+ One-time PyPI setup for a new package:
255
+
256
+ 1. Open <https://pypi.org/manage/account/publishing/>.
257
+ 2. Add a pending GitHub Actions publisher with:
258
+ - PyPI project name: `agent-docs-kit`
259
+ - Owner: `wuyuxiangX`
260
+ - Repository name: `agent-docs-kit`
261
+ - Workflow filename: `publish.yml`
262
+ - Environment name: `pypi`
263
+
264
+ After that, publish a release by tagging the commit:
265
+
266
+ ```bash
267
+ git tag -a v2.1.0 -m v2.1.0
268
+ git push origin v2.1.0
269
+ ```
270
+
271
+ The workflow builds the Python package with `uv build` and uploads the
272
+ distribution files to PyPI.
273
+
274
+ ## Authoring Contract
275
+
276
+ - MDX is the source of truth.
277
+ - Architecture pages describe current state.
278
+ - Change pages are immutable records of shipped changes.
279
+ - Plan pages describe future intent.
280
+ - Glossary pages are generated from frontmatter `terms`.
281
+ - Architecture and change pages should include `<ArchMap />` or mermaid diagrams.
282
+ - Validation must pass before treating docs work as complete.
283
+
284
+ ## CLI
285
+
286
+ ```bash
287
+ agent-docs-kit init
288
+ agent-docs-kit init [target] [--integration codex|claude|copilot|cursor|gemini|generic] [--docs-dir docs] [--force] [--yes]
289
+ agent-docs-kit init . --style atlas --interactive
290
+ agent-docs-kit check
291
+ agent-docs-kit skills
292
+ agent-docs-kit styles
293
+ agent-docs-kit version
294
+ agent-docs-kit self check
295
+ ```
296
+
297
+ ## License
298
+
299
+ MIT
@@ -0,0 +1,40 @@
1
+ living_docs_cli/__init__.py,sha256=Gnhcs3SmrlMRy1B3heuZaVBd4A2HLt5IPWTHltwifjA,23369
2
+ living_docs_cli/__main__.py,sha256=BHLi_-4Bx1gsZn-z6x7wECPn1YTxdc74y0deRea9FzY,45
3
+ living_docs_cli/assets/fumadocs-starter/next-env.d.ts,sha256=ZKQGWvpNaFqWbbLMEe7fYnxO1GxXSXh-WpgyuI1Q98E,162
4
+ living_docs_cli/assets/fumadocs-starter/next.config.mjs,sha256=hquKWP-jR9QLQqzHD-eL-il7fqcNGOhM8f0fsjZ5XVU,197
5
+ living_docs_cli/assets/fumadocs-starter/package.json,sha256=9yizibyn2QYiQBzPVVdTjtFRGXePUE1pq_0_HG6gbMc,696
6
+ living_docs_cli/assets/fumadocs-starter/source.config.ts,sha256=WyLbqFXAA470oFmNNb1QR4xiwgvdSXXmEiikSBsr2YM,899
7
+ living_docs_cli/assets/fumadocs-starter/tsconfig.json,sha256=a7RntfVxJH6gd1yy34jQT5VkAzmW5xKXXUaxsVkMOBI,620
8
+ living_docs_cli/assets/fumadocs-starter/app/global.css,sha256=Cp1tjlk-cSC7PziA_BeFh31Gitk0VObD49ahxp0uSH0,9047
9
+ living_docs_cli/assets/fumadocs-starter/app/layout.tsx,sha256=uZ1HW8xPJWBiCDA2O-iOExLLe6euZqNKJEgxogto-s0,421
10
+ living_docs_cli/assets/fumadocs-starter/app/page.tsx,sha256=MGHW17o4RHIYik5UHgtO-GthC7--eRD-3sv6O_wbit4,101
11
+ living_docs_cli/assets/fumadocs-starter/app/docs/layout.tsx,sha256=lyYhq0gZhkhXQyWX3k-bAnvXPt8OWPQTUg18I20EqcU,373
12
+ living_docs_cli/assets/fumadocs-starter/app/docs/[[...slug]]/page.tsx,sha256=qvA4ZAg4L4K1ndRkDlEOwLjOfp2zU0D0DYt790C-_xA,1154
13
+ living_docs_cli/assets/fumadocs-starter/components/mdx.tsx,sha256=Ucuft0M4hot_f7yDF3vmLxTfOAIjUDtUfxJ4oUtSWpA,528
14
+ living_docs_cli/assets/fumadocs-starter/components/living-docs/index.tsx,sha256=iMMzcWjZI6aHE-4uZsK6e26Lia4MLbXGHJfY9FvgU1A,4502
15
+ living_docs_cli/assets/fumadocs-starter/content/docs/architecture.mdx,sha256=N3GqOYJMZi3xU2nUGBum0YkiFEGHtqOzivCmtjZbEbk,1770
16
+ living_docs_cli/assets/fumadocs-starter/content/docs/components.mdx,sha256=YNFle2bTM0gEdmDG5JNwbndFg79hQQ7icwK9b-p6Sis,3504
17
+ living_docs_cli/assets/fumadocs-starter/content/docs/glossary.mdx,sha256=ATnT5uuY_uHU0W8ulqy5kKE2FyP1XxcZFBGOvgqTiY8,507
18
+ living_docs_cli/assets/fumadocs-starter/content/docs/index.mdx,sha256=vJ8rR9T5Fvl3d1aWg4tNo0ycw2AuZyBBQbck3k0CG0Q,2161
19
+ living_docs_cli/assets/fumadocs-starter/content/docs/meta.json,sha256=sC1nglt73mdoQxGtwA_RXhUnTICbHlTCopSHV7vQjZ0,105
20
+ living_docs_cli/assets/fumadocs-starter/lib/layout.shared.ts,sha256=xpQG4CPwnA5En--3PdIu0Hbva3-PmPbjcSM7ltNSLGA,167
21
+ living_docs_cli/assets/fumadocs-starter/lib/source.ts,sha256=92jkBLQNoqj_ofE-hSgVjmOqyx-iqC_afU4QqUTQZ5I,179
22
+ living_docs_cli/assets/project/.living-docs/scripts/check.mjs,sha256=zNSEByP-SkpgyZagiGIT8VAgwqFwhsHI2dPuw4UFoOs,2758
23
+ living_docs_cli/assets/project/.living-docs/scripts/create-doc.mjs,sha256=f_VkApa-yg27C0CYpk7Lq8_eBKlBezXiUqb1UMgfuk8,2506
24
+ living_docs_cli/assets/project/.living-docs/scripts/glossary.mjs,sha256=j7T-qTjjwuKl7fkU6BhnrdJUNkDMeog8CZODBouxnrw,3102
25
+ living_docs_cli/assets/project/.living-docs/templates/architecture.mdx,sha256=TUcVbKVb7L1xsheJMEZDnWaaYub2urowBJOFC1ZhfVo,1326
26
+ living_docs_cli/assets/project/.living-docs/templates/change.mdx,sha256=5zpe5MPVFySIjGy0xUxb9RVJGLU9jSCSLYhgOmdAp6Y,976
27
+ living_docs_cli/assets/project/.living-docs/templates/glossary.mdx,sha256=B5RL9AdnsBFDazgBDTRpcRcyn8OQHGwD6B9lQNXqj4Y,243
28
+ living_docs_cli/assets/project/.living-docs/templates/plan.mdx,sha256=7cLf5BAbPVcAErhxgaSnNHKLL8y5JtZU5Wd4ZlItAAE,1051
29
+ living_docs_cli/assets/styles/atlas.css,sha256=Cp1tjlk-cSC7PziA_BeFh31Gitk0VObD49ahxp0uSH0,9047
30
+ living_docs_cli/assets/workflow-skills/living-docs-architecture/SKILL.md,sha256=kWd2rTEveuGbKkqJzZ_7JmjpFLwg1HQg27gKC85uFH0,2501
31
+ living_docs_cli/assets/workflow-skills/living-docs-change/SKILL.md,sha256=ageFcLJwvGH0tp90uihG8XVIM3_3YQjEFvZlRm0I7wk,2617
32
+ living_docs_cli/assets/workflow-skills/living-docs-check/SKILL.md,sha256=vhxGFUchu2zxyUEyFcOKddg54x-dl8_jSMhzqSs0thI,1020
33
+ living_docs_cli/assets/workflow-skills/living-docs-glossary/SKILL.md,sha256=6gKFKCiE6X5kO-scT6yzu76AF2Jmgr--kGldXaMNiGU,1199
34
+ living_docs_cli/assets/workflow-skills/living-docs-plan/SKILL.md,sha256=IU-HArhu-TXXIBAl8Wr5YA8s-C3tefLdwMye43aY-xs,2127
35
+ living_docs_cli/assets/workflow-skills/living-docs-write/SKILL.md,sha256=EUHqdK7iU-wvaJVts6wqrBOqmZq0NOxsOTRQfY5yNTQ,2464
36
+ agent_docs_kit-2.1.0.dist-info/METADATA,sha256=Ac-gn0_IGrjYxYT1JPHARizmBQjisYhxNzawNDW1xd4,9062
37
+ agent_docs_kit-2.1.0.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
38
+ agent_docs_kit-2.1.0.dist-info/entry_points.txt,sha256=1flk6-L52iqVdUjTg_HvMazhjiX0m3qwGmPnJjwMh2Q,91
39
+ agent_docs_kit-2.1.0.dist-info/licenses/LICENSE,sha256=Py0BAl8q5A9tNfHCkGAWM53xzNttHxAsGtvzNNudezI,1067
40
+ agent_docs_kit-2.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.30.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ agent-docs-kit = living_docs_cli:main
3
+ living-docs = living_docs_cli:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 wuyuxiangX
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.