awesome-slash 2.4.2

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 (95) hide show
  1. package/.claude-plugin/marketplace.json +54 -0
  2. package/.claude-plugin/plugin.json +11 -0
  3. package/.mcp.json +8 -0
  4. package/CHANGELOG.md +261 -0
  5. package/LICENSE +21 -0
  6. package/README.md +363 -0
  7. package/SECURITY.md +101 -0
  8. package/adapters/README.md +256 -0
  9. package/adapters/codex/README.md +272 -0
  10. package/adapters/codex/install.sh +179 -0
  11. package/adapters/opencode/README.md +301 -0
  12. package/adapters/opencode/install.sh +223 -0
  13. package/lib/patterns/review-patterns.js +511 -0
  14. package/lib/patterns/slop-patterns.js +647 -0
  15. package/lib/platform/detect-platform.js +535 -0
  16. package/lib/platform/verify-tools.js +235 -0
  17. package/lib/state/workflow-state.js +635 -0
  18. package/lib/state/workflow-state.schema.json +282 -0
  19. package/lib/utils/context-optimizer.js +227 -0
  20. package/mcp-server/index.js +303 -0
  21. package/mcp-server/package.json +23 -0
  22. package/package.json +63 -0
  23. package/plugins/deslop-around/.claude-plugin/plugin.json +20 -0
  24. package/plugins/deslop-around/commands/deslop-around.md +220 -0
  25. package/plugins/deslop-around/lib/patterns/review-patterns.js +511 -0
  26. package/plugins/deslop-around/lib/patterns/slop-patterns.js +641 -0
  27. package/plugins/deslop-around/lib/platform/detect-platform.js +514 -0
  28. package/plugins/deslop-around/lib/platform/verify-tools.js +235 -0
  29. package/plugins/deslop-around/lib/state/workflow-state.js +635 -0
  30. package/plugins/deslop-around/lib/state/workflow-state.schema.json +282 -0
  31. package/plugins/deslop-around/lib/utils/context-optimizer.js +222 -0
  32. package/plugins/next-task/.claude-plugin/plugin.json +24 -0
  33. package/plugins/next-task/agents/ci-fixer.md +236 -0
  34. package/plugins/next-task/agents/ci-monitor.md +291 -0
  35. package/plugins/next-task/agents/delivery-validator.md +451 -0
  36. package/plugins/next-task/agents/deslop-work.md +272 -0
  37. package/plugins/next-task/agents/docs-updater.md +506 -0
  38. package/plugins/next-task/agents/exploration-agent.md +277 -0
  39. package/plugins/next-task/agents/implementation-agent.md +427 -0
  40. package/plugins/next-task/agents/planning-agent.md +236 -0
  41. package/plugins/next-task/agents/policy-selector.md +248 -0
  42. package/plugins/next-task/agents/review-orchestrator.md +521 -0
  43. package/plugins/next-task/agents/simple-fixer.md +136 -0
  44. package/plugins/next-task/agents/task-discoverer.md +357 -0
  45. package/plugins/next-task/agents/test-coverage-checker.md +447 -0
  46. package/plugins/next-task/agents/worktree-manager.md +419 -0
  47. package/plugins/next-task/commands/delivery-approval.md +331 -0
  48. package/plugins/next-task/commands/next-task.md +627 -0
  49. package/plugins/next-task/commands/update-docs-around.md +418 -0
  50. package/plugins/next-task/hooks/hooks.json +14 -0
  51. package/plugins/next-task/lib/patterns/review-patterns.js +511 -0
  52. package/plugins/next-task/lib/patterns/slop-patterns.js +641 -0
  53. package/plugins/next-task/lib/platform/detect-platform.js +514 -0
  54. package/plugins/next-task/lib/platform/verify-tools.js +235 -0
  55. package/plugins/next-task/lib/state/tasks-registry.schema.json +85 -0
  56. package/plugins/next-task/lib/state/workflow-state.js +635 -0
  57. package/plugins/next-task/lib/state/workflow-state.schema.json +282 -0
  58. package/plugins/next-task/lib/state/worktree-status.schema.json +219 -0
  59. package/plugins/next-task/lib/utils/context-optimizer.js +222 -0
  60. package/plugins/project-review/.claude-plugin/plugin.json +20 -0
  61. package/plugins/project-review/commands/project-review-agents.md +286 -0
  62. package/plugins/project-review/commands/project-review-github.md +142 -0
  63. package/plugins/project-review/commands/project-review.md +273 -0
  64. package/plugins/project-review/lib/patterns/review-patterns.js +511 -0
  65. package/plugins/project-review/lib/patterns/slop-patterns.js +641 -0
  66. package/plugins/project-review/lib/platform/detect-platform.js +514 -0
  67. package/plugins/project-review/lib/platform/verify-tools.js +235 -0
  68. package/plugins/project-review/lib/state/workflow-state.js +635 -0
  69. package/plugins/project-review/lib/state/workflow-state.schema.json +282 -0
  70. package/plugins/project-review/lib/utils/context-optimizer.js +222 -0
  71. package/plugins/reality-check/.claude-plugin/plugin.json +23 -0
  72. package/plugins/reality-check/README.md +156 -0
  73. package/plugins/reality-check/agents/code-explorer.md +353 -0
  74. package/plugins/reality-check/agents/doc-analyzer.md +337 -0
  75. package/plugins/reality-check/agents/issue-scanner.md +231 -0
  76. package/plugins/reality-check/agents/plan-synthesizer.md +479 -0
  77. package/plugins/reality-check/commands/scan.md +242 -0
  78. package/plugins/reality-check/commands/set.md +203 -0
  79. package/plugins/reality-check/lib/state/reality-check-state.js +509 -0
  80. package/plugins/reality-check/skills/reality-analysis/SKILL.md +317 -0
  81. package/plugins/ship/.claude-plugin/plugin.json +21 -0
  82. package/plugins/ship/commands/ship-ci-review-loop.md +443 -0
  83. package/plugins/ship/commands/ship-deployment.md +330 -0
  84. package/plugins/ship/commands/ship-error-handling.md +254 -0
  85. package/plugins/ship/commands/ship.md +370 -0
  86. package/plugins/ship/lib/patterns/review-patterns.js +511 -0
  87. package/plugins/ship/lib/patterns/slop-patterns.js +641 -0
  88. package/plugins/ship/lib/platform/detect-platform.js +514 -0
  89. package/plugins/ship/lib/platform/verify-tools.js +235 -0
  90. package/plugins/ship/lib/state/workflow-state.js +635 -0
  91. package/plugins/ship/lib/state/workflow-state.schema.json +282 -0
  92. package/plugins/ship/lib/utils/context-optimizer.js +222 -0
  93. package/scripts/install/claude.sh +50 -0
  94. package/scripts/install/codex.sh +181 -0
  95. package/scripts/install/opencode.sh +211 -0
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "awesome-slash",
3
+ "description": "Professional-grade slash commands for Claude Code with cross-platform support (OpenCode, Codex CLI)",
4
+ "version": "2.4.2",
5
+ "owner": {
6
+ "name": "Avi Fenesh",
7
+ "url": "https://github.com/avifenesh"
8
+ },
9
+ "repository": "https://github.com/avifenesh/awesome-slash",
10
+ "keywords": ["workflow", "automation", "code-review", "pr", "deployment", "mcp"],
11
+ "plugins": [
12
+ {
13
+ "name": "next-task",
14
+ "source": "./plugins/next-task",
15
+ "description": "Master workflow orchestrator: autonomous workflow with model optimization (opus/sonnet/haiku), two-file state management, workflow enforcement gates, 14 specialist agents",
16
+ "version": "2.3.1",
17
+ "category": "productivity"
18
+ },
19
+ {
20
+ "name": "ship",
21
+ "source": "./plugins/ship",
22
+ "description": "Complete PR workflow: commit to production, skips review when called from next-task, removes task from registry on cleanup, automatic rollback",
23
+ "version": "2.3.1",
24
+ "category": "deployment"
25
+ },
26
+ {
27
+ "name": "deslop-around",
28
+ "source": "./plugins/deslop-around",
29
+ "description": "AI slop cleanup with minimal diffs and behavior preservation",
30
+ "version": "2.3.1",
31
+ "category": "development"
32
+ },
33
+ {
34
+ "name": "project-review",
35
+ "source": "./plugins/project-review",
36
+ "description": "Multi-agent iterative code review until zero issues remain",
37
+ "version": "2.3.1",
38
+ "category": "development"
39
+ },
40
+ {
41
+ "name": "reality-check",
42
+ "source": "./plugins/reality-check",
43
+ "description": "Deep repository analysis to realign project plans with code reality - detects drift, gaps, and creates prioritized reconstruction plans",
44
+ "version": "1.0.0",
45
+ "category": "productivity"
46
+ }
47
+ ],
48
+ "mcpServer": {
49
+ "name": "awesome-slash",
50
+ "source": "./mcp-server",
51
+ "description": "MCP server for cross-platform integration (OpenCode, Codex CLI)",
52
+ "tools": ["workflow_status", "workflow_start", "workflow_resume", "workflow_abort", "task_discover", "review_code"]
53
+ }
54
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "awesome-slash",
3
+ "version": "2.4.2",
4
+ "description": "Professional-grade slash commands for Claude Code with cross-platform support",
5
+ "author": {
6
+ "name": "Avi Fenesh",
7
+ "url": "https://github.com/avifenesh"
8
+ },
9
+ "repository": "https://github.com/avifenesh/awesome-slash",
10
+ "license": "MIT"
11
+ }
package/.mcp.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "awesome-slash": {
4
+ "command": "node",
5
+ "args": ["./mcp-server/index.js"]
6
+ }
7
+ }
8
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,261 @@
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.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [2.4.2] - 2026-01-18
11
+
12
+ ### Fixed
13
+ - **Renamed package** from `awsome-slash` to `awesome-slash` (fixed typo)
14
+ - Updated all internal references, repository URLs, and environment variable names
15
+
16
+ ## [2.4.1] - 2026-01-18
17
+
18
+ ### Added
19
+ - Published to npm as `awesome-slash` for easier installation
20
+ - Added `.npmignore` and `files` field for optimized package size (191KB → 143KB)
21
+
22
+ ### Changed
23
+ - npm is now the recommended installation method
24
+ - Updated README with npm badges and installation instructions
25
+
26
+ ## [2.4.0] - 2026-01-18
27
+
28
+ ### Added
29
+ - **Reality Check Plugin**: Deep repository analysis to detect plan drift and gaps
30
+ - Multi-agent parallel scanning architecture (issue-scanner, doc-analyzer, code-explorer, plan-synthesizer)
31
+ - Detects drift: plan stagnation, priority neglect, documentation lag, scope overcommit
32
+ - Identifies gaps: missing tests, outdated docs, overdue milestones
33
+ - Cross-references documented vs implemented features
34
+ - Generates prioritized reconstruction plans (immediate, short-term, medium-term, backlog)
35
+ - Interactive first-run setup with checkbox configuration
36
+ - Configurable via `.claude/reality-check.local.md` settings file
37
+ - Commands: `/reality-check:scan`, `/reality-check:set`
38
+ - Includes `reality-analysis` skill for drift detection patterns and prioritization frameworks
39
+
40
+ ### Improved
41
+ - **Test Coverage**: Enhanced `workflow-state.test.js` to verify state immutability after failed operations (#60)
42
+ - Added validation that `startPhase()` with invalid phase name leaves state completely unchanged
43
+ - Ensures no partial writes occur when operations fail
44
+ - Strengthens guarantee of atomic state updates
45
+
46
+
47
+ ## [2.3.1] - 2026-01-17
48
+
49
+ ### Fixed
50
+ - **Error Handling**: `readState()` now returns Error object for corrupted JSON files instead of null (#50)
51
+ - Enables distinction between missing files (returns `null`) and corrupted files (returns `Error` with code `ERR_STATE_CORRUPTED`)
52
+ - Updated all internal callers and plugin copies to handle Error returns gracefully
53
+ - **Security**: `deepMerge()` prototype pollution protection now applied to all plugin copies
54
+ - Prevents `__proto__`, `constructor`, `prototype` key injection attacks
55
+ - Uses `Object.keys()` instead of `for...in` to avoid inherited property iteration
56
+ - Handles null/undefined and Date objects properly
57
+ - **Ship CI Loop**: Mandatory comment resolution before merge
58
+ - Phase 4 now ALWAYS runs, even when called from /next-task
59
+ - Phase 6 includes mandatory pre-merge check for zero unresolved threads
60
+ - Clarified that "SKIPS review" only applies to Phase 5 internal agents, not external auto-reviewers
61
+
62
+ ## [2.3.0] - 2026-01-16
63
+
64
+ ### Added
65
+ - **CI & Review Monitor Loop** for `/ship` command (#79)
66
+ - Continuous monitoring loop waits for CI AND addresses ALL PR feedback
67
+ - Auto-waits 3 minutes on first iteration for review bots (Gemini, CodeRabbit)
68
+ - Configurable via `SHIP_INITIAL_WAIT` environment variable
69
+ - Addresses every comment: fixes, answers questions, or explains resolution
70
+ - GraphQL-based thread resolution and reply functionality
71
+ - **Comprehensive Command Injection Tests**: 44 new test cases for `verify-tools.js` (#61, #78)
72
+ - Newline injection patterns (LF, CR, CRLF)
73
+ - Null byte injection
74
+ - Path traversal (Unix and Windows)
75
+ - Command substitution (backticks, dollar-paren)
76
+ - Quote escaping (single and double quotes)
77
+ - Shell metacharacters (pipes, redirects, operators, globs)
78
+
79
+ ### Changed
80
+ - **Progressive Disclosure Refactoring** for reduced context consumption
81
+ - `ship.md`: 1697 → 337 lines (-80%), split into 4 files
82
+ - `project-review.md`: 929 → 273 lines (-71%), split into 3 files
83
+ - All core command files now under 500 line limit per Claude Code best practices
84
+ - Reference files loaded on-demand, reducing base context consumption
85
+ - **Explicit Workflow State Updates** in next-task agents
86
+ - Mandatory state updates box diagrams in all agents
87
+ - Clear `recordStepCompletion()` function template
88
+ - Explicit /ship invocation requirement after docs-updater
89
+ - Worktree cleanup responsibilities matrix
90
+ - "Existing session" vs "stale session" semantics clarified
91
+
92
+ ### Fixed
93
+ - **Security**: Protected `deepMerge` against prototype pollution attacks
94
+ - **Security**: Improved input validation in core libraries
95
+ - **Performance**: Optimized core library operations
96
+
97
+ ## [2.2.1] - 2026-01-16
98
+
99
+ ### Fixed
100
+ - **Version Sync** - All package manifests now correctly report version 2.2.1
101
+ - `plugin.json` was stuck at 2.1.2
102
+ - `package-lock.json` was stuck at 1.2.0
103
+
104
+ ## [2.2.0] - 2026-01-16
105
+
106
+ ### Added
107
+ - **Two-File State Management** to prevent workflow collisions
108
+ - `tasks.json` in main repo: Shared registry of claimed tasks
109
+ - `workflow-status.json` in worktree: Local step tracking with timestamps
110
+ - Resume by task ID, branch name, or worktree path
111
+ - **New Agents**
112
+ - `ci-fixer.md` (sonnet): Fix CI failures and PR comments, called by ci-monitor
113
+ - `simple-fixer.md` (haiku): Execute pre-defined code fixes mechanically
114
+ - **Workflow Enforcement Gates** - Explicit STOP gates in all agents
115
+ - Agents cannot skip review-orchestrator, delivery-validator, docs-updater
116
+ - Agents cannot create PRs - only /ship creates PRs
117
+ - SubagentStop hooks enforce mandatory workflow sequence
118
+ - **State Schema Files**
119
+ - `tasks-registry.schema.json`: Schema for main repo task registry
120
+ - `worktree-status.schema.json`: Schema for worktree step tracking
121
+
122
+ ### Changed
123
+ - **Model Optimization** for cost efficiency
124
+ - `policy-selector`: sonnet → haiku (simple checkbox UI)
125
+ - `worktree-manager`: sonnet → haiku (scripted git commands)
126
+ - `task-discoverer`: sonnet → inherit (varies by context)
127
+ - `ci-monitor`: sonnet → haiku (watching) + sonnet subagent (fixing)
128
+ - `deslop-work`: Now delegates fixes to simple-fixer (haiku)
129
+ - `docs-updater`: Now delegates fixes to simple-fixer (haiku)
130
+ - **test-coverage-checker** enhanced with quality validation
131
+ - Validates tests actually exercise new code (not just path matching)
132
+ - Detects trivial assertions (e.g., `expect(true).toBe(true)`)
133
+ - Checks for edge case coverage
134
+ - Verifies tests import the source file they claim to test
135
+ - **next-task.md** refactored from 761 to ~350 lines
136
+ - Progressive disclosure - orchestrates agents, doesn't duplicate knowledge
137
+ - Ends at delivery validation, hands off to /ship
138
+ - Added State Management Architecture section
139
+ - **ship.md** integration with next-task
140
+ - Skips review loop when called from next-task (already done)
141
+ - Removes task from registry on cleanup
142
+
143
+ ### Fixed
144
+ - Workflow enforcement: Agents can no longer skip mandatory gates
145
+ - State collisions: Parallel workflows no longer write to same file
146
+ - Trigger language standardized: "Use this agent [when/after] X to Y"
147
+ - Removed "CRITICAL" language from worktree-manager (per best practices)
148
+ - Added model choice rationale documentation to all agents
149
+
150
+ ## [2.1.2] - 2026-01-16
151
+
152
+ ### Fixed
153
+ - **Codex CLI Install Script**: Now uses `codex mcp add` command for proper MCP server registration
154
+ - **Codex Skills**: Creates skills in proper `<skill-name>/SKILL.md` folder structure per Codex docs
155
+ - **OpenCode Install Script**: Uses `opencode.json` config with proper `mcp` object format
156
+ - **OpenCode Agents**: Creates agents with proper markdown frontmatter (description, mode, tools)
157
+
158
+ ## [2.1.1] - 2026-01-16
159
+
160
+ ### Fixed
161
+ - Removed invalid `sharedLib` and `requires` keys from all plugin.json files
162
+ - Moved SubagentStop hooks to proper `hooks/hooks.json` file location
163
+ - Fixed marketplace schema validation errors
164
+
165
+ ## [2.1.0] - 2026-01-16
166
+
167
+ ### Added
168
+ - **Quality Gate Agents** for fully autonomous workflow after plan approval
169
+ - `deslop-work.md` - Clean AI slop from committed but unpushed changes
170
+ - `test-coverage-checker.md` - Validate new work has test coverage
171
+ - `delivery-validator.md` - Autonomous delivery validation (NOT manual approval)
172
+ - `docs-updater.md` - Update docs related to changes after delivery validation
173
+ - **New Commands**
174
+ - `/update-docs-around` - Standalone docs sync command for entire repo
175
+ - `/delivery-approval` - Standalone delivery validation command
176
+ - **SubagentStop Hooks** in plugin.json for automatic workflow phase transitions
177
+ - **Workflow Automation** - No human intervention from plan approval until policy stop point
178
+
179
+ ### Changed
180
+ - Updated workflow to 13 phases (was 17) with new quality gate phases
181
+ - Pre-review gates now run before first review (deslop-work + test-coverage-checker)
182
+ - Post-iteration deslop runs after each review iteration to clean fixes
183
+ - Delivery validation is now autonomous (not manual approval)
184
+ - Documentation auto-updates after delivery validation
185
+ - Total agents increased from 8 to 12 specialist agents
186
+
187
+ ### Improved
188
+ - Review-orchestrator.md now calls deslop-work after each iteration
189
+ - Next-task.md updated with new phases (7.5, 9, 9.5) for autonomous flow
190
+ - Full autonomous flow after plan approval - only 3 human touchpoints total
191
+
192
+ ## [2.0.0] - 2026-01-15
193
+
194
+ ### Added
195
+ - **Master Workflow Orchestrator** - Complete task-to-production automation
196
+ - **State Management** - `.claude/.workflow-state.json` for workflow persistence
197
+ - **8 Specialist Agents** - Opus for complex tasks, Sonnet for operations
198
+ - **Cross-Platform MCP Server** - Integration with OpenCode and Codex CLI
199
+ - **Resume Capability** - `--status`, `--resume`, `--abort` flags
200
+
201
+ ### Changed
202
+ - Removed `pr-merge` plugin - functionality absorbed into `next-task` and `ship`
203
+ - Updated marketplace.json to v2.0.0
204
+
205
+ ## [1.1.0] - 2026-01-15
206
+
207
+ ### Added
208
+ - **Test Infrastructure**: Jest test suite with 103 unit tests covering all core modules
209
+ - `detect-platform.test.js` - Platform detection tests
210
+ - `verify-tools.test.js` - Tool verification tests
211
+ - `slop-patterns.test.js` - Pattern matching and secret detection tests
212
+ - `review-patterns.test.js` - Framework pattern tests
213
+ - **Expanded Secret Detection**: 14 new patterns for comprehensive credential detection
214
+ - JWT tokens, OpenAI API keys, GitHub tokens (PAT, fine-grained, OAuth)
215
+ - AWS credentials, Google/Firebase API keys, Stripe API keys
216
+ - Slack tokens/webhooks, Discord tokens/webhooks, SendGrid API keys
217
+ - Twilio credentials, NPM tokens, Private keys, High-entropy strings
218
+ - **Plugin Dependencies**: Added `sharedLib` and `requires` fields to all plugin manifests
219
+ - **Pre-indexed Pattern Lookups**: O(1) lookup performance for patterns by language, severity, category
220
+ - `getPatternsByCategory()`, `getPatternsForFrameworkCategory()`
221
+ - `searchPatterns()` for full-text search across all patterns
222
+ - `getPatternCount()`, `getTotalPatternCount()` for statistics
223
+
224
+ ### Changed
225
+ - **Async Platform Detection**: Converted to async operations with `Promise.all` for parallel execution
226
+ - `detectAsync()` runs all detections in parallel
227
+ - Added async versions of all detection functions
228
+ - **Async Tool Verification**: Parallel tool checking reduces verification time from ~2s to ~200ms
229
+ - `verifyToolsAsync()` checks all 26 tools in parallel
230
+ - `checkToolAsync()` for individual async tool checks
231
+ - **File Caching**: Added `existsCached()` and `readFileCached()` to avoid redundant file reads
232
+
233
+ ### Fixed
234
+ - Windows spawn deprecation warning by using `cmd.exe` directly instead of shell option
235
+ - Token exposure in `pr-merge.md` and `ship.md` - now uses `-K` config file approach
236
+ - Force push safety in `ship.md` - replaced `--force` with `--force-with-lease`
237
+ - JSON structure validation before accessing `config.environments` in platform detection
238
+ - Glob expansion issue in install scripts - now uses explicit for-loop iteration
239
+ - Numeric validation for PR number input in `/pr-merge`
240
+
241
+ ### Security
242
+ - Added `deepFreeze()` to pattern objects for V8 optimization and immutability
243
+ - Input validation for tool commands and version flags (alphanumeric only)
244
+
245
+ ## [1.0.0] - 2026-01-15
246
+
247
+ Initial release with full feature set.
248
+
249
+ ### Added
250
+ - `/ship` command for complete PR workflow with deployment
251
+ - `/next-task` command for intelligent task prioritization
252
+ - `/deslop-around` command for AI slop cleanup
253
+ - `/project-review` command for multi-agent code review (with Phase 8 GitHub issue creation)
254
+ - `/pr-merge` command for intelligent PR merge procedure
255
+ - Platform detection scripts with caching
256
+ - Tool verification system
257
+ - Context optimization utilities
258
+ - Adapters for Codex CLI and OpenCode
259
+ - MIT License
260
+ - Security policy
261
+ - Contributing guidelines
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Avi Fenesh
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.