akm-cli 0.5.0-rc1 → 0.5.0-rc3

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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,232 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
+
7
+ ## [Unreleased]
8
+
9
+ ## [0.5.0] - 2026-04-22
10
+
11
+ ### Added
12
+
13
+ - **Multi-wiki support** (#119, #121): new `wiki` asset type with nine CLI verbs under `akm wiki …` (`create`, `list`, `show`, `remove`, `pages`, `search`, `stash`, `lint`, `ingest`). Each wiki lives at `<stashDir>/wikis/<name>/` with `schema.md`, `index.md`, `log.md`, `raw/`, and agent-authored pages. Wiki pages are first-class in stash-wide `akm search`. `akm index` regenerates each wiki's `index.md` as a side effect. See `docs/wikis.md` for the full guide. Design principle: **akm surfaces, the agent writes** — no LLM calls, no network access; akm owns only operations with invariants an agent can't reliably enforce (lifecycle, raw-slug uniqueness, structural lint, index regeneration, workflow discovery).
14
+ - **Workflow asset type** (#118): new `workflow` type with `akm workflow create <name>` and `akm workflow next <ref>` for authoring and stepping through multi-step workflows stored in the stash
15
+ - **Vault asset type** (#117): new `vault` type backed by `.env` files; `akm vault` subcommand with `list`, `show`, `load` (emits a `source` snippet for the current shell); values never appear in structured output
16
+ - **`--trust` flag for installs**: `akm add <source> --trust` performs a one-off trusted install, bypassing the install audit for that source
17
+ - **Writable git stash + `akm save`** (#114): `akm add … --writable` opts a remote git-backed stash into push-on-save; `akm save [name] [-m message]` commits (and pushes when writable + remote is set); default stash is auto-initialized as a git repo; git stash provider now uses `git clone` instead of HTTP tarball download
18
+
19
+ ### Removed (breaking)
20
+
21
+ - The unreleased single-wiki LLM POC: removes `akm lint` command, `akm import --llm` / `--dry-run` flags, `knowledge.pageKinds` config, and the `ingestKnowledgeSource` / `lintKnowledge` LLM prompts. Users of the POC should migrate to the new `akm wiki …` surface; raw content can be manually moved to `wikis/<name>/raw/`.
22
+
23
+ ## [0.4.1] - 2026-04-21
24
+
25
+ ### Added
26
+
27
+ - **`akm enable` / `akm disable`** (#108): toggle optional components (`skills.sh`, `context-hub`) on/off without manually editing config
28
+ - **`akm remember` and `akm import` commands** (#110): capture in-session knowledge directly from the CLI; `akm remember` records a memory to the default stash (supports stdin); `akm import` ingests a file or stdin as a knowledge asset
29
+ - **Karpathy-style wiki workflow in knowledge assets** (#113): `akm show knowledge:<doc>` now surfaces an `ingest` workflow for knowledge documents; `--dry-run` flag added; `pageKind` taxonomy made extensible
30
+ - Documentation: expanded `agent-install.md`, added `info` and `feedback` command docs, global flags reference (#106)
31
+
32
+ ### Fixed
33
+
34
+ - Remote embedding endpoint URL normalization — trailing slashes and path segments now handled correctly (#112)
35
+ - Reduced fallback capture-name collisions in `akm remember`
36
+
37
+ ## [0.4.0] - 2026-04-19
38
+
39
+ ### Added
40
+
41
+ - **Install security audit**: new pre-install scanner inspects kit contents for dangerous patterns and executable scripts before install; configurable via `config` CLI
42
+ - **Project-level config stash merging**: `.akm.json` in a project directory merges its stash/registry entries with user config during CLI runs
43
+ - **Disable inherited project stashes**: project config can disable stashes inherited from parent/user scopes
44
+ - **`akm curate` command**: new subcommand for curating assets from the stash (initial skeleton)
45
+
46
+ ### Fixed
47
+
48
+ - Index nested agent markdown files as agents so `akm search agent:...` finds them
49
+ - `install-audit` now reads at most `MAX_SCANNED_FILE_BYTES` per file using `Buffer.alloc`, with the file descriptor always closed via `try/finally`, and corrects the `scannedBytes` counter
50
+
51
+ ## [0.3.1] - 2026-04-01
52
+
53
+ ### Added
54
+
55
+ - **Website stash provider**: add a URL directly as a stash source with `akm stash add <url>`; crawls the site and indexes pages as knowledge assets
56
+ - Website provider options: `--max-pages` and `--depth` flags to bound crawling
57
+
58
+ ### Fixed
59
+
60
+ - Relaxed HTTP warnings for localhost website sources
61
+ - Addressed review feedback around website provider routing and security heuristics
62
+
63
+ ## [0.3.0] - 2026-03-30
64
+
65
+ ### Added
66
+
67
+ - Regression tests for vector/semantic search readiness, install, and setup flows
68
+ - `CONTRIBUTING.md` and "Why akm" section in documentation
69
+ - Three draft SEO blog posts
70
+
71
+ ### Changed
72
+
73
+ - **Unified source model**: replaced the `kit` vs `stash` split with a single source concept; `akm add` works for all source types
74
+ - Removed `stash` and `kit` subcommand groups; their behaviors fold into the top-level CLI (`akm list`, `akm add`, etc.)
75
+ - Refactored semantic search readiness tracking for clearer state transitions
76
+ - Aligned documentation voice and updated older posts for the current CLI surface
77
+
78
+ ### Fixed
79
+
80
+ - Embedding fingerprint is purged on model change and `usage_events` are re-linked correctly
81
+ - Local embedder dtype selection
82
+ - Release validation workflow
83
+ - Prereleases (versions with suffixes) are marked as such on GitHub releases and published to npm with `--tag next`
84
+
85
+ ## [0.2.2] - 2026-03-28
86
+
87
+ ### Fixed
88
+
89
+ - Binary install detection in `akm upgrade` self-update; centralized `AKM_VERSION` declaration with binary detection tests
90
+
91
+ ## [0.2.1] - 2026-03-25
92
+
93
+ ### Added
94
+
95
+ - Docker-based install tests covering multiple OS configurations (skipped in CI)
96
+ - Detailed error reporting in embedding availability checks
97
+ - Actionable guidance when `sqlite-vec` fails to open the DB
98
+
99
+ ### Changed
100
+
101
+ - **Rename**: project renamed from `Agent-i-Kit` to `akm` across docs and links
102
+ - Local embeddings switched to `@huggingface/transformers`
103
+ - `@huggingface/transformers` moved to `optionalDependencies`, then promoted to a runtime dependency
104
+ - Improved semantic search setup and index UX
105
+
106
+ ## [0.2.0] - 2026-03-18
107
+
108
+ ### Added
109
+
110
+ - **Extensible asset type system**: `AkmAssetType` (formerly `AgentIKitAssetType`) is now `string` instead of a fixed union; new types can be registered at runtime via `registerAssetType()`
111
+ - **Memory asset type**: built-in `memory` type stored in `memories/`, with `memory-md` renderer and directory/parent-dir-hint matchers
112
+ - **OpenViking stash provider**: `openviking` provider type for searching OpenViking servers via REST; add with `akm stash add <url> --provider openviking`
113
+ - **Remote show for `viking://` URIs**: `akm show viking://resources/my-doc` fetches content directly from an OpenViking server (returns `editable: false`)
114
+ - **`--options` flag** for `akm registry add` and `akm stash add`: pass provider-specific JSON config (e.g., `--options '{"apiKey":"key"}'`)
115
+ - **`akm registry build-index` command**: generates a v2 registry index JSON from npm/GitHub discovery with `--out`, `--manual`, `--npmRegistry`, `--githubApi`, and `--format` flags
116
+ - Exact-name match, type-relevance, and alias boosts in the search scoring pipeline
117
+ - Ranking regression tests with a synthetic fixture stash and a 41-case benchmark suite (MRR / Recall@5)
118
+ - `estimatedTokens` on context-hub provider search results and in `--for-agent` output
119
+ - Architecture docs and test fixture for OpenViking manual testing (`tests/fixtures/openviking/`)
120
+
121
+ ### Changed
122
+
123
+ - Unified context-hub indexing and fair provider scoring: local FTS scores are preserved everywhere and remote provider scores compete on equal footing
124
+ - Replaced RRF with normalized BM25 scoring across all merge paths
125
+ - EMA utility decay is now time-proportional instead of tied to index frequency
126
+ - Replaced the `(Bun as any).YAML` hack with a proper `yaml` package dependency
127
+ - YAML output format fixed; local registry refs now use a `file:` prefix
128
+
129
+ ### Removed
130
+
131
+ - `manifest` subcommand (adds no value over `search`)
132
+ - URI schemes (`viking://`, `context-hub://`) from user-facing refs — assets are addressed as `type:name`; sources use URLs
133
+ - Stale audit/ergonomics markdown from the repo
134
+
135
+ ### Fixed
136
+
137
+ - `skills.sh` install refs now produce valid `akm add` commands (#82)
138
+ - Prevented `akm remove` and `akm update --force` from deleting user-owned local source directories installed via path refs
139
+ - `usage_events` reverted to `DELETE` on full reindex
140
+
141
+ ## [0.1.0] - 2026-03-10
142
+
143
+ Major internal overhaul and rebrand. This release simplifies the asset model,
144
+ cleans up the CLI surface, and renames the package from `agent-i-kit` to `akm-cli`.
145
+
146
+ ### Added
147
+
148
+ - `--verbose` flag on `search` for detailed scoring output
149
+ - ExecHints system (`run`, `cwd`, `setup`) for script assets, replacing the old tool-runner
150
+ - New environment variable overrides: `AKM_CONFIG_DIR`, `AKM_CACHE_DIR`, `AKM_STASH_DIR`
151
+ - CI workflow running lint, type-check, and tests on every push/PR
152
+ - Biome linter and formatter configuration
153
+ - README badges (npm version, CI status, license)
154
+
155
+ ### Changed
156
+
157
+ - **Rebrand**: npm package `agent-i-kit` renamed to `akm-cli`; binary remains `akm`
158
+ - **Rebrand**: config field `"agent-i-kit"` renamed to `"akm"` in `package.json`
159
+ - **Rebrand**: plugin `agent-i-kit-opencode` renamed to `akm-opencode`
160
+ - **Rebrand**: registry `agent-i-kit-registry` renamed to `akm-registry`
161
+ - **Rebrand**: default paths changed (`~/agent-i-kit` to `~/akm`, `~/.config/agent-i-kit` to `~/.config/akm`)
162
+ - **Rebrand**: environment variables `AGENT_I_KIT_*` renamed to `AKM_*`
163
+ - Removed `tool` asset type entirely; `script` is the only script-like type
164
+ - `.stash.json` field renames: `intents` to `searchHints`, `entry` to `filename`; removed `generated` boolean
165
+ - `show` command: `--view` flag replaced with positional syntax (`akm show <ref> toc`)
166
+ - Collapsed `AssetTypeHandler` handlers into a unified renderer pipeline
167
+ - Dropped provider presets (raw JSON config only)
168
+ - Pinned `sqlite-vec` to exact version `0.1.7-alpha.2` (removed caret range)
169
+ - Replaced `(Bun as any).YAML` cast with proper type guard in CLI
170
+ - Version now injected at compile time via `--define AKM_VERSION` with safe runtime fallback
171
+
172
+ ### Removed
173
+
174
+ - `submit` command
175
+ - Provider presets (configure providers with raw JSON)
176
+ - `generated` boolean from `.stash.json`
177
+
178
+ ### Fixed
179
+
180
+ - CLI crash on macOS when running as compiled binary (`package.json` not embedded)
181
+ - Cleaned up search output formatting
182
+
183
+ ## [0.0.17] - 2026-03-12
184
+
185
+ Registry refactor and documentation overhaul. This release introduces a
186
+ first-class registry management CLI, modernizes the config schema, and
187
+ rewrites all documentation against the final asset model.
188
+
189
+ ### Added
190
+
191
+ - `akm registry` subcommand group with `list`, `add`, `remove`, and `search` subcommands
192
+ - `akm registry search --assets` flag for asset-level search against v2 registry indexes
193
+ - `registries` config field (`RegistryConfigEntry[]`) with `url`, `name`, and `enabled` properties
194
+ - Registry Index v2 schema with optional `assets` array on kit entries for asset-level discovery
195
+ - Official registry pre-configured by default in new installations
196
+ - Type names: `KitSource`, `InstalledKitEntry`, `KitInstallResult`, `KitInstallStatus`, `InstalledKitListEntry`
197
+
198
+ ### Changed
199
+
200
+ - Config: `installed` is now a top-level field (`config.installed`) instead of nested under `config.registry.installed`
201
+ - Config: registry URLs configured via `registries` array instead of `registryUrls`
202
+ - Documentation: complete rewrite of concepts, registry, CLI reference, README, and all technical docs
203
+ - Documentation: added "Mental Model" (registries --> kits --> stash --> assets) to concepts
204
+ - Documentation: added asset classification taxonomy description
205
+ - Documentation: merged ref format documentation into concepts (removed "opaque handle" framing)
206
+ - Documentation: revised apt analogy in core principles to map registries, kits, stash, and assets
207
+ - Documentation: added `akm registry` subcommand group to CLI reference
208
+ - Documentation: added registry hosting and v2 index format guides
209
+
210
+ ### Removed
211
+
212
+ - `tool` asset type (fully removed across all documentation and code)
213
+ - `registryUrls` config field (replaced by `registries`)
214
+ - `config.registry.installed` nesting (replaced by `config.installed`)
215
+ - All `tools/` directory references from documentation
216
+
217
+ ## [0.0.13] - 2026-03-09
218
+
219
+ Initial public release of Agent-i-Kit (`akm` CLI).
220
+
221
+ ### Added
222
+
223
+ - CLI tool (`akm`) for searching, showing, and running Agent-i-Kit stash assets
224
+ - Hybrid search with FTS5 full-text and optional vector similarity scoring
225
+ - Registry support for discovering, installing, and updating community kits
226
+ - Multiple install sources: npm, GitHub, git URLs, and local directories
227
+ - Self-update via `akm upgrade`
228
+ - Multiple output formats: plain text, YAML, and JSON (`--json`)
229
+ - Knowledge asset navigation with TOC, section, and line-range views
230
+ - `akm clone` to fork installed assets into your working stash
231
+ - Configuration system with embedding and LLM provider management
232
+ - Standalone binary distribution (no runtime dependencies)
package/LICENSE ADDED
@@ -0,0 +1,374 @@
1
+ Mozilla Public License Version 2.0
2
+ ==================================
3
+
4
+ 1. Definitions
5
+ --------------
6
+
7
+ 1.1. "Contributor"
8
+ means each individual or legal entity that creates, contributes to
9
+ the creation of, or owns Covered Software.
10
+
11
+ 1.2. "Contributor Version"
12
+ means the combination of the Contributions of others (if any) used
13
+ by a Contributor and that particular Contributor's Contribution.
14
+
15
+ 1.3. "Contribution"
16
+ means Covered Software of a particular Contributor.
17
+
18
+ 1.4. "Covered Software"
19
+ means Source Code Form to which the initial Contributor has attached
20
+ the notice in Exhibit A, the Executable Form of such Source Code
21
+ Form, and Modifications of such Source Code Form, in each case
22
+ including portions thereof.
23
+
24
+ 1.5. "Incompatible With Secondary Licenses"
25
+ means
26
+
27
+ (a) that the initial Contributor has attached the notice described
28
+ in Exhibit B to the Covered Software; or
29
+
30
+ (b) that the Covered Software was made available under the terms of
31
+ version 1.1 or earlier of the License, but not also under the
32
+ terms of a Secondary License.
33
+
34
+ 1.6. "Executable Form"
35
+ means any form of the work other than Source Code Form.
36
+
37
+ 1.7. "Larger Work"
38
+ means a work that combines Covered Software with other material, in
39
+ a separate file or files, that is not Covered Software.
40
+
41
+ 1.8. "License"
42
+ means this document.
43
+
44
+ 1.9. "Licensable"
45
+ means having the right to grant, to the maximum extent possible,
46
+ whether at the time of the initial grant or subsequently, any and
47
+ all of the rights conveyed by this License.
48
+
49
+ 1.10. "Modifications"
50
+ means any of the following:
51
+
52
+ (a) any file in Source Code Form that results from an addition to,
53
+ deletion from, or modification of the contents of Covered
54
+ Software; or
55
+
56
+ (b) any new file in Source Code Form that contains any Covered
57
+ Software.
58
+
59
+ 1.11. "Patent Claims" of a Contributor
60
+ means any patent claim(s), including without limitation, method,
61
+ process, and apparatus claims, in any patent Licensable by such
62
+ Contributor that would be infringed, but for the grant of the
63
+ License, by the making, using, selling, offering for sale, having
64
+ made, import, or transfer of either its Contributions or its
65
+ Contributor Version.
66
+
67
+ 1.12. "Secondary License"
68
+ means either the GNU General Public License, Version 2.0, the GNU
69
+ Lesser General Public License, Version 2.1, the GNU Affero General
70
+ Public License, Version 3.0, or any later versions of those
71
+ licenses.
72
+
73
+ 1.13. "Source Code Form"
74
+ means the form of the work preferred for making modifications.
75
+
76
+ 1.14. "You" (or "Your")
77
+ means an individual or a legal entity exercising rights under this
78
+ License. For legal entities, "You" includes any entity that
79
+ controls, is controlled by, or is under common control with You. For
80
+ purposes of this definition, "control" means (a) the power, direct
81
+ or indirect, to cause the direction or management of such entity,
82
+ whether by contract or otherwise, or (b) ownership of more than
83
+ fifty percent (50%) of the outstanding shares or beneficial
84
+ ownership of such entity.
85
+
86
+ 2. License Grants and Conditions
87
+ --------------------------------
88
+
89
+ 2.1. Grants
90
+
91
+ Each Contributor hereby grants You a world-wide, royalty-free,
92
+ non-exclusive license:
93
+
94
+ (a) under intellectual property rights (other than patent or trademark)
95
+ Licensable by such Contributor to use, reproduce, make available,
96
+ modify, display, perform, distribute, and otherwise exploit its
97
+ Contributions, either on an unmodified basis, with Modifications, or
98
+ as part of a Larger Work; and
99
+
100
+ (b) under Patent Claims of such Contributor to make, use, sell, offer
101
+ for sale, have made, import, and otherwise transfer either its
102
+ Contributions or its Contributor Version.
103
+
104
+ 2.2. Effective Date
105
+
106
+ The licenses granted in Section 2.1 with respect to any Contribution
107
+ become effective for each Contribution on the date the Contributor first
108
+ distributes such Contribution.
109
+
110
+ 2.3. Limitations on Grant Scope
111
+
112
+ The licenses granted in this Section 2 are the only rights granted under
113
+ this License. No additional rights or licenses will be implied from the
114
+ distribution or licensing of Covered Software under this License.
115
+ Notwithstanding Section 2.1(b) above, no patent license is granted by a
116
+ Contributor:
117
+
118
+ (a) for any code that a Contributor has removed from Covered Software;
119
+ or
120
+
121
+ (b) for infringements caused by: (i) Your and any other third party's
122
+ modifications of Covered Software, or (ii) the combination of its
123
+ Contributions with other software (except as part of its Contributor
124
+ Version); or
125
+
126
+ (c) under Patent Claims infringed by Covered Software in the absence of
127
+ its Contributions.
128
+
129
+ This License does not grant any rights in the trademarks, service marks,
130
+ or logos of any Contributor (except as may be necessary to comply with
131
+ the notice requirements in Section 3.4).
132
+
133
+ 2.4. Subsequent Licenses
134
+
135
+ No Contributor makes additional grants as a result of Your choice to
136
+ distribute the Covered Software under a subsequent version of this
137
+ License (see Section 10.2) or under the terms of a Secondary License (if
138
+ permitted under the terms of Section 3.3).
139
+
140
+ 2.5. Representation
141
+
142
+ Each Contributor represents that the Contributor believes its
143
+ Contributions are its original creation(s) or it has sufficient rights
144
+ to grant the rights to its Contributions conveyed by this License.
145
+
146
+ 2.6. Fair Use
147
+
148
+ This License is not intended to limit any rights You have under
149
+ applicable copyright doctrines of fair use, fair dealing, or other
150
+ equivalents.
151
+
152
+ 2.7. Conditions
153
+
154
+ Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
155
+ in Section 2.1.
156
+
157
+ 3. Responsibilities
158
+ -------------------
159
+
160
+ 3.1. Distribution of Source Form
161
+
162
+ All distribution of Covered Software in Source Code Form, including any
163
+ Modifications that You create or to which You contribute, must be under
164
+ the terms of this License. You must inform recipients that the Source
165
+ Code Form of the Covered Software is governed by the terms of this
166
+ License, and how they can obtain a copy of this License. You may not
167
+ attempt to alter or restrict the recipients' rights in the Source Code
168
+ Form.
169
+
170
+ 3.2. Distribution of Executable Form
171
+
172
+ If You distribute Covered Software in Executable Form then:
173
+
174
+ (a) such Covered Software must also be made available in Source Code
175
+ Form, as described in Section 3.1, and You must inform recipients of
176
+ the Executable Form how they can obtain a copy of such Source Code
177
+ Form by reasonable means in a timely manner, at a charge no more
178
+ than the cost of distribution to the recipient; and
179
+
180
+ (b) You may distribute such Executable Form under the terms of this
181
+ License, or sublicense it under different terms, provided that the
182
+ license for the Executable Form does not attempt to limit or alter
183
+ the recipients' rights in the Source Code Form under this License.
184
+
185
+ 3.3. Distribution of a Larger Work
186
+
187
+ You may create and distribute a Larger Work under terms of Your choice,
188
+ provided that You also comply with the requirements of this License for
189
+ the Covered Software. If the Larger Work is a combination of Covered
190
+ Software with a work governed by one or more Secondary Licenses, and the
191
+ Covered Software is not Incompatible With Secondary Licenses, this
192
+ License permits You to additionally distribute such Covered Software
193
+ under the terms of such Secondary License(s), so that the recipient of
194
+ the Larger Work may, at their option, further distribute the Covered
195
+ Software under the terms of either this License or such Secondary
196
+ License(s).
197
+
198
+ 3.4. Notices
199
+
200
+ You may not remove or alter the substance of any license notices
201
+ (including copyright notices, patent notices, disclaimers of warranty,
202
+ or limitations of liability) contained within the Source Code Form of
203
+ the Covered Software, except that You may alter any license notices to
204
+ the extent required to remedy known factual inaccuracies.
205
+
206
+ 3.5. Application of Additional Terms
207
+
208
+ You may choose to offer, and to charge a fee for, warranty, support,
209
+ indemnity or liability obligations to one or more recipients of Covered
210
+ Software. However, You may do so only on Your own behalf, and not on
211
+ behalf of any Contributor. You must make it absolutely clear that any
212
+ such warranty, support, indemnity, or liability obligation is offered by
213
+ You alone, and You hereby agree to indemnify every Contributor for any
214
+ liability incurred by such Contributor as a result of warranty, support,
215
+ indemnity or liability terms You offer. You may include additional
216
+ disclaimers of warranty and limitations of liability specific to any
217
+ jurisdiction.
218
+
219
+ 4. Inability to Comply Due to Statute or Regulation
220
+ ---------------------------------------------------
221
+
222
+ If it is impossible for You to comply with any of the terms of this
223
+ License with respect to some or all of the Covered Software due to
224
+ statute, judicial order, or regulation then You must: (a) comply with
225
+ the terms of this License to the maximum extent possible; and (b)
226
+ describe the limitations and the code they affect. Such description must
227
+ be placed in a text file included with all distributions of the Covered
228
+ Software under the name "LEGAL", with additions for new restrictions
229
+ placed at the end of the file. Except to the extent prohibited by
230
+ statute or regulation, such description must be sufficiently detailed
231
+ for a recipient of ordinary skill to be able to understand it.
232
+
233
+ 5. Termination
234
+ --------------
235
+
236
+ 5.1. The rights granted under this License will terminate automatically
237
+ if You fail to comply with any of its terms. However, if You become
238
+ compliant, then the rights granted under this License from a particular
239
+ Contributor are reinstated (a) provisionally, unless and until such
240
+ Contributor explicitly and finally terminates Your grants, and (b) on an
241
+ ongoing basis, if such Contributor fails to notify You of the
242
+ non-compliance by some reasonable means prior to 60 days after You have
243
+ come back into compliance. Moreover, Your grants from a particular
244
+ Contributor are reinstated on an ongoing basis if such Contributor
245
+ notifies You of the non-compliance by some reasonable means, this is the
246
+ first time You have received notice of non-compliance with this License
247
+ from such Contributor, and You become compliant prior to 30 days after
248
+ Your receipt of the notice.
249
+
250
+ 5.2. If You initiate litigation against any entity by asserting a patent
251
+ infringement claim (excluding declaratory judgment actions,
252
+ counter-claims, and cross-claims) alleging that a Contributor Version
253
+ directly or indirectly infringes any patent, then the rights granted to
254
+ You by any and all Contributors for the Covered Software under Section
255
+ 2.1 of this License shall terminate.
256
+
257
+ 5.3. In the event of termination under Sections 5.1 or 5.2 above, all
258
+ end user license agreements (excluding distributors and resellers) which
259
+ have been validly granted by You or Your distributors under this License
260
+ prior to termination shall survive termination.
261
+
262
+ ************************************************************************
263
+ * *
264
+ * 6. Disclaimer of Warranty *
265
+ * ------------------------- *
266
+ * *
267
+ * Covered Software is provided under this License on an "as is" *
268
+ * basis, without warranty of any kind, either expressed, implied, or *
269
+ * statutory, including, without limitation, warranties that the *
270
+ * Covered Software is free of defects, merchantable, fit for a *
271
+ * particular purpose or non-infringing. The entire risk as to the *
272
+ * quality and performance of the Covered Software is with You. *
273
+ * Should any Covered Software prove defective in any respect, You *
274
+ * (not any Contributor) assume the cost of any necessary servicing, *
275
+ * repair, or correction. This disclaimer of warranty constitutes an *
276
+ * essential part of this License. No use of any Covered Software is *
277
+ * authorized under this License except under this disclaimer. *
278
+ * *
279
+ ************************************************************************
280
+
281
+ ************************************************************************
282
+ * *
283
+ * 7. Limitation of Liability *
284
+ * -------------------------- *
285
+ * *
286
+ * Under no circumstances and under no legal theory, whether tort *
287
+ * (including negligence), contract, or otherwise, shall any *
288
+ * Contributor, or anyone who distributes Covered Software as *
289
+ * permitted above, be liable to You for any direct, indirect, *
290
+ * special, incidental, or consequential damages of any character *
291
+ * including, without limitation, damages for lost profits, loss of *
292
+ * goodwill, work stoppage, computer failure or malfunction, or any *
293
+ * and all other commercial damages or losses, even if such party *
294
+ * shall have been informed of the possibility of such damages. This *
295
+ * limitation of liability shall not apply to liability for death or *
296
+ * personal injury resulting from such party's negligence to the *
297
+ * extent applicable law prohibits such limitation. Some *
298
+ * jurisdictions do not allow the exclusion or limitation of *
299
+ * incidental or consequential damages, so this exclusion and *
300
+ * limitation may not apply to You. *
301
+ * *
302
+ ************************************************************************
303
+
304
+ 8. Litigation
305
+ -------------
306
+
307
+ Any litigation relating to this License may be brought only in the
308
+ courts of a jurisdiction where the defendant maintains its principal
309
+ place of business and such litigation shall be governed by laws of that
310
+ jurisdiction, without reference to its conflict-of-law provisions.
311
+ Nothing in this Section shall prevent a party's ability to bring
312
+ cross-claims or counter-claims.
313
+
314
+ 9. Miscellaneous
315
+ ----------------
316
+
317
+ This License represents the complete agreement concerning the subject
318
+ matter hereof. If any provision of this License is held to be
319
+ unenforceable, such provision shall be reformed only to the extent
320
+ necessary to make it enforceable. Any law or regulation which provides
321
+ that the language of a contract shall be construed against the drafter
322
+ shall not be used to construe this License against a Contributor.
323
+
324
+ 10. Versions of the License
325
+ ---------------------------
326
+
327
+ 10.1. New Versions
328
+
329
+ Mozilla Foundation is the license steward. Except as provided in Section
330
+ 10.3, no one other than the license steward has the right to modify or
331
+ publish new versions of this License. Each version will be given a
332
+ distinguishing version number.
333
+
334
+ 10.2. Effect of New Versions
335
+
336
+ You may distribute the Covered Software under the terms of the version
337
+ of the License under which You originally received the Covered Software,
338
+ or under the terms of any subsequent version published by the license
339
+ steward.
340
+
341
+ 10.3. Modified Versions
342
+
343
+ If you create software not governed by this License, and you want to
344
+ create a new license for such software, you may create and use a
345
+ modified version of this License if you rename the license and remove
346
+ any references to the name of the license steward (except to note that
347
+ such modified license differs from this License).
348
+
349
+ 10.4. Distributing Source Code Form that is Incompatible With Secondary
350
+ Licenses
351
+
352
+ If You choose to distribute Source Code Form that is Incompatible With
353
+ Secondary Licenses under the terms of this version of the License, the
354
+ notice described in Exhibit B of this License must be attached.
355
+
356
+ Exhibit A - Source Code Form License Notice
357
+ -------------------------------------------
358
+
359
+ This Source Code Form is subject to the terms of the Mozilla Public
360
+ License, v. 2.0. If a copy of the MPL was not distributed with this
361
+ file, You can obtain one at https://mozilla.org/MPL/2.0/.
362
+
363
+ If it is not possible or desirable to put the notice in a particular
364
+ file, then You may include the notice in a location (such as a LICENSE
365
+ file in a relevant directory) where a recipient would be likely to look
366
+ for such a notice.
367
+
368
+ You may add additional accurate notices of copyright ownership.
369
+
370
+ Exhibit B - "Incompatible With Secondary Licenses" Notice
371
+ ---------------------------------------------------------
372
+
373
+ This Source Code Form is "Incompatible With Secondary Licenses", as
374
+ defined by the Mozilla Public License, v. 2.0.