@wistantkode/dotfiles 1.5.0 โ 1.6.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 +15 -0
- package/CONTRIBUTING.md +51 -0
- package/README.md +48 -41
- package/SECURITY.md +39 -0
- package/assets/logo.png +0 -0
- package/cli/cli.mjs +153 -0
- package/github.sh +1 -1
- package/package.json +2 -2
- package/assets/dotfiles.png +0 -0
- package/assets/memoji.png +0 -0
- package/assets/wistant-logo.png +0 -0
- package/bin/cli.mjs +0 -103
package/CHANGELOG.md
CHANGED
|
@@ -2,9 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [1.6.0] - 2026-04-05 - [Vellum & Void Integrity]
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- **Formal Governance**: Integrated professional `CONTRIBUTING.md` and `SECURITY.md` root-level guides, transitioning from internal metaphors to standard engineering contracts.
|
|
10
|
+
- **Community Infrastructure**: Added a dedicated Community section with a high-fidelity contributor avatar grid and refined attribution.
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- **Architectural Mapping**: Migrated the CLI entry point from `bin/` to `cli/` to align with modern package distribution standards.
|
|
15
|
+
- **Technical Sanitization**: Purged all metaphorical terminology (Rodin, Socratic, Audit) from public-facing documentation in favor of professional engineering nomenclature.
|
|
16
|
+
- **Visual Engineering**: Redesigned the `README.md` signature header and updated the technical verification workflow diagram (Mermaid).
|
|
17
|
+
- **Hardening**: Refined the implementation of Zero-Trust principles in the root security policy.
|
|
18
|
+
|
|
5
19
|
## [1.5.0] - 2026-04-05 - [Iron Gate & Neon Dash]
|
|
6
20
|
|
|
7
21
|
### Added
|
|
22
|
+
|
|
8
23
|
- **Protocol Hardening**: Integrated strict "Zero-Initiative" and "Separation of Concerns" rules into `RODIN.md` and `COMMIT.md`. AI is now formally forbidden from touching release artifacts outside of Release mode.
|
|
9
24
|
- **Elite UI Overhaul**: Complete refactor of `github.sh` and `bin/cli.mjs` with premium 256-color aesthetics, box-drawing tables, and animated progress bars.
|
|
10
25
|
- **Enhanced Gatekeeping**: `github.sh` now performs a silent tag-delta audit and forces manual confirmation on production branches.
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Contributing to Dotfiles Infrastructure
|
|
2
|
+
|
|
3
|
+
This repository is governed by strict **Architectural Validation**. To maintain technical excellence, every contribution must align with our core engineering baseline. Precision and structural integrity are non-negotiable.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## โก Technical Pillars
|
|
8
|
+
|
|
9
|
+
### 1. Atomic Integrity
|
|
10
|
+
|
|
11
|
+
We maintain a linear, pure history. PRs must represent a single, isolated logical intention.
|
|
12
|
+
|
|
13
|
+
- **Manual Staging**: The use of `git add .` is prohibited. Every staging must be targeted (`git add <file>`).
|
|
14
|
+
- **No Hybrid Commits**: Do not mix refactoring (`refactor`) with functional additions (`feat`) in the same commit.
|
|
15
|
+
- **Separation of Powers**: Release manifests (`package.json`, `CHANGELOG.md`) and Git Tags are strictly reserved for the **Release Protocol**. They must never be part of a standard code commit.
|
|
16
|
+
|
|
17
|
+
### 2. Architectural Governance
|
|
18
|
+
|
|
19
|
+
Your interaction with the codebase is a technical review, not a service.
|
|
20
|
+
|
|
21
|
+
- **Critical Assessment**: Contributors (Human or AI) must provide technical justification for every change. Blind validation is a protocol failure.
|
|
22
|
+
- **Zero-Initiative**: Decision-making is limited to the explicit scope of the requested task. Unauthorized modification of non-cited components is forbidden.
|
|
23
|
+
- **Impact-Based SemVer**: Versioning must be mathematically justified by the code impact analyzed during the release phase.
|
|
24
|
+
|
|
25
|
+
### 3. AI-Pairing Standards
|
|
26
|
+
|
|
27
|
+
We recognize AI as a technical peer. Contributions co-authored by an agent must:
|
|
28
|
+
|
|
29
|
+
- Maintain a direct, technical, and objective tone.
|
|
30
|
+
- Be verified by the **Architect (Human)** at every execution gate.
|
|
31
|
+
- **The Verification Barrier**: The agent must prompt for human confirmation of the versioning logic before final execution.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Development Lifecycle
|
|
36
|
+
|
|
37
|
+
### Phase 1: Code Implementation
|
|
38
|
+
|
|
39
|
+
Follow the **Commit Convention**. Use strict prefixes (`feat`, `fix`, `refactor`, `style`, `ui`, `docs`).
|
|
40
|
+
|
|
41
|
+
### Phase 2: Infrastructure Deployment
|
|
42
|
+
|
|
43
|
+
Deployment follows the **Architectural Release** flow. Every release must be sealed with a unique identifier: `vX.Y.Z - [MOTTO]`.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## ๐ฅ Maintenance
|
|
48
|
+
|
|
49
|
+
Managed by **Wistant** โ Lead Architect.
|
|
50
|
+
|
|
51
|
+
---
|
package/README.md
CHANGED
|
@@ -1,22 +1,10 @@
|
|
|
1
|
-
# [@wistantkode/dotfiles](https://www.npmjs.com/package/@wistantkode/dotfiles)
|
|
2
|
-
|
|
3
1
|
<div align="center">
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
<img src="./assets/memoji.png" alt="Memoji" width="120" />
|
|
11
|
-
</td>
|
|
12
|
-
<td align="center" valign="middle">
|
|
13
|
-
<img src="./assets/dotfiles.png" alt="Dotfiles Logo" width="100" />
|
|
14
|
-
</td>
|
|
15
|
-
</tr>
|
|
16
|
-
</table>
|
|
17
|
-
<br />
|
|
18
|
-
<p><b>Precision AI-Pairing Infrastructure & Architectural Protocols</b></p>
|
|
19
|
-
|
|
2
|
+
<img src="./assets/logo.png" alt="Dotfiles Logo" width="180" />
|
|
3
|
+
|
|
4
|
+
# Precision Dotfiles Infrastructure
|
|
5
|
+
|
|
6
|
+
[ Automated Orchestration โข AI-Driven Logic โข Governance Protocols โข CLI Distribution ]
|
|
7
|
+
|
|
20
8
|
<p>
|
|
21
9
|
<a href="https://www.npmjs.com/package/@wistantkode/dotfiles">
|
|
22
10
|
<img src="https://img.shields.io/npm/v/@wistantkode/dotfiles?style=for-the-badge&color=CC0000&logo=npm" alt="npm version" />
|
|
@@ -24,41 +12,40 @@
|
|
|
24
12
|
<a href="https://pnpm.io">
|
|
25
13
|
<img src="https://img.shields.io/badge/pnpm-4AB6FA?style=for-the-badge&logo=pnpm&logoColor=white" alt="pnpm" />
|
|
26
14
|
</a>
|
|
27
|
-
<a href="
|
|
28
|
-
<img src="https://img.shields.io/badge/
|
|
15
|
+
<a href="https://github.com/wistant/dotfiles/releases">
|
|
16
|
+
<img src="https://img.shields.io/badge/Release-v1.6.0-blue?style=for-the-badge&logo=github" alt="GitHub release" />
|
|
29
17
|
</a>
|
|
30
18
|
</p>
|
|
31
|
-
</div>
|
|
32
19
|
|
|
33
|
-
|
|
20
|
+
[](./protocols/COMMIT.md)
|
|
21
|
+
[](./protocols/RELEASE.md)
|
|
22
|
+
[](./protocols/SECURITY.md)
|
|
34
23
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
This is more than a dotfiles collection; it is a **System of Governance** for AI-driven development workflows. By treating your environment as **Versioned Infrastructure**, you establish the necessary guardrails to ensure that AI-pair-programming remains precise, atomic, and secure.
|
|
38
|
-
|
|
39
|
-
### The System Advantage
|
|
40
|
-
|
|
41
|
-
- **AI-Driven Logic**: The system is designed to "pilot" your AI assistant. It provides the architectural context and socratic protocols (`.protocols/`) required for high-end decision making.
|
|
42
|
-
- **Atomic Reliability**: Every modification is routed through a verification cycle that prevents history pollution and mixed intentions.
|
|
43
|
-
- **Universal Staging**: Powered by **pnpm**, **JavaScript (ESM)**, and **Shell orchestration**, the entire ecosystem is instantly deployable via `npx` or `pnpm dlx`.
|
|
24
|
+
</div>
|
|
44
25
|
|
|
45
26
|
---
|
|
46
27
|
|
|
47
|
-
##
|
|
28
|
+
## Architectural Orchestration
|
|
29
|
+
|
|
30
|
+
This repository is not just a collection of configs; it is a **Living Governance System**. Every interaction between the Architect and the AI is filtered through a rigorous protocol stack.
|
|
48
31
|
|
|
49
32
|
```mermaid
|
|
50
33
|
graph TD
|
|
51
|
-
A[
|
|
52
|
-
B --
|
|
53
|
-
C --
|
|
54
|
-
D --
|
|
55
|
-
|
|
34
|
+
A[Architect Request] --> B{Verification Cycle}
|
|
35
|
+
B -- Protocol Audit --> C[Technical Logic]
|
|
36
|
+
C -- Separation Mode --> D[Atomic Implementation]
|
|
37
|
+
D -- History Guard --> E[Versioned State]
|
|
38
|
+
E -- Sync Process --> F[NPM Distribution]
|
|
39
|
+
F -- CLI Engine --> G[System Deployment]
|
|
40
|
+
|
|
41
|
+
style B fill:#f9f,stroke:#333,stroke-width:2px
|
|
42
|
+
style G fill:#00ff,stroke:#fff,stroke-width:2px,color:#fff
|
|
56
43
|
```
|
|
57
44
|
|
|
58
45
|
### Core Automation Tools
|
|
59
46
|
|
|
60
47
|
1. **Interactive Sync (`github.sh`)**: A specialized gatekeeper that performs a "Tag Delta" audit, ensuring local versions and remote states are synchronized before any projection.
|
|
61
|
-
2. **System Protocols**: A library of hidden guides that force the AI to maintain professional standards (Atomic commits,
|
|
48
|
+
2. **System Protocols**: A library of hidden guides that force the AI to maintain professional standards (Atomic commits, Protocol releases, Security first).
|
|
62
49
|
3. **Automated Distribution**: GitHub Actions handle the security auditing and global NPM publication upon Every GitHub Release.
|
|
63
50
|
|
|
64
51
|
---
|
|
@@ -72,6 +59,7 @@ pnpm dlx @wistantkode/dotfiles
|
|
|
72
59
|
```
|
|
73
60
|
|
|
74
61
|
### Included Assets
|
|
62
|
+
|
|
75
63
|
- **Professional `.gitignore`**: PRODUCTION-READY baseline for all modern stacks.
|
|
76
64
|
- **Security & Integrity**: Injected `.protocols/` folder for immediate AI alignment.
|
|
77
65
|
- **Universal License**: Apache 2.0 baseline for all technical distributions.
|
|
@@ -82,15 +70,34 @@ pnpm dlx @wistantkode/dotfiles
|
|
|
82
70
|
|
|
83
71
|
| Standard | Role | Reference |
|
|
84
72
|
| :--- | :--- | :--- |
|
|
85
|
-
| **Audit Philosophy** |
|
|
73
|
+
| **Audit Philosophy** | Protocol auditing and architectural integrity. | [RODIN.md](./protocols/RODIN.md) |
|
|
86
74
|
| **Commit Protocol** | Strict atomic formatting and zero-entropy staging. | [COMMIT.md](./protocols/COMMIT.md) |
|
|
87
|
-
| **Release Flow** |
|
|
75
|
+
| **Release Flow** | Technical versioning and manual sealing logic. | [RELEASE.md](./protocols/RELEASE.md) |
|
|
88
76
|
| **Security First** | Vulnerability audits and secret scanning protocols. | [SECURITY.md](./protocols/SECURITY.md) |
|
|
89
77
|
|
|
90
78
|
> See [_INDEX.md](./protocols/_INDEX.md) for the full library of orchestration protocols.
|
|
91
79
|
|
|
92
80
|
---
|
|
93
81
|
|
|
82
|
+
## Contributors
|
|
83
|
+
|
|
84
|
+
The project is currently orchestrated by its lead architect. New contributions are welcome to expand the baseline.
|
|
85
|
+
|
|
86
|
+
<p align="left">
|
|
87
|
+
<a href="https://github.com/wistant">
|
|
88
|
+
<img src="https://github.com/wistant.png?size=100" width="100" height="100" alt="wistant" title="Lead Architect"/>
|
|
89
|
+
</a>
|
|
90
|
+
</p>
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Community
|
|
95
|
+
|
|
96
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on how to join the **clawtributors** and submit PRs.
|
|
97
|
+
AI/vibe-coded PRs welcome! ๐ค
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
94
101
|
## License
|
|
95
102
|
|
|
96
103
|
Copyright ยฉ 2026 **Wistant**. Distributed under the **Apache License 2.0**.
|
|
@@ -98,5 +105,5 @@ Copyright ยฉ 2026 **Wistant**. Distributed under the **Apache License 2.0**.
|
|
|
98
105
|
---
|
|
99
106
|
|
|
100
107
|
<div align="center">
|
|
101
|
-
<
|
|
108
|
+
<b>Designed for the 0.1% โ Engineered by @wistant</b>
|
|
102
109
|
</div>
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
This repository follows a **Zero-Trust** security model. We prioritize the integrity of the infrastructure and the protection of sensitive architectural data.
|
|
4
|
+
|
|
5
|
+
## Supported Versions
|
|
6
|
+
|
|
7
|
+
We only provide security updates for the current major version.
|
|
8
|
+
|
|
9
|
+
| Version | Supported |
|
|
10
|
+
| ------- | ------------------ |
|
|
11
|
+
| v1.x | :white_check_mark: |
|
|
12
|
+
| < v1.0 | :x: |
|
|
13
|
+
|
|
14
|
+
## Reporting a Vulnerability
|
|
15
|
+
|
|
16
|
+
If you discover a security vulnerability, please do NOT open a public issue. We take security seriously and prefer a coordinated disclosure.
|
|
17
|
+
|
|
18
|
+
Please report vulnerabilities directly to the maintainer:
|
|
19
|
+
- **Contact**: [@wistant](https://github.com/wistant)
|
|
20
|
+
- **Encryption**: If possible, encrypt your report using a secure channel.
|
|
21
|
+
|
|
22
|
+
## Our Security Principles
|
|
23
|
+
|
|
24
|
+
### 1. Silent Guardian Audit
|
|
25
|
+
Every interaction with the codebase (commits, refactors, releases) triggers a scan for:
|
|
26
|
+
- Exposed secrets (tokens, API keys, private keys).
|
|
27
|
+
- Context leaks (internal paths, IPs, machine names).
|
|
28
|
+
- Insecure API logic or missing sanitization.
|
|
29
|
+
|
|
30
|
+
### 2. Dependency Integrity
|
|
31
|
+
We use strictly audited dependencies.
|
|
32
|
+
- All packages are scanned via `pnpm audit`.
|
|
33
|
+
- Critical CVEs in core libraries results in an immediate suspension of the release flow until resolved.
|
|
34
|
+
|
|
35
|
+
### 3. Isolation by Design
|
|
36
|
+
Sensitive configuration files and release manifests are strictly isolated from the standard development cycle to prevent accidental leakage.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
**Architectural Integrity โข Security First โข @wistant dotfiles baseline**
|
package/assets/logo.png
ADDED
|
Binary file
|
package/cli/cli.mjs
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
5
|
+
* DOTFILES INSTALLER ยท Elite Orchestration ยท @wistantkode/dotfiles
|
|
6
|
+
* โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { copyFile, mkdir, readdir, lstat } from 'node:fs/promises';
|
|
10
|
+
import { join, dirname } from 'node:path';
|
|
11
|
+
import { fileURLToPath } from 'node:url';
|
|
12
|
+
|
|
13
|
+
// โโ UI Configuration (256-color) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
14
|
+
const RESET = '\x1b[0m';
|
|
15
|
+
const BOLD = '\x1b[1m';
|
|
16
|
+
const DIM = '\x1b[2m';
|
|
17
|
+
const CYAN = '\x1b[38;5;117m';
|
|
18
|
+
const GREEN = '\x1b[38;5;114m';
|
|
19
|
+
const YELLOW = '\x1b[38;5;221m';
|
|
20
|
+
const RED = '\x1b[38;5;203m';
|
|
21
|
+
const GRAY = '\x1b[38;5;244m';
|
|
22
|
+
const WHITE = '\x1b[38;5;255m';
|
|
23
|
+
const DGRAY = '\x1b[38;5;238m';
|
|
24
|
+
const BLUE = '\x1b[38;5;75m';
|
|
25
|
+
|
|
26
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
27
|
+
const pkgRoot = join(__dirname, '..');
|
|
28
|
+
|
|
29
|
+
// โโ Asset Mapping โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
30
|
+
const ASSETS = [
|
|
31
|
+
{ src: 'gitignore', dest: '.gitignore', label: 'Ignore patterns' },
|
|
32
|
+
{ src: 'LICENSE', dest: 'LICENSE', label: 'License' },
|
|
33
|
+
{ src: 'protocols', dest: '.protocols', label: 'Governance protocols', isDir: true }
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
// โโ Layout Components โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
37
|
+
|
|
38
|
+
const _rep = (n, char = ' ') => char.repeat(Math.max(0, n));
|
|
39
|
+
const sep = () => console.log(`${DGRAY}${_rep(64, 'โ')}${RESET}`);
|
|
40
|
+
|
|
41
|
+
const renderLogo = () => {
|
|
42
|
+
// Ultra-High-Fidelity "Full Block" Style
|
|
43
|
+
console.log(`\n ${CYAN}โโโโโโโ โโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ`);
|
|
44
|
+
console.log(` ${CYAN}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ`);
|
|
45
|
+
console.log(` ${CYAN}โโโ โโโโโโ โโโ โโโ โโโโโโ โโโโโโ โโโโโโ โโโโโโโโ`);
|
|
46
|
+
console.log(` ${CYAN}โโโ โโโโโโ โโโ โโโ โโโโโโ โโโโโโ โโโโโโ โโโโโโโโ`);
|
|
47
|
+
console.log(` ${CYAN}โโโโโโโโโโโโโโโโโ โโโ โโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโ`);
|
|
48
|
+
console.log(` ${CYAN}โโโโโโโ โโโโโโโ โโโ โโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโ${RESET}`);
|
|
49
|
+
console.log(`\n ${GRAY}${BOLD}[ PRECISION AI ORCHESTRATION ]${RESET}\n`);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const progress = async (label) => {
|
|
53
|
+
process.stdout.write(` ${GRAY}[${RESET}`);
|
|
54
|
+
for (let i = 0; i < 28; i++) {
|
|
55
|
+
process.stdout.write(`${CYAN}โ${RESET}`);
|
|
56
|
+
await new Promise(r => setTimeout(r, 10));
|
|
57
|
+
}
|
|
58
|
+
process.stdout.write(`${GRAY}]${RESET} ${GREEN}${label}${RESET}\n`);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const renderSignature = () => {
|
|
62
|
+
const width = 44;
|
|
63
|
+
const stripAnsi = (str) => str.replace(/\x1b\[[0-9;]*m/g, '');
|
|
64
|
+
const pad = (text, len) => text + _rep(len - stripAnsi(text).length);
|
|
65
|
+
|
|
66
|
+
console.log(`\n ${WHITE}${BOLD}SOURCE & AUTHORSHIP${RESET}`);
|
|
67
|
+
console.log(` ${DGRAY}โ${_rep(width, 'โโ')}โ${RESET}`);
|
|
68
|
+
|
|
69
|
+
const label = (txt, col) => `${col}${BOLD}${txt}${RESET}`;
|
|
70
|
+
const info = (txt) => `${GRAY}${txt}${RESET}`;
|
|
71
|
+
|
|
72
|
+
console.log(` ${DGRAY}โ${RESET} ${pad(`${label('REPOSITORY', BLUE)} ${BOLD}https://github.com/wistant/dotfiles${RESET}`, width + 17)} ${DGRAY}โ${RESET}`);
|
|
73
|
+
console.log(` ${DGRAY}โ${_rep(width, 'โโ')}โค${RESET}`);
|
|
74
|
+
console.log(` ${DGRAY}โ${RESET} ${pad(`${label('ARCHITECT ', WHITE)} ${BOLD}Wistant${RESET} ${GRAY}(DevOps Architect)${RESET}`, width + 28)} ${DGRAY}โ${RESET}`);
|
|
75
|
+
console.log(` ${DGRAY}โ${RESET} ${pad(`${label('GITHUB ', BLUE)} ${GRAY}https://github.com/wistant${RESET}`, width + 26)} ${DGRAY}โ${RESET}`);
|
|
76
|
+
console.log(` ${DGRAY}โ${RESET} ${pad(`${label('X ', CYAN)} ${GRAY}https://x.com/wistant${RESET}`, width + 26)} ${DGRAY}โ${RESET}`);
|
|
77
|
+
console.log(` ${DGRAY}โ${RESET} ${pad(`${label('LINKEDIN ', BLUE)} ${GRAY}https://linkedin.com/in/wistant${RESET}`, width + 26)} ${DGRAY}โ${RESET}`);
|
|
78
|
+
console.log(` ${DGRAY}โ${_rep(width, 'โโ')}โ${RESET}\n`);
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
// โโ Core Engine โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
82
|
+
|
|
83
|
+
async function copyRecursive(src, dest, onFile) {
|
|
84
|
+
const stat = await lstat(src);
|
|
85
|
+
if (stat.isDirectory()) {
|
|
86
|
+
await mkdir(dest, { recursive: true });
|
|
87
|
+
const children = await readdir(src);
|
|
88
|
+
for (const child of children) {
|
|
89
|
+
await copyRecursive(join(src, child), join(dest, child), onFile);
|
|
90
|
+
}
|
|
91
|
+
} else {
|
|
92
|
+
await copyFile(src, dest);
|
|
93
|
+
if (onFile) onFile(dest);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
async function run() {
|
|
98
|
+
process.stdout.write('\x1Bc'); // Clear screen
|
|
99
|
+
renderLogo();
|
|
100
|
+
sep();
|
|
101
|
+
|
|
102
|
+
const targetDir = process.cwd();
|
|
103
|
+
console.log(`\n ${GRAY}System Target:${RESET} ${WHITE}${BOLD}${targetDir}${RESET}\n`);
|
|
104
|
+
|
|
105
|
+
sep();
|
|
106
|
+
console.log(`\n ${BOLD}โถ Initiating deployment sequence...${RESET}\n`);
|
|
107
|
+
|
|
108
|
+
await progress('Validating package integrity');
|
|
109
|
+
|
|
110
|
+
const deployedFiles = [];
|
|
111
|
+
|
|
112
|
+
for (const asset of ASSETS) {
|
|
113
|
+
try {
|
|
114
|
+
const srcPath = join(pkgRoot, asset.src);
|
|
115
|
+
const destPath = join(targetDir, asset.dest);
|
|
116
|
+
|
|
117
|
+
if (asset.isDir) {
|
|
118
|
+
await copyRecursive(srcPath, destPath, (f) => {
|
|
119
|
+
deployedFiles.push(f.replace(targetDir, ''));
|
|
120
|
+
});
|
|
121
|
+
} else {
|
|
122
|
+
await copyFile(srcPath, destPath);
|
|
123
|
+
deployedFiles.push('/' + asset.dest);
|
|
124
|
+
}
|
|
125
|
+
} catch (err) {
|
|
126
|
+
console.error(` ${RED}โ${RESET} Failed to deploy ${asset.src}: ${err.message}`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
await progress('Finalizing system orchestration');
|
|
131
|
+
|
|
132
|
+
// Detailed Audit Logs
|
|
133
|
+
console.log(`\n ${BOLD}DEPLOYMENT AUDIT${RESET}`);
|
|
134
|
+
console.log(` ${DGRAY}${_rep(45, 'โ')}${RESET}`);
|
|
135
|
+
for (const file of deployedFiles.sort()) {
|
|
136
|
+
console.log(` ${GREEN}โ${RESET} ${GRAY}${file}${RESET}`);
|
|
137
|
+
}
|
|
138
|
+
console.log(` ${DGRAY}${_rep(45, 'โ')}${RESET}`);
|
|
139
|
+
|
|
140
|
+
console.log(`\n ${GREEN}${BOLD}โ INFRASTRUCTURE DEPLOYED SUCCESSFULLY.${RESET}`);
|
|
141
|
+
console.log(` ${GRAY}Your environment is now optimized for professional AI pairing.${RESET}`);
|
|
142
|
+
|
|
143
|
+
renderSignature();
|
|
144
|
+
|
|
145
|
+
console.log(` ${DIM}Thank you for choosing high-end architectural standards.${RESET}\n`);
|
|
146
|
+
sep();
|
|
147
|
+
console.log('');
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
run().catch(err => {
|
|
151
|
+
console.error(`\n ${RED}${BOLD}โ FATAL ERROR${RESET} ${err.message}\n`);
|
|
152
|
+
process.exit(1);
|
|
153
|
+
});
|
package/github.sh
CHANGED
|
@@ -86,7 +86,7 @@ LOCAL_ONLY_TAGS=$(
|
|
|
86
86
|
TAG_COUNT=0
|
|
87
87
|
[ -n "$LOCAL_ONLY_TAGS" ] && TAG_COUNT=$(echo "$LOCAL_ONLY_TAGS" | grep -c .)
|
|
88
88
|
PUSH_TAGS=""
|
|
89
|
-
[ "$TAG_COUNT" -gt 0 ] && PUSH_TAGS="--tags"
|
|
89
|
+
[ "$TAG_COUNT" -gt 0 ] && PUSH_TAGS="--follow-tags"
|
|
90
90
|
|
|
91
91
|
case "$CURRENT_BRANCH" in
|
|
92
92
|
main|master) BLABEL="${RED}${BOLD}โฌก PRODUCTION${RESET}" ;;
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wistantkode/dotfiles",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "High-End Linux Infrastructure & AI-Driven Orchestration Protocols",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
8
|
-
"dotfiles": "
|
|
8
|
+
"dotfiles": "cli/cli.mjs"
|
|
9
9
|
},
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
package/assets/dotfiles.png
DELETED
|
Binary file
|
package/assets/memoji.png
DELETED
|
Binary file
|
package/assets/wistant-logo.png
DELETED
|
Binary file
|
package/bin/cli.mjs
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import { copyFile, mkdir, readdir, lstat } from 'node:fs/promises';
|
|
4
|
-
import { join, dirname } from 'node:path';
|
|
5
|
-
import { fileURLToPath } from 'node:url';
|
|
6
|
-
|
|
7
|
-
// โโ UI Configuration (256-color) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
8
|
-
const RESET = '\x1b[0m';
|
|
9
|
-
const BOLD = '\x1b[1m';
|
|
10
|
-
const DIM = '\x1b[2m';
|
|
11
|
-
const CYAN = '\x1b[38;5;117m';
|
|
12
|
-
const GREEN = '\x1b[38;5;114m';
|
|
13
|
-
const YELLOW = '\x1b[38;5;221m';
|
|
14
|
-
const RED = '\x1b[38;5;203m';
|
|
15
|
-
const GRAY = '\x1b[38;5;244m';
|
|
16
|
-
const WHITE = '\x1b[38;5;255m';
|
|
17
|
-
const DGRAY = '\x1b[38;5;238m';
|
|
18
|
-
|
|
19
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
20
|
-
const pkgRoot = join(__dirname, '..');
|
|
21
|
-
|
|
22
|
-
const FILES_TO_INSTALL = [
|
|
23
|
-
'gitignore',
|
|
24
|
-
'LICENSE'
|
|
25
|
-
];
|
|
26
|
-
|
|
27
|
-
const DIRECTORIES_TO_INSTALL = [
|
|
28
|
-
'protocols'
|
|
29
|
-
];
|
|
30
|
-
|
|
31
|
-
// โโ Utilities โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
32
|
-
|
|
33
|
-
const sep = () => console.log(`${DGRAY}${'โ'.repeat(60)}${RESET}`);
|
|
34
|
-
|
|
35
|
-
const progress = async (label) => {
|
|
36
|
-
process.stdout.write(` ${GRAY}[${RESET}`);
|
|
37
|
-
for (let i = 0; i < 24; i++) {
|
|
38
|
-
process.stdout.write(`${CYAN}โ${RESET}`);
|
|
39
|
-
await new Promise(r => setTimeout(r, 15));
|
|
40
|
-
}
|
|
41
|
-
process.stdout.write(`${GRAY}]${RESET} ${GREEN}${label}${RESET}\n`);
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
async function copyRecursive(src, dest) {
|
|
45
|
-
const stat = await lstat(src);
|
|
46
|
-
if (stat.isDirectory()) {
|
|
47
|
-
await mkdir(dest, { recursive: true });
|
|
48
|
-
const children = await readdir(src);
|
|
49
|
-
for (const child of children) {
|
|
50
|
-
await copyRecursive(join(src, child), join(dest, child));
|
|
51
|
-
}
|
|
52
|
-
} else {
|
|
53
|
-
await copyFile(src, dest);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
async function run() {
|
|
58
|
-
console.clear();
|
|
59
|
-
console.log(`\n ${WHITE}${BOLD}โ DOTFILES INSTALLER${RESET} ${DGRAY}ยท @wistantkode/dotfiles${RESET}\n`);
|
|
60
|
-
sep();
|
|
61
|
-
|
|
62
|
-
const targetDir = process.cwd();
|
|
63
|
-
console.log(`\n ${GRAY}Target Directory:${RESET} ${CYAN}${BOLD}${targetDir}${RESET}\n`);
|
|
64
|
-
|
|
65
|
-
sep();
|
|
66
|
-
console.log(`\n ${BOLD}โถ Initiating deployment...${RESET}\n`);
|
|
67
|
-
|
|
68
|
-
await progress('Verifying package integrity...');
|
|
69
|
-
|
|
70
|
-
// Files deployment
|
|
71
|
-
for (const file of FILES_TO_INSTALL) {
|
|
72
|
-
try {
|
|
73
|
-
const destName = file === 'gitignore' ? '.gitignore' : file;
|
|
74
|
-
await copyFile(join(pkgRoot, file), join(targetDir, destName));
|
|
75
|
-
console.log(` ${GREEN}โ${RESET} Deployed ${BOLD}${destName}${RESET}`);
|
|
76
|
-
} catch (err) {
|
|
77
|
-
console.error(` ${RED}โ${RESET} Failed to deploy ${file}: ${err.message}`);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// Directories deployment
|
|
82
|
-
for (const dir of DIRECTORIES_TO_INSTALL) {
|
|
83
|
-
try {
|
|
84
|
-
const destName = dir === 'protocols' ? '.protocols' : dir;
|
|
85
|
-
await copyRecursive(join(pkgRoot, dir), join(targetDir, destName));
|
|
86
|
-
console.log(` ${GREEN}โ${RESET} Deployed ${BOLD}${destName}/${RESET}`);
|
|
87
|
-
} catch (err) {
|
|
88
|
-
console.error(` ${RED}โ${RESET} Failed to deploy ${dir}: ${err.message}`);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
await progress('Finalizing configuration...');
|
|
93
|
-
|
|
94
|
-
console.log(`\n ${GREEN}${BOLD}โ SUCCESS${RESET} Infrastructure deployed successfully.`);
|
|
95
|
-
console.log(` ${GRAY}Your environment is now orchestrated by @wistantkode protocols.${RESET}\n`);
|
|
96
|
-
sep();
|
|
97
|
-
console.log('');
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
run().catch(err => {
|
|
101
|
-
console.error(`\n ${RED}${BOLD}โ FATAL ERROR${RESET} ${err.message}\n`);
|
|
102
|
-
process.exit(1);
|
|
103
|
-
});
|