liteagents 2.4.0
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 +441 -0
- package/LICENSE +21 -0
- package/README.md +179 -0
- package/cli.js +230 -0
- package/docs/.gitkeep +1 -0
- package/docs/CONTRIBUTING.md +739 -0
- package/docs/DUAL_PUBLISH_SUMMARY.md +177 -0
- package/docs/ERROR_HANDLING_IMPLEMENTATION.md +327 -0
- package/docs/GITHUB_PACKAGES.md +181 -0
- package/docs/GITHUB_SETUP.md +158 -0
- package/docs/INSTALLATION_DEMO.md +691 -0
- package/docs/INSTALLATION_LOCATIONS.md +299 -0
- package/docs/INSTALLER_GUIDE.md +1586 -0
- package/docs/INTEGRATION_ISSUES_9.1.md +341 -0
- package/docs/KNOWLEDGE_BASE.md +727 -0
- package/docs/MIGRATION.md +384 -0
- package/docs/PACKAGE_BASELINE.md +557 -0
- package/docs/PACKAGE_VALIDATION_REPORT.md +427 -0
- package/docs/PASS_INTEGRATION.md +307 -0
- package/docs/PASS_QUICK_START.md +150 -0
- package/docs/PRIVACY.md +203 -0
- package/docs/PUBLISHING.md +494 -0
- package/docs/QUICK-START.md +318 -0
- package/docs/RELEASE_NOTES_1.2.0.md +323 -0
- package/docs/SECURITY.md +317 -0
- package/docs/SILENT_MODE_GUIDE.md +526 -0
- package/docs/SKILLS_CONVERSION.md +154 -0
- package/docs/TESTING.md +582 -0
- package/docs/TEST_COVERAGE.md +347 -0
- package/docs/TROUBLESHOOTING.md +788 -0
- package/docs/UPDATED_VARIANT_CONFIGURATION.md +274 -0
- package/docs/VARIANT_CONFIGURATION.md +440 -0
- package/installer/cli.js +761 -0
- package/installer/installation-engine.js +1536 -0
- package/installer/package-manager.js +640 -0
- package/installer/path-manager.js +427 -0
- package/installer/report-template.js +298 -0
- package/installer/verification-system.js +274 -0
- package/package.json +83 -0
- package/packages/ampcode/AGENT.md +58 -0
- package/packages/ampcode/README.md +17 -0
- package/packages/ampcode/agents/1-create-prd.md +175 -0
- package/packages/ampcode/agents/2-generate-tasks.md +190 -0
- package/packages/ampcode/agents/3-process-task-list.md +225 -0
- package/packages/ampcode/agents/code-developer.md +198 -0
- package/packages/ampcode/agents/context-builder.md +142 -0
- package/packages/ampcode/agents/feature-planner.md +199 -0
- package/packages/ampcode/agents/market-researcher.md +89 -0
- package/packages/ampcode/agents/orchestrator.md +116 -0
- package/packages/ampcode/agents/quality-assurance.md +115 -0
- package/packages/ampcode/agents/system-architect.md +135 -0
- package/packages/ampcode/agents/ui-designer.md +184 -0
- package/packages/ampcode/commands/brainstorming.md +56 -0
- package/packages/ampcode/commands/code-review.md +107 -0
- package/packages/ampcode/commands/condition-based-waiting/example.ts +158 -0
- package/packages/ampcode/commands/condition-based-waiting.md +122 -0
- package/packages/ampcode/commands/debug.md +20 -0
- package/packages/ampcode/commands/docs-builder/templates.md +572 -0
- package/packages/ampcode/commands/docs-builder.md +106 -0
- package/packages/ampcode/commands/explain.md +18 -0
- package/packages/ampcode/commands/git-commit.md +14 -0
- package/packages/ampcode/commands/optimize.md +20 -0
- package/packages/ampcode/commands/refactor.md +21 -0
- package/packages/ampcode/commands/review.md +18 -0
- package/packages/ampcode/commands/root-cause-tracing/find-polluter.sh +63 -0
- package/packages/ampcode/commands/root-cause-tracing.md +176 -0
- package/packages/ampcode/commands/security.md +21 -0
- package/packages/ampcode/commands/ship.md +18 -0
- package/packages/ampcode/commands/skill-creator/scripts/init_skill.py +303 -0
- package/packages/ampcode/commands/skill-creator/scripts/package_skill.py +110 -0
- package/packages/ampcode/commands/skill-creator/scripts/quick_validate.py +65 -0
- package/packages/ampcode/commands/skill-creator.md +211 -0
- package/packages/ampcode/commands/stash.md +45 -0
- package/packages/ampcode/commands/systematic-debugging.md +297 -0
- package/packages/ampcode/commands/test-driven-development.md +390 -0
- package/packages/ampcode/commands/test-generate.md +18 -0
- package/packages/ampcode/commands/testing-anti-patterns.md +304 -0
- package/packages/ampcode/commands/verification-before-completion.md +152 -0
- package/packages/ampcode/settings.json +13 -0
- package/packages/ampcode/variants.json +8 -0
- package/packages/claude/CLAUDE.md +58 -0
- package/packages/claude/README.md +23 -0
- package/packages/claude/agents/1-create-prd.md +175 -0
- package/packages/claude/agents/2-generate-tasks.md +190 -0
- package/packages/claude/agents/3-process-task-list.md +225 -0
- package/packages/claude/agents/code-developer.md +198 -0
- package/packages/claude/agents/context-builder.md +142 -0
- package/packages/claude/agents/feature-planner.md +199 -0
- package/packages/claude/agents/market-researcher.md +89 -0
- package/packages/claude/agents/orchestrator.md +117 -0
- package/packages/claude/agents/quality-assurance.md +115 -0
- package/packages/claude/agents/system-architect.md +135 -0
- package/packages/claude/agents/ui-designer.md +184 -0
- package/packages/claude/commands/debug.md +20 -0
- package/packages/claude/commands/explain.md +18 -0
- package/packages/claude/commands/git-commit.md +14 -0
- package/packages/claude/commands/optimize.md +20 -0
- package/packages/claude/commands/refactor.md +21 -0
- package/packages/claude/commands/review.md +18 -0
- package/packages/claude/commands/security.md +21 -0
- package/packages/claude/commands/ship.md +18 -0
- package/packages/claude/commands/stash.md +45 -0
- package/packages/claude/commands/test-generate.md +18 -0
- package/packages/claude/skills/brainstorming/SKILL.md +56 -0
- package/packages/claude/skills/code-review/SKILL.md +107 -0
- package/packages/claude/skills/code-review/code-reviewer.md +146 -0
- package/packages/claude/skills/condition-based-waiting/SKILL.md +122 -0
- package/packages/claude/skills/condition-based-waiting/example.ts +158 -0
- package/packages/claude/skills/docs-builder/SKILL.md +106 -0
- package/packages/claude/skills/docs-builder/references/templates.md +572 -0
- package/packages/claude/skills/root-cause-tracing/SKILL.md +176 -0
- package/packages/claude/skills/root-cause-tracing/find-polluter.sh +63 -0
- package/packages/claude/skills/skill-creator/LICENSE.txt +202 -0
- package/packages/claude/skills/skill-creator/SKILL.md +211 -0
- package/packages/claude/skills/skill-creator/scripts/init_skill.py +303 -0
- package/packages/claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/packages/claude/skills/skill-creator/scripts/quick_validate.py +65 -0
- package/packages/claude/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/packages/claude/skills/systematic-debugging/SKILL.md +296 -0
- package/packages/claude/skills/systematic-debugging/test-academic.md +14 -0
- package/packages/claude/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/packages/claude/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/packages/claude/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/packages/claude/skills/test-driven-development/SKILL.md +392 -0
- package/packages/claude/skills/testing-anti-patterns/SKILL.md +304 -0
- package/packages/claude/skills/verification-before-completion/SKILL.md +152 -0
- package/packages/claude/variants.json +9 -0
- package/packages/droid/AGENTS.md +52 -0
- package/packages/droid/README.md +17 -0
- package/packages/droid/change_settings.json +61 -0
- package/packages/droid/commands/brainstorming.md +56 -0
- package/packages/droid/commands/code-review.md +107 -0
- package/packages/droid/commands/condition-based-waiting/example.ts +158 -0
- package/packages/droid/commands/condition-based-waiting.md +122 -0
- package/packages/droid/commands/debug.md +20 -0
- package/packages/droid/commands/docs-builder/templates.md +572 -0
- package/packages/droid/commands/docs-builder.md +106 -0
- package/packages/droid/commands/explain.md +18 -0
- package/packages/droid/commands/git-commit.md +14 -0
- package/packages/droid/commands/optimize.md +20 -0
- package/packages/droid/commands/refactor.md +21 -0
- package/packages/droid/commands/review.md +18 -0
- package/packages/droid/commands/root-cause-tracing/find-polluter.sh +63 -0
- package/packages/droid/commands/root-cause-tracing.md +176 -0
- package/packages/droid/commands/security.md +21 -0
- package/packages/droid/commands/ship.md +18 -0
- package/packages/droid/commands/skill-creator/scripts/init_skill.py +303 -0
- package/packages/droid/commands/skill-creator/scripts/package_skill.py +110 -0
- package/packages/droid/commands/skill-creator/scripts/quick_validate.py +65 -0
- package/packages/droid/commands/skill-creator.md +211 -0
- package/packages/droid/commands/stash.md +45 -0
- package/packages/droid/commands/systematic-debugging.md +297 -0
- package/packages/droid/commands/test-driven-development.md +390 -0
- package/packages/droid/commands/test-generate.md +18 -0
- package/packages/droid/commands/testing-anti-patterns.md +304 -0
- package/packages/droid/commands/verification-before-completion.md +152 -0
- package/packages/droid/droids/1-create-prd.md +170 -0
- package/packages/droid/droids/2-generate-tasks.md +190 -0
- package/packages/droid/droids/3-process-task-list.md +225 -0
- package/packages/droid/droids/code-developer.md +198 -0
- package/packages/droid/droids/context-builder.md +142 -0
- package/packages/droid/droids/feature-planner.md +199 -0
- package/packages/droid/droids/market-researcher.md +89 -0
- package/packages/droid/droids/orchestrator.md +116 -0
- package/packages/droid/droids/quality-assurance.md +115 -0
- package/packages/droid/droids/system-architect.md +135 -0
- package/packages/droid/droids/ui-designer.md +184 -0
- package/packages/droid/variants.json +8 -0
- package/packages/opencode/AGENTS.md +52 -0
- package/packages/opencode/README.md +17 -0
- package/packages/opencode/agent/1-create-prd.md +179 -0
- package/packages/opencode/agent/2-generate-tasks.md +194 -0
- package/packages/opencode/agent/3-process-task-list.md +229 -0
- package/packages/opencode/agent/code-developer.md +202 -0
- package/packages/opencode/agent/context-builder.md +146 -0
- package/packages/opencode/agent/feature-planner.md +203 -0
- package/packages/opencode/agent/market-researcher.md +93 -0
- package/packages/opencode/agent/orchestrator.md +120 -0
- package/packages/opencode/agent/quality-assurance.md +119 -0
- package/packages/opencode/agent/system-architect.md +139 -0
- package/packages/opencode/agent/ui-designer.md +188 -0
- package/packages/opencode/command/brainstorming.md +56 -0
- package/packages/opencode/command/code-review.md +107 -0
- package/packages/opencode/command/condition-based-waiting/example.ts +158 -0
- package/packages/opencode/command/condition-based-waiting.md +122 -0
- package/packages/opencode/command/debug.md +20 -0
- package/packages/opencode/command/docs-builder/templates.md +572 -0
- package/packages/opencode/command/docs-builder.md +106 -0
- package/packages/opencode/command/explain.md +18 -0
- package/packages/opencode/command/git-commit.md +14 -0
- package/packages/opencode/command/optimize.md +20 -0
- package/packages/opencode/command/refactor.md +21 -0
- package/packages/opencode/command/review.md +18 -0
- package/packages/opencode/command/root-cause-tracing/find-polluter.sh +63 -0
- package/packages/opencode/command/root-cause-tracing.md +176 -0
- package/packages/opencode/command/security.md +21 -0
- package/packages/opencode/command/ship.md +18 -0
- package/packages/opencode/command/skill-creator/scripts/init_skill.py +303 -0
- package/packages/opencode/command/skill-creator/scripts/package_skill.py +110 -0
- package/packages/opencode/command/skill-creator/scripts/quick_validate.py +65 -0
- package/packages/opencode/command/skill-creator.md +211 -0
- package/packages/opencode/command/stash.md +45 -0
- package/packages/opencode/command/systematic-debugging.md +297 -0
- package/packages/opencode/command/test-driven-development.md +390 -0
- package/packages/opencode/command/test-generate.md +18 -0
- package/packages/opencode/command/testing-anti-patterns.md +304 -0
- package/packages/opencode/command/verification-before-completion.md +152 -0
- package/packages/opencode/opencode.jsonc +201 -0
- package/packages/opencode/variants.json +8 -0
- package/packages/subagentic-manual.md +349 -0
- package/postinstall.js +21 -0
- package/tools/ampcode/manifest-template.json +14 -0
- package/tools/claude/manifest-template.json +14 -0
- package/tools/droid/manifest-template.json +14 -0
- package/tools/opencode/manifest-template.json +14 -0
package/docs/SECURITY.md
ADDED
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
# Security Considerations - Agentic Kit
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This document outlines the security measures implemented in Agentic Kit and provides guidance for secure usage. The installer handles file system operations and user input, making security a critical concern.
|
|
6
|
+
|
|
7
|
+
## Security Principles
|
|
8
|
+
|
|
9
|
+
1. **Least Privilege**: The installer runs with user permissions, not root/admin
|
|
10
|
+
2. **Input Validation**: All user input is validated and sanitized
|
|
11
|
+
3. **Path Safety**: File operations are protected against path traversal attacks
|
|
12
|
+
4. **Atomic Operations**: Installation operations are atomic with rollback capability
|
|
13
|
+
5. **No Code Execution**: No dynamic code execution from user input or configuration files
|
|
14
|
+
|
|
15
|
+
## Security Measures Implemented
|
|
16
|
+
|
|
17
|
+
### 1. Path Traversal Prevention
|
|
18
|
+
|
|
19
|
+
**Risk**: Malicious path input like `../../etc/passwd` could access sensitive files
|
|
20
|
+
|
|
21
|
+
**Mitigations**:
|
|
22
|
+
- All paths are resolved to absolute paths using `path.resolve()`
|
|
23
|
+
- Parent directory references are normalized before use
|
|
24
|
+
- Installation only writes to user-specified directories
|
|
25
|
+
- Paths are validated to ensure they're within expected boundaries
|
|
26
|
+
- Symlink attacks are prevented by checking real paths
|
|
27
|
+
|
|
28
|
+
**Code Locations**:
|
|
29
|
+
- `installer/path-manager.js`: Path validation and normalization
|
|
30
|
+
- `installer/installation-engine.js`: File operations with path checks
|
|
31
|
+
|
|
32
|
+
### 2. Input Validation
|
|
33
|
+
|
|
34
|
+
**Risk**: Malicious tool names or variants could cause unexpected behavior
|
|
35
|
+
|
|
36
|
+
**Mitigations**:
|
|
37
|
+
|
|
38
|
+
#### Tool Names
|
|
39
|
+
- Tool names are validated against a whitelist: `claude`, `opencode`, `ampcode`, `droid`
|
|
40
|
+
- Only predefined tools can be selected
|
|
41
|
+
- Tool names are sanitized before use in file paths
|
|
42
|
+
|
|
43
|
+
#### Variant Names
|
|
44
|
+
- Variants are validated against whitelist: `lite`, `standard`, `pro`
|
|
45
|
+
- Invalid variants are rejected with clear error messages
|
|
46
|
+
- Variant names are sanitized before use
|
|
47
|
+
|
|
48
|
+
#### File Paths
|
|
49
|
+
- Custom paths are validated for:
|
|
50
|
+
- Existence of parent directory
|
|
51
|
+
- Write permissions
|
|
52
|
+
- Available disk space
|
|
53
|
+
- Path format validity
|
|
54
|
+
- Tilde (`~`) expansion is handled securely
|
|
55
|
+
|
|
56
|
+
**Code Locations**:
|
|
57
|
+
- `installer/cli.js`: Input validation in `selectTools()`, `selectVariant()`, `configurePaths()`
|
|
58
|
+
- `installer/path-manager.js`: Path validation in `validatePath()`
|
|
59
|
+
|
|
60
|
+
### 3. Configuration File Parsing
|
|
61
|
+
|
|
62
|
+
**Risk**: Malicious JSON in variants.json could cause code execution or DoS
|
|
63
|
+
|
|
64
|
+
**Mitigations**:
|
|
65
|
+
- JSON parsing uses `JSON.parse()` with try-catch error handling
|
|
66
|
+
- No use of `eval()` or dynamic code execution
|
|
67
|
+
- Configuration schema is validated:
|
|
68
|
+
- Required fields are checked
|
|
69
|
+
- Data types are validated
|
|
70
|
+
- Array contents are validated
|
|
71
|
+
- Unexpected fields are ignored
|
|
72
|
+
- File size limits prevent DoS via large files
|
|
73
|
+
- Malformed JSON is caught and reported safely
|
|
74
|
+
|
|
75
|
+
**Code Locations**:
|
|
76
|
+
- `installer/package-manager.js`: `loadVariantConfig()` method
|
|
77
|
+
- Validation in `selectVariantContent()` and `validatePackage()`
|
|
78
|
+
|
|
79
|
+
### 4. File Operation Safety
|
|
80
|
+
|
|
81
|
+
**Risk**: Race conditions or interrupted operations could leave system in inconsistent state
|
|
82
|
+
|
|
83
|
+
**Mitigations**:
|
|
84
|
+
|
|
85
|
+
#### Atomic Operations
|
|
86
|
+
- Files are written atomically where possible
|
|
87
|
+
- Temporary files are used for multi-step operations
|
|
88
|
+
- Failed operations are rolled back completely
|
|
89
|
+
- Installation state is tracked for resume capability
|
|
90
|
+
|
|
91
|
+
#### Race Condition Prevention
|
|
92
|
+
- Sequential file operations for dependent tasks
|
|
93
|
+
- State locking prevents concurrent installations
|
|
94
|
+
- Proper error handling at each step
|
|
95
|
+
|
|
96
|
+
#### Backup Safety
|
|
97
|
+
- Backups are created before overwriting existing files
|
|
98
|
+
- Backup files are stored in temporary locations
|
|
99
|
+
- Backup permissions match original file permissions (0600 or more restrictive)
|
|
100
|
+
- Backups are automatically cleaned up after successful installation
|
|
101
|
+
|
|
102
|
+
**Code Locations**:
|
|
103
|
+
- `installer/installation-engine.js`: Atomic operations and rollback
|
|
104
|
+
- `installer/state-manager.js`: State management and locking
|
|
105
|
+
|
|
106
|
+
### 5. Sensitive Data Protection
|
|
107
|
+
|
|
108
|
+
**Risk**: Installation logs or backups could expose sensitive information
|
|
109
|
+
|
|
110
|
+
**Mitigations**:
|
|
111
|
+
- Installation logs stored with user-only permissions (0600)
|
|
112
|
+
- Backup files inherit secure permissions
|
|
113
|
+
- No sensitive data (passwords, keys) in logs or reports
|
|
114
|
+
- Telemetry data is anonymous (see PRIVACY.md)
|
|
115
|
+
- Rollback removes all traces of failed installation
|
|
116
|
+
|
|
117
|
+
**File Permissions**:
|
|
118
|
+
```
|
|
119
|
+
~/.agentic-kit-install.log - 0600 (read/write owner only)
|
|
120
|
+
~/.agentic-kit-config.json - 0600 (read/write owner only)
|
|
121
|
+
~/.agentic-kit-telemetry.log - 0600 (read/write owner only)
|
|
122
|
+
~/.agentic-kit-install-state.json - 0600 (read/write owner only)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Code Locations**:
|
|
126
|
+
- `installer/report-template.js`: Report generation
|
|
127
|
+
- `installer/telemetry.js`: Telemetry logging
|
|
128
|
+
|
|
129
|
+
### 6. Command Injection Prevention
|
|
130
|
+
|
|
131
|
+
**Risk**: User input could be used in shell commands causing injection attacks
|
|
132
|
+
|
|
133
|
+
**Mitigations**:
|
|
134
|
+
- **No shell execution of user input**: User-provided paths and names are never passed to shell
|
|
135
|
+
- File operations use Node.js `fs` module APIs directly (not shell commands)
|
|
136
|
+
- No use of `child_process.exec()` with user input
|
|
137
|
+
- Path concatenation uses `path.join()` not string concatenation
|
|
138
|
+
|
|
139
|
+
### 7. Symbolic Link Attacks
|
|
140
|
+
|
|
141
|
+
**Risk**: Malicious symlinks could cause files to be written to unintended locations
|
|
142
|
+
|
|
143
|
+
**Mitigations**:
|
|
144
|
+
- `fs.realpath()` is used to resolve symlinks before operations
|
|
145
|
+
- Target paths are validated after symlink resolution
|
|
146
|
+
- Installation directory is checked for unexpected symlinks
|
|
147
|
+
- Manifest files are validated to prevent symlink exploitation
|
|
148
|
+
|
|
149
|
+
### 8. Denial of Service Prevention
|
|
150
|
+
|
|
151
|
+
**Risk**: Malicious configuration could cause resource exhaustion
|
|
152
|
+
|
|
153
|
+
**Mitigations**:
|
|
154
|
+
- File size limits on configuration files (max 1MB)
|
|
155
|
+
- Installation timeout limits (default 10 minutes per tool)
|
|
156
|
+
- File count limits (max 10,000 files per tool)
|
|
157
|
+
- Memory usage limits during file operations
|
|
158
|
+
- Disk space checks before installation
|
|
159
|
+
|
|
160
|
+
## Security Testing
|
|
161
|
+
|
|
162
|
+
### Test Cases Implemented
|
|
163
|
+
|
|
164
|
+
1. **Path Traversal Tests**
|
|
165
|
+
- `../../etc/passwd` → Rejected
|
|
166
|
+
- `~/../../../etc/passwd` → Rejected
|
|
167
|
+
- Symlinks to sensitive files → Detected and rejected
|
|
168
|
+
|
|
169
|
+
2. **Input Validation Tests**
|
|
170
|
+
- Invalid tool names → Rejected
|
|
171
|
+
- Invalid variants → Rejected
|
|
172
|
+
- Special characters in paths → Sanitized or rejected
|
|
173
|
+
- Very long input strings → Truncated or rejected
|
|
174
|
+
|
|
175
|
+
3. **Configuration Parsing Tests**
|
|
176
|
+
- Malformed JSON → Handled gracefully
|
|
177
|
+
- Extremely large JSON files → Rejected
|
|
178
|
+
- Unexpected JSON structure → Validated and rejected
|
|
179
|
+
|
|
180
|
+
4. **Race Condition Tests**
|
|
181
|
+
- Concurrent installations → Prevented
|
|
182
|
+
- Interrupted installations → Recoverable
|
|
183
|
+
- File system changes during installation → Detected
|
|
184
|
+
|
|
185
|
+
### Manual Testing Recommendations
|
|
186
|
+
|
|
187
|
+
When testing the installer, try these security test cases:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
# Path traversal attempts
|
|
191
|
+
node installer/cli.js --variant standard --tools claude --path claude=../../etc/passwd
|
|
192
|
+
|
|
193
|
+
# Command injection attempts
|
|
194
|
+
node installer/cli.js --variant standard --tools "claude; rm -rf /" --silent
|
|
195
|
+
|
|
196
|
+
# Large file DoS
|
|
197
|
+
# Create variants.json with 1GB of data and test parsing
|
|
198
|
+
|
|
199
|
+
# Race condition tests
|
|
200
|
+
# Run two installers simultaneously
|
|
201
|
+
|
|
202
|
+
# Symlink attacks
|
|
203
|
+
# Create symlink at installation target pointing to sensitive location
|
|
204
|
+
ln -s /etc ~/.claude
|
|
205
|
+
node installer/cli.js --variant standard --tools claude
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Known Limitations
|
|
209
|
+
|
|
210
|
+
### 1. File System Permissions
|
|
211
|
+
- The installer respects existing file system permissions
|
|
212
|
+
- If user has write access to sensitive directories, installer could write there
|
|
213
|
+
- **Mitigation**: Run installer as regular user, not root/admin
|
|
214
|
+
|
|
215
|
+
### 2. Disk Space Exhaustion
|
|
216
|
+
- Very large installations could fill available disk space
|
|
217
|
+
- **Mitigation**: Pre-installation disk space checks
|
|
218
|
+
|
|
219
|
+
### 3. Interrupted Operations
|
|
220
|
+
- Hard system crashes (power loss) may leave partial installations
|
|
221
|
+
- **Mitigation**: Resume capability and rollback on restart
|
|
222
|
+
|
|
223
|
+
## Security Best Practices
|
|
224
|
+
|
|
225
|
+
### For Users
|
|
226
|
+
|
|
227
|
+
1. **Don't Run as Root**: Always run installer with regular user privileges
|
|
228
|
+
2. **Review Custom Paths**: Carefully check custom installation paths before confirming
|
|
229
|
+
3. **Use Default Paths**: Default paths are safer and well-tested
|
|
230
|
+
4. **Keep Node.js Updated**: Ensure you're using a supported Node.js version
|
|
231
|
+
5. **Review Logs**: Check installation logs for unexpected behavior
|
|
232
|
+
6. **Verify Sources**: Only download agentic-kit from official sources
|
|
233
|
+
|
|
234
|
+
### For Developers
|
|
235
|
+
|
|
236
|
+
1. **Input Validation**: Validate all external input before use
|
|
237
|
+
2. **No Dynamic Execution**: Never use `eval()` or execute user-provided code
|
|
238
|
+
3. **Secure File Operations**: Always use `path.join()` and validate paths
|
|
239
|
+
4. **Error Handling**: Catch and handle errors gracefully without exposing internals
|
|
240
|
+
5. **Security Reviews**: Review code changes for security implications
|
|
241
|
+
6. **Dependency Audits**: Regularly audit npm dependencies for vulnerabilities
|
|
242
|
+
|
|
243
|
+
## Dependency Security
|
|
244
|
+
|
|
245
|
+
### Current Dependencies
|
|
246
|
+
|
|
247
|
+
The installer has minimal dependencies to reduce attack surface:
|
|
248
|
+
- Node.js built-in modules only (fs, path, os, readline)
|
|
249
|
+
- No third-party dependencies for core functionality
|
|
250
|
+
|
|
251
|
+
### Dependency Management
|
|
252
|
+
|
|
253
|
+
1. **Regular Audits**: Run `npm audit` regularly
|
|
254
|
+
2. **Minimal Dependencies**: Only add dependencies when absolutely necessary
|
|
255
|
+
3. **Version Pinning**: Lock dependency versions to prevent supply chain attacks
|
|
256
|
+
4. **Security Updates**: Apply security updates promptly
|
|
257
|
+
|
|
258
|
+
## Reporting Security Vulnerabilities
|
|
259
|
+
|
|
260
|
+
If you discover a security vulnerability in Agentic Kit:
|
|
261
|
+
|
|
262
|
+
### Do Not
|
|
263
|
+
- ❌ Open a public GitHub issue
|
|
264
|
+
- ❌ Discuss in public forums or social media
|
|
265
|
+
- ❌ Exploit the vulnerability
|
|
266
|
+
|
|
267
|
+
### Do
|
|
268
|
+
- ✅ Email security report to: [security contact email]
|
|
269
|
+
- ✅ Provide detailed description of vulnerability
|
|
270
|
+
- ✅ Include steps to reproduce
|
|
271
|
+
- ✅ Allow reasonable time for fix before public disclosure
|
|
272
|
+
- ✅ Provide proof of concept (if applicable)
|
|
273
|
+
|
|
274
|
+
### Our Commitment
|
|
275
|
+
- We will acknowledge receipt within 48 hours
|
|
276
|
+
- We will provide regular updates on fix progress
|
|
277
|
+
- We will credit reporters (unless anonymity requested)
|
|
278
|
+
- We will release fixes as quickly as safely possible
|
|
279
|
+
|
|
280
|
+
## Security Checklist
|
|
281
|
+
|
|
282
|
+
Before each release, verify:
|
|
283
|
+
|
|
284
|
+
- [ ] All user input is validated
|
|
285
|
+
- [ ] Path operations use `path.join()` and are validated
|
|
286
|
+
- [ ] No use of `eval()` or `child_process.exec()` with user input
|
|
287
|
+
- [ ] Configuration parsing is safe and validates structure
|
|
288
|
+
- [ ] File permissions are set correctly (0600 for sensitive files)
|
|
289
|
+
- [ ] Error messages don't expose system internals
|
|
290
|
+
- [ ] Rollback mechanism works correctly
|
|
291
|
+
- [ ] Race conditions are prevented
|
|
292
|
+
- [ ] Resource limits are enforced
|
|
293
|
+
- [ ] Security tests pass
|
|
294
|
+
- [ ] Dependencies have no known vulnerabilities
|
|
295
|
+
- [ ] Documentation is up to date
|
|
296
|
+
|
|
297
|
+
## Audit Log
|
|
298
|
+
|
|
299
|
+
### Version 1.2.0 (January 2025)
|
|
300
|
+
- Initial security review conducted
|
|
301
|
+
- Path traversal prevention implemented
|
|
302
|
+
- Input validation added for all user inputs
|
|
303
|
+
- Configuration parsing hardened
|
|
304
|
+
- File permissions secured
|
|
305
|
+
- Security documentation created
|
|
306
|
+
|
|
307
|
+
## References
|
|
308
|
+
|
|
309
|
+
- [OWASP Top 10](https://owasp.org/www-project-top-ten/)
|
|
310
|
+
- [Node.js Security Best Practices](https://nodejs.org/en/docs/guides/security/)
|
|
311
|
+
- [NPM Security Best Practices](https://docs.npmjs.com/packages-and-modules/securing-your-code)
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
**Last Updated**: January 2025
|
|
316
|
+
**Version**: 1.0
|
|
317
|
+
**Next Review**: July 2025
|