specchain-pro 0.1.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 +68 -0
- package/CONTRIBUTING.md +397 -0
- package/DEPLOYMENT_OPTIONS.md +358 -0
- package/DEPLOY_WITHOUT_NPM.md +443 -0
- package/ENABLE_2FA.md +133 -0
- package/LICENSE +21 -0
- package/NPM_PUBLISH_STEPS.md +432 -0
- package/PUBLISH_COMMANDS.txt +61 -0
- package/QUICK_DEPLOY.md +206 -0
- package/README.md +264 -0
- package/YOUR_DEPLOYMENT_CHECKLIST.md +268 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +182 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/config.d.ts +14 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +143 -0
- package/dist/core/config.js.map +1 -0
- package/dist/types/index.d.ts +142 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +46 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/logger.d.ts +9 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +79 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +69 -0
- package/scripts/deploy-github.ps1 +108 -0
- package/scripts/deploy-github.sh +96 -0
- package/scripts/deploy.ps1 +183 -0
- package/scripts/deploy.sh +159 -0
- package/setup-git.ps1 +30 -0
- package/setup-git.sh +32 -0
package/README.md
ADDED
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
# SpecChain Pro
|
|
2
|
+
|
|
3
|
+
> AI-powered specification generation with blockchain proof-of-authorship
|
|
4
|
+
|
|
5
|
+
[](https://github.com/yourusername/specchain-pro)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](https://nodejs.org)
|
|
8
|
+
|
|
9
|
+
## 🚀 Quick Start
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Install dependencies
|
|
13
|
+
npm install
|
|
14
|
+
|
|
15
|
+
# Build the project
|
|
16
|
+
npm run build
|
|
17
|
+
|
|
18
|
+
# Run in development mode
|
|
19
|
+
npm run dev -- new "Your idea here"
|
|
20
|
+
|
|
21
|
+
# Run tests
|
|
22
|
+
npm test
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 📋 Features
|
|
26
|
+
|
|
27
|
+
### MVP (Current Phase)
|
|
28
|
+
- ✅ Project structure and configuration
|
|
29
|
+
- 🚧 AI-powered spec generation (in progress)
|
|
30
|
+
- 🚧 Blockchain proof-of-authorship (in progress)
|
|
31
|
+
- 🚧 Cryptographic verification (in progress)
|
|
32
|
+
- 🚧 CLI interface (in progress)
|
|
33
|
+
- 🚧 Local storage (in progress)
|
|
34
|
+
|
|
35
|
+
### Coming Soon
|
|
36
|
+
- Remix system with attribution
|
|
37
|
+
- Public feed for spec discovery
|
|
38
|
+
- Export to multiple formats
|
|
39
|
+
- Local AI support for offline operation
|
|
40
|
+
- Web application interface
|
|
41
|
+
|
|
42
|
+
## 🛠️ Installation
|
|
43
|
+
|
|
44
|
+
### Prerequisites
|
|
45
|
+
- Node.js >= 18.0.0
|
|
46
|
+
- npm or yarn
|
|
47
|
+
|
|
48
|
+
### Option 1: Install from GitHub (Recommended)
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npm install -g github:yourusername/specchain-pro
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Option 2: Install from Source
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
git clone https://github.com/yourusername/specchain-pro.git
|
|
58
|
+
cd specchain-pro
|
|
59
|
+
npm install
|
|
60
|
+
npm run build
|
|
61
|
+
npm link # Make 'spec' command available globally
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Option 3: Install from npm (When Published)
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
npm install -g specchain-pro
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
> **Note**: npm publishing is optional. See [DEPLOY_WITHOUT_NPM.md](DEPLOY_WITHOUT_NPM.md) for alternative deployment methods.
|
|
71
|
+
|
|
72
|
+
## 📖 Usage
|
|
73
|
+
|
|
74
|
+
### Generate a new specification
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
spec new "Build a real-time chat application with WebRTC"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Sign a specification (create blockchain proof)
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
spec sign spec-123
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Verify a specification
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
spec verify spec-123
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### List all specifications
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
spec list
|
|
96
|
+
spec list --tags "web,api"
|
|
97
|
+
spec list --author "0xYourAddress"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Export a specification
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
spec export spec-123 markdown
|
|
104
|
+
spec export spec-123 json --output ./my-spec.json
|
|
105
|
+
spec export spec-123 github
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Manage configuration
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
spec config show
|
|
112
|
+
spec config set --key ai.provider --value openai
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## ⚙️ Configuration
|
|
116
|
+
|
|
117
|
+
Configuration is stored in `~/.specchain/config.json`. You can edit it manually or use the CLI:
|
|
118
|
+
|
|
119
|
+
```json
|
|
120
|
+
{
|
|
121
|
+
"ai": {
|
|
122
|
+
"provider": "openai",
|
|
123
|
+
"model": "gpt-4",
|
|
124
|
+
"temperature": 0.7,
|
|
125
|
+
"maxTokens": 2000
|
|
126
|
+
},
|
|
127
|
+
"blockchain": {
|
|
128
|
+
"network": "testnet",
|
|
129
|
+
"rpcUrl": "https://sepolia.infura.io/v3/YOUR_KEY",
|
|
130
|
+
"contractAddress": "0x...",
|
|
131
|
+
"gasLimit": 500000
|
|
132
|
+
},
|
|
133
|
+
"storage": {
|
|
134
|
+
"basePath": "~/.specchain",
|
|
135
|
+
"maxVersionHistory": 50
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Environment Variables
|
|
141
|
+
|
|
142
|
+
You can override configuration with environment variables:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
export OPENAI_API_KEY="your-api-key"
|
|
146
|
+
export BLOCKCHAIN_RPC_URL="https://your-rpc-url"
|
|
147
|
+
export CONTRACT_ADDRESS="0x..."
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## 🧪 Development
|
|
151
|
+
|
|
152
|
+
### Project Structure
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
specchain-pro/
|
|
156
|
+
├── src/
|
|
157
|
+
│ ├── cli/ # CLI interface
|
|
158
|
+
│ ├── core/ # Core orchestration
|
|
159
|
+
│ ├── ai/ # AI spec engine
|
|
160
|
+
│ ├── blockchain/ # Blockchain proof layer
|
|
161
|
+
│ ├── storage/ # Local storage
|
|
162
|
+
│ ├── export/ # Export system
|
|
163
|
+
│ ├── utils/ # Utilities
|
|
164
|
+
│ └── types/ # TypeScript types
|
|
165
|
+
├── dist/ # Compiled output
|
|
166
|
+
├── tests/ # Test files
|
|
167
|
+
└── docs/ # Documentation
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Running Tests
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
# Run all tests
|
|
174
|
+
npm test
|
|
175
|
+
|
|
176
|
+
# Run tests in watch mode
|
|
177
|
+
npm run test:watch
|
|
178
|
+
|
|
179
|
+
# Run with coverage
|
|
180
|
+
npm test -- --coverage
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Linting and Formatting
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
# Lint code
|
|
187
|
+
npm run lint
|
|
188
|
+
|
|
189
|
+
# Format code
|
|
190
|
+
npm run format
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## 📚 Documentation
|
|
194
|
+
|
|
195
|
+
- [Problem Statement](.kiro/specs/specchain-pro/problem-statement.md)
|
|
196
|
+
- [Solution Proposal](.kiro/specs/specchain-pro/solution-proposal.md)
|
|
197
|
+
- [Product Roadmap](.kiro/specs/specchain-pro/roadmap.md)
|
|
198
|
+
- [Requirements](.kiro/specs/specchain-pro/requirements.md)
|
|
199
|
+
- [Design Document](.kiro/specs/specchain-pro/design.md)
|
|
200
|
+
- [Implementation Tasks](.kiro/specs/specchain-pro/tasks.md)
|
|
201
|
+
|
|
202
|
+
## 🗺️ Roadmap
|
|
203
|
+
|
|
204
|
+
### Phase 1: MVP (Months 1-4) - Current
|
|
205
|
+
- [x] Project setup and infrastructure
|
|
206
|
+
- [ ] Local storage layer
|
|
207
|
+
- [ ] Cryptographic hashing
|
|
208
|
+
- [ ] Blockchain proof layer
|
|
209
|
+
- [ ] AI spec engine
|
|
210
|
+
- [ ] CLI interface
|
|
211
|
+
- [ ] Export system
|
|
212
|
+
|
|
213
|
+
### Phase 2: Growth (Months 5-8)
|
|
214
|
+
- [ ] Remix and lineage system
|
|
215
|
+
- [ ] Public feed layer
|
|
216
|
+
- [ ] Local AI support
|
|
217
|
+
- [ ] Layer 2 optimization
|
|
218
|
+
|
|
219
|
+
### Phase 3: Web App (Months 9-12)
|
|
220
|
+
- [ ] React web application
|
|
221
|
+
- [ ] Wallet integration
|
|
222
|
+
- [ ] Visual spec creation
|
|
223
|
+
- [ ] Public feed browsing
|
|
224
|
+
|
|
225
|
+
### Phase 4: Scale (Months 13-18)
|
|
226
|
+
- [ ] Team collaboration
|
|
227
|
+
- [ ] Third-party integrations
|
|
228
|
+
- [ ] Enterprise features
|
|
229
|
+
- [ ] Community ecosystem
|
|
230
|
+
|
|
231
|
+
## 🤝 Contributing
|
|
232
|
+
|
|
233
|
+
Contributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) for details.
|
|
234
|
+
|
|
235
|
+
1. Fork the repository
|
|
236
|
+
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
|
237
|
+
3. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
238
|
+
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
239
|
+
5. Open a Pull Request
|
|
240
|
+
|
|
241
|
+
## 📄 License
|
|
242
|
+
|
|
243
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
244
|
+
|
|
245
|
+
## 🙏 Acknowledgments
|
|
246
|
+
|
|
247
|
+
- OpenAI for GPT-4 API
|
|
248
|
+
- Ethereum and Layer 2 communities
|
|
249
|
+
- All contributors and supporters
|
|
250
|
+
|
|
251
|
+
## 📞 Support
|
|
252
|
+
|
|
253
|
+
- Documentation: [docs/](docs/)
|
|
254
|
+
- Issues: [GitHub Issues](https://github.com/yourusername/specchain-pro/issues)
|
|
255
|
+
- Discussions: [GitHub Discussions](https://github.com/yourusername/specchain-pro/discussions)
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
**Status:** 🚧 MVP Development in Progress
|
|
260
|
+
|
|
261
|
+
**Version:** 0.1.0 (Alpha)
|
|
262
|
+
|
|
263
|
+
**Last Updated:** January 2025
|
|
264
|
+
"# specchain-pro"
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
# Your Deployment Checklist - luxmikant/specchain-pro
|
|
2
|
+
|
|
3
|
+
## ✅ Pre-Deployment (Already Done!)
|
|
4
|
+
|
|
5
|
+
- [x] package.json updated with your info
|
|
6
|
+
- Author: Luxmikant <luxmikant@outlook.com>
|
|
7
|
+
- Repository: https://github.com/luxmikant/specchain-pro.git
|
|
8
|
+
- [x] Project structure created
|
|
9
|
+
- [x] All documentation ready
|
|
10
|
+
- [x] Build system configured
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 🚀 Deploy to GitHub (5 minutes)
|
|
15
|
+
|
|
16
|
+
### Option 1: Automated Script (Recommended)
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# Windows
|
|
20
|
+
.\setup-git.ps1
|
|
21
|
+
|
|
22
|
+
# Linux/Mac
|
|
23
|
+
chmod +x setup-git.sh
|
|
24
|
+
./setup-git.sh
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Option 2: Manual Commands
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# 1. Initialize git
|
|
31
|
+
git init
|
|
32
|
+
|
|
33
|
+
# 2. Add all files
|
|
34
|
+
git add .
|
|
35
|
+
|
|
36
|
+
# 3. Create initial commit
|
|
37
|
+
git commit -m "Initial commit: SpecChain Pro v0.1.0 MVP base"
|
|
38
|
+
|
|
39
|
+
# 4. Set main branch
|
|
40
|
+
git branch -M main
|
|
41
|
+
|
|
42
|
+
# 5. Add remote
|
|
43
|
+
git remote add origin https://github.com/luxmikant/specchain-pro.git
|
|
44
|
+
|
|
45
|
+
# 6. Push to GitHub
|
|
46
|
+
git push -u origin main
|
|
47
|
+
|
|
48
|
+
# 7. Create release tag
|
|
49
|
+
git tag -a v0.1.0 -m "Release v0.1.0: MVP Base Foundation"
|
|
50
|
+
git push origin v0.1.0
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 📦 Publish to npm (10 minutes)
|
|
56
|
+
|
|
57
|
+
### Step 1: Create npm Account (if needed)
|
|
58
|
+
|
|
59
|
+
Go to: https://www.npmjs.com/signup
|
|
60
|
+
|
|
61
|
+
Or use CLI:
|
|
62
|
+
```bash
|
|
63
|
+
npm adduser
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Step 2: Login
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npm login
|
|
70
|
+
# Enter your npm username, password, and email
|
|
71
|
+
# Email: luxmikant@outlook.com
|
|
72
|
+
|
|
73
|
+
# Verify
|
|
74
|
+
npm whoami
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Step 3: Build
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
npm run build
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Step 4: Test Locally
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
npm link
|
|
87
|
+
spec --version
|
|
88
|
+
spec --help
|
|
89
|
+
npm unlink -g specchain-pro
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Step 5: Dry Run
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
npm publish --dry-run
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Step 6: Publish!
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
npm publish
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Step 7: Verify
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
npm view specchain-pro
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Visit: https://www.npmjs.com/package/specchain-pro
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 🎯 Post-Deployment
|
|
115
|
+
|
|
116
|
+
### Create GitHub Release
|
|
117
|
+
|
|
118
|
+
1. Go to: https://github.com/luxmikant/specchain-pro/releases/new
|
|
119
|
+
2. Select tag: `v0.1.0`
|
|
120
|
+
3. Title: `v0.1.0 - MVP Base Foundation`
|
|
121
|
+
4. Description:
|
|
122
|
+
|
|
123
|
+
```markdown
|
|
124
|
+
## 🎉 SpecChain Pro v0.1.0 - MVP Base Foundation
|
|
125
|
+
|
|
126
|
+
First release! Now available on npm.
|
|
127
|
+
|
|
128
|
+
### 📦 Installation
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
npm install -g specchain-pro
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### ✅ Features
|
|
135
|
+
- Complete project infrastructure
|
|
136
|
+
- CLI interface with 6 commands
|
|
137
|
+
- Configuration management
|
|
138
|
+
- Error handling and logging
|
|
139
|
+
- Comprehensive documentation
|
|
140
|
+
|
|
141
|
+
### 🚧 Coming Soon
|
|
142
|
+
- Local storage layer
|
|
143
|
+
- Blockchain proof layer
|
|
144
|
+
- AI spec engine
|
|
145
|
+
|
|
146
|
+
### 🔗 Links
|
|
147
|
+
- npm: https://www.npmjs.com/package/specchain-pro
|
|
148
|
+
- GitHub: https://github.com/luxmikant/specchain-pro
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
5. Click "Publish release"
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 📢 Announce Your Project
|
|
156
|
+
|
|
157
|
+
### Twitter/X
|
|
158
|
+
```
|
|
159
|
+
🚀 Just published SpecChain Pro v0.1.0 to npm!
|
|
160
|
+
|
|
161
|
+
AI-powered specification generation with blockchain proof-of-authorship.
|
|
162
|
+
|
|
163
|
+
Install: npm install -g specchain-pro
|
|
164
|
+
|
|
165
|
+
✨ Transform ideas into structured specs
|
|
166
|
+
🔐 Blockchain-based proof of ownership
|
|
167
|
+
⚡ CLI-first developer experience
|
|
168
|
+
|
|
169
|
+
#opensource #nodejs #blockchain #ai
|
|
170
|
+
|
|
171
|
+
https://www.npmjs.com/package/specchain-pro
|
|
172
|
+
https://github.com/luxmikant/specchain-pro
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Reddit
|
|
176
|
+
- r/node
|
|
177
|
+
- r/programming
|
|
178
|
+
- r/javascript
|
|
179
|
+
- r/opensource
|
|
180
|
+
|
|
181
|
+
### Dev.to
|
|
182
|
+
Write a launch post about your project
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## 🔄 Future Updates
|
|
187
|
+
|
|
188
|
+
When you add new features:
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
# 1. Make changes and build
|
|
192
|
+
npm run build
|
|
193
|
+
|
|
194
|
+
# 2. Update version
|
|
195
|
+
npm version patch # 0.1.0 → 0.1.1
|
|
196
|
+
npm version minor # 0.1.0 → 0.2.0
|
|
197
|
+
npm version major # 0.1.0 → 1.0.0
|
|
198
|
+
|
|
199
|
+
# 3. Publish
|
|
200
|
+
npm publish
|
|
201
|
+
|
|
202
|
+
# 4. Push to GitHub
|
|
203
|
+
git push && git push --tags
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Or use automated script:
|
|
207
|
+
```bash
|
|
208
|
+
# Windows
|
|
209
|
+
.\scripts\deploy.ps1
|
|
210
|
+
|
|
211
|
+
# Linux/Mac
|
|
212
|
+
./scripts/deploy.sh
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## 📊 Monitor Your Package
|
|
218
|
+
|
|
219
|
+
### npm
|
|
220
|
+
- Package: https://www.npmjs.com/package/specchain-pro
|
|
221
|
+
- Stats: https://npm-stat.com/charts.html?package=specchain-pro
|
|
222
|
+
|
|
223
|
+
### GitHub
|
|
224
|
+
- Repository: https://github.com/luxmikant/specchain-pro
|
|
225
|
+
- Issues: https://github.com/luxmikant/specchain-pro/issues
|
|
226
|
+
- Stars: Track your growth!
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## ✅ Final Checklist
|
|
231
|
+
|
|
232
|
+
- [ ] GitHub repository created
|
|
233
|
+
- [ ] Code pushed to GitHub
|
|
234
|
+
- [ ] Release tag created (v0.1.0)
|
|
235
|
+
- [ ] npm account created
|
|
236
|
+
- [ ] Logged in to npm
|
|
237
|
+
- [ ] Package published to npm
|
|
238
|
+
- [ ] GitHub release created
|
|
239
|
+
- [ ] Installation tested
|
|
240
|
+
- [ ] Announced on social media
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## 🎉 You're Live!
|
|
245
|
+
|
|
246
|
+
Once completed, your package will be available at:
|
|
247
|
+
|
|
248
|
+
- **npm**: https://www.npmjs.com/package/specchain-pro
|
|
249
|
+
- **GitHub**: https://github.com/luxmikant/specchain-pro
|
|
250
|
+
|
|
251
|
+
Users can install with:
|
|
252
|
+
```bash
|
|
253
|
+
npm install -g specchain-pro
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## 📞 Need Help?
|
|
259
|
+
|
|
260
|
+
- Check: `NPM_PUBLISH_STEPS.md` for detailed steps
|
|
261
|
+
- Check: `DEPLOYMENT_GUIDE.md` for full guide
|
|
262
|
+
- Check: `PUBLISH_COMMANDS.txt` for quick commands
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
**Ready to deploy? Let's go! 🚀**
|
|
267
|
+
|
|
268
|
+
Start with: `.\setup-git.ps1` (Windows) or `./setup-git.sh` (Linux/Mac)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const config_1 = require("../core/config");
|
|
10
|
+
const logger_1 = __importDefault(require("../utils/logger"));
|
|
11
|
+
const program = new commander_1.Command();
|
|
12
|
+
// CLI metadata
|
|
13
|
+
program
|
|
14
|
+
.name('spec')
|
|
15
|
+
.description('SpecChain Pro - AI-powered specification generation with blockchain proof-of-authorship')
|
|
16
|
+
.version('0.1.0');
|
|
17
|
+
// Global options
|
|
18
|
+
program
|
|
19
|
+
.option('-v, --verbose', 'Enable verbose logging')
|
|
20
|
+
.option('-c, --config <path>', 'Path to custom config file');
|
|
21
|
+
// Command: spec new
|
|
22
|
+
program
|
|
23
|
+
.command('new [idea]')
|
|
24
|
+
.description('Generate a new specification from an idea summary')
|
|
25
|
+
.option('-o, --output <path>', 'Output file path')
|
|
26
|
+
.action(async (idea, _options) => {
|
|
27
|
+
try {
|
|
28
|
+
console.log(chalk_1.default.blue('🚀 Generating specification...'));
|
|
29
|
+
if (!idea) {
|
|
30
|
+
console.log(chalk_1.default.yellow('Please provide an idea summary:'));
|
|
31
|
+
console.log(chalk_1.default.gray('Example: spec new "Build a real-time chat app with WebRTC"'));
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
// TODO: Implement AI spec generation
|
|
35
|
+
console.log(chalk_1.default.green('✓ Specification generated successfully!'));
|
|
36
|
+
console.log(chalk_1.default.gray('Note: AI generation not yet implemented'));
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
console.error(chalk_1.default.red('✗ Failed to generate specification'));
|
|
40
|
+
if (program.opts().verbose) {
|
|
41
|
+
console.error(error);
|
|
42
|
+
}
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
// Command: spec sign
|
|
47
|
+
program
|
|
48
|
+
.command('sign <spec-id>')
|
|
49
|
+
.description('Create a blockchain proof-of-authorship for a specification')
|
|
50
|
+
.action(async (_specId) => {
|
|
51
|
+
try {
|
|
52
|
+
console.log(chalk_1.default.blue('🔐 Creating blockchain proof...'));
|
|
53
|
+
// TODO: Implement blockchain signing
|
|
54
|
+
console.log(chalk_1.default.green('✓ Blockchain proof created successfully!'));
|
|
55
|
+
console.log(chalk_1.default.gray('Note: Blockchain integration not yet implemented'));
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
console.error(chalk_1.default.red('✗ Failed to create blockchain proof'));
|
|
59
|
+
if (program.opts().verbose) {
|
|
60
|
+
console.error(error);
|
|
61
|
+
}
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
// Command: spec verify
|
|
66
|
+
program
|
|
67
|
+
.command('verify <spec-id>')
|
|
68
|
+
.description('Verify a specification against its blockchain proof')
|
|
69
|
+
.action(async (_specId) => {
|
|
70
|
+
try {
|
|
71
|
+
console.log(chalk_1.default.blue('🔍 Verifying specification...'));
|
|
72
|
+
// TODO: Implement verification
|
|
73
|
+
console.log(chalk_1.default.green('✓ Specification verified successfully!'));
|
|
74
|
+
console.log(chalk_1.default.gray('Note: Verification not yet implemented'));
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
console.error(chalk_1.default.red('✗ Verification failed'));
|
|
78
|
+
if (program.opts().verbose) {
|
|
79
|
+
console.error(error);
|
|
80
|
+
}
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
// Command: spec list
|
|
85
|
+
program
|
|
86
|
+
.command('list')
|
|
87
|
+
.description('List all local specifications')
|
|
88
|
+
.option('-t, --tags <tags>', 'Filter by tags (comma-separated)')
|
|
89
|
+
.option('-a, --author <author>', 'Filter by author')
|
|
90
|
+
.action(async (_options) => {
|
|
91
|
+
try {
|
|
92
|
+
console.log(chalk_1.default.blue('📋 Listing specifications...'));
|
|
93
|
+
// TODO: Implement list functionality
|
|
94
|
+
console.log(chalk_1.default.gray('No specifications found'));
|
|
95
|
+
console.log(chalk_1.default.gray('Note: Storage layer not yet implemented'));
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.error(chalk_1.default.red('✗ Failed to list specifications'));
|
|
99
|
+
if (program.opts().verbose) {
|
|
100
|
+
console.error(error);
|
|
101
|
+
}
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
// Command: spec export
|
|
106
|
+
program
|
|
107
|
+
.command('export <spec-id> <format>')
|
|
108
|
+
.description('Export a specification to different formats (markdown, json, github)')
|
|
109
|
+
.option('-o, --output <path>', 'Output file path')
|
|
110
|
+
.action(async (specId, format, _options) => {
|
|
111
|
+
try {
|
|
112
|
+
console.log(chalk_1.default.blue(`📤 Exporting specification to ${format}...`));
|
|
113
|
+
// TODO: Implement export functionality
|
|
114
|
+
console.log(chalk_1.default.green('✓ Specification exported successfully!'));
|
|
115
|
+
console.log(chalk_1.default.gray('Note: Export system not yet implemented'));
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
console.error(chalk_1.default.red('✗ Export failed'));
|
|
119
|
+
if (program.opts().verbose) {
|
|
120
|
+
console.error(error);
|
|
121
|
+
}
|
|
122
|
+
process.exit(1);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
// Command: spec config
|
|
126
|
+
program
|
|
127
|
+
.command('config [action]')
|
|
128
|
+
.description('View or update configuration (actions: show, set)')
|
|
129
|
+
.option('-k, --key <key>', 'Configuration key to set')
|
|
130
|
+
.option('-v, --value <value>', 'Configuration value')
|
|
131
|
+
.action(async (action, options) => {
|
|
132
|
+
try {
|
|
133
|
+
if (!action || action === 'show') {
|
|
134
|
+
console.log(chalk_1.default.blue('⚙️ Current configuration:'));
|
|
135
|
+
const config = await config_1.configManager.load();
|
|
136
|
+
console.log(JSON.stringify(config, null, 2));
|
|
137
|
+
}
|
|
138
|
+
else if (action === 'set') {
|
|
139
|
+
if (!options.key || !options.value) {
|
|
140
|
+
console.log(chalk_1.default.yellow('Please provide both --key and --value'));
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
console.log(chalk_1.default.blue('⚙️ Updating configuration...'));
|
|
144
|
+
// TODO: Implement config update
|
|
145
|
+
console.log(chalk_1.default.green('✓ Configuration updated successfully!'));
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
console.log(chalk_1.default.yellow(`Unknown action: ${action}`));
|
|
149
|
+
console.log(chalk_1.default.gray('Available actions: show, set'));
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
console.error(chalk_1.default.red('✗ Configuration operation failed'));
|
|
154
|
+
if (program.opts().verbose) {
|
|
155
|
+
console.error(error);
|
|
156
|
+
}
|
|
157
|
+
process.exit(1);
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
// Initialize and parse
|
|
161
|
+
async function main() {
|
|
162
|
+
try {
|
|
163
|
+
// Set log level based on verbose flag
|
|
164
|
+
if (program.opts().verbose) {
|
|
165
|
+
process.env.LOG_LEVEL = 'debug';
|
|
166
|
+
}
|
|
167
|
+
// Initialize configuration
|
|
168
|
+
await config_1.configManager.load();
|
|
169
|
+
// Parse command line arguments
|
|
170
|
+
await program.parseAsync(process.argv);
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
logger_1.default.error('CLI initialization failed', { error });
|
|
174
|
+
console.error(chalk_1.default.red('✗ Failed to initialize SpecChain Pro'));
|
|
175
|
+
if (program.opts().verbose) {
|
|
176
|
+
console.error(error);
|
|
177
|
+
}
|
|
178
|
+
process.exit(1);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
main();
|
|
182
|
+
//# sourceMappingURL=index.js.map
|