seosona-cli 2.0.0 → 2.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.
- package/README.md +377 -0
- package/package.json +9 -1
- package/scripts/bundle-soul.js +7 -0
package/README.md
ADDED
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
███████╗███████╗ ██████╗ ███████╗ ██████╗ ███╗ ██╗ █████╗ ██████╗ ███████╗
|
|
5
|
+
██╔════╝██╔════╝██╔═══██╗██╔════╝██╔═══██╗████╗ ██║██╔══██╗ ██╔═══██╗██╔════╝
|
|
6
|
+
███████╗█████╗ ██║ ██║███████╗██║ ██║██╔██╗ ██║███████║ ██║ ██║███████╗
|
|
7
|
+
╚════██║██╔══╝ ██║ ██║╚════██║██║ ██║██║╚██╗██║██╔══██║ ██║ ██║╚════██║
|
|
8
|
+
███████║███████╗╚██████╔╝███████║╚██████╔╝██║ ╚████║██║ ██║ ╚██████╔╝███████║
|
|
9
|
+
╚══════╝╚══════╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
**The Universal AI Operating System for Senior Developers**
|
|
13
|
+
|
|
14
|
+
[](https://opensource.org/licenses/MIT)
|
|
15
|
+
[](https://github.com/LongLeo287/SEOSONA-OS)
|
|
16
|
+
[](https://github.com/LongLeo287/SEOSONA-OS)
|
|
17
|
+
[](https://nodejs.org)
|
|
18
|
+
[](https://github.com/LongLeo287/SEOSONA-OS/pulls)
|
|
19
|
+
|
|
20
|
+
*One setup. Every AI tool. Everywhere.*
|
|
21
|
+
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 🧠 What is SEOSONA OS?
|
|
27
|
+
|
|
28
|
+
SEOSONA OS is a **Universal AI Operating System** — a self-installing, self-scanning environment that automatically detects every AI coding tool installed on your machine and injects a unified **Master Intelligence Layer** (your `SOUL.md`) into each one.
|
|
29
|
+
|
|
30
|
+
No more copy-pasting system prompts. No more configuring each tool separately. No more AI that doesn't know who you are, how you work, or what rules you follow.
|
|
31
|
+
|
|
32
|
+
**Run one command. Every AI on your machine becomes SEOSONA.**
|
|
33
|
+
|
|
34
|
+
> *"You are not a simple chatbot; you are an end-to-end operational agent."* — SOUL.md, Prime Directive
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## ✨ Key Features
|
|
39
|
+
|
|
40
|
+
| Feature | Description |
|
|
41
|
+
|---|---|
|
|
42
|
+
| 🔍 **Omni-Scanner** | Auto-detects every installed IDE and CLI tool on your machine |
|
|
43
|
+
| 🧬 **DNA Injection** | Injects full `SOUL.md` content (not just a pointer) directly into each tool |
|
|
44
|
+
| 🌍 **Cross-Platform** | Works on Windows (PowerShell), macOS and Linux (Node.js CLI) |
|
|
45
|
+
| 🔒 **Zero Hardcodes** | All paths are computed at runtime — portable across any machine |
|
|
46
|
+
| ⚡ **1-Click Setup** | Double-click `install.bat` or run `npm install -g seosona-cli` |
|
|
47
|
+
| 🧩 **Modular Skills** | 20+ skill frameworks covering SEO, Frontend, Security, Testing, and more |
|
|
48
|
+
| 🧠 **MemPalace Architecture** | Structured spatial memory system for persistent AI context |
|
|
49
|
+
| 🚨 **OmniClaw Protocol** | Zero-tolerance ruleset preventing AI from bypassing workflows |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 🛠️ Tool Coverage
|
|
54
|
+
|
|
55
|
+
SEOSONA OS automatically detects and configures the following tools:
|
|
56
|
+
|
|
57
|
+
### 🖥️ IDEs
|
|
58
|
+
| Tool | Injection Method | Config Target |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| **Cursor** | `settings.json` | `cursor.general.rules` |
|
|
61
|
+
| **Windsurf** | `settings.json` | `windsurf.general.rules` |
|
|
62
|
+
| **PearAI** | `settings.json` | `pearai.general.rules` |
|
|
63
|
+
| **Trae** | `settings.json` | `trae.general.rules` |
|
|
64
|
+
| **VSCode** | `settings.json` | `github.copilot.chat.*`, `cline.customInstructions`, `roo-cline.customInstructions` |
|
|
65
|
+
| **VSCodium** | `settings.json` | Same as VSCode |
|
|
66
|
+
|
|
67
|
+
### ⌨️ CLI Tools
|
|
68
|
+
| Tool | Injection Method | Config Target |
|
|
69
|
+
|---|---|---|
|
|
70
|
+
| **Claude CLI** | PowerShell wrapper function | `--system-prompt` flag |
|
|
71
|
+
| **Aider** | `~/.aider.conf.yml` | `system-prompt` field |
|
|
72
|
+
| **OpenInterpreter** | `config.yaml` | `system_message` field |
|
|
73
|
+
| **Codex** | `~/.codex/AGENTS.md` | Prepended content |
|
|
74
|
+
| **SecureCoder** | `~/.securecoder/AGENTS.md` | Prepended content |
|
|
75
|
+
| **Continue.dev** | `~/.continue/config.json` | `systemMessage` field |
|
|
76
|
+
|
|
77
|
+
### 🤖 Environment Variables (Antigravity & Custom CLIs)
|
|
78
|
+
| Variable | Purpose |
|
|
79
|
+
|---|---|
|
|
80
|
+
| `ANTIGRAVITY_SYSTEM_PROMPT` | Injects SOUL into Antigravity IDE |
|
|
81
|
+
| `SEOSONA_MASTER_PROMPT` | Universal variable for any custom tool |
|
|
82
|
+
| `AIDER_SYSTEM_PROMPT` | Backup injection for Aider |
|
|
83
|
+
|
|
84
|
+
### 📁 Project-Local Files (`seosona-init`)
|
|
85
|
+
When you run `seosona init` in a project folder, it generates only the files relevant to your installed tools:
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
.cursorrules # Cursor IDE
|
|
89
|
+
.windsurfrules # Windsurf IDE
|
|
90
|
+
.clauderules # Claude CLI
|
|
91
|
+
.clinerules # Cline extension
|
|
92
|
+
.roomodes # Roo Code extension
|
|
93
|
+
.aider.conf.yml # Aider CLI
|
|
94
|
+
.antigravityrules # Antigravity IDE
|
|
95
|
+
.codexrules # OpenAI Codex
|
|
96
|
+
.securecoderrules # SecureCoder
|
|
97
|
+
.openinterpreter # OpenInterpreter
|
|
98
|
+
.github/copilot-instructions.md # GitHub Copilot Enterprise
|
|
99
|
+
.cody/prompt # Sourcegraph Cody
|
|
100
|
+
.bolt/prompt # Bolt.new
|
|
101
|
+
.lovable/prompt # Lovable.dev
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
> **Smart Detection:** Files are only created for tools that are actually installed on your machine. No phantom files for tools you don't have.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 🚀 Installation
|
|
109
|
+
|
|
110
|
+
### Method 1: Windows (PowerShell) — Recommended for Windows Users
|
|
111
|
+
|
|
112
|
+
```bat
|
|
113
|
+
# Double-click install.bat
|
|
114
|
+
# OR run in PowerShell:
|
|
115
|
+
powershell -ExecutionPolicy Bypass -File setup.ps1
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Method 2: Node.js CLI — Cross-Platform (Windows / macOS / Linux)
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# Navigate to the cli/ folder
|
|
122
|
+
cd cli
|
|
123
|
+
|
|
124
|
+
# Install globally
|
|
125
|
+
npm install -g .
|
|
126
|
+
|
|
127
|
+
# Run setup
|
|
128
|
+
seosona setup
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Method 3: Clone & Run (Any Platform)
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# Clone the repository
|
|
135
|
+
git clone https://github.com/LongLeo287/SEOSONA-OS.git
|
|
136
|
+
|
|
137
|
+
# Windows
|
|
138
|
+
cd SEOSONA-OS
|
|
139
|
+
powershell -ExecutionPolicy Bypass -File setup.ps1
|
|
140
|
+
|
|
141
|
+
# macOS / Linux
|
|
142
|
+
cd SEOSONA-OS/cli
|
|
143
|
+
npm install -g .
|
|
144
|
+
seosona setup
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 📖 Usage
|
|
150
|
+
|
|
151
|
+
### For Non-Technical Users (Zero-Touch)
|
|
152
|
+
|
|
153
|
+
Just run setup once. SEOSONA OS handles everything automatically. Every IDE you open from that point on will operate under SEOSONA rules.
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
install.bat ← Double-click. Done.
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### For Developers (Expert Mode)
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# Global machine setup (run once per machine)
|
|
163
|
+
seosona setup
|
|
164
|
+
|
|
165
|
+
# Bind a project (run once per project folder)
|
|
166
|
+
cd /path/to/your/project
|
|
167
|
+
seosona init
|
|
168
|
+
|
|
169
|
+
# Check what was injected
|
|
170
|
+
seosona setup # Re-run anytime to verify state
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Binding a New Project with PowerShell
|
|
174
|
+
|
|
175
|
+
```powershell
|
|
176
|
+
cd C:\your\project
|
|
177
|
+
seosona-init
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## 🏗️ Repository Structure
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
SEOSONA OS/
|
|
186
|
+
│
|
|
187
|
+
├── 📂 1_CORE/ # The Brain — Core intelligence layer
|
|
188
|
+
│ ├── 🧠 SOUL.md # Master system prompt (9,400+ chars)
|
|
189
|
+
│ └── 📂 rules/ # Security, API, and interface rules
|
|
190
|
+
│ ├── security_regex_rules.md
|
|
191
|
+
│ ├── dependency_audit_rules.md
|
|
192
|
+
│ └── interface_contract_validation.md
|
|
193
|
+
│
|
|
194
|
+
├── 📂 2_KNOWLEDGE/ # The Skills — Modular capability library
|
|
195
|
+
│ ├── 📋 SKILLS_ROUTER.md # Index of all registered skills
|
|
196
|
+
│ ├── 📂 sops/ # Standard Operating Procedures
|
|
197
|
+
│ │ ├── mempalace_sop.md # Spatial memory architecture
|
|
198
|
+
│ │ ├── context_cleaning_optimization.md
|
|
199
|
+
│ │ └── omniclaw_blackboard_protocol.md
|
|
200
|
+
│ └── 📂 frameworks/ # Domain-specific skill packs
|
|
201
|
+
│ ├── core_system/ # Engineering rules, memory, security
|
|
202
|
+
│ ├── seo_marketing/ # SEO, content, landing pages, LinkedIn
|
|
203
|
+
│ ├── frontend_engineering/ # UI/UX, Hoversource, design tokens
|
|
204
|
+
│ └── testing_automation/ # Playwright, test workflows
|
|
205
|
+
│
|
|
206
|
+
├── 📂 3_MEMORY/ # The Memory — Persistent session storage
|
|
207
|
+
│ ├── specs/ # Architecture docs & technical specs
|
|
208
|
+
│ ├── logs/ # Chronological session logs
|
|
209
|
+
│ ├── errors/ # Error reports & debug records
|
|
210
|
+
│ └── ingestion_zone/ # Staging area for new knowledge
|
|
211
|
+
│
|
|
212
|
+
├── 📂 scripts/ # Automation scripts
|
|
213
|
+
│ ├── seosona-init.ps1 # Local project binder (PowerShell)
|
|
214
|
+
│ └── rebrand_seosona.ps1 # System maintenance scripts
|
|
215
|
+
│
|
|
216
|
+
├── 📂 cli/ # Node.js CLI package
|
|
217
|
+
│ ├── bin/seosona.js # CLI entry point
|
|
218
|
+
│ ├── src/
|
|
219
|
+
│ │ ├── globalSetup.js # Cross-platform Global Scanner
|
|
220
|
+
│ │ ├── localInit.js # Cross-platform Local Scanner
|
|
221
|
+
│ │ └── utils.js # Shared utilities
|
|
222
|
+
│ ├── scripts/bundle-soul.js # Pre-build: bundles SOUL.md into package
|
|
223
|
+
│ └── package.json # npm package definition
|
|
224
|
+
│
|
|
225
|
+
├── 📂 repos/ # Tracked reference repositories
|
|
226
|
+
├── 🔧 setup.ps1 # Universal Setup Engine v2.0.0
|
|
227
|
+
├── 📄 install.bat # One-click Windows launcher
|
|
228
|
+
└── 📖 README.md # You are here
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## 🧩 Skill Framework Library
|
|
234
|
+
|
|
235
|
+
SEOSONA OS ships with 20+ modular skills across 5 domains:
|
|
236
|
+
|
|
237
|
+
### 🔧 Core System
|
|
238
|
+
- **Harness Engineering Machine** — End-to-end operational agent framework
|
|
239
|
+
- **OmniClaw Blackboard Protocol** — Multi-agent coordination & CEO Rule
|
|
240
|
+
- **MemPalace Architecture** — Spatial verbatim memory layout
|
|
241
|
+
- **Post-Session Learning** — Auto-assimilation of new knowledge
|
|
242
|
+
- **Security Scanning** — Pre-commit regex auditing & dependency checks
|
|
243
|
+
|
|
244
|
+
### 🎨 Frontend Engineering
|
|
245
|
+
- **UI/UX Pro Max Typography** — Design token standards
|
|
246
|
+
- **Web Interface Compliance** — Accessibility & performance gates
|
|
247
|
+
- **Tailwind Motion Design** — Animation system rules
|
|
248
|
+
- **Hoversource Integration** — Component integration workflows
|
|
249
|
+
|
|
250
|
+
### 📈 SEO & Marketing
|
|
251
|
+
- **SEO/AEO Best Practices** — E-E-A-T, schema, Core Web Vitals
|
|
252
|
+
- **Content Creator** — Brand voice, social optimization
|
|
253
|
+
- **Landing Page Generator** — Conversion patterns & scaffolding
|
|
254
|
+
- **LinkedIn Authority Builder** — B2B content framework
|
|
255
|
+
- **SEO Migration Assistant** — Technical migration SOPs
|
|
256
|
+
|
|
257
|
+
### 🧪 Testing & Automation
|
|
258
|
+
- **Playwright Suite** — E2E testing workflows & CLI reference
|
|
259
|
+
- **Swarms Auto-Research Loop** — Autonomous research agent patterns
|
|
260
|
+
|
|
261
|
+
### 🤖 Ingested Intelligence
|
|
262
|
+
- **Agentic OS Architecture** — Multi-agent system design
|
|
263
|
+
- **LightRAG Graph Mapping** — Entity-relationship standards
|
|
264
|
+
- **Context Cleaning Optimization** — Token efficiency rules
|
|
265
|
+
- **Scrapling/Crawling DOM** — Web scraping best practices
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## ⚙️ How It Works — Under the Hood
|
|
270
|
+
|
|
271
|
+
### The Universal Anchor
|
|
272
|
+
SEOSONA OS creates a filesystem junction at `~/.seosona` pointing to wherever the actual `SEOSONA OS` directory lives. This means:
|
|
273
|
+
- All tools read from `~/.seosona` regardless of where you stored the files
|
|
274
|
+
- Move the folder anywhere, re-run `setup.ps1`, the anchor updates automatically
|
|
275
|
+
- **Zero hardcoded paths anywhere in the system**
|
|
276
|
+
|
|
277
|
+
### The Injection Chain
|
|
278
|
+
|
|
279
|
+
```
|
|
280
|
+
setup.ps1 (run once)
|
|
281
|
+
│
|
|
282
|
+
├── Reads SOUL.md (9,400+ chars of pure intelligence)
|
|
283
|
+
│
|
|
284
|
+
├── [Global Level] Writes to IDE settings.json files
|
|
285
|
+
│ Cursor → settings.json → cursor.general.rules
|
|
286
|
+
│ VSCode → settings.json → copilot/cline/roo keys
|
|
287
|
+
│ Aider → ~/.aider.conf.yml → system-prompt
|
|
288
|
+
│ ...
|
|
289
|
+
│
|
|
290
|
+
├── [OS Level] Sets Windows Environment Variables
|
|
291
|
+
│ ANTIGRAVITY_SYSTEM_PROMPT = <full SOUL.md content>
|
|
292
|
+
│ SEOSONA_MASTER_PROMPT = <full SOUL.md content>
|
|
293
|
+
│
|
|
294
|
+
└── [Shell Level] Injects PowerShell profile wrappers
|
|
295
|
+
seosona-init → available globally in any terminal
|
|
296
|
+
seosona-claude → wraps Claude CLI with --system-prompt
|
|
297
|
+
git init → auto-calls seosona-init on new projects
|
|
298
|
+
|
|
299
|
+
seosona-init (run per project)
|
|
300
|
+
│
|
|
301
|
+
├── Detects installed tools on THIS machine
|
|
302
|
+
└── Drops ONLY relevant rule files into the project root
|
|
303
|
+
No phantom files for tools you don't have
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### The SOUL.md — Master Intelligence
|
|
307
|
+
The `SOUL.md` file contains the full cognitive blueprint of SEOSONA OS:
|
|
308
|
+
- **Prime Directive** — The Evolution Mandate
|
|
309
|
+
- **OmniClaw Protocol** — Zero-tolerance bypass rules
|
|
310
|
+
- **Enforced SOPs** — Engineering standards, security rules, memory patterns
|
|
311
|
+
- **Master Flow** — The 5-phase execution model for every task
|
|
312
|
+
- **Sub-persona Activation** — Context-aware behavior switching
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## 🔐 Security Notes
|
|
317
|
+
|
|
318
|
+
- **Never commit your GitHub PAT** to this repository
|
|
319
|
+
- The `SOUL.md` file may contain internal SOPs — review before making the repo public
|
|
320
|
+
- Environment Variables set by this tool are scoped to the **current user only** (`[Environment]::SetEnvironmentVariable(..., "User")`)
|
|
321
|
+
- Run `git status` and review diffs before every push
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## 🤝 Contributing
|
|
326
|
+
|
|
327
|
+
1. Fork this repository
|
|
328
|
+
2. Create your feature branch: `git checkout -b feature/new-skill-pack`
|
|
329
|
+
3. Commit your changes: `git commit -m 'Add new skill pack for X'`
|
|
330
|
+
4. Push to the branch: `git push origin feature/new-skill-pack`
|
|
331
|
+
5. Open a Pull Request
|
|
332
|
+
|
|
333
|
+
### Adding a New Skill
|
|
334
|
+
|
|
335
|
+
```
|
|
336
|
+
2_KNOWLEDGE/frameworks/<domain>/<skill-name>/
|
|
337
|
+
├── README.md # Skill overview and usage
|
|
338
|
+
├── SKILL.md # Full skill prompt / SOP
|
|
339
|
+
├── _DIR_IDENTITY.md # Directory identity and scope
|
|
340
|
+
├── schema.json # Structured metadata
|
|
341
|
+
└── references/ # Supporting reference files
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## 📋 Changelog
|
|
347
|
+
|
|
348
|
+
### v2.0.0 — Omni-Scanner Release
|
|
349
|
+
- ✅ Added smart detection for 14 IDE/CLI tools
|
|
350
|
+
- ✅ Replaced path-pointer injection with full SOUL.md content injection
|
|
351
|
+
- ✅ Built cross-platform Node.js CLI (`seosona setup`, `seosona init`)
|
|
352
|
+
- ✅ Introduced `Inject-JsonSettings` generic function — eliminating 200+ lines of duplicated logic
|
|
353
|
+
- ✅ Fixed `~/.git-templates` stale artifact from v1.x
|
|
354
|
+
- ✅ Zero hardcoded paths — all paths computed at runtime
|
|
355
|
+
- ✅ Added Antigravity IDE support via Environment Variables
|
|
356
|
+
|
|
357
|
+
### v1.0.0 — Initial Release
|
|
358
|
+
- ✅ PowerShell setup engine for Windows
|
|
359
|
+
- ✅ Cursor, Codex, SecureCoder support
|
|
360
|
+
- ✅ MemPalace spatial memory architecture
|
|
361
|
+
- ✅ SOUL.md master system prompt
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
## 📜 License
|
|
366
|
+
|
|
367
|
+
MIT License — See [LICENSE](LICENSE) for details.
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
<div align="center">
|
|
372
|
+
|
|
373
|
+
**Built by SEOSONA. Powered by the Prime Directive.**
|
|
374
|
+
|
|
375
|
+
*"Always learning, upgrading, optimizing, automating, developing, improving... from new data, new information, new knowledge. Learn from mistakes to be better."*
|
|
376
|
+
|
|
377
|
+
</div>
|
package/package.json
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "seosona-cli",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "The Omni-Scanner Setup CLI for SEOSONA OS",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/LongLeo287/SEOSONA-OS.git"
|
|
8
|
+
},
|
|
9
|
+
"bugs": {
|
|
10
|
+
"url": "https://github.com/LongLeo287/SEOSONA-OS/issues"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/LongLeo287/SEOSONA-OS#readme",
|
|
5
13
|
"main": "src/index.js",
|
|
6
14
|
"bin": {
|
|
7
15
|
"seosona": "./bin/seosona.js"
|
package/scripts/bundle-soul.js
CHANGED
|
@@ -15,3 +15,10 @@ if (fs.existsSync(sourcePath)) {
|
|
|
15
15
|
} else {
|
|
16
16
|
console.warn(`[SEOSONA BUILD] Warning: Source SOUL.md not found at ${sourcePath}`);
|
|
17
17
|
}
|
|
18
|
+
|
|
19
|
+
const readmeSource = path.join(__dirname, '..', '..', 'README.md');
|
|
20
|
+
const readmeDest = path.join(__dirname, '..', 'README.md');
|
|
21
|
+
if (fs.existsSync(readmeSource)) {
|
|
22
|
+
fs.copyFileSync(readmeSource, readmeDest);
|
|
23
|
+
console.log(`[SEOSONA BUILD] Copied README.md into cli/`);
|
|
24
|
+
}
|