everything-gemini 0.0.0-stage → 1.0.1

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 (103) hide show
  1. package/.agents/hooks.json +16 -0
  2. package/.agents/rules/everything-gemini-dev.md +5 -0
  3. package/.agents/rules/instincts.md +8 -0
  4. package/.agents/skills/everything-gemini-maintainer/SKILL.md +22 -0
  5. package/.github/ISSUE_TEMPLATE/skill_proposal.md +24 -0
  6. package/.github/pull_request_template.md +9 -0
  7. package/.github/workflows/ci.yml +35 -0
  8. package/.github/workflows/release.yml +42 -0
  9. package/AGENTS.md +15 -0
  10. package/CHANGELOG.md +45 -0
  11. package/CONTRIBUTING.md +114 -0
  12. package/GEMINI.md +15 -0
  13. package/LICENSE +176 -0
  14. package/README.md +316 -2
  15. package/agents/architect.md +21 -0
  16. package/agents/browser-qa.md +26 -0
  17. package/agents/build-repair.md +20 -0
  18. package/agents/code-reviewer.md +22 -0
  19. package/agents/planner.md +21 -0
  20. package/agents/security-auditor.md +21 -0
  21. package/bin/everything-gemini +514 -0
  22. package/docs/architecture/cortex-loop.md +57 -0
  23. package/docs/architecture/memory-and-context.md +50 -0
  24. package/docs/architecture/progressive-disclosure.md +41 -0
  25. package/docs/customization/hooks-reference.md +78 -0
  26. package/docs/ecc-vs-everything-gemini.md +59 -0
  27. package/docs/surfaces/cli.md +46 -0
  28. package/docs/surfaces/desktop-2.0.md +30 -0
  29. package/docs/surfaces/ide.md +29 -0
  30. package/docs/surfaces/python-sdk.md +53 -0
  31. package/docs/workflows/slash-commands.md +27 -0
  32. package/hooks/auto-lint-formatter/hooks.json +16 -0
  33. package/hooks/auto-lint-formatter/scripts/auto-format.sh +48 -0
  34. package/hooks/ephemeral-context/hooks.json +11 -0
  35. package/hooks/ephemeral-context/scripts/inject-context.sh +8 -0
  36. package/hooks/gemini-shield/hooks.json +16 -0
  37. package/hooks/gemini-shield/scripts/shield-gate.sh +72 -0
  38. package/hooks/goal-verifier/hooks.json +11 -0
  39. package/hooks/goal-verifier/scripts/verify-goal.sh +26 -0
  40. package/hooks/learned-instincts/hooks.json +11 -0
  41. package/hooks/learned-instincts/scripts/save-instinct.sh +23 -0
  42. package/hooks/safety-shield/hooks.json +16 -0
  43. package/hooks/safety-shield/scripts/safety-gate.sh +64 -0
  44. package/mcp/README.md +41 -0
  45. package/mcp/mcp_config.example.json +30 -0
  46. package/package.json +39 -4
  47. package/plugins/core/hooks.json +16 -0
  48. package/plugins/core/plugin.json +3 -0
  49. package/plugins/core/rules/core-practices.md +5 -0
  50. package/plugins/python-ai/plugin.json +3 -0
  51. package/plugins/python-ai/rules/ai-agent-patterns.md +5 -0
  52. package/plugins/python-ai/skills/antigravity-sdk-orchestrator/SKILL.md +54 -0
  53. package/plugins/security-shield/hooks.json +16 -0
  54. package/plugins/security-shield/plugin.json +3 -0
  55. package/plugins/security-shield/rules/zero-trust.md +5 -0
  56. package/plugins/web-fullstack/plugin.json +3 -0
  57. package/plugins/web-fullstack/rules/frontend-standards.md +5 -0
  58. package/plugins/web-fullstack/skills/responsive-design/SKILL.md +23 -0
  59. package/rules/common/AGENTS.md +30 -0
  60. package/rules/common/GEMINI.md +30 -0
  61. package/rules/languages/golang.md +10 -0
  62. package/rules/languages/python.md +16 -0
  63. package/rules/languages/typescript.md +18 -0
  64. package/rules/paradigms/security-hardened.md +17 -0
  65. package/rules/paradigms/tdd.md +19 -0
  66. package/scripts/install.ps1 +26 -0
  67. package/scripts/install.sh +52 -0
  68. package/scripts/validate.sh +73 -0
  69. package/skills/api-craftsman/SKILL.md +45 -0
  70. package/skills/api-craftsman/examples/openapi-spec.yaml +37 -0
  71. package/skills/architecture-designer/SKILL.md +33 -0
  72. package/skills/architecture-designer/examples/c4-architecture.md +33 -0
  73. package/skills/browser-qa-tester/SKILL.md +43 -0
  74. package/skills/browser-qa-tester/references/browser-recipes.md +21 -0
  75. package/skills/cloudflare-workers/SKILL.md +72 -0
  76. package/skills/context-caching/SKILL.md +48 -0
  77. package/skills/continuous-learning/SKILL.md +31 -0
  78. package/skills/database-architect/SKILL.md +26 -0
  79. package/skills/database-architect/references/migration-checklist.md +9 -0
  80. package/skills/devops-pipeline/SKILL.md +23 -0
  81. package/skills/devops-pipeline/templates/github-ci.yml +31 -0
  82. package/skills/fullstack-nextjs/SKILL.md +27 -0
  83. package/skills/fullstack-nextjs/references/app-router-patterns.md +46 -0
  84. package/skills/gemini-grounding/SKILL.md +37 -0
  85. package/skills/gemini-multimodal/SKILL.md +43 -0
  86. package/skills/git-craftsman/SKILL.md +43 -0
  87. package/skills/kubernetes-operator/SKILL.md +82 -0
  88. package/skills/performance-profiler/SKILL.md +35 -0
  89. package/skills/performance-profiler/scripts/profile-node.sh +13 -0
  90. package/skills/repo-onboarding/SKILL.md +35 -0
  91. package/skills/repo-onboarding/references/knowledge-item-schema.md +30 -0
  92. package/skills/root-cause-debugger/SKILL.md +35 -0
  93. package/skills/root-cause-debugger/scripts/git-bisect-helper.sh +13 -0
  94. package/skills/security-audit/SKILL.md +29 -0
  95. package/skills/security-audit/scripts/scan-secrets.sh +26 -0
  96. package/skills/stripe-integration/SKILL.md +65 -0
  97. package/skills/subagent-handoff/SKILL.md +28 -0
  98. package/skills/subagent-handoff/references/handoff-patterns.md +30 -0
  99. package/skills/supabase-architect/SKILL.md +53 -0
  100. package/skills/tdd-workflow/SKILL.md +40 -0
  101. package/skills/tdd-workflow/references/tdd-patterns.md +23 -0
  102. package/templates/minimal/GEMINI.md +5 -0
  103. package/templates/minimal/hooks.json +16 -0
@@ -0,0 +1,16 @@
1
+ {
2
+ "eagy-safety": {
3
+ "PreToolUse": [
4
+ {
5
+ "matcher": "run_command",
6
+ "hooks": [
7
+ {
8
+ "type": "command",
9
+ "command": "bash ./hooks/safety-shield/scripts/safety-gate.sh",
10
+ "timeout": 10
11
+ }
12
+ ]
13
+ }
14
+ ]
15
+ }
16
+ }
@@ -0,0 +1,5 @@
1
+ # eagy Development Rule
2
+
3
+ - When adding new skills, place them in `skills/<skill-name>/` with a valid `SKILL.md`.
4
+ - When adding plugins, ensure `plugin.json` is present with valid JSON.
5
+ - Verify schema with `npm test`.
@@ -0,0 +1,8 @@
1
+ # Learned Repository Instincts
2
+
3
+ This file is automatically updated by the Everything Gemini Continuous Learning Engine to retain project-specific preferences, bug fixes, and developer instincts across sessions.
4
+
5
+ ## Baseline Instincts
6
+ - **Verification First**: Always run automated tests or linters immediately after applying code modifications.
7
+ - **Progressive Disclosure**: Keep prompt turns compact; read reference documentation on-demand.
8
+ - **Clickable File Links**: Always format file references with markdown `file://` hyperlinks.
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: everything-gemini-maintainer
3
+ description: >-
4
+ Maintains, audits, and expands the Everything Gemini (everything-gemini) repository itself. Use when adding new skills, plugins, hooks, or running test suites in eagy.
5
+ ---
6
+
7
+ # Everything Gemini Maintainer Skill
8
+
9
+ Use this workflow to contribute to and maintain the `eagy` repository.
10
+
11
+ ## Maintenance Steps
12
+
13
+ 1. **Add or Modify Component**:
14
+ - Skills: Ensure YAML frontmatter has `name` and `description`.
15
+ - Rules: Ensure markdown is concise and actionable.
16
+ - Hooks: Ensure hook scripts handle protojson input/output contracts.
17
+ 2. **Execute Validation Suite**:
18
+ ```bash
19
+ npm test
20
+ ```
21
+ 3. **Commit Clean Changes**:
22
+ Use `git-craftsman` conventions (`feat: ...`, `fix: ...`).
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: Skill Proposal
3
+ about: Propose a new progressive disclosure skill for everything-gemini
4
+ title: '[SKILL] '
5
+ labels: 'skill, enhancement'
6
+ assignees: ''
7
+ ---
8
+
9
+ ### Skill Name
10
+ <!-- e.g. cloudflare-workers, kubernetes-operator, etc. -->
11
+
12
+ ### Mission & Use Case
13
+ <!-- What does this skill enable the agent to do? When should Antigravity load it? -->
14
+
15
+ ### Progressive Disclosure Architecture
16
+ - [ ] Core instructions (< 500 lines) in `SKILL.md`
17
+ - [ ] Frontmatter includes `name` and third-person `description`
18
+ - [ ] Bulky manuals or specs separated into `references/`
19
+ - [ ] Helper shell scripts placed into `scripts/` with `chmod +x`
20
+
21
+ ### Proposed Playbook Outline
22
+ 1. Step 1:
23
+ 2. Step 2:
24
+ 3. Step 3:
@@ -0,0 +1,9 @@
1
+ ## Summary of Changes
2
+ <!-- Describe what you added, updated, or fixed in this PR -->
3
+
4
+ ## Verification Checklist
5
+ - [ ] YAML frontmatter included for all new skills with valid `name` and third-person `description`
6
+ - [ ] Shell scripts have executable permissions (`chmod +x`)
7
+ - [ ] Hooks adhere to protojson stdin / valid JSON stdout specifications
8
+ - [ ] All tests passed locally via `npm test` or `bash scripts/validate.sh`
9
+ - [ ] Markdown links use proper relative or `file://` links
@@ -0,0 +1,35 @@
1
+ name: CI & Harness Validation
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ validate:
11
+ name: Validate Skills, Rules & Hooks
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - name: Checkout Repository
16
+ uses: actions/checkout@v4
17
+
18
+ - name: Setup Node.js
19
+ uses: actions/setup-node@v4
20
+ with:
21
+ node-version: '20'
22
+
23
+ - name: Validate Executable Permissions
24
+ run: |
25
+ chmod +x scripts/validate.sh scripts/install.sh bin/everything-gemini
26
+ find hooks/ -type f -name "*.sh" -exec chmod +x {} +
27
+ find skills/ -type f -name "*.sh" -exec chmod +x {} +
28
+
29
+ - name: Run Everything Gemini Test Suite
30
+ run: npm test
31
+
32
+ - name: Verify CLI Doctor & Listing
33
+ run: |
34
+ node bin/everything-gemini doctor
35
+ node bin/everything-gemini list
@@ -0,0 +1,42 @@
1
+ name: Release & Publish
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ jobs:
9
+ build-and-publish:
10
+ name: Build, Test & Publish to NPM
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ contents: write
14
+ id-token: write
15
+
16
+ steps:
17
+ - name: Checkout Repository
18
+ uses: actions/checkout@v4
19
+
20
+ - name: Setup Node.js
21
+ uses: actions/setup-node@v4
22
+ with:
23
+ node-version: '20'
24
+ registry-url: 'https://registry.npmjs.org'
25
+
26
+ - name: Make Scripts Executable
27
+ run: |
28
+ chmod +x scripts/validate.sh scripts/install.sh bin/everything-gemini
29
+ find hooks/ -type f -name "*.sh" -exec chmod +x {} +
30
+ find skills/ -type f -name "*.sh" -exec chmod +x {} +
31
+
32
+ - name: Run Test Suite
33
+ run: npm test
34
+
35
+ - name: Create GitHub Release
36
+ uses: softprops/action-gh-release@v2
37
+ with:
38
+ generate_release_notes: true
39
+ files: |
40
+ LICENSE
41
+ README.md
42
+ CHANGELOG.md
package/AGENTS.md ADDED
@@ -0,0 +1,15 @@
1
+ # Everything Gemini (everything-gemini) Repository Guidelines
2
+
3
+ When contributing to or modifying the `everything-gemini` repository:
4
+
5
+ 1. **Dogfooding Antigravity & everything-gemini**:
6
+ - Adhere strictly to Antigravity's progressive disclosure principles.
7
+ - All new skills must include YAML frontmatter (`name`, `description` in third person).
8
+ - All hook scripts must receive protojson on stdin and output valid JSON on stdout.
9
+
10
+ 2. **Validation**:
11
+ - Run `npm test` or `bash scripts/validate.sh` before finalizing any changes.
12
+ - Ensure all shell scripts are executable (`chmod +x`).
13
+
14
+ 3. **Documentation**:
15
+ - Keep markdown documentation up-to-date and maintain clickable `file://` links for local files.
package/CHANGELOG.md ADDED
@@ -0,0 +1,45 @@
1
+ # 📜 Changelog
2
+
3
+ All notable changes to **Everything Gemini (`everything-gemini`)** will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ---
8
+
9
+ ## [1.0.1] - 2026-10-15
10
+
11
+ ### Added
12
+ - **`gemini-grounding` Skill**: Native Google Search Grounding and dynamic fact-verification playbook.
13
+ - **Automated Release Workflow**: `.github/workflows/release.yml` for automated GitHub releases and npm publishing.
14
+ - **NPM Package Verification**: Published to npm registry as `everything-gemini`.
15
+
16
+ ### Changed
17
+ - Normalized all documentation, plugins, and lifecycle hook manifests to `everything-gemini`.
18
+ - Added instant `npx everything-gemini install` installation instructions to README.
19
+ - Credited Everything Claude Code (ECC) by Affan Mustafa in dedicated `Acknowledgements & Prior Art` section.
20
+
21
+ ---
22
+
23
+ ## [1.0.0] - 2026-10-15
24
+
25
+ ### Initial Public Launch
26
+ - **18 Progressive Disclosure Skills**:
27
+ - `gemini-multimodal`: Visual mockups, diagram extraction, and automated UI regression testing.
28
+ - `context-caching`: 1M-2M token context optimization with static prefix caching.
29
+ - `subagent-handoff`: Multi-agent scoped delegation and synthesis.
30
+ - `api-craftsman`, `database-architect`, `devops-pipeline`, `root-cause-debugger`, `tdd-workflow`, `browser-qa-tester`, `architecture-designer`, `repo-onboarding`, `git-craftsman`, `performance-profiler`, `fullstack-nextjs`, `security-audit`, `continuous-learning`.
31
+ - **6 Scoped Subagents (`agents/`)**:
32
+ - `planner.md`, `code-reviewer.md`, `build-repair.md`, `browser-qa.md`, `security-auditor.md`, `architect.md`.
33
+ - **GeminiShield Safety Gate & Lifecycle Hooks**:
34
+ - `PreToolUse`: Catastrophic command blocker (`rm -rf`, `DROP TABLE`, `git push --force`).
35
+ - `PostToolUse`: Auto-lint formatter.
36
+ - `Stop`: Goal-verifier preventing premature agent completion on broken tests.
37
+ - `PreInvocation`: Ephemeral context injector.
38
+ - **4 Modular Plugins**:
39
+ - `plugins/core`, `plugins/web-fullstack`, `plugins/python-ai`, `plugins/security-shield`.
40
+ - **Zero-Dependency CLI (`bin/everything-gemini`)**:
41
+ - `doctor`, `install`, `list`, `new-skill`, `new-agent`, `validate`.
42
+ - **Comprehensive Documentation**:
43
+ - Architectural comparison breakdown against Everything Claude Code (ECC) (`docs/ecc-vs-everything-gemini.md`).
44
+ - 4 Antigravity Surfaces guide (Desktop 2.0, IDE, CLI, Python SDK).
45
+ - Progressive disclosure specifications and Cortex event loop diagrams.
@@ -0,0 +1,114 @@
1
+ # Contributing to Everything Gemini (`everything-gemini`)
2
+
3
+ Thank you for your interest in contributing to **Everything Gemini (`everything-gemini`)**! Our goal is to build the highest-quality, most reliable, and most token-efficient agent harness and customization ecosystem for Google Antigravity and Gemini.
4
+
5
+ ---
6
+
7
+ ## 🧭 Contribution Guidelines
8
+
9
+ We accept contributions in several areas:
10
+ 1. **Skills (`skills/<name>/`)**: Modular runbooks for specific technical tasks.
11
+ 2. **Rules (`rules/`)**: Standards and behavioral constraints for programming languages and architectures.
12
+ 3. **Lifecycle Hooks (`hooks/`)**: Deterministic safety checks, formatters, and goal verifiers.
13
+ 4. **Plugins (`plugins/<name>/`)**: Cohesive domain packages (Skills + Rules + Hooks + MCP).
14
+ 5. **MCP Configs (`mcp/`)**: Verified Model Context Protocol configurations.
15
+ 6. **Documentation (`docs/`)**: Deep dives into Antigravity internals, algorithms, and surfaces.
16
+
17
+ ---
18
+
19
+ ## 🛠️ Standards for Components
20
+
21
+ ### 1. Skills Standards (`skills/<skill-name>/SKILL.md`)
22
+ Every skill must have a valid `SKILL.md` with YAML frontmatter:
23
+
24
+ ```markdown
25
+ ---
26
+ name: your-skill-name
27
+ description: >-
28
+ Describe precisely what the skill does and when the agent should activate it.
29
+ Always use third-person phrasing.
30
+ Example: "Use this skill when the user asks to debug memory leaks in Node.js applications."
31
+ ---
32
+
33
+ # Your Skill Title
34
+
35
+ Detailed step-by-step procedure...
36
+ ```
37
+
38
+ **Key Rules for Skills:**
39
+ * **`name`**: Lowercase alphanumeric characters separated by hyphens (e.g. `docker-optimizer`).
40
+ * **`description`**: **This is the most critical field.** In Antigravity's progressive disclosure model, only the name and description are placed in the prompt initially. It must clearly state the triggers and objectives.
41
+ * **Progressive Disclosure**: Keep the main `SKILL.md` under 250 lines. Put lengthy API docs, tables, or guides in `references/` and link to them with relative markdown links.
42
+ * **Executable Helpers**: Put complex bash/python scripts in a `scripts/` directory within the skill folder so the agent can execute them.
43
+ * **No General Bloat**: Do not teach basic coding syntax the model already knows; focus strictly on opinionated, non-obvious workflows.
44
+
45
+ ---
46
+
47
+ ### 2. Rules Standards (`rules/`)
48
+ * Rules can be standalone Markdown files (`GEMINI.md`, `AGENTS.md`, or scoped rules in `rules/languages/` and `rules/paradigms/`).
49
+ * Rules should be concise, authoritative, and actionable. Avoid vague advice ("write good code"); provide concrete imperatives ("Always use strict TypeScript with `noImplicitAny: true`").
50
+ * Remember: Rules are deduplicated automatically by Antigravity if discovered via multiple inheritance paths.
51
+
52
+ ---
53
+
54
+ ### 3. Lifecycle Hooks Standards (`hooks/`)
55
+ * Hooks must comply with the Antigravity protojson schema:
56
+ * Top-level keys are named hooks (e.g. `"safety-shield"`).
57
+ * Supported event keys: `PreToolUse`, `PostToolUse`, `PreInvocation`, `PostInvocation`, `Stop`.
58
+ * For `PreToolUse` and `PostToolUse`, use grouped syntax with `"matcher"` (regex) and `"hooks"`.
59
+ * Shell scripts receive JSON on `stdin` and must output valid JSON on `stdout`.
60
+ * All JSON property names in hook payloads use **camelCase** (e.g. `conversationId`, `stepIdx`, `toolCall`).
61
+ * Return appropriate decisions: `"allow"`, `"deny"`, `"ask"`, `"force_ask"`, or `"continue"` for `Stop`.
62
+
63
+ ---
64
+
65
+ ### 4. Plugins Standards (`plugins/<plugin-name>/`)
66
+ A plugin bundles skills, rules, hooks, and MCP configurations together:
67
+ ```text
68
+ plugins/<plugin-name>/
69
+ ├── plugin.json # {"name": "Plugin Display Name"}
70
+ ├── hooks.json # Optional lifecycle hooks
71
+ ├── mcp_config.json # Optional MCP configurations
72
+ ├── rules/ # Optional Markdown rules
73
+ │ └── *.md
74
+ └── skills/ # Optional modular skills
75
+ └── <skill-name>/
76
+ └── SKILL.md
77
+ ```
78
+
79
+ ---
80
+
81
+ ## 🧪 Validating Your Changes
82
+
83
+ Before submitting a Pull Request, run the automated validation suite:
84
+
85
+ ```bash
86
+ # Run the validator script
87
+ bash scripts/validate.sh
88
+
89
+ # Or via npm
90
+ npm test
91
+ ```
92
+
93
+ The validator checks:
94
+ - [x] All `SKILL.md` files have proper YAML frontmatter with `name` and `description`.
95
+ - [x] All JSON files (`package.json`, `plugin.json`, `hooks.json`, `mcp_config.json`) are syntactically valid JSON.
96
+ - [x] All hook scripts are executable (`chmod +x`).
97
+ - [x] No broken relative links within skills and documentation.
98
+
99
+ ---
100
+
101
+ ## 📝 Pull Request Process
102
+
103
+ 1. Fork the repository and create your branch from `main`:
104
+ ```bash
105
+ git checkout -b feature/my-new-skill
106
+ ```
107
+ 2. Commit your changes with conventional commit messages:
108
+ ```bash
109
+ git commit -m "feat(skills): add kubernetes-operator-deployer skill"
110
+ ```
111
+ 3. Run `npm test` and ensure all checks pass.
112
+ 4. Push to your fork and submit a Pull Request with a clear description of the workflow.
113
+
114
+ Thank you for helping empower the Antigravity community!
package/GEMINI.md ADDED
@@ -0,0 +1,15 @@
1
+ # Everything Gemini (everything-gemini) Repository Guidelines
2
+
3
+ When contributing to or modifying the `everything-gemini` repository:
4
+
5
+ 1. **Dogfooding Antigravity & everything-gemini**:
6
+ - Adhere strictly to Antigravity's progressive disclosure principles.
7
+ - All new skills must include YAML frontmatter (`name`, `description` in third person).
8
+ - All hook scripts must receive protojson on stdin and output valid JSON on stdout.
9
+
10
+ 2. **Validation**:
11
+ - Run `npm test` or `bash scripts/validate.sh` before finalizing any changes.
12
+ - Ensure all shell scripts are executable (`chmod +x`).
13
+
14
+ 3. **Documentation**:
15
+ - Keep markdown documentation up-to-date and maintain clickable `file://` links for local files.
package/LICENSE ADDED
@@ -0,0 +1,176 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or exemplary damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS