@closedloop-ai/cli 0.2.4 → 0.3.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.
- package/README.md +176 -270
- package/dist/THIRD_PARTY_NOTICES.txt +24 -0
- package/dist/closedloop.js +156 -0
- package/package.json +31 -62
- package/CONTRIBUTING.md +0 -437
- package/LICENSE +0 -21
- package/docs/CLI_COMMANDS.md +0 -522
- package/packages/cli/dist/__tests__/api.test.js +0 -151
- package/packages/cli/dist/__tests__/api.test.js.map +0 -1
- package/packages/cli/dist/__tests__/cli.test.js +0 -37
- package/packages/cli/dist/__tests__/cli.test.js.map +0 -1
- package/packages/cli/dist/__tests__/config.test.js +0 -33
- package/packages/cli/dist/__tests__/config.test.js.map +0 -1
- package/packages/cli/dist/__tests__/errors.test.js +0 -109
- package/packages/cli/dist/__tests__/errors.test.js.map +0 -1
- package/packages/cli/dist/__tests__/performance.test.js +0 -221
- package/packages/cli/dist/__tests__/performance.test.js.map +0 -1
- package/packages/cli/dist/__tests__/setup.js +0 -50
- package/packages/cli/dist/__tests__/setup.js.map +0 -1
- package/packages/cli/dist/__tests__/team-simple.test.js +0 -38
- package/packages/cli/dist/__tests__/team-simple.test.js.map +0 -1
- package/packages/cli/dist/__tests__/test-factories.js +0 -148
- package/packages/cli/dist/__tests__/test-factories.js.map +0 -1
- package/packages/cli/dist/__tests__/validation.test.js +0 -124
- package/packages/cli/dist/__tests__/validation.test.js.map +0 -1
- package/packages/cli/dist/api/auth.js +0 -27
- package/packages/cli/dist/api/auth.js.map +0 -1
- package/packages/cli/dist/api/feedback.js +0 -70
- package/packages/cli/dist/api/feedback.js.map +0 -1
- package/packages/cli/dist/api/ingest.js +0 -60
- package/packages/cli/dist/api/ingest.js.map +0 -1
- package/packages/cli/dist/api/input.js +0 -60
- package/packages/cli/dist/api/input.js.map +0 -1
- package/packages/cli/dist/api/team.js +0 -59
- package/packages/cli/dist/api/team.js.map +0 -1
- package/packages/cli/dist/api/usage.js +0 -49
- package/packages/cli/dist/api/usage.js.map +0 -1
- package/packages/cli/dist/cli.js +0 -201
- package/packages/cli/dist/cli.js.map +0 -1
- package/packages/cli/dist/commands/config.js +0 -186
- package/packages/cli/dist/commands/config.js.map +0 -1
- package/packages/cli/dist/commands/feedback.js +0 -234
- package/packages/cli/dist/commands/feedback.js.map +0 -1
- package/packages/cli/dist/commands/ingest.js +0 -391
- package/packages/cli/dist/commands/ingest.js.map +0 -1
- package/packages/cli/dist/commands/input.js +0 -370
- package/packages/cli/dist/commands/input.js.map +0 -1
- package/packages/cli/dist/commands/insight.js +0 -234
- package/packages/cli/dist/commands/insight.js.map +0 -1
- package/packages/cli/dist/commands/list.js +0 -81
- package/packages/cli/dist/commands/list.js.map +0 -1
- package/packages/cli/dist/commands/status.js +0 -93
- package/packages/cli/dist/commands/status.js.map +0 -1
- package/packages/cli/dist/commands/submit.js +0 -225
- package/packages/cli/dist/commands/submit.js.map +0 -1
- package/packages/cli/dist/commands/team.js +0 -82
- package/packages/cli/dist/commands/team.js.map +0 -1
- package/packages/cli/dist/commands/usage.js +0 -168
- package/packages/cli/dist/commands/usage.js.map +0 -1
- package/packages/cli/dist/config/constants.js +0 -38
- package/packages/cli/dist/config/constants.js.map +0 -1
- package/packages/cli/dist/config/index.js +0 -84
- package/packages/cli/dist/config/index.js.map +0 -1
- package/packages/cli/dist/types/index.js +0 -3
- package/packages/cli/dist/types/index.js.map +0 -1
- package/packages/cli/dist/utils/config.js +0 -55
- package/packages/cli/dist/utils/config.js.map +0 -1
- package/packages/cli/dist/utils/errors.js +0 -70
- package/packages/cli/dist/utils/errors.js.map +0 -1
- package/packages/cli/dist/utils/validation.js +0 -133
- package/packages/cli/dist/utils/validation.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,73 +1,42 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@closedloop-ai/cli",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "ClosedLoop AI
|
|
5
|
-
"
|
|
6
|
-
"cl": "./packages/cli/dist/cli.js"
|
|
7
|
-
},
|
|
8
|
-
"scripts": {
|
|
9
|
-
"build": "npm run build:cli",
|
|
10
|
-
"build:cli": "cd packages/cli && npm run build",
|
|
11
|
-
"test": "npm run test:cli",
|
|
12
|
-
"test:cli": "cd packages/cli && npm test",
|
|
13
|
-
"lint": "npm run lint:cli",
|
|
14
|
-
"lint:cli": "cd packages/cli && npm run lint",
|
|
15
|
-
"clean": "npm run clean:cli",
|
|
16
|
-
"clean:cli": "cd packages/cli && npm run clean",
|
|
17
|
-
"release": "npm run build && npm run test && npm publish",
|
|
18
|
-
"prepare": "npm run build"
|
|
19
|
-
},
|
|
20
|
-
"keywords": [
|
|
21
|
-
"cli",
|
|
22
|
-
"command-line",
|
|
23
|
-
"ai",
|
|
24
|
-
"feedback",
|
|
25
|
-
"analysis",
|
|
26
|
-
"closedloop",
|
|
27
|
-
"typescript",
|
|
28
|
-
"customer-feedback",
|
|
29
|
-
"product-insights",
|
|
30
|
-
"ai-analysis"
|
|
31
|
-
],
|
|
32
|
-
"author": "ClosedLoop AI <team@closedloop.sh>",
|
|
33
|
-
"license": "MIT",
|
|
3
|
+
"version": "0.3.1",
|
|
4
|
+
"description": "ClosedLoop AI on the command line, for people and AI coding agents.",
|
|
5
|
+
"license": "UNLICENSED",
|
|
34
6
|
"repository": {
|
|
35
7
|
"type": "git",
|
|
36
|
-
"url": "https://github.com/
|
|
8
|
+
"url": "git+https://github.com/closedloop-ai-org/monorepo.git",
|
|
9
|
+
"directory": "closedloop-cli"
|
|
37
10
|
},
|
|
38
|
-
"
|
|
39
|
-
"
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public",
|
|
13
|
+
"registry": "https://registry.npmjs.org/",
|
|
14
|
+
"provenance": false
|
|
40
15
|
},
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
16
|
+
"type": "module",
|
|
17
|
+
"bin": {
|
|
18
|
+
"closedloop": "./dist/closedloop.js",
|
|
19
|
+
"cl": "./dist/closedloop.js"
|
|
44
20
|
},
|
|
45
|
-
"
|
|
46
|
-
"
|
|
21
|
+
"files": [
|
|
22
|
+
"dist/closedloop.js",
|
|
23
|
+
"dist/THIRD_PARTY_NOTICES.txt"
|
|
47
24
|
],
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"axios": "^1.6.0",
|
|
51
|
-
"chalk": "^4.1.2",
|
|
52
|
-
"ora": "^5.4.1",
|
|
53
|
-
"inquirer": "^8.2.6",
|
|
54
|
-
"table": "^6.8.1"
|
|
25
|
+
"engines": {
|
|
26
|
+
"node": ">=22.12.0"
|
|
55
27
|
},
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"@typescript-eslint/parser": "^6.0.0",
|
|
64
|
-
"prettier": "^3.0.0"
|
|
28
|
+
"scripts": {
|
|
29
|
+
"compile": "tsc -p .",
|
|
30
|
+
"typecheck": "tsc -p . --noEmit",
|
|
31
|
+
"build": "node build.mjs",
|
|
32
|
+
"prepack": "npm run build",
|
|
33
|
+
"package:verify": "python3 -B scripts/package_release.py build",
|
|
34
|
+
"test": "npm run compile && npm run build && node --test \"out/test/**/*.test.js\""
|
|
65
35
|
},
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
|
|
72
|
-
]
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/node": "22.18.13",
|
|
38
|
+
"commander": "15.0.0",
|
|
39
|
+
"esbuild": "0.28.2",
|
|
40
|
+
"typescript": "5.9.3"
|
|
41
|
+
}
|
|
73
42
|
}
|
package/CONTRIBUTING.md
DELETED
|
@@ -1,437 +0,0 @@
|
|
|
1
|
-
# Contributing to ClosedLoop AI CLI
|
|
2
|
-
|
|
3
|
-
Thank you for your interest in contributing to the ClosedLoop AI CLI! We welcome contributions from the community and are grateful for your help in making this project better.
|
|
4
|
-
|
|
5
|
-
## 🚀 Getting Started
|
|
6
|
-
|
|
7
|
-
### Prerequisites
|
|
8
|
-
|
|
9
|
-
Before you begin, make sure you have the following installed:
|
|
10
|
-
|
|
11
|
-
- **Node.js** 16.0.0 or higher
|
|
12
|
-
- **npm** 8.0.0 or higher (or yarn/pnpm)
|
|
13
|
-
- **Git** 2.0.0 or higher
|
|
14
|
-
- **TypeScript** 5.0.0 or higher
|
|
15
|
-
|
|
16
|
-
### Development Setup
|
|
17
|
-
|
|
18
|
-
1. **Fork the repository**
|
|
19
|
-
```bash
|
|
20
|
-
# Click the "Fork" button on GitHub, then clone your fork
|
|
21
|
-
git clone https://github.com/YOUR_USERNAME/closedloop-cli.git
|
|
22
|
-
cd closedloop-cli
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
2. **Add upstream remote**
|
|
26
|
-
```bash
|
|
27
|
-
git remote add upstream https://github.com/closed-loop-ai/closedloop-cli.git
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
3. **Install dependencies**
|
|
31
|
-
```bash
|
|
32
|
-
npm install
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
4. **Build the project**
|
|
36
|
-
```bash
|
|
37
|
-
npm run build
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
5. **Run tests**
|
|
41
|
-
```bash
|
|
42
|
-
npm test
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
6. **Run linting**
|
|
46
|
-
```bash
|
|
47
|
-
npm run lint
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## 🏗️ Project Structure
|
|
51
|
-
|
|
52
|
-
```
|
|
53
|
-
closedloop-cli/
|
|
54
|
-
├── packages/
|
|
55
|
-
│ ├── core/ # TypeScript client library
|
|
56
|
-
│ │ ├── src/ # Source code
|
|
57
|
-
│ │ ├── dist/ # Compiled output
|
|
58
|
-
│ │ └── tests/ # Unit tests
|
|
59
|
-
│ ├── cli/ # CLI tool
|
|
60
|
-
│ │ ├── src/ # Source code
|
|
61
|
-
│ │ ├── dist/ # Compiled output
|
|
62
|
-
│ │ └── __tests__/ # Unit tests
|
|
63
|
-
│ └── examples/ # Usage examples
|
|
64
|
-
├── docs/ # Documentation
|
|
65
|
-
├── tests/ # Integration tests
|
|
66
|
-
└── .github/ # GitHub workflows and templates
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
## 🔄 Development Workflow
|
|
70
|
-
|
|
71
|
-
### 1. Create a Feature Branch
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
# Make sure you're on main and up to date
|
|
75
|
-
git checkout main
|
|
76
|
-
git pull upstream main
|
|
77
|
-
|
|
78
|
-
# Create a new branch for your feature
|
|
79
|
-
git checkout -b feature/your-feature-name
|
|
80
|
-
|
|
81
|
-
# Or for bug fixes
|
|
82
|
-
git checkout -b fix/your-bug-description
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### 2. Make Your Changes
|
|
86
|
-
|
|
87
|
-
- Write clean, readable code
|
|
88
|
-
- Follow the existing code style
|
|
89
|
-
- Add tests for new functionality
|
|
90
|
-
- Update documentation as needed
|
|
91
|
-
- Ensure all tests pass
|
|
92
|
-
|
|
93
|
-
### 3. Test Your Changes
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
# Run all tests
|
|
97
|
-
npm test
|
|
98
|
-
|
|
99
|
-
# Run tests with coverage
|
|
100
|
-
npm run test:coverage
|
|
101
|
-
|
|
102
|
-
# Run linting
|
|
103
|
-
npm run lint
|
|
104
|
-
|
|
105
|
-
# Build the project
|
|
106
|
-
npm run build
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### 4. Commit Your Changes
|
|
110
|
-
|
|
111
|
-
We use conventional commits. Please format your commit messages as follows:
|
|
112
|
-
|
|
113
|
-
```
|
|
114
|
-
type(scope): description
|
|
115
|
-
|
|
116
|
-
[optional body]
|
|
117
|
-
|
|
118
|
-
[optional footer]
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
**Types:**
|
|
122
|
-
- `feat`: New feature
|
|
123
|
-
- `fix`: Bug fix
|
|
124
|
-
- `docs`: Documentation changes
|
|
125
|
-
- `style`: Code style changes (formatting, etc.)
|
|
126
|
-
- `refactor`: Code refactoring
|
|
127
|
-
- `test`: Adding or updating tests
|
|
128
|
-
- `chore`: Maintenance tasks
|
|
129
|
-
|
|
130
|
-
**Examples:**
|
|
131
|
-
```bash
|
|
132
|
-
git commit -m "feat(cli): add --wait flag for input processing"
|
|
133
|
-
git commit -m "fix(api): handle 401 errors gracefully"
|
|
134
|
-
git commit -m "docs: update installation instructions"
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### 5. Push and Create Pull Request
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
|
-
# Push your branch
|
|
141
|
-
git push origin feature/your-feature-name
|
|
142
|
-
|
|
143
|
-
# Create a pull request on GitHub
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
## 📝 Code Standards
|
|
147
|
-
|
|
148
|
-
### TypeScript Guidelines
|
|
149
|
-
|
|
150
|
-
- Use TypeScript for all new code
|
|
151
|
-
- Provide proper type definitions
|
|
152
|
-
- Use interfaces for object shapes
|
|
153
|
-
- Prefer `const` over `let` when possible
|
|
154
|
-
- Use meaningful variable and function names
|
|
155
|
-
|
|
156
|
-
### Code Style
|
|
157
|
-
|
|
158
|
-
- Use 2 spaces for indentation
|
|
159
|
-
- Use single quotes for strings
|
|
160
|
-
- Use semicolons
|
|
161
|
-
- Use trailing commas in objects and arrays
|
|
162
|
-
- Use camelCase for variables and functions
|
|
163
|
-
- Use PascalCase for classes and interfaces
|
|
164
|
-
|
|
165
|
-
### Example:
|
|
166
|
-
|
|
167
|
-
```typescript
|
|
168
|
-
interface UserConfig {
|
|
169
|
-
apiKey: string;
|
|
170
|
-
baseUrl?: string;
|
|
171
|
-
timeout?: number;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
class ClosedLoopClient {
|
|
175
|
-
private config: UserConfig;
|
|
176
|
-
|
|
177
|
-
constructor(config: UserConfig) {
|
|
178
|
-
this.config = config;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
async submitFeedback(data: FeedbackData): Promise<SubmissionResult> {
|
|
182
|
-
// Implementation
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
## 🧪 Testing Guidelines
|
|
188
|
-
|
|
189
|
-
### Unit Tests
|
|
190
|
-
|
|
191
|
-
- Write tests for all new functionality
|
|
192
|
-
- Aim for high test coverage (>90%)
|
|
193
|
-
- Use descriptive test names
|
|
194
|
-
- Test both success and error cases
|
|
195
|
-
- Mock external dependencies
|
|
196
|
-
|
|
197
|
-
### Test Structure
|
|
198
|
-
|
|
199
|
-
```typescript
|
|
200
|
-
describe('FeedbackService', () => {
|
|
201
|
-
describe('submitFeedback', () => {
|
|
202
|
-
it('should submit feedback successfully', async () => {
|
|
203
|
-
// Arrange
|
|
204
|
-
const mockData = { content: 'Test feedback' };
|
|
205
|
-
const expectedResult = { id: '123', status: 'submitted' };
|
|
206
|
-
|
|
207
|
-
// Act
|
|
208
|
-
const result = await feedbackService.submitFeedback(mockData);
|
|
209
|
-
|
|
210
|
-
// Assert
|
|
211
|
-
expect(result).toEqual(expectedResult);
|
|
212
|
-
});
|
|
213
|
-
|
|
214
|
-
it('should handle API errors gracefully', async () => {
|
|
215
|
-
// Test error handling
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
### Integration Tests
|
|
222
|
-
|
|
223
|
-
- Test the CLI commands end-to-end
|
|
224
|
-
- Test API integration
|
|
225
|
-
- Test error scenarios
|
|
226
|
-
- Test configuration handling
|
|
227
|
-
|
|
228
|
-
## 📚 Documentation Guidelines
|
|
229
|
-
|
|
230
|
-
### Code Documentation
|
|
231
|
-
|
|
232
|
-
- Add JSDoc comments for public APIs
|
|
233
|
-
- Include parameter descriptions
|
|
234
|
-
- Include return value descriptions
|
|
235
|
-
- Include usage examples
|
|
236
|
-
|
|
237
|
-
```typescript
|
|
238
|
-
/**
|
|
239
|
-
* Submit customer feedback for AI analysis
|
|
240
|
-
* @param data - The feedback data to submit
|
|
241
|
-
* @param options - Optional configuration
|
|
242
|
-
* @returns Promise resolving to submission result
|
|
243
|
-
* @example
|
|
244
|
-
* ```typescript
|
|
245
|
-
* const result = await client.feedback.create({
|
|
246
|
-
* content: "The dashboard is confusing",
|
|
247
|
-
* title: "UX Issue"
|
|
248
|
-
* });
|
|
249
|
-
* ```
|
|
250
|
-
*/
|
|
251
|
-
async create(data: FeedbackData, options?: CreateOptions): Promise<SubmissionResult> {
|
|
252
|
-
// Implementation
|
|
253
|
-
}
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
### README Updates
|
|
257
|
-
|
|
258
|
-
- Update README.md for new features
|
|
259
|
-
- Add examples for new functionality
|
|
260
|
-
- Update installation instructions if needed
|
|
261
|
-
- Update CLI command documentation
|
|
262
|
-
|
|
263
|
-
## 🐛 Bug Reports
|
|
264
|
-
|
|
265
|
-
When reporting bugs, please include:
|
|
266
|
-
|
|
267
|
-
1. **Clear description** of the issue
|
|
268
|
-
2. **Steps to reproduce** the problem
|
|
269
|
-
3. **Expected behavior** vs actual behavior
|
|
270
|
-
4. **Environment details** (OS, Node.js version, etc.)
|
|
271
|
-
5. **Error messages** or logs
|
|
272
|
-
6. **Screenshots** if applicable
|
|
273
|
-
|
|
274
|
-
### Bug Report Template
|
|
275
|
-
|
|
276
|
-
```markdown
|
|
277
|
-
## Bug Description
|
|
278
|
-
Brief description of the bug
|
|
279
|
-
|
|
280
|
-
## Steps to Reproduce
|
|
281
|
-
1. Run command `cl input "test"`
|
|
282
|
-
2. See error
|
|
283
|
-
|
|
284
|
-
## Expected Behavior
|
|
285
|
-
What should happen
|
|
286
|
-
|
|
287
|
-
## Actual Behavior
|
|
288
|
-
What actually happens
|
|
289
|
-
|
|
290
|
-
## Environment
|
|
291
|
-
- OS: macOS 13.0
|
|
292
|
-
- Node.js: 18.17.0
|
|
293
|
-
- CLI Version: 0.2.0
|
|
294
|
-
|
|
295
|
-
## Additional Context
|
|
296
|
-
Any other relevant information
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
## ✨ Feature Requests
|
|
300
|
-
|
|
301
|
-
When requesting features, please include:
|
|
302
|
-
|
|
303
|
-
1. **Clear description** of the feature
|
|
304
|
-
2. **Use case** and motivation
|
|
305
|
-
3. **Proposed implementation** (if you have ideas)
|
|
306
|
-
4. **Alternatives considered**
|
|
307
|
-
5. **Additional context**
|
|
308
|
-
|
|
309
|
-
## 🔍 Pull Request Guidelines
|
|
310
|
-
|
|
311
|
-
### Before Submitting
|
|
312
|
-
|
|
313
|
-
- [ ] Code follows the project's style guidelines
|
|
314
|
-
- [ ] All tests pass
|
|
315
|
-
- [ ] New tests added for new functionality
|
|
316
|
-
- [ ] Documentation updated
|
|
317
|
-
- [ ] Commit messages follow conventional format
|
|
318
|
-
- [ ] Branch is up to date with main
|
|
319
|
-
|
|
320
|
-
### PR Description
|
|
321
|
-
|
|
322
|
-
Include a clear description of your changes:
|
|
323
|
-
|
|
324
|
-
```markdown
|
|
325
|
-
## Description
|
|
326
|
-
Brief description of what this PR does
|
|
327
|
-
|
|
328
|
-
## Changes
|
|
329
|
-
- Added new CLI command `cl status`
|
|
330
|
-
- Updated error handling for API calls
|
|
331
|
-
- Added tests for new functionality
|
|
332
|
-
|
|
333
|
-
## Testing
|
|
334
|
-
- [ ] Unit tests pass
|
|
335
|
-
- [ ] Integration tests pass
|
|
336
|
-
- [ ] Manual testing completed
|
|
337
|
-
|
|
338
|
-
## Breaking Changes
|
|
339
|
-
- None (or list any breaking changes)
|
|
340
|
-
|
|
341
|
-
## Related Issues
|
|
342
|
-
Fixes #123
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
### Review Process
|
|
346
|
-
|
|
347
|
-
1. **Automated checks** must pass
|
|
348
|
-
2. **Code review** by maintainers
|
|
349
|
-
3. **Testing** on multiple environments
|
|
350
|
-
4. **Documentation** review
|
|
351
|
-
5. **Approval** and merge
|
|
352
|
-
|
|
353
|
-
## 🏷️ Release Process
|
|
354
|
-
|
|
355
|
-
We follow semantic versioning:
|
|
356
|
-
|
|
357
|
-
- **MAJOR** (1.0.0): Breaking changes
|
|
358
|
-
- **MINOR** (0.1.0): New features (backward compatible)
|
|
359
|
-
- **PATCH** (0.0.1): Bug fixes (backward compatible)
|
|
360
|
-
|
|
361
|
-
### Release Checklist
|
|
362
|
-
|
|
363
|
-
- [ ] All tests pass
|
|
364
|
-
- [ ] Documentation updated
|
|
365
|
-
- [ ] CHANGELOG.md updated
|
|
366
|
-
- [ ] Version bumped in package.json
|
|
367
|
-
- [ ] Release notes prepared
|
|
368
|
-
- [ ] NPM package published
|
|
369
|
-
|
|
370
|
-
## 🤝 Community Guidelines
|
|
371
|
-
|
|
372
|
-
### Code of Conduct
|
|
373
|
-
|
|
374
|
-
- Be respectful and inclusive
|
|
375
|
-
- Welcome newcomers and help them learn
|
|
376
|
-
- Focus on constructive feedback
|
|
377
|
-
- Respect different opinions and approaches
|
|
378
|
-
- Help maintain a positive environment
|
|
379
|
-
|
|
380
|
-
### Getting Help
|
|
381
|
-
|
|
382
|
-
- **GitHub Issues**: For bugs and feature requests
|
|
383
|
-
- **GitHub Discussions**: For questions and general discussion
|
|
384
|
-
- **Email**: support@closedloop.sh for private matters
|
|
385
|
-
|
|
386
|
-
## 📋 Development Commands
|
|
387
|
-
|
|
388
|
-
```bash
|
|
389
|
-
# Install dependencies
|
|
390
|
-
npm install
|
|
391
|
-
|
|
392
|
-
# Build all packages
|
|
393
|
-
npm run build
|
|
394
|
-
|
|
395
|
-
# Run all tests
|
|
396
|
-
npm test
|
|
397
|
-
|
|
398
|
-
# Run tests with coverage
|
|
399
|
-
npm run test:coverage
|
|
400
|
-
|
|
401
|
-
# Run linting
|
|
402
|
-
npm run lint
|
|
403
|
-
|
|
404
|
-
# Fix linting issues
|
|
405
|
-
npm run lint:fix
|
|
406
|
-
|
|
407
|
-
# Clean build artifacts
|
|
408
|
-
npm run clean
|
|
409
|
-
|
|
410
|
-
# Build specific package
|
|
411
|
-
npm run build:core
|
|
412
|
-
npm run build:cli
|
|
413
|
-
|
|
414
|
-
# Test specific package
|
|
415
|
-
npm run test:core
|
|
416
|
-
npm run test:cli
|
|
417
|
-
```
|
|
418
|
-
|
|
419
|
-
## 🎯 Areas for Contribution
|
|
420
|
-
|
|
421
|
-
We especially welcome contributions in these areas:
|
|
422
|
-
|
|
423
|
-
- **New CLI commands** and features
|
|
424
|
-
- **Improved error handling** and user experience
|
|
425
|
-
- **Additional examples** and documentation
|
|
426
|
-
- **Performance optimizations**
|
|
427
|
-
- **Test coverage improvements**
|
|
428
|
-
- **Cross-platform compatibility**
|
|
429
|
-
- **Integration examples** for popular frameworks
|
|
430
|
-
|
|
431
|
-
## 📞 Contact
|
|
432
|
-
|
|
433
|
-
- **Maintainers**: @closedloop-team
|
|
434
|
-
- **Email**: team@closedloop.sh
|
|
435
|
-
- **GitHub**: [closed-loop-ai/closedloop-cli](https://github.com/closed-loop-ai/closedloop-cli)
|
|
436
|
-
|
|
437
|
-
Thank you for contributing to the ClosedLoop AI CLI! 🎉
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 ClosedLoop Labs LLC
|
|
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.
|